From: Mario Date: Thu, 7 Feb 2013 05:23:29 +0000 (+1100) Subject: Fix monsters still being selected after changing teams X-Git-Tag: xonotic-v0.8.0~241^2^2~538 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=904e18785dc0b2495dd46d6e83edcbb658a5eb8e;p=xonotic%2Fxonotic-data.pk3dir.git Fix monsters still being selected after changing teams --- diff --git a/qcsrc/server/mutators/gamemode_rts.qc b/qcsrc/server/mutators/gamemode_rts.qc index 003534f8e..cd815b991 100644 --- a/qcsrc/server/mutators/gamemode_rts.qc +++ b/qcsrc/server/mutators/gamemode_rts.qc @@ -264,6 +264,25 @@ MUTATOR_HOOKFUNCTION(rts_PlayerPhysics) return FALSE; } +MUTATOR_HOOKFUNCTION(rts_PlayerDies) +{ + // prevent changing teams with selected monsters + entity head; + FOR_EACH_MONSTER(head) + { + if(head.owner != self) continue; + if(!head.selected) continue; + + if(IsDifferentTeam(self, head)) + { + head.selected = FALSE; + head.owner = world; + } + } + + return FALSE; +} + void rts_ScoreRules() { ScoreRules_basics(2, SFL_SORT_PRIO_PRIMARY, 0, TRUE); @@ -294,6 +313,7 @@ MUTATOR_DEFINITION(gamemode_rts) MUTATOR_HOOK(MonsterRespawn, rts_MonsterRespawn, CBC_ORDER_ANY); MUTATOR_HOOK(MonsterCheckBossFlag, rts_MonsterBossFlag, CBC_ORDER_ANY); MUTATOR_HOOK(PlayerDamage_Calculate, rts_PlayerDamage, CBC_ORDER_ANY); + MUTATOR_HOOK(PlayerDies, rts_PlayerDies, CBC_ORDER_ANY); MUTATOR_ONADD {