Staredit Network > Forums > SC1 UMS Mapmaking Assistance > Topic: COOP Maps (Victory issue)
COOP Maps (Victory issue)
Aug 15 2016, 3:58 pm
By: JCarrill0  

Aug 15 2016, 3:58 pm JCarrill0 Post #1



I been having some issues STILL with getting Team Victory....

When updating the COOP Campaign Loomings (Terran Prologue), I noticed after it was released for public play it works, but I start to see some bugs, I apologize for not having them bug free. I tested them several times before releasing them, but once again I am faced with this freaking Victory bug. One players gets Victory, and the buddy of mine got defeat!

Edit: New Map issue in post #11

Post has been edited 5 time(s), last time on Aug 16 2016, 6:24 pm by JCarrill0.




Aug 15 2016, 4:39 pm Pr0nogo Post #2



Back when I actually made co-op maps, I just put the victory action in a single trigger and had all human players own that trigger instead of giving it to a force. Did you try that?




Aug 15 2016, 9:17 pm JCarrill0 Post #3



Quote from Pr0nogo
Back when I actually made co-op maps, I just put the victory action in a single trigger and had all human players own that trigger instead of giving it to a force. Did you try that?
yep, That's why I went to forces to begin with, but I will keep trying again.

EDIT: I tried this theory again, It didn't work. I will try merging them back into ONE Trigger and see if it makes any difference.

Post has been edited 4 time(s), last time on Aug 15 2016, 10:38 pm by JCarrill0.




Aug 15 2016, 10:00 pm Roy Post #4

An artist's depiction of an Extended Unit Death

It's trigger order. Your Victory trigger is below the triggers for Player 7/8 when they set their victory switch. What happens is:

- Player 7 sets 'P7 Victory'
- Player 7 skips the victory trigger because 'P8 Victory' is still cleared
- Player 8 sets 'P8 Victory'
- Player 8 runs the victory trigger because both switches are set
- The trigger cycle ends, and everyone who didn't run the victory trigger (Player 7) gets defeated

The simplest change would be to move your Victory trigger to the top of the trigger list, so both players cannot run it until the start of a new trigger cycle. Alternatively, you could remove the 'P8 Victory' condition from the Victory trigger and it should still work, though I haven't looked too carefully at what all your triggers are doing.




Aug 15 2016, 10:19 pm JCarrill0 Post #5



Quote from Roy
It's trigger order. Your Victory trigger is below the triggers for Player 7/8 when they set their victory switch. What happens is:

- Player 7 sets 'P7 Victory'
- Player 7 skips the victory trigger because 'P8 Victory' is still cleared
- Player 8 sets 'P8 Victory'
- Player 8 runs the victory trigger because both switches are set
- The trigger cycle ends, and everyone who didn't run the victory trigger (Player 7) gets defeated

The simplest change would be to move your Victory trigger to the top of the trigger list, so both players cannot run it until the start of a new trigger cycle. Alternatively, you could remove the 'P8 Victory' condition from the Victory trigger and it should still work, though I haven't looked too carefully at what all your triggers are doing.
I re-uploaded 2 maps to my original post.

Map A is the suggestion Pr0nogo made where its one trigger is used, p8 gets defeat.
Map B is the suggestion Roy made where Victory Trigger is put to the TOP, P7 gets defeat.

Post has been edited 2 time(s), last time on Aug 15 2016, 10:48 pm by JCarrill0.




Aug 15 2016, 11:21 pm Moose Post #6

We live in a society.

I fixed it based on Roy's solution and got victory while playing as P7/computer P8 and P8/computer P7. Transmission is a blocking (wait) action, so it can cause strange things to happening. The trouble was once P7 set his victory switch, P8 would run triggers next and hit the victory action before P7 had another chance to go through the triggers. I was able to get it working with the following trigger order:

Code
Trigger { -- Victory Switch
    players = {Force1},
    conditions = {
        Bring(Force1, AtLeast, 2, "Cerberus Firebat", "Mine Entrance");
        Switch("Victory Transmission", Cleared);
    },
    actions = {
        SetSwitch("Victory Transmission", Set);
        Comment("Victory Switch");
    },
}

Trigger { -- P7 Victory Switch
    players = {P7},
    conditions = {
        Switch("Victory Transmission", Set);
    },
    actions = {
        SetInvincibility(Enable, "Cerberus Firebat", Force1, "Mine Entrance");
        CenterView("Mine Entrance");
        MuteUnitSpeech();
        Transmission("Cerberus Firebat", "Mine Entrance", "staredit\\wav\\T2M20ucf.wav", Subtract, 0, "\x03        CERBERUS FIREBAT\r\n\x04            Sir, tac team has reached the installation.\r\n\x04            You watch things out here. We'll take care\r\n\x04            things inside.", 4);
        UnMuteUnitSpeech();
        SetSwitch("P7 Victory", Set);
        Comment("P7 Victory Switch");
    },
}

