diff options
Diffstat (limited to 'src')
3 files changed, 10 insertions, 5 deletions
diff --git a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_chromaggus.cpp b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_chromaggus.cpp index 8e89a3aeed4..686c0be35db 100644 --- a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_chromaggus.cpp +++ b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_chromaggus.cpp @@ -247,10 +247,11 @@ struct TRINITY_DLL_DECL boss_chromaggusAI : public ScriptedAI std::list<HostilReference*>::iterator i; - for (i = m_creature->getThreatManager().getThreatList().begin();i != m_creature->getThreatManager().getThreatList().end(); ++i) + for (i = m_creature->getThreatManager().getThreatList().begin();i != m_creature->getThreatManager().getThreatList().end();) { Unit* pUnit = NULL; pUnit = Unit::GetUnit((*m_creature), (*i)->getUnitGuid()); + ++i; if (pUnit) { diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_patchwerk.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_patchwerk.cpp index 99d30a7ed06..50f4559b4eb 100644 --- a/src/bindings/scripts/scripts/zone/naxxramas/boss_patchwerk.cpp +++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_patchwerk.cpp @@ -94,9 +94,10 @@ struct TRINITY_DLL_DECL boss_patchwerkAI : public ScriptedAI Unit* pTemp = NULL; std::list<HostilReference*>::iterator i = m_creature->getThreatManager().getThreatList().begin(); - for (i = m_creature->getThreatManager().getThreatList().begin(); i!=m_creature->getThreatManager().getThreatList().end(); ++i) + for (i = m_creature->getThreatManager().getThreatList().begin(); i!=m_creature->getThreatManager().getThreatList().end();) { pTemp = Unit::GetUnit((*m_creature),(*i)->getUnitGuid()); + ++i; if (pTemp && pTemp->isAlive() && pTemp->GetHealth() > MostHP && m_creature->GetDistance2d(pTemp) < 5) { MostHP = pTemp->GetHealth(); diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp index 5501f057dd1..f4e80001cf7 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp @@ -913,9 +913,10 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI m_creature->GetMotionMaster()->MoveIdle(); DoTeleportTo(GRAVITY_X, GRAVITY_Y, GRAVITY_Z); // 1) Kael'thas will portal the whole raid right into his body - for (i = m_creature->getThreatManager().getThreatList().begin(); i!= m_creature->getThreatManager().getThreatList().end();++i) + for (i = m_creature->getThreatManager().getThreatList().begin(); i!= m_creature->getThreatManager().getThreatList().end();) { Unit* pUnit = Unit::GetUnit((*m_creature), (*i)->getUnitGuid()); + ++i; if(pUnit && (pUnit->GetTypeId() == TYPEID_PLAYER)) { //Use work around packet to prevent player from being dropped from combat @@ -937,9 +938,10 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI } // 2) At that point he will put a Gravity Lapse debuff on everyone - for (i = m_creature->getThreatManager().getThreatList().begin(); i!= m_creature->getThreatManager().getThreatList().end();i++) + for (i = m_creature->getThreatManager().getThreatList().begin(); i!= m_creature->getThreatManager().getThreatList().end();) { Unit* pUnit = Unit::GetUnit((*m_creature), (*i)->getUnitGuid()); + ++i; if(pUnit && pUnit->GetTypeId() == TYPEID_PLAYER) { m_creature->CastSpell(pUnit, SPELL_KNOCKBACK, true); @@ -971,9 +973,10 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI case 3: //Remove flight - for (i = m_creature->getThreatManager().getThreatList().begin(); i!= m_creature->getThreatManager().getThreatList().end();i++) + for (i = m_creature->getThreatManager().getThreatList().begin(); i!= m_creature->getThreatManager().getThreatList().end();) { Unit* pUnit = Unit::GetUnit((*m_creature), (*i)->getUnitGuid()); + ++i; if(pUnit && pUnit->GetTypeId() == TYPEID_PLAYER) { //Using packet workaround |