From 417e7ba1dfbb128b5df97c933a3891e4548e83ff Mon Sep 17 00:00:00 2001 From: Samual Date: Wed, 11 Apr 2012 16:52:50 -0400 Subject: [PATCH] Automatically do the "help me" ping if flag carrier gets damaged. TODO: make it based on damage... i.e., if their health gets below X level, THEN do it automatically. --- defaultXonotic.cfg | 1 + qcsrc/server/autocvars.qh | 1 + qcsrc/server/mutators/gamemode_ctf.qc | 7 ++++++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/defaultXonotic.cfg b/defaultXonotic.cfg index b0b221ebb..7d76d7de2 100644 --- a/defaultXonotic.cfg +++ b/defaultXonotic.cfg @@ -595,6 +595,7 @@ set g_ctf_flag_return_time 15 set g_ctf_flag_return_dropped 100 set g_ctf_flag_return_damage 0 set g_ctf_flag_return_when_unreachable 1 "automatically return the flag if it falls into lava/slime/trigger hurt" +set g_ctf_flagcarrier_auto_helpme_when_damaged 1 set g_ctf_flagcarrier_allow_vehicle_carry 1 set g_ctf_flagcarrier_selfdamagefactor 1 set g_ctf_flagcarrier_selfforcefactor 1 diff --git a/qcsrc/server/autocvars.qh b/qcsrc/server/autocvars.qh index e2a4708a7..2ba120a21 100644 --- a/qcsrc/server/autocvars.qh +++ b/qcsrc/server/autocvars.qh @@ -790,6 +790,7 @@ float autocvar_g_ctf_flag_return_time; float autocvar_g_ctf_flag_return_when_unreachable; float autocvar_g_ctf_flag_return_damage; float autocvar_g_ctf_flag_return_dropped; +float autocvar_g_ctf_flagcarrier_auto_helpme_when_damaged; float autocvar_g_ctf_flagcarrier_allow_vehicle_carry; float autocvar_g_ctf_flagcarrier_selfdamagefactor; float autocvar_g_ctf_flagcarrier_selfforcefactor; diff --git a/qcsrc/server/mutators/gamemode_ctf.qc b/qcsrc/server/mutators/gamemode_ctf.qc index 5e5f17241..dc75e1764 100644 --- a/qcsrc/server/mutators/gamemode_ctf.qc +++ b/qcsrc/server/mutators/gamemode_ctf.qc @@ -1005,12 +1005,17 @@ MUTATOR_HOOKFUNCTION(ctf_PlayerDamage) // for changing damage and force values t frag_damage *= autocvar_g_ctf_flagcarrier_selfdamagefactor; frag_force *= autocvar_g_ctf_flagcarrier_selfforcefactor; } - else // damage done everyone else + else // damage done to everyone else { frag_damage *= autocvar_g_ctf_flagcarrier_damagefactor; frag_force *= autocvar_g_ctf_flagcarrier_forcefactor; } } + else if(frag_target.flagcarried) // if the target is a flagcarrier + { + if(autocvar_g_ctf_flagcarrier_auto_helpme_when_damaged) + WaypointSprite_HelpMePing(self.wps_flagcarrier); // TODO: only do this if there is a significant loss of health? + } return 0; } -- 2.39.2