Leap Spell not working

Murre

New Member
Reaction score
14
I used the same way of making this Leap spell as a person on this site used to create a toss spell (in some of the request threads). Here are the triggers:
Trigger:
  • Warden Leap
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Leap
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Temp_CV Greater than or equal to 100
        • Then - Actions
          • Set Temp_CV = 1
        • Else - Actions
          • Set Temp_CV = (Temp_CV + 1)
      • -------- Time taken to land --------
      • Set Temp_Real[1] = 1.00
      • -------- -------------------------------------- --------
      • Set Temp_Unit[Temp_CV] = (Triggering unit)
      • Set Temp_Point[1] = (Position of (Triggering unit))
      • Set Temp_Real[2] = (Facing of Temp_Unit[1])
      • Set Temp_Point[2] = (Temp_Point[1] offset by (700.00 + (100.00 x (Real((Level of Leap for (Triggering unit)))))) towards Temp_Real[2] degrees)
      • Set Temp_Real[3] = (Distance between Temp_Point[1] and Temp_Point[2])
      • Set Temp_Real[4] = 0.00
      • Set Temp_Real[5] = 250.00
      • Set Temp_Real[6] = 250.00
      • Set Temp_Real[7] = ((600.00 / Temp_Real[1]) x 0.03)
      • Set Temp_Real[8] = ((Temp_Real[3] / Temp_Real[1]) x 0.03)
      • Set Temp_Real[9] = Temp_Real[3]
      • Unit - Add Crow Form to (Triggering unit)
      • Unit - Remove Crow Form from (Triggering unit)
      • Unit - Create 1 Hidden Dummy for (Owner of (Triggering unit)) at Temp_Point[1] facing Default building facing degrees
      • Unit - Set the custom value of (Last created unit) to Temp_CV
      • Unit Group - Add (Last created unit) to Temp_UGroup[1]
      • Trigger - Turn on Warden Leap Periodic <gen>
      • Custom script: call DestroyGroup(udg_Temp_UGroup[1])
      • Custom script: call RemoveLocation(udg_Temp_Point[1])
      • Custom script: call RemoveLocation(udg_Temp_Point[2])


Periodic:

Trigger:
  • Warden Leap Periodic
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in Temp_UGroup[1] and do (Actions)
        • Loop - Actions
          • Set Temp_Int[1] = (Custom value of (Picked unit))
          • Set Temp_Point[1] = (Position of Temp_Unit[Temp_CV])
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Temp_Real[3] Less than or equal to 0.00
            • Then - Actions
              • Unit - Turn collision for Temp_Unit[Temp_CV] On
              • Set Temp_Point[2] = (Position of Temp_Unit[Temp_CV])
              • Set Temp_UGroup[2] = (Units within 500.00 of Temp_Point[1] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) belongs to an ally of (Owner of Temp_Unit[Temp_CV])) Equal to True)) and (((Matching unit) is alive) Equal to True)))
              • Unit Group - Pick every unit in Temp_UGroup[2] and do (Actions)
                • Loop - Actions
                  • Set Temp_Point[3] = (Position of (Picked unit))
                  • Special Effect - Create a special effect at Temp_Point[3] using Abilities\Spells\Undead\ReplenishMana\ReplenishManaCaster.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • Unit - Create 1 Hidden Dummy for (Owner of (Picked unit)) at Temp_Point[3] facing Default building facing degrees
                  • Unit - Add Leap Speed Buffer to (Last created unit)
                  • Unit - Order (Last created unit) to Undead Lich - Frost Nova (Picked unit)
                  • Unit - Remove (Last created unit) from the game
                  • Custom script: call RemoveLocation(udg_Temp_Point[3])
              • Unit - Remove (Picked unit) from the game
              • Custom script: call DestroyGroup(udg_Temp_UGroup[1])
              • Custom script: call DestroyGroup(udg_Temp_UGroup[2])
              • Custom script: call RemoveLocation(udg_Temp_Point[1])
              • Custom script: call RemoveLocation(udg_Temp_Point[2])
              • Trigger - Turn off (This trigger)
            • Else - Actions
              • Unit - Turn collision for Temp_Unit[Temp_CV] Off
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Temp_Real[3] Less than or equal to (Temp_Real[9] x 0.50)
                • Then - Actions
                  • Set Temp_Real[6] = (Temp_Real[6] - Temp_Real[7])
                  • Set Temp_Real[4] = (Temp_Real[4] - Temp_Real[6])
                • Else - Actions
                  • Set Temp_Real[5] = (Temp_Real[5] - Temp_Real[7])
                  • Set Temp_Real[4] = (Temp_Real[4] + Temp_Real[5])
              • Animation - Change Temp_Unit[Temp_CV] flying height to Temp_Real[4] at 1000000000.00
              • Set Temp_Point[2] = (Temp_Point[1] offset by Temp_Real[8] towards Temp_Real[1] degrees)
              • Unit - Move Temp_Unit[Temp_CV] instantly to Temp_Point[2]
              • Custom script: call RemoveLocation(udg_Temp_Point[2])
              • Set Temp_Real[3] = (Temp_Real[3] - Temp_Real[8])
          • Custom script: call RemoveLocation(udg_Temp_Point[1])

The issued frost nova is later supposed to be a movement speed buff <_< Still working on it, lol.
 

Murre

New Member
Reaction score
14
That's what I'm asking you <_<
When the Warden casts it, she stands still and the effect is created (and destroyed) ontop of her.
 

Mahrloc

New Member
Reaction score
5
you're destroying the unit group in the first trigger right after creating it and without using it, so the data is lost.
 

Mahrloc

New Member
Reaction score
5
well, i don't know if this is completely leakless, but destroy it in the end when there is no unit in it (in the end of the 2nd trigger(create an "if"))
 

