PDA

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


_Lynx
16th Dec 2005, 05:51 PM
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.

Vatcilli zeitchef
18th Dec 2005, 04:35 AM
That can certainly break a match....
Lynx you know a way to fix that?

_Lynx
20th Dec 2005, 03:05 PM
should be quite simple.

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

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

_Lynx
19th Jan 2006, 08:11 PM
holy cow, developers, where are you?

tarquin
20th Jan 2006, 07:17 AM
There's just Mychaeel and Wormbo really. Both are known to be busy with real life and haven't been seen around here in a while.

Mychaeel
2nd Apr 2006, 06:03 PM
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 (http://mychaeel.no-ip.com/jailbreak/Jailbreak/Implementation)). 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:

Vatcilli zeitchef
3rd Apr 2006, 09:30 AM
Ahh mych, long time since you posted here, some of us were starting to get worried ;)

Jrubzjeknf
3rd Apr 2006, 09:43 AM
Lynx, can you reproduce this problem under different circumstances and post the results?

_Lynx
4th Apr 2006, 09:33 AM
I'll try to recreate it but not sure of the result.