Integer a changing from 1 to 5

Dameon

"All the power in the world resides in the eyes"
Reaction score
127
Ok so I kill unit O_U([1]) but for some reason the trigger suddenly changes integer a's value from 1 to 5. which is causing a big problem. These are the 2 triggers, I am leaving out the one that creates the DL_U cause all it does is create them then sets them to a variable and hides them.
Trigger:
  • MI
    • Events
      • Map initialization
    • Conditions
    • Actions
      • For each (Integer A) from 1 to 4, do (Actions)
        • Loop - Actions
          • Unit - Create 1 Angelic Obelisk for Player 9 (Gray) at ((Player((Integer A))) start location) facing Default building facing degrees
          • Set O_U[(Integer A)] = (Last created unit)
          • Unit - Create 1 Demonic Obelisk for Player 11 (Dark Green) at ((Player(((Integer A) + 4))) start location) facing Default building facing degrees
          • Set O_U[((Integer A) + 4)] = (Last created unit)
      • Unit - Remove Invulnerable (Neutral) from O_U[1]

Trigger:
  • O Killed
    • Events
      • Unit - A unit Dies
    • Conditions
    • Actions
      • For each (Integer A) from 1 to 4, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Dying unit) Equal to O_U[(Integer A)]
            • Then - Actions
              • Unit - Kill O_U[((Integer A) + 4)]
              • Unit - Remove Invulnerable (Neutral) from O_U[((Integer A) + 1)]
              • Game - Display to (All players) the text: (String((Integer A)))
              • Unit - Unhide DL_U[(Integer A)]
              • Unit - Order DL_U[(Integer A)] to Attack-Move To (Position of O_U[((Integer A) + 1)])
            • Else - Actions


So this is what is happening, when I kill unit O_U([1]) the invulnerable ability is removed from O_U([5]) and it displays a 5 in game chat. It should be removing the ability from O_U([2]) and displaying a 1 but for some reason it gives a 5 and I don't know why.
 

Imp Midna

Active Member
Reaction score
52
Thats because the for loop is build in a way that it exits when Integer A is > 4, which means that the Int is still set to 5 before leaving the recursive call.
Edit: recursive is written with c, not k. stupid me...
 

Solu9

You can change this now in User CP.
Reaction score
216
Unit - Kill O_U[((Integer A) + 4) here you kill the unit 1+4 = 5 I guess.
 

Dameon

"All the power in the world resides in the eyes"
Reaction score
127
The problem does have to do with the kill unit action but only cause it re-ques the trigger which seems to be what is breaking everything[not sure how or why lol], My work around was simply to disable the trigger before the actions then to re-enable it after them. So the trigger works right now. Never had this trouble with a trigger and the kill action before, but then again I always used remove unit before.
 
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