From 694fc4b5554ae3ca732985a0f142f672adae3ed8 Mon Sep 17 00:00:00 2001 From: terencehill Date: Sun, 12 May 2013 18:49:06 +0200 Subject: [PATCH] Fix sv_maxidle not kicking dead players and kicking spectators even if sv_maxidle_spectatorsareidle is 0 --- defaultXonotic.cfg | 6 ++---- qcsrc/server/cl_client.qc | 3 ++- qcsrc/server/cl_physics.qc | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/defaultXonotic.cfg b/defaultXonotic.cfg index 0a66a9078..5825655be 100644 --- a/defaultXonotic.cfg +++ b/defaultXonotic.cfg @@ -1102,10 +1102,8 @@ set sv_intermission_cdtrack "" set g_cdtracks_dontusebydefault "rising-of-the-phoenix" set menu_cdtrack "rising-of-the-phoenix" -// maxidle (in seconds): kick players idle for more than that amount of time -set sv_maxidle 0 -// when sv_maxidle is not 0, assume spectators are idle too -set sv_maxidle_spectatorsareidle 0 +set sv_maxidle 0 "kick players idle for more than this amount of time in seconds" +set sv_maxidle_spectatorsareidle 0 "when sv_maxidle is not 0, assume spectators are idle too" // these entities are not referenced by anything directly, they just represent // teams and are found by find() when needed diff --git a/qcsrc/server/cl_client.qc b/qcsrc/server/cl_client.qc index a6f202e99..6df7310e7 100644 --- a/qcsrc/server/cl_client.qc +++ b/qcsrc/server/cl_client.qc @@ -2776,7 +2776,8 @@ void PlayerPostThink (void) stuffcmd(self, strcat("name ", self.netname, substring(ftos(random()), 2, -1), "\n")); } - if(sv_maxidle && frametime) // WORKAROUND: only use dropclient in server frames (frametime set). Never use it in cl_movement frames (frametime zero). + if(sv_maxidle > 0 && frametime) // WORKAROUND: only use dropclient in server frames (frametime set). Never use it in cl_movement frames (frametime zero). + if(IS_PLAYER(self) || sv_maxidle_spectatorsareidle) { if (time - self.parm_idlesince < 1) // instead of (time == self.parm_idlesince) to support sv_maxidle <= 10 { diff --git a/qcsrc/server/cl_physics.qc b/qcsrc/server/cl_physics.qc index b65e62a85..5ce7b7d47 100644 --- a/qcsrc/server/cl_physics.qc +++ b/qcsrc/server/cl_physics.qc @@ -760,7 +760,7 @@ void SV_PlayerPhysics() else if(self.specialcommand_pos && (c != substring(specialcommand, self.specialcommand_pos - 1, 1))) self.specialcommand_pos = 0; - if(!sv_maxidle_spectatorsareidle || self.movetype == MOVETYPE_WALK) + if(sv_maxidle > 0) { if(buttons != self.buttons_old || self.movement != self.movement_old || self.v_angle != self.v_angle_old) self.parm_idlesince = time; -- 2.39.2