mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-30 09:03:47 +00:00
fix(Core/Util): EventMap::RepeatEvent when eventId is retrieved by ExecuteEvent() call (#3426)
This commit is contained in:
@@ -325,38 +325,31 @@ public:
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING) && !(events.GetPhaseMask() & PHASE_INTRO_MASK))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
case EVENT_INTRO_2:
|
||||
Talk(SAY_INTRO_2);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_INTRO_3:
|
||||
Talk(SAY_INTRO_3);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_INTRO_4:
|
||||
Talk(SAY_INTRO_4);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_INTRO_5:
|
||||
Talk(SAY_INTRO_5);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_INTRO_6:
|
||||
Talk(SAY_INTRO_6);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_INTRO_7:
|
||||
Talk(SAY_INTRO_7);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_BERSERK:
|
||||
me->CastSpell(me, SPELL_BERSERK, true);
|
||||
Talk(SAY_BERSERK);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_SPELL_DEATH_AND_DECAY:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM))
|
||||
@@ -723,7 +716,7 @@ public:
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_SPELL_FANATIC_NECROTIC_STRIKE:
|
||||
me->CastSpell(me->GetVictim(), SPELL_NECROTIC_STRIKE, false);
|
||||
@@ -749,7 +742,6 @@ public:
|
||||
|
||||
if (Creature* ladyDeathwhisper = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_LADY_DEATHWHISPER)))
|
||||
ladyDeathwhisper->AI()->Talk(SAY_ANIMATE_DEAD);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_SPELL_CULTIST_DARK_MARTYRDOM:
|
||||
me->CastSpell(me, SPELL_PERMANENT_FEIGN_DEATH, true);
|
||||
@@ -761,8 +753,6 @@ public:
|
||||
Reset();
|
||||
events.ScheduleEvent(EVENT_CULTIST_DARK_MARTYRDOM_REVIVE, 6000);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
@@ -839,7 +829,7 @@ public:
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_SPELL_ADHERENT_FROST_FEVER:
|
||||
me->CastSpell(me->GetVictim(), SPELL_FROST_FEVER, false);
|
||||
@@ -873,7 +863,6 @@ public:
|
||||
|
||||
if (Creature* ladyDeathwhisper = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_LADY_DEATHWHISPER)))
|
||||
ladyDeathwhisper->AI()->Talk(SAY_ANIMATE_DEAD);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_SPELL_CULTIST_DARK_MARTYRDOM:
|
||||
me->CastSpell(me, SPELL_PERMANENT_FEIGN_DEATH, true);
|
||||
@@ -1072,7 +1061,7 @@ public:
|
||||
return;
|
||||
}
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_DARNAVAN_BLADESTORM:
|
||||
me->CastSpell((Unit*)nullptr, SPELL_BLADESTORM, false);
|
||||
@@ -1080,7 +1069,6 @@ public:
|
||||
break;
|
||||
case EVENT_DARNAVAN_CHARGE:
|
||||
_canCharge = true;
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_DARNAVAN_INTIMIDATING_SHOUT:
|
||||
me->CastSpell((Unit*)nullptr, SPELL_INTIMIDATING_SHOUT, false);
|
||||
@@ -1092,7 +1080,6 @@ public:
|
||||
break;
|
||||
case EVENT_DARNAVAN_SHATTERING_THROW:
|
||||
_canShatter = true;
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_DARNAVAN_SUNDER_ARMOR:
|
||||
me->CastSpell(me->GetVictim(), SPELL_SUNDER_ARMOR, false);
|
||||
|
||||
@@ -154,13 +154,12 @@ public:
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
case EVENT_ENABLE_BONE_SLICE:
|
||||
_boneSlice = true;
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_SPELL_BONE_SPIKE_GRAVEYARD:
|
||||
{
|
||||
@@ -177,7 +176,6 @@ public:
|
||||
break;
|
||||
case EVENT_SPELL_COLDFLAME_BONE_STORM:
|
||||
me->CastSpell(me, SPELL_COLDFLAME_BONE_STORM, false);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_WARN_BONE_STORM:
|
||||
_boneSlice = false;
|
||||
@@ -196,7 +194,6 @@ public:
|
||||
uint32 _boneStormDuration = RAID_MODE<uint32>(20000, 30000, 20000, 30000);
|
||||
if (Aura* pStorm = me->GetAura(SPELL_BONE_STORM))
|
||||
pStorm->SetDuration(int32(_boneStormDuration));
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_BONE_STORM_MOVE, 0);
|
||||
events.ScheduleEvent(EVENT_END_BONE_STORM, _boneStormDuration + 1);
|
||||
}
|
||||
@@ -229,7 +226,6 @@ public:
|
||||
me->GetMotionMaster()->MovementExpired();
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
DoStartMovement(me->GetVictim());
|
||||
events.PopEvent();
|
||||
events.CancelEvent(EVENT_BONE_STORM_MOVE);
|
||||
events.ScheduleEvent(EVENT_ENABLE_BONE_SLICE, 10000);
|
||||
if (!IsHeroic())
|
||||
@@ -238,7 +234,6 @@ public:
|
||||
case EVENT_ENRAGE:
|
||||
me->CastSpell(me, SPELL_BERSERK, true);
|
||||
Talk(SAY_BERSERK);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -327,7 +322,7 @@ public:
|
||||
{
|
||||
events.Update(diff);
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
@@ -340,7 +335,6 @@ public:
|
||||
float ny = me->GetPositionY() + 5.0f * sin(me->GetOrientation());
|
||||
if (!me->IsWithinLOS(nx, ny, 42.5f))
|
||||
{
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
me->NearTeleportTo(nx, ny, 42.5f, me->GetOrientation());
|
||||
|
||||
@@ -1686,7 +1686,7 @@ public:
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING) || me->isFeared() || me->isFrozen() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasUnitState(UNIT_STATE_CONFUSED) || ((me->GetEntry() == NPC_YMIRJAR_DEATHBRINGER || me->GetEntry() == NPC_YMIRJAR_FROSTBINDER) && me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED)))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
@@ -1712,7 +1712,6 @@ public:
|
||||
break;
|
||||
case 4: // Summon Warhawk
|
||||
me->CastSpell(me, 71705, false);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case 11: // Whirlwind
|
||||
me->CastSpell(me->GetVictim(), 41056, false);
|
||||
@@ -1728,7 +1727,6 @@ public:
|
||||
break;
|
||||
case 31: // Arctic Chill
|
||||
me->CastSpell(me, 71270, true);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case 32: // Frozen Orb
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_FARTHEST, 0, 30.0f, true))
|
||||
@@ -1748,7 +1746,6 @@ public:
|
||||
events.RepeatEvent(45000);
|
||||
break;
|
||||
default:
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -2582,7 +2579,7 @@ public:
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
@@ -2647,7 +2644,7 @@ public:
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
@@ -2702,7 +2699,7 @@ public:
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
@@ -2764,7 +2761,7 @@ public:
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
@@ -2883,7 +2880,7 @@ public:
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
@@ -3006,7 +3003,7 @@ public:
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
if (uint32 e = events.GetEvent())
|
||||
if (uint32 e = events.ExecuteEvent())
|
||||
{
|
||||
Unit* target = nullptr;
|
||||
if (sesi_spells[e - 1].targetType == 1)
|
||||
@@ -3105,7 +3102,7 @@ public:
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 1:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 40.0f, true))
|
||||
@@ -3255,7 +3252,7 @@ public:
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 1:
|
||||
if (me->GetVictim() && !me->GetVictim()->HasAura(71163) && me->GetVictim()->GetDistance(me) > 5.0f && me->GetVictim()->GetDistance(me) < 30.0f)
|
||||
@@ -3396,7 +3393,7 @@ public:
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user