Пример #1
0
        void Event()
        {
			if(!Step)
               return;
			
            if (GetBossState(DATA_KELTHUZAD) == DONE)
                return;

            Creature* KelThuzad = instance->GetCreature(KelthuzadspeakerGUID);
            Creature* LichKing = instance->GetCreature(LichKingGUID);
			
            switch(Step)
            {
			       case 1:
                       JumpNextStep(10000);
                       break;
                   case 2:
                       DoScriptText(SAY_SAPP_DIALOG1, KelThuzad);
                       JumpNextStep(6000);
                       break;
                   case 3:
                       DoScriptText(SAY_SAPP_DIALOG2_LICH, LichKing);
                       JumpNextStep(16000);
                       break;
                   case 4:
                       DoScriptText(SAY_SAPP_DIALOG3, KelThuzad);
                       JumpNextStep(9000);
                       break;
                   case 5:
                       DoScriptText(SAY_SAPP_DIALOG4_LICH, LichKing);
                       JumpNextStep(7000);
                       break;
                   case 6:
                       DoScriptText(SAY_SAPP_DIALOG5, KelThuzad);
                       JumpNextStep(3000);
                       break;
            }
        }
   void UpdateAI(const uint32 uiDiff)
   {
        if (!m_creature->SelectHostileTarget() || !m_creature->getVictim() && m_creature->IsTemporarySummon())
        {
          if(MoveTimer < uiDiff)
          {   
             if(m_pInstance->GetData(TYPE_WING) == RIGHT)
             {
                switch(WaypointId)
                {
                  case 1:
                     MoveToPoint(2356.659f, 1185.501f, 130.636f);
                     JumpNextStep(10000);
                     break;
                  case 2:
                     MoveToPoint(2301.735f, 1179.265f, 136.944f);
                     JumpNextStep(8000);
                     break;
                  case 3:
                     MoveToPoint(2234.787f, 1180.638f, 136.344f);
                     JumpNextStep(9000);
                     break;
                  case 4:
                     MoveToPoint(2178.313f, 1244.350f, 136.107f);
                     JumpNextStep(12000);
                     break; 
                  case 5:
                     MoveToPoint(2163.553f, 1277.814f, 133.444f);
                     JumpNextStep(5000);
                     break; 
                  case 6:
                     MoveToPoint(2083.952f, 1287.716f, 141.146f);
                     JumpNextStep(5000);
                     break; 
                }
             }

             if(m_pInstance->GetData(TYPE_WING) == LEFT)
             {
                switch(WaypointId)
                {
                  case 1:
                     MoveToPoint(2188.318f, 1331.410f, 130.003f);
                     JumpNextStep(10000);
                     break; 
                  case 2:
                     MoveToPoint(2165.351f, 1279.156f, 133.388f);    
                     JumpNextStep(8000);
                     break;  
                  case 3:
                     MoveToPoint(2083.952f, 1287.716f, 141.146f);    
                     JumpNextStep(9000);
                     break; 
                }
             }

           } else MoveTimer -= uiDiff;
        }

        if (!m_creature->SelectHostileTarget() || !m_creature->getVictim())
            return;

        if(m_uiFleshTimer < uiDiff)
        {
           DoCast(m_creature->getVictim(), SPELL_FLESH);
           m_uiFleshTimer = (urand(3000, 10000));
        }
        else m_uiFleshTimer -= uiDiff;

        DoMeleeAttackIfReady();

        return;
   }
