mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-28 16:16:27 +00:00
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:
@@ -297,7 +297,7 @@ struct boss_archimonde : public BossAI
|
||||
}
|
||||
}
|
||||
}, 5s);
|
||||
ScheduleTimedEvent(5000ms, [&]
|
||||
ScheduleTimedEvent(5s, [&]
|
||||
{
|
||||
bool noPlayersInRange = true;
|
||||
if (Map* map = me->GetMap())
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user