refactor(Core/EventMap): Refactor EventMap and related scripts (#23121)

Co-authored-by: Kelno <3866946+kelno@users.noreply.github.com>
Co-authored-by: Peter Keresztes Schmidt <carbenium@outlook.com>
This commit is contained in:
天鹭
2025-10-13 09:19:24 +08:00
committed by GitHub
parent 8e1426c06a
commit 9c49349e1e
168 changed files with 1468 additions and 1593 deletions

View File

@@ -49,7 +49,7 @@ struct npc_pet_gen_soul_trader_beacon : public ScriptedAI
npc_pet_gen_soul_trader_beacon(Creature* c) : ScriptedAI(c)
{
events.Reset();
events.ScheduleEvent(EVENT_INITIAL_TALK, 0);
events.ScheduleEvent(EVENT_INITIAL_TALK, 0ms);
if (me->ToTempSummon())
if (Unit* owner = me->ToTempSummon()->GetOwner())
{
@@ -65,7 +65,7 @@ struct npc_pet_gen_soul_trader_beacon : public ScriptedAI
if (spellInfo->Id == SPELL_STEAL_ESSENCE_VISUAL && target == me)
{
Talk(1);
events.ScheduleEvent(EVENT_ADD_TOKEN, 3000);
events.ScheduleEvent(EVENT_ADD_TOKEN, 3s);
me->CastSpell(me, SPELL_EMOTE_STATE_SWIM_RUN, true);
}
}

View File

@@ -62,10 +62,18 @@ struct npc_pet_mage_mirror_image : CasterAI
ObjectGuid _ebonGargoyleGUID;
uint32 checktarget;
uint32 dist = urand(1, 5);
bool _delayAttack;
void InitializeAI() override
{
CasterAI::InitializeAI();
_delayAttack = true;
me->m_Events.AddEventAtOffset([this]()
{
_delayAttack = false;
}, 1200ms);
Unit* owner = me->GetOwner();
if (!owner)
return;
@@ -185,10 +193,11 @@ struct npc_pet_mage_mirror_image : CasterAI
void UpdateAI(uint32 diff) override
{
events.Update(diff);
if (events.GetTimer() < 1200)
if (_delayAttack)
return;
events.Update(diff);
if (!me->IsInCombat() || !me->GetVictim())
{
MySelectNextTarget();
@@ -212,7 +221,7 @@ struct npc_pet_mage_mirror_image : CasterAI
if (uint32 spellId = events.ExecuteEvent())
{
events.RescheduleEvent(spellId, spellId == 59637 ? 6500 : 2500);
events.RescheduleEvent(spellId, spellId == 59637 ? 6500ms : 2500ms);
me->CastSpell(me->GetVictim(), spellId, false);
}
}

View File

@@ -49,7 +49,7 @@ struct npc_pet_shaman_earth_elemental : public ScriptedAI
void JustEngagedWith(Unit*) override
{
_events.Reset();
_events.ScheduleEvent(EVENT_SHAMAN_ANGEREDEARTH, 0);
_events.ScheduleEvent(EVENT_SHAMAN_ANGEREDEARTH, 0ms);
}
void InitializeAI() override { }
@@ -74,7 +74,7 @@ struct npc_pet_shaman_earth_elemental : public ScriptedAI
if (_events.ExecuteEvent() == EVENT_SHAMAN_ANGEREDEARTH)
{
DoCastVictim(SPELL_SHAMAN_ANGEREDEARTH);
_events.ScheduleEvent(EVENT_SHAMAN_ANGEREDEARTH, urand(5000, 20000));
_events.ScheduleEvent(EVENT_SHAMAN_ANGEREDEARTH, 5s, 20s);
}
DoMeleeAttackIfReady();
@@ -94,9 +94,9 @@ struct npc_pet_shaman_fire_elemental : public ScriptedAI
void JustEngagedWith(Unit*) override
{
_events.Reset();
_events.ScheduleEvent(EVENT_SHAMAN_FIRENOVA, urand(5000, 20000));
_events.ScheduleEvent(EVENT_SHAMAN_FIREBLAST, urand(5000, 20000));
//_events.ScheduleEvent(EVENT_SHAMAN_FIRESHIELD, 0);
_events.ScheduleEvent(EVENT_SHAMAN_FIRENOVA, 5s, 20s);
_events.ScheduleEvent(EVENT_SHAMAN_FIREBLAST, 5s, 20s);
//_events.ScheduleEvent(EVENT_SHAMAN_FIRESHIELD, 0ms);
me->RemoveAurasDueToSpell(SPELL_SHAMAN_FIRESHIELD);
me->CastSpell(me, SPELL_SHAMAN_FIRESHIELD, true);
@@ -124,11 +124,11 @@ struct npc_pet_shaman_fire_elemental : public ScriptedAI
{
case EVENT_SHAMAN_FIRENOVA:
me->CastSpell(me, SPELL_SHAMAN_FIRENOVA, false);
_events.ScheduleEvent(EVENT_SHAMAN_FIRENOVA, urand(8000, 15000));
_events.ScheduleEvent(EVENT_SHAMAN_FIRENOVA, 8s, 15s);
break;
case EVENT_SHAMAN_FIREBLAST:
me->CastSpell(me->GetVictim(), SPELL_SHAMAN_FIREBLAST, false);
_events.ScheduleEvent(EVENT_SHAMAN_FIREBLAST, urand(4000, 8000));
_events.ScheduleEvent(EVENT_SHAMAN_FIREBLAST, 4s, 8s);
break;
default:
break;