Ashlebede

New Member
Reaction score
43
Adding a unit to a group doesn't create a new group. No need to destroy the group, since it remains the same all the time, all you do is add units to/remove units from it.
 

Murre

New Member
Reaction score
14
Adding a unit to a group doesn't create a new group. No need to destroy the group, since it remains the same all the time, all you do is add units to/remove units from it.
Thank you :) Bumping tomorrow if it still won't work!
 

Murre

New Member
Reaction score
14
Thank you :) Bumping tomorrow if it still won't work!
Tried it out now. It doesn't work. Problem is:
The leap is ALWAYS made towards 0 degrees (east) and the Warden jumps really high, plus - she lands and slides a bit.
Triggers:

Trigger:
  • Warden Leap
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Leap
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Temp_CV Greater than or equal to 100
        • Then - Actions
          • Set Temp_CV = 1
        • Else - Actions
          • Set Temp_CV = (Temp_CV + 1)
      • -------- Time taken to land --------
      • Set Temp_Real[1] = 1.00
      • -------- -------------------------------------- --------
      • Set Temp_Unit[Temp_CV] = (Triggering unit)
      • Set Temp_Point[1] = (Position of (Triggering unit))
      • Set Temp_Real[2] = (Facing of (Triggering unit))
      • Set Temp_Point[2] = (Temp_Point[1] offset by (700.00 + (100.00 x (Real((Level of Leap for (Triggering unit)))))) towards Temp_Real[2] degrees)
      • Set Temp_Real[3] = (Distance between Temp_Point[1] and Temp_Point[2])
      • Set Temp_Real[4] = 0.00
      • Set Temp_Real[5] = 150.00
      • Set Temp_Real[6] = 150.00
      • Set Temp_Real[7] = ((300.00 / Temp_Real[1]) x 0.03)
      • Set Temp_Real[8] = ((Temp_Real[3] / Temp_Real[1]) x 0.03)
      • Set Temp_Real[9] = Temp_Real[3]
      • Unit - Add Crow Form to (Triggering unit)
      • Unit - Remove Crow Form from (Triggering unit)
      • Unit - Create 1 Hidden Dummy for (Owner of (Triggering unit)) at Temp_Point[1] facing Temp_Real[2] degrees
      • Unit - Set the custom value of (Last created unit) to Temp_CV
      • Unit Group - Add (Last created unit) to Temp_UGroup[1]
      • Trigger - Turn on Warden Leap Periodic &lt;gen&gt;
      • Custom script: call RemoveLocation(udg_Temp_Point[1])
      • Custom script: call RemoveLocation(udg_Temp_Point[2])


Trigger:
  • Warden Leap Periodic
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in Temp_UGroup[1] and do (Actions)
        • Loop - Actions
          • Set Temp_Int[1] = (Custom value of (Picked unit))
          • Set Temp_Point[1] = (Position of Temp_Unit[Temp_CV])
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Temp_Real[3] Less than or equal to 0.00
            • Then - Actions
              • Unit - Turn collision for Temp_Unit[Temp_CV] On
              • Set Temp_Point[2] = (Position of Temp_Unit[Temp_CV])
              • Set Temp_UGroup[2] = (Units within 500.00 of Temp_Point[1] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) belongs to an ally of (Owner of Temp_Unit[Temp_CV])) Equal to True)) and (((Matching unit) is alive) Equal to True)))
              • Unit Group - Pick every unit in Temp_UGroup[2] and do (Actions)
                • Loop - Actions
                  • Set Temp_Point[3] = (Position of (Picked unit))
                  • Special Effect - Create a special effect at Temp_Point[3] using Abilities\Spells\Undead\ReplenishMana\ReplenishManaCaster.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • Unit - Create 1 Hidden Dummy for (Owner of (Picked unit)) at Temp_Point[3] facing Default building facing degrees
                  • Unit - Add Leap Speed Buffer to (Last created unit)
                  • Unit - Order (Last created unit) to Undead Lich - Frost Nova (Picked unit)
                  • Unit - Remove (Last created unit) from the game
                  • Custom script: call RemoveLocation(udg_Temp_Point[3])
              • Unit - Remove (Picked unit) from the game
              • Custom script: call DestroyGroup(udg_Temp_UGroup[2])
              • Custom script: call RemoveLocation(udg_Temp_Point[1])
              • Custom script: call RemoveLocation(udg_Temp_Point[2])
              • Trigger - Turn off (This trigger)
            • Else - Actions
              • Unit - Turn collision for Temp_Unit[Temp_CV] Off
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Temp_Real[3] Less than or equal to (Temp_Real[9] x 0.50)
                • Then - Actions
                  • Set Temp_Real[6] = (Temp_Real[6] - Temp_Real[7])
                  • Set Temp_Real[4] = (Temp_Real[4] - Temp_Real[6])
                • Else - Actions
                  • Set Temp_Real[5] = (Temp_Real[5] - Temp_Real[7])
                  • Set Temp_Real[4] = (Temp_Real[4] + Temp_Real[5])
              • Animation - Change Temp_Unit[Temp_CV] flying height to Temp_Real[4] at 1000000000.00
              • Set Temp_Point[2] = (Temp_Point[1] offset by Temp_Real[8] towards Temp_Real[1] degrees)
              • Unit - Move Temp_Unit[Temp_CV] instantly to Temp_Point[2]
              • Custom script: call RemoveLocation(udg_Temp_Point[2])
              • Set Temp_Real[3] = (Temp_Real[3] - Temp_Real[8])
          • Custom script: call RemoveLocation(udg_Temp_Point[1])


D:
 

Mahrloc

New Member
Reaction score
5
you haven't got a temp_real[1] you only have a temp_real[2], and it's 0 cause it's the angle
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top