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

[Solved] Multiple Casts - One issue order

Status
Not open for further replies.
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 :

  • Charge init
    • Evénements
      • Map initialization
    • Conditions
    • Actions
      • Table de hachage - Create a hashtable
      • Set Charge_Targets = (Last created hashtable)
  • 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>
  • 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
            • 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
          • Custom script: call RemoveLocation( udg_Charge_Point )
          • Custom script: call RemoveLocation( udg_Charge_Point2 )
 
Status
Not open for further replies.
Top