mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-25 14:46:24 +00:00
fix(Core/Util): EventMap::RepeatEvent when eventId is retrieved by ExecuteEvent() call (#3426)
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
/*
|
||||
/*
|
||||
* Originally written by Xinef - Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3
|
||||
*/
|
||||
|
||||
@@ -424,7 +424,7 @@ public:
|
||||
events.Update(diff);
|
||||
|
||||
// Special events which needs to be fired immidiately
|
||||
switch(events.GetEvent())
|
||||
switch(events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_SARTHARION_BOUNDARY:
|
||||
if (me->GetPositionX() < 3218.86f || me->GetPositionX() > 3275.69f || me->GetPositionY() < 484.68f || me->GetPositionY() > 572.4f) // https://github.com/TrinityCore/TrinityCore/blob/3.3.5/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/instance_obsidian_sanctum.cpp#L31
|
||||
@@ -441,11 +441,11 @@ public:
|
||||
return;
|
||||
case EVENT_SARTHARION_START_LAVA:
|
||||
SendLavaWaves(true);
|
||||
events.PopEvent();
|
||||
|
||||
return;
|
||||
case EVENT_SARTHARION_FINISH_LAVA:
|
||||
SendLavaWaves(false);
|
||||
events.PopEvent();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -463,7 +463,7 @@ public:
|
||||
void boss_sartharion::boss_sartharionAI::HandleSartharionAbilities()
|
||||
{
|
||||
// Handling of Sartharion Events
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_SARTHARION_CAST_CLEAVE:
|
||||
me->CastSpell(me->GetVictim(), SPELL_SARTHARION_CLEAVE, false);
|
||||
@@ -523,14 +523,14 @@ void boss_sartharion::boss_sartharionAI::HandleSartharionAbilities()
|
||||
cr->CastSpell(cr, SPELL_CYCLONE_AURA_PERIODIC, true);
|
||||
}
|
||||
Talk(SAY_SARTHARION_BERSERK);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
}
|
||||
events.RepeatEvent(2000);
|
||||
break;
|
||||
case EVENT_SARTHARION_BERSERK:
|
||||
summons.DespawnEntry(NPC_SAFE_AREA_TRIGGER);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -538,26 +538,26 @@ void boss_sartharion::boss_sartharionAI::HandleSartharionAbilities()
|
||||
void boss_sartharion::boss_sartharionAI::HandleDrakeAbilities()
|
||||
{
|
||||
// Handling of Drakes Events
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
// Dragon Calls
|
||||
case EVENT_SARTHARION_CALL_TENEBRON:
|
||||
Talk(SAY_SARTHARION_CALL_TENEBRON);
|
||||
if (Creature* tenebron = ObjectAccessor::GetCreature(*me, dragons[DRAGON_TENEBRON]))
|
||||
tenebron->AI()->DoAction(ACTION_CALL_DRAGON);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
case EVENT_SARTHARION_CALL_SHADRON:
|
||||
Talk(SAY_SARTHARION_CALL_SHADRON);
|
||||
if (Creature* shadron = ObjectAccessor::GetCreature(*me, dragons[DRAGON_SHADRON]))
|
||||
shadron->AI()->DoAction(ACTION_CALL_DRAGON);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
case EVENT_SARTHARION_CALL_VESPERON:
|
||||
Talk(SAY_SARTHARION_CALL_VESPERON);
|
||||
if (Creature* vesperon = ObjectAccessor::GetCreature(*me, dragons[DRAGON_VESPERON]))
|
||||
vesperon->AI()->DoAction(ACTION_CALL_DRAGON);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -733,7 +733,7 @@ public:
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_MINIBOSS_SHADOW_BREATH:
|
||||
if (!urand(0, 10))
|
||||
@@ -776,7 +776,6 @@ public:
|
||||
}
|
||||
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_HATCH_EGGS, 25000);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
case EVENT_MINIBOSS_HATCH_EGGS:
|
||||
@@ -810,7 +809,6 @@ public:
|
||||
|
||||
EntryCheckPredicate pred(NPC_TWILIGHT_EGG);
|
||||
summons.DoAction(ACTION_SWITCH_PHASE, pred);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1005,7 +1003,7 @@ public:
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_MINIBOSS_SHADOW_BREATH:
|
||||
if (!urand(0, 10))
|
||||
@@ -1030,7 +1028,7 @@ public:
|
||||
pInstance->SetData(DATA_ADD_PORTAL, 0);
|
||||
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_SPAWN_HELPERS, 2000);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
case EVENT_MINIBOSS_SPAWN_HELPERS:
|
||||
Talk(WHISPER_SUMMON_DICIPLE);
|
||||
@@ -1041,7 +1039,7 @@ public:
|
||||
cr->SetPhaseMask(16, true);
|
||||
}
|
||||
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1235,7 +1233,7 @@ public:
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_MINIBOSS_SHADOW_BREATH:
|
||||
if (!urand(0, 10))
|
||||
@@ -1260,7 +1258,7 @@ public:
|
||||
pInstance->SetData(DATA_ADD_PORTAL, 0);
|
||||
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_SPAWN_HELPERS, 2000);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
case EVENT_MINIBOSS_SPAWN_HELPERS:
|
||||
Talk(WHISPER_SUMMON_DICIPLE);
|
||||
@@ -1271,7 +1269,7 @@ public:
|
||||
cr->SetPhaseMask(16, true);
|
||||
}
|
||||
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user