]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/g_damage.qc
Merge branch 'master' into terencehill/music_player
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / g_damage.qc
index 880683d3f0a9addde4be1d5c407577b254627b4e..28a1c8e8ca23e760a6d5a966899747be9be04ceb 100644 (file)
@@ -99,7 +99,7 @@ void GiveFrags (entity attacker, entity targ, float f, float deathtype)
                // regular frag
                PlayerScore_Add(attacker, SP_KILLS, 1);
                if(targ.playerid)
-                       PlayerStats_Event(attacker, sprintf("kills-%d", targ.playerid), 1);
+                       PS_GR_P_ADDVAL(attacker, sprintf("kills-%d", targ.playerid), 1);
        }
 
        PlayerScore_Add(targ, SP_DEATHS, 1);
@@ -419,7 +419,7 @@ void Obituary(entity attacker, entity inflictor, entity targ, float deathtype)
                                case counta: \
                                { \
                                        Send_Notification(NOTIF_ONE, attacker, MSG_ANNCE, ANNCE_KILLSTREAK_##countb); \
-                                       PlayerStats_Event(attacker, PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_##counta, 1); \
+                                       PS_GR_P_ADDVAL(attacker, PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_##counta, 1); \
                                        break; \
                                }
                        switch(attacker.killcount)
@@ -433,8 +433,8 @@ void Obituary(entity attacker, entity inflictor, entity targ, float deathtype)
                        {
                                checkrules_firstblood = TRUE;
                                notif_firstblood = TRUE; // modify the current messages so that they too show firstblood information
-                               PlayerStats_Event(attacker, PLAYERSTATS_ACHIEVEMENT_FIRSTBLOOD, 1);
-                               PlayerStats_Event(targ, PLAYERSTATS_ACHIEVEMENT_FIRSTVICTIM, 1);
+                               PS_GR_P_ADDVAL(attacker, PLAYERSTATS_ACHIEVEMENT_FIRSTBLOOD, 1);
+                               PS_GR_P_ADDVAL(targ, PLAYERSTATS_ACHIEVEMENT_FIRSTVICTIM, 1);
 
                                // tell spree_inf and spree_cen that this is a first-blood and first-victim event
                                kill_count_to_attacker = -1;
@@ -541,7 +541,7 @@ void Obituary(entity attacker, entity inflictor, entity targ, float deathtype)
                if(PlayerScore_Add(targ, SP_SCORE, 0) == -5)
                {
                        Send_Notification(NOTIF_ONE, targ, MSG_ANNCE, ANNCE_ACHIEVEMENT_BOTLIKE);
-                       PlayerStats_Event(attacker, PLAYERSTATS_ACHIEVEMENT_BOTLIKE, 1);
+                       PS_GR_P_ADDVAL(attacker, PLAYERSTATS_ACHIEVEMENT_BOTLIKE, 1);
                }
        }
 
@@ -727,7 +727,7 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, float
                                                                attacker.dmg_take += v_x;
                                                                attacker.dmg_save += v_y;
                                                                attacker.dmg_inflictor = inflictor;
-                                                               mirrordamage = v_z; // = 0, to make fteqcc stfu
+                                                               mirrordamage = v_z;
                                                                mirrorforce = 0;
                                                        }
 
@@ -854,6 +854,7 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, float
                // count the damage
                if(attacker)
                if(!targ.deadflag)
+               if(deathtype != DEATH_BUFF_VENGEANCE)
                if(targ.takedamage == DAMAGE_AIM)
                if(targ != attacker)
                {
@@ -863,9 +864,9 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, float
                        else
                                victim = targ;
 
-                       if(IS_PLAYER(victim) || victim.turrcaps_flags & TFL_TURRCAPS_ISTURRET || victim.flags & FL_MONSTER)
+                       if(IS_PLAYER(victim) || (victim.turrcaps_flags & TFL_TURRCAPS_ISTURRET) || (victim.flags & FL_MONSTER))
                        {
-                               if(DIFF_TEAM(victim, attacker))
+                               if(DIFF_TEAM(victim, attacker) && !victim.frozen)
                                {
                                        if(damage > 0)
                                        {
@@ -874,7 +875,7 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, float
                                                        if(victim.BUTTON_CHAT)
                                                                attacker.typehitsound += 1;
                                                        else
-                                                               attacker.hitsound += 1;
+                                                               attacker.damage_dealt += damage;
                                                }
 
                                                damage_goodhits += 1;
@@ -1300,12 +1301,12 @@ void Fire_ApplyDamage(entity e)
        t = min(frametime, e.fire_endtime - time);
        d = e.fire_damagepersec * t;
 
-       hi = e.fire_owner.hitsound;
+       hi = e.fire_owner.damage_dealt;
        ty = e.fire_owner.typehitsound;
        Damage(e, e, e.fire_owner, d, e.fire_deathtype, e.origin, '0 0 0');
        if(e.fire_hitsound && e.fire_owner)
        {
-               e.fire_owner.hitsound = hi;
+               e.fire_owner.damage_dealt = hi;
                e.fire_owner.typehitsound = ty;
        }
        e.fire_hitsound = TRUE;