]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/cl_client.qc
possibly fix the kill indicator leak bug
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / cl_client.qc
index 1d034a4ec1a480a77a1bf16637a3ec8fba5b379d..2b8dc1881c77a9fca7d4dce51fda57ebbb6d2f8a 100644 (file)
@@ -1244,18 +1244,16 @@ void ClientKill_Now_TeamChange()
 
 void ClientKill_Now()
 {
+       remove(self.killindicator);
+       self.killindicator = world;
+
        if(self.killindicator_teamchange)
                ClientKill_Now_TeamChange();
 
        // in any case:
        Damage(self, self, self, 100000, DEATH_KILL, self.origin, '0 0 0');
 
-       if(self.killindicator)
-       {
-               dprint("Cleaned up after a leaked kill indicator.\n");
-               remove(self.killindicator);
-               self.killindicator = world;
-       }
+       // now I am sure the player IS dead
 }
 void KillIndicator_Think()
 {
@@ -1306,14 +1304,16 @@ void ClientKill_TeamChange (float targetteam) // 0 = don't change, -1 = auto, -2
        if(g_race_qualifying)
                killtime = 0;
 
-       // flood control it
-       killtime = max(killtime, self.clientkill_nexttime - time);
-       self.clientkill_nexttime = time + killtime + autocvar_g_balance_kill_antispam;
-
        self.killindicator_teamchange = targetteam;
 
        if(!self.killindicator)
        {
+               if(self.modelindex && self.deadflag == DEAD_NO)
+               {
+                       killtime = max(killtime, self.clientkill_nexttime - time);
+                       self.clientkill_nexttime = time + killtime + autocvar_g_balance_kill_antispam;
+               }
+
                if(killtime <= 0 || !self.modelindex || self.deadflag != DEAD_NO)
                {
                        ClientKill_Now();