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

@@ -297,7 +297,7 @@ struct boss_archimonde : public BossAI
}
}
}, 5s);
ScheduleTimedEvent(5000ms, [&]
ScheduleTimedEvent(5s, [&]
{
bool noPlayersInRange = true;
if (Map* map = me->GetMap())

View File

@@ -110,7 +110,7 @@ public:
if (Creature* archi = instance->GetCreature(DATA_ARCHIMONDE))
{
archi->AI()->DoAction(ACTION_BECOME_ACTIVE_AND_CHANNEL);
archi->AI()->Talk(SAY_ARCHIMONDE_INTRO, 25000ms);
archi->AI()->Talk(SAY_ARCHIMONDE_INTRO, 25s);
}
BossAI::JustDied(killer);
}

View File

@@ -94,9 +94,9 @@ public:
Milliseconds GetMarkRepeatTimer()
{
++_markCounter;
Milliseconds timer = 45000ms - (5000ms * _markCounter);
if (timer <= 10000ms)
return 10000ms;
Milliseconds timer = 45s - (5s * _markCounter);
if (timer <= 10s)
return 10s;
else
return timer;
}

View File

@@ -53,16 +53,16 @@ ObjectData const creatureData[] =
Milliseconds hyjalWaveTimers[4][MAX_WAVES_STANDARD]
{
{ 130000ms, 130000ms, 130000ms, 130000ms, 130000ms, 130000ms, 130000ms, 190000ms, 0ms }, // Winterchill
{ 130000ms, 130000ms, 130000ms, 130000ms, 130000ms, 130000ms, 130000ms, 190000ms, 0ms }, // Anetheron
{ 130000ms, 155000ms, 130000ms, 155000ms, 130000ms, 130000ms, 155000ms, 225000ms, 0ms }, // Kaz'rogal
{ 130000ms, 190000ms, 190000ms, 190000ms, 130000ms, 155000ms, 190000ms, 225000ms, 0ms } // Azgalor
{ 130s, 130s, 130s, 130s, 130s, 130s, 130s, 190s, 0ms }, // Winterchill
{ 130s, 130s, 130s, 130s, 130s, 130s, 130s, 190s, 0ms }, // Anetheron
{ 130s, 155s, 130s, 155s, 130s, 130s, 155s, 225s, 0ms }, // Kaz'rogal
{ 130s, 190s, 190s, 190s, 130s, 155s, 190s, 225s, 0ms } // Azgalor
};
Milliseconds hyjalRetreatTimers[2][MAX_WAVES_RETREAT]
{
{ 10000ms, 6000ms , 0ms }, // Alliance
{ 10000ms, 40000ms, 0ms } // Horde
{ 10s, 6s , 0ms }, // Alliance
{ 10s, 40s, 0ms } // Horde
};
Milliseconds hyjalNightElfWaveTimers[1][MAX_WAVES_NIGHT_ELF]
@@ -295,7 +295,7 @@ public:
}
// Despawn all alliance NPCs
scheduler.Schedule(21000ms, [this](TaskContext)
scheduler.Schedule(21s, [this](TaskContext)
{
for (ObjectGuid const& guid : _baseAlliance)
if (Creature* creature = instance->GetCreature(guid))
@@ -343,7 +343,7 @@ public:
}
}
scheduler.Schedule(21000ms, [this](TaskContext)
scheduler.Schedule(21s, [this](TaskContext)
{
for (ObjectGuid const& guid : _baseHorde)
if (Creature* creature = instance->GetCreature(guid))

View File

@@ -77,12 +77,12 @@ public:
{
Talk(SAY_AGGRO);
events.ScheduleEvent(EVENT_SPELL_CURSE_OF_EXERTION, 9000);
events.ScheduleEvent(EVENT_SPELL_WOUNDING_STRIKE, 3000);
events.ScheduleEvent(EVENT_SPELL_TIME_WARP, 25000);
events.ScheduleEvent(EVENT_SPELL_CURSE_OF_EXERTION, 9s);
events.ScheduleEvent(EVENT_SPELL_WOUNDING_STRIKE, 3s);
events.ScheduleEvent(EVENT_SPELL_TIME_WARP, 25s);
if (IsHeroic())
events.ScheduleEvent(EVENT_SPELL_TIME_STOP, 20000);
events.ScheduleEvent(EVENT_SPELL_TIME_STOP, 20s);
}
void SpellHitTarget(Unit* target, SpellInfo const* spellInfo) override
@@ -116,15 +116,15 @@ public:
case EVENT_SPELL_CURSE_OF_EXERTION:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true))
me->CastSpell(target, SPELL_CURSE_OF_EXERTION, false);
events.RepeatEvent(9000);
events.Repeat(9s);
break;
case EVENT_SPELL_WOUNDING_STRIKE:
me->CastSpell(me->GetVictim(), DUNGEON_MODE(SPELL_WOUNDING_STRIKE_N, SPELL_WOUNDING_STRIKE_H), false);
events.RepeatEvent(6000);
events.Repeat(6s);
break;
case EVENT_SPELL_TIME_STOP:
me->CastSpell(me, SPELL_TIME_STOP, false);
events.RepeatEvent(20000);
events.Repeat(20s);
break;
case EVENT_SPELL_TIME_WARP:
Talk(SAY_TIME_WARP);
@@ -132,7 +132,7 @@ public:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true))
me->CastSpell(target, DUNGEON_MODE(SPELL_TIME_STEP_N, SPELL_TIME_STEP_H), true);
events.RepeatEvent(25000);
events.Repeat(25s);
break;
}

View File

@@ -79,8 +79,8 @@ public:
void JustEngagedWith(Unit* /*who*/) override
{
me->InterruptNonMeleeSpells(false);
events.ScheduleEvent(EVENT_SPELL_VOID_STRIKE, 8000);
events.ScheduleEvent(EVENT_SPELL_CORRUPTING_BLIGHT, 12000);
events.ScheduleEvent(EVENT_SPELL_VOID_STRIKE, 8s);
events.ScheduleEvent(EVENT_SPELL_CORRUPTING_BLIGHT, 12s);
Talk(SAY_AGGRO);
}
@@ -147,12 +147,12 @@ public:
{
case EVENT_SPELL_VOID_STRIKE:
me->CastSpell(me->GetVictim(), SPELL_VOID_STRIKE, false);
events.RepeatEvent(8000);
events.Repeat(8s);
break;
case EVENT_SPELL_CORRUPTING_BLIGHT:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true))
me->CastSpell(target, SPELL_CORRUPTING_BLIGHT, false);
events.RepeatEvent(12000);
events.Repeat(12s);
break;
}

View File

@@ -87,10 +87,10 @@ public:
void JustEngagedWith(Unit* /*who*/) override
{
Talk(SAY_AGGRO);
events.ScheduleEvent(EVENT_SPELL_CARRION_SWARM, 6000);
events.ScheduleEvent(EVENT_SPELL_MIND_BLAST, 11000);
events.ScheduleEvent(EVENT_SPELL_SLEEP, 20000);
events.ScheduleEvent(EVENT_SPELL_VAMPIRIC_TOUCH, 15000);
events.ScheduleEvent(EVENT_SPELL_CARRION_SWARM, 6s);
events.ScheduleEvent(EVENT_SPELL_MIND_BLAST, 11s);
events.ScheduleEvent(EVENT_SPELL_SLEEP, 20s);
events.ScheduleEvent(EVENT_SPELL_VAMPIRIC_TOUCH, 15s);
}
void JustDied(Unit* /*killer*/) override
@@ -146,22 +146,22 @@ public:
{
case EVENT_SPELL_CARRION_SWARM:
me->CastSpell(me->GetVictim(), DUNGEON_MODE(SPELL_CARRION_SWARM_N, SPELL_CARRION_SWARM_H), false);
events.RepeatEvent(7000);
events.Repeat(7s);
break;
case EVENT_SPELL_MIND_BLAST:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true))
me->CastSpell(target, DUNGEON_MODE(SPELL_MIND_BLAST_N, SPELL_MIND_BLAST_H), false);
events.RepeatEvent(6000);
events.Repeat(6s);
break;
case EVENT_SPELL_SLEEP:
Talk(SAY_SLEEP);
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true))
me->CastSpell(target, DUNGEON_MODE(SPELL_SLEEP_N, SPELL_SLEEP_H), false);
events.RepeatEvent(17000);
events.Repeat(17s);
break;
case EVENT_SPELL_VAMPIRIC_TOUCH:
me->CastSpell(me, SPELL_VAMPIRIC_TOUCH, true);
events.RepeatEvent(30000);
events.Repeat(30s);
break;
}

View File

