diff options
3 files changed, 16 insertions, 9 deletions
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp index 2eb1a2788ad..30deeae88fc 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp @@ -471,7 +471,7 @@ class boss_prince_keleseth_icc : public CreatureScript void UpdateAI(const uint32 diff) { - if (!UpdateVictim()) + if (!UpdateVictim() || !CheckInRoom()) return; events.Update(diff); @@ -656,7 +656,7 @@ class boss_prince_taldaram_icc : public CreatureScript void UpdateAI(const uint32 diff) { - if (!UpdateVictim()) + if (!UpdateVictim() || !CheckInRoom()) return; events.Update(diff); @@ -860,7 +860,7 @@ class boss_prince_valanar_icc : public CreatureScript void UpdateAI(const uint32 diff) { - if (!UpdateVictim()) + if (!UpdateVictim() || !CheckInRoom()) return; events.Update(diff); diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp index 3092ddf8ef2..296bccdbe13 100755 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp @@ -122,7 +122,7 @@ class boss_festergut : public CreatureScript DoScriptText(SAY_AGGRO, me); if (Creature* gasDummy = GetClosestCreatureWithEntry(me, NPC_GAS_DUMMY, 100.0f, true)) gasDummyGUID = gasDummy->GetGUID(); - if (Creature* professor = Unit::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE))) + if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE))) professor->AI()->DoAction(ACTION_FESTERGUT_COMBAT); DoZoneInCombat(me); @@ -132,8 +132,15 @@ class boss_festergut : public CreatureScript { DoScriptText(SAY_DEATH, me); instance->SetBossState(DATA_FESTERGUT, DONE); - if (Creature* professor = Unit::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE))) + if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE))) professor->AI()->DoAction(ACTION_FESTERGUT_DEATH); + + if (Creature* gasDummy = ObjectAccessor::GetCreature(*me, gasDummyGUID)) + for (uint8 i = 0; i < 3; ++i) + { + gasDummy->RemoveAurasDueToSpell(gaseousBlight[i]); + gasDummy->RemoveAurasDueToSpell(gaseousBlightVisual[i]); + } } void JustReachedHome() @@ -144,7 +151,7 @@ class boss_festergut : public CreatureScript void EnterEvadeMode() { ScriptedAI::EnterEvadeMode(); - if (Creature* professor = Unit::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE))) + if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE))) professor->AI()->EnterEvadeMode(); } @@ -181,7 +188,7 @@ class boss_festergut : public CreatureScript { case EVENT_INHALE_BLIGHT: { - if (Creature* gasDummy = Unit::GetCreature(*me, gasDummyGUID)) + if (Creature* gasDummy = ObjectAccessor::GetCreature(*me, gasDummyGUID)) for (uint8 i = 0; i < 3; ++i) { gasDummy->RemoveAurasDueToSpell(gaseousBlight[i]); @@ -193,7 +200,7 @@ class boss_festergut : public CreatureScript DoScriptText(SAY_PUNGENT_BLIGHT, me); DoCast(me, SPELL_PUNGENT_BLIGHT); uiInhaleCounter = 0; - if (Creature* professor = Unit::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE))) + if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE))) professor->AI()->DoAction(ACTION_FESTERGUT_GAS); } else diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp index a6878464d44..25ac1068e3e 100755 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp @@ -338,7 +338,6 @@ class boss_professor_putricide : public CreatureScript case POINT_TABLE: // stop attack me->GetMotionMaster()->MoveIdle(); - me->Attack(me->getVictim(), false); me->SetSpeed(MOVE_RUN, fBaseSpeed, true); if (GameObject* table = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_PUTRICIDE_TABLE))) me->SetFacingToObject(table); @@ -443,6 +442,7 @@ class boss_professor_putricide : public CreatureScript case ACTION_CHANGE_PHASE: me->SetSpeed(MOVE_RUN, fBaseSpeed*2.0f, true); events.DelayEvents(30000); + me->AttackStop(); if (!IsHeroic()) { DoCast(me, SPELL_TEAR_GAS); |