From 41e27a9b4026685f4ff6d5f23ec49510d773b028 Mon Sep 17 00:00:00 2001 From: megamage Date: Sat, 20 Dec 2008 10:42:00 -0600 Subject: *Fix a bug that Illidan script causes crash. *Fix 541_characters.sql. By Anubisss. --HG-- branch : trunk --- .../scripts/scripts/zone/black_temple/boss_illidan.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/bindings/scripts') diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp index bd5b8467608..9e9cf27f1c3 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp @@ -1060,13 +1060,16 @@ struct TRINITY_DLL_DECL npc_akama_illidanAI : public ScriptedAI void KillAllElites() { - std::list::iterator itr; - for(itr = m_creature->getThreatManager().getThreatList().begin(); itr != m_creature->getThreatManager().getThreatList().end(); ++itr) + std::list& threatList = m_creature->getThreatManager().getThreatList(); + std::vector eliteList; + for(std::list::iterator itr = threatList.begin(); itr != threatList.end(); ++itr) { Unit* pUnit = Unit::GetUnit((*m_creature), (*itr)->getUnitGuid()); - if(pUnit && (pUnit->GetTypeId() == TYPEID_UNIT) && (pUnit->GetEntry() == ILLIDARI_ELITE)) - pUnit->setDeathState(JUST_DIED); + if(pUnit && pUnit->GetEntry() == ILLIDARI_ELITE) + eliteList.push_back(pUnit); } + for(std::vector::iterator itr = eliteList.begin(); itr != eliteList.end(); ++itr) + (*itr)->setDeathState(JUST_DIED); EnterEvadeMode(); } -- cgit v1.2.3