From 3cb5b6136013f391c7db05453a4efd1a2d177ee0 Mon Sep 17 00:00:00 2001 From: Mario Date: Fri, 14 Jun 2013 22:36:49 +1000 Subject: [PATCH] Move a CA damage check into a mutator hook --- qcsrc/server/g_damage.qc | 2 +- qcsrc/server/mutators/gamemode_ca.qc | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/qcsrc/server/g_damage.qc b/qcsrc/server/g_damage.qc index f8a77a2cd..d35af7cac 100644 --- a/qcsrc/server/g_damage.qc +++ b/qcsrc/server/g_damage.qc @@ -708,7 +708,7 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, float if (targ == attacker) { - if(g_ca || (g_cts && !autocvar_g_cts_selfdamage)) + if(g_cts && !autocvar_g_cts_selfdamage) damage = 0; else damage = damage * autocvar_g_balance_selfdamagepercent; // Partial damage if the attacker hits himself diff --git a/qcsrc/server/mutators/gamemode_ca.qc b/qcsrc/server/mutators/gamemode_ca.qc index 7c8c1cb77..bf8fbbcbc 100644 --- a/qcsrc/server/mutators/gamemode_ca.qc +++ b/qcsrc/server/mutators/gamemode_ca.qc @@ -238,6 +238,15 @@ MUTATOR_HOOKFUNCTION(ca_SetStartItems) return 0; } +MUTATOR_HOOKFUNCTION(ca_PlayerDamage) +{ + if(IS_PLAYER(frag_attacker)) + if(frag_target == frag_attacker) + frag_damage = 0; + + return FALSE; +} + // scoreboard setup void ca_ScoreRules() { @@ -280,6 +289,7 @@ MUTATOR_DEFINITION(gamemode_ca) MUTATOR_HOOK(ForbidThrowCurrentWeapon, ca_ForbidThrowCurrentWeapon, CBC_ORDER_ANY); MUTATOR_HOOK(GiveFragsForKill, ca_GiveFragsForKill, CBC_ORDER_FIRST); MUTATOR_HOOK(SetStartItems, ca_SetStartItems, CBC_ORDER_ANY); + MUTATOR_HOOK(PlayerDamage_Calculate, ca_PlayerDamage, CBC_ORDER_ANY); MUTATOR_ONADD { -- 2.39.2