diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp | 16 | ||||
-rw-r--r-- | src/server/scripts/Northrend/VioletHold/violet_hold.cpp | 9 |
2 files changed, 20 insertions, 5 deletions
diff --git a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp index b86c1734076..26e5aedaf62 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp @@ -292,15 +292,23 @@ struct boss_ichoronAI : public ScriptedAI void JustSummoned(Creature* pSummoned) { - pSummoned->SetSpeed(MOVE_RUN, 0.3f); - pSummoned->GetMotionMaster()->MoveFollow(me, 0, 0); - m_waterElements.push_back(pSummoned->GetGUID()); + if (pSummoned) + { + pSummoned->SetSpeed(MOVE_RUN, 0.3f); + pSummoned->GetMotionMaster()->MoveFollow(me, 0, 0); + m_waterElements.push_back(pSummoned->GetGUID()); + pInstance->SetData64(DATA_ADD_TRASH_MOB,pSummoned->GetGUID()); + } } void SummonedCreatureDespawn(Creature *pSummoned) { - m_waterElements.remove(pSummoned->GetGUID()); + if (pSummoned) + { + m_waterElements.remove(pSummoned->GetGUID()); + pInstance->SetData64(DATA_DEL_TRASH_MOB,pSummoned->GetGUID()); + } } void KilledUnit(Unit * victim) diff --git a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp index a970737aa2c..165d4309da4 100644 --- a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp +++ b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp @@ -539,7 +539,10 @@ struct npc_teleportation_portalAI : public ScriptedAI void UpdateAI(const uint32 diff) { - if (pInstance && pInstance->GetData(DATA_REMOVE_NPC) == 1) + if (!pInstance) //Massive usage of pInstance, global check + return; + + if (pInstance->GetData(DATA_REMOVE_NPC) == 1) { me->ForcedDespawn(); pInstance->SetData(DATA_REMOVE_NPC, 0); @@ -618,11 +621,15 @@ struct npc_teleportation_portalAI : public ScriptedAI void JustSummoned(Creature *pSummoned) { listOfMobs.Summon(pSummoned); + if (pSummoned) + pInstance->SetData64(DATA_ADD_TRASH_MOB,pSummoned->GetGUID()); } void SummonedMobDied(Creature *pSummoned) { listOfMobs.Despawn(pSummoned); + if (pSummoned) + pInstance->SetData64(DATA_DEL_TRASH_MOB,pSummoned->GetGUID()); } }; |