fix(Core/Util): EventMap::RepeatEvent when eventId is retrieved by ExecuteEvent() call (#3426)

This commit is contained in:
Andrius Peleckas
2020-10-17 15:59:22 +03:00
committed by GitHub
parent 32da0eeb9e
commit ab5933effa
131 changed files with 558 additions and 1012 deletions

View File

@@ -162,7 +162,7 @@ public:
if( me->HasUnitState(UNIT_STATE_CASTING) )
return;
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;
@@ -340,7 +340,7 @@ public:
if( me->HasUnitState(UNIT_STATE_CASTING) )
return;
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;
@@ -357,7 +357,6 @@ public:
case EVENT_SPELL_RENEW:
if( !MemoryGUID )
{
events.PopEvent();
break;
}
if( urand(0, 1) )
@@ -417,14 +416,14 @@ public:
if( me->HasUnitState(UNIT_STATE_CASTING) )
return;
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;
case EVENT_MEMORY_SCALE:
me->SetObjectScale(1.0f);
events.ScheduleEvent(EVENT_MEMORY_START_ATTACK, 5000);
events.PopEvent();
break;
case EVENT_MEMORY_START_ATTACK:
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
@@ -437,7 +436,6 @@ public:
events.ScheduleEvent(EVENT_SPELL_OLD_WOUNDS, 8000);
events.ScheduleEvent(EVENT_SPELL_SHADOWS_PAST, 4000);
events.ScheduleEvent(EVENT_SPELL_WAKING_NIGHTMARE, urand(20000, 30000));
events.PopEvent();
break;
case EVENT_SPELL_OLD_WOUNDS:
if( Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 10.0f, true) )
@@ -655,7 +653,7 @@ public:
if( me->HasUnitState(UNIT_STATE_CASTING) )
return;
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;

View File

@@ -231,7 +231,7 @@ public:
if( me->HasUnitState(UNIT_STATE_CASTING) )
return;
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;
@@ -239,7 +239,7 @@ public:
if( pInstance && !summons.empty() )
if( Creature* ghoul = pInstance->instance->GetCreature(*summons.begin()) )
ghoul->MonsterYell("[Zombie] .... . Brains ....", LANG_UNIVERSAL, 0);
events.PopEvent();
break;
case EVENT_SPELL_PLAGUE_STRIKE:
if( me->GetVictim() )
@@ -440,7 +440,7 @@ public:
if( me->HasUnitState(UNIT_STATE_CASTING) )
return;
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;
@@ -449,7 +449,7 @@ public:
if (me->GetDistance(target) > 5.0f && me->GetDistance(target) < 30.0f)
{
me->CastSpell(target, SPELL_LEAP, false);
events.PopEvent();
break;
}
events.RepeatEvent(1000);

View File

@@ -257,7 +257,7 @@ public:
if( me->HasUnitState(UNIT_STATE_CASTING) )
return;
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;
@@ -655,7 +655,7 @@ public:
if( me->HasUnitState(UNIT_STATE_CASTING) || ((me->GetEntry() == NPC_JACOB || me->GetEntry() == NPC_MOKRA) && me->HasAura(SPELL_BLADESTORM)) )
return;
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;
@@ -711,9 +711,7 @@ public:
me->GetMotionMaster()->MovePoint(7, *mount);
events.RepeatEvent(200);
break;
}
events.PopEvent();
}
}
break;
case EVENT_MOUNT_CHARGE:
@@ -831,7 +829,7 @@ public:
/****************** HUNTER ******************/
case EVENT_HUNTER_SPELL_DISENGAGE:
events.PopEvent();
break;
case EVENT_HUNTER_SPELL_LIGHTNING_ARROWS:
me->CastSpell((Unit*)NULL, SPELL_LIGHTNING_ARROWS, false);
@@ -920,7 +918,7 @@ public:
}
break;
case EVENT_WARRIOR_SPELL_ROLLING_THROW:
events.PopEvent();
break;
/*************** WARRIOR END ****************/
}

View File

