- Joined
- Apr 19, 2011
- Messages
- 1,331
I tried to do a simple Charge spell using Hashtables, but the problem is that at end the targeted unit is stunned multiple times. And i don't understand why it cast thunder bolt multiple times.
There are the triggers :
There are the triggers :
-
Charge init
-
Evénements
- Map initialization
- Conditions
-
Actions
- Table de hachage - Create a hashtable
- Set Charge_Targets = (Last created hashtable)
-
Evénements
-
Charge cast
-
Evénements
- Unité - A unit Initie l'effet d'une compétence
- Conditions
-
Actions
- Groupe unité - Add (Triggering unit) to Charge_Casters
- Table de hachage - Save Handle Of(Target unit of ability being cast) as 0 of (Key (Triggering unit)) in Charge_Targets
- Unité - Turn collision for (Triggering unit) Off
- Déclencheur - Turn on Charge loop <gen>
-
Evénements
-
Charge loop
-
Evénements
- Temps - Every 0.05 seconds of game time
- Conditions
-
Actions
-
Groupe unité - Pick every unit in Charge_Casters and do (Actions)
-
Boucle - Actions
- Set Charge_Point = (Position of (Picked unit))
- Set Charge_Point2 = (Position of (Load 0 of (Key (Picked unit)) in Charge_Targets))
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Si - Conditions
- (Distance between Charge_Point and Charge_Point2) Supérieur à 50.00
-
Alors - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Si - Conditions
- ((Load 0 of (Key (Picked unit)) in Charge_Targets) is Insensible à la magie) Egal à FALSE
- ((Load 0 of (Key (Picked unit)) in Charge_Targets) has buff Invulnérable) Egal à FALSE
- ((Load 0 of (Key (Picked unit)) in Charge_Targets) is dead) Egal à FALSE
- ((Picked unit) is dead) Egal à FALSE
- ((Load 0 of (Key (Picked unit)) in Charge_Targets) is hidden) Egal à FALSE
- ((Load 0 of (Key (Picked unit)) in Charge_Targets) is visible to (Owner of (Picked unit))) Egal à TRUE
- ((Load 0 of (Key (Picked unit)) in Charge_Targets) is fogged to (Owner of (Picked unit))) Egal à FALSE
- ((Load 0 of (Key (Picked unit)) in Charge_Targets) is masked to (Owner of (Picked unit))) Egal à FALSE
-
Alors - Actions
- Set Charge_Point3 = (Charge_Point offset by 22.50 towards (Angle from Charge_Point to Charge_Point2) degrees)
- Unité - Move (Picked unit) instantly to Charge_Point3, facing Charge_Point2
- Custom script: call RemoveLocation( udg_Charge_Point3 )
-
Sinon - Actions
- Unité - Turn collision for (Picked unit) On
- Groupe unité - Remove (Picked unit) from Charge_Casters
- Table de hachage - Clear all child hashtables of child (Key (Picked unit)) in Charge_Targets
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Si - Conditions
- (Charge_Casters is empty) Egal à TRUE
-
Alors - Actions
- Déclencheur - Turn off (This trigger)
- Sinon - Actions
-
Si - Conditions
-
Si - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Sinon - Actions
- Unité - Turn collision for (Picked unit) On
- Groupe unité - Remove (Picked unit) from Charge_Casters
- Unité - Create 1 Charge Dummy for (Owner of (Picked unit)) at Charge_Point2 facing Charge_Point2
- Unité - Set level of Charge Stun for (Last created unit) to (Level of Charge for (Picked unit))
- Unité - Order (Last created unit) to Roi de la montagne humain - Boule de foudre (Load 0 of (Key (Picked unit)) in Charge_Targets)
- Unité - Add a 1.00 second Générique expiration timer to (Last created unit)
- Unité - Order (Picked unit) to Attaquer (Load 0 of (Key (Picked unit)) in Charge_Targets)
- Table de hachage - Clear all child hashtables of child (Key (Picked unit)) in Charge_Targets
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Si - Conditions
- (Charge_Casters is empty) Egal à TRUE
-
Alors - Actions
- Déclencheur - Turn off (This trigger)
- Sinon - Actions
-
Si - Conditions
-
Si - Conditions
- Custom script: call RemoveLocation( udg_Charge_Point )
- Custom script: call RemoveLocation( udg_Charge_Point2 )
-
Boucle - Actions
-
Groupe unité - Pick every unit in Charge_Casters and do (Actions)
-
Evénements