I was curious how Starcraft schedules triggers in terms of which run first and in what order in the trigger cycle. I think I read somewhere that it fires off P1's triggers, then P2, etc, until P8, which should mean P1's triggers will run slightly faster than all other players.
Now how does this work with all players (when we make a trigger for all players, is it just syntactic sugar for actually writing that trigger for each player?)
What I've noticed is that when two triggers have the same conditions but are mutually exclusive, e.g., if Trigger A fires before B, then B won't fire. Likewise if B goes before A, then A won't fire (assuming Triggers are atomic...), that not necessarily will they run in the same order. Sometimes A will go but other times B will (or perhaps my observations are incorrect, and the ordering is deterministic).
A problem which I did not understand is the following:
I have a deathcounter set to some value greater than 0.
Then I have a group of several triggers which basically run if the DC is some value >= 1.
At the end of this long series of triggers is a trigger that decrements the counter.
e.g.
Trigger A: if DC >= 1 do X
Trigger B: if DC >= 2 do Y
Final trigger: if DC >= 1 do DC--
Now interestingly the cases which check for DC >=2 (or 3, or 4) NEVER fire off. But, if DC == 4, then trigger A will run 4 times, but trigger B will still run 0 times! This does not make any sense to me why this should be so, because if the Final trigger was running out of order, it would also mess up the cycles of Trigger A.
Only when I added a second, inmutable DC did triggers like B begin fireing off properly...
None.











because the first trigger loop always finishes right away. Only a single trigger with wait is getting postponed. Like you said, the next extra triggers check is shcheduled for the frame after next. I believe
put a strict inequation in condition instead of unstrict one or vice versa!).
ahahh
carefree times! sob-sob
) who
now we got all pieces of trigger execution system that were making so much trouble to many people finally researched and understood: triggers execution order, locations invalidation and operation of waits.