]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Put the block of code that detects a push into the void before MUTATOR_CALLHOOK(Playe...
authorterencehill <piuntn@gmail.com>
Sun, 25 Nov 2012 19:01:27 +0000 (20:01 +0100)
committerterencehill <piuntn@gmail.com>
Sun, 25 Nov 2012 20:04:57 +0000 (21:04 +0100)
qcsrc/server/cl_player.qc
qcsrc/server/mutators/mutator_vampire.qc

index 6df997541719d096fd8ab75031fef74cee330057..dcf1ab76842afdd5a8885d68d4aacc16811c4627 100644 (file)
@@ -496,6 +496,30 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, float deatht
                take = damage;
        }
 
+       if(attacker == self)
+       {
+               // don't reset pushltime for self damage as it may be an attempt to
+               // escape a lava pit or similar
+               //self.pushltime = 0;
+               self.istypefrag = 0;
+       }
+       else if(attacker.classname == "player")
+       {
+               self.pusher = attacker;
+               self.pushltime = time + autocvar_g_maxpushtime;
+               self.istypefrag = self.BUTTON_CHAT;
+       }
+       else if(time < self.pushltime)
+       {
+               attacker = self.pusher;
+               self.pushltime = max(self.pushltime, time + 0.6);
+       }
+       else
+       {
+               self.pushltime = 0;
+               self.istypefrag = 0;
+       }
+
        frag_inflictor = inflictor;
        frag_attacker = attacker;
        frag_target = self;
@@ -580,30 +604,6 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, float deatht
        self.dmg_take = self.dmg_take + take;//max(take - 10, 0);
        self.dmg_inflictor = inflictor;
 
-       if(attacker == self)
-       {
-               // don't reset pushltime for self damage as it may be an attempt to
-               // escape a lava pit or similar
-               //self.pushltime = 0;
-               self.istypefrag = 0;
-       }
-       else if(attacker.classname == "player")
-       {
-               self.pusher = attacker;
-               self.pushltime = time + autocvar_g_maxpushtime;
-               self.istypefrag = self.BUTTON_CHAT;
-       }
-       else if(time < self.pushltime)
-       {
-               attacker = self.pusher;
-               self.pushltime = max(self.pushltime, time + 0.6);
-       }
-       else
-       {
-               self.pushltime = 0;
-               self.istypefrag = 0;
-       }
-
        if(g_ca && self != attacker && attacker.classname == "player")
                PlayerScore_Add(attacker, SP_SCORE, (damage - excess) * autocvar_g_ca_damage2score_multiplier);
 
index 7e253ddf9dafbe3f50f3d247890e8573edb841bf..40a925b3ce835fbc24c9b64f424d9022690dd0bc 100644 (file)
@@ -10,7 +10,7 @@ MUTATOR_HOOKFUNCTION(vampire_PlayerDamage)
        else
        {
                // otherwise: each hit gets damage back
-               frag_attacker.health += damage_take;
+               frag_attacker.health = frag_attacker.health + bound(0, damage_take, self.health);
        }
        return 0;
 }