@@ -759,7 +759,7 @@ public:
void Update(uint32 diff)
{
events.Update(diff);
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case EVENT_NULL:
break;
@@ -776,7 +776,6 @@ public:
DoSummonGrandChampion(temp1, 0);
HandleGameObject(GO_MainGateGUID, true);
events.ScheduleEvent(EVENT_CLOSE_GATE, 6000);
events.PopEvent();
}
break;
case EVENT_SUMMON_GRAND_CHAMPION_2:
@@ -786,7 +785,6 @@ public:
DoSummonGrandChampion(temp2, 1);
HandleGameObject(GO_MainGateGUID, true);
events.ScheduleEvent(EVENT_CLOSE_GATE, 6000);
events.PopEvent();
}
break;
case EVENT_SUMMON_GRAND_CHAMPION_3:
@@ -797,23 +795,23 @@ public:
DoSummonGrandChampion(number, 2);
HandleGameObject(GO_MainGateGUID, true);
events.ScheduleEvent(EVENT_CLOSE_GATE, 6000);
events.PopEvent();
}
break;
case EVENT_CLOSE_GATE:
{
HandleGameObject(GO_MainGateGUID, false);
events.PopEvent();
}
break;
case EVENT_YELL_WELCOME_2:
{
if( Creature* tirion = instance->GetCreature(NPC_TirionGUID) )
if (Creature* tirion = instance->GetCreature(NPC_TirionGUID))
{
tirion->AI()->Talk(TEXT_WELCOME_2);
}
events.RescheduleEvent(EVENT_SUMMON_GRAND_CHAMPION_1, 8000);
events.PopEvent();
break;
}
break;
case EVENT_GRAND_GROUP_1_MOVE_MIDDLE:
{
if( Creature* announcer = instance->GetCreature(NPC_AnnouncerGUID) )
@@ -831,7 +829,6 @@ public:
}
events.ScheduleEvent(EVENT_GRAND_GROUP_1_ATTACK, 3000);
events.PopEvent();
}
break;
case EVENT_GRAND_GROUP_1_ATTACK:
@@ -846,7 +843,6 @@ public:
c->AI()->DoZoneInCombat();
}
Counter = 0;
events.PopEvent();
}
break;
case EVENT_GRAND_GROUP_2_MOVE_MIDDLE:
@@ -859,7 +855,6 @@ public:
}
events.ScheduleEvent(EVENT_GRAND_GROUP_2_ATTACK, 3000);
events.PopEvent();
}
break;
case EVENT_GRAND_GROUP_2_ATTACK:
@@ -873,7 +868,6 @@ public:
c->AI()->AttackStart(target);
c->AI()->DoZoneInCombat();
}
events.PopEvent();
}
break;
case EVENT_GRAND_GROUP_3_MOVE_MIDDLE:
@@ -886,7 +880,6 @@ public:
}
events.ScheduleEvent(EVENT_GRAND_GROUP_3_ATTACK, 3000);
events.PopEvent();
}
break;
case EVENT_GRAND_GROUP_3_ATTACK:
@@ -900,7 +893,6 @@ public:
c->AI()->AttackStart(target);
c->AI()->DoZoneInCombat();
}
events.PopEvent();
}
break;
case EVENT_GRAND_CHAMPIONS_MOVE_MIDDLE:
@@ -913,7 +905,6 @@ public:
}
events.ScheduleEvent(EVENT_GRAND_CHAMPIONS_MOUNTS_ATTACK, 3000);
events.PopEvent();
}
break;
case EVENT_GRAND_CHAMPIONS_MOUNTS_ATTACK:
@@ -928,7 +919,6 @@ public:
c->AI()->DoZoneInCombat();
c->CastSpell(c, 67865, true); // SPELL_TRAMPLE_AURA
}
events.PopEvent();
}
break;
case EVENT_GRAND_CHAMPIONS_MOVE_SIDE:
@@ -952,7 +942,6 @@ public:
}
events.ScheduleEvent(EVENT_GRAND_CHAMPIONS_ATTACK, 15000);
events.PopEvent();
}
break;
case EVENT_GRAND_CHAMPIONS_ATTACK:
@@ -967,14 +956,13 @@ public:
c->AI()->DoZoneInCombat();
c->AI()->DoAction(2);
}
events.PopEvent();
}
break;
case EVENT_GRATZ_SLAIN_CHAMPIONS:
{
if( Creature* tirion = instance->GetCreature(NPC_TirionGUID) )
tirion->AI()->Talk(TEXT_GRATZ_SLAIN_CHAMPIONS);
events.PopEvent();
HandleGameObject(GO_EnterGateGUID, true);
}
break;
@@ -982,7 +970,6 @@ public:
{
if( Creature* announcer = instance->GetCreature(NPC_AnnouncerGUID) )
announcer->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
events.PopEvent();
}
break;
case EVENT_START_ARGENT_CHALLENGE_INTRO:
@@ -1032,7 +1019,6 @@ public:
}
}
events.ScheduleEvent(EVENT_SUMMON_ARGENT_CHALLENGE, 4000);
events.PopEvent();
}
break;
case EVENT_SUMMON_ARGENT_CHALLENGE:
@@ -1044,7 +1030,6 @@ public:
events.ScheduleEvent(EVENT_CLOSE_GATE, 5000);
events.ScheduleEvent(EVENT_ARGENT_CHALLENGE_SAY_1, 4000);
events.ScheduleEvent(EVENT_ARGENT_SOLDIER_GROUP_ATTACK, 12500);
events.PopEvent();
}
break;
case EVENT_ARGENT_CHALLENGE_SAY_1:
@@ -1053,14 +1038,12 @@ public:
ac->AI()->Talk(Counter ? TEXT_EADRIC_SAY_1 : TEXT_PALETRESS_SAY_1);
if( !Counter )
events.ScheduleEvent(EVENT_ARGENT_CHALLENGE_SAY_2, 6000);
events.PopEvent();
}
break;
case EVENT_ARGENT_CHALLENGE_SAY_2:
{
if( Creature* ac = instance->GetCreature(NPC_ArgentChampionGUID) )
ac->AI()->Talk(TEXT_PALETRESS_SAY_2);
events.PopEvent();
}
break;
case EVENT_ARGENT_SOLDIER_GROUP_ATTACK:
@@ -1076,7 +1059,6 @@ public:
}
if( Creature* tirion = instance->GetCreature(NPC_TirionGUID) )
tirion->AI()->Talk(TEXT_YOU_MAY_BEGIN);
events.PopEvent();
}
break;
case EVENT_ARGENT_CHALLENGE_MOVE_FORWARD:
@@ -1086,7 +1068,6 @@ public:
boss->GetMotionMaster()->MovePoint(0, 746.881f, 635.263f, 411.7f);
}
events.ScheduleEvent(EVENT_ARGENT_CHALLENGE_ATTACK, 3000);
events.PopEvent();
}
break;
case EVENT_ARGENT_CHALLENGE_ATTACK:
@@ -1099,7 +1080,6 @@ public:
boss->AI()->AttackStart(target);
boss->AI()->DoZoneInCombat();
}
events.PopEvent();
}
break;
case EVENT_ARGENT_CHALLENGE_RUN_MIDDLE:
@@ -1109,7 +1089,6 @@ public:
boss->GetMotionMaster()->MovePoint(1, 747.13f, 628.037f, 411.2f);
events.ScheduleEvent(EVENT_ARGENT_CHALLENGE_LEAVE_CHEST, 6000);
}
events.PopEvent();
}
break;
case EVENT_ARGENT_CHALLENGE_LEAVE_CHEST:
@@ -1128,7 +1107,6 @@ public:
events.ScheduleEvent(EVENT_ARGENT_CHALLENGE_DISAPPEAR, 4000);
events.ScheduleEvent(EVENT_RESTORE_ANNOUNCER_GOSSIP, 15000);
events.PopEvent();
}
break;
case EVENT_ARGENT_CHALLENGE_DISAPPEAR:
@@ -1138,7 +1116,6 @@ public:
boss->GetMotionMaster()->MovePoint(0, SpawnPosition);
boss->DespawnOrUnsummon(3000);
}
events.PopEvent();
}
break;
case EVENT_SUMMON_BLACK_KNIGHT:
@@ -1161,7 +1138,6 @@ public:
announcer->SetFacingToObject(bk_vehicle);
announcer->AI()->Talk(TEXT_BK_RAFTERS);
}
events.PopEvent();
}
break;
case EVENT_START_BLACK_KNIGHT_SCENE:
@@ -1174,7 +1150,6 @@ public:
bk->AI()->Talk(TEXT_BK_SPOILED);
}
events.ScheduleEvent(EVENT_BLACK_KNIGHT_CAST_ANNOUNCER, 2000);
events.PopEvent();
}
break;
case EVENT_BLACK_KNIGHT_CAST_ANNOUNCER:
@@ -1194,7 +1169,6 @@ public:
}
}
events.ScheduleEvent(EVENT_BLACK_KNIGHT_KILL_ANNOUNCER, 1000);
events.PopEvent();
}
break;
case EVENT_BLACK_KNIGHT_KILL_ANNOUNCER:
@@ -1203,7 +1177,6 @@ public:
bk_vehicle->AI()->DoAction(1);
events.ScheduleEvent(EVENT_BLACK_KNIGHT_MOVE_FORWARD, 4000);
events.PopEvent();
}
break;
case EVENT_BLACK_KNIGHT_MOVE_FORWARD:
@@ -1218,7 +1191,6 @@ public:
if (announcer->IsAlive())
Unit::Kill(announcer, announcer);
events.ScheduleEvent(EVENT_BLACK_KNIGHT_SAY_TASK, 14000);
events.PopEvent();
}
break;
case EVENT_BLACK_KNIGHT_SAY_TASK:
@@ -1229,7 +1201,6 @@ public:
bk->AI()->Talk(TEXT_BK_TASK);
}
events.ScheduleEvent(EVENT_BLACK_KNIGHT_ATTACK, 5000);
events.PopEvent();
}
break;
case EVENT_BLACK_KNIGHT_ATTACK:
@@ -1243,7 +1214,6 @@ public:
bk->AI()->DoZoneInCombat();
bk->AI()->DoAction(1);
}
events.PopEvent();
}
break;
}