@@ -66,9 +66,9 @@ public:
void JustEngagedWith(Unit* /*who*/) override
{
Talk(SAY_AGGRO);
events.RescheduleEvent(EVENT_SPELL_CONSTRICTING_CHAINS, 15000);
events.RescheduleEvent(EVENT_SPELL_DISEASE_EXPULSION, 4000);
events.RescheduleEvent(EVENT_SPELL_FRENZY, 20000);
events.RescheduleEvent(EVENT_SPELL_CONSTRICTING_CHAINS, 15s);
events.RescheduleEvent(EVENT_SPELL_DISEASE_EXPULSION, 4s);
events.RescheduleEvent(EVENT_SPELL_FRENZY, 20s);
}
void JustDied(Unit* /*killer*/) override
@@ -98,16 +98,16 @@ public:
{
case EVENT_SPELL_DISEASE_EXPULSION:
me->CastSpell(me, DUNGEON_MODE(SPELL_DISEASE_EXPULSION_N, SPELL_DISEASE_EXPULSION_H), false);
events.RepeatEvent(6000);
events.Repeat(6s);
break;
case EVENT_SPELL_FRENZY:
me->CastSpell(me, SPELL_FRENZY, false);
events.RepeatEvent(20000);
events.Repeat(20s);
break;
case EVENT_SPELL_CONSTRICTING_CHAINS:
if (Unit* pTarget = SelectTarget(SelectTargetMethod::MinThreat, 0, 50.0f, true))
me->CastSpell(pTarget, DUNGEON_MODE(SPELL_CONSTRICTING_CHAINS_N, SPELL_CONSTRICTING_CHAINS_H), false);
events.RepeatEvent(14000);
events.Repeat(14s);
break;
}

View File

@@ -84,12 +84,12 @@ public:
void JustEngagedWith(Unit* /*who*/) override
{
Talk(SAY_AGGRO);
events.ScheduleEvent(EVENT_SPELL_SHADOW_BOLT, 7000);
events.ScheduleEvent(EVENT_SPELL_STEAL_FLESH, 11000);
events.ScheduleEvent(EVENT_SPELL_SUMMON_GHOULS, 16000);
events.ScheduleEvent(EVENT_EXPLODE_GHOUL, 22000);
events.ScheduleEvent(EVENT_SPELL_SHADOW_BOLT, 7s);
events.ScheduleEvent(EVENT_SPELL_STEAL_FLESH, 11s);
events.ScheduleEvent(EVENT_SPELL_SUMMON_GHOULS, 16s);
events.ScheduleEvent(EVENT_EXPLODE_GHOUL, 22s);
if (IsHeroic())
events.ScheduleEvent(EVENT_SPELL_CURSE, 25000);
events.ScheduleEvent(EVENT_SPELL_CURSE, 25s);
}
void JustDied(Unit* /*killer*/) override
@@ -130,29 +130,29 @@ public:
{
case EVENT_SPELL_SHADOW_BOLT:
me->CastSpell(me->GetVictim(), DUNGEON_MODE(SPELL_SHADOW_BOLT_N, SPELL_SHADOW_BOLT_H), false);
events.RepeatEvent(10000);
events.Repeat(10s);
break;
case EVENT_SPELL_STEAL_FLESH:
if (!urand(0, 2))
Talk(SAY_STEAL_FLESH);
me->CastSpell(me->GetVictim(), SPELL_STEAL_FLESH_CHANNEL, false);
events.RepeatEvent(12000);
events.Repeat(12s);
break;
case EVENT_SPELL_SUMMON_GHOULS:
if (!urand(0, 2))
Talk(SAY_SUMMON_GHOULS);
me->CastSpell(me, SPELL_SUMMON_GHOULS, false);
events.RepeatEvent(10000);
events.Repeat(10s);
break;
case EVENT_EXPLODE_GHOUL:
if (!urand(0, 2))
Talk(SAY_EXPLODE_GHOUL);
ExplodeGhoul();
events.RepeatEvent(15000);
events.Repeat(15s);
break;
case EVENT_SPELL_CURSE:
me->CastSpell(me->GetVictim(), SPELL_CURSE_OF_TWISTED_FAITH, false);
events.RepeatEvent(30000);
events.Repeat(30s);
break;
}

View File

