|
Roller & CEO
|
Make a trigger with all the players checked and use current player. Make sure you don't have waits though because that interferes with hyper triggers. You also need a more solidified condition trigger.
![]() ![]() ![]() ![]() ![]() ![]() ![]() “go to work, send your kids to school follow fashion, act normal walk on the pavements, watch T.V. save for your old age, obey the law Repeat after me: I am free” |
|
Taking StarCraft Map Making to the Limit!
|
The problem you are having is that there is an action that when the trigger runs for Player 1, the action runs and then makes the conditions false, so they no longer run for all the other players when it's time for the trigger to run for them. You should have a death count or something that triggers another trigger to display the text message, then have a trigger at the bottom of your trigger list that always resets that switch or death.
|
|
Roller & CEO
|
That's not true. It still messes up the waits for other players. Hyper triggers are used to speed up all triggers in the map, therefore it affects the time for other triggers. I know this from making that mistake like 4 years ago.
![]() ![]() ![]() ![]() ![]() ![]() ![]() “go to work, send your kids to school follow fashion, act normal walk on the pavements, watch T.V. save for your old age, obey the law Repeat after me: I am free” |
|
The problem you are having is that there is an action that when the trigger runs for Player 1, the action runs and then makes the conditions false, so they no longer run for all the other players when it's time for the trigger to run for them. You should have a death count or something that triggers another trigger to display the text message, then have a trigger at the bottom of your trigger list that always resets that switch or death. |
|
Kaze no Klonoa
|
That's not true. It still messes up the waits for other players. Hyper triggers are used to speed up all triggers in the map, therefore it affects the time for other triggers. I know this from making that mistake like 4 years ago. ![]() ![]() ![]() ![]() ![]() ![]() The Mafia is watching you. |
|
Mappr
|
The problem you are having is that there is an action that when the trigger runs for Player 1, the action runs and then makes the conditions false, so they no longer run for all the other players when it's time for the trigger to run for them. You should have a death count or something that triggers another trigger to display the text message, then have a trigger at the bottom of your trigger list that always resets that switch or death. This is the solution for everyone who did not notice that. If Player 5 captures the town, there is no chance for Player 4 to run the display trigger before Player 7 unsets it. Trigger order: ... >>> P4 >>> P5 >>> P7 >>> ... when P5 captures the town, only P5 and P7 get the message. If P4 captures the town, everyone gets it. I believe that you have multiple towns to capture. So I would suggest that you use a death count of a unit that won't die ingame (e.g. mineral field type 1) to set a display index number for your Force 1 to the index number of your town: capture town 1 -> set dc to 1 for the force current player has exactly 1 of that dc -> display and ping at town 1 & set dc to 0 for current player capture town 2 -> set dc to 2 for the force current player has exactly 2 of that dc -> display and ping at town 2 & set dc to 0 for current player . . . Now every player gets that message. (there can still occure one bug, but that one would occure in your old system, too. But it's rare. [capturing 2 towns at the same time] ) ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|
This is the solution for everyone who did not notice that. If Player 5 captures the town, there is no chance for Player 4 to run the display trigger before Player 7 unsets it. Trigger order: ... >>> P4 >>> P5 >>> P7 >>> ... when P5 captures the town, only P5 and P7 get the message. If P4 captures the town, everyone gets it. I believe that you have multiple towns to capture. So I would suggest that you use a death count of a unit that won't die ingame (e.g. mineral field type 1) to set a display index number for your Force 1 to the index number of your town: capture town 1 -> set dc to 1 for the force current player has exactly 1 of that dc -> display and ping at town 1 & set dc to 0 for current player capture town 2 -> set dc to 2 for the force current player has exactly 2 of that dc -> display and ping at town 2 & set dc to 0 for current player . . . Now every player gets that message. (there can still occure one bug, but that one would occure in your old system, too. But it's rare. [capturing 2 towns at the same time] ) There's always remedies to that, though. I mean, most maps have at least 20% of SC's units unused; I'm sure you could easily make separate death counters if capturing 2 towns at the exact same time occurs frequently. From what I'm hearing, however, the chances of that are so low that you shouldn't even bother making the triggering any more complex. I, personally, would use Ahli's method; but hey, I'm lazy ![]() ![]() ![]() ![]() ![]() ![]() Maps made by Roy
New Map Types: Interceptor Arena, Dash 2, Dash 3, Dash 4, Dash 5 (New), Cannonball (New) Bounds: WoW Bound, WoW Bound 2, NuBs Bound |
|
Taking StarCraft Map Making to the Limit!
|
The problem you are having is that there is an action that when the trigger runs for Player 1, the action runs and then makes the conditions false, so they no longer run for all the other players when it's time for the trigger to run for them. You should have a death count or something that triggers another trigger to display the text message, then have a trigger at the bottom of your trigger list that always resets that switch or death. Quote from Falkoner The problem you are having is that there is an action that when the trigger runs for Player 1, the action runs and then makes the conditions false, so they no longer run for all the other players when it's time for the trigger to run for them. You should have a death count or something that triggers another trigger to display the text message, then have a trigger at the bottom of your trigger list that always resets that switch or death. This is the solution for everyone who did not notice that. If Player 5 captures the town, there is no chance for Player 4 to run the display trigger before Player 7 unsets it. Trigger order: ... >>> P4 >>> P5 >>> P7 >>> ... when P5 captures the town, only P5 and P7 get the message. If P4 captures the town, everyone gets it. I believe that you have multiple towns to capture. So I would suggest that you use a death count of a unit that won't die ingame (e.g. mineral field type 1) to set a display index number for your Force 1 to the index number of your town: capture town 1 -> set dc to 1 for the force current player has exactly 1 of that dc -> display and ping at town 1 & set dc to 0 for current player capture town 2 -> set dc to 2 for the force current player has exactly 2 of that dc -> display and ping at town 2 & set dc to 0 for current player . . . Now every player gets that message. (there can still occure one bug, but that one would occure in your old system, too. But it's rare. [capturing 2 towns at the same time] ) Oh man, why haven't I ever thought of using Current Player? Glad to have heard that, it will help out quite a bit in a few maps of mine, because I've tried setting a death count to the number of players, and then if it's at least 1, subracting 1 from it and displaying the message, but that caused problems if people left, thanks for posting that |
|
Hey, thanks a lot for all your ideas and help. I have now found the answer to my problem though :\. It's not exactly what I wanted, but it works.
Trigger("Force 1"){ Conditions: Deaths("Player 8", "Zerg Spire", Exactly, 21); Bring("Special Squad Units", "Mojo (Scout)", "Display Captured Town, Player Check", At least, 1); Actions: Display Text Message(Always Display, "BAM BAM BAM!"); Minimap Ping("Town, Western Region: Terkay"); Preserve Trigger(); Trigger("Player 7"){ Conditions: Deaths("Player 8", "Zerg Spire", At least, 1); Actions: Set Deaths("Player 8", "Zerg Spire", Set To, 0); Remove Unit At Location("All players", "Mojo (Scout)", All, "Display Captured Town, Player Check"); Preserve Trigger(); I modified both these triggers, and now they're like this: Trigger("Player 8"){ Conditions: Deaths("Player 8", "Zerg Spire", At least, 1); Actions: Wait(100); Set Deaths("Player 8", "Zerg Spire", Set To, 0); Remove Unit At Location("All players", "Mojo (Scout)", All, "Display Captured Town, Player Check"); Set Deaths("Special Squad Units", "Zerg Extractor", Set To, 0); Preserve Trigger(); Trigger("Force 1"){ Conditions: Deaths("Player 8", "Zerg Spire", Exactly, 21); Bring("Special Squad Units", "Mojo (Scout)", "Display Captured Town, Player Check", At least, 1); Deaths("Current Player", "Zerg Extractor", Exactly, 0); Actions: Display Text Message(Always Display, "BAM BAM BAM!"); Set Deaths("Current Player", "Zerg Extractor", Set To, 1); Minimap Ping("Town, Western Region: Terkay"); Preserve Trigger(); I knew now that the display triggers DID work, they just weren't being given enough time to run. So instead of disabling the display triggers all at once for all players in a trigger for player 7, i made it so each display trigger turned off after being run for the specific player, and just put a wait of 100 milleseconds before the reseting of the death counts. 100 milleseconds for all the display triggers for all the players to run. I realize that the wait could be lower, I was just being carful :\. And i put the last trigger for player 8 instead of 7 cuz it has a wait and player 7 has hypers... so yeah... I kinda don't like having that wait there just cause i don't like waits... but it works and i don't want to waste too much time on text issues. anyway thanks a lot, problem solved ![]() ![]() ![]() ![]() ![]() ![]() |
|
Taking StarCraft Map Making to the Limit!
|
Oh wait, read it wrong, the wait in your triggers is completely unnecessary, I believe if you just changed the order around, it would work fine, the wait allowed the conditions of the other trigger to be read before they were reset, since the trigger order was wrong. |