Пример #3
0
 void Event()
 {
       switch(Step)
       {
          case 1:
              m_creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
              m_creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
              JumpNextStep(2000);
              break;
          case 2:
              if(m_creature->GetEntry() == NPC_JAINA)
              {
                 DoScriptText(SAY_JAINA_INTRO_01, m_creature);
                 JumpNextStep(5000);
              }
              if(m_creature->GetEntry() == NPC_SYLVANA)
              {
                 DoScriptText(SAY_SYLVANA_INTRO_01, m_creature);
                 JumpNextStep(8000);
              }
              break;
          case 3: 
              if(m_creature->GetEntry() == NPC_JAINA)
              {
                 DoScriptText(SAY_JAINA_INTRO_02, m_creature);
                 JumpNextStep(5000);
              }
              if(m_creature->GetEntry() == NPC_SYLVANA)
                 JumpNextStep(500);
              break;
          case 4:
              m_creature->RemoveSplineFlag(SPLINEFLAG_WALKMODE);
              m_creature->GetMotionMaster()->MovePoint(0, 5307.031f, 1997.920f, 709.341f);
              JumpNextStep(10000);
              break;
          case 5:
              if(Creature* pTarget = m_creature->SummonCreature(NPC_ALTAR_TARGET,5309.374f,2006.788f,711.615f,1.37f,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,360000))
                 m_creature->SetUInt64Value(UNIT_FIELD_TARGET, pTarget->GetGUID());
              JumpNextStep(1000);
              break;
          case 6:
              if(m_creature->GetEntry() == NPC_JAINA)
              {
                 DoScriptText(SAY_JAINA_INTRO_03, m_creature);
                 JumpNextStep(5000);
              }
              if(m_creature->GetEntry() == NPC_SYLVANA)
              {
                 DoScriptText(SAY_SYLVANA_INTRO_03, m_creature);
                 JumpNextStep(6000);
              }
              break;
          case 7:
              DoCast(m_creature, SPELL_CAST_VISUAL);
              if(m_creature->GetEntry() == NPC_JAINA)
                 DoScriptText(SAY_JAINA_INTRO_04, m_creature);
              if(m_creature->GetEntry() == NPC_SYLVANA)
                 DoScriptText(SAY_SYLVANA_INTRO_04, m_creature);
              JumpNextStep(3000);
              break;
          case 8:
              DoCast(m_creature, SPELL_FROSTMOURNE_SOUNDS);
              m_uiFrostmourneGUID = m_pInstance->GetData64(GO_FROSTMOURNE);
              if(GameObject* pFrostmourne = m_pInstance->instance->GetGameObject(m_uiFrostmourneGUID))
                 pFrostmourne->SetGoState(GO_STATE_ACTIVE);
              if(m_creature->GetEntry() == NPC_JAINA)
                 JumpNextStep(12000);
              if(m_creature->GetEntry() == NPC_SYLVANA)
                 JumpNextStep(8000);
              break;
          case 9:
              if(Creature* Uther = m_creature->SummonCreature(NPC_UTHER,5308.228f,2003.641f,709.341f,4.17f,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,360000))
              {
                 pUther = Uther;
                 Uther->SetUInt64Value(UNIT_FIELD_TARGET, m_creature->GetGUID());
                 m_creature->SetUInt64Value(UNIT_FIELD_TARGET, Uther->GetGUID());
                 if(m_creature->GetEntry() == NPC_JAINA)
                 {
                     DoScriptText(SAY_UTHER_A_01, Uther);
                     JumpNextStep(3000);
                 }
                 if(m_creature->GetEntry() == NPC_SYLVANA)
                 {
                     DoScriptText(SAY_UTHER_H_01, Uther);
                     JumpNextStep(10000);
                 }
              }
              break;
          case 10:
              if(m_creature->GetEntry() == NPC_JAINA)
              {
                 DoScriptText(SAY_JAINA_02, m_creature);
                 JumpNextStep(5000);
              }
              if(m_creature->GetEntry() == NPC_SYLVANA)
              {
                 DoScriptText(SAY_SYLVANA_02, m_creature);
                 JumpNextStep(3000);
              }
              break;
          case 11:
              if(m_creature->GetEntry() == NPC_JAINA && pUther)
              {
                 DoScriptText(SAY_UTHER_A_03, pUther);
                 JumpNextStep(7000);
              }
              if(m_creature->GetEntry() == NPC_SYLVANA && pUther)
              {
                 DoScriptText(SAY_UTHER_H_03, pUther);
                 JumpNextStep(6000);
              }
              if(Small)
                 Step = 24;
              break;
          case 12:
              if(m_creature->GetEntry() == NPC_JAINA)
              {
                 DoScriptText(SAY_JAINA_04, m_creature);
                 JumpNextStep(2000);
              }
              if(m_creature->GetEntry() == NPC_SYLVANA)
              {
                 DoScriptText(SAY_SYLVANA_04, m_creature);
                 JumpNextStep(5000);
              }
              break;
          case 13:
              if(m_creature->GetEntry() == NPC_JAINA && pUther)
              {
                 DoScriptText(SAY_UTHER_A_05, pUther);
                 JumpNextStep(10000);
              }
              if(m_creature->GetEntry() == NPC_SYLVANA && pUther)
              {
                 DoScriptText(SAY_UTHER_H_05, pUther); 
                 JumpNextStep(19000);
              }
              break;
          case 14:
              if(m_creature->GetEntry() == NPC_JAINA)
              {
                 DoScriptText(SAY_JAINA_06, m_creature);
                 JumpNextStep(6000);
              }
              if(m_creature->GetEntry() == NPC_SYLVANA)
              {
                 DoScriptText(SAY_SYLVANA_06, m_creature); 
                 JumpNextStep(2000);
              }
              break;
          case 15:
              if(m_creature->GetEntry() == NPC_JAINA && pUther)
              {
                 DoScriptText(SAY_UTHER_A_07, pUther); 
                 JumpNextStep(12000);
              }
              if(m_creature->GetEntry() == NPC_SYLVANA && pUther)
              {
                 DoScriptText(SAY_UTHER_H_07, pUther);
                 JumpNextStep(20000);
              }
              break;
          case 16:
              if(m_creature->GetEntry() == NPC_JAINA)
              {
                 DoScriptText(SAY_JAINA_08, m_creature); 
                 JumpNextStep(6000);
              }
              if(m_creature->GetEntry() == NPC_SYLVANA)
              {
                 DoScriptText(SAY_SYLVANA_08, m_creature);
                 JumpNextStep(3000);
              }
              break;
          case 17:
              if(m_creature->GetEntry() == NPC_JAINA && pUther)
              {
                 DoScriptText(SAY_UTHER_A_09, pUther);
                 JumpNextStep(12000);
              }
              if(m_creature->GetEntry() == NPC_SYLVANA && pUther)
              {
                 DoScriptText(SAY_UTHER_H_09, pUther);
                 JumpNextStep(11000);
              }
              break;
          case 18:
              if(m_creature->GetEntry() == NPC_JAINA)
              {
                 DoScriptText(SAY_JAINA_10, m_creature);
                 JumpNextStep(11000);
              }
              if(m_creature->GetEntry() == NPC_SYLVANA)
              {
                 JumpNextStep(100);
              }
              break;
          case 19:
              if(m_creature->GetEntry() == NPC_JAINA && pUther)
              {
                 DoScriptText(SAY_UTHER_A_11, pUther);
                 JumpNextStep(24000);
              }
              if(m_creature->GetEntry() == NPC_SYLVANA && pUther)
              {
                 DoScriptText(SAY_UTHER_H_11, pUther);
                 JumpNextStep(9000);
              }
              break;
          case 20:
              if(m_creature->GetEntry() == NPC_JAINA)
              {
                 DoScriptText(SAY_JAINA_12, m_creature);
                 JumpNextStep(2000);
              }
              if(m_creature->GetEntry() == NPC_SYLVANA)
              {
                 DoScriptText(SAY_SYLVANA_12, m_creature);
                 JumpNextStep(2100);
              }
              break;
          case 21:
              if(m_creature->GetEntry() == NPC_JAINA && pUther)
              {
                 DoScriptText(SAY_UTHER_A_13, pUther); 
                 JumpNextStep(5000);
              }
              if(m_creature->GetEntry() == NPC_SYLVANA)
              {
                 JumpNextStep(100);
              }
              break;
          case 22:
              if(m_creature->GetEntry() == NPC_JAINA && pUther)
              {
                 DoScriptText(SAY_UTHER_A_14, pUther); 
                 JumpNextStep(12000);
              }
              if(m_creature->GetEntry() == NPC_SYLVANA)
              {
                 JumpNextStep(100);
              }
              break;
          case 23:
              if(m_creature->GetEntry() == NPC_JAINA)
              {
                 DoScriptText(SAY_JAINA_15, m_creature);
                 JumpNextStep(2000);
              }
              if(m_creature->GetEntry() == NPC_SYLVANA)
              {
                 JumpNextStep(100);
              }
              break;
          case 24:
              if(m_creature->GetEntry() == NPC_JAINA && pUther)
                 DoScriptText(SAY_UTHER_A_16, pUther);
              if(m_creature->GetEntry() == NPC_SYLVANA && pUther)
                 DoScriptText(SAY_UTHER_H_16, pUther);
              m_uiMainGateGUID = m_pInstance->GetData64(GO_IMPENETRABLE_DOOR);
              if(GameObject* pGate = m_pInstance->instance->GetGameObject(m_uiMainGateGUID))
                 pGate->SetGoState(GO_STATE_ACTIVE);
              if(Creature* LichKing = m_creature->SummonCreature(NPC_LICH_KING,5362.469f,2062.342f,707.695f,3.97f,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,360000))
              {
                 pLichKing = LichKing;
                 LichKing->SetActiveObjectState(true);
              }
              JumpNextStep(1000);
              break;
          case 25:
              if(pUther)
                 pUther->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_COWER);
              if(pLichKing)
              {
                 pLichKing->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
                 pLichKing->GetMotionMaster()->MovePoint(0, 5314.881f, 2012.496f, 709.341f);
              }
              JumpNextStep(3000);
              break;
          case 26:
              if(GameObject* pGate = m_pInstance->instance->GetGameObject(m_uiMainGateGUID))
                 pGate->SetGoState(GO_STATE_READY);
              JumpNextStep(7000);
              break;
          case 27:
              if(pUther)
                 pUther->CastSpell(pUther, SPELL_UTHER_DESPAWN, false);
              JumpNextStep(500);
              break;
          case 28:
              if(pLichKing)
                 DoScriptText(SAY_LICH_KING_17, pLichKing);
              JumpNextStep(10000);
              break;
          case 29:
              if(pLichKing)
                 DoScriptText(SAY_LICH_KING_18, pLichKing);
              JumpNextStep(5000);
              break;
          case 30:
              if(pLichKing)
                 pLichKing->CastSpell(pLichKing, SPELL_TAKE_FROSTMOURNE, false);
              if(GameObject* pFrostmourne = m_pInstance->instance->GetGameObject(m_uiFrostmourneGUID))
                 pFrostmourne->SetGoState(GO_STATE_READY);
              JumpNextStep(1500);
              break;
          case 31:
              if(GameObject* pFrostmourne = m_pInstance->instance->GetGameObject(m_uiFrostmourneGUID))
                 pFrostmourne->SetPhaseMask(0, true);
              if(pLichKing)
                 pLichKing->CastSpell(pLichKing, SPELL_FROSTMOURNE_VISUAL, false);
                 //pLichKing->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(36942));
              m_creature->RemoveAurasDueToSpell(SPELL_FROSTMOURNE_SOUNDS);
              JumpNextStep(5000);
              break;
          case 32:
              if(pLichKing)
                 DoScriptText(SAY_LICH_KING_19, pLichKing);
              JumpNextStep(9000);
              break;
          case 33:
              m_uiFalricGUID = m_pInstance->GetData64(NPC_FALRIC);
              m_uiMarwynGUID = m_pInstance->GetData64(NPC_MARWYN);
              if(Creature* Falric = ((Creature*)Unit::GetUnit((*m_creature), m_uiFalricGUID)))
              { 
                 Falric->SetVisibility(VISIBILITY_ON);
                 Falric->CastSpell(Falric, SPELL_BOSS_SPAWN_AURA, false);
                 Falric->GetMotionMaster()->MovePoint(0, 5283.309f, 2031.173f, 709.319f);
              }
              if(Creature* Marwyn = ((Creature*)Unit::GetUnit((*m_creature), m_uiMarwynGUID)))
              {
                 Marwyn->SetVisibility(VISIBILITY_ON);
                 Marwyn->CastSpell(Marwyn, SPELL_BOSS_SPAWN_AURA, false);
                 Marwyn->GetMotionMaster()->MovePoint(0, 5335.585f, 1981.439f, 709.319f);
              }
              if(pLichKing)
                 pLichKing->GetMotionMaster()->MovePoint(0, 5402.286f, 2104.496f, 707.695f);
              JumpNextStep(600);
              break;
          case 34:
              if(Creature* Falric = ((Creature*)Unit::GetUnit((*m_creature), m_uiFalricGUID)))
                 DoScriptText(SAY_FALRIC_INTRO, Falric);
              if(Creature* Marwyn = ((Creature*)Unit::GetUnit((*m_creature), m_uiMarwynGUID)))
                 DoScriptText(SAY_MARWYN_INTRO, Marwyn);
              JumpNextStep(3000);
              break;
          case 35:
              if(GameObject* pGate = m_pInstance->instance->GetGameObject(m_uiMainGateGUID))
                 pGate->SetGoState(GO_STATE_ACTIVE);
              if(Creature* Falric = ((Creature*)Unit::GetUnit((*m_creature), m_uiFalricGUID)))
                 DoScriptText(SAY_FALRIC_INTRO2, Falric);
              m_pInstance->SetData(TYPE_FALRIC, SPECIAL);
              JumpNextStep(4000);
              break;
          case 36:
              if(m_creature->GetEntry() == NPC_JAINA)
                 DoScriptText(SAY_JAINA_20, m_creature);
              if(m_creature->GetEntry() == NPC_SYLVANA)
                 DoScriptText(SAY_SYLVANA_20, m_creature);
              m_creature->GetMotionMaster()->MovePoint(0, 5443.880f, 2147.095f, 707.695f);
              JumpNextStep(4000);
              break;
          case 37:
              if(pLichKing)
              {
                 pLichKing->GetMotionMaster()->MovementExpired(false);
                 pLichKing->RemoveSplineFlag(SPLINEFLAG_WALKMODE);
                 pLichKing->GetMotionMaster()->MovePoint(0, 5443.880f, 2147.095f, 707.695f);
              }
              if(m_creature->GetEntry() == NPC_JAINA && pLichKing)
                 DoScriptText(SAY_LICH_KING_A_21, pLichKing);
              if(m_creature->GetEntry() == NPC_SYLVANA && pLichKing)
                 DoScriptText(SAY_LICH_KING_H_21, pLichKing);
              JumpNextStep(8000);
              break;
          case 38:
              if(GameObject* pGate = m_pInstance->instance->GetGameObject(m_uiMainGateGUID))
                 pGate->SetGoState(GO_STATE_READY); 
              JumpNextStep(5000);
              break;
          case 39:
              m_creature->SetVisibility(VISIBILITY_OFF);
              if(pLichKing)
                 pLichKing->SetVisibility(VISIBILITY_OFF);
              m_pInstance->SetData(TYPE_PHASE, 2);
              JumpNextStep(1000);
              break;
       }
  }
