X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fg_damage.qc;h=d96c28bf1adaac3df8328bbc05ef5db3c9f76b6b;hb=5a7362e456f39815970f1d71cfc8822446e3cb60;hp=4c294f6ffaa2735bd23e3c33d2ab73c192abbd4d;hpb=ce9580f57545f8ab334f7598d653c4dfedbecf3e;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/g_damage.qc b/qcsrc/server/g_damage.qc index 4c294f6ff..d96c28bf1 100644 --- a/qcsrc/server/g_damage.qc +++ b/qcsrc/server/g_damage.qc @@ -1,5 +1,6 @@ #include "g_damage.qh" +#include #include "bot/api.qh" #include "g_hook.qh" #include "mutators/_mod.qh" @@ -326,19 +327,19 @@ void Obituary(entity attacker, entity inflictor, entity targ, int deathtype) { case DEATH_MIRRORDAMAGE: { - Obituary_SpecialDeath(targ, false, deathtype, targ.netname, deathlocation, "", targ.killcount, 0, 0); + Obituary_SpecialDeath(targ, false, deathtype, targ.netname, deathlocation, "", CS(targ).killcount, 0, 0); break; } default: { - Obituary_SpecialDeath(targ, false, deathtype, targ.netname, deathlocation, "", targ.killcount, 0, 0); + Obituary_SpecialDeath(targ, false, deathtype, targ.netname, deathlocation, "", CS(targ).killcount, 0, 0); break; } } } } - else if (!Obituary_WeaponDeath(targ, false, deathtype, targ.netname, deathlocation, "", targ.killcount, 0)) + else if (!Obituary_WeaponDeath(targ, false, deathtype, targ.netname, deathlocation, "", CS(targ).killcount, 0)) { backtrace("SUICIDE: what the hell happened here?\n"); return; @@ -358,11 +359,11 @@ void Obituary(entity attacker, entity inflictor, entity targ, int deathtype) LogDeath("tk", deathtype, attacker, targ); GiveFrags(attacker, targ, -1, deathtype); - attacker.killcount = 0; + CS(attacker).killcount = 0; Send_Notification(NOTIF_ONE, attacker, MSG_CENTER, CENTER_DEATH_TEAMKILL_FRAG, targ.netname); Send_Notification(NOTIF_ONE, targ, MSG_CENTER, CENTER_DEATH_TEAMKILL_FRAGGED, attacker.netname); - Send_Notification(NOTIF_ALL, NULL, MSG_INFO, APP_TEAM_NUM(targ.team, INFO_DEATH_TEAMKILL), targ.netname, attacker.netname, deathlocation, targ.killcount); + Send_Notification(NOTIF_ALL, NULL, MSG_INFO, APP_TEAM_NUM(targ.team, INFO_DEATH_TEAMKILL), targ.netname, attacker.netname, deathlocation, CS(targ).killcount); // In this case, the death message will ALWAYS be "foo was betrayed by bar" // No need for specific death/weapon messages... @@ -373,7 +374,7 @@ void Obituary(entity attacker, entity inflictor, entity targ, int deathtype) GiveFrags(attacker, targ, 1, deathtype); CS(attacker).taunt_soundtime = time + 1; - attacker.killcount = attacker.killcount + 1; + CS(attacker).killcount = CS(attacker).killcount + 1; attacker.killsound += 1; @@ -384,7 +385,7 @@ void Obituary(entity attacker, entity inflictor, entity targ, int deathtype) PS_GR_P_ADDVAL(attacker, PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_##counta, 1); \ break; \ } - switch(attacker.killcount) + switch(CS(attacker).killcount) { KILL_SPREE_LIST default: break; @@ -404,7 +405,7 @@ void Obituary(entity attacker, entity inflictor, entity targ, int deathtype) } else { - kill_count_to_attacker = attacker.killcount; + kill_count_to_attacker = CS(attacker).killcount; kill_count_to_target = 0; } @@ -459,8 +460,8 @@ void Obituary(entity attacker, entity inflictor, entity targ, int deathtype) if(deathtype == DEATH_BUFF.m_id) f3 = buff_FirstFromFlags(attacker.buffs).m_id; - if (!Obituary_WeaponDeath(targ, true, deathtype, targ.netname, attacker.netname, deathlocation, targ.killcount, kill_count_to_attacker)) - Obituary_SpecialDeath(targ, true, deathtype, targ.netname, attacker.netname, deathlocation, targ.killcount, kill_count_to_attacker, f3); + if (!Obituary_WeaponDeath(targ, true, deathtype, targ.netname, attacker.netname, deathlocation, CS(targ).killcount, kill_count_to_attacker)) + Obituary_SpecialDeath(targ, true, deathtype, targ.netname, attacker.netname, deathlocation, CS(targ).killcount, kill_count_to_attacker, f3); } } @@ -480,7 +481,7 @@ void Obituary(entity attacker, entity inflictor, entity targ, int deathtype) targ.netname, inflictor.message, deathlocation, - targ.killcount, + CS(targ).killcount, 0, 0); break; @@ -492,7 +493,7 @@ void Obituary(entity attacker, entity inflictor, entity targ, int deathtype) targ.netname, ((strstrofs(deathmessage, "%", 0) < 0) ? strcat("%s ", deathmessage) : deathmessage), deathlocation, - targ.killcount, + CS(targ).killcount, 0, 0); break; @@ -500,7 +501,7 @@ void Obituary(entity attacker, entity inflictor, entity targ, int deathtype) default: { - Obituary_SpecialDeath(targ, false, deathtype, targ.netname, deathlocation, "", targ.killcount, 0, 0); + Obituary_SpecialDeath(targ, false, deathtype, targ.netname, deathlocation, "", CS(targ).killcount, 0, 0); break; } } @@ -516,7 +517,7 @@ void Obituary(entity attacker, entity inflictor, entity targ, int deathtype) } // reset target kill count - if(targ.killcount) { targ.killcount = 0; } + CS(targ).killcount = 0; } void Ice_Think(entity this) @@ -622,7 +623,7 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, int d float mirrordamage = 0; float mirrorforce = 0; - if (game_stopped || targ.killcount == FRAGS_SPECTATOR) + if (game_stopped || (IS_CLIENT(targ) && CS(targ).killcount == FRAGS_SPECTATOR)) return; entity attacker_save = attacker; @@ -785,7 +786,6 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, int d setorigin(targ, spot.origin + '0 0 1' * (1 - targ.mins.z - 24)); // don't reset back to last position, even if new position is stuck in solid targ.oldorigin = targ.origin; - targ.prevorigin = targ.origin; Send_Effect(EFFECT_TELEPORT, targ.origin, '0 0 0', 1); } @@ -1267,7 +1267,7 @@ void Fire_ApplyDamage(entity e) if(!IS_INDEPENDENT_PLAYER(e)) if(!STAT(FROZEN, e)) - FOREACH_CLIENT(IS_PLAYER(it) && it != e, LAMBDA( + FOREACH_CLIENT(IS_PLAYER(it) && it != e, { if(!IS_DEAD(it)) if(!IS_INDEPENDENT_PLAYER(it)) if(boxesoverlap(e.absmin, e.absmax, it.absmin, it.absmax)) @@ -1276,7 +1276,7 @@ void Fire_ApplyDamage(entity e) d = autocvar_g_balance_firetransfer_damage * e.fire_damagepersec * t; Fire_AddDamage(it, o, d, t, DEATH_FIRE.m_id); } - )); + }); } void Fire_ApplyEffect(entity e)