@@ -385,7 +385,7 @@ public:
uint8 timeRiftId;
Creature* GetEventNpc(uint32 entry);
void ScheduleNextEvent(uint32 currentEvent, uint32 time);
void ScheduleNextEvent(uint32 currentEvent, Milliseconds time);
void SummonNextWave();
void ReorderInstance(uint32 data);
void JustEngagedWith(Unit* /*who*/) override ;
@@ -418,12 +418,12 @@ public:
{
// Event
eventInRun = true;
actionEvents.ScheduleEvent(EVENT_ACTION_PHASE1, 0);
actionEvents.ScheduleEvent(EVENT_ACTION_PHASE1, 0ms);
}
else if (param == ACTION_START_CITY)
{
Talk(SAY_PHASE201);
actionEvents.ScheduleEvent(EVENT_ACTION_PHASE2, 12000);
actionEvents.ScheduleEvent(EVENT_ACTION_PHASE2, 12s);
SetRun(false);
eventInRun = true;
@@ -435,7 +435,7 @@ public:
waveGroupId = 10;
eventInRun = true;
SetRun(true);
actionEvents.ScheduleEvent(EVENT_ACTION_PHASE2 + 9, 10000);
actionEvents.ScheduleEvent(EVENT_ACTION_PHASE2 + 9, 10s);
}
else if (param == ACTION_START_TOWN_HALL)
{
@@ -486,7 +486,7 @@ public:
{
EnterEvadeMode();
eventInRun = true;
actionEvents.ScheduleEvent(EVENT_ACTION_PHASE5 + 1, 22000);
actionEvents.ScheduleEvent(EVENT_ACTION_PHASE5 + 1, 22s);
me->SetFacingTo(1.84f);
if (!me->GetMap()->GetPlayers().IsEmpty())
@@ -579,7 +579,7 @@ public:
break;
// Inside Town Hall first scene pos
case 22:
actionEvents.ScheduleEvent(EVENT_ACTION_PHASE3, 0);
actionEvents.ScheduleEvent(EVENT_ACTION_PHASE3, 0ms);
eventInRun = true;
SetEscortPaused(true);
break;
@@ -652,7 +652,7 @@ public:
// Infront of malganis
case 55:
Talk(SAY_PHASE502);
actionEvents.ScheduleEvent(EVENT_ACTION_PHASE5, 7000);
actionEvents.ScheduleEvent(EVENT_ACTION_PHASE5, 7s);
SetEscortPaused(true);
eventInRun = true;
break;
@@ -686,7 +686,7 @@ public:
if (Creature* horse = me->SummonCreature(NPC_HORSE_ESCORT, EventPos[EVENT_SRC_HORSE1 + i], TEMPSUMMON_DEAD_DESPAWN, 180000))
horse->GetMotionMaster()->MovePoint(0, EventPos[EVENT_DST_HORSE1 + i], false);
ScheduleNextEvent(currentEvent, 4000);
ScheduleNextEvent(currentEvent, 4s);
break;
case EVENT_ACTION_PHASE1+1:
// Start Event
@@ -694,24 +694,24 @@ public:
SetDespawnAtEnd(false);
SetDespawnAtFar(false);
ScheduleNextEvent(currentEvent, 9000);
ScheduleNextEvent(currentEvent, 9s);
break;
// After waypoint 0
case EVENT_ACTION_PHASE1+2:
Talk(SAY_PHASE101);
ScheduleNextEvent(currentEvent, 2000);
ScheduleNextEvent(currentEvent, 2s);
break;
case EVENT_ACTION_PHASE1+3:
if (Creature* uther = GetEventNpc(NPC_UTHER))
uther->AI()->Talk(SAY_PHASE102);
ScheduleNextEvent(currentEvent, 8000);
ScheduleNextEvent(currentEvent, 8s);
break;
case EVENT_ACTION_PHASE1+4:
SetEscortPaused(false);
eventInRun = false;
Talk(SAY_PHASE103);
ScheduleNextEvent(currentEvent, 2000);
ScheduleNextEvent(currentEvent, 2s);
break;
// After waypoint 1
case EVENT_ACTION_PHASE1+5:
@@ -719,63 +719,63 @@ public:
jaina->SetTarget(me->GetGUID());
Talk(SAY_PHASE104);
ScheduleNextEvent(currentEvent, 10000);
ScheduleNextEvent(currentEvent, 10s);
break;
case EVENT_ACTION_PHASE1+6:
if (Creature* uther = GetEventNpc(NPC_UTHER))
uther->AI()->Talk(SAY_PHASE105);
ScheduleNextEvent(currentEvent, 1000);
ScheduleNextEvent(currentEvent, 1s);
break;
case EVENT_ACTION_PHASE1+7:
Talk(SAY_PHASE106);
ScheduleNextEvent(currentEvent, 4000);
ScheduleNextEvent(currentEvent, 4s);
break;
case EVENT_ACTION_PHASE1+8:
if (Creature* uther = GetEventNpc(NPC_UTHER))
uther->AI()->Talk(SAY_PHASE107);
ScheduleNextEvent(currentEvent, 6000);
ScheduleNextEvent(currentEvent, 6s);
break;
case EVENT_ACTION_PHASE1+9:
Talk(SAY_PHASE108);
ScheduleNextEvent(currentEvent, 4000);
ScheduleNextEvent(currentEvent, 4s);
break;
case EVENT_ACTION_PHASE1+10:
if (Creature* uther = GetEventNpc(NPC_UTHER))
uther->AI()->Talk(SAY_PHASE109);
ScheduleNextEvent(currentEvent, 8000);
ScheduleNextEvent(currentEvent, 8s);
break;
case EVENT_ACTION_PHASE1+11:
Talk(SAY_PHASE110);
ScheduleNextEvent(currentEvent, 4000);
ScheduleNextEvent(currentEvent, 4s);
break;
case EVENT_ACTION_PHASE1+12:
if (Creature* uther = GetEventNpc(NPC_UTHER))
uther->AI()->Talk(SAY_PHASE111);
ScheduleNextEvent(currentEvent, 4000);
ScheduleNextEvent(currentEvent, 4s);
break;
case EVENT_ACTION_PHASE1+13:
Talk(SAY_PHASE112);
ScheduleNextEvent(currentEvent, 11000);
ScheduleNextEvent(currentEvent, 11s);
break;
case EVENT_ACTION_PHASE1+14:
if (Creature* jaina = GetEventNpc(NPC_JAINA))
jaina->AI()->Talk(SAY_PHASE113);
ScheduleNextEvent(currentEvent, 2500);
ScheduleNextEvent(currentEvent, 2500ms);
break;
case EVENT_ACTION_PHASE1+15:
Talk(SAY_PHASE114);
ScheduleNextEvent(currentEvent, 9000);
ScheduleNextEvent(currentEvent, 9s);
break;
case EVENT_ACTION_PHASE1+16:
if (Creature* uther = GetEventNpc(NPC_UTHER))
uther->AI()->Talk(SAY_PHASE115);
ScheduleNextEvent(currentEvent, 4000);
ScheduleNextEvent(currentEvent, 4s);
break;
case EVENT_ACTION_PHASE1+17:
for (SummonList::const_iterator i = summons.begin(); i != summons.end(); ++i)
@@ -785,7 +785,7 @@ public:
summon->GetMotionMaster()->MovePoint(0, EventPos[EVENT_POS_RETREAT], false);
}
ScheduleNextEvent(currentEvent, 1000);
ScheduleNextEvent(currentEvent, 1s);
break;
case EVENT_ACTION_PHASE1+18:
if (Creature* uther = GetEventNpc(NPC_UTHER))
@@ -794,7 +794,7 @@ public:
uther->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
uther->GetMotionMaster()->MovePoint(0, EventPos[EVENT_POS_RETREAT], false);
}
ScheduleNextEvent(currentEvent, 1000);
ScheduleNextEvent(currentEvent, 1s);
break;
case EVENT_ACTION_PHASE1+19:
if (Creature* jaina = GetEventNpc(NPC_JAINA))
@@ -804,7 +804,7 @@ public:
jaina->GetMotionMaster()->MovePoint(0, EventPos[EVENT_POS_RETREAT], false);
}
Talk(SAY_PHASE116);
ScheduleNextEvent(currentEvent, 2000);
ScheduleNextEvent(currentEvent, 2s);
break;
case EVENT_ACTION_PHASE1+20:
if (Creature* jaina = GetEventNpc(NPC_JAINA))
@@ -813,7 +813,7 @@ public:
jaina->AI()->Talk(SAY_PHASE117);
}
ScheduleNextEvent(currentEvent, 2000);
ScheduleNextEvent(currentEvent, 2s);
break;
case EVENT_ACTION_PHASE1+21:
if (Creature* jaina = GetEventNpc(NPC_JAINA))
@@ -822,7 +822,7 @@ public:
jaina->GetMotionMaster()->MovePoint(0, EventPos[EVENT_POS_RETREAT], false);
}
summons.DespawnEntry(NPC_HORSE_ESCORT);
ScheduleNextEvent(currentEvent, 4000);
ScheduleNextEvent(currentEvent, 4s);
break;
case EVENT_ACTION_PHASE1+22:
SetEscortPaused(false);
@@ -836,7 +836,7 @@ public:
me->SetTarget();
SetEscortPaused(false);
eventInRun = false;
ScheduleNextEvent(currentEvent, 1000);
ScheduleNextEvent(currentEvent, 1s);
break;
// After waypoint 9
case EVENT_ACTION_PHASE2+1:
@@ -848,13 +848,13 @@ public:
cityman->GetMotionMaster()->MovePoint(0, EventPos[EVENT_DST_CITYMAN]);
}
ScheduleNextEvent(currentEvent, 9000);
ScheduleNextEvent(currentEvent, 9s);
break;
case EVENT_ACTION_PHASE2+2:
Talk(SAY_PHASE203);
SetEscortPaused(false);
eventInRun = false;
ScheduleNextEvent(currentEvent, 1500);
ScheduleNextEvent(currentEvent, 1500ms);
break;
// After waypoint 11
case EVENT_ACTION_PHASE2+3:
@@ -864,7 +864,7 @@ public:
stalker->DespawnOrUnsummon(500);
}
Talk(SAY_PHASE205);
ScheduleNextEvent(currentEvent, 4000);
ScheduleNextEvent(currentEvent, 4s);
break;
case EVENT_ACTION_PHASE2+4:
if (Creature* malganis = me->SummonCreature(NPC_MAL_GANIS, EventPos[EVENT_SRC_MALGANIS], TEMPSUMMON_TIMED_DESPAWN, 60000))
@@ -889,13 +889,13 @@ public:
unitList.clear();
}
ScheduleNextEvent(currentEvent, 12000);
ScheduleNextEvent(currentEvent, 12s);
break;
case EVENT_ACTION_PHASE2+5:
if (Creature* malganis = GetEventNpc(NPC_MAL_GANIS))
malganis->AI()->Talk(SAY_PHASE207);
ScheduleNextEvent(currentEvent, 15000);
ScheduleNextEvent(currentEvent, 15s);
break;
case EVENT_ACTION_PHASE2+6:
if (Creature* malganis = GetEventNpc(NPC_MAL_GANIS))
@@ -906,7 +906,7 @@ public:
}
Talk(SAY_PHASE208);
ScheduleNextEvent(currentEvent, 11000);
ScheduleNextEvent(currentEvent, 11s);
break;
case EVENT_ACTION_PHASE2+7:
summons.DespawnEntry(NPC_MAL_GANIS);
@@ -914,7 +914,7 @@ public:
summons.DespawnEntry(NPC_CITY_MAN2);
Talk(SAY_PHASE209);
me->SetReactState(REACT_DEFENSIVE);
ScheduleNextEvent(currentEvent, 20000);
ScheduleNextEvent(currentEvent, 20s);
if (pInstance)
pInstance->SetData(DATA_ARTHAS_EVENT, COS_PROGRESS_FINISHED_CITY_INTRO);
break;
@@ -941,36 +941,36 @@ public:
cr->SetTarget(me->GetGUID());
if (Creature* cr = GetEventNpc(NPC_CITY_MAN))
cr->SetTarget(me->GetGUID());
ScheduleNextEvent(currentEvent, 1000);
ScheduleNextEvent(currentEvent, 1s);
break;
case EVENT_ACTION_PHASE3+1:
me->SetReactState(REACT_AGGRESSIVE);
if (Creature* cr = GetEventNpc(NPC_CITY_MAN3))
cr->AI()->Talk(SAY_PHASE302);
ScheduleNextEvent(currentEvent, 7000);
ScheduleNextEvent(currentEvent, 7s);
break;
case EVENT_ACTION_PHASE3+2:
Talk(SAY_PHASE303);
SetEscortPaused(false);
eventInRun = false;
ScheduleNextEvent(currentEvent, 0);
ScheduleNextEvent(currentEvent, 0ms);
break;
// After waypoint 23
case EVENT_ACTION_PHASE3+3:
SetRun(true);
if (Creature* cr = GetEventNpc(NPC_CITY_MAN3))
me->CastSpell(cr, SPELL_ARTHAS_CRUSADER_STRIKE, true);
ScheduleNextEvent(currentEvent, 2000);
ScheduleNextEvent(currentEvent, 2s);
break;
case EVENT_ACTION_PHASE3+4:
Talk(SAY_PHASE304);
ScheduleNextEvent(currentEvent, 2000);
ScheduleNextEvent(currentEvent, 2s);
break;
case EVENT_ACTION_PHASE3+5:
if (Creature* cr = GetEventNpc(NPC_CITY_MAN3))
cr->AI()->Talk(SAY_PHASE305);
ScheduleNextEvent(currentEvent, 1000);
ScheduleNextEvent(currentEvent, 1s);
break;
// Trio citizen transformation right as we enter Town Hall
case EVENT_ACTION_PHASE3+6:
@@ -981,7 +981,7 @@ public:
cr->SetImmuneToAll(true);
cr->SetReactState(REACT_PASSIVE);
}
ScheduleNextEvent(currentEvent, 2000);
ScheduleNextEvent(currentEvent, 2s);
break;
case EVENT_ACTION_PHASE3+7:
if (Creature* cr = GetEventNpc(NPC_CITY_MAN4))
@@ -991,7 +991,7 @@ public:
cr->SetImmuneToAll(true);
cr->SetReactState(REACT_PASSIVE);
}
ScheduleNextEvent(currentEvent, 2000);
ScheduleNextEvent(currentEvent, 2s);
break;
case EVENT_ACTION_PHASE3+8:
if (Creature* cr = GetEventNpc(NPC_CITY_MAN3))
@@ -1016,35 +1016,35 @@ public:
cr->SetInCombatWithZone();
cr->AddThreat(me, 0.0f);
}
ScheduleNextEvent(currentEvent, 2000);
ScheduleNextEvent(currentEvent, 2s);
break;
case EVENT_ACTION_PHASE3+9:
// Arthas is fighting infinites in town hall
if (me->IsInCombat())
{
actionEvents.RepeatEvent(1000);
actionEvents.Repeat(1s);
return;
}
summons.DespawnAll();
Talk(SAY_PHASE305_1);
me->SetFacingTo(0.0f);
ScheduleNextEvent(currentEvent, 5000);
ScheduleNextEvent(currentEvent, 5s);
break;
case EVENT_ACTION_PHASE3+10:
Talk(SAY_PHASE306);
ScheduleNextEvent(currentEvent, 5000);
ScheduleNextEvent(currentEvent, 5s);
break;
case EVENT_ACTION_PHASE3+11:
SetEscortPaused(false);
eventInRun = false;
ScheduleNextEvent(currentEvent, 1000);
ScheduleNextEvent(currentEvent, 1s);
break;
case EVENT_ACTION_PHASE3+12:
// Arthas is fighting first chronos
if (me->IsInCombat())
{
actionEvents.RepeatEvent(1000);
actionEvents.Repeat(1s);
return;
}
@@ -1052,13 +1052,13 @@ public:
SetEscortPaused(false);
Talk(SAY_PHASE308);
me->SetFacingTo(M_PI);
ScheduleNextEvent(currentEvent, 0);
ScheduleNextEvent(currentEvent, 0ms);
break;
case EVENT_ACTION_PHASE3+13:
// Arthas is fighting second chronos
if (me->IsInCombat())
{
actionEvents.RepeatEvent(1000);
actionEvents.Repeat(1s);
return;
}
@@ -1066,18 +1066,18 @@ public:
SetEscortPaused(false);
Talk(SAY_PHASE311);
me->SetFacingTo(M_PI * 3 / 2);
ScheduleNextEvent(currentEvent, 0);
ScheduleNextEvent(currentEvent, 0ms);
break;
case EVENT_ACTION_PHASE3+14:
// Arthas is fighting third chronos
if (me->IsInCombat())
{
actionEvents.RepeatEvent(1000);
actionEvents.Repeat(1s);
return;
}
me->SetFacingTo(M_PI / 2);
ScheduleNextEvent(currentEvent, 8000);
ScheduleNextEvent(currentEvent, 8s);
break;
case EVENT_ACTION_PHASE3+15:
Talk(SAY_PHASE313);
@@ -1090,17 +1090,17 @@ public:
cr->GetMotionMaster()->MovePoint(0, EventPos[EVENT_DST_EPOCH]);
}
ScheduleNextEvent(currentEvent, 3000);
ScheduleNextEvent(currentEvent, 3s);
break;
case EVENT_ACTION_PHASE3+16:
if (Creature* cr = GetEventNpc(NPC_EPOCH))
cr->AI()->Talk(SAY_PHASE314);
ScheduleNextEvent(currentEvent, 14000);
ScheduleNextEvent(currentEvent, 14s);
break;
case EVENT_ACTION_PHASE3+17:
Talk(SAY_PHASE315);
ScheduleNextEvent(currentEvent, 7000);
ScheduleNextEvent(currentEvent, 7s);
break;
case EVENT_ACTION_PHASE3+18:
if (Creature* cr = GetEventNpc(NPC_EPOCH))
@@ -1111,13 +1111,13 @@ public:
cr->AddThreat(me, 0.0f);
cr->SetInCombatWithZone();
}
ScheduleNextEvent(currentEvent, 1000);
ScheduleNextEvent(currentEvent, 1s);
break;
case EVENT_ACTION_PHASE3+19:
// Arthas is fighting epoch chronos
if (me->IsInCombat())
{
actionEvents.RepeatEvent(1000);
actionEvents.Repeat(1s);
return;
}
@@ -1143,7 +1143,7 @@ public:
Talk(SAY_PHASE503);
SetEscortPaused(false);
eventInRun = false;
ScheduleNextEvent(currentEvent, 5000);
ScheduleNextEvent(currentEvent, 5s);
break;
case EVENT_ACTION_PHASE5+2:
me->SetFacingTo(5.28f);
@@ -1156,7 +1156,7 @@ public:
pInstance->instance->SummonGameObject(DUNGEON_MODE(GO_MALGANIS_CHEST_N, GO_MALGANIS_CHEST_H), 2288.35f, 1498.73f, 128.414f, -0.994837f, 0, 0, 0, 0, 7 * DAY * IN_MILLISECONDS);
}
ScheduleNextEvent(currentEvent, 10000);
ScheduleNextEvent(currentEvent, 10s);
break;
case EVENT_ACTION_PHASE5+3:
eventInRun = false;
@@ -1179,13 +1179,13 @@ public:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0))
me->CastSpell(target, DUNGEON_MODE(SPELL_ARTHAS_EXORCISM_N, SPELL_ARTHAS_EXORCISM_H), false);
combatEvents.RepeatEvent(7300);
combatEvents.Repeat(7300ms);
break;
case EVENT_COMBAT_HEALTH_CHECK:
if (HealthBelowPct(40))
me->CastSpell(me, SPELL_ARTHAS_HOLY_LIGHT, false);
combatEvents.RepeatEvent(1000);
combatEvents.Repeat(1s);
break;
}
@@ -1210,7 +1210,7 @@ Creature* npc_arthas::npc_arthasAI::GetEventNpc(uint32 entry)
return nullptr;
}
void npc_arthas::npc_arthasAI::ScheduleNextEvent(uint32 currentEvent, uint32 time)
void npc_arthas::npc_arthasAI::ScheduleNextEvent(uint32 currentEvent, Milliseconds time)
{
actionEvents.ScheduleEvent(currentEvent + 1, time);
}
@@ -1236,8 +1236,8 @@ void npc_arthas::npc_arthasAI::JustEngagedWith(Unit* /*who*/)
DoCast(me, SPELL_ARTHAS_AURA);
// Fight
combatEvents.ScheduleEvent(EVENT_COMBAT_EXORCISM, 2000);
combatEvents.ScheduleEvent(EVENT_COMBAT_HEALTH_CHECK, 2000);
combatEvents.ScheduleEvent(EVENT_COMBAT_EXORCISM, 2s);
combatEvents.ScheduleEvent(EVENT_COMBAT_HEALTH_CHECK, 2s);
}
void npc_arthas::npc_arthasAI::ReorderInstance(uint32 data)
@@ -1261,7 +1261,7 @@ void npc_arthas::npc_arthasAI::ReorderInstance(uint32 data)
if (data == COS_PROGRESS_FINISHED_CITY_INTRO)
{
eventInRun = true;
actionEvents.RescheduleEvent(EVENT_ACTION_PHASE2 + 8, 10000);
actionEvents.RescheduleEvent(EVENT_ACTION_PHASE2 + 8, 10s);
}
else if (data == COS_PROGRESS_KILLED_MEATHOOK)
{

View File

@@ -79,11 +79,11 @@ public:
if (_encounterProgress == ENCOUNTER_PROGRESS_NONE)
return;
_events.ScheduleEvent(EVENT_INITIAL_BARRELS_FLAME, 0);
_events.ScheduleEvent(EVENT_FINAL_BARRELS_FLAME, 0);
_events.ScheduleEvent(EVENT_INITIAL_BARRELS_FLAME, 0ms);
_events.ScheduleEvent(EVENT_FINAL_BARRELS_FLAME, 0ms);
if (_encounterProgress == ENCOUNTER_PROGRESS_BARRELS)
_events.ScheduleEvent(EVENT_SUMMON_LIEUTENANT, 0);
_events.ScheduleEvent(EVENT_SUMMON_LIEUTENANT, 0ms);
else
SetData(DATA_THRALL_REPOSITION, 2);
}
@@ -138,7 +138,7 @@ public:
{
case DATA_THRALL_REPOSITION:
if (data > 1)
_events.ScheduleEvent(EVENT_THRALL_REPOSITION, data == 2 ? 0 : 10000);
_events.ScheduleEvent(EVENT_THRALL_REPOSITION, data == 2 ? 0ms : 10s);
else if (Creature* thrall = instance->GetCreature(_thrallGUID))
Reposition(thrall);
return;
@@ -157,9 +157,9 @@ public:
DoUpdateWorldState(WORLD_STATE_OLD_HILLSBRAD_BARRELS_PLANTED, ++_barrelCount);
if (_barrelCount == 5)
{
_events.ScheduleEvent(EVENT_INITIAL_BARRELS_FLAME, 4000);
_events.ScheduleEvent(EVENT_FINAL_BARRELS_FLAME, 12000);
_events.ScheduleEvent(EVENT_SUMMON_LIEUTENANT, 18000);
_events.ScheduleEvent(EVENT_INITIAL_BARRELS_FLAME, 4s);
_events.ScheduleEvent(EVENT_FINAL_BARRELS_FLAME, 12s);
_events.ScheduleEvent(EVENT_SUMMON_LIEUTENANT, 18s);
}
break;
}

