Counter-Strike: Fix the round not restarting when players drop unexpectedly
or when the counter is otherwise out of sync on team joins.
This commit is contained in:
parent
d5ae0c8dfd
commit
23edd47438
2 changed files with 10 additions and 0 deletions
|
@ -47,6 +47,7 @@ class CSMultiplayerRules:CSGameRules
|
||||||
|
|
||||||
virtual void(void) InitPostEnts;
|
virtual void(void) InitPostEnts;
|
||||||
virtual void(void) FrameStart;
|
virtual void(void) FrameStart;
|
||||||
|
virtual void(base_player) PlayerDisconnect;
|
||||||
virtual void(base_player) PlayerSpawn;
|
virtual void(base_player) PlayerSpawn;
|
||||||
virtual void(base_player) PlayerPreFrame;
|
virtual void(base_player) PlayerPreFrame;
|
||||||
virtual void(base_player) PlayerDeath;
|
virtual void(base_player) PlayerDeath;
|
||||||
|
|
|
@ -24,6 +24,13 @@ CSMultiplayerRules::MaxItemPerSlot(int slot)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
CSMultiplayerRules::PlayerDisconnect(base_player pl)
|
||||||
|
{
|
||||||
|
if (health > 0)
|
||||||
|
PlayerDeath(pl);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
CSMultiplayerRules::PlayerDeath(base_player pl)
|
CSMultiplayerRules::PlayerDeath(base_player pl)
|
||||||
{
|
{
|
||||||
|
@ -990,6 +997,8 @@ void CSEv_JoinTeam_f(float flChar)
|
||||||
pl.deaths = 0;
|
pl.deaths = 0;
|
||||||
forceinfokey(pl, "*deaths", ftos(pl.deaths));
|
forceinfokey(pl, "*deaths", ftos(pl.deaths));
|
||||||
|
|
||||||
|
rules.CountPlayers();
|
||||||
|
|
||||||
/* if no players are present in the chosen team, force restart round */
|
/* if no players are present in the chosen team, force restart round */
|
||||||
if ((pl.team == TEAM_T) && (g_cs_alive_t == 0)) {
|
if ((pl.team == TEAM_T) && (g_cs_alive_t == 0)) {
|
||||||
rules.RoundOver(FALSE, 0, FALSE);
|
rules.RoundOver(FALSE, 0, FALSE);
|
||||||
|
|
Loading…
Reference in a new issue