• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Can someone make these spells please?

Status
Not open for further replies.
Level 5
Joined
Aug 3, 2007
Messages
146
I need these spells for my working map:
1. Destinova[3 levels]= the spell has a 1 second casting time, the user charges to the enemy (walking animation) which makes him invulnerable during the charge after he reaches the enemy he then performs fast amazing attack combos (ranging from lvl 1-7 attacks,lvl 2-8 attacks,lvl 3-9 attacks)(loses the invulnerability after the combo)(the casting range is lvl 1-400,lvl 2-500,lvl 1-700). The pathway of the spell creates many thunder clap effects as the user charges.
2. Heaven Slash[3 levels]= when casted on an enemy the user draws power from his right hand (0.5 casting time) which makes his weapon glow, and then releases the force with a slash that knockbacks the enemy (knockback ranges are lvl 1-200, lvl 2-250, lvl 3-300). And if there is one enemy at the back of the casted unit, it then receives the same effect of the spell but taking only 50% of the damage. The damages are lvl 1-500, lvl 2-750, lvl 3-900.

I hope someone can make these spells for me and my map.:wthumbsup:
 
Level 9
Joined
May 27, 2006
Messages
498
1.
Variables:
Charger, Dummy, Target - arrayed unit variables.
TempPoint - point variable
Abilities:
Destinova - can be based on any target-enemy-unit ability.
Thunder clap - based on Mountain King`s Thunder Clap, of course ;P
Units:
Dummy unit - a flying unit with no model, without attack, without shadow, with "Locust" ability.


  • Destinova
    • Events:
      • Unit - A unit starts effect of an ability
    • Conditions:
      • (Ability being cast) equal to Destinova (?)
    • Actions:
      • Unit - Make (Triggering unit) invulnerable.
      • Unit - Change (Triggering unit)`s movement speed to 522.
      • Unit - Order (Triggering unit) to attack (Target unit of ability being cast)
      • Unit - Create 1 dummy for (Owner of(Triggering unit)) facing Default building facing degrees
      • Set Dummy[(Player number of(Owner of(Triggering unit)))] = (Last Created unit)
      • Set Charger[(Player number of(Owner of(Triggering unit)))] = (Triggering unit)
      • Set Target[(Player number of(Owner of(Triggering unit)))] = (Target unit of ability being cast)
      • Unit - Add Destinova Thunder Clap to (Last Created unit)
      • Unit - Add 3 second generic expiration timer to (Last Created unit)
      • For each (Integer A) from 1 to 10 do (Actions):
        • Wait until (((Region centered at (Position of (Charger[(Integer A)])) with size (150.00, 150.00)) contains (Target[(Integer A)])) Equal to True), checking every 0.1 seconds
        • Unit - Charger[(Integer A)]`s movement speed to Charger[(Integer A)] default movement speed.
        • For each (Integer B) from 1 to (6 + (Level of ability being cast)) do (Actions):
          • Unit - Order Charger[(Integer A)] to attack one time Target[(Integer A)]
          • Wait 0.2 second
  • DestinovaThunderClaps
    • Events:
      • Time - Every 0.15 second of game time
    • Conditions:
    • Actions:
      • For each (Integer A) from 1 to 10 do (Actions):
        • If Then Else - Multiple Functions
          • If - Conditions:
            • (((Region centered at (Position of (Charger[(Integer A)])) with size (150.00, 150.00)) contains (Target[(Integer A)])) Equal to False)
          • Then - Actions:
            • Set TempPoint[(Integer A)] = (Position of(Charger[(Integer A)]))
            • Unit - Move Dummy[(Integer A)] instantly to TempPoint[(Integer A)]
            • Unit - Order Dummy[(Integer A)] to Human - Mountain King - Thunder Clap
            • Custom script: call RemoveLocation(udg_TempPoint[GetForLoopIndexA()]) // <- Please, someone correct me if this is wrong, didn`t remember how to exactly remove points with array Integer A :P
          • Else - Actions:
            • Unit - Remove Dummy[(Integer A)]

This trigger should work for 10 players, just make your abilities and one dummy unit.

EDIT: Dont have time to make the second ability...
 
Last edited:
Level 3
Joined
Mar 24, 2007
Messages
51
Dummy unit - a flying unit with no model, without attack, without shadow, with "Swarm" ability.
u meant to say: "with LOCUST ability"
Custom script: call RemoveLocation(udg_TempPoint[GetForLoopIndexA()])

i guess locations ALWAYS leak... u should have to use Coordinates for it not to leak, someone correct me if i'm wrong

but anyway, good stuff, better than most GUI based spells: it's simple, it's MUI (once per player but it's still better than most GUI spells),
 
Level 5
Joined
Aug 3, 2007
Messages
146
That's okay if you dont have the time to make the other ability. BTW, thanks you have been a great help.
 
Level 3
Joined
Dec 22, 2007
Messages
35
Thanx LLoKKo for correcting me ;P Fixed



That`s why i set the point as a variable and destroyed it after use - that`s how leaks are removed. And coordinates also create a point - that means, they leak too.

I was under the impression that coordinates were native and did not need to be destroyed. For instance, if you called a function that took parameters x and y, and you put in the values (0, 0) how would you destroy that?
 
Level 11
Joined
Aug 25, 2006
Messages
971
Coordinates = Integers/reals = No destruction/remove required

What hes talking about is if you made a location with the function
JASS:
local location Star = Location(1548,2845)
If you did the above, you'd also have to destroy the location.
 
Level 5
Joined
Aug 3, 2007
Messages
146
With all that corrections, can someone make a summary of it. It is getting a bit complicated to me..
 
Level 9
Joined
May 27, 2006
Messages
498
@2seksi:
and you put in the values (0, 0) how would you destroy that?
Uhm... Like that?
  • Set TempPoint = (Position of (Triggering unit)) // or // Set TempPoint = (Convert coordinates to point (546, 745))
  • Custom script: call RemoveLocation(udg_TempPoint)
@bomber
Well, i think that coordinates also create a location, to determine where to place the unit - they`re just set in a different way. But i`m not sure :p The coordinate idea is having some sense...
 
Level 11
Joined
Aug 25, 2006
Messages
971
Point = Location. Both of what you did above create a location and have nothing to do with coordinates. If you had two variables, and both were variants, you could pass around X and Y like that with out any leaks. However the second you converted them to a point, you would create a point, ergo it would need to be destroyed.
 
Level 9
Joined
May 27, 2006
Messages
498
So coordinates need to be removed only when they`re set to a variable? They won`t leak when i use them like that? :
  • Unit - Create 1 Footman at (Convert coordinates to point (3456,1234)) facing (Default building facing) degrees
 
Level 19
Joined
Aug 24, 2007
Messages
2,888
No that leaks too
everything that returns a point (location) leaks

This wont leak call CreateUnit(<player>,<unit>,3456,1234,0)
because there is no location with this
This leaks again call CreateUnitAtLoc(<player>,<unit>,Location(3456,1234),0)

got it ?
 
Status
Not open for further replies.
Top