X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fg_damage.qc;h=9eaf82dc42d5684be97ad93507aa5b22b376e6eb;hb=8b2a456d83da008b5d17ec6092716a20718c0798;hp=0bd7a8da84b4ae6aa743673b45df1db5f428d958;hpb=3cd77e9863d3c7622c1d31d1b5c3686593ff09c8;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/g_damage.qc b/qcsrc/server/g_damage.qc index 0bd7a8da84..9eaf82dc42 100644 --- a/qcsrc/server/g_damage.qc +++ b/qcsrc/server/g_damage.qc @@ -299,13 +299,9 @@ void Obituary (entity attacker, entity inflictor, entity targ, float deathtype) string s, a, msg; float w, type; - if (targ.classname == "player" || targ.classname == "corpse") + if (targ.classname == "player") { - if (targ.classname == "corpse") - s = "A corpse"; - else - s = targ.netname; - + s = targ.netname; a = attacker.netname; if (targ == attacker) // suicides @@ -333,7 +329,7 @@ void Obituary (entity attacker, entity inflictor, entity targ, float deathtype) Send_KillNotification(s, msg, ftos(w), deathtype, MSG_SUICIDE); } - else if (attacker.classname == "player" || attacker.classname == "gib") + else if (attacker.classname == "player") { if(teamplay && attacker.team == targ.team) { @@ -782,15 +778,21 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, float if(deathtype & HITTYPE_HEADSHOT) damage *= 1 + damage_headshotbonus; - if(targ.classname == "player") + entity victim; + if((targ.vehicle_flags & VHF_ISVEHICLE) && targ.owner) + victim = targ.owner; + else + victim = targ; + + if(victim.classname == "player" || victim.turrcaps_flags & TFL_TURRCAPS_ISTURRET) { - if(IsDifferentTeam(targ, attacker)) + if(IsDifferentTeam(victim, attacker)) { if(damage > 0) { if(deathtype != DEATH_FIRE) { - if(targ.BUTTON_CHAT) + if(victim.BUTTON_CHAT) attacker.typehitsound += 1; else attacker.hitsound += 1; @@ -801,12 +803,13 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, float if not(DEATH_ISSPECIAL(deathtype)) { + if(targ.classname == "player") // don't do this for vehicles if(!g_minstagib) - if(IsFlying(targ)) + if(IsFlying(victim)) yoda = 1; if(g_minstagib) - if(targ.items & IT_STRENGTH) + if(victim.items & IT_STRENGTH) yoda = 1; if(deathtype & HITTYPE_HEADSHOT)