mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-21 17:54:48 +01:00
Core/Map: Save weather, light and music overrides in map to send them to players logging in
This commit is contained in:
@@ -560,7 +560,7 @@ class boss_the_lich_king : public CreatureScript
|
||||
me->VisitNearbyGridObject(333.0f, worker);
|
||||
|
||||
// Reset any light override
|
||||
SendLightOverride(0, 5000);
|
||||
me->GetMap()->SetZoneOverrideLight(AREA_THE_FROZEN_THRONE, 0, 5000);
|
||||
}
|
||||
|
||||
bool CanAIAttack(Unit const* target) const OVERRIDE
|
||||
@@ -593,7 +593,7 @@ class boss_the_lich_king : public CreatureScript
|
||||
case ACTION_START_ENCOUNTER:
|
||||
instance->SetBossState(DATA_THE_LICH_KING, IN_PROGRESS);
|
||||
Talk(SAY_LK_INTRO_1);
|
||||
SendMusicToPlayers(MUSIC_FROZEN_THRONE);
|
||||
me->GetMap()->SetZoneMusic(AREA_THE_FROZEN_THRONE, MUSIC_FROZEN_THRONE);
|
||||
// schedule talks
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
events.ScheduleEvent(EVENT_INTRO_MOVE_1, 4000);
|
||||
@@ -602,10 +602,10 @@ class boss_the_lich_king : public CreatureScript
|
||||
events.ScheduleEvent(EVENT_START_ATTACK, 5000);
|
||||
break;
|
||||
case ACTION_PLAY_MUSIC:
|
||||
SendMusicToPlayers(MUSIC_FINAL);
|
||||
me->GetMap()->SetZoneMusic(AREA_THE_FROZEN_THRONE, MUSIC_FINAL);
|
||||
break;
|
||||
case ACTION_RESTORE_LIGHT:
|
||||
SendLightOverride(0, 5000);
|
||||
me->GetMap()->SetZoneOverrideLight(AREA_THE_FROZEN_THRONE, 0, 5000);
|
||||
break;
|
||||
case ACTION_BREAK_FROSTMOURNE:
|
||||
me->CastSpell((Unit*)NULL, SPELL_SUMMON_BROKEN_FROSTMOURNE, TRIGGERED_IGNORE_CAST_IN_PROGRESS);
|
||||
@@ -687,7 +687,7 @@ class boss_the_lich_king : public CreatureScript
|
||||
events.Reset();
|
||||
events.SetPhase(PHASE_OUTRO);
|
||||
summons.DespawnAll();
|
||||
SendMusicToPlayers(MUSIC_FURY_OF_FROSTMOURNE);
|
||||
me->GetMap()->SetZoneMusic(AREA_THE_FROZEN_THRONE, MUSIC_FURY_OF_FROSTMOURNE);
|
||||
me->InterruptNonMeleeSpells(true);
|
||||
me->CastSpell((Unit*)NULL, SPELL_FURY_OF_FROSTMOURNE, TRIGGERED_NONE);
|
||||
me->SetWalk(true);
|
||||
@@ -739,8 +739,8 @@ class boss_the_lich_king : public CreatureScript
|
||||
{
|
||||
summon->CastSpell((Unit*)NULL, SPELL_BROKEN_FROSTMOURNE, true);
|
||||
|
||||
SendLightOverride(LIGHT_SOULSTORM, 10000);
|
||||
SendWeather(WEATHER_STATE_BLACKSNOW);
|
||||
me->GetMap()->SetZoneOverrideLight(AREA_THE_FROZEN_THRONE, LIGHT_SOULSTORM, 10000);
|
||||
me->GetMap()->SetZoneWeather(AREA_THE_FROZEN_THRONE, WEATHER_STATE_BLACKSNOW, 0.5f);
|
||||
|
||||
events.ScheduleEvent(EVENT_OUTRO_SOUL_BARRAGE, 5000, 0, PHASE_OUTRO);
|
||||
return;
|
||||
@@ -792,8 +792,8 @@ class boss_the_lich_king : public CreatureScript
|
||||
{
|
||||
if (spell->Id == REMORSELESS_WINTER_1 || spell->Id == REMORSELESS_WINTER_2)
|
||||
{
|
||||
SendLightOverride(LIGHT_SNOWSTORM, 5000);
|
||||
SendWeather(WEATHER_STATE_LIGHT_SNOW);
|
||||
me->GetMap()->SetZoneOverrideLight(AREA_THE_FROZEN_THRONE, LIGHT_SNOWSTORM, 5000);
|
||||
me->GetMap()->SetZoneWeather(AREA_THE_FROZEN_THRONE, WEATHER_STATE_LIGHT_SNOW, 0.5f);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -819,7 +819,7 @@ class boss_the_lich_king : public CreatureScript
|
||||
case POINT_CENTER_1:
|
||||
me->SetFacingTo(0.0f);
|
||||
Talk(SAY_LK_REMORSELESS_WINTER);
|
||||
SendMusicToPlayers(MUSIC_SPECIAL);
|
||||
me->GetMap()->SetZoneMusic(AREA_THE_FROZEN_THRONE, MUSIC_SPECIAL);
|
||||
DoCast(me, SPELL_REMORSELESS_WINTER_1);
|
||||
events.DelayEvents(62500, EVENT_GROUP_BERSERK); // delay berserk timer, its not ticking during phase transitions
|
||||
events.ScheduleEvent(EVENT_QUAKE, 62500, 0, PHASE_TRANSITION);
|
||||
@@ -834,7 +834,7 @@ class boss_the_lich_king : public CreatureScript
|
||||
case POINT_CENTER_2:
|
||||
me->SetFacingTo(0.0f);
|
||||
Talk(SAY_LK_REMORSELESS_WINTER);
|
||||
SendMusicToPlayers(MUSIC_SPECIAL);
|
||||
me->GetMap()->SetZoneMusic(AREA_THE_FROZEN_THRONE, MUSIC_SPECIAL);
|
||||
DoCast(me, SPELL_REMORSELESS_WINTER_2);
|
||||
summons.DespawnEntry(NPC_VALKYR_SHADOWGUARD);
|
||||
events.DelayEvents(62500, EVENT_GROUP_BERSERK); // delay berserk timer, its not ticking during phase transitions
|
||||
@@ -920,7 +920,7 @@ class boss_the_lich_king : public CreatureScript
|
||||
break;
|
||||
case EVENT_SUMMON_SHAMBLING_HORROR:
|
||||
DoCast(me, SPELL_SUMMON_SHAMBLING_HORROR);
|
||||
SendMusicToPlayers(MUSIC_SPECIAL);
|
||||
me->GetMap()->SetZoneMusic(AREA_THE_FROZEN_THRONE, MUSIC_SPECIAL);
|
||||
events.ScheduleEvent(EVENT_SUMMON_SHAMBLING_HORROR, 60000, 0, PHASE_ONE);
|
||||
break;
|
||||
case EVENT_SUMMON_DRUDGE_GHOUL:
|
||||
@@ -980,18 +980,18 @@ class boss_the_lich_king : public CreatureScript
|
||||
events.SetPhase(PHASE_TWO);
|
||||
me->ClearUnitState(UNIT_STATE_CASTING); // clear state to ensure check in DoCastAOE passes
|
||||
DoCastAOE(SPELL_QUAKE);
|
||||
SendMusicToPlayers(MUSIC_SPECIAL);
|
||||
me->GetMap()->SetZoneMusic(AREA_THE_FROZEN_THRONE, MUSIC_SPECIAL);
|
||||
Talk(SAY_LK_QUAKE);
|
||||
break;
|
||||
case EVENT_QUAKE_2:
|
||||
events.SetPhase(PHASE_THREE);
|
||||
me->ClearUnitState(UNIT_STATE_CASTING); // clear state to ensure check in DoCastAOE passes
|
||||
DoCastAOE(SPELL_QUAKE);
|
||||
SendMusicToPlayers(MUSIC_SPECIAL);
|
||||
me->GetMap()->SetZoneMusic(AREA_THE_FROZEN_THRONE, MUSIC_SPECIAL);
|
||||
Talk(SAY_LK_QUAKE);
|
||||
break;
|
||||
case EVENT_SUMMON_VALKYR:
|
||||
SendMusicToPlayers(MUSIC_SPECIAL);
|
||||
me->GetMap()->SetZoneMusic(AREA_THE_FROZEN_THRONE, MUSIC_SPECIAL);
|
||||
Talk(SAY_LK_SUMMON_VALKYR);
|
||||
DoCastAOE(SUMMON_VALKYR);
|
||||
events.ScheduleEvent(EVENT_SUMMON_VALKYR, urand(45000, 50000), 0, PHASE_TWO);
|
||||
@@ -1002,7 +1002,7 @@ class boss_the_lich_king : public CreatureScript
|
||||
events.SetPhase(PHASE_THREE);
|
||||
break;
|
||||
case EVENT_VILE_SPIRITS:
|
||||
SendMusicToPlayers(MUSIC_SPECIAL);
|
||||
me->GetMap()->SetZoneMusic(AREA_THE_FROZEN_THRONE, MUSIC_SPECIAL);
|
||||
DoCastAOE(SPELL_VILE_SPIRITS);
|
||||
events.ScheduleEvent(EVENT_VILE_SPIRITS, urand(35000, 40000), EVENT_GROUP_VILE_SPIRITS, PHASE_THREE);
|
||||
break;
|
||||
@@ -1073,7 +1073,7 @@ class boss_the_lich_king : public CreatureScript
|
||||
case EVENT_OUTRO_RAISE_DEAD:
|
||||
DoCastAOE(SPELL_RAISE_DEAD);
|
||||
me->ClearUnitState(UNIT_STATE_CASTING);
|
||||
SendMusicToPlayers(MUSIC_FINAL);
|
||||
me->GetMap()->SetZoneMusic(AREA_THE_FROZEN_THRONE, MUSIC_FINAL);
|
||||
break;
|
||||
case EVENT_OUTRO_TALK_5:
|
||||
Talk(SAY_LK_OUTRO_5);
|
||||
@@ -1114,42 +1114,6 @@ class boss_the_lich_king : public CreatureScript
|
||||
}
|
||||
|
||||
private:
|
||||
void SendMusicToPlayers(uint32 musicId) const
|
||||
{
|
||||
WorldPacket data(SMSG_PLAY_MUSIC, 4);
|
||||
data << uint32(musicId);
|
||||
SendPacketToPlayers(&data);
|
||||
}
|
||||
|
||||
void SendLightOverride(uint32 overrideId, uint32 fadeInTime) const
|
||||
{
|
||||
WorldPacket data(SMSG_OVERRIDE_LIGHT, 12);
|
||||
data << uint32(2488); // Light.dbc entry (map default)
|
||||
data << uint32(overrideId); // Light.dbc entry (override)
|
||||
data << uint32(fadeInTime);
|
||||
SendPacketToPlayers(&data);
|
||||
}
|
||||
|
||||
void SendWeather(WeatherState weather) const
|
||||
{
|
||||
WorldPacket data(SMSG_WEATHER, 9);
|
||||
data << uint32(weather);
|
||||
data << float(0.5f);
|
||||
data << uint8(0);
|
||||
SendPacketToPlayers(&data);
|
||||
}
|
||||
|
||||
// Send packet to all players in The Frozen Throne
|
||||
void SendPacketToPlayers(WorldPacket const* data) const
|
||||
{
|
||||
Map::PlayerList const& players = me->GetMap()->GetPlayers();
|
||||
if (!players.isEmpty())
|
||||
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
|
||||
if (Player* player = itr->GetSource())
|
||||
if (player->GetAreaId() == AREA_THE_FROZEN_THRONE)
|
||||
player->GetSession()->SendPacket(data);
|
||||
}
|
||||
|
||||
uint32 _necroticPlagueStack;
|
||||
uint32 _vileSpiritExplosions;
|
||||
};
|
||||
|
||||
@@ -68,7 +68,7 @@ enum TeleporterSpells
|
||||
DEATHBRINGER_S_RISE_TELEPORT = 70858,
|
||||
UPPER_SPIRE_TELEPORT = 70859,
|
||||
FROZEN_THRONE_TELEPORT = 70860,
|
||||
SINDRAGOSA_S_LAIR_TELEPORT = 70861,
|
||||
SINDRAGOSA_S_LAIR_TELEPORT = 70861
|
||||
};
|
||||
|
||||
enum DataTypes
|
||||
@@ -285,7 +285,7 @@ enum CreaturesIds
|
||||
NPC_FROSTMOURNE_TRIGGER = 38584,
|
||||
|
||||
// Generic
|
||||
NPC_INVISIBLE_STALKER = 30298,
|
||||
NPC_INVISIBLE_STALKER = 30298
|
||||
};
|
||||
|
||||
enum GameObjectsIds
|
||||
@@ -368,7 +368,7 @@ enum GameObjectsIds
|
||||
GO_DOODAD_ICECROWN_SNOWEDGEWARNING01 = 202190,
|
||||
GO_FROZEN_LAVAMAN = 202436,
|
||||
GO_LAVAMAN_PILLARS_CHAINED = 202437,
|
||||
GO_LAVAMAN_PILLARS_UNCHAINED = 202438,
|
||||
GO_LAVAMAN_PILLARS_UNCHAINED = 202438
|
||||
};
|
||||
|
||||
enum AchievementCriteriaIds
|
||||
@@ -403,7 +403,7 @@ enum AchievementCriteriaIds
|
||||
CRITERIA_ONCE_BITTEN_TWICE_SHY_10N = 12780,
|
||||
CRITERIA_ONCE_BITTEN_TWICE_SHY_25N = 13012,
|
||||
CRITERIA_ONCE_BITTEN_TWICE_SHY_10V = 13011,
|
||||
CRITERIA_ONCE_BITTEN_TWICE_SHY_25V = 13013,
|
||||
CRITERIA_ONCE_BITTEN_TWICE_SHY_25V = 13013
|
||||
};
|
||||
|
||||
enum SharedActions
|
||||
@@ -431,7 +431,7 @@ enum SharedActions
|
||||
|
||||
// The Lich King
|
||||
ACTION_RESTORE_LIGHT = -72262,
|
||||
ACTION_FROSTMOURNE_INTRO = -36823,
|
||||
ACTION_FROSTMOURNE_INTRO = -36823
|
||||
};
|
||||
|
||||
enum WeekliesICC
|
||||
@@ -445,7 +445,7 @@ enum WeekliesICC
|
||||
QUEST_BLOOD_QUICKENING_10 = 24874,
|
||||
QUEST_BLOOD_QUICKENING_25 = 24879,
|
||||
QUEST_RESPITE_FOR_A_TORNMENTED_SOUL_10 = 24872,
|
||||
QUEST_RESPITE_FOR_A_TORNMENTED_SOUL_25 = 24880,
|
||||
QUEST_RESPITE_FOR_A_TORNMENTED_SOUL_25 = 24880
|
||||
};
|
||||
|
||||
enum WorldStatesICC
|
||||
@@ -454,12 +454,12 @@ enum WorldStatesICC
|
||||
WORLDSTATE_EXECUTION_TIME = 4904,
|
||||
WORLDSTATE_SHOW_ATTEMPTS = 4940,
|
||||
WORLDSTATE_ATTEMPTS_REMAINING = 4941,
|
||||
WORLDSTATE_ATTEMPTS_MAX = 4942,
|
||||
WORLDSTATE_ATTEMPTS_MAX = 4942
|
||||
};
|
||||
|
||||
enum AreaIds
|
||||
{
|
||||
AREA_THE_FROZEN_THRONE = 4859,
|
||||
AREA_THE_FROZEN_THRONE = 4859
|
||||
};
|
||||
|
||||
class spell_trigger_spell_from_caster : public SpellScriptLoader
|
||||
|
||||
@@ -31,7 +31,7 @@ enum EventIds
|
||||
{
|
||||
EVENT_QUAKE = 23437,
|
||||
EVENT_SECOND_REMORSELESS_WINTER = 23507,
|
||||
EVENT_TELEPORT_TO_FROSMOURNE = 23617,
|
||||
EVENT_TELEPORT_TO_FROSTMOURNE = 23617
|
||||
};
|
||||
|
||||
enum TimedEvents
|
||||
@@ -68,7 +68,7 @@ DoorData const doorData[] =
|
||||
{GO_SINDRAGOSA_SHORTCUT_EXIT_DOOR, DATA_SINDRAGOSA, DOOR_TYPE_PASSAGE, BOUNDARY_NONE},
|
||||
{GO_ICE_WALL, DATA_SINDRAGOSA, DOOR_TYPE_ROOM, BOUNDARY_SE },
|
||||
{GO_ICE_WALL, DATA_SINDRAGOSA, DOOR_TYPE_ROOM, BOUNDARY_SW },
|
||||
{0, 0, DOOR_TYPE_ROOM, BOUNDARY_NONE}, // END
|
||||
{0, 0, DOOR_TYPE_ROOM, BOUNDARY_NONE} // END
|
||||
};
|
||||
|
||||
// this doesnt have to only store questgivers, also can be used for related quest spawns
|
||||
@@ -89,7 +89,7 @@ WeeklyQuest const WeeklyQuestData[WeeklyNPCs] =
|
||||
{NPC_ALRIN_THE_AGILE, {QUEST_BLOOD_QUICKENING_10, QUEST_BLOOD_QUICKENING_25 }}, // Blood Quickening
|
||||
{NPC_INFILTRATOR_MINCHAR_BQ, {QUEST_BLOOD_QUICKENING_10, QUEST_BLOOD_QUICKENING_25 }}, // Blood Quickening
|
||||
{NPC_MINCHAR_BEAM_STALKER, {QUEST_BLOOD_QUICKENING_10, QUEST_BLOOD_QUICKENING_25 }}, // Blood Quickening
|
||||
{NPC_VALITHRIA_DREAMWALKER_QUEST, {QUEST_RESPITE_FOR_A_TORNMENTED_SOUL_10, QUEST_RESPITE_FOR_A_TORNMENTED_SOUL_25}}, // Respite for a Tormented Soul
|
||||
{NPC_VALITHRIA_DREAMWALKER_QUEST, {QUEST_RESPITE_FOR_A_TORNMENTED_SOUL_10, QUEST_RESPITE_FOR_A_TORNMENTED_SOUL_25}} // Respite for a Tormented Soul
|
||||
};
|
||||
|
||||
class instance_icecrown_citadel : public InstanceMapScript
|
||||
@@ -335,7 +335,7 @@ class instance_icecrown_citadel : public InstanceMapScript
|
||||
{
|
||||
uint8 diffIndex = uint8(instance->GetSpawnMode() & 1);
|
||||
if (!sPoolMgr->IsSpawnedObject<Quest>(WeeklyQuestData[questIndex].questId[diffIndex]))
|
||||
entry = 0;
|
||||
return 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1235,7 +1235,7 @@ class instance_icecrown_citadel : public InstanceMapScript
|
||||
Events.ScheduleEvent(EVENT_REBUILD_PLATFORM, 1500);
|
||||
}
|
||||
break;
|
||||
case EVENT_TELEPORT_TO_FROSMOURNE: // Harvest Soul (normal mode)
|
||||
case EVENT_TELEPORT_TO_FROSTMOURNE: // Harvest Soul (normal mode)
|
||||
if (Creature* terenas = instance->SummonCreature(NPC_TERENAS_MENETHIL_FROSTMOURNE, TerenasSpawn, NULL, 63000))
|
||||
{
|
||||
terenas->AI()->DoAction(ACTION_FROSTMOURNE_INTRO);
|
||||
|
||||
@@ -584,7 +584,7 @@ public:
|
||||
{
|
||||
instance->SetBossState(DATA_MALYGOS_EVENT, FAIL);
|
||||
|
||||
SendLightOverride(LIGHT_GET_DEFAULT_FOR_MAP, 1*IN_MILLISECONDS);
|
||||
me->GetMap()->SetZoneOverrideLight(AREA_EYE_OF_ETERNITY, LIGHT_GET_DEFAULT_FOR_MAP, 1*IN_MILLISECONDS);
|
||||
|
||||
if (_phase == PHASE_THREE)
|
||||
me->SetControlled(false, UNIT_STATE_ROOT);
|
||||
@@ -725,8 +725,8 @@ public:
|
||||
me->SetDisableGravity(true);
|
||||
if (Creature* alexstraszaBunny = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ALEXSTRASZA_BUNNY_GUID)))
|
||||
me->SetFacingToObject(alexstraszaBunny);
|
||||
SendLightOverride(LIGHT_ARCANE_RUNES, 5*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_FLY_OUT_OF_PLATFORM, 18*IN_MILLISECONDS, 0, PHASE_TWO);
|
||||
me->GetMap()->SetZoneOverrideLight(AREA_EYE_OF_ETERNITY, LIGHT_ARCANE_RUNES, 5 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_FLY_OUT_OF_PLATFORM, 18 * IN_MILLISECONDS, 0, PHASE_TWO);
|
||||
break;
|
||||
case POINT_SURGE_OF_POWER_P_TWO:
|
||||
if (!_performingDestroyPlatform)
|
||||
@@ -737,7 +737,7 @@ public:
|
||||
}
|
||||
break;
|
||||
case POINT_DESTROY_PLATFORM_P_TWO:
|
||||
SendLightOverride(LIGHT_OBSCURE_SPACE, 1*IN_MILLISECONDS);
|
||||
me->GetMap()->SetZoneOverrideLight(AREA_EYE_OF_ETERNITY, LIGHT_OBSCURE_SPACE, 1 * IN_MILLISECONDS);
|
||||
DoCast(me, SPELL_DESTROY_PLATFORM_CHANNEL);
|
||||
events.ScheduleEvent(EVENT_MOVE_TO_P_THREE_POINT, 11*IN_MILLISECONDS, 0, PHASE_TWO);
|
||||
break;
|
||||
@@ -929,7 +929,7 @@ public:
|
||||
}
|
||||
break;
|
||||
case EVENT_LIGHT_DIMENSION_CHANGE:
|
||||
SendLightOverride(LIGHT_CHANGE_DIMENSIONS, 2*IN_MILLISECONDS);
|
||||
me->GetMap()->SetZoneOverrideLight(AREA_EYE_OF_ETERNITY, LIGHT_CHANGE_DIMENSIONS, 2 * IN_MILLISECONDS);
|
||||
break;
|
||||
case EVENT_DELAY_MOVE_TO_DESTROY_P:
|
||||
me->GetMotionMaster()->MovePoint(POINT_DESTROY_PLATFORM_P_TWO, MalygosPositions[0]);
|
||||
@@ -939,7 +939,7 @@ public:
|
||||
me->GetMotionMaster()->MovePoint(POINT_IDLE_P_THREE, MalygosPositions[4]);
|
||||
break;
|
||||
case EVENT_START_P_THREE:
|
||||
SendLightOverride(LIGHT_OBSCURE_ARCANE_RUNES, 1*IN_MILLISECONDS);
|
||||
me->GetMap()->SetZoneOverrideLight(AREA_EYE_OF_ETERNITY, LIGHT_OBSCURE_ARCANE_RUNES, 1 * IN_MILLISECONDS);
|
||||
DoCast(me, SPELL_CLEAR_ALL_DEBUFFS);
|
||||
DoCast(me, SPELL_IMMUNE_CURSES);
|
||||
_canAttack = true;
|
||||
@@ -1026,27 +1026,6 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
// Function that will change lights of map for all players on map.
|
||||
void SendLightOverride(uint32 overrideId, uint32 fadeInTime) const
|
||||
{
|
||||
WorldPacket data(SMSG_OVERRIDE_LIGHT, 12);
|
||||
data << uint32(1773); // Light.dbc entry (map default)
|
||||
data << uint32(overrideId); // Light.dbc entry (override)
|
||||
data << uint32(fadeInTime);
|
||||
SendPacketToPlayers(&data);
|
||||
}
|
||||
|
||||
// Send packet to all players in Eye of Eternity
|
||||
void SendPacketToPlayers(WorldPacket const* data) const
|
||||
{
|
||||
Map::PlayerList const& players = me->GetMap()->GetPlayers();
|
||||
if (!players.isEmpty())
|
||||
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
|
||||
if (Player* player = itr->GetSource())
|
||||
if (player->GetAreaId() == AREA_EYE_OF_ETERNITY)
|
||||
player->GetSession()->SendPacket(data);
|
||||
}
|
||||
|
||||
uint8 _phase; // Counter for phases used with a getter.
|
||||
uint8 _summonDeaths; // Keeps count of arcane trash.
|
||||
uint8 _preparingPulsesChecker; // In retail they use 2 preparing pulses with 7 sec CD, after they pass 2 seconds.
|
||||
|
||||
Reference in New Issue
Block a user