View File

@@ -258,8 +258,8 @@ public:
switch (param)
{
case ENCOUNTER_PROGRESS_BARRELS:
events.ScheduleEvent(EVENT_OPEN_DOORS, 0);
events.ScheduleEvent(EVENT_START_WP, 3000);
events.ScheduleEvent(EVENT_OPEN_DOORS, 0ms);
events.ScheduleEvent(EVENT_START_WP, 3s);
break;
case ENCOUNTER_PROGRESS_THRALL_ARMORED:
case ENCOUNTER_PROGRESS_AMBUSHES_1:
@@ -268,27 +268,27 @@ public:
SetEscortPaused(false);
break;
case ENCOUNTER_PROGRESS_TARETHA_MEET:
events.ScheduleEvent(EVENT_SUMMON_CHRONO, 0);
events.ScheduleEvent(EVENT_THRALL_TALK_2, 6000);
events.ScheduleEvent(EVENT_TARETHA_FALL, 11000);
events.ScheduleEvent(EVENT_THRALL_TALK_3, 15000);
events.ScheduleEvent(EVENT_THRALL_MOVE_DOWN, 17000);
events.ScheduleEvent(EVENT_SUMMON_CHRONO, 0ms);
events.ScheduleEvent(EVENT_THRALL_TALK_2, 6s);
events.ScheduleEvent(EVENT_TARETHA_FALL, 11s);
events.ScheduleEvent(EVENT_THRALL_TALK_3, 15s);
events.ScheduleEvent(EVENT_THRALL_MOVE_DOWN, 17s);
break;
case NPC_TARETHA:
events.ScheduleEvent(EVENT_THRALL_FACE_TARETHA, 0);
events.ScheduleEvent(EVENT_THRALL_TALK_4, 4000);
events.ScheduleEvent(EVENT_TARETHA_TALK_1, 13000);
events.ScheduleEvent(EVENT_THRALL_TALK_5, 17000);
events.ScheduleEvent(EVENT_SUMMON_EROZION, 17500);
events.ScheduleEvent(EVENT_EROZION_TALK_1, 18000);
events.ScheduleEvent(EVENT_EROZION_ACTION_1, 24000);
events.ScheduleEvent(EVENT_EROZION_TALK_2, 29000);
events.ScheduleEvent(EVENT_EROZION_TALK_3, 40000);
events.ScheduleEvent(EVENT_EROZION_ACTION_2, 46000);
events.ScheduleEvent(EVENT_THRALL_TALK_6, 48000);
events.ScheduleEvent(EVENT_THRALL_RUN_AWAY, 51000);
events.ScheduleEvent(EVENT_TARETHA_TALK_2, 53000);
events.ScheduleEvent(EVENT_EROZION_FLAGS, 56000);
events.ScheduleEvent(EVENT_THRALL_FACE_TARETHA, 0ms);
events.ScheduleEvent(EVENT_THRALL_TALK_4, 4s);
events.ScheduleEvent(EVENT_TARETHA_TALK_1, 13s);
events.ScheduleEvent(EVENT_THRALL_TALK_5, 17s);
events.ScheduleEvent(EVENT_SUMMON_EROZION, 17500ms);
events.ScheduleEvent(EVENT_EROZION_TALK_1, 18s);
events.ScheduleEvent(EVENT_EROZION_ACTION_1, 24s);
events.ScheduleEvent(EVENT_EROZION_TALK_2, 29s);
events.ScheduleEvent(EVENT_EROZION_TALK_3, 40s);
events.ScheduleEvent(EVENT_EROZION_ACTION_2, 46s);
events.ScheduleEvent(EVENT_THRALL_TALK_6, 48s);
events.ScheduleEvent(EVENT_THRALL_RUN_AWAY, 51s);
events.ScheduleEvent(EVENT_TARETHA_TALK_2, 53s);
events.ScheduleEvent(EVENT_EROZION_FLAGS, 56s);
break;
}
}
@@ -311,23 +311,23 @@ public:
Talk(SAY_START_EVENT_PART1);
break;
case 8:
events.ScheduleEvent(EVENT_SET_FACING, 500);
events.ScheduleEvent(EVENT_ARMORER_SAY, 700);
events.ScheduleEvent(EVENT_THRALL_EMOTE, 1300);
events.ScheduleEvent(EVENT_SET_FACING, 500ms);
events.ScheduleEvent(EVENT_ARMORER_SAY, 700ms);
events.ScheduleEvent(EVENT_THRALL_EMOTE, 1300ms);
break;
case 9:
SetRun(false);
events.ScheduleEvent(EVENT_KILL_ARMORER, 500);
events.ScheduleEvent(EVENT_TALK_KILL_ARMORER, 3000);
events.ScheduleEvent(EVENT_KILL_ARMORER, 500ms);
events.ScheduleEvent(EVENT_TALK_KILL_ARMORER, 3s);
break;
case 10:
SetRun(true);
events.ScheduleEvent(EVENT_DRESSING_KNEEL, 500);
events.ScheduleEvent(EVENT_DRESSING_ARMOR, 3000);
events.ScheduleEvent(EVENT_DRESSING_STAND, 4000);
events.ScheduleEvent(EVENT_DRESSING_AXE, 7000);
events.ScheduleEvent(EVENT_DRESSING_SHIELD, 9000);
events.ScheduleEvent(EVENT_DRESSING_TALK, 12000);
events.ScheduleEvent(EVENT_DRESSING_KNEEL, 500ms);
events.ScheduleEvent(EVENT_DRESSING_ARMOR, 3s);
events.ScheduleEvent(EVENT_DRESSING_STAND, 4s);
events.ScheduleEvent(EVENT_DRESSING_AXE, 7s);
events.ScheduleEvent(EVENT_DRESSING_SHIELD, 9s);
events.ScheduleEvent(EVENT_DRESSING_TALK, 12s);
break;
case 18:
if (Creature* warden = me->SummonCreature(NPC_DURNHOLDE_WARDEN, 2149.4634f, 104.97559f, 73.632385f, 1.9065f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30 * IN_MILLISECONDS))
@@ -362,8 +362,8 @@ public:
Talk(SAY_SKARLOC_MEET);
break;
case 30:
events.ScheduleEvent(EVENT_ENTER_MOUNT, 3000);
events.ScheduleEvent(EVENT_TALK_START_RIDE, 7000);
events.ScheduleEvent(EVENT_ENTER_MOUNT, 3s);
events.ScheduleEvent(EVENT_TALK_START_RIDE, 7s);
break;
case 59:
instance->SetData(DATA_ESCORT_PROGRESS, ENCOUNTER_PROGRESS_TARREN_MILL);
@@ -394,20 +394,20 @@ public:
SetRun(false);
break;
case 67:
events.ScheduleEvent(EVENT_LOOK_1, 1200);
events.ScheduleEvent(EVENT_MOVE_AROUND, 3500);
events.ScheduleEvent(EVENT_LOOK_2, 5000);
events.ScheduleEvent(EVENT_SUMMON_GUARDS, 5100);
events.ScheduleEvent(EVENT_LOOK_3, 7000);
events.ScheduleEvent(EVENT_SUMMON_TALK1, 12000);
events.ScheduleEvent(EVENT_LOOK_4, 17000);
events.ScheduleEvent(EVENT_SUMMON_TALK2, 19000);
events.ScheduleEvent(EVENT_GUARDS_MOVING, 21000);
events.ScheduleEvent(EVENT_LOOK_1, 1200ms);
events.ScheduleEvent(EVENT_MOVE_AROUND, 3500ms);
events.ScheduleEvent(EVENT_LOOK_2, 5s);
events.ScheduleEvent(EVENT_SUMMON_GUARDS, 5100ms);
events.ScheduleEvent(EVENT_LOOK_3, 7s);
events.ScheduleEvent(EVENT_SUMMON_TALK1, 12s);
events.ScheduleEvent(EVENT_LOOK_4, 17s);
events.ScheduleEvent(EVENT_SUMMON_TALK2, 19s);
events.ScheduleEvent(EVENT_GUARDS_MOVING, 21s);
break;
case 82:
events.ScheduleEvent(EVENT_LOOK_5, 500);
events.ScheduleEvent(EVENT_SUMMON_GUARDS_2, 1000);
events.ScheduleEvent(EVENT_SUMMON_TALK3, 1500);
events.ScheduleEvent(EVENT_LOOK_5, 500ms);
events.ScheduleEvent(EVENT_SUMMON_GUARDS_2, 1s);
events.ScheduleEvent(EVENT_SUMMON_TALK3, 1500ms);
break;
case 91:
me->SummonCreature(NPC_TM_PROTECTOR, 2652.71f, 660.31f, 61.93f, 1.67f, TEMPSUMMON_MANUAL_DESPAWN);
@@ -430,14 +430,14 @@ public:
Taretha->HandleEmoteCommand(EMOTE_ONESHOT_CHEER);
Taretha->AI()->Talk(SAY_TARETHA_ESCAPED);
}
events.ScheduleEvent(EVENT_THRALL_TALK, 4000);
events.ScheduleEvent(EVENT_THRALL_TALK, 4s);
break;
case 101:
SetEscortPaused(true);
events.ScheduleEvent(EVENT_EPOCH_INTRO, 500);
events.ScheduleEvent(EVENT_SUMMON_INFINITES, 1500);
events.ScheduleEvent(EVENT_TRANSFORM, 8000);
events.ScheduleEvent(EVENT_START_WAVE_1, 25000);
events.ScheduleEvent(EVENT_EPOCH_INTRO, 500ms);
events.ScheduleEvent(EVENT_SUMMON_INFINITES, 1500ms);
events.ScheduleEvent(EVENT_TRANSFORM, 8s);
events.ScheduleEvent(EVENT_START_WAVE_1, 25s);
break;
case 103:
instance->SetData(DATA_ESCORT_PROGRESS, ENCOUNTER_PROGRESS_FINISHED);
@@ -473,9 +473,9 @@ public:
void JustEngagedWith(Unit*) override
{
combatEvents.Reset();
combatEvents.ScheduleEvent(EVENT_CHECK_HEALTH, 500);
combatEvents.ScheduleEvent(EVENT_SPELL_SHIELD_BLOCK, 8000);
combatEvents.ScheduleEvent(EVENT_SPELL_STRIKE, 2000);
combatEvents.ScheduleEvent(EVENT_CHECK_HEALTH, 500ms);
combatEvents.ScheduleEvent(EVENT_SPELL_SHIELD_BLOCK, 8s);
combatEvents.ScheduleEvent(EVENT_SPELL_STRIKE, 2s);
if (roll_chance_i(50))
Talk(SAY_RANDOM_AGGRO);
@@ -766,7 +766,7 @@ public:
summons.DoAction(ACTION_SET_IMMUNE_FLAG);
break;
case EVENT_START_WAVE_1:
events.ScheduleEvent(EVENT_CHECK_WAVE_1, 500);
events.ScheduleEvent(EVENT_CHECK_WAVE_1, 500ms);
summons.DoAction(ACTION_REMOVE_IMMUNE_FLAG);
summons.DoAction(ACTION_START_COMBAT);
break;
@@ -777,10 +777,10 @@ public:
me->SummonCreature(NPC_INFINITE_SLAYER, 2599.57f, 677.0f, 55.975f, 0.05f, TEMPSUMMON_MANUAL_DESPAWN);
me->SummonCreature(NPC_INFINITE_DEFILER, 2592.57f, 680.0f, 55.975f, 0.05f, TEMPSUMMON_MANUAL_DESPAWN);
summons.DoAction(ACTION_START_COMBAT);
events.ScheduleEvent(EVENT_CHECK_WAVE_2, 500);
events.ScheduleEvent(EVENT_CHECK_WAVE_2, 500ms);
break;
}
events.ScheduleEvent(EVENT_CHECK_WAVE_1, 500);
events.ScheduleEvent(EVENT_CHECK_WAVE_1, 500ms);
break;
case EVENT_CHECK_WAVE_2:
if (summons.size() == 1)
@@ -790,20 +790,20 @@ public:
me->SummonCreature(NPC_INFINITE_SABOTEUR, 2638.62f, 705.43f, 55.965f, 4.46f, TEMPSUMMON_MANUAL_DESPAWN);
me->SummonCreature(NPC_INFINITE_DEFILER, 2642.62f, 705.43f, 55.965f, 4.46f, TEMPSUMMON_MANUAL_DESPAWN);
summons.DoAction(ACTION_START_COMBAT);
events.ScheduleEvent(EVENT_CHECK_WAVE_3, 500);
events.ScheduleEvent(EVENT_CHECK_WAVE_3, 500ms);
break;
}
events.ScheduleEvent(EVENT_CHECK_WAVE_2, 500);
events.ScheduleEvent(EVENT_CHECK_WAVE_2, 500ms);
break;
case EVENT_CHECK_WAVE_3:
if (summons.size() == 1)
{
me->SetHomePosition(2634.79f, 672.964f, 54.8577f, 1.33f);
me->GetMotionMaster()->MoveTargetedHome();
events.ScheduleEvent(EVENT_CALL_EPOCH, 8000);
events.ScheduleEvent(EVENT_CALL_EPOCH, 8s);
break;
}
events.ScheduleEvent(EVENT_CHECK_WAVE_3, 500);
events.ScheduleEvent(EVENT_CHECK_WAVE_3, 500ms);
break;
case EVENT_CALL_EPOCH:
if (Creature* epoch = summons.GetCreatureWithEntry(NPC_EPOCH_HUNTER))
@@ -905,15 +905,15 @@ public:
Talk(SAY_RANDOM_LOW_HP);
break;
}
events.ScheduleEvent(EVENT_CHECK_HEALTH, 500);
events.ScheduleEvent(EVENT_CHECK_HEALTH, 500ms);
break;
case EVENT_SPELL_STRIKE:
me->CastSpell(me->GetVictim(), SPELL_STRIKE, false);
events.ScheduleEvent(EVENT_SPELL_STRIKE, 6000);
events.ScheduleEvent(EVENT_SPELL_STRIKE, 6s);
break;
case EVENT_SPELL_SHIELD_BLOCK:
me->CastSpell(me, SPELL_SHIELD_BLOCK, false);
events.ScheduleEvent(EVENT_SPELL_SHIELD_BLOCK, 6000);
events.ScheduleEvent(EVENT_SPELL_SHIELD_BLOCK, 6s);
break;
}

