Skip to content

Commit 0a74d10

Browse files
authored
Merge pull request #3016 from ZeroK-RTS/master
Stable queue offset, fix update for everyone.
2 parents 25d5d3f + f2d6198 commit 0a74d10

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

ZkLobbyServer/ServerBattle.cs

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ public class ServerBattle : Battle
2929
public const int MapVoteTime = 25;
3030
public const int NumberOfMapChoices = 4;
3131
public const int MinimumAutostartPlayers = 6;
32+
public const int PrevBattleQueueOffset = 100000;
3233
public static int BattleCounter;
3334
public int QueueCounter = 0;
3435

@@ -1064,7 +1065,7 @@ public virtual void ValidateBattleStatus(UserBattleStatus ubs)
10641065
if (ubs.QueueOrder <= 0)
10651066
{
10661067
ubs.QueueOrder = ++QueueCounter;
1067-
if (IsInPreviousGame(ubs.Name)) ubs.QueueOrder += 100000;
1068+
if (IsInPreviousGame(ubs.Name)) ubs.QueueOrder += PrevBattleQueueOffset;
10681069
}
10691070
}
10701071
else
@@ -1134,17 +1135,24 @@ protected virtual async Task OnDedicatedExited(SpringBattleContext springBattleC
11341135
//Initiate discussion time, then map vote, then start vote
11351136
discussionTimer.Interval = (DiscussionSeconds - 1) * 1000;
11361137
discussionTimer.Start();
1138+
foreach (var n in previousGamePlayers)
1139+
{
1140+
UserBattleStatus ubs;
1141+
if (Users.TryGetValue(n, out ubs))
1142+
{
1143+
if (ubs.QueueOrder > QueueCounter + PrevBattleQueueOffset/2) ubs.QueueOrder -= PrevBattleQueueOffset;
1144+
}
1145+
}
11371146
previousGamePlayers = springBattleContext.ActualPlayers.Where(x => !x.IsSpectator).Select(x => x.Name).ToList();
11381147
foreach (var n in previousGamePlayers)
11391148
{
11401149
UserBattleStatus ubs;
11411150
if (Users.TryGetValue(n, out ubs))
11421151
{
1143-
ubs.QueueOrder = -1;
1144-
ValidateBattleStatus(ubs);
1145-
await server.Broadcast(Users.Keys, ubs.ToUpdateBattleStatus());
1152+
if (ubs.QueueOrder > 0 && ubs.QueueOrder < QueueCounter + PrevBattleQueueOffset/2) ubs.QueueOrder += PrevBattleQueueOffset;
11461153
}
11471154
}
1155+
await ValidateAllBattleStatuses();
11481156
}
11491157
}
11501158
await CheckCloseBattle();

0 commit comments

Comments
 (0)