Binding Units to Variable Trouble

Velex

New Member
Reaction score
1
I'm trying to bind units to variables: player1units 1-8
Each time you spawn a unit it needs to be bound to an open number. If a unit dies, the number needs to open and be able to bind with a new unit, when a new one spawns.

This is the trigger I made, however it dosn't seem to work, as the first unit I make seems to bind to every number.

Set Squad 1
Events
Unit - A unit enters (Playable map area)
Conditions
(Owner of (Entering unit)) Equal to Player 1 (Red)
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Entering unit) Not equal to Player1Units[2]
(Entering unit) Not equal to Player1Units[3]
(Entering unit) Not equal to Player1Units[4]
(Entering unit) Not equal to Player1Units[5]
(Entering unit) Not equal to Player1Units[6]
(Entering unit) Not equal to Player1Units[7]
(Entering unit) Not equal to Player1Units[8]
Player1Units[1] Equal to No unit
Then - Actions
Set Player1Units[1] = (Entering unit)
Skip remaining actions
Else - Actions
Do nothing
Wait 0.01 seconds
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Entering unit) Not equal to Player1Units[1]
(Entering unit) Not equal to Player1Units[3]
(Entering unit) Not equal to Player1Units[4]
(Entering unit) Not equal to Player1Units[5]
(Entering unit) Not equal to Player1Units[6]
(Entering unit) Not equal to Player1Units[7]
(Entering unit) Not equal to Player1Units[8]
Player1Units[2] Equal to No unit
Then - Actions
Set Player1Units[2] = (Entering unit)
Skip remaining actions
Else - Actions
Wait 0.01 seconds
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Entering unit) Not equal to Player1Units[1]
(Entering unit) Not equal to Player1Units[2]
(Entering unit) Not equal to Player1Units[4]
(Entering unit) Not equal to Player1Units[5]
(Entering unit) Not equal to Player1Units[6]
(Entering unit) Not equal to Player1Units[7]
(Entering unit) Not equal to Player1Units[8]
Player1Units[3] Equal to No unit
Then - Actions
Set Player1Units[3] = (Entering unit)
Skip remaining actions
Else - Actions
Wait 0.01 seconds
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Entering unit) Not equal to Player1Units[1]
(Entering unit) Not equal to Player1Units[2]
(Entering unit) Not equal to Player1Units[3]
(Entering unit) Not equal to Player1Units[5]
(Entering unit) Not equal to Player1Units[6]
(Entering unit) Not equal to Player1Units[7]
(Entering unit) Not equal to Player1Units[8]
Player1Units[4] Equal to No unit
Then - Actions
Set Player1Units[4] = (Entering unit)
Skip remaining actions
Else - Actions
Wait 0.01 seconds
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Entering unit) Not equal to Player1Units[1]
(Entering unit) Not equal to Player1Units[2]
(Entering unit) Not equal to Player1Units[3]
(Entering unit) Not equal to Player1Units[4]
(Entering unit) Not equal to Player1Units[6]
(Entering unit) Not equal to Player1Units[7]
(Entering unit) Not equal to Player1Units[8]
Player1Units[5] Equal to No unit
Then - Actions
Set Player1Units[5] = (Entering unit)
Skip remaining actions
Else - Actions
Wait 0.01 seconds
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Entering unit) Not equal to Player1Units[1]
(Entering unit) Not equal to Player1Units[2]
(Entering unit) Not equal to Player1Units[3]
(Entering unit) Not equal to Player1Units[4]
(Entering unit) Not equal to Player1Units[5]
(Entering unit) Not equal to Player1Units[7]
(Entering unit) Not equal to Player1Units[8]
Player1Units[6] Equal to No unit
Then - Actions
Set Player1Units[6] = (Entering unit)
Skip remaining actions
Else - Actions
Wait 0.01 seconds
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Entering unit) Not equal to Player1Units[1]
(Entering unit) Not equal to Player1Units[2]
(Entering unit) Not equal to Player1Units[3]
(Entering unit) Not equal to Player1Units[4]
(Entering unit) Not equal to Player1Units[5]
(Entering unit) Not equal to Player1Units[6]
(Entering unit) Not equal to Player1Units[8]
Player1Units[7] Equal to No unit
Then - Actions
Set Player1Units[7] = (Entering unit)
Skip remaining actions
Else - Actions
Wait 0.01 seconds
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Entering unit) Not equal to Player1Units[1]
(Entering unit) Not equal to Player1Units[2]
(Entering unit) Not equal to Player1Units[3]
(Entering unit) Not equal to Player1Units[4]
(Entering unit) Not equal to Player1Units[5]
(Entering unit) Not equal to Player1Units[6]
(Entering unit) Not equal to Player1Units[7]
Player1Units[8] Equal to No unit
Then - Actions
Set Player1Units[8] = (Entering unit)
Skip remaining actions
Else - Actions
Do nothing
 

Cheddar

This is the way it was meant to be.
Reaction score
126
I think "Skip remaining actions" is only skipping the actions that follow it in the "Then" portion of the If-Then-Else (i.e. it skips nothing)
 

ManyTimes

I'm so lonesome I could cry...
Reaction score
293
>>I think "Skip remaining actions" is only skipping the actions that...
Skip skips.

Use [COD E] and trigger here [/COD E] without space, thank you.

Why do you need this...why not a unit group per player? or one unit group only? Or ...
else:
Code:
Untitled Trigger 003
    Events
        Unit - A unit enters Region 000 <gen>
    Conditions
    Actions
        For each (Integer i) from 1 to 4, do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        player1units[i] Equal to (Triggering unit)
                    Then - Actions
                        Set i = 99
                        Skip remaining actions
                    Else - Actions
        For each (Integer i) from 1 to 4, do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        player1units[i] Equal to No unit
                    Then - Actions
                        Set player1units[i] = (Triggering unit)
                        Set i = 99
                    Else - Actions
Code:
Untitled Trigger 003 Copy
    Events
        Unit - A unit Dies
    Conditions
    Actions
        For each (Integer i) from 1 to 4, do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        player1units[i] Equal to (Triggering unit)
                    Then - Actions
                        Set player1units[i] = No unit
                        Set i = 99
                    Else - Actions
i = integer variable, player 1 units = unit array.
You can have one unit variable only, example:
Code:
Actions
    For each (Integer i) from 1 to 4, do (Actions)
        Loop - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    oneUnitVar[(i + ((Player number of (Owner of (Triggering unit))) x 10))] Equal to (Triggering unit)
                Then - Actions
                    Set oneUnitVar[i] = No unit
                    Set i = 99
                Else - Actions
 

Velex

New Member
Reaction score
1
Got it! I fixed the setting units, using if/then/else inside each other. Then appariently you can't order multiple single units to do the same thing in the same trigger, so I had to make 1 for each one.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top