diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp index 9dc88776858af..cea01f84080f6 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp @@ -599,12 +599,14 @@ class spell_exploding_orb_hasty_grow : public SpellScriptLoader { if (GetStackAmount() == 15) { - GetTarget()->CastSpell(GetTarget(), SPELL_EXPLOSIVE_BARRAGE_DAMAGE, false); - GetTarget()->RemoveAurasDueToSpell(SPELL_HASTY_GROW); - GetTarget()->RemoveAurasDueToSpell(SPELL_AUTO_GROW); - GetTarget()->RemoveAurasDueToSpell(SPELL_EXPLODING_ORB); - if (Creature* creature = GetTarget()->ToCreature()) - creature->DespawnOrUnsummon(1000); + Unit* target = GetTarget(); // store target because aura gets removed + PreventDefaultAction(); + target->CastSpell(target, SPELL_EXPLOSIVE_BARRAGE_DAMAGE, false); + target->RemoveAurasDueToSpell(SPELL_HASTY_GROW); + target->RemoveAurasDueToSpell(SPELL_AUTO_GROW); + target->RemoveAurasDueToSpell(SPELL_EXPLODING_ORB); + if (Creature* creature = target->ToCreature()) + creature->DespawnOrUnsummon(); } } diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp index d9e24d43d9137..0af8b7e6c813d 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp @@ -204,7 +204,7 @@ class boss_tyrannus : public CreatureScript while (uint32 eventId = events.ExecuteEvent()) { - switch(eventId) + switch (eventId) { case EVENT_INTRO_1: //DoScriptText(SAY_GORKUN_INTRO_2, pGorkunOrVictus); @@ -219,12 +219,11 @@ class boss_tyrannus : public CreatureScript case EVENT_COMBAT_START: if (Creature* rimefang = me->GetCreature(*me, instance->GetData64(DATA_RIMEFANG))) rimefang->AI()->DoAction(ACTION_START_RIMEFANG); //set rimefang also infight - events.SetPhase(PHASE_COMBAT); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); me->SetReactState(REACT_AGGRESSIVE); DoCast(me, SPELL_FULL_HEAL); - me->SetInCombatWithZone(); + DoZoneInCombat(); events.ScheduleEvent(EVENT_OVERLORD_BRAND, urand(5000, 7000)); events.ScheduleEvent(EVENT_FORCEFUL_SMASH, urand(14000, 16000)); events.ScheduleEvent(EVENT_MARK_OF_RIMEFANG, urand(25000, 27000)); @@ -246,9 +245,11 @@ class boss_tyrannus : public CreatureScript break; case EVENT_MARK_OF_RIMEFANG: DoScriptText(SAY_MARK_RIMEFANG_1, me); - DoScriptText(SAY_MARK_RIMEFANG_2, me); - if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0)) + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 0.0f, true)) + { + DoScriptText(SAY_MARK_RIMEFANG_2, me, target); DoCast(target, SPELL_MARK_OF_RIMEFANG); + } events.ScheduleEvent(EVENT_MARK_OF_RIMEFANG, urand(24000, 26000)); break; } @@ -297,7 +298,7 @@ class boss_rimefang : public CreatureScript if (actionId == ACTION_START_RIMEFANG) { _events.SetPhase(PHASE_COMBAT); - me->SetInCombatWithZone(); + DoZoneInCombat(); _events.ScheduleEvent(EVENT_MOVE_NEXT, 500, 0, PHASE_COMBAT); _events.ScheduleEvent(EVENT_ICY_BLAST, 15000, 0, PHASE_COMBAT); }