From 40797b5b027903451450dc2398d85a635a3b4105 Mon Sep 17 00:00:00 2001 From: terencehill Date: Tue, 28 Jan 2025 12:53:31 +0100 Subject: [PATCH] Keepaway: fix noncarrier damage being applied to ball carriers too This bug was introduced by 01bea1371 --- qcsrc/common/gamemodes/gamemode/keepaway/sv_keepaway.qc | 9 ++++++--- qcsrc/common/gamemodes/gamemode/tka/sv_tka.qc | 7 ++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/qcsrc/common/gamemodes/gamemode/keepaway/sv_keepaway.qc b/qcsrc/common/gamemodes/gamemode/keepaway/sv_keepaway.qc index ee159358d..bba3baa3c 100644 --- a/qcsrc/common/gamemodes/gamemode/keepaway/sv_keepaway.qc +++ b/qcsrc/common/gamemodes/gamemode/keepaway/sv_keepaway.qc @@ -371,14 +371,17 @@ MUTATOR_HOOKFUNCTION(ka, PlayerDies) if((frag_attacker != frag_target) && (IS_PLAYER(frag_attacker))) { - if(frag_target.ballcarried) { // add to amount of times killing carrier + if(frag_target.ballcarried) // add to amount of times killing carrier + { GameRules_scoring_add(frag_attacker, KEEPAWAY_CARRIERKILLS, 1); if(autocvar_g_keepaway_score_bckill) // add bckills to the score GameRules_scoring_add(frag_attacker, SCORE, autocvar_g_keepaway_score_bckill); } else if(!frag_attacker.ballcarried) + { if(autocvar_g_keepaway_noncarrier_warn) Send_Notification(NOTIF_ONE_ONLY, frag_attacker, MSG_CENTER, CENTER_KEEPAWAY_WARN); + } if(frag_attacker.ballcarried) // add to amount of kills while ballcarrier GameRules_scoring_add(frag_attacker, SCORE, autocvar_g_keepaway_score_killac); @@ -435,13 +438,13 @@ MUTATOR_HOOKFUNCTION(ka, Damage_Calculate) // for changing damage and force valu M_ARGV(4, float) *= autocvar_g_keepaway_ballcarrier_selfdamage; M_ARGV(6, vector) *= autocvar_g_keepaway_ballcarrier_selfforce; } - else // damage done to other ballcarriers + else // damage done to other players (ballcarriers and noncarriers) { M_ARGV(4, float) *= autocvar_g_keepaway_ballcarrier_damage; M_ARGV(6, vector) *= autocvar_g_keepaway_ballcarrier_force; } } - else // if the attacker is a noncarrier + else if (!frag_target.ballcarried) // if the target is a noncarrier { if(frag_target == frag_attacker) // damage done to yourself { diff --git a/qcsrc/common/gamemodes/gamemode/tka/sv_tka.qc b/qcsrc/common/gamemodes/gamemode/tka/sv_tka.qc index dd3c8ea08..62aff020d 100644 --- a/qcsrc/common/gamemodes/gamemode/tka/sv_tka.qc +++ b/qcsrc/common/gamemodes/gamemode/tka/sv_tka.qc @@ -355,7 +355,8 @@ MUTATOR_HOOKFUNCTION(tka, PlayerDies) team_has_ball = true; break; }); - if(frag_target.ballcarried) { // add to amount of times killing carrier + if(frag_target.ballcarried) // add to amount of times killing carrier + { GameRules_scoring_add(frag_attacker, TKA_CARRIERKILLS, 1); if(autocvar_g_tka_score_bckill) // add bckills to the score GameRules_scoring_add_team(frag_attacker, SCORE, autocvar_g_tka_score_bckill); @@ -444,13 +445,13 @@ MUTATOR_HOOKFUNCTION(tka, Damage_Calculate) // for changing damage and force val frag_damage *= autocvar_g_tka_ballcarrier_selfdamage; frag_force *= autocvar_g_tka_ballcarrier_selfforce; } - else // damage done to other ballcarriers + else // damage done to other players (ballcarriers and noncarriers) { frag_damage *= autocvar_g_tka_ballcarrier_damage; frag_force *= autocvar_g_tka_ballcarrier_force; } } - else // if the attacker is a noncarrier + else if (!frag_target.ballcarried) // if the target is a noncarrier { if(frag_target == frag_attacker) // damage done to yourself { -- 2.39.5