]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/mutators/mutator/campcheck/campcheck.qc
Purge self from the damage/death mutator hooks
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / mutators / mutator / campcheck / campcheck.qc
index 11286d9a2ff8088b7f55235997faf59890e89af0..183eac3cdb70342ec2fd7b1913053dd7039496d3 100644 (file)
@@ -10,12 +10,17 @@ REGISTER_MUTATOR(campcheck, cvar("g_campcheck"));
 
 MUTATOR_HOOKFUNCTION(campcheck, PlayerDies)
 {
+       entity frag_target = M_ARGV(2, entity);
+       
        Kill_Notification(NOTIF_ONE, frag_target, MSG_CENTER, CPID_CAMPCHECK);
        return false;
 }
 
 MUTATOR_HOOKFUNCTION(campcheck, PlayerDamage_Calculate)
 {
+       entity frag_attacker = M_ARGV(1, entity);
+       entity frag_target = M_ARGV(2, entity);
+
        if(IS_PLAYER(frag_target))
        if(IS_PLAYER(frag_attacker))
        if(frag_attacker != frag_target)
@@ -36,7 +41,7 @@ MUTATOR_HOOKFUNCTION(campcheck, PlayerPreThink)
        if(IS_REAL_CLIENT(self)) // bots may camp, but that's no reason to constantly kill them
        if(!IS_DEAD(self))
        if(!STAT(FROZEN, self))
-       if(!self.BUTTON_CHAT)
+       if(!PHYS_INPUT_BUTTON_CHAT(self))
        if(autocvar_g_campcheck_interval)
        {
                vector dist;
@@ -58,9 +63,9 @@ MUTATOR_HOOKFUNCTION(campcheck, PlayerPreThink)
                        {
                                Send_Notification(NOTIF_ONE, self, MSG_CENTER, CENTER_CAMPCHECK);
                                if(self.vehicle)
-                                       Damage(self.vehicle, self, self, autocvar_g_campcheck_damage * 2, DEATH_CAMP.m_id, self.vehicle.origin, '0 0 0');
+                                       Damage(self.vehicle, world, world, autocvar_g_campcheck_damage * 2, DEATH_CAMP.m_id, self.vehicle.origin, '0 0 0');
                                else
-                                       Damage(self, self, self, bound(0, autocvar_g_campcheck_damage, self.health + self.armorvalue * autocvar_g_balance_armor_blockpercent + 5), DEATH_CAMP.m_id, self.origin, '0 0 0');
+                                       Damage(self, world, world, bound(0, autocvar_g_campcheck_damage, self.health + self.armorvalue * autocvar_g_balance_armor_blockpercent + 5), DEATH_CAMP.m_id, self.origin, '0 0 0');
                        }
                        self.campcheck_nextcheck = time + autocvar_g_campcheck_interval;
                        self.campcheck_traveled_distance = 0;
@@ -74,11 +79,11 @@ MUTATOR_HOOKFUNCTION(campcheck, PlayerPreThink)
 }
 
 MUTATOR_HOOKFUNCTION(campcheck, PlayerSpawn)
-{SELFPARAM();
-       self.campcheck_nextcheck = time + autocvar_g_campcheck_interval * 2;
-       self.campcheck_traveled_distance = 0;
+{
+       entity player = M_ARGV(0, entity);
 
-       return false;
+       player.campcheck_nextcheck = time + autocvar_g_campcheck_interval * 2;
+       player.campcheck_traveled_distance = 0;
 }
 
 MUTATOR_HOOKFUNCTION(campcheck, BuildMutatorsString)