diff options
author | Trazom62 <none@none> | 2010-03-31 00:12:49 +0200 |
---|---|---|
committer | Trazom62 <none@none> | 2010-03-31 00:12:49 +0200 |
commit | e280d4e45bf8496cf92a6f33cf6753560325d0cc (patch) | |
tree | a0e5fb6aca89801e53c1081b8572e00ae83f87a7 | |
parent | 7cc192e97361b705ef8f3e6c82015021842e8c8d (diff) |
Fix Script Grand Magus Telestra to reappear when the 3 adds are killed.
Fixes issue #1382.
--HG--
branch : trunk
-rw-r--r-- | src/scripts/northrend/nexus/nexus/boss_magus_telestra.cpp | 51 |
1 files changed, 22 insertions, 29 deletions
diff --git a/src/scripts/northrend/nexus/nexus/boss_magus_telestra.cpp b/src/scripts/northrend/nexus/nexus/boss_magus_telestra.cpp index 84687732860..c5632f6c181 100644 --- a/src/scripts/northrend/nexus/nexus/boss_magus_telestra.cpp +++ b/src/scripts/northrend/nexus/nexus/boss_magus_telestra.cpp @@ -163,13 +163,33 @@ struct boss_magus_telestraAI : public ScriptedAI return 0; } + void SummonedCreatureDespawn(Creature *summon) + { + if (summon->isAlive()) + return; + + if (summon->GetGUID() == uiFireMagusGUID) + { + bFireMagusDead = true; + bIsAchievementTimerRunning = true; + } + else if (summon->GetGUID() == uiFrostMagusGUID) + { + bFrostMagusDead = true; + bIsAchievementTimerRunning = true; + } + else if (summon->GetGUID() == uiArcaneMagusGUID) + { + bArcaneMagusDead = true; + bIsAchievementTimerRunning = true; + } + } + void UpdateAI(const uint32 diff) { //Return since we have no target if (!UpdateVictim()) - { return; - } if (bIsWaitingToAppear) { @@ -185,33 +205,6 @@ struct boss_magus_telestraAI : public ScriptedAI if ((Phase == 1) ||(Phase == 3)) { - Unit* pFireMagus; - Unit* pFrostMagus; - Unit* pArcaneMagus; - if (uiFireMagusGUID) - pFireMagus = Unit::GetUnit((*m_creature), uiFireMagusGUID); - if (uiFrostMagusGUID) - pFrostMagus = Unit::GetUnit((*m_creature), uiFrostMagusGUID); - if (uiArcaneMagusGUID) - pArcaneMagus = Unit::GetUnit((*m_creature), uiArcaneMagusGUID); - if (pFireMagus && pFireMagus->isDead()) - { - bFireMagusDead = true; - if (!bIsAchievementTimerRunning) - bIsAchievementTimerRunning = true; - } - if (pFrostMagus && pFrostMagus->isDead()) - { - bFrostMagusDead = true; - if (!bIsAchievementTimerRunning) - bIsAchievementTimerRunning = true; - } - if (pArcaneMagus && pArcaneMagus->isDead()) - { - bArcaneMagusDead = true; - if (!bIsAchievementTimerRunning) - bIsAchievementTimerRunning = true; - } if (bIsAchievementTimerRunning) uiAchievementTimer += diff; if (bFireMagusDead && bFrostMagusDead && bArcaneMagusDead) |