View File

@@ -137,13 +137,13 @@ struct npc_medivh_bm : public ScriptedAI
me->CastSpell(me, SPELL_MEDIVH_CHANNEL, false);
events.ScheduleEvent(EVENT_CHECK_HEALTH_75, 500);
events.ScheduleEvent(EVENT_CHECK_HEALTH_50, 500);
events.ScheduleEvent(EVENT_CHECK_HEALTH_25, 500);
events.ScheduleEvent(EVENT_SUMMON_CRYSTAL, 2000);
events.ScheduleEvent(EVENT_SUMMON_CRYSTAL, 4000);
events.ScheduleEvent(EVENT_SUMMON_CRYSTAL, 6000);
events.ScheduleEvent(EVENT_SUMMON_FLYING_CRYSTAL, 8000);
events.ScheduleEvent(EVENT_CHECK_HEALTH_75, 500ms);
events.ScheduleEvent(EVENT_CHECK_HEALTH_50, 500ms);
events.ScheduleEvent(EVENT_CHECK_HEALTH_25, 500ms);
events.ScheduleEvent(EVENT_SUMMON_CRYSTAL, 2s);
events.ScheduleEvent(EVENT_SUMMON_CRYSTAL, 4s);
events.ScheduleEvent(EVENT_SUMMON_CRYSTAL, 6s);
events.ScheduleEvent(EVENT_SUMMON_FLYING_CRYSTAL, 8s);
}
}
@@ -154,7 +154,7 @@ struct npc_medivh_bm : public ScriptedAI
if (param == ACTION_OUTRO)
{
events.Reset();
events.ScheduleEvent(EVENT_OUTRO_1, 4000);
events.ScheduleEvent(EVENT_OUTRO_1, 4s);
me->InterruptNonMeleeSpells(true);
me->SummonGameObject(GO_DARK_PORTAL, -2086.0f, 7125.6215f, 30.5f, 6.148f, 0.0f, 0.0f, 0.0f, 0.0f, 0);
@@ -180,43 +180,43 @@ struct npc_medivh_bm : public ScriptedAI
Talk(eventId + 1);
break;
}
events.ScheduleEvent(eventId, 500);
events.ScheduleEvent(eventId, 500ms);
break;
case EVENT_SUMMON_CRYSTAL:
me->SummonCreature(NPC_DP_EMITTER_STALKER, me->GetPositionX() + 8.0f, me->GetPositionY(), me->GetPositionZ());
break;
case EVENT_SUMMON_FLYING_CRYSTAL:
me->CastSpell(me, SPELL_PORTAL_CRYSTALS, true);
events.ScheduleEvent(EVENT_SUMMON_FLYING_CRYSTAL, 1000);
events.ScheduleEvent(EVENT_SUMMON_FLYING_CRYSTAL, 1s);
break;
case EVENT_OUTRO_1:
me->SetFacingTo(6.21f);
Talk(SAY_MEDIVH_WIN);
events.ScheduleEvent(EVENT_OUTRO_2, 17000);
events.ScheduleEvent(EVENT_OUTRO_2, 17s);
break;
case EVENT_OUTRO_2:
me->SetFacingTo(3.07f);
events.ScheduleEvent(EVENT_OUTRO_3, 2000);
events.ScheduleEvent(EVENT_OUTRO_3, 2s);
break;
case EVENT_OUTRO_3:
SummonOrcs(-2046.158f, -3.0f, 37000, 30000, true);
events.ScheduleEvent(EVENT_OUTRO_4, 2000);
events.ScheduleEvent(EVENT_OUTRO_4, 2s);
break;
case EVENT_OUTRO_4:
SummonOrcs(-2055.97f, -2.0f, 33000, 28000, false);
events.ScheduleEvent(EVENT_OUTRO_5, 2000);
events.ScheduleEvent(EVENT_OUTRO_5, 2s);
break;
case EVENT_OUTRO_5:
SummonOrcs(-2064.0f, -1.5f, 29000, 26000, false);
events.ScheduleEvent(EVENT_OUTRO_6, 2000);
events.ScheduleEvent(EVENT_OUTRO_6, 2s);
break;
case EVENT_OUTRO_6:
SummonOrcs(-2074.35f, -0.1f, 26000, 24000, false);
events.ScheduleEvent(EVENT_OUTRO_7, 7000);
events.ScheduleEvent(EVENT_OUTRO_7, 7s);
break;
case EVENT_OUTRO_7:
Talk(SAY_MEDIVH_ORCS_ENTER);
events.ScheduleEvent(EVENT_OUTRO_8, 7000);
events.ScheduleEvent(EVENT_OUTRO_8, 7s);
break;
case EVENT_OUTRO_8:
if (Creature* cr = me->FindNearestCreature(NPC_SHADOW_COUNCIL_ENFORCER, 20.0f))
@@ -368,7 +368,7 @@ struct npc_time_rift : public NullCreatureAI
if (!_instance->GetCreature(DATA_AEONUS))
{
DoSelectSummon();
events.ScheduleEvent(EVENT_SUMMON_AT_RIFT, 15000);
events.ScheduleEvent(EVENT_SUMMON_AT_RIFT, 15s);
}
break;
case EVENT_SUMMON_BOSS:

