]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Fix sv_maxidle not kicking dead players and kicking spectators even if sv_maxidle_spe...
authorterencehill <piuntn@gmail.com>
Sun, 12 May 2013 16:49:06 +0000 (18:49 +0200)
committerterencehill <piuntn@gmail.com>
Sun, 12 May 2013 16:49:06 +0000 (18:49 +0200)
defaultXonotic.cfg
qcsrc/server/cl_client.qc
qcsrc/server/cl_physics.qc

index 0a66a907846e277ca75aca6bccdbe8e2ef322375..5825655bed0d9df3f51e940b3f13f9f01c20a2ae 100644 (file)
@@ -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
index a6f202e99c09f10abbe40fca71f7ab25fe2f5695..6df7310e7c4e3bb2e37b11cdbc59377db3a87988 100644 (file)
@@ -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
                {
index b65e62a85ca7915bd52e2e70625d2673e7c8df25..5ce7b7d475f4d6848442b8fa9761106e5927ed2c 100644 (file)
@@ -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;