Trigger { -- Victory
    players = {Force1},
    conditions = {
        Switch("P7 Victory", Set);
        Switch("P8 Victory", Set);
    },
    actions = {
        CreateUnit(1, "Terran Battlecruiser", "Mine Entrance", CurrentPlayer);
        SetAllianceStatus(Force1, AlliedVictory);
        Victory();
        Comment("Victory");
    },
}

Trigger { -- P8 Victory Switch
    players = {P8},
    conditions = {
        Switch("Victory Transmission", Set);
    },
    actions = {
        SetInvincibility(Enable, "Cerberus Firebat", Force1, "Mine Entrance");
        CenterView("Mine Entrance");
        MuteUnitSpeech();
        Transmission("Cerberus Firebat", "Mine Entrance", "staredit\\wav\\T2M20ucf.wav", Subtract, 0, "\x03        CERBERUS FIREBAT\r\n\x04            Sir, tac team has reached the installation.\r\n\x04            You watch things out here. We'll take care\r\n\x04            things inside.", 4);
        UnMuteUnitSpeech();
        SetSwitch("P8 Victory", Set);
        Comment("P8 Victory Switch");
    },
}





Aug 15 2016, 11:33 pm Moose Post #7

We live in a society.

Additionally, the following works and is far simpler:

Code
Trigger { -- Victory
    players = {Force1},
    conditions = {
        Bring(Force1, AtLeast, 2, "Cerberus Firebat", "Mine Entrance");
    },
    actions = {
        SetInvincibility(Enable, "Cerberus Firebat", Force1, "Mine Entrance");
        CenterView("Mine Entrance");
        MuteUnitSpeech();
        Wait(5000);
        UnMuteUnitSpeech();
        SetAllianceStatus(Force1, AlliedVictory);
        Victory();
        Comment("Victory");
    },
}


Before the Wait, put the component actions of a Transmission: Display Text Message, Minimap Ping, Play WAV, Unit Portrait. You don't get the little circle to flash around the unit, so you'll have to deal.




Aug 15 2016, 11:36 pm JCarrill0 Post #8



Test this fix with DarkenedFantasies on USEast, freaking finnaly




Aug 16 2016, 12:22 am Swampfox Post #9



Quote from Mini Moose 2707
Additionally, the following works and is far simpler:

Code
Trigger { -- Victory
    players = {Force1},
    conditions = {
        Bring(Force1, AtLeast, 2, "Cerberus Firebat", "Mine Entrance");
    },
    actions = {
        SetInvincibility(Enable, "Cerberus Firebat", Force1, "Mine Entrance");
        CenterView("Mine Entrance");
        MuteUnitSpeech();
        Wait(5000);
        UnMuteUnitSpeech();
        SetAllianceStatus(Force1, AlliedVictory);
        Victory();
        Comment("Victory");
    },
}


Before the Wait, put the component actions of a Transmission: Display Text Message, Minimap Ping, Play WAV, Unit Portrait. You don't get the little circle to flash around the unit, so you'll have to deal.

If you wanted to continue using transmissions, could you essentially have this trigger along with a transmission trigger with the same conditions? Just have to adjust the wait to last the correct length to let the transmissions complete.



None.

Aug 16 2016, 1:23 am Moose Post #10

We live in a society.

Yes, using two triggers and giving the actual victory trigger a timed offset using a wait should be a working and CPU player safe solution. The players (who may be computers) would finish the transmission trigger without anything happening and then run the victory trigger simultaneously.




Aug 16 2016, 6:22 pm JCarrill0 Post #11



I been really focused on using human players for this co-op, so far the victory settings are in place, I'm having trouble making this last map display the epilogue correctly.

I get the victory to work, but the transmission comes after for some reason (again with the trigger order I guess), here is the map so far

Edit: file removed.

Post has been edited 1 time(s), last time on Aug 17 2016, 12:25 pm by JCarrill0.




Aug 16 2016, 7:25 pm Dem0n Post #12

ᕕ( ᐛ )ᕗ

Why do you have the Victory 2 trigger above the Victory trigger? If you put Victory at the top, it works fine, I think. It says "** XENOMORPH COLONIES EXTERMINATED **" and then the Science Vessel talks, and then the epilogue appears. Is that the proper order?




Aug 16 2016, 8:00 pm JCarrill0 Post #13



