From 393fe35ce6fc67d7721eff009d976c73aa6b799c Mon Sep 17 00:00:00 2001 From: Samual Lenks Date: Sat, 22 Sep 2012 16:56:59 -0400 Subject: [PATCH] Fix bug with helpme notification (spamming the radar ping) --- gamemodes.cfg | 3 ++- qcsrc/server/autocvars.qh | 3 ++- qcsrc/server/mutators/gamemode_ctf.qc | 7 ++++++- qcsrc/server/mutators/gamemode_ctf.qh | 1 + 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/gamemodes.cfg b/gamemodes.cfg index 53b6e3f91..6cff7e5a4 100644 --- a/gamemodes.cfg +++ b/gamemodes.cfg @@ -178,7 +178,8 @@ 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 100 +set g_ctf_flagcarrier_auto_helpme_damage 100 "automatically place a helpme notification on flag carrier waypointsprite if they get hit and their health dips below this value" +set g_ctf_flagcarrier_auto_helpme_time 2 "antispam time for the helpme notification" set g_ctf_flagcarrier_selfdamagefactor 1 set g_ctf_flagcarrier_selfforcefactor 1 set g_ctf_flagcarrier_damagefactor 1 diff --git a/qcsrc/server/autocvars.qh b/qcsrc/server/autocvars.qh index 00a257acd..16a7193c1 100644 --- a/qcsrc/server/autocvars.qh +++ b/qcsrc/server/autocvars.qh @@ -803,7 +803,8 @@ 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_auto_helpme_damage; +float autocvar_g_ctf_flagcarrier_auto_helpme_time; float autocvar_g_ctf_flagcarrier_selfdamagefactor; float autocvar_g_ctf_flagcarrier_selfforcefactor; float autocvar_g_ctf_flagcarrier_damagefactor; diff --git a/qcsrc/server/mutators/gamemode_ctf.qc b/qcsrc/server/mutators/gamemode_ctf.qc index 5233aa635..f453cc22a 100644 --- a/qcsrc/server/mutators/gamemode_ctf.qc +++ b/qcsrc/server/mutators/gamemode_ctf.qc @@ -1756,8 +1756,12 @@ MUTATOR_HOOKFUNCTION(ctf_PlayerDamage) // for changing damage and force values t } else if(frag_target.flagcarried && (frag_target.deadflag == DEAD_NO) && IsDifferentTeam(frag_target, frag_attacker)) // if the target is a flagcarrier { - if(autocvar_g_ctf_flagcarrier_auto_helpme_when_damaged > ('1 0 0' * healtharmor_maxdamage(frag_target.health, frag_target.armorvalue, autocvar_g_balance_armor_blockpercent))) + if(autocvar_g_ctf_flagcarrier_auto_helpme_damage > ('1 0 0' * healtharmor_maxdamage(frag_target.health, frag_target.armorvalue, autocvar_g_balance_armor_blockpercent))) + if(time > frag_target.wps_helpme_time + autocvar_g_ctf_flagcarrier_auto_helpme_time) + { + frag_target.wps_helpme_time = time; WaypointSprite_HelpMePing(frag_target.wps_flagcarrier); + } } return FALSE; } @@ -1905,6 +1909,7 @@ MUTATOR_HOOKFUNCTION(ctf_HelpMePing) { if(self.wps_flagcarrier) // update the flagcarrier waypointsprite with "NEEDING HELP" notification { + self.wps_helpme_time = time; WaypointSprite_HelpMePing(self.wps_flagcarrier); } else // create a normal help me waypointsprite diff --git a/qcsrc/server/mutators/gamemode_ctf.qh b/qcsrc/server/mutators/gamemode_ctf.qh index 7ed3dfef0..b6ca033bb 100644 --- a/qcsrc/server/mutators/gamemode_ctf.qh +++ b/qcsrc/server/mutators/gamemode_ctf.qh @@ -63,6 +63,7 @@ entity ctf_worldflaglist; .entity wps_flagcarrier; .entity wps_flagdropped; .entity wps_enemyflagcarrier; +.float wps_helpme_time; float wpforenemy_announced; float wpforenemy_nextthink; -- 2.39.2