X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fg_damage.qc;h=db23f49db20fcc7cabee39fa95d7dcb0868557b7;hb=d9708336de4c01e81ea08bb205093b676b7cb882;hp=bd4426c3aaa68e30ad4705208bf04fbcb2d81b42;hpb=55384b17f6ad8154f79eeeefa17a1be3f060304a;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/g_damage.qc b/qcsrc/server/g_damage.qc index bd4426c3a..db23f49db 100644 --- a/qcsrc/server/g_damage.qc +++ b/qcsrc/server/g_damage.qc @@ -14,10 +14,11 @@ float Damage_DamageInfo_SendEntity(entity to, float sf) WriteByte(MSG_ENTITY, bound(0, self.dmg_radius, 255)); WriteByte(MSG_ENTITY, bound(1, self.dmg_edge, 255)); WriteShort(MSG_ENTITY, self.oldorigin_x); + WriteByte(MSG_ENTITY, self.species); return TRUE; } -void Damage_DamageInfo(vector org, float coredamage, float edgedamage, float rad, vector force, float deathtype, entity dmgowner) +void Damage_DamageInfo(vector org, float coredamage, float edgedamage, float rad, vector force, float deathtype, float bloodtype, entity dmgowner) { // TODO maybe call this from non-edgedamage too? // TODO maybe make the client do the particle effects for the weapons and the impact sounds using this info? @@ -35,8 +36,8 @@ void Damage_DamageInfo(vector org, float coredamage, float edgedamage, float rad e.dmg_radius = rad; e.dmg_force = vlen(force); e.velocity = force; - e.oldorigin_x = compressShortVector(e.velocity); + e.species = bloodtype; Net_LinkEntity(e, FALSE, 0.2, Damage_DamageInfo_SendEntity); } @@ -208,7 +209,7 @@ void GiveFrags (entity attacker, entity targ, float f, float deathtype) } f = 0; } - else if(g_ctf) + else if(g_ctf) // FIXCTF { if(g_ctf_ignore_frags) f = 0; @@ -428,7 +429,7 @@ void Obituary (entity attacker, entity inflictor, entity targ, float deathtype) if(g_ctf && targ.flagcarried) { - UpdateFrags(attacker, ctf_score_value("score_kill")); + UpdateFrags(attacker, ctf_ReadScore("score_kill")); // FIXCTF PlayerScore_Add(attacker, SP_CTF_FCKILLS, 1); GiveFrags(attacker, targ, 0, deathtype); // for logging } @@ -749,15 +750,6 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, float damage = damage * autocvar_g_balance_selfdamagepercent; // Partial damage if the attacker hits himself } - // CTF: reduce damage/force - if(g_ctf) - if(targ == attacker) - if(targ.flagcarried) - { - damage = damage * autocvar_g_ctf_flagcarrier_selfdamage; - force = force * autocvar_g_ctf_flagcarrier_selfforce; - } - if(g_runematch) { // apply strength rune @@ -996,9 +988,9 @@ float RadiusDamage (entity inflictor, entity attacker, float coredamage, float e else force = normalize(force); if(forceintensity >= 0) - Damage_DamageInfo(blastorigin, coredamage, edgedamage, rad, forceintensity * force, deathtype, attacker); + Damage_DamageInfo(blastorigin, coredamage, edgedamage, rad, forceintensity * force, deathtype, 0, attacker); else - Damage_DamageInfo(blastorigin, coredamage, edgedamage, -rad, (-forceintensity) * force, deathtype, attacker); + Damage_DamageInfo(blastorigin, coredamage, edgedamage, -rad, (-forceintensity) * force, deathtype, 0, attacker); } stat_damagedone = 0;