]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Merge branch 'packer/dmg-and-ca-scoring' into 'master'
authorMario <zacjardine@y7mail.com>
Mon, 24 Sep 2018 12:46:44 +0000 (12:46 +0000)
committerMario <zacjardine@y7mail.com>
Mon, 24 Sep 2018 12:46:44 +0000 (12:46 +0000)
fix dmg and ca scoring

See merge request xonotic/xonotic-data.pk3dir!599

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

index 4c889cb24be655fe22afa1af098046b1a0219082..4f255c19ce75af467bdc187bd015ba287a37f14b 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);
 }
 
index 87005ad4bbf6c0476dab47635e1a34c8db616e04..32515c048ecea7dac6205be6e5aa1b7ad4979201 100644 (file)
@@ -468,7 +468,7 @@ void PlayerDamage(entity this, entity inflictor, entity attacker, float damage,
 
                        if (this != attacker) {
                                float realdmg = damage - excess;
-                               if (IS_PLAYER(attacker)) {
+                               if (IS_PLAYER(attacker) && !SAME_TEAM(attacker, this)) {
                                        GameRules_scoring_add(attacker, DMG, realdmg);
                                }
                                if (IS_PLAYER(this)) {