View File

@@ -252,14 +252,13 @@ public:
return;
}
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;
case EVENT_ENRAGE:
{
me->CastSpell(me, SPELL_BERSERK, true);
events.PopEvent();
}
break;
case EVENT_RESPAWN_SPHERE:
@@ -315,7 +314,6 @@ public:
events.RescheduleEvent(EVENT_EMERGE, EMERGE_INTERVAL);
events.RescheduleEvent(EVENT_SPELL_SUMMON_SPIKE, 2500);
events.RescheduleEvent(EVENT_SUMMON_SCARAB, 3000);
events.PopEvent();
}
break;
case EVENT_SUMMON_SCARAB:
@@ -332,7 +330,6 @@ public:
summons.DespawnEntry(NPC_SPIKE);
events.CancelEvent(EVENT_SUMMON_SCARAB);
events.RescheduleEvent(EVENT_EMERGE_2, 2000);
events.PopEvent();
}
break;
case EVENT_EMERGE_2:
@@ -346,12 +343,10 @@ public:
events.RescheduleEvent(EVENT_SPELL_FREEZING_SLASH, urand(7000, 15000));
events.RescheduleEvent(EVENT_SPELL_PENETRATING_COLD, urand(15000, 20000));
events.RescheduleEvent(EVENT_SUBMERGE, SUBMERGE_INTERVAL);
events.PopEvent();
}
break;
case EVENT_SPELL_SUMMON_SPIKE:
me->CastSpell(me, SPELL_SUMMON_SPIKE, true);
events.PopEvent();
break;
}
@@ -374,7 +369,6 @@ public:
if( pInstance )
pInstance->SetData(TYPE_ANUBARAK, DONE);
Player* plr = nullptr;
if( !pInstance->instance->GetPlayers().isEmpty() )
plr = pInstance->instance->GetPlayers().begin()->GetSource();
@@ -679,7 +673,7 @@ public:
if( me->HasUnitState(UNIT_STATE_CASTING) )
return;
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;
@@ -697,7 +691,7 @@ public:
me->CastSpell(me, SPELL_EXPOSE_WEAKNESS, true);
me->CastSpell(me, SPELL_SPIDER_FRENZY, true);
me->CastSpell(me, SPELL_SUBMERGE, false);
events.PopEvent();
events.DelayEvents(15000);
events.RescheduleEvent(EVENT_EMERGE, 10000);
}
@@ -710,7 +704,7 @@ public:
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->CastSpell(me, SPELL_EMERGE, false);
me->RemoveAura(SPELL_SUBMERGE);
events.PopEvent();
events.RescheduleEvent(EVENT_SUBMERGE, 30000);
break;
}
@@ -813,18 +807,18 @@ public:
events.Update(diff);
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;
case 1:
me->CastSpell(me, SPELL_SPIKE_SPEED2, true);
events.PopEvent();
events.RescheduleEvent(2, 7000);
break;
case 2:
me->CastSpell(me, SPELL_SPIKE_SPEED3, true);
events.PopEvent();
break;
case 3:
Reset();

View File