Пример #4
0
 void Event()
 {
     switch(Step)
     {
         case 1:
             me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
             me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
             JumpNextStep(2000);
             break;
         case 2:
             DoScriptText(SAY_SYLVANA_INTRO_1, me);
             JumpNextStep(8500);
             break;
         case 3:
             me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
             me->GetMotionMaster()->MovePoint(0, 5307.031f, 1997.920f, 709.341f);
             JumpNextStep(10000);
             break;
         case 4:
             if(Creature* pTarget = me->SummonCreature(NPC_ALTAR_TARGET,5309.374f,2006.788f,711.615f,1.37f,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,360000))
             {
                 me->SetUInt64Value(UNIT_FIELD_TARGET, pTarget->GetGUID());
                 pTarget->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
             }
             JumpNextStep(1000);
             break;
         case 5:
             DoScriptText(SAY_SYLVANA_INTRO_2, me);
             JumpNextStep(6000);
             break;
         case 6:
             DoCast(me, SPELL_CAST_VISUAL);
             DoScriptText(SAY_SYLVANA_INTRO_3, me);
             JumpNextStep(3000);
             break;
         case 7:
             DoCast(me, SPELL_FROSTMOURNE_SOUNDS);
             pInstance->HandleGameObject(pInstance->GetData64(DATA_FROSTMOURNE), true);
             JumpNextStep(8000);
             break;
         case 8:
             if(Creature* pUther = me->SummonCreature(NPC_UTHER,5308.228f,2003.641f,709.341f,4.17f,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,360000))
             {
                 pUther->GetMotionMaster()->MoveIdle();
                 pUther->SetReactState(REACT_PASSIVE);
                 uiUther = pUther->GetGUID();
                 //Step=24;
                 JumpNextStep(1000);
             }
             break;
         case 9:
             if (Creature* pUther = me->GetCreature(*me, uiUther))
                 DoScriptText(SAY_UTHER_INTRO_H_1, pUther);
             JumpNextStep(10000);
             break;
         case 10:
             DoScriptText(SAY_SYLVANA_INTRO_4, me);
             JumpNextStep(3000);
             break;
         case 11:
             if (Creature* pUther = me->GetCreature(*me, uiUther))
                 DoScriptText(SAY_UTHER_INTRO_H_2, pUther);
             JumpNextStep(6000);
             break;
         case 12:
             DoScriptText(SAY_SYLVANA_INTRO_5, me);
             JumpNextStep(5000);
             break;
         case 13:
             if (Creature* pUther = me->GetCreature(*me, uiUther))
                 DoScriptText(SAY_UTHER_INTRO_H_3, pUther); 
             JumpNextStep(19000);
             break;
         case 14:
             DoScriptText(SAY_SYLVANA_INTRO_6, me); 
             JumpNextStep(2000);
             break;
         case 15:
             if (Creature* pUther = me->GetCreature(*me, uiUther))
                 DoScriptText(SAY_UTHER_INTRO_H_4, pUther);
             JumpNextStep(20000);
             break;
         case 16:
             DoScriptText(SAY_SYLVANA_INTRO_7, me);
             JumpNextStep(3000);
             break;
         case 17:
             if (Creature* pUther = me->GetCreature(*me, uiUther))
                 DoScriptText(SAY_UTHER_INTRO_H_5, pUther);
             JumpNextStep(11000);
             break;
         case 18:
             if (Creature* pUther = me->GetCreature(*me, uiUther))
                 DoScriptText(SAY_UTHER_INTRO_H_6, pUther);
             JumpNextStep(9000);
             break;
         case 19:
             DoScriptText(SAY_SYLVANA_INTRO_8, me);
             JumpNextStep(2100);
             break;
         case 20:
             if (Creature* pUther = me->GetCreature(*me, uiUther))
             {
                 pUther->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_COWER);
                 DoScriptText(SAY_UTHER_INTRO_H_7, pUther);
             }
             JumpNextStep(2000);
             break;
         case 21:
             if (Creature* pLichKing = me->SummonCreature(NPC_LICH_KING_EVENT, 5362.469f,2062.342f,707.695f,3.97f, TEMPSUMMON_MANUAL_DESPAWN))
             {
                 pLichKing->GetMotionMaster()->MovePoint(0, 5314.881f, 2012.496f, 709.341f);
                 pLichKing->SetReactState(REACT_PASSIVE);
                 uiLichKing = pLichKing->GetGUID();
             }
             pInstance->HandleGameObject(pInstance->GetData64(DATA_IMPENETRABLE_DOOR), true);
             JumpNextStep(1500);
             break;
         case 22:
             pInstance->HandleGameObject(pInstance->GetData64(DATA_IMPENETRABLE_DOOR), false);
             JumpNextStep(5000);
             break;
         case 23:                   
             if (Creature* pLichKing = me->GetCreature(*me, uiLichKing))
                 DoScriptText(SAY_LK_INTRO_1, pLichKing);
             
             JumpNextStep(3000);
             break;
         case 24:
             if (Creature* pUther = me->GetCreature(*me, uiUther))
                 pUther->CastSpell(pUther, SPELL_UTHER_DESPAWN, false);
             
             JumpNextStep(3000);
             break;
         case 25:
             if (Creature* pLichKing = me->GetCreature(*me, uiLichKing))
                 DoScriptText(SAY_LK_INTRO_2, pLichKing);
                 
             JumpNextStep(10000);
             break;
         case 26:
             if (Creature* pLichKing = me->GetCreature(*me, uiLichKing))
             {
                 pLichKing->CastSpell(pLichKing, SPELL_TAKE_FROSTMOURNE, true);
                 pInstance->HandleGameObject(pInstance->GetData64(DATA_FROSTMOURNE), false);
                 pLichKing->CastSpell(pLichKing, SPELL_FROSTMOURNE_VISUAL, false);
             }
             
             JumpNextStep(2000);
             break;
         case 27:
             if(GameObject* pFrostmourne = ObjectAccessor::GetGameObject(*me, pInstance->GetData64(DATA_FROSTMOURNE)))
                 pFrostmourne->SetPhaseMask(0, true);
             
             me->RemoveAurasDueToSpell(SPELL_FROSTMOURNE_SOUNDS);
             JumpNextStep(5000);
             break;
         case 28:
             if (Creature* pLichKing = me->GetCreature(*me, uiLichKing))
             {
                 DoScriptText(SAY_LK_INTRO_3, pLichKing);
                 pLichKing->GetMotionMaster()->MovePoint(0, 5362.917480f, 2062.307129f, 707.695374f);
             }
                 
             if (Creature* pFalric = me->SummonCreature(NPC_FALRIC, 5337.578f,1979.716f,709.319f,2.348f, TEMPSUMMON_MANUAL_DESPAWN))
             {
                 pFalric->CastSpell(pFalric, SPELL_BOSS_SPAWN_AURA, false);
             }
             
             if (Creature* pMarwyn = me->SummonCreature(NPC_MARWYN, 5281.414f,2033.164f,709.319f,5.509f, TEMPSUMMON_MANUAL_DESPAWN))
             {
                 pMarwyn->CastSpell(pMarwyn, SPELL_BOSS_SPAWN_AURA, false);
             }
             JumpNextStep(5000);
             break;
         case 29:
             pInstance->HandleGameObject(pInstance->GetData64(DATA_IMPENETRABLE_DOOR), true);
             JumpNextStep(1500);
             break;
         case 30:
             pInstance->HandleGameObject(pInstance->GetData64(DATA_IMPENETRABLE_DOOR), false);
             JumpNextStep(1500);
             break;
         case 31:
             if (Creature* pFalric = me->GetCreature(*me, pInstance->GetData64(DATA_FALRIC)))
                 DoScriptText(SAY_FALRIC_INTRO_1, pFalric);
             JumpNextStep(3000);
             break;
         case 32:
             if (Creature* pMarwyn = me->GetCreature(*me, pInstance->GetData64(DATA_MARWYN)))
                 DoScriptText(SAY_MARWYN_INTRO_1, pMarwyn);
             JumpNextStep(3000);
             break;
         case 33:
             DoScriptText(SAY_SYLVANA_INTRO_END, me);
             me->GetMotionMaster()->MovePoint(0, 5362.917480f, 2062.307129f, 707.695374f);
             JumpNextStep(8000);
             break;
         case 34:
             pInstance->HandleGameObject(pInstance->GetData64(DATA_IMPENETRABLE_DOOR), true);
             JumpNextStep(1500);
             break;
         case 35:
             pInstance->HandleGameObject(pInstance->GetData64(DATA_IMPENETRABLE_DOOR), false);
             pInstance->HandleGameObject(pInstance->GetData64(DATA_ICECROWN_DOOR), false);
             JumpNextStep(1500);
             break;
         case 36:
             if (Creature* pFalric = me->GetCreature(*me, pInstance->GetData64(DATA_FALRIC)))
                 DoScriptText(SAY_FALRIC_INTRO_2, pFalric);
             JumpNextStep(2000);
             break;
     }
 }