aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp16
-rw-r--r--src/server/scripts/Northrend/VioletHold/violet_hold.cpp9
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());
}
};