X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fmutators%2Fgamemode_ctf.qc;h=f5ecce93647a14e13083bdc5357cc339f2c289f6;hb=ce3ffdbb303c3b210c305121a2bf6ba11d87dada;hp=cf28dc168d96a6f9fe8fbee3052ffbff602e1d93;hpb=a195ae51564548a1aef681b3f0dd0fd68820b6b4;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/mutators/gamemode_ctf.qc b/qcsrc/server/mutators/gamemode_ctf.qc index cf28dc168..f5ecce936 100644 --- a/qcsrc/server/mutators/gamemode_ctf.qc +++ b/qcsrc/server/mutators/gamemode_ctf.qc @@ -812,8 +812,15 @@ void ctf_FlagTouch() } } +.float last_respawn; void ctf_RespawnFlag(entity flag) { + // check for flag respawn being called twice in a row + if(flag.last_respawn > time - 0.5) + { backtrace("flag respawn called twice quickly!"); } + + flag.last_respawn = time; + // reset the player (if there is one) if((flag.owner) && (flag.owner.flagcarried == flag)) { @@ -1040,7 +1047,7 @@ 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))) - WaypointSprite_HelpMePing(frag_target.wps_flagcarrier); // TODO: only do this if there is a significant loss of health? + WaypointSprite_HelpMePing(frag_target.wps_flagcarrier); } return FALSE; }