clan arena:
authorpacker <itsme.xonotic@ymail.com>
Sat, 22 Sep 2018 11:37:48 +0000 (13:37 +0200)
committerpacker <itsme.xonotic@ymail.com>
Sat, 22 Sep 2018 12:18:02 +0000 (14:18 +0200)
- fix how scoring is performed when damage exceeds remaining
  health/armor fragged player (e.g. telefrag and void frag)
- dont give any score when killing teammates

qcsrc/common/gamemodes/gamemode/clanarena/sv_clanarena.qc

index 4c889cb..4f255c1 100644 (file)
@@ -380,12 +380,12 @@ MUTATOR_HOOKFUNCTION(ca, PlayerDamage_SplitHealthArmor)
        entity frag_attacker = M_ARGV(1, entity);
        entity frag_target = M_ARGV(2, entity);
        float frag_damage = M_ARGV(7, float);
-       float damage_take = M_ARGV(4, float);
-       float damage_save = M_ARGV(5, float);
+       float damage_take = bound(0, M_ARGV(4, float), GetResourceAmount(frag_target, RESOURCE_HEALTH));
+       float damage_save = bound(0, M_ARGV(5, float), GetResourceAmount(frag_target, RESOURCE_ARMOR));
 
        float excess = max(0, frag_damage - damage_take - damage_save);
 
-       if (frag_target != frag_attacker && IS_PLAYER(frag_attacker))
+       if (frag_target != frag_attacker && IS_PLAYER(frag_attacker) && !SAME_TEAM(frag_target, frag_attacker))
                GameRules_scoring_add_team(frag_attacker, SCORE, (frag_damage - excess) * autocvar_g_ca_damage2score_multiplier);
 }