View File

@@ -138,16 +138,16 @@ public:
switch (ph)
{
case PHASE_GROUNDED:
events.ScheduleEvent(EVENT_SPELL_WINGBUFFET, urand(10000, 20000));
events.ScheduleEvent(EVENT_SPELL_FLAMEBREATH, urand(10000, 20000));
events.ScheduleEvent(EVENT_SPELL_TAILSWEEP, urand(15000, 20000));
events.ScheduleEvent(EVENT_SPELL_CLEAVE, urand(2000, 5000));
events.ScheduleEvent(EVENT_SPELL_WINGBUFFET, 10s, 20s);
events.ScheduleEvent(EVENT_SPELL_FLAMEBREATH, 10s, 20s);
events.ScheduleEvent(EVENT_SPELL_TAILSWEEP, 15s, 20s);
events.ScheduleEvent(EVENT_SPELL_CLEAVE, 2s, 5s);
break;
case PHASE_AIRPHASE:
events.ScheduleEvent(EVENT_START_PHASE_2, 0);
events.ScheduleEvent(EVENT_START_PHASE_2, 0ms);
break;
case PHASE_LANDED:
events.ScheduleEvent(EVENT_START_PHASE_3, 5000);
events.ScheduleEvent(EVENT_START_PHASE_3, 5s);
break;
}
}
@@ -237,7 +237,7 @@ public:
me->SetFacingTo(OnyxiaMoveData[id].o);
me->SetSpeed(MOVE_RUN, 1.6f, false);
CurrentWP = id;
events.ScheduleEvent(EVENT_SPELL_FIREBALL_FIRST, 1000);
events.ScheduleEvent(EVENT_SPELL_FIREBALL_FIRST, 1s);
}
}
else
@@ -246,21 +246,21 @@ public:
{
case 10:
me->SetFacingTo(OnyxiaMoveData[0].o);
events.ScheduleEvent(EVENT_LIFTOFF, 0);
events.ScheduleEvent(EVENT_LIFTOFF, 0ms);
break;
case 11:
me->SetFacingTo(OnyxiaMoveData[1].o);
events.ScheduleEvent(EVENT_FLY_S_TO_N, 0);
events.ScheduleEvent(EVENT_FLY_S_TO_N, 0ms);
break;
case 12:
me->SetFacingTo(OnyxiaMoveData[1].o);
events.ScheduleEvent(EVENT_LAND, 0);
events.ScheduleEvent(EVENT_LAND, 0ms);
break;
case 13:
me->SetCanFly(false);
me->SetDisableGravity(false);
me->SetSpeed(MOVE_RUN, me->GetCreatureTemplate()->speed_run, false);
events.ScheduleEvent(EVENT_PHASE_3_ATTACK, 0);
events.ScheduleEvent(EVENT_PHASE_3_ATTACK, 0ms);
break;
}
}
@@ -326,25 +326,25 @@ public:
case EVENT_SPELL_WINGBUFFET:
{
DoCastAOE(SPELL_WINGBUFFET);
events.RepeatEvent(urand(15000, 30000));
events.Repeat(15s, 30s);
break;
}
case EVENT_SPELL_FLAMEBREATH:
{
DoCastAOE(SPELL_FLAMEBREATH);
events.RepeatEvent(urand(10000, 20000));
events.Repeat(10s, 20s);
break;
}
case EVENT_SPELL_TAILSWEEP:
{
DoCastAOE(SPELL_TAILSWEEP);
events.RepeatEvent(urand(15000, 20000));
events.Repeat(15s, 20s);
break;
}
case EVENT_SPELL_CLEAVE:
{
DoCastVictim(SPELL_CLEAVE);
events.RepeatEvent(urand(2000, 5000));
events.Repeat(2s, 5s);
break;
}
case EVENT_START_PHASE_2:
@@ -369,7 +369,7 @@ public:
me->GetMotionMaster()->MoveTakeoff(11, OnyxiaMoveData[1].x + 1.0f, OnyxiaMoveData[1].y, OnyxiaMoveData[1].z, 12.0f);
bManyWhelpsAvailable = true;
events.RescheduleEvent(EVENT_END_MANY_WHELPS_TIME, 10000);
events.RescheduleEvent(EVENT_END_MANY_WHELPS_TIME, 10s);
break;
}
case EVENT_END_MANY_WHELPS_TIME:
@@ -381,20 +381,20 @@ public:
me->GetMotionMaster()->MovePoint(5, OnyxiaMoveData[5].x, OnyxiaMoveData[5].y, OnyxiaMoveData[5].z);
whelpSpam = true;
events.ScheduleEvent(EVENT_WHELP_SPAM, 90000);
events.ScheduleEvent(EVENT_SUMMON_LAIR_GUARD, 30000);
events.ScheduleEvent(EVENT_WHELP_SPAM, 90s);
events.ScheduleEvent(EVENT_SUMMON_LAIR_GUARD, 30s);
break;
}
case EVENT_SUMMON_LAIR_GUARD:
{
me->CastSpell(-101.654f, -214.491f, -80.70f, SPELL_SUMMON_LAIR_GUARD, true);
events.RepeatEvent(30000);
events.Repeat(30s);
break;
}
case EVENT_WHELP_SPAM:
{
whelpSpam = true;
events.RepeatEvent(90000);
events.Repeat(90s);
break;
}
case EVENT_LAND:
@@ -413,7 +413,7 @@ public:
DoCast(v, SPELL_FIREBALL);
}
events.ScheduleEvent(EVENT_SPELL_FIREBALL_SECOND, 4000);
events.ScheduleEvent(EVENT_SPELL_FIREBALL_SECOND, 4s);
break;
}
case EVENT_SPELL_FIREBALL_SECOND:
@@ -427,15 +427,15 @@ public:
uint8 rand = urand(0, 99);
if (rand < 33)
{
events.ScheduleEvent(EVENT_PHASE_2_STEP_CW, 4000);
events.ScheduleEvent(EVENT_PHASE_2_STEP_CW, 4s);
}
else if (rand < 66)
{
events.ScheduleEvent(EVENT_PHASE_2_STEP_ACW, 4000);
events.ScheduleEvent(EVENT_PHASE_2_STEP_ACW, 4s);
}
else
{
events.ScheduleEvent(EVENT_PHASE_2_STEP_ACROSS, 4000);
events.ScheduleEvent(EVENT_PHASE_2_STEP_ACROSS, 4s);
}
break;
}
@@ -464,7 +464,7 @@ public:
Talk(EMOTE_BREATH);
me->SetFacingTo(OnyxiaMoveData[CurrentWP].o);
DoCastAOE(OnyxiaMoveData[CurrentWP].spellId);
events.ScheduleEvent(EVENT_SPELL_BREATH, 8250);
events.ScheduleEvent(EVENT_SPELL_BREATH, 8250ms);
break;
}
case EVENT_SPELL_BREATH:
@@ -491,20 +491,20 @@ public:
DoCastAOE(SPELL_BELLOWINGROAR);
events.ScheduleEvent(EVENT_ERUPTION, 0);
events.ScheduleEvent(EVENT_SPELL_WINGBUFFET, urand(10000, 20000));
events.ScheduleEvent(EVENT_SPELL_FLAMEBREATH, urand(10000, 20000));
events.ScheduleEvent(EVENT_SPELL_TAILSWEEP, urand(15000, 20000));
events.ScheduleEvent(EVENT_SPELL_CLEAVE, urand(2000, 5000));
events.ScheduleEvent(EVENT_SPELL_BELLOWINGROAR, 15000);
events.ScheduleEvent(EVENT_SUMMON_WHELP, 10000);
events.ScheduleEvent(EVENT_ERUPTION, 0ms);
events.ScheduleEvent(EVENT_SPELL_WINGBUFFET, 10s, 20s);
events.ScheduleEvent(EVENT_SPELL_FLAMEBREATH, 10s, 20s);
events.ScheduleEvent(EVENT_SPELL_TAILSWEEP, 15s, 20s);
events.ScheduleEvent(EVENT_SPELL_CLEAVE, 2s, 5s);
events.ScheduleEvent(EVENT_SPELL_BELLOWINGROAR, 15s);
events.ScheduleEvent(EVENT_SUMMON_WHELP, 10s);
break;
}
case EVENT_SPELL_BELLOWINGROAR:
{
DoCastAOE(SPELL_BELLOWINGROAR);
events.RepeatEvent(22000);
events.ScheduleEvent(EVENT_ERUPTION, 0);
events.Repeat(22s);
events.ScheduleEvent(EVENT_ERUPTION, 0ms);
break;
}
case EVENT_ERUPTION:
@@ -521,7 +521,7 @@ public:
float dist = rand_norm() * 4.0f;
me->CastSpell(-33.18f + cos(angle) * dist, -258.80f + std::sin(angle) * dist, -89.0f, 17646, true);
me->CastSpell(-32.535f + cos(angle) * dist, -170.190f + std::sin(angle) * dist, -89.0f, 17646, true);
events.RepeatEvent(30000);
events.Repeat(30s);
break;
}
}
@@ -555,8 +555,8 @@ public:
void JustEngagedWith(Unit* /*who*/) override
{
events.Reset();
events.ScheduleEvent(EVENT_OLG_SPELL_BLASTNOVA, 15000);
events.ScheduleEvent(EVENT_OLG_SPELL_IGNITEWEAPON, 10000);
events.ScheduleEvent(EVENT_OLG_SPELL_BLASTNOVA, 15s);
events.ScheduleEvent(EVENT_OLG_SPELL_IGNITEWEAPON, 10s);
}
void UpdateAI(uint32 diff) override
@@ -577,17 +577,17 @@ public:
{
case EVENT_OLG_SPELL_BLASTNOVA:
DoCastAOE(SPELL_OLG_BLASTNOVA);
events.RepeatEvent(15000);
events.Repeat(15s);
break;
case EVENT_OLG_SPELL_IGNITEWEAPON:
if (me->HasUnitFlag(UNIT_FLAG_DISARMED))
{
events.RepeatEvent(5000);
events.Repeat(5s);
}
else
{
DoCastSelf(SPELL_OLG_IGNITEWEAPON);
events.RepeatEvent(urand(18000, 21000));
events.Repeat(18s, 21s);
}
break;
}

