mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-02-13 23:43:44 +00:00
fix(Core/Util): EventMap::RepeatEvent when eventId is retrieved by ExecuteEvent() call (#3426)
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 ****************/
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user