Quote from Dem0n
Why do you have the Victory 2 trigger above the Victory trigger? If you put Victory at the top, it works fine, I think. It says "** XENOMORPH COLONIES EXTERMINATED **" and then the Science Vessel talks, and then the epilogue appears. Is that the proper order?
Roy has explained on other maps the victory sequence needs to be at the very top in order to achieve both players getting victory:

Quotes with links


Post has been edited 1 time(s), last time on Aug 16 2016, 8:13 pm by JCarrill0.




Aug 16 2016, 8:51 pm Sie_Sayoka Post #14



Quote from JCarrill0
I been really focused on using human players for this co-op, so far the victory settings are in place, I'm having trouble making this last map display the epilogue correctly.

I get the victory to work, but the transmission comes after for some reason (again with the trigger order I guess), here is the map so far
Move player 3 out of the Alpha Squadron force. You should do this for all of your maps.



None.

Aug 16 2016, 8:58 pm JCarrill0 Post #15



Quote from Sie_Sayoka
Quote from JCarrill0
I been really focused on using human players for this co-op, so far the victory settings are in place, I'm having trouble making this last map display the epilogue correctly.

I get the victory to work, but the transmission comes after for some reason (again with the trigger order I guess), here is the map so far
Move player 3 out of the Alpha Squadron force. You should do this for all of your maps.
This is causing the issue? Strange...

EDIT: This didn't seem to change the issue. Was this just a preference you were suggesting?
Help me to understand the error. I did what you suggested, but it made no difference.




Aug 16 2016, 9:09 pm JCarrill0 Post #16



Just a quick reminder, guys you cant test these maps with a CPU, the outcomes isn't always the same as if it was 2 human players in the COOP.

For a few changes I will use CPU, but keep in mind Computer players bypass/skip certain functions (ie: transmissions, display text, etc) so you may run into issues or solve them only for the human player and with only one, that does not mean it is solved with 2 human players.




Aug 17 2016, 3:13 am Pr0nogo Post #17



Does trigger order matter in single player? I have literally never run into this problem ever and my victory triggers are always the literal last trigger owned by the player.




Aug 17 2016, 3:33 am Dem0n Post #18

ᕕ( ᐛ )ᕗ

I think it's fine for single player, but the problem arises when it's 2 players trying to trigger victories at the same time, so in that case, trigger order will matter.




Aug 17 2016, 4:14 am Pr0nogo Post #19



Ah, alright, gotcha.

edit: just put the victory condition into one trigger and make it owned by both players instead of a force, as far as I can tell this still works fine. I might be wrong though




Aug 17 2016, 12:22 pm JCarrill0 Post #20



Quote from Pr0nogo
Does trigger order matter in single player? I have literally never run into this problem ever and my victory triggers are always the literal last trigger owned by the player.
These issues only seem to happen in COOP when an ending transmission is playing right before the victory, so single player is fine.
Unless you test with human players though, one player will bypass and ignore the transmission.
Quote from Pr0nogo
Ah, alright, gotcha.

edit: just put the victory condition into one trigger and make it owned by both players instead of a force, as far as I can tell this still works fine. I might be wrong though
How are you testing them if I may ask? are you using another Human players or some other method? I ask before before I was using just Human players I would think I fixed it yet when I would test with an actual Human player the issue would return.

I do know you been saying a lot to not use forces, and just use players, but once again I must explain, that did not make any difference.

I have since fixed these issues and re-uploaded my COOP - LOOMINGS campaign yesterday.




Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[11:50 pm]
O)FaRTy1billion[MM] -- nice, now i have more than enough
[11:49 pm]
O)FaRTy1billion[MM] -- if i don't gamble them away first
[11:49 pm]
O)FaRTy1billion[MM] -- o, due to a donation i now have enough minerals to send you minerals
[2024-4-17. : 3:26 am]
O)FaRTy1billion[MM] -- i have to ask for minerals first tho cuz i don't have enough to send
[2024-4-17. : 1:53 am]
Vrael -- bet u'll ask for my minerals first and then just send me some lousy vespene gas instead
[2024-4-17. : 1:52 am]
Vrael -- hah do you think I was born yesterday?
[2024-4-17. : 1:08 am]
O)FaRTy1billion[MM] -- i'll trade you mineral counts
[2024-4-16. : 5:05 pm]
Vrael -- Its simple, just send all minerals to Vrael until you have 0 minerals then your account is gone
[2024-4-16. : 4:31 pm]
Zoan -- where's the option to delete my account
[2024-4-16. : 4:30 pm]
Zoan -- goodbye forever
Please log in to shout.


Members Online: Sie_Sayoka