X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fserver%2Fdamage.qc;fp=qcsrc%2Fserver%2Fdamage.qc;h=d93d00bf5f58d368a1f338c970d1657368ec46b9;hp=d0b3a288fb3011d5472d1d5df49a2d58ea217399;hb=d2a588188f8e5c3cdcc716ddc08d521ee26b483f;hpb=7299b6f0c3aff0078d5279870bf14670ee320dcf diff --git a/qcsrc/server/damage.qc b/qcsrc/server/damage.qc index d0b3a288fb..d93d00bf5f 100644 --- a/qcsrc/server/damage.qc +++ b/qcsrc/server/damage.qc @@ -628,7 +628,10 @@ void Damage(entity targ, entity inflictor, entity attacker, float damage, int de if(deathtype != DEATH_TELEFRAG.m_id) if(IS_PLAYER(attacker)) { - if(IS_PLAYER(targ) && targ != attacker && (IS_INDEPENDENT_PLAYER(attacker) || IS_INDEPENDENT_PLAYER(targ))) + // avoid dealing damage or force to other independent players + // and avoid dealing damage or force to things owned by other independent players + if((IS_PLAYER(targ) && targ != attacker && (IS_INDEPENDENT_PLAYER(attacker) || IS_INDEPENDENT_PLAYER(targ))) || + (targ.realowner && IS_INDEPENDENT_PLAYER(targ.realowner) && attacker != targ.realowner)) { damage = 0; force = '0 0 0'; @@ -928,11 +931,9 @@ float RadiusDamageForSource (entity inflictor, vector inflictororigin, vector in float dist = max(0, vlen(diff) - bound(MIN_DAMAGEEXTRARADIUS, targ.damageextraradius, MAX_DAMAGEEXTRARADIUS)); if (dist <= rad) { - float power = 1; - if (rad > 0) - power -= (dist / rad); - // at this point power can't be < 0 or > 1 - float finaldmg = coredamage * power + edgedamage * (1 - power); + float f = (rad > 0) ? 1 - (dist / rad) : 1; + // at this point f can't be < 0 or > 1 + float finaldmg = coredamage * f + edgedamage * (1 - f); if (finaldmg > 0) { float a;