- Joined
- Oct 16, 2011
- Messages
- 308
I'm trying to make a triggered version of the Shockwave ability. Unfortunately, I have problems with the loop I made. Can anyone fix it for me? Thanks in advance.
-
Shockwave
-

Events
-


Unit - A unit Starts the effect of an ability
-
-

Conditions
-


(Ability being cast) Equal to Shockwave (Cairne)
-
-

Actions
-


Set SW_Max = (SW_Max + 1)
-


Set SW_Caster[SW_Max] = (Triggering unit)
-


Set SW_Point[1] = (Position of SW_Caster[SW_Max])
-


Set SW_Point[2] = (Target point of ability being cast)
-


Set SW_Ability = (Ability being cast)
-


Set SW_Lvl[SW_Max] = (Level of (Ability being cast) for SW_Caster[SW_Max])
-


Set SW_Distance[SW_Max] = 1500.00
-


Set SW_Speed = 12.50
-


Set SW_Damage[1] = 75.00
-


Set SW_Damage[2] = 150.00
-


Set SW_Damage[3] = 300.00
-


Set SW_Area[1] = 125.00
-


Set SW_Area[2] = 125.00
-


Set SW_Area[3] = 125.00
-


Unit - Create 1 Shockwave for (Owner of SW_Caster[SW_Max]) at SW_Point[1] facing SW_Point[2]
-


Set SW_Shockwave[SW_Max] = (Last created unit)
-


Unit - Turn collision for SW_Shockwave[SW_Max] Off
-


Set SW_Angle[SW_Max] = (Facing of SW_Shockwave[SW_Max])
-


If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-



If - Conditions
-




SW_Max Equal to 1
-
-



Then - Actions
-




Trigger - Turn on Shockwave Loop <gen>
-
-



Else - Actions
-
-


Custom script: call RemoveLocation(udg_SW_Point[1])
-


Custom script: call RemoveLocation(udg_SW_Point[2])
-
-
-
Shockwave Loop
-

Events
-


Time - Every 0.03 seconds of game time
-
-

Conditions
-

Actions
-


For each (Integer SW_Loop) from 1 to SW_Max, do (Actions)
-



Loop - Actions
-




Set SW_Distance[SW_Loop] = (SW_Distance[SW_Loop] - SW_Speed)
-




Set SW_Point[1] = (Position of SW_Shockwave[SW_Loop])
-




Set SW_Point[2] = (SW_Point[1] offset by SW_Speed towards SW_Angle[SW_Loop] degrees)
-




Unit - Move SW_Shockwave[SW_Loop] instantly to SW_Point[2], facing SW_Angle[SW_Loop] degrees
-




Set SW_GroupInitial[SW_Loop] = (Units within SW_Area[SW_Lvl[SW_Loop]] of SW_Point[2] matching ((((Matching unit) belongs to an enemy of (Owner of SW_Caster[SW_Loop])) Equal to True) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) is in SW_GroupDamaged[SW_Loop]) Equal
-




Unit Group - Pick every unit in SW_GroupInitial[SW_Loop] and do (Actions)
-





Loop - Actions
-






Unit - Cause SW_Caster[SW_Loop] to damage (Picked unit), dealing SW_Damage[SW_Lvl[SW_Loop]] damage of attack type Spells and damage type Normal
-






Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities\Spells\Undead\AnimateDead\AnimateDeadTarget.mdl
-






Special Effect - Destroy (Last created special effect)
-






Unit Group - Add (Picked unit) to SW_GroupDamaged[SW_Loop]
-
-
-




Custom script: call RemoveLocation(udg_SW_Point[1])
-




Custom script: call RemoveLocation(udg_SW_Point[2])
-




Custom script: call DestroyGroup( udg_SW_GroupInitial[udg_SW_Loop] )
-




If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-





If - Conditions
-






SW_Distance[SW_Loop] Less than or equal to 0.00
-
-





Then - Actions
-






Custom script: call DestroyGroup( udg_SW_GroupDamaged[udg_SW_Loop] )
-






Unit - Kill SW_Shockwave[SW_Loop]
-






Set SW_GroupInitial[SW_Loop] = SW_GroupInitial[SW_Max]
-






Set SW_GroupDamaged[SW_Loop] = SW_GroupDamaged[SW_Max]
-






Set SW_Shockwave[SW_Loop] = SW_Shockwave[SW_Max]
-






Set SW_Shockwave[SW_Max] = No unit
-






Set SW_Caster[SW_Loop] = SW_Caster[SW_Max]
-






Set SW_Caster[SW_Max] = No unit
-






Set SW_Distance[SW_Loop] = SW_Distance[SW_Max]
-






Set SW_Angle[SW_Loop] = SW_Angle[SW_Max]
-






Set SW_Lvl[SW_Loop] = SW_Lvl[SW_Max]
-






Set SW_Max = (SW_Max - 1)
-






Set SW_Loop = (SW_Loop - 1)
-
-





Else - Actions
-
-




If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-





If - Conditions
-






SW_Max Equal to 0
-
-





Then - Actions
-






Trigger - Turn off (This trigger)
-
-





Else - Actions
-
-
-
-
-








