why doesn't this store the units in right order?

Sartan

New Member
Reaction score
23
Code:
BattleSetupRound Region 1
    Events
        Map initialization
    Conditions
    Actions
        Unit Group - Pick every unit in (Units in BattleFieldRegion[1]) and do (Actions)
            Loop - Actions
                Unit - Pause (Picked unit)
                Unit Group - Add (Picked unit) to SetTurnGroup
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Number of units in SetTurnGroup) Greater than 1
            Then - Actions
                Set CounterIndex = 0
                Unit Group - Pick every unit in SetTurnGroup and do (Actions)
                    Loop - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                CounterIndex Equal to 0
                            Then - Actions
                                Set CounterIndex = (CounterIndex + 1)
                                Set UnitSpeed[CounterIndex] = (Picked unit)
                            Else - Actions
                                Set CounterIndex = (CounterIndex + 1)
                                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    If - Conditions
                                        (Agility of (Picked unit) (Include bonuses)) Greater than (Agility of UnitSpeed[(CounterIndex - 1)] (Include bonuses))
                                    Then - Actions
                                        Set Filter_unit = UnitSpeed[(CounterIndex - 1)]
                                        Set UnitSpeed[(CounterIndex - 1)] = (Picked unit)
                                        Set UnitSpeed[CounterIndex] = Filter_unit
                                    Else - Actions
                                        Set UnitSpeed[CounterIndex] = (Picked unit)
            Else - Actions
        For each (Integer A) from 1 to CounterIndex, do (Actions)
            Loop - Actions
                Game - Display to (All players) the text: (Name of UnitSpeed[CounterIndex])
well this was made in the hope that it would save all units in a region with the unit with highest agility, why does it always save one unit of 4?

i got 1 of all human heroes in a region.
and my trigger allways display Mountain king, why? what have i done wrong?
 

Yoshii

New Member
Reaction score
74
Because your counter stop at 1 thus only unitspeed[1] is shown
let me bold whats wrong
 

Yoshii

New Member
Reaction score
74
Code:
BattleSetupRound Region 1

                Set CounterIndex = 0
                Unit Group - Pick every unit in SetTurnGroup and do (Actions)
                    Loop - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                CounterIndex Equal to 0
                            Then - Actions
                                Set CounterIndex = (CounterIndex + 1)
                                Set UnitSpeed[CounterIndex] = (Picked unit)[B]here assuming you picked 4 unit countindex will be=0
 thus your action add +1 to counter making  CounterIndex=1 and THEN at bottom you show it. Your loop is not doing it for 
every unit but rather only once as you did "pick every unit in SetupTurngroup and do action, every unit in that region only 
count as 1 as a whole(an army would be the best way to see it hence why only UnitSpeed[1] as a value and only that one will show[/B]
                            [B]Else - Actions[/B][U]this part is never triggered; unless the number of picked unit in the region is 1 or 0 I hope this is what you want[/U]
                                Set CounterIndex = (CounterIndex + 1)
                                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    If - Conditions
                                        (Agility of (Picked unit) (Include bonuses)) Greater than (Agility of UnitSpeed[(CounterIndex - 1)] (Include bonuses))
                                    Then - Actions
                                        Set Filter_unit = UnitSpeed[(CounterIndex - 1)]
                                        Set UnitSpeed[(CounterIndex - 1)] = (Picked unit)
                                        Set UnitSpeed[CounterIndex] = Filter_unit
                                    Else - Actions
                                        Set UnitSpeed[CounterIndex] = (Picked unit)
            Else - Actions
        For each (Integer A) from 1 to CounterIndex, do (Actions)
            Loop - Actions
                Game - Display to (All players) the text: (Name of UnitSpeed[CounterIndex])
See the bold/underline part i did
edit: i meant to edit it double posted again sigh.
 

Sartan

New Member
Reaction score
23
I haven't really looked at the code but when you insert a unit into a unit group, and then pick from that group, the units are read in reverse order from that in which you inserted them.

then how should i add them into the group in reverse way? :O
 
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