For Loop integer skipping

WildTurkey

Previously known as giv_me_rep
Reaction score
87
So I am running this omnislash inspired trigger with a simple loop a from 1-10.

Sometimes it hits every number from 1-10 but most of the time it skips from 4-8 and stuff and I dont understand why or how to fix?

code below

Code:
Test Spell
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to 360 No Scope
    Actions
        Set Temp_Unit = (Triggering unit)
        Set Temp_Point = (Position of Temp_Unit)
        Set Temp_UG[1] = (Units within 500.00 of Temp_Point matching ((Owner of (Matching unit)) Equal to Player 12 (Brown)))
        Set Temp_UG[2] = (Random 1 units from Temp_UG[1])
        Custom script:   call RemoveLocation (udg_Temp_Point)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Number of units in Temp_UG[2]) Equal to 1
            Then - Actions
                Unit - Make Temp_Unit Invulnerable
                Special Effect - Create a special effect attached to the chest of Temp_Unit using Abilities\Spells\NightElf\Blink\BlinkTarget.mdl
                Special Effect - Destroy (Last created special effect)
                For each (Integer A) from 1 to 10, do (Actions)
                    Loop - Actions
                        Wait 0.50 seconds
                        Unit Group - Pick every unit in Temp_UG[2] and do (Actions)
                            Loop - Actions
                                Game - Display to (All players) the text: (String((Integer A)))
                                Set Temp_TargetUnit = (Picked unit)
                                Set Temp_Point = (Position of Temp_TargetUnit)
                                Unit - Move Temp_Unit instantly to Temp_Point, facing Temp_Point
                                Custom script:   call RemoveLocation (udg_Temp_Point)
                                Animation - Play Temp_Unit's Attack Slam animation
                                Unit - Cause Temp_Unit to damage Temp_TargetUnit, dealing (50.00 x (Real((Level of 360 No Scope  for Temp_Unit)))) damage of attack type Hero and damage type Normal
                                Special Effect - Create a special effect attached to the chest of Temp_Unit using Abilities\Spells\NightElf\Blink\BlinkTarget.mdl
                                Special Effect - Destroy (Last created special effect)
                        Custom script:   call DestroyGroup(udg_Temp_UG[1])
                Game - Display to (All players) the text: finished
                Custom script:   call DestroyGroup(udg_Temp_UG[2])
                Unit - Make Temp_Unit Vulnerable
            Else - Actions
 

Accname

2D-Graphics enthusiast
Reaction score
1,462
You have a wait within your loop. Never use waits.

The problem is that there is probably some other kind of trigger somewhere in your map. And that other trigger ALSO uses the for-each(A) loop.
Because of the wait you give the other trigger the chance to run as well, simultaneously, messing up the results of both triggers because the IntegerA value is changed by both triggers.

When you want to work with the Wc3 editor you have to learn the golden rule:
Wait == Bad
 

WildTurkey

Previously known as giv_me_rep
Reaction score
87
Perfect, I just made a decent jump and knockback system so I guess Ill run something similar for this.
 

Accname

2D-Graphics enthusiast
Reaction score
1,462
Still wont work if he is able to cast the ability with 2 units or with the same unit before the original effect is over.
 
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