From a54a3a4ef350857b53f34d379992109f1e317428 Mon Sep 17 00:00:00 2001 From: bones_was_here Date: Sat, 17 Apr 2021 19:29:17 +1000 Subject: [PATCH] sv_maxidle_playertospectator: print only 1 CHATCON notification when a player is moved to spec --- qcsrc/server/client.qc | 8 -------- qcsrc/server/teamplay.qc | 30 ++++++++++++++---------------- 2 files changed, 14 insertions(+), 24 deletions(-) diff --git a/qcsrc/server/client.qc b/qcsrc/server/client.qc index 08a0b68da..b5bdc3075 100644 --- a/qcsrc/server/client.qc +++ b/qcsrc/server/client.qc @@ -241,13 +241,6 @@ void PutObserverInServer(entity this) if (IS_PLAYER(this)) { - if (autocvar_sv_maxidle_playertospectator > 0 && CS(this).idlekick_lasttimeleft) - { - Kill_Notification(NOTIF_ONE_ONLY, this, MSG_CENTER, CPID_IDLING); - CS(this).idlekick_lasttimeleft = 0; - CS(this).parm_idlesince = time; - } - if(GetResource(this, RES_HEALTH) >= 1) { // despawn effect @@ -2751,7 +2744,6 @@ void PlayerPostThink (entity this) if (this.caplayer) this.caplayer = 0; PutObserverInServer(this); - CS(this).parm_idlesince = time; } else { diff --git a/qcsrc/server/teamplay.qc b/qcsrc/server/teamplay.qc index 7abd4e6bc..5877bb37d 100644 --- a/qcsrc/server/teamplay.qc +++ b/qcsrc/server/teamplay.qc @@ -214,33 +214,31 @@ bool SetPlayerTeam(entity player, int team_index, int type) return false; } LogTeamChange(player.playerid, player.team, type); - if (team_index != old_team_index) + if (team_index == -1) { - PlayerScore_Clear(player); - if (team_index != -1) + if (autocvar_sv_maxidle_playertospectator > 0 && CS(player).idlekick_lasttimeleft) { - Send_Notification(NOTIF_ALL, NULL, MSG_INFO, APP_TEAM_NUM( - player.team, INFO_JOIN_PLAY_TEAM), player.netname); + // centerprint is killed and timestamps are reset here to ensure + // it's done even when manually speccing during the countdown + Kill_Notification(NOTIF_ONE_ONLY, player, MSG_CENTER, CPID_IDLING); + CS(player).parm_idlesince = time; + CS(player).idlekick_lasttimeleft = 0; } - else + else if (!CS(player).just_joined && player.frags != FRAGS_SPECTATOR) { - if (!CS(player).just_joined) - { - Send_Notification(NOTIF_ALL, NULL, MSG_INFO, INFO_QUIT_SPECTATE, - player.netname); - } + Send_Notification(NOTIF_ALL, NULL, MSG_INFO, INFO_QUIT_SPECTATE, player.netname); } + } + else if (team_index != old_team_index) + { + PlayerScore_Clear(player); + Send_Notification(NOTIF_ALL, NULL, MSG_INFO, APP_TEAM_NUM(player.team, INFO_JOIN_PLAY_TEAM), player.netname); KillPlayerForTeamChange(player); if (!IS_BOT_CLIENT(player)) { TeamBalance_AutoBalanceBots(); } } - else if (team_index == -1) - { - if (!CS(player).just_joined && player.frags != FRAGS_SPECTATOR) - Send_Notification(NOTIF_ALL, NULL, MSG_INFO, INFO_QUIT_SPECTATE, player.netname); - } return true; } -- 2.39.2