X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fserver%2Fg_damage.qc;h=28a1c8e8ca23e760a6d5a966899747be9be04ceb;hp=ec8333070a905b759d4d4dc9fb56b86169ba6095;hb=71e6c75bc408ae5a116f296797c49c0cef7be113;hpb=2b89f5bdd3be253aa44320dc71f70f283df3b5ee diff --git a/qcsrc/server/g_damage.qc b/qcsrc/server/g_damage.qc index ec8333070a..28a1c8e8ca 100644 --- a/qcsrc/server/g_damage.qc +++ b/qcsrc/server/g_damage.qc @@ -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); @@ -115,7 +115,7 @@ void GiveFrags (entity attacker, entity targ, float f, float deathtype) else if(!(attacker.weapons & WepSet_FromWeapon(culprit))) culprit = attacker.weapon; - if(g_weaponarena_random_with_laser && culprit == WEP_BLASTER) // WEAPONTODO: Shouldn't this be in a mutator? + if(g_weaponarena_random_with_blaster && culprit == WEP_BLASTER) // WEAPONTODO: Shouldn't this be in a mutator? { // no exchange } @@ -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; } @@ -826,7 +826,7 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, float self = oldself; } - if(!g_minstagib) + if(!g_instagib) { // apply strength multiplier if (attacker.items & IT_STRENGTH) @@ -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;