]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/mutators/mutator_campcheck.qc
Merge branch 'master' into TimePath/global_self
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / mutators / mutator_campcheck.qc
index 960565d4253424bd0b60ece853bee36a3a67ecd3..e4ad5ba19854f13851fb987bca87c111f189e1cf 100644 (file)
@@ -9,7 +9,7 @@
 
 MUTATOR_HOOKFUNCTION(campcheck_PlayerDies)
 {SELFPARAM();
-       Kill_Notification(NOTIF_ONE_ONLY, self, MSG_CENTER_CPID, CPID_CAMPCHECK);
+       Kill_Notification(NOTIF_ONE, self, MSG_CENTER_CPID, CPID_CAMPCHECK);
 
        return false;
 }
@@ -29,9 +29,14 @@ MUTATOR_HOOKFUNCTION(campcheck_PlayerDamage)
 
 MUTATOR_HOOKFUNCTION(campcheck_PlayerThink)
 {SELFPARAM();
+       if(!gameover)
+       if(!warmup_stage) // don't consider it camping during warmup?
+       if(time >= game_starttime)
        if(IS_PLAYER(self))
+       if(IS_REAL_CLIENT(self)) // bots may camp, but that's no reason to constantly kill them
        if(self.deadflag == DEAD_NO)
        if(!self.frozen)
+       if(!self.BUTTON_CHAT)
        if(autocvar_g_campcheck_interval)
        {
                vector dist;
@@ -60,8 +65,11 @@ MUTATOR_HOOKFUNCTION(campcheck_PlayerThink)
                        self.campcheck_nextcheck = time + autocvar_g_campcheck_interval;
                        self.campcheck_traveled_distance = 0;
                }
+
+               return false;
        }
 
+       self.campcheck_nextcheck = time + autocvar_g_campcheck_interval; // one of the above checks failed, so keep the timer up to date
        return false;
 }