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.
  • Ghan Ghan:
    Howdy
  • Ghan Ghan:
    Still lurking
    +3
  • The Helper The Helper:
    I am great and it is fantastic to see you my friend!
    +1
  • The Helper The Helper:
    If you are new to the site please check out the Recipe and Food Forum https://www.thehelper.net/forums/recipes-and-food.220/
  • Monovertex Monovertex:
    How come you're so into recipes lately? Never saw this much interest in this topic in the old days of TH.net
  • Monovertex Monovertex:
    Hmm, how do I change my signature?
  • tom_mai78101 tom_mai78101:
    Signatures can be edit in your account profile. As for the old stuffs, I'm thinking it's because Blizzard is now under Microsoft, and because of Microsoft Xbox going the way it is, it's dreadful.
  • The Helper The Helper:
    I am not big on the recipes I am just promoting them - I use the site as a practice place promoting stuff
    +2
  • Monovertex Monovertex:
    @tom_mai78101 I must be blind. If I go on my profile I don't see any area to edit the signature; If I go to account details (settings) I don't see any signature area either.
  • The Helper The Helper:
    You can get there if you click the bell icon (alerts) and choose preferences from the bottom, signature will be in the menu on the left there https://www.thehelper.net/account/preferences
  • The Helper The Helper:
    I think I need to split the Sci/Tech news forum into 2 one for Science and one for Tech but I am hating all the moving of posts I would have to do
  • The Helper The Helper:
    What is up Old Mountain Shadow?
  • The Helper The Helper:
    Happy Thursday!
    +1
  • Varine Varine:
    Crazy how much 3d printing has come in the last few years. Sad that it's not as easily modifiable though
  • Varine Varine:
    I bought an Ender 3 during the pandemic and tinkered with it all the time. Just bought a Sovol, not as easy. I'm trying to make it use a different nozzle because I have a fuck ton of Volcanos, and they use what is basically a modified volcano that is just a smidge longer, and almost every part on this thing needs to be redone to make it work
  • Varine Varine:
    Luckily I have a 3d printer for that, I guess. But it's ridiculous. The regular volcanos are 21mm, these Sovol versions are about 23.5mm
  • Varine Varine:
    So, 2.5mm longer. But the thing that measures the bed is about 1.5mm above the nozzle, so if I swap it with a volcano then I'm 1mm behind it. So cool, new bracket to swap that, but THEN the fan shroud to direct air at the part is ALSO going to be .5mm to low, and so I need to redo that, but by doing that it is a little bit off where it should be blowing and it's throwing it at the heating block instead of the part, and fuck man
  • Varine Varine:
    I didn't realize they designed this entire thing to NOT be modded. I would have just got a fucking Bambu if I knew that, the whole point was I could fuck with this. And no one else makes shit for Sovol so I have to go through them, and they have... interesting pricing models. So I have a new extruder altogether that I'm taking apart and going to just design a whole new one to use my nozzles. Dumb design.
  • Varine Varine:
    Can't just buy a new heatblock, you need to get a whole hotend - so block, heater cartridge, thermistor, heatbreak, and nozzle. And they put this fucking paste in there so I can't take the thermistor or cartridge out with any ease, that's 30 dollars. Or you can get the whole extrudor with the direct driver AND that heatblock for like 50, but you still can't get any of it to come apart
  • Varine Varine:
    Partsbuilt has individual parts I found but they're expensive. I think I can get bits swapped around and make this work with generic shit though
  • Ghan Ghan:
    Heard Houston got hit pretty bad by storms last night. Hope all is well with TH.
  • The Helper The Helper:
    Power back on finally - all is good here no damage
    +1
  • V-SNES V-SNES:
    Happy Friday!
    +1

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top