okay, i made a thread about making a DoTA like map , so far what i've done is making three units spawning points and attacking different areas of the map and finally attacking the enemy's base.
White Units Spawn 1 first attacks upperleft corner first, than attacks upper right corner where Yellow's base is.
White Units Spawn 2 first attacks the center first, than attacks upper right corner where Yellow's base is.
White Units Spawn 3 first attacks the bottom right corner first, than attacks upper right corner where Yellow's base is.
and pretty much same for the Yellow, you get the point.
I've made triggers like:
conditions:
current player brings at least 1 factory to FACTORY 1
(so that if the enemy breaks the factory it cannot spawn any more goliathes)
actions:
create 2 goliathes at FACTORY 1 SPAWN for current player
wait for 5000 milliseconds
preserve trigger
and i did the SAME exact thing for FACTORY 2 and FACTORY 3
but , what it does is, the trigger FACTORY 1 works perfectly but factory 2 tends to be a little slow on spawning the units, and FACTORY 3 barely even spawns units... i don't understand this , help me guys!
Well, I don't understand what you're trying to do too well, but just try the Hyper Triggers. No need to make a thread about it. There's two possible answers, yes, and no. So why not just try them?
You're experiencing a wait stack. Wait's are tricky, it's best to use something else. My suggestion is using hypers and death counters. the triggers would be the following:
| Trigger |
| Players: |
| ¤ Current Player |
| Conditions: |
| ¤ Always |
| Actions: |
¤ Add 1 Deaths for 'Death Counter Unit' for Current Player
|
| ¤ Preserve Trigger |
| Trigger |
| Players: |
| ¤ Current Player |
| Conditions: |
¤ Current Player brings atleast 1 Factory to "FACTORY 1".
|
| ¤ Current player has suffered atleast 60 deaths of 'Death Counter Unit'. |
| Actions: |
¤ Subtract 60 Deaths for 'Death Counter Unit' for Current Player.
|
| ¤ Create 2 Goliaths at 'FACTORY 1' for Current Player. |
Then repeat for the three locations. They will be simulatenous, though. You can probably figure out the rest. The reason it's 60 death counts is around 12 hyper triggers fire per second. 5 x 12.
First off, Hyper triggers
WILL NOT fix this problem.
You're suffering from "wait lock" try to split the waits into chunks.
Another solution would be to set a switch, or death counter, at every 5000ms event. And use a condition to check if that specific switch or death counter is what it's needs to be to create the units at a location. If you use a switch, then you can just use 1 wait, and if you have other triggers for creating units, you can just call that switch up in the conditions to reduce how many times you use the 'Wait' action.
This is how I would solve the problem...
First, the wait trigger...
| Trigger |
| Description: |
| Sample Global Wait Trigger |
|
| Players: |
| ¤ Player 8 |
| Conditions: |
| ¤ Switch '5000ms global spawn' Is Cleared |
| Actions: |
¤ Wait 1000ms
|
¤ Wait 1000ms
|
¤ Wait 1000ms
|
¤ Wait 1000ms
|
¤ Wait 1000ms
|
¤ Set Switch '5000ms global spawn'
|
| ¤ Preserve Trigger. |
And here are the spawn triggers. (Note the absence of the wait)
| Trigger |
| Players: |
| ¤ Current Player |
| Conditions: |
¤ Switch '5000ms global spawn' Is Set
|
| ¤ Current Player Brings at least 1 Factory to Factory 1 |
| Actions: |
¤ Create 2 Goliaths at Factory Spawn 1 for Current Player.
|
| ¤ Preserve Trigger. |
| Trigger |
| Players: |
| ¤ Current Player |
| Conditions: |
¤ Switch '5000ms global spawn' Is Set
|
| ¤ Current Player Brings at least 1 Factory to Factory 2 |
| Actions: |
¤ Create 2 Goliaths at Factory Spawn 2 for Current Player.
|
| ¤ Preserve Trigger. |
| Trigger |
| Players: |
| ¤ Current Player |
| Conditions: |
¤ Switch '5000ms global spawn' Is Set
|
| ¤ Current Player Brings at least 1 Factory to Factory 3 |
| Actions: |
¤ Create 2 Goliaths at Factory Spawn 3 for Current Player.
|
| ¤ Preserve Trigger. |
Since everyone is going to list a differant set of triggers i'll list mine.
| Trigger |
| Conditions: |
| ¤ Switch 1 is clear |
| Actions: |
¤ Set Switch 1
|
¤ Wait 5000 milli seconds
|
| ¤ Preserve Trigger. |
| Trigger |
| Conditions: |
¤ Player brings at least one factory to factory 1
|
| ¤ switch 1 is set |
| Actions: |
¤ Do Spawn stuff.
|
| ¤ Preserve Trigger |
*repeat for all other spawns.
| Trigger |
| Conditions: |
| ¤ Switch 1 is set |
| Actions: |
¤ Clear Switch 1
|
| ¤ Preserve Trigger |
Now if you have another set of waits for that player or spawns that have a differant wait time then i suggest you use death counters.
thank you so much guys!
ADDITION:
hmm.. it surely works, but it creates units so that , its as if the wait time is not even there, you know? like madness maps
You probolly used KrazyKrl's trigger. You need a trigger to clear the switch.
if you use theoretical humans method then you should use set to instead of subtract for clearing the conditions.
No, because there's a very low chance that it'll be a tiny amount of time off when it actually fires, so that way you get that extra bit of time for the next loop. Or perhaps I'm just delusional.
Yeah your delusional, set and subtract will work the same in this situation.
But you will have to make a counter for each spawn point the way you did it.
For making something 0 or something, I prefer "set" because then you know it will always be that number (even if the only trigger is add 1, or set to 1).