aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/541_characters.sql1
-rw-r--r--src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp11
2 files changed, 8 insertions, 4 deletions
diff --git a/sql/updates/541_characters.sql b/sql/updates/541_characters.sql
index 99a083d0387..7c74135157a 100644
--- a/sql/updates/541_characters.sql
+++ b/sql/updates/541_characters.sql
@@ -1,3 +1,4 @@
+DROP TABLE IF EXISTS `saved_variables`;
CREATE TABLE `saved_variables` (
`NextArenaPointDistributionTime` bigint(40) UNSIGNED NOT NULL DEFAULT '0'
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Variable Saves';
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<HostilReference*>::iterator itr;
- for(itr = m_creature->getThreatManager().getThreatList().begin(); itr != m_creature->getThreatManager().getThreatList().end(); ++itr)
+ std::list<HostilReference*>& threatList = m_creature->getThreatManager().getThreatList();
+ std::vector<Unit*> eliteList;
+ for(std::list<HostilReference*>::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<Unit*>::iterator itr = eliteList.begin(); itr != eliteList.end(); ++itr)
+ (*itr)->setDeathState(JUST_DIED);
EnterEvadeMode();
}