View File

@@ -175,7 +175,7 @@ struct boss_viscidus : public BossAI
{
DoCastSelf(SPELL_EXPLODE_TRIGGER, true);
})
.Schedule(3000ms, [this](TaskContext /*context*/)
.Schedule(3s, [this](TaskContext /*context*/)
{
DoCastSelf(SPELL_INVIS_SELF, true);
me->SetAuraStack(SPELL_VISCIDUS_SHRINKS, me, 20);

View File

@@ -393,10 +393,10 @@ struct npc_obsidian_nullifier : public ScriptedAI
context.Repeat(6s);
})
.Schedule(6000ms, 8400ms, [this](TaskContext context)
.Schedule(6s, 8400ms, [this](TaskContext context)
{
DoCastVictim(SPELL_CLEAVE, true);
context.Repeat(6000ms, 8400ms);
context.Repeat(6s, 8400ms);
});
}
@@ -447,7 +447,7 @@ struct npc_ahnqiraji_critter : public ScriptedAI
}
}
context.Repeat(3500ms, 4000ms);
context.Repeat(3500ms, 4s);
});
}

View File

@@ -42,9 +42,6 @@ enum Caravan
MAX_CARAVAN_SUMMONS = 3,
TIME_SHOP_STOP = 10 * MINUTE * IN_MILLISECONDS,
TIME_HIRE_STOP = 4 * MINUTE * IN_MILLISECONDS,
// Ambush
NPC_KOLKAR_WAYLAYER = 12976,
NPC_KOLKAR_AMBUSHER = 12977,
@@ -53,6 +50,9 @@ enum Caravan
NPC_NETHER = 4684,
};
constexpr Milliseconds TIME_SHOP_STOP = 600s;
constexpr Milliseconds TIME_HIRE_STOP = 240s;
class npc_cork_gizelton : public CreatureScript
{
public:
@@ -264,14 +264,14 @@ public:
{
// Finished north path
case 52:
me->SummonCreature(NPC_VENDOR_TRON, -694.61f, 1460.7f, 90.794f, 2.4f, TEMPSUMMON_TIMED_DESPAWN, TIME_SHOP_STOP + 15 * IN_MILLISECONDS);
me->SummonCreature(NPC_VENDOR_TRON, -694.61f, 1460.7f, 90.794f, 2.4f, TEMPSUMMON_TIMED_DESPAWN, 600000 + 15 * IN_MILLISECONDS);
SetEscortPaused(true);
events.ScheduleEvent(EVENT_RESUME_PATH, TIME_SHOP_STOP);
CheckCaravan();
break;
// Finished south path
case 193:
me->SummonCreature(NPC_SUPER_SELLER, -1905.5f, 2463.3f, 61.52f, 5.87f, TEMPSUMMON_TIMED_DESPAWN, TIME_SHOP_STOP + 15 * IN_MILLISECONDS);
me->SummonCreature(NPC_SUPER_SELLER, -1905.5f, 2463.3f, 61.52f, 5.87f, TEMPSUMMON_TIMED_DESPAWN, 600000 + 15 * IN_MILLISECONDS);
SetEscortPaused(true);
events.ScheduleEvent(EVENT_RESUME_PATH, TIME_SHOP_STOP);
CheckCaravan();

View File

@@ -1145,7 +1145,7 @@ public:
}
}
me->DespawnOrUnsummon(5000ms, respawnTimer); // Despawn in 5 Seconds for respawnTimer value
me->DespawnOrUnsummon(5s, respawnTimer); // Despawn in 5 Seconds for respawnTimer value
me->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
CloseGossipMenuFor(player);
return false;