Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
A Heroic Leap spell, my imagination of how will work the new WoW's Warrior's spell - Heroic leap.
Jumps high into air towards target enemy ground unit. Such an act stuns it. After landing you cause the Thunder Clap effect, which damages and slows nearby enemies
Give me credits if you use it in your map
Heroic Leap Cast
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Heroic Leap
Actions
-------- Stores into variables Caster and Target --------
Set Caster = (Triggering unit)
Set Target = (Target unit of ability being cast)
-------- Finds the Distance between the Caster and Target --------
Set Points[1] = (Position of Caster)
Set Points[2] = (Position of Target)
Set Real[1] = (Distance between Points[1] and Points[2])
-------- Counts up the range at which the Caster shall start landing --------
Set Real[2] = (Real[1] / 2.00)
-------- Makes Caster invurnerable and turns it's Collision off --------
Unit - Make Caster Invulnerable
Unit - Turn collision for Caster Off
-------- Creates a trail SFX and instantly destroys it, removing leak --------
Special Effect - Create a special effect attached to the chest of Caster using Abilities\Spells\Human\Invisibility\InvisibilityTarget.mdl
Special Effect - Destroy (Last created special effect)
-------- Stores target into Hashtable --------
Hashtable - Save Handle OfTarget as 0 of (Key (Triggering unit)) in Hashtable
-------- Stores the Distance-to-jump and distance at which the Caster shall start landing --------
Hashtable - Save Real[1] as 1 of (Key (Triggering unit)) in Hashtable
Hashtable - Save Real[2] as 2 of (Key (Triggering unit)) in Hashtable
-------- NOTE 1: All required information is attached to caster. That's why it was made Invulnerable --------
-------- Checks if there is any instance of spell already in effect --------
-------- If not, turns the Loop trigger on --------
If ((Leapers is empty) Equal to True) then do (Trigger - Turn on Heroic Leap Loop <gen>) else do (Do nothing)
-------- Adds the Caster into Leapers' group --------
Unit Group - Add Caster to Leapers
-------- Removes leaks --------
Custom script: call RemoveLocation(udg_Points[1])
Custom script: call RemoveLocation(udg_Points[2])
Heroic Leap Loop
Events
Time - Every 0.04 seconds of game time
Conditions
Actions
Unit Group - Pick every unit in Leapers and do (Actions)
Loop - Actions
-------- Stores Target and Caster into variables --------
Set Target = (Load 0 of (Key (Picked unit)) in Hashtable)
Set Caster = (Picked unit)
-------- Finds the locations of Caster and Target --------
Set Points[1] = (Position of Caster)
Set Points[2] = (Position of Target)
-------- Finds a location to which the Caster would be moved --------
-------- NOTE 1: Here change your speed --------
-------- NOTE 2: Speed is counted by dividing your real number into trigger's loop interval --------
-------- NOTE 3: My speed is 40/0.04=1000 units per second --------
Set Points[3] = (Points[1] offset by 40.00 towards (Angle from Points[1] to Points[2]) degrees)
-------- Loads the Distance at which caster would start landing --------
Set Real[1] = (Load 2 of (Key (Picked unit)) from Hashtable)
-------- Counts the Distance between caster and target --------
Set Real[2] = (Distance between Points[1] and Points[2])
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Real[2] Greater than or equal to 120.00
Then - Actions
-------- If distance between caster and target is greater than 120, then... --------
-------- Moves caster to Points[3] --------
Unit - Move Caster instantly to Points[3], facing Points[2]
-------- Increases/decreases the flying heigh of Caster --------
-------- NOTE 4: Here it checks if the Distance between Caster and Target is greater than Distance at which Caster should start landing --------
-------- If yes, then it increases the flying height of the caster, else reduces it by equal amount --------
If (Real[2] Greater than or equal to Real[1]) then do (Set Real[1] = 8.00) else do (Set Real[1] = -8.00)
Unit - Add Storm Crow Form to Caster
Unit - Remove Storm Crow Form from Caster
Animation - Change Caster flying height to ((Current flying height of Caster) + Real[1]) at 1000000000.00
Else - Actions
-------- Else... --------
-------- Resets the Flying height of Caster --------
Animation - Change Caster flying height to 0.00 at 100000000.00
-------- Makes it vurnerable again and turns it's collisiong on --------
Unit - Make Caster Vulnerable
Unit - Turn collision for Caster On
-------- Orders caster to attack target --------
Unit - Order Caster to Attack Target
-------- Creates the Thunderclap --------
-------- NOTE 5: Change damage at dummy ability in Object Editor --------
Unit - Create 1 Dummy Unit for (Owner of Caster) at Points[1] facing Default building facing degrees
Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
Unit - Add Dummy Thunder Clap to (Last created unit)
Unit - Set level of Dummy Thunder Clap for (Last created unit) to (Level of Heroic Leap for Caster)
Unit - Order (Last created unit) to Human Mountain King - Thunder Clap
-------- Clears the Hashtable and Removes caster from Leapers' group --------
Hashtable - Clear all child hashtables of child (Key (Picked unit)) in Hashtable
Unit Group - Remove (Picked unit) from Leapers
-------- Clears leaks --------
Custom script: call RemoveLocation(udg_Points[1])
Custom script: call RemoveLocation(udg_Points[2])
Custom script: call RemoveLocation(udg_Points[3])
-------- Checks if there is any instance left after loop --------
-------- If not, turns this trigger off --------
If ((Leapers is empty) Equal to True) then do (Trigger - Turn off (This trigger)) else do (Do nothing)
v0.01 - First Released
Keywords:
heroic, leap, thunder, clap, jump, forward, stun, attack, land
If ((Leapers is empty) Equal to True) then do (Trigger - Turn on Heroic Leap Loop <gen>) else do (Do nothing)
Is bad, use normal ITE handle.
Unit - Add Storm Crow Form to Caster
Unit - Remove Storm Crow Form from Caster
Should be in the cast trigger, not in the periodic. You need to add/remove it only 1 time.
Animation - Change Caster flying height to ((Current flying height of Caster) + Real[1]) at 1000000000.00
0.00 is instant too.
- Use coordinates, locations are bad.
- You can leave the boundary of the map. Please add a condition to check the pathability.
- Theres not tree-destruction functions, better add some, otherwise caster might stuck between trees sometimes.
Neat idea, but not really original (imo), would vote if it was something special, but...
I understood this before, didn't have time to change.
- Use coordinates, locations are bad.
- You can leave the boundary of the map. Please add a condition to check the pathability.
- Theres not tree-destruction functions, better add some, otherwise caster might stuck between trees sometimes.
I don't use JASS that much that I simply deny my sweet locations
It's a target-unit spell, and it is based off on Storm Bolt (stuns before jump), so it shouldn't get stuck.
Neat idea, but not really original (imo), would vote if it was something special, but...
As stated above, the (Do Nothing) function takes up a part of the RAM while being called, thus, for example, if you have 15 running instances of the spell (as far as I can see, you use the ITE everytime when the group-call ends), it will critically increase the lag for the players.
It's a target-unit spell, and it is based off on Storm Bolt (stuns before jump), so it shouldn't get stuck.
Yes it can always get stuck, thats why most of DotA's (yes I'm referring to DotA because thats the map with the most spells I've played) spells that uses a similar to this function, has the tree-destroying function, just in case.
I don't use JASS that much that I simply deny my sweet locations
This should be pretty much to calc the parabola =)
How to calc Parabola:
Set Var_Parabola[Int] = (((4.00 x Var_Height[Int]) / Var_MaxDistance[Int]) x ((Var_MaxDistance[Int] - Var_Distance[Int]) x (Var_Distance[Int] / Var_MaxDistance[Int])))
OMG I am the only one who noticed this ??? :
Because he used the Storm bolt to start the casting the until is stuned BEFORE the caster reaches him. That must be fixed. Set the storm bolt speed = to the caster's jump speed to fix it insted of puting a 10000 misile speed.
ALSO increase the caster's height as it travels to make it more as a jump.
OMG I am the only one who noticed this ??? :
Because he used the Storm bolt to start the casting the until is stuned BEFORE the caster reaches him. That must be fixed. Set the storm bolt speed = to the caster's jump speed to fix it insted of puting a 10000 misile speed.
OMG, dude, have you ever played WoW as warrior? Have you ever seen, how does Charge/Intercept abilities work? Both of them stun target before it starts running towards it (!) and stun usually finishes after Warrior reaches it's target.
I am just saying it will be 354 times more logical that the target is stuned when you strike him and not magicaly as soon as you start jumping. You can decide:
1)Do it like WOW warrior
2)Do it better than a WOW warrior.
Your call man.
I know you are a great spell maker but everyone got mistakes!!
Although I am not the creator of this Spell-Map, I added the functions mentioned in the comments.
I did adjust the height & smoothness and cleared those mistakes.
Edit: I implemented the Spell in a bigger Map and it's codeset is bugging around like hell, I twisted everything possible and kinda had to recode the whole Spell (used Paladon's Jump System after 1 hour without success).
The Unit always Jumps to the Center of the Map instead to the target, eventhough the expected trigger-action should make him do it correctly.
I'm having the same problem as Hades17: Whenever I use the spell, it sends my unit to the center of the map. I'm no expert at triggering, and understand almost nothing about the triggers involved in this spell, I've tried fiddling with those on this spell... to no avail.
Hello my friend! I would like to get your help on. I was making a Time Leap spell with almost the same trigger programmed, the only thing I am struggling on right now is I cannot summon my dummy even though I did the same process as yours. Take a look at my Trigger. Hope you can help me with this or even others. Just a begginer programmer of Warcraft, motivating my skills in this kind of programming because I wanted to become like others here.
Loop
Events
Time - Every 0.03 seconds of game time
Conditions
Actions
For each (Integer D_Integer[2]) from 1 to D_Integer[1], do (Actions)
Loop - Actions
Set D_DB[D_Integer[2]] = (D_DB[D_Integer[2]] - D_Reached[D_Integer[2]])
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
D_Boolean[D_Integer[2]] Equal to True
D_DB[D_Integer[2]] Greater than 0.00
Then - Actions
Set D_Loc[0] = (Position of D_Caster[D_Integer[2]])
Set D_Loc[1] = (Target point of ability being cast)
Set D_Loc[2] = (D_Loc[2] offset by D_Speed[D_Integer[2]] towards D_Angle[D_Integer[2]] degrees)
Unit - Move D_Caster[D_Integer[2]] instantly to D_Loc[2]
Else - Actions
Unit - Create 1 Dummy for D_Owner[D_Integer[2]] at D_Loc[2] facing Default building facing degrees
Unit - Add Slow Dummy to (Last created unit)
Unit - Order (Last created unit) to Human Mountain King - Thunder Clap
Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
Hello, same problem here. Units go to the center of the map. Checked the variables/hashtables and triggers, everything seems to be in order (As far as I can understand).
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.