@@ -293,7 +293,7 @@ public:
if( !myCanCast() )
return;
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;
@@ -422,7 +422,7 @@ public:
if( !myCanCast() )
return;
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;
@@ -545,7 +545,7 @@ public:
if( !myCanCast() )
return;
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;
@@ -678,7 +678,7 @@ public:
if( !myCanCast() )
return;
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;
@@ -801,7 +801,7 @@ public:
if( !myCanCast() )
return;
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;
@@ -961,13 +961,13 @@ public:
if( !myCanCast() )
return;
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;
case EVENT_SPELL_SUMMON_FELHUNTER:
DoSummon(35465, *me);
events.PopEvent();
break;
case EVENT_SPELL_HELLFIRE:
if( EnemiesInRange(9.0f) >= 3 )
@@ -1098,7 +1098,7 @@ public:
if( !myCanCast() )
return;
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;
@@ -1252,13 +1252,13 @@ public:
if( !myCanCast() )
return;
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;
case EVENT_SPELL_CALL_PET:
DoSummon(35610, *me);
events.PopEvent();
break;
case EVENT_SPELL_AIMED_SHOT:
if( me->GetVictim() )
@@ -1405,7 +1405,7 @@ public:
if( !myCanCast() )
return;
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;
@@ -1544,7 +1544,7 @@ public:
if( !myCanCast() )
return;
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;
@@ -1736,7 +1736,7 @@ public:
if( !myCanCast() )
return;
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;
@@ -1893,7 +1893,7 @@ public:
if( !myCanCast() )
return;
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;
@@ -2052,7 +2052,7 @@ public:
if( !myCanCast() )
return;
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;
@@ -2191,7 +2191,7 @@ public:
if( !myCanCast() )
return;
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;
@@ -2336,7 +2336,7 @@ public:
if( !myCanCast() )
return;
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;
@@ -2411,7 +2411,7 @@ public:
if( !myCanCast() )
return;
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;

View File

@@ -189,7 +189,7 @@ public:
if( me->HasUnitState(UNIT_STATE_CASTING) )
return;
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;
@@ -234,14 +234,14 @@ public:
Talk(EMOTE_NETHER_PORTAL);
Talk(SAY_MISTRESS_OF_PAIN);
me->CastSpell((Unit*)NULL, SPELL_SUMMON_NETHER_PORTAL, false);
events.PopEvent();
events.RescheduleEvent(EVENT_SUMMON_VOLCANO, 60000);
break;
case EVENT_SUMMON_VOLCANO:
Talk(EMOTE_INFERNAL_ERUPTION);
Talk(SAY_INFERNAL_ERUPTION);
me->CastSpell((Unit*)NULL, SPELL_SUMMON_VOLCANO, false);
events.PopEvent();
events.RescheduleEvent(EVENT_SUMMON_NETHER_PORTAL, 60000);
break;
}
@@ -317,7 +317,7 @@ public:
if( me->HasUnitState(UNIT_STATE_CASTING) )
return;
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;
@@ -397,7 +397,7 @@ public:
if( me->HasUnitState(UNIT_STATE_CASTING) )
return;
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;

View File

@@ -143,14 +143,14 @@ public:
if( me->HasUnitState(UNIT_STATE_CASTING) )
return;
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;
case EVENT_SPELL_SNOBOLLED:
if( t->GetTypeId() == TYPEID_PLAYER )
me->CastSpell((Unit*)NULL, SPELL_SNOBOLLED, true);
events.PopEvent();
break;
case EVENT_SPELL_BATTER:
if( t->GetTypeId() == TYPEID_PLAYER )
@@ -275,7 +275,7 @@ public:
if( me->HasUnitState(UNIT_STATE_CASTING) )
return;
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;
@@ -359,7 +359,6 @@ public:
}
}
PlayerGUID = 0;
events.PopEvent();
}
break;
}
@@ -550,7 +549,7 @@ struct boss_jormungarAI : public ScriptedAI
if( me->HasUnitState(UNIT_STATE_CASTING) )
return;
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;
@@ -583,7 +582,7 @@ struct boss_jormungarAI : public ScriptedAI
me->UpdatePosition(Locs[LOC_CENTER].GetPositionX() + cos(angle)*dist, Locs[LOC_CENTER].GetPositionY() + sin(angle)*dist, me->GetPositionZ(), me->GetOrientation(), true);
me->StopMovingOnCurrentPos();
DoResetThreat();
events.PopEvent();
events.RescheduleEvent(EVENT_EMERGE, 6000);
}
break;
@@ -861,7 +860,7 @@ public:
if( me->HasUnitState(UNIT_STATE_CASTING) )
return;
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;
@@ -893,7 +892,7 @@ public:
case EVENT_SPELL_MASSIVE_CRASH:
me->GetMotionMaster()->Clear();
me->CastSpell((Unit*)NULL, SPELL_MASSIVE_CRASH, false);
events.PopEvent();
events.RescheduleEvent(EVENT_GAZE, 2000);
break;
case EVENT_GAZE:
@@ -915,7 +914,7 @@ public:
me->GetMotionMaster()->MovementExpired();
me->SetReactState(REACT_AGGRESSIVE);
}
events.PopEvent();
break;
case EVENT_JUMP_BACK:
{
@@ -935,7 +934,6 @@ public:
me->StopMoving();
me->GetMotionMaster()->MoveJump(Locs[LOC_CENTER].GetPositionX() + cos(jumpangle) * 35.0f, Locs[LOC_CENTER].GetPositionY() + sin(jumpangle) * 35.0f, Locs[LOC_CENTER].GetPositionZ() + 1.0f, 40.0f, 12.0f);
events.PopEvent();
events.RescheduleEvent(EVENT_TRAMPLE, 1500);
if( pInstance )
@@ -965,7 +963,7 @@ public:
me->GetMotionMaster()->MoveCharge(destX, destY, destZ + 1.0f, 65.0f);
me->SetUInt64Value(UNIT_FIELD_TARGET, 0);
events.RescheduleEvent(EVENT_CHECK_TRAMPLE_PLAYERS, 100);
events.PopEvent();
break;
case EVENT_CHECK_TRAMPLE_PLAYERS:
if( DoTrampleIfValid() )
@@ -984,7 +982,7 @@ public:
break;
case EVENT_REFRESH_POSITION:
//me->SetFacingTo(me->GetOrientation());
events.PopEvent();
break;
}

View File

@@ -276,7 +276,7 @@ struct boss_twin_valkyrAI : public ScriptedAI
if( me->HasUnitState(UNIT_STATE_CASTING) )
return;
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;
@@ -288,13 +288,13 @@ struct boss_twin_valkyrAI : public ScriptedAI
twin->CastSpell(twin, SPELL_BERSERK, true);
twin->AI()->Talk(SAY_BERSERK);
}
events.PopEvent();
break;
case EVENT_SUMMON_BALLS_1:
case EVENT_SUMMON_BALLS_2:
case EVENT_SUMMON_BALLS_3:
{
uint8 eventId = events.GetEvent();
uint8 eventId = events.ExecuteEvent();
uint8 count = 0;
if( IsHeroic() )
count = eventId == EVENT_SUMMON_BALLS_3 ? 36 : 6;
@@ -306,7 +306,7 @@ struct boss_twin_valkyrAI : public ScriptedAI
if( Creature* ball = me->SummonCreature((i % 2) ? NPC_CONCENTRATED_DARK : NPC_CONCENTRATED_LIGHT, Locs[LOC_CENTER].GetPositionX() + cos(angle) * 47.0f, Locs[LOC_CENTER].GetPositionY() + sin(angle) * 47.0f, Locs[LOC_CENTER].GetPositionZ() + 1.5f, 0.0f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 1500) )
boss_twin_valkyrAI::JustSummoned(ball);
}
events.PopEvent();
switch( eventId )
{
case EVENT_SUMMON_BALLS_1:
@@ -448,7 +448,7 @@ struct boss_twin_valkyrAI : public ScriptedAI
break;
case EVENT_REMOVE_DUAL_WIELD:
me->SetCanDualWield(false);
events.PopEvent();
break;
}

View File

@@ -572,7 +572,7 @@ public:
void Update(uint32 diff)
{
events.Update(diff);
switch( events.GetEvent() )
switch( events.ExecuteEvent() )
{
case 0:
break;
@@ -590,20 +590,18 @@ public:
case EVENT_OPEN_GATE:
{
HandleGameObject(GO_MainGateGUID, true);
events.PopEvent();
break;
}
break;
case EVENT_CLOSE_GATE:
{
HandleGameObject(GO_MainGateGUID, false);
events.PopEvent();
}
break;
case EVENT_SCENE_001:
{
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
c->AI()->Talk(SAY_STAGE_0_01);
events.PopEvent();
events.RescheduleEvent(EVENT_SCENE_002, 22000);
}
break;
@@ -611,7 +609,7 @@ public:
{
if( Creature* c = instance->GetCreature(NPC_VarianGUID) )
c->AI()->Talk(SAY_STAGE_0_03a);
events.PopEvent();
events.RescheduleEvent(EVENT_SCENE_003, 5000);
}
break;
@@ -619,7 +617,7 @@ public:
{
if( Creature* c = instance->GetCreature(NPC_GarroshGUID) )
c->AI()->Talk(SAY_STAGE_0_03h);
events.PopEvent();
events.RescheduleEvent(EVENT_SCENE_004, 8000);
}
break;
@@ -632,7 +630,7 @@ public:
c->AI()->Talk(SAY_STAGE_0_02);
HandleGameObject(GO_MainGateGUID, true);
HandleGameObject(GO_EnterGateGUID, false);
events.PopEvent();
events.RescheduleEvent(EVENT_SUMMON_GORMOK, 1000);
if (instance->IsHeroic())
{
@@ -655,14 +653,14 @@ public:
if( Creature* c = instance->GetCreature(NPC_IcehowlGUID) )
if (c->IsAlive())
c->CastSpell(c, 26662, true);
events.PopEvent();
break;
case EVENT_SUMMON_GORMOK:
{
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
if( Creature* gormok = c->SummonCreature(NPC_GORMOK, Locs[LOC_BEHIND_GATE].GetPositionX(), Locs[LOC_BEHIND_GATE].GetPositionY(), Locs[LOC_BEHIND_GATE].GetPositionZ(), Locs[LOC_BEHIND_GATE].GetOrientation(), TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30000) )
gormok->GetMotionMaster()->MovePoint(0, Locs[LOC_GATE_FRONT].GetPositionX(), Locs[LOC_GATE_FRONT].GetPositionY(), Locs[LOC_GATE_FRONT].GetPositionZ());
events.PopEvent();
events.RescheduleEvent(EVENT_GORMOK_ATTACK, 10000);
events.RescheduleEvent(EVENT_CLOSE_GATE, 6000);
}
@@ -681,19 +679,18 @@ public:
c->AI()->DoZoneInCombat();
}
}
events.PopEvent();
break;
}
break;
case EVENT_SCENE_005:
{
northrendBeastsMask |= 16;
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
c->AI()->Talk(SAY_STAGE_0_04);
events.PopEvent();
events.RescheduleEvent(EVENT_OPEN_GATE, 3000);
events.RescheduleEvent(EVENT_SUMMON_ACIDMAW_AND_DREADSCALE, 4000);
break;
}
break;
case EVENT_SUMMON_ACIDMAW_AND_DREADSCALE:
{
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
@@ -703,18 +700,19 @@ public:
if( Creature* acidmaw = c->SummonCreature(NPC_ACIDMAW, Locs[LOC_ACIDMAW].GetPositionX(), Locs[LOC_ACIDMAW].GetPositionY(), Locs[LOC_ACIDMAW].GetPositionZ(), Locs[LOC_ACIDMAW].GetOrientation(), TEMPSUMMON_MANUAL_DESPAWN) )
acidmaw->AddAura(53421, acidmaw);
}
events.PopEvent();
events.RescheduleEvent(EVENT_SCENE_005_2, 4000);
break;
}
break;
case EVENT_SCENE_005_2:
{
if( Creature* dreadscale = instance->GetCreature(NPC_DreadscaleGUID) )
dreadscale->GetMotionMaster()->MovePoint(0, Locs[LOC_DREADSCALE].GetPositionX(), Locs[LOC_DREADSCALE].GetPositionY(), Locs[LOC_DREADSCALE].GetPositionZ());
events.PopEvent();
events.RescheduleEvent(EVENT_ACIDMAW_AND_DREADSCALE_ATTACK, 7000);
break;
}
break;
case EVENT_ACIDMAW_AND_DREADSCALE_ATTACK:
{
HandleGameObject(GO_MainGateGUID, false);
@@ -742,29 +740,28 @@ public:
c->AI()->DoZoneInCombat();
}
}
events.PopEvent();
break;
}
break;
case EVENT_SCENE_006:
{
northrendBeastsMask |= 32;
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
c->AI()->Talk(SAY_STAGE_0_05);
events.PopEvent();
events.RescheduleEvent(EVENT_OPEN_GATE, 2000);
events.RescheduleEvent(EVENT_SUMMON_ICEHOWL, 3000);
break;
}
break;
case EVENT_SUMMON_ICEHOWL:
{
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
if( Creature* icehowl = c->SummonCreature(NPC_ICEHOWL, Locs[LOC_BEHIND_GATE].GetPositionX(), Locs[LOC_BEHIND_GATE].GetPositionY(), Locs[LOC_BEHIND_GATE].GetPositionZ(), Locs[LOC_BEHIND_GATE].GetOrientation(), TEMPSUMMON_CORPSE_TIMED_DESPAWN, 630000000) )
icehowl->GetMotionMaster()->MovePoint(0, Locs[LOC_GATE_FRONT].GetPositionX(), Locs[LOC_GATE_FRONT].GetPositionY(), Locs[LOC_GATE_FRONT].GetPositionZ());
events.PopEvent();
events.RescheduleEvent(EVENT_ICEHOWL_ATTACK, 10000);
events.RescheduleEvent(EVENT_CLOSE_GATE, 6000);
break;
}
break;
case EVENT_ICEHOWL_ATTACK:
{
if( Creature* c = instance->GetCreature(NPC_IcehowlGUID) )
@@ -778,18 +775,16 @@ public:
c->AI()->DoZoneInCombat();
}
}
events.PopEvent();
break;
}
break;
case EVENT_SCENE_BEASTS_DONE:
{
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
c->AI()->Talk(SAY_STAGE_0_06);
if( Creature* c = instance->GetCreature(NPC_BarrettGUID) )
c->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
events.PopEvent();
break;
}
break;
case EVENT_SCENE_101:
{
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
@@ -811,18 +806,17 @@ public:
icehowl->DestroyForNearbyPlayers();
}
}
events.PopEvent();
break;
}
break;
case EVENT_SCENE_102:
{
HandleGameObject(GO_MainGateGUID, false);
if( Creature* c = instance->GetCreature(NPC_FizzlebangGUID) )
c->AI()->Talk(SAY_STAGE_1_02);
events.PopEvent();
events.RescheduleEvent(EVENT_SCENE_103, 11000);
break;
}
break;
case EVENT_SCENE_103:
{
if( Creature* c = instance->GetCreature(NPC_FizzlebangGUID) )
@@ -832,10 +826,10 @@ public:
if( Creature* trigger = c->SummonCreature(NPC_PURPLE_GROUND, Locs[LOC_CENTER].GetPositionX(), Locs[LOC_CENTER].GetPositionY(), Locs[LOC_CENTER].GetPositionZ(), Locs[LOC_CENTER].GetOrientation(), TEMPSUMMON_MANUAL_DESPAWN) )
NPC_PurpleGroundGUID = trigger->GetGUID();
}
events.PopEvent();
events.RescheduleEvent(EVENT_SCENE_104, 5000);
break;
}
break;
case EVENT_SCENE_104:
{
if( Creature* c = instance->GetCreature(NPC_FizzlebangGUID) )
@@ -849,10 +843,10 @@ public:
}
c->HandleEmoteCommand(EMOTE_STATE_SPELL_PRECAST);
}
events.PopEvent();
events.RescheduleEvent(EVENT_SUMMON_JARAXXUS, 5000);
break;
}
break;
case EVENT_SUMMON_JARAXXUS:
{
if( Creature* c = instance->GetCreature(NPC_FizzlebangGUID) )
@@ -862,10 +856,10 @@ public:
c->HandleEmoteCommand(EMOTE_STATE_NONE);
c->AI()->Talk(SAY_STAGE_1_04);
}
events.PopEvent();
events.RescheduleEvent(EVENT_SCENE_105, 3000);
break;
}
break;
case EVENT_SCENE_105:
{
if( Creature* c = instance->GetCreature(NPC_JaraxxusGUID) )
@@ -876,26 +870,26 @@ public:
if( Creature* c = instance->GetCreature(NPC_PortalGUID) )
c->DespawnOrUnsummon();
NPC_PortalGUID = 0;
events.PopEvent();
events.RescheduleEvent(EVENT_SCENE_106, 10000);
break;
}
break;
case EVENT_SCENE_106:
{
if( Creature* c = instance->GetCreature(NPC_JaraxxusGUID) )
c->AI()->Talk(SAY_STAGE_1_05);
events.PopEvent();
events.RescheduleEvent(EVENT_SCENE_107, 5000);
break;
}
break;
case EVENT_SCENE_107:
{
if( Creature* c = instance->GetCreature(NPC_FizzlebangGUID) )
c->AI()->Talk(SAY_STAGE_1_06);
events.PopEvent();
events.RescheduleEvent(EVENT_SCENE_108, 800);
break;
}
break;
case EVENT_SCENE_108:
{
if( Creature* c = instance->GetCreature(NPC_JaraxxusGUID) )
@@ -908,20 +902,20 @@ public:
Unit::Kill(f, f);
}
}
events.PopEvent();
events.RescheduleEvent(EVENT_SCENE_109, 5000);
break;
}
break;
case EVENT_SCENE_109:
{
if( Creature* c = instance->GetCreature(NPC_JaraxxusGUID) )
c->SetFacingTo(3 * M_PI / 2);
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
c->AI()->Talk(SAY_STAGE_1_07);
events.PopEvent();
events.RescheduleEvent(EVENT_JARAXXUS_ATTACK, 6000);
break;
}
break;
case EVENT_JARAXXUS_ATTACK:
{
InstanceProgress = INSTANCE_PROGRESS_JARAXXUS_INTRO_DONE;
@@ -936,42 +930,40 @@ public:
c->AI()->DoZoneInCombat();
}
}
events.PopEvent();
break;
}
break;
case EVENT_SCENE_110:
{
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
c->AI()->Talk(SAY_STAGE_1_08);
events.PopEvent();
events.RescheduleEvent(EVENT_SCENE_111, 18000);
break;
}
break;
case EVENT_SCENE_111:
{
if( Creature* c = instance->GetCreature(NPC_GarroshGUID) )
c->AI()->Talk(SAY_STAGE_1_09);
events.PopEvent();
events.RescheduleEvent(EVENT_SCENE_112, 9000);
break;
}
break;
case EVENT_SCENE_112:
{
if( Creature* c = instance->GetCreature(NPC_VarianGUID) )
c->AI()->Talk(SAY_STAGE_1_10);
events.PopEvent();
events.RescheduleEvent(EVENT_SCENE_113, 5000);
break;
}
break;
case EVENT_SCENE_113:
{
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
c->AI()->Talk(SAY_STAGE_1_11);
if( Creature* c = instance->GetCreature(NPC_BarrettGUID) )
c->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
events.PopEvent();
}
break;
break;
}
case EVENT_SCENE_201:
{
// move Jaraxxus to side, can't remove corpse because of loot!
@@ -984,10 +976,10 @@ public:
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
c->AI()->Talk(SAY_STAGE_2_01);
events.PopEvent();
events.RescheduleEvent(EVENT_SCENE_202, 9000);
break;
}
break;
case EVENT_SCENE_202:
{
Map::PlayerList const& pl = instance->GetPlayers();
@@ -1011,17 +1003,16 @@ public:
c->AI()->Talk(SAY_STAGE_2_02a);
events.RescheduleEvent(EVENT_SCENE_203, 18000);
}
events.PopEvent();
break;
}
break;
case EVENT_SCENE_203:
{
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
c->AI()->Talk(SAY_STAGE_2_03);
events.PopEvent();
events.RescheduleEvent(EVENT_SCENE_204, 5000);
break;
}
break;
case EVENT_SCENE_204:
{
if( TeamIdInInstance == TEAM_ALLIANCE )
@@ -1036,17 +1027,17 @@ public:
c->AI()->Talk(SAY_STAGE_2_04a);
events.RescheduleEvent(EVENT_SCENE_205, 5000);
}
events.PopEvent();
events.RescheduleEvent(EVENT_SUMMON_CHAMPIONS, 2500);
break;
}
break;
case EVENT_SCENE_205:
{
if( Creature* c = instance->GetCreature(TeamIdInInstance == TEAM_ALLIANCE ? NPC_VarianGUID : NPC_GarroshGUID) )
c->AI()->Talk(TeamIdInInstance == TEAM_ALLIANCE ? SAY_STAGE_2_05a : SAY_STAGE_2_05h);
events.PopEvent();
break;
}
break;
case EVENT_SUMMON_CHAMPIONS:
{
std::vector<uint32> vHealerEntries;
@@ -1119,10 +1110,9 @@ public:
}
HandleGameObject(GO_EnterGateGUID, false);
events.PopEvent();
events.RescheduleEvent(EVENT_CHAMPIONS_ATTACK, 4000);
break;
}
break;
case EVENT_CHAMPIONS_ATTACK:
{
for( std::vector<uint64>::iterator itr = NPC_ChampionGUIDs.begin(); itr != NPC_ChampionGUIDs.end(); ++itr )
@@ -1138,34 +1128,32 @@ public:
for (Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr)
itr->GetSource()->AddToNotify(NOTIFY_AI_RELOCATION);
EncounterStatus = IN_PROGRESS;
events.PopEvent();
break;
}
break;
case EVENT_SCENE_FACTION_CHAMPIONS_DEAD:
{
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
c->AI()->Talk(SAY_STAGE_2_06);
if( Creature* c = instance->GetCreature(NPC_BarrettGUID) )
c->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
events.PopEvent();
}
break;
break;
}
case EVENT_SCENE_301:
{
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
c->AI()->Talk(SAY_STAGE_3_01);
events.PopEvent();
events.RescheduleEvent(EVENT_SCENE_302, 13000);
break;
}
break;
case EVENT_SCENE_302:
{
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
c->AI()->Talk(SAY_STAGE_3_02);
events.PopEvent();
events.RescheduleEvent(EVENT_SCENE_303, 3000);
break;
}
break;
case EVENT_SCENE_303:
{
HandleGameObject(GO_EnterGateGUID, false);
@@ -1177,10 +1165,10 @@ public:
if( Creature* t = c->SummonCreature(NPC_DARKBANE, Locs[LOC_VALKYR_LEFT].GetPositionX(), Locs[LOC_VALKYR_LEFT].GetPositionY(), Locs[LOC_VALKYR_LEFT].GetPositionZ(), Locs[LOC_VALKYR_LEFT].GetOrientation(), TEMPSUMMON_CORPSE_TIMED_DESPAWN, 630000000) )
t->GetMotionMaster()->MovePoint(0, Locs[LOC_VALKYR_DEST_LEFT].GetPositionX(), Locs[LOC_VALKYR_DEST_LEFT].GetPositionY(), Locs[LOC_VALKYR_DEST_LEFT].GetPositionZ());
}
events.PopEvent();
events.RescheduleEvent(EVENT_SCENE_304, 6250);
break;
}
break;
case EVENT_SCENE_304:
{
HandleGameObject(GO_MainGateGUID, false);
@@ -1189,10 +1177,10 @@ public:
c->GetMotionMaster()->MovePoint(0, Locs[LOC_VALKYR_DEST_2_RIGHT].GetPositionX(), Locs[LOC_VALKYR_DEST_2_RIGHT].GetPositionY(), Locs[LOC_VALKYR_DEST_2_RIGHT].GetPositionZ());
if( Creature* c = instance->GetCreature(NPC_DarkbaneGUID) )
c->GetMotionMaster()->MovePoint(0, Locs[LOC_VALKYR_DEST_2_LEFT].GetPositionX(), Locs[LOC_VALKYR_DEST_2_LEFT].GetPositionY(), Locs[LOC_VALKYR_DEST_2_LEFT].GetPositionZ());
events.PopEvent();
events.RescheduleEvent(EVENT_VALKYRIES_ATTACK, 3250);
break;
}
break;
case EVENT_VALKYRIES_ATTACK:
{
if( Creature* c = instance->GetCreature(NPC_LightbaneGUID) )
@@ -1215,9 +1203,8 @@ public:
c->AI()->DoZoneInCombat();
}*/
}
events.PopEvent();
break;
}
break;
case EVENT_SCENE_VALKYR_DEAD:
{
if (TeamIdInInstance == TEAM_NEUTRAL)
@@ -1233,18 +1220,18 @@ public:
}
if( Creature* c = instance->GetCreature(TeamIdInInstance == TEAM_ALLIANCE ? NPC_VarianGUID : NPC_GarroshGUID) )
c->AI()->Talk((TeamIdInInstance == TEAM_ALLIANCE ? SAY_STAGE_3_03a : SAY_STAGE_3_03h));
events.PopEvent();
events.RescheduleEvent(EVENT_SCENE_401, 60000);
break;
}
break;
case EVENT_SCENE_401:
{
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
c->AI()->Talk(SAY_STAGE_4_01);
events.PopEvent();
events.RescheduleEvent(EVENT_SCENE_402, 20000);
break;
}
break;
case EVENT_SCENE_402:
{
HandleGameObject(GO_EnterGateGUID, false);
@@ -1258,10 +1245,10 @@ public:
t->AI()->Talk(SAY_STAGE_4_02);
t->SetVisible(false);
}
events.PopEvent();
events.RescheduleEvent(EVENT_SCENE_403, 2000);
break;
}
break;
case EVENT_SCENE_403:
{
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
@@ -1270,10 +1257,10 @@ public:
t->SetReactState(REACT_PASSIVE);
t->CastSpell(t, 51807, true);
}
events.PopEvent();
events.RescheduleEvent(EVENT_SCENE_404, 2000);
break;
}
break;
case EVENT_SCENE_404:
{
if( Creature* c = instance->GetCreature(NPC_LichKingGUID) )
@@ -1282,18 +1269,18 @@ public:
c->SetVisible(true);
c->GetMotionMaster()->MovePoint(0, Locs[LOC_ARTHAS]);
}
events.PopEvent();
events.RescheduleEvent(EVENT_SCENE_405, 3000);
break;
}
break;
case EVENT_SCENE_405:
{
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
c->AI()->Talk(SAY_STAGE_4_03);
events.PopEvent();
events.RescheduleEvent(EVENT_SCENE_406, 7000);
break;
}
break;
case EVENT_SCENE_406:
{
if( Creature* c = instance->GetCreature(NPC_LichKingGUID) )
@@ -1301,36 +1288,39 @@ public:
c->AI()->Talk(SAY_STAGE_4_04);
c->HandleEmoteCommand(EMOTE_ONESHOT_LAUGH);
}
events.PopEvent();
events.RescheduleEvent(EVENT_SCENE_406_2, 2500);
events.RescheduleEvent(EVENT_SCENE_407, 12000);
break;
}
break;
case EVENT_SCENE_406_2:
{
if( Creature* c = instance->GetCreature(NPC_LichKingGUID) )
{
c->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_TALK);
events.PopEvent();
}
break;
}
break;
case EVENT_SCENE_407:
{
if( Creature* c = instance->GetCreature(NPC_LichKingGUID) )
c->HandleEmoteCommand(EMOTE_ONESHOT_EXCLAMATION);
events.PopEvent();
events.RescheduleEvent(EVENT_SCENE_408, 4000);
break;
}
break;
case EVENT_SCENE_408:
{
if( Creature* c = instance->GetCreature(NPC_LichKingGUID) )
{
c->HandleEmoteCommand(EMOTE_ONESHOT_KNEEL);
}
events.PopEvent();
events.RescheduleEvent(EVENT_SCENE_409, 1500);
break;
}
break;
case EVENT_SCENE_409:
{
if( Creature* c = instance->GetCreature(NPC_LichKingGUID) )
@@ -1346,10 +1336,10 @@ public:
InstanceProgress = INSTANCE_PROGRESS_ANUB_ARAK;
SpawnAnubArak();
}
events.PopEvent();
events.RescheduleEvent(EVENT_SCENE_410, 2000);
break;
}
break;
case EVENT_SCENE_410:
{
if( Creature* c = instance->GetCreature(NPC_LichKingGUID) )
@@ -1358,9 +1348,9 @@ public:
c->AI()->Talk(SAY_STAGE_4_05);
c->DespawnOrUnsummon(0);
}
events.PopEvent();
break;
}
break;
case EVENT_SCENE_501:
{
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
@@ -1369,10 +1359,10 @@ public:
c->SummonCreature(NPC_ARGENT_MAGE, Locs[LOC_MAGE].GetPositionX(), Locs[LOC_MAGE].GetPositionY(), Locs[LOC_MAGE].GetPositionZ(), Locs[LOC_MAGE].GetOrientation());
c->SummonGameObject(195682, 668.15f, 134.57f, 142.12f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 630000000);
}
events.PopEvent();
events.RescheduleEvent(EVENT_SCENE_502, 20000);
break;
}
break;
case EVENT_SCENE_502:
{
if( instance->IsHeroic() )
@@ -1420,10 +1410,9 @@ public:
}
}
}
events.PopEvent();
break;
}
break;
}
}