Trigger crashes?

Grurf

Ultra Cool Member
Reaction score
30
Hi all,

I'm busy making a new map, and I'm having some trouble. The map has lots of triggered spells, maybe that is the cause of the problem. Sometimes (and especially in the boss level) all triggers are suddenly messed up. Bosses either stop spawning or keep spawning forever. Spells that temporarely pause the caster using a trigger suddenly keep the caster paused for long times, sometimes forever. Players suddenly die, conditions are being ignored, in other words, the map is unplayable for a short amount of time, and if the bosses keep spawning, the game simply never ends. Are there common causes for things like this? Here is the trigger part that spawns the bosses, if it helps:

Code:
For each (Integer A) from 1 to 5, do (Actions)
    Loop - Actions
        Wait 5.00 seconds
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                Player1Playing Equal to True
            Then - Actions
                Unit - Create BossAmount WaveUnitType for Player 12 (Brown) at (Center of NorthWestSpawn <gen>) facing Default building facing (270.0) degrees
            Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                Player2Playing Equal to True
            Then - Actions
                Unit - Create BossAmount WaveUnitType for Player 12 (Brown) at (Center of NorthEastSpawn <gen>) facing Default building facing (270.0) degrees
            Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                Player3Playing Equal to True
            Then - Actions
                Unit - Create BossAmount WaveUnitType for Player 12 (Brown) at (Center of EastNorthSpawn <gen>) facing Default building facing (270.0) degrees
            Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                Player4Playing Equal to True
            Then - Actions
                Unit - Create BossAmount WaveUnitType for Player 12 (Brown) at (Center of EastSouthSpawn <gen>) facing Default building facing (270.0) degrees
            Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                Player5Playing Equal to True
            Then - Actions
                Unit - Create BossAmount WaveUnitType for Player 12 (Brown) at (Center of SouthEastSpawn <gen>) facing Default building facing (270.0) degrees
            Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                Player6Playing Equal to True
            Then - Actions
                Unit - Create BossAmount WaveUnitType for Player 12 (Brown) at (Center of SouthWestSpawn <gen>) facing Default building facing (270.0) degrees
            Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                Player7Playing Equal to True
            Then - Actions
                Unit - Create BossAmount WaveUnitType for Player 12 (Brown) at (Center of WestSouthSpawn <gen>) facing Default building facing (270.0) degrees
            Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                Player8Playing Equal to True
            Then - Actions
                Unit - Create BossAmount WaveUnitType for Player 12 (Brown) at (Center of WestNorthSpawn <gen>) facing Default building facing (270.0) degrees
            Else - Actions

If you pm me, I will send you my map, but I don't like to make it downloadable here. If somebody steals it right now and publishes it under his name I might never be able to prove that I'm the maker :D.
 

Grurf

Ultra Cool Member
Reaction score
30
Bump. Sorry for bumping this early, but I would like to continue working on my map, and before I do I want to be sure I'm not triggering more stuff that causes trigger crashes. BTW some more info: it seems like I forgot to mention that I use WEU (without the advanced triggers btw), and that the chance that the triggers crash becomes bigger when more people are playing (the map supports up to 8 players). Therefore, it seems like some kind of overflow. Maybe the triggers I use are too cpu-intensive?
 

xPheRe

New Member
Reaction score
43
I'm pretty sure that it's because you used a for-loop with the A variable and then a wait inside the loop.
It is possible that other triggers change the A variable value while this trigger is waiting
And then, after the wait, the value has no meaning within the loop.
Try using local vars for the loop counters

Also, as a suggestion, try to make your code more friendly by storing all the data related to the trigger in arrays and accessing it via "Pick every player in <Player group>"

Code:
Event
    Map initialization
Conditions
    None
Actions
    Set SpawningRegion[1] = <NorthWestSpawn <gen> >
    Set SpawningRegion[2] = <NorthEastSpawn <gen> >
    ...
    Set SpawningRegion[8] = <WestNorthSpawn <gen> >

    Set Players = Player group matching <<Matching player> slot equals to is playing>

Code:
Pick every player in <Players> and do
    Unit - Create <BossAmount> <WaveUnitType> for Player 12 (Brown) at (Center of <SpawningRegion[Number of <Picked player>]>) facing Default building facing (270.0) degrees
 

Grurf

Ultra Cool Member
Reaction score
30
xPheRe said:
I'm pretty sure that it's because you used a for-loop with the A variable and then a wait inside the loop.
It is possible that other triggers change the A variable value while this trigger is waiting
And then, after the wait, the value has no meaning within the loop.
Try using local vars for the loop counters

Also, as a suggestion, try to make your code more friendly by storing all the data related to the trigger in arrays and accessing it via "Pick every player in <Player group>"

Code:
Event
    Map initialization
Conditions
    None
Actions
    Set SpawningRegion[1] = <NorthWestSpawn <gen> >
    Set SpawningRegion[2] = <NorthEastSpawn <gen> >
    ...
    Set SpawningRegion[8] = <WestNorthSpawn <gen> >

    Set Players = Player group matching <<Matching player> slot equals to is playing>

Code:
Pick every player in <Players> and do
    Unit - Create <BossAmount> <WaveUnitType> for Player 12 (Brown) at (Center of <SpawningRegion[Number of <Picked player>]>) facing Default building facing (270.0) degrees

Oh that's it! I didn't know A was a global variable. A lot of spells use loops, and I have always used the A loop. So there can only be one A loop at a time? Well, loops save a lot of work, but if they can't run simultaneous I think I should find an other way to do it. IIRC there also is a one for each integer B, but then there would be trouble when two B loops are running at the same time... Is there a better way to loop actions?

Im_On_56k said:
Your triggers arn't "cpu-intensive".

Make sure your variables are set.

And why are you looping this 5 times?

The variables are set, and I am looping it 5 times because there should spawn 5 bosses, with 5 seconds between each spawn.
 

Grurf

Ultra Cool Member
Reaction score
30
AceHart said:
> there also is a one for each integer B

And there also is one for whatever integer variable you define yourself.

Yeah, I just found out lol =). Thanks for the help people!
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • 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
    +2
  • V-SNES V-SNES:
    Happy Friday!
    +1
  • The Helper The Helper:
    New recipe is another summer dessert Berry and Peach Cheesecake - https://www.thehelper.net/threads/recipe-berry-and-peach-cheesecake.194169/

      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