diff options
Diffstat (limited to 'src/server')
| -rw-r--r-- | src/server/game/AI/ScriptedAI/ScriptedCreature.cpp | 10 | ||||
| -rw-r--r-- | src/server/game/AI/ScriptedAI/ScriptedCreature.h | 2 | 
2 files changed, 12 insertions, 0 deletions
diff --git a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp index 9fa4cb46299..1076b7dd4e4 100644 --- a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp +++ b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp @@ -517,6 +517,16 @@ void BossAI::TeleportCheaters()      }  } +void BossAI::ForceStopCombatForCreature(uint32 entry, float maxSearchRange /*= 250.0f*/) +{ +    TC_LOG_WARN("scripts.ai", "BossAI::ForceStopCombatForCreature: called on '%s' with creature entry '%u'. This should be fixed in another way than calling this function. Debug info: %s", me->GetName().c_str(), entry, me->GetDebugInfo().c_str()); +    std::list<Creature*> creatures; +    me->GetCreatureListWithEntryInGrid(creatures, entry, maxSearchRange); + +    for (Creature* creature : creatures) +        creature->CombatStop(); +} +  void BossAI::JustSummoned(Creature* summon)  {      summons.Summon(summon); diff --git a/src/server/game/AI/ScriptedAI/ScriptedCreature.h b/src/server/game/AI/ScriptedAI/ScriptedCreature.h index 5bd4a346d2a..67fe9da29f3 100644 --- a/src/server/game/AI/ScriptedAI/ScriptedCreature.h +++ b/src/server/game/AI/ScriptedAI/ScriptedCreature.h @@ -336,6 +336,8 @@ class TC_GAME_API BossAI : public ScriptedAI          void TeleportCheaters(); +        void ForceStopCombatForCreature(uint32 entry, float maxSearchRange = 250.0f); +          EventMap events;          SummonList summons;          TaskScheduler scheduler;  | 
