[JB2004 SP2 @ 3369] Tie in round-breaking arena match considered as a blue team win

  • Two Factor Authentication is now available on BeyondUnreal Forums. To configure it, visit your Profile and look for the "Two Step Verification" option on the left side. We can send codes via email (may be slower) or you can set up any TOTP Authenticator app on your phone (Authy, Google Authenticator, etc) to deliver codes. It is highly recommended that you configure this to keep your account safe.

_Lynx

Strategic Military Services
Staff member
Dec 5, 2003
1,965
8
38
40
Moscow, Russia
beyondunreal.com
If the round winner is determined in arena match (all other players are jailed, in my case there were one free player in both teams and right after arena match has started, they killed each other) and that match is tied, instead of counting a draw, game gives victory to the blue team. In my case red player even killed his opponent in arena, but within a second fell into lava and died. There was a message saying that the arena match is tied and both teams gathered in their jails. I guess in this case code just as usual checks if one of the team jailed and just as usual team with index 0 is checked first. If true, blue team isn't checked. I remember there was similar bug in Onslaught, when both cores blow up simultaneosly due to draining.
 

_Lynx

Strategic Military Services
Staff member
Dec 5, 2003
1,965
8
38
40
Moscow, Russia
beyondunreal.com
should be quite simple.

By default the code is smth like (haven't looked but that's the only way that may cause that):
Code:
if (team[0].bIsJailed)
BlueWinRoundStuff;
else
RedWinRoundStuff;

and it must be done like that:
Code:
if (team[0].bIsJailed && !team[1].bIsJailed)
BlueWinRoundStuff;
else if (team[1].bIsJailed && !team[0].bIsJailed)
RedWinRoundStuff;
else 
RoundTiedStuff;
 

Mychaeel

New Member
I'm here. I don't see any cow around, though, holy or otherwise.

There is code in Jailbreak that allows for ties, e.g. when both last players kill each other with their rocket launchers. There should not be an execution when both teams are considered "captured" at the same time; nor when the capturED team's release is active; nor when somebody from the capturING team is still in the arena (see function ExecutionInit in Jailbreak.uc). There can't even be a race condition in there -- UnrealScript isn't multi-threaded.

If the red player went back to jail first, there'd still have been a blue player in the arena before he respawned in jail too. If both players had already respawned in jail when the capture check came to pass, there would have been a tie.

I'm stumped as to why what you experienced could have happened. :hmm: