aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTartalo <none@none>2010-06-28 01:04:13 +0200
committerTartalo <none@none>2010-06-28 01:04:13 +0200
commitf4531c5a582cae24d4d136035074d8da7e5bdad7 (patch)
treef0559449cbf73f30806007d8bf21190b5e3df7f1
parentcba6515acb5820af5df6b77855464c29062b8c44 (diff)
Violet Hold: Add crystal mechanic support to Portal's and Ichoron's adds
--HG-- branch : trunk
-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());
}
};