QUOTE(Zb2k @ Jun 5 2005, 04:29 PM)
Also, maybe I am doing the hyper triggers wrong because the triggers to kill the overlords seems to stall.
Another thing, look at the triggers defining that if a player dies with the flag, the flag respawns in ten seconds, while the player respawns in 15 seconds. The flag always repawns after the player, which shouldn't happen.
[right][snapback]226782[/snapback][/right]
Your hypertriggers are fine.
Every trigger you have that creates overlords also kills them immediately in the same trigger. Most of the time you should not see the overlord itself, but it is possible still for you to see maybe a single frame of a live non-exploding overlord; you can't do much to stop this from happening.
You are experiencing what is somtimes called a 'wait block'. Wait actions are blocking actions.
QUOTE(Blizzard Entertainment @ Starcraft Campaign Editor Help)
The wait action is used to delay other actions for the specified number of milliseconds. Because it is a blocking action, no other actions in the same trigger and no other blocking actions in other triggers will activate until it is done.
Which means that if one wait action is running, then no other wait action is allowed to run for the same player at the same time, until that wait action has finished.
Here's what happens:
1. Your Flag Runner dies.
2. Starcraft checks its trigger list from top to bottom, and finds and runs this trigger:
| Trigger |
Conditions:
|
¤ Current player commands at most 0 Flag Runner
|
Actions:
|
¤ Clear Player1Alive
|
¤ Preserve
|
3. Starcraft continues checking the trigger list, and finds:
| Trigger |
Conditions:
|
¤ Player1Alive is cleared.
|
Actions:
|
¤ Display text for Current Player
|
¤ Show minimap ping for current player
|
¤ Wait for 15000 milliseconds
|
¤ Create 1 Flag Runner at 'Top respawn' for Current player
|
¤ Display text for current player
|
¤ Set Player1Alive
|
¤ Preserve.
|
It runs the first two actions, and begins to wait for 15 seconds.
4. Meanwhile, it continues checking the rest of the triggers and finds:
| Trigger |
Conditions:
|
¤ Current player commands at most 0 Flag Runner
|
¤ Player 1 Flag is set
|
Actions:
|
¤ Clear Player 1 Flag
|
¤ Wait for 10000 milliseconds
|
¤ Create 1 flag for current player at 'bottom flag' for player 8
|
¤ Set 'Bottom Flag Just Returned'
|
¤ Set 'Bottom Flag Safe'
|
¤ Preserve.
|
It runs the first action and then finds a wait action.
However, it is already running the 15 second wait action from the earlier trigger, so it can't run the second wait action yet.
5. Only when the first 15 second wait action has finished does the second 10 second wait action start. The 15 second wait finishes, so the player respawns.
6. The ten second wait finishes in another ten seconds, and then the flag respawns.
We call this a wait block because the wait actions block each other from running.
To fix this, you might:
- Put the flag respawn trigger before the player respawn trigger
- Put the flag respawn and player respawn triggers into one trigger for the player dying with the flag. You need a separate trigger for if the player dies without the flag - this can be the same as your existing trigger with the extra condition "'Player 1 Flag' is cleared".
- Use a transmission instead of one of the wait actions. Transmissions are blocking actions like wait actions, so you can use them just like waits, but apparently wait actions and transmissions won't block each other; they will only block actions of the same type as themselves (I haven't tested this personally).
For a more complicated solution, use a
death-counter timer or a '
physical timer'.
(We have tutorials for everything!)
QUOTE(Zb2k @ Jun 6 2005)
Ok biskit, something else is wrong. Even before I posted this thread, it would display "Red has stolen the other team's flag" and it would do the same for blue w/o the Wait 0 ms triggers
But even with the wait 0 ms triggers it would still not display for teal. In fact, I deleted the "Clear Teal Grab" action altogether, and it still did not work.
Do I have the lastest working version of your map? If I don't, could you post it or PM it please?
Do you mean that the text would display when red or blue captured the flag, but not when teal captured the flag?
(psst... you haven't copied the 'capture the flag' triggers to players 3-6 yet; you've only done it for players 1 and 2)Make sure that you have an action in your 'capture the flag' trigger that sets the switch 'Teal Grab'.
Or do you mean that "Red has stolen the other team's flag" displays for the red and blue players, but not for the teal player?
In that case, I would find it very strange - it shouldn't do that in the version that I have. Test it again to see if it still happens.