• 🏆 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!

Heroic Leap v0.01

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
Contents

Heroic Leap v0.01 (Map)

Reviews
18:59, 12th Jul 2010 TriggerHappy: Nice effect and the coding was fine.

Moderator

M

Moderator

18:59, 12th Jul 2010
TriggerHappy:

Nice effect and the coding was fine.
 
Level 13
Joined
Feb 18, 2009
Messages
1,381
You should pick every unit every 0.03 second, to make it look more smooth.
No leaks though :)
 
Level 19
Joined
Feb 25, 2009
Messages
2,004
parabola = what?
I will be only nine-grader, so I dunno what is that

http://en.wikipedia.org/wiki/Parabola

  • 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...
 
Level 9
Joined
Oct 31, 2009
Messages
121

Thank you, but it's quite hard for me :D

  • 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.
Why is this so bad???

  • 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.
gonna fix that

  • Animation - Change Caster flying height to ((Current flying height of Caster) + Real[1]) at 1000000000.00
0.00 is instant too.
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 :D
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...
Thank you ;)
 
Level 13
Joined
Feb 18, 2009
Messages
1,381
It is so bad because you use "Do nothing" it uses up RAM for absoloutly no good. If you use normal ITE there you don't have to add an "else".
 
Level 19
Joined
Feb 25, 2009
Messages
2,004
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 :D

Nobody has ever said you need to use JASS for them, custom-scripts will always do the job.
 
Level 2
Joined
Sep 9, 2009
Messages
20
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.
 
Level 9
Joined
Oct 31, 2009
Messages
121
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.
 
Level 2
Joined
Sep 9, 2009
Messages
20
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!!
 
Last edited:
Level 6
Joined
Jun 24, 2011
Messages
176
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.
 

Attachments

  • Heroic Leap v0.02.w3x
    16.6 KB · Views: 152
Last edited:
Level 1
Joined
Apr 28, 2015
Messages
1
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.

Someone help!
 
Level 2
Joined
Nov 28, 2015
Messages
8
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)
          • Custom script: call RemoveLocation (udg_D_Loc[0])
          • Custom script: call RemoveLocation (udg_D_Loc[1])
          • Custom script: call RemoveLocation (udg_D_Loc[2])
 
Top