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:
Periodic:
The issued frost nova is later supposed to be a movement speed buff <_< Still working on it, lol.
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)
- If - Conditions
- -------- 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])
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- Events
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])
- Loop - Actions
- 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])
- If - Conditions
- 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])
- If - Conditions
- Custom script: call RemoveLocation(udg_Temp_Point[1])
- Loop - Actions
- Unit Group - Pick every unit in Temp_UGroup[1] and do (Actions)
- Events
The issued frost nova is later supposed to be a movement speed buff <_< Still working on it, lol.