Opinions on trigger consolidation :]

Aniconic

I am the very model of a modern major general!
Reaction score
3
Hey guys,

I've got several 1-second periodic event triggers running in my map. Was wondering if it is better computing wise to consolidate them in a single trigger, or to just leave them the way they are?

Thanks!
 

Necrach

You can change this now in User CP.
Reaction score
62
It shouldn't matter very much, however if they are all using the same temp variables its not recommended to run them at the excactly same time (right me if this is wrong, but I had some problems because of this in a map I made)
 

Aniconic

I am the very model of a modern major general!
Reaction score
3
It shouldn't matter very much, however if they are all using the same temp variables its not recommended to run them at the excactly same time (right me if this is wrong, but I had some problems because of this in a map I made)

None of them use the same temp variables, however, many of them check the same bools in their decision making, So I figured I would see if it was better one way or another. :]
 

SineCosine

I'm still looking for my Tangent
Reaction score
77
It's better to have one timer for everything rather than many timers.
Many different timers slow things down.

It's better to have one timer call many functions or perform many tasks.
 

Aniconic

I am the very model of a modern major general!
Reaction score
3
I don't like to leave space for doubt if it can be helped =x

Its cool =P

I just finished merging the triggers. Here is what I came up with:
Trigger:
  • VictoryISortIAllianceToggle
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • And - All (Conditions) are true
            • Conditions
              • Roundstartbool Equal to True
              • (Number of units in Heroes) Equal to 1
        • Then - Actions
          • Set Roundstartbool = False
          • Unit Group - Pick every unit in Heroes and do (Actions)
            • Loop - Actions
              • Set Score[(Player number of (Owner of (Picked unit)))] = (Score[(Player number of (Owner of (Picked unit)))] + 1)
              • Leaderboard - Change the value for (Owner of (Picked unit)) in Player_Board to Score[(Player number of (Owner of (Picked unit)))]
              • Leaderboard - Sort (Last created leaderboard) by Value in Descending order
              • Game - Display to (All players) the text: ((Name of (Owner of (Picked unit))) + has won the match!)
          • Countdown Timer - Pause Round_Timer
          • Unit Group - Pick every unit in (Units in Arena Whole <gen>) and do (Actions)
            • Loop - Actions
              • Unit - Move (Picked unit) instantly to (Random point in Town Square <gen>)
          • Unit Group - Pick every unit in Dead_Heroes and do (Actions)
            • Loop - Actions
              • Hero - Instantly revive (Picked unit) at (Random point in Town Square <gen>), Show revival graphics
              • Unit Group - Remove (Picked unit) from Dead_Heroes
              • Unit Group - Add (Picked unit) to Heroes
          • Countdown Timer - Start Downtime_Timer as a One-shot timer that will expire in 30.00 seconds
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Roundstartbool Equal to True
        • Then - Actions
          • Player Group - Pick every player in (All players) and do (Actions)
            • Loop - Actions
              • Player - Make Player 1 (Red) treat (Picked player) as an Enemy
              • Player - Make Player 2 (Blue) treat (Picked player) as an Enemy
              • Player - Make Player 3 (Teal) treat (Picked player) as an Enemy
              • Player - Make Player 4 (Purple) treat (Picked player) as an Enemy
          • Multiboard - Set the text for (Last created multiboard) item in column 1, row (4 + (Number of players in All_Players)) to Round ends in:
          • Set list = (Integer((Remaining time for Round_Timer)))
        • Else - Actions
          • Player Group - Pick every player in (All players) and do (Actions)
            • Loop - Actions
              • Player - Make Player 1 (Red) treat (Picked player) as an Ally
              • Player - Make Player 2 (Blue) treat (Picked player) as an Ally
              • Player - Make Player 3 (Teal) treat (Picked player) as an Ally
              • Player - Make Player 4 (Purple) treat (Picked player) as an Ally
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Current_Round Less than 1
            • Then - Actions
              • Multiboard - Set the text for (Last created multiboard) item in column 1, row (4 + (Number of players in All_Players)) to First Round in:
            • Else - Actions
              • Multiboard - Set the text for (Last created multiboard) item in column 1, row (4 + (Number of players in All_Players)) to Next Round in:
          • Set list = (Integer((Remaining time for Downtime_Timer)))
      • Multiboard - Set the text for (Last created multiboard) item in column 2, row (4 + (Number of players in All_Players)) to (String(list))
      • Set list = 3
      • For each (Integer A) from 1 to (Number of players in All_Players), do (Actions)
        • Loop - Actions
          • Multiboard - Set the text for (Last created multiboard) item in column 1, row list to (Player_Color[(Player number of (Player in position (Integer A) of Player_Board))] + ((Name of (Player in position (Integer A) of Player_Board)) + |r))
          • Multiboard - Set the text for (Last created multiboard) item in column 2, row list to (Player_Color[(Player number of (Player in position (Integer A) of Player_Board))] + ((String(Kills[(Player number of (Player in position (Integer A) of Player_Board))])) + |r))
          • Multiboard - Set the text for (Last created multiboard) item in column 3, row list to (Player_Color[(Player number of (Player in position (Integer A) of Player_Board))] + ((String(Score[(Player number of (Player in position (Integer A) of Player_Board))])) + |r))
          • Set list = (list + 1)
      • Multiboard - Change the title of (Last created multiboard) to (Arena v1.0 | + (Round + ((String(Current_Round)) + ( of + (String(Max_Rounds))))))
      • Unit Group - Pick every unit in Heroes and do (Actions)
        • Loop - Actions
          • Camera - Lock camera target for (Owner of (Picked unit)) to (Picked unit), offset by (0.00, 0.00) using Default rotation
      • Unit Group - Pick every unit in Dead_Heroes and do (Actions)
        • Loop - Actions
          • Camera - Lock camera target for (Owner of (Picked unit)) to Fountain of Replenishment 0003 <gen>, offset by (0.00, 0.00) using Default rotation


Woot! Big trigger. Wish i knew how to use the spoiler thing. @__@
 

SineCosine

I'm still looking for my Tangent
Reaction score
77
Spoilers don't work in this section of the forums xD

Hmm..
A bit large for me to read, sorry =x
But, Might I suggest something?

Roundstartbool Equal to True and (Number of units in Heroes) Equal to 1 //Do Something ONE
Roundstartbool Equal to True //Do Something TWO
Roundstartbool Equal to False //Do Something (The 'Else') THREE

Why not merge them?
Code:
if Roundstartbool Equal to True then
    //Stuff TWO
    if (Number of units in Heroes) Equal to 1 then
        //Stuff ONE
    endif
else
    //Stuff THREE
endif
 

Aniconic

I am the very model of a modern major general!
Reaction score
3
Yeah I was thinking the same thing too, Fixed :]

Trigger:
  • VictoryISortIAllianceToggle
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Roundstartbool Equal to True
        • Then - Actions
          • Player Group - Pick every player in (All players) and do (Actions)
            • Loop - Actions
              • Player - Make Player 1 (Red) treat (Picked player) as an Enemy
              • Player - Make Player 2 (Blue) treat (Picked player) as an Enemy
              • Player - Make Player 3 (Teal) treat (Picked player) as an Enemy
              • Player - Make Player 4 (Purple) treat (Picked player) as an Enemy
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Number of units in Heroes) Equal to 1
            • Then - Actions
              • Set Roundstartbool = False
              • Player Group - Pick every player in (All players) and do (Actions)
                • Loop - Actions
                  • Player - Make Player 1 (Red) treat (Picked player) as an Ally
                  • Player - Make Player 2 (Blue) treat (Picked player) as an Ally
                  • Player - Make Player 3 (Teal) treat (Picked player) as an Ally
                  • Player - Make Player 4 (Purple) treat (Picked player) as an Ally
              • Unit Group - Pick every unit in Heroes and do (Actions)
                • Loop - Actions
                  • Set Score[(Player number of (Owner of (Picked unit)))] = (Score[(Player number of (Owner of (Picked unit)))] + 1)
                  • Leaderboard - Change the value for (Owner of (Picked unit)) in Player_Board to Score[(Player number of (Owner of (Picked unit)))]
                  • Leaderboard - Sort (Last created leaderboard) by Value in Descending order
                  • Game - Display to (All players) the text: ((Name of (Owner of (Picked unit))) + has won the match!)
              • Countdown Timer - Pause Round_Timer
              • Unit Group - Pick every unit in (Units in Arena Whole <gen>) and do (Actions)
                • Loop - Actions
                  • Unit - Move (Picked unit) instantly to (Random point in Town Square <gen>)
              • Unit Group - Pick every unit in Dead_Heroes and do (Actions)
                • Loop - Actions
                  • Hero - Instantly revive (Picked unit) at (Random point in Town Square <gen>), Show revival graphics
                  • Unit Group - Remove (Picked unit) from Dead_Heroes
                  • Unit Group - Add (Picked unit) to Heroes
              • Countdown Timer - Start Downtime_Timer as a One-shot timer that will expire in 30.00 seconds
            • Else - Actions
              • Do nothing
          • Multiboard - Set the text for (Last created multiboard) item in column 1, row (4 + (Number of players in All_Players)) to Round ends in:
          • Set list = (Integer((Remaining time for Round_Timer)))
        • Else - Actions
          • Player Group - Pick every player in (All players) and do (Actions)
            • Loop - Actions
              • Player - Make Player 1 (Red) treat (Picked player) as an Ally
              • Player - Make Player 2 (Blue) treat (Picked player) as an Ally
              • Player - Make Player 3 (Teal) treat (Picked player) as an Ally
              • Player - Make Player 4 (Purple) treat (Picked player) as an Ally
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Current_Round Less than 1
            • Then - Actions
              • Multiboard - Set the text for (Last created multiboard) item in column 1, row (4 + (Number of players in All_Players)) to First Round in:
            • Else - Actions
              • Multiboard - Set the text for (Last created multiboard) item in column 1, row (4 + (Number of players in All_Players)) to Next Round in:
          • Set list = (Integer((Remaining time for Downtime_Timer)))
      • Multiboard - Set the text for (Last created multiboard) item in column 2, row (4 + (Number of players in All_Players)) to (String(list))
      • Set list = 3
      • For each (Integer A) from 1 to (Number of players in All_Players), do (Actions)
        • Loop - Actions
          • Multiboard - Set the text for (Last created multiboard) item in column 1, row list to (Player_Color[(Player number of (Player in position (Integer A) of Player_Board))] + ((Name of (Player in position (Integer A) of Player_Board)) + |r))
          • Multiboard - Set the text for (Last created multiboard) item in column 2, row list to (Player_Color[(Player number of (Player in position (Integer A) of Player_Board))] + ((String(Kills[(Player number of (Player in position (Integer A) of Player_Board))])) + |r))
          • Multiboard - Set the text for (Last created multiboard) item in column 3, row list to (Player_Color[(Player number of (Player in position (Integer A) of Player_Board))] + ((String(Score[(Player number of (Player in position (Integer A) of Player_Board))])) + |r))
          • Set list = (list + 1)
      • Multiboard - Change the title of (Last created multiboard) to (Arena v1.0 | + (Round + ((String(Current_Round)) + ( of + (String(Max_Rounds))))))
      • Unit Group - Pick every unit in Heroes and do (Actions)
        • Loop - Actions
          • Camera - Lock camera target for (Owner of (Picked unit)) to (Picked unit), offset by (0.00, 0.00) using Default rotation
      • Unit Group - Pick every unit in Dead_Heroes and do (Actions)
        • Loop - Actions
          • Camera - Lock camera target for (Owner of (Picked unit)) to Fountain of Replenishment 0003 <gen>, offset by (0.00, 0.00) using Default rotation
 

Aniconic

I am the very model of a modern major general!
Reaction score
3
Sine, i havent seen GUI trigger with this size, ever.
So confusing..

It works perfectly :) I only have about 9 triggers in my whole map too. Only this one runs on a periodic event.

Hmm..
I see.

Not much of a loss, I guess.

I actually replaced it with a Comment ^^ Also added an engame if, then, else statement, but I'll spare you a repost... xD'
 
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