refactor(Core/WorldState): Initial addition of world state definition file. (#21875)

Many world states had their enums from script's header and hardcoded values to their respective header file (WorldStateDefines.h)
Co-authored-by: Jelle Meeus <sogladev@gmail.com>
This commit is contained in:
Benjamin Jackson 2025-04-26 14:31:30 -04:00 committed by GitHub
parent d23e61b721
commit da55f05cfc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
73 changed files with 1828 additions and 1789 deletions

View file

@ -30,6 +30,7 @@
#include "Vehicle.h"
#include "WorldSession.h"
#include "WorldSessionMgr.h"
#include "WorldStateDefines.h"
#include "WorldStatePackets.h"
BattlefieldWG::~BattlefieldWG()
@ -80,17 +81,17 @@ bool BattlefieldWG::SetupBattlefield()
SetGraveyardNumber(BATTLEFIELD_WG_GRAVEYARD_MAX);
// Load from db
if (!sWorld->getWorldState(BATTLEFIELD_WG_WORLD_STATE_ACTIVE) &&
!sWorld->getWorldState(BATTLEFIELD_WG_WORLD_STATE_DEFENDER) &&
if (!sWorld->getWorldState(WORLD_STATE_BATTLEFIELD_WG_ACTIVE) &&
!sWorld->getWorldState(WORLD_STATE_BATTLEFIELD_WG_DEFENDER) &&
!sWorld->getWorldState(ClockWorldState[0]))
{
sWorld->setWorldState(BATTLEFIELD_WG_WORLD_STATE_ACTIVE, uint64(false));
sWorld->setWorldState(BATTLEFIELD_WG_WORLD_STATE_DEFENDER, uint64(urand(0, 1)));
sWorld->setWorldState(WORLD_STATE_BATTLEFIELD_WG_ACTIVE, uint64(false));
sWorld->setWorldState(WORLD_STATE_BATTLEFIELD_WG_DEFENDER, uint64(urand(0, 1)));
sWorld->setWorldState(ClockWorldState[0], uint64(m_NoWarBattleTime));
}
m_isActive = bool(sWorld->getWorldState(BATTLEFIELD_WG_WORLD_STATE_ACTIVE));
m_DefenderTeam = TeamId(sWorld->getWorldState(BATTLEFIELD_WG_WORLD_STATE_DEFENDER));
m_isActive = bool(sWorld->getWorldState(WORLD_STATE_BATTLEFIELD_WG_ACTIVE));
m_DefenderTeam = TeamId(sWorld->getWorldState(WORLD_STATE_BATTLEFIELD_WG_DEFENDER));
m_Timer = sWorld->getWorldState(ClockWorldState[0]);
if (m_isActive)
@ -194,8 +195,8 @@ bool BattlefieldWG::Update(uint32 diff)
bool m_return = Battlefield::Update(diff);
if (m_saveTimer <= diff)
{
sWorld->setWorldState(BATTLEFIELD_WG_WORLD_STATE_ACTIVE, m_isActive);
sWorld->setWorldState(BATTLEFIELD_WG_WORLD_STATE_DEFENDER, m_DefenderTeam);
sWorld->setWorldState(WORLD_STATE_BATTLEFIELD_WG_ACTIVE, m_isActive);
sWorld->setWorldState(WORLD_STATE_BATTLEFIELD_WG_DEFENDER, m_DefenderTeam);
sWorld->setWorldState(ClockWorldState[0], m_Timer);
m_saveTimer = 60 * IN_MILLISECONDS;
}
@ -327,10 +328,10 @@ void BattlefieldWG::UpdateVehicleCountWG()
for (GuidUnorderedSet::iterator itr = m_players[i].begin(); itr != m_players[i].end(); ++itr)
if (Player* player = ObjectAccessor::FindPlayer(*itr))
{
player->SendUpdateWorldState(BATTLEFIELD_WG_WORLD_STATE_VEHICLE_H, GetData(BATTLEFIELD_WG_DATA_VEHICLE_H));
player->SendUpdateWorldState(BATTLEFIELD_WG_WORLD_STATE_MAX_VEHICLE_H, GetData(BATTLEFIELD_WG_DATA_MAX_VEHICLE_H));
player->SendUpdateWorldState(BATTLEFIELD_WG_WORLD_STATE_VEHICLE_A, GetData(BATTLEFIELD_WG_DATA_VEHICLE_A));
player->SendUpdateWorldState(BATTLEFIELD_WG_WORLD_STATE_MAX_VEHICLE_A, GetData(BATTLEFIELD_WG_DATA_MAX_VEHICLE_A));
player->SendUpdateWorldState(WORLD_STATE_BATTLEFIELD_WG_VEHICLE_H, GetData(BATTLEFIELD_WG_DATA_VEHICLE_H));
player->SendUpdateWorldState(WORLD_STATE_BATTLEFIELD_WG_MAX_VEHICLE_H, GetData(BATTLEFIELD_WG_DATA_MAX_VEHICLE_H));
player->SendUpdateWorldState(WORLD_STATE_BATTLEFIELD_WG_VEHICLE_A, GetData(BATTLEFIELD_WG_DATA_VEHICLE_A));
player->SendUpdateWorldState(WORLD_STATE_BATTLEFIELD_WG_MAX_VEHICLE_A, GetData(BATTLEFIELD_WG_DATA_MAX_VEHICLE_A));
}
}
@ -488,14 +489,14 @@ void BattlefieldWG::OnBattleEnd(bool endByTimer)
if (!endByTimer) // win alli/horde
{
uint32 const worldStateId = GetDefenderTeam() == TEAM_ALLIANCE ? WORLDSTATE_ALLIANCE_KEEP_CAPTURED : WORLDSTATE_HORDE_KEEP_CAPTURED;
uint32 const worldStateId = GetDefenderTeam() == TEAM_ALLIANCE ? WORLD_STATE_BATTLEFIELD_WG_ALLIANCE_KEEP_CAPTURED : WORLD_STATE_BATTLEFIELD_WG_HORDE_KEEP_CAPTURED;
sWorld->setWorldState(worldStateId, sWorld->getWorldState(worldStateId) + 1);
SendWarning((GetDefenderTeam() == TEAM_ALLIANCE) ? BATTLEFIELD_WG_TEXT_WIN_KEEP : (BATTLEFIELD_WG_TEXT_WIN_KEEP + 2));
}
else // defend alli/horde
{
uint32 const worldStateId = GetDefenderTeam() == TEAM_ALLIANCE ? WORLDSTATE_ALLIANCE_KEEP_DEFENDED : WORLDSTATE_HORDE_KEEP_DEFENDED;
uint32 const worldStateId = GetDefenderTeam() == TEAM_ALLIANCE ? WORLD_STATE_BATTLEFIELD_WG_ALLIANCE_KEEP_DEFENDED : WORLD_STATE_BATTLEFIELD_WG_HORDE_KEEP_DEFENDED;
sWorld->setWorldState(worldStateId, sWorld->getWorldState(worldStateId) + 1);
SendWarning((GetDefenderTeam() == TEAM_ALLIANCE) ? BATTLEFIELD_WG_TEXT_DEFEND_KEEP : (BATTLEFIELD_WG_TEXT_DEFEND_KEEP + 2));
@ -941,27 +942,27 @@ void BattlefieldWG::FillInitialWorldStates(WorldPackets::WorldState::InitWorldSt
bool iconActive = timer < 15 * MINUTE || IsWarTime();
packet.Worldstates.reserve(4+4+WG_MAX_OBJ+WG_MAX_WORKSHOP);
packet.Worldstates.emplace_back(BATTLEFIELD_WG_WORLD_STATE_ATTACKER, GetAttackerTeam());
packet.Worldstates.emplace_back(BATTLEFIELD_WG_WORLD_STATE_DEFENDER, GetDefenderTeam());
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEFIELD_WG_ATTACKER, GetAttackerTeam());
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEFIELD_WG_DEFENDER, GetDefenderTeam());
// Note: cleanup these two, their names look awkward
packet.Worldstates.emplace_back(BATTLEFIELD_WG_WORLD_STATE_ACTIVE, IsWarTime() ? 0 : 1);
packet.Worldstates.emplace_back(BATTLEFIELD_WG_WORLD_STATE_SHOW_WORLDSTATE, IsWarTime() ? 1 : 0);
packet.Worldstates.emplace_back(BATTLEFIELD_WG_WORLD_STATE_CONTROL, m_DefenderTeam == TEAM_ALLIANCE ? 2 : 1); // Alliance 2, Hord 1
packet.Worldstates.emplace_back(BATTLEFIELD_WG_WORLD_STATE_ICON_ACTIVE, iconActive ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEFIELD_WG_ACTIVE, IsWarTime() ? 0 : 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEFIELD_WG_SHOW, IsWarTime() ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEFIELD_WG_CONTROL, m_DefenderTeam == TEAM_ALLIANCE ? 2 : 1); // Alliance 2, Hord 1
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEFIELD_WG_ICON_ACTIVE, iconActive ? 1 : 0);
for (uint32 i = 0; i < 2; ++i)
packet.Worldstates.emplace_back(ClockWorldState[i], GameTime::GetGameTime().count() + timer);
packet.Worldstates.emplace_back(BATTLEFIELD_WG_WORLD_STATE_VEHICLE_H, GetData(BATTLEFIELD_WG_DATA_VEHICLE_H));
packet.Worldstates.emplace_back(BATTLEFIELD_WG_WORLD_STATE_MAX_VEHICLE_H, GetData(BATTLEFIELD_WG_DATA_MAX_VEHICLE_H));
packet.Worldstates.emplace_back(BATTLEFIELD_WG_WORLD_STATE_VEHICLE_A, GetData(BATTLEFIELD_WG_DATA_VEHICLE_A));
packet.Worldstates.emplace_back(BATTLEFIELD_WG_WORLD_STATE_MAX_VEHICLE_A, GetData(BATTLEFIELD_WG_DATA_MAX_VEHICLE_A));
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEFIELD_WG_VEHICLE_H, GetData(BATTLEFIELD_WG_DATA_VEHICLE_H));
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEFIELD_WG_MAX_VEHICLE_H, GetData(BATTLEFIELD_WG_DATA_MAX_VEHICLE_H));
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEFIELD_WG_VEHICLE_A, GetData(BATTLEFIELD_WG_DATA_VEHICLE_A));
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEFIELD_WG_MAX_VEHICLE_A, GetData(BATTLEFIELD_WG_DATA_MAX_VEHICLE_A));
packet.Worldstates.emplace_back(WORLDSTATE_ALLIANCE_KEEP_DEFENDED, uint32(sWorld->getWorldState(WORLDSTATE_ALLIANCE_KEEP_DEFENDED)));
packet.Worldstates.emplace_back(WORLDSTATE_HORDE_KEEP_CAPTURED, uint32(sWorld->getWorldState(WORLDSTATE_HORDE_KEEP_CAPTURED)));
packet.Worldstates.emplace_back(WORLDSTATE_HORDE_KEEP_DEFENDED, uint32(sWorld->getWorldState(WORLDSTATE_HORDE_KEEP_DEFENDED)));
packet.Worldstates.emplace_back(WORLDSTATE_ALLIANCE_KEEP_CAPTURED, uint32(sWorld->getWorldState(WORLDSTATE_ALLIANCE_KEEP_CAPTURED)));
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEFIELD_WG_ALLIANCE_KEEP_DEFENDED, uint32(sWorld->getWorldState(WORLD_STATE_BATTLEFIELD_WG_ALLIANCE_KEEP_DEFENDED)));
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEFIELD_WG_HORDE_KEEP_CAPTURED, uint32(sWorld->getWorldState(WORLD_STATE_BATTLEFIELD_WG_HORDE_KEEP_CAPTURED)));
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEFIELD_WG_HORDE_KEEP_DEFENDED, uint32(sWorld->getWorldState(WORLD_STATE_BATTLEFIELD_WG_HORDE_KEEP_DEFENDED)));
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEFIELD_WG_ALLIANCE_KEEP_CAPTURED, uint32(sWorld->getWorldState(WORLD_STATE_BATTLEFIELD_WG_ALLIANCE_KEEP_CAPTURED)));
for (GameObjectBuilding::const_iterator itr = BuildingsInZone.begin(); itr != BuildingsInZone.end(); ++itr)
packet.Worldstates.emplace_back((*itr)->m_WorldState, (*itr)->m_State);
@ -995,12 +996,12 @@ void BattlefieldWG::SendUpdateWorldStates(Player* player)
uint32 timer = GetTimer() / 1000;
bool iconActive = timer < 15 * MINUTE || IsWarTime();
SendUpdateWorldStateMessage(BATTLEFIELD_WG_WORLD_STATE_ATTACKER, GetAttackerTeam(), player);
SendUpdateWorldStateMessage(BATTLEFIELD_WG_WORLD_STATE_DEFENDER, GetDefenderTeam(), player);
SendUpdateWorldStateMessage(BATTLEFIELD_WG_WORLD_STATE_ACTIVE, IsWarTime() ? 0 : 1, player);
SendUpdateWorldStateMessage(BATTLEFIELD_WG_WORLD_STATE_SHOW_WORLDSTATE, IsWarTime() ? 1 : 0, player);
SendUpdateWorldStateMessage(BATTLEFIELD_WG_WORLD_STATE_CONTROL, GetDefenderTeam() == TEAM_ALLIANCE ? 2 : 1, player);
SendUpdateWorldStateMessage(BATTLEFIELD_WG_WORLD_STATE_ICON_ACTIVE, iconActive ? 1 : 0, player);
SendUpdateWorldStateMessage(WORLD_STATE_BATTLEFIELD_WG_ATTACKER, GetAttackerTeam(), player);
SendUpdateWorldStateMessage(WORLD_STATE_BATTLEFIELD_WG_DEFENDER, GetDefenderTeam(), player);
SendUpdateWorldStateMessage(WORLD_STATE_BATTLEFIELD_WG_ACTIVE, IsWarTime() ? 0 : 1, player);
SendUpdateWorldStateMessage(WORLD_STATE_BATTLEFIELD_WG_SHOW, IsWarTime() ? 1 : 0, player);
SendUpdateWorldStateMessage(WORLD_STATE_BATTLEFIELD_WG_CONTROL, GetDefenderTeam() == TEAM_ALLIANCE ? 2 : 1, player);
SendUpdateWorldStateMessage(WORLD_STATE_BATTLEFIELD_WG_ICON_ACTIVE, iconActive ? 1 : 0, player);
for (uint32 i = 0; i < 2; ++i)
SendUpdateWorldStateMessage(ClockWorldState[i], uint32(GameTime::GetGameTime().count() + timer), player);

View file

@ -21,6 +21,7 @@
#include "Battlefield.h"
#include "Log.h"
#include "World.h"
#include "WorldStateDefines.h"
#include "WorldStatePackets.h"
class Group;
@ -36,9 +37,9 @@ typedef std::set<WGWorkshop*> Workshop;
typedef std::set<Group*> GroupSet;
//typedef std::set<WintergraspCapturePoint *> CapturePointSet; unused ?
uint32 const VehNumWorldState[2] = { 3680, 3490 };
uint32 const MaxVehNumWorldState[2] = { 3681, 3491 };
uint32 const ClockWorldState[2] = { 3781, 4354 };
uint32 const VehNumWorldState[2] = { WORLD_STATE_BATTLEFIELD_WG_VEHICLE_A, WORLD_STATE_BATTLEFIELD_WG_VEHICLE_H };
uint32 const MaxVehNumWorldState[2] = { WORLD_STATE_BATTLEFIELD_WG_MAX_VEHICLE_A, WORLD_STATE_BATTLEFIELD_WG_MAX_VEHICLE_H };
uint32 const ClockWorldState[2] = { WORLD_STATE_BATTLEFIELD_WG_CLOCK, WORLD_STATE_BATTLEFIELD_WG_CLOCK_TEXTS };
uint32 const WintergraspFaction[3] = { 1, 2, 35 };
float const WintergraspStalkerPos[4] = { 4948.985f, 2937.789f, 550.5172f, 1.815142f };
@ -99,20 +100,6 @@ enum WintergraspData
BATTLEFIELD_WG_DATA_MAX,
};
enum WintergraspWorldStates
{
BATTLEFIELD_WG_WORLD_STATE_VEHICLE_H = 3490,
BATTLEFIELD_WG_WORLD_STATE_MAX_VEHICLE_H = 3491,
BATTLEFIELD_WG_WORLD_STATE_VEHICLE_A = 3680,
BATTLEFIELD_WG_WORLD_STATE_MAX_VEHICLE_A = 3681,
BATTLEFIELD_WG_WORLD_STATE_ACTIVE = 3801,
BATTLEFIELD_WG_WORLD_STATE_DEFENDER = 3802,
BATTLEFIELD_WG_WORLD_STATE_ATTACKER = 3803,
BATTLEFIELD_WG_WORLD_STATE_SHOW_WORLDSTATE = 3710,
BATTLEFIELD_WG_WORLD_STATE_CONTROL = 3804, // Shows on the map who controls WG
BATTLEFIELD_WG_WORLD_STATE_ICON_ACTIVE = 4375, // Activates "ice" icon
};
enum WintergraspAreaIds
{
BATTLEFIELD_WG_ZONEID = 4197, // Wintergrasp
@ -522,20 +509,6 @@ enum WintergraspWorkshopIds
BATTLEFIELD_WG_WORKSHOP_KEEP_EAST,
};
enum WintergraspWorldstates
{
WORLDSTATE_WORKSHOP_NE = 3701,
WORLDSTATE_WORKSHOP_NW = 3700,
WORLDSTATE_WORKSHOP_SE = 3703,
WORLDSTATE_WORKSHOP_SW = 3702,
WORLDSTATE_WORKSHOP_K_W = 3698,
WORLDSTATE_WORKSHOP_K_E = 3699,
WORLDSTATE_HORDE_KEEP_CAPTURED = 4022,
WORLDSTATE_HORDE_KEEP_DEFENDED = 4024,
WORLDSTATE_ALLIANCE_KEEP_CAPTURED = 4023,
WORLDSTATE_ALLIANCE_KEEP_DEFENDED = 4025,
};
/// @todo: Handle this with creature_text ?
enum eWGText
{
@ -1079,17 +1052,17 @@ struct WGWorkshopData
WGWorkshopData const WorkshopsData[WG_MAX_WORKSHOP] =
{
// NE
{BATTLEFIELD_WG_WORKSHOP_NE, WORLDSTATE_WORKSHOP_NE, BATTLEFIELD_WG_TEXT_WORKSHOP_NE_ATTACK, BATTLEFIELD_WG_TEXT_WORKSHOP_NE_TAKEN},
{BATTLEFIELD_WG_WORKSHOP_NE, WORLD_STATE_BATTLEFIELD_WG_WORKSHOP_NE, BATTLEFIELD_WG_TEXT_WORKSHOP_NE_ATTACK, BATTLEFIELD_WG_TEXT_WORKSHOP_NE_TAKEN},
// NW
{BATTLEFIELD_WG_WORKSHOP_NW, WORLDSTATE_WORKSHOP_NW, BATTLEFIELD_WG_TEXT_WORKSHOP_NW_ATTACK, BATTLEFIELD_WG_TEXT_WORKSHOP_NW_TAKEN},
{BATTLEFIELD_WG_WORKSHOP_NW, WORLD_STATE_BATTLEFIELD_WG_WORKSHOP_NW, BATTLEFIELD_WG_TEXT_WORKSHOP_NW_ATTACK, BATTLEFIELD_WG_TEXT_WORKSHOP_NW_TAKEN},
// SE
{BATTLEFIELD_WG_WORKSHOP_SE, WORLDSTATE_WORKSHOP_SE, BATTLEFIELD_WG_TEXT_WORKSHOP_SE_ATTACK, BATTLEFIELD_WG_TEXT_WORKSHOP_SE_TAKEN},
{BATTLEFIELD_WG_WORKSHOP_SE, WORLD_STATE_BATTLEFIELD_WG_WORKSHOP_SE, BATTLEFIELD_WG_TEXT_WORKSHOP_SE_ATTACK, BATTLEFIELD_WG_TEXT_WORKSHOP_SE_TAKEN},
// SW
{BATTLEFIELD_WG_WORKSHOP_SW, WORLDSTATE_WORKSHOP_SW, BATTLEFIELD_WG_TEXT_WORKSHOP_SW_ATTACK, BATTLEFIELD_WG_TEXT_WORKSHOP_SW_TAKEN},
{BATTLEFIELD_WG_WORKSHOP_SW, WORLD_STATE_BATTLEFIELD_WG_WORKSHOP_SW, BATTLEFIELD_WG_TEXT_WORKSHOP_SW_ATTACK, BATTLEFIELD_WG_TEXT_WORKSHOP_SW_TAKEN},
// KEEP WEST - It can't be taken
{BATTLEFIELD_WG_WORKSHOP_KEEP_WEST, WORLDSTATE_WORKSHOP_K_W, 0, BATTLEFIELD_WG_TEXT_WORKSHOP_NE_TAKEN},
{BATTLEFIELD_WG_WORKSHOP_KEEP_WEST, WORLD_STATE_BATTLEFIELD_WG_WORKSHOP_K_W, 0, BATTLEFIELD_WG_TEXT_WORKSHOP_NE_TAKEN},
// KEEP EAST - It can't be taken
{BATTLEFIELD_WG_WORKSHOP_KEEP_EAST, WORLDSTATE_WORKSHOP_K_E, 0, BATTLEFIELD_WG_TEXT_WORKSHOP_NE_TAKEN}
{BATTLEFIELD_WG_WORKSHOP_KEEP_EAST, WORLD_STATE_BATTLEFIELD_WG_WORKSHOP_K_E, 0, BATTLEFIELD_WG_TEXT_WORKSHOP_NE_TAKEN}
};
// ********************************************************************

View file

@ -26,6 +26,7 @@
#include "World.h"
#include "WorldSession.h"
#include "WorldSessionMgr.h"
#include "WorldStateDefines.h"
#include "WorldStatePackets.h"
void ArenaScore::AppendToPacket(WorldPacket& data)
@ -150,14 +151,14 @@ void Arena::RemovePlayer(Player* /*player*/)
void Arena::FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet)
{
packet.Worldstates.reserve(2);
packet.Worldstates.emplace_back(ARENA_WORLD_STATE_ALIVE_PLAYERS_GREEN, GetAlivePlayersCountByTeam(TEAM_HORDE));
packet.Worldstates.emplace_back(ARENA_WORLD_STATE_ALIVE_PLAYERS_GOLD, GetAlivePlayersCountByTeam(TEAM_ALLIANCE));
packet.Worldstates.emplace_back(WORLD_STATE_ARENA_ALIVE_PLAYERS_GREEN, GetAlivePlayersCountByTeam(TEAM_HORDE));
packet.Worldstates.emplace_back(WORLD_STATE_ARENA_ALIVE_PLAYERS_GOLD, GetAlivePlayersCountByTeam(TEAM_ALLIANCE));
}
void Arena::UpdateArenaWorldState()
{
UpdateWorldState(ARENA_WORLD_STATE_ALIVE_PLAYERS_GREEN, GetAlivePlayersCountByTeam(TEAM_HORDE));
UpdateWorldState(ARENA_WORLD_STATE_ALIVE_PLAYERS_GOLD, GetAlivePlayersCountByTeam(TEAM_ALLIANCE));
UpdateWorldState(WORLD_STATE_ARENA_ALIVE_PLAYERS_GREEN, GetAlivePlayersCountByTeam(TEAM_HORDE));
UpdateWorldState(WORLD_STATE_ARENA_ALIVE_PLAYERS_GOLD, GetAlivePlayersCountByTeam(TEAM_ALLIANCE));
}
void Arena::HandleKillPlayer(Player* player, Player* killer)

View file

@ -38,12 +38,6 @@ enum ArenaSpellIds
SPELL_LAST_MAN_STANDING = 26549 // Achievement Credit
};
enum ArenaWorldStates
{
ARENA_WORLD_STATE_ALIVE_PLAYERS_GREEN = 3600,
ARENA_WORLD_STATE_ALIVE_PLAYERS_GOLD = 3601
};
class AC_GAME_API Arena : public Battleground
{
protected:

View file

@ -47,6 +47,7 @@
#include "SharedDefines.h"
#include "World.h"
#include "WorldPacket.h"
#include "WorldStateDefines.h"
#include <unordered_map>
bool BattlegroundTemplate::IsArena() const
@ -182,7 +183,7 @@ void BattlegroundMgr::Update(uint32 diff)
{
sArenaTeamMgr->DistributeArenaPoints();
m_NextAutoDistributionTime = GameTime::GetGameTime() + Seconds(DAY * sWorld->getIntConfig(CONFIG_ARENA_AUTO_DISTRIBUTE_INTERVAL_DAYS));
sWorld->setWorldState(WS_ARENA_DISTRIBUTION_TIME, m_NextAutoDistributionTime.count());
sWorld->setWorldState(WORLD_STATE_CUSTOM_ARENA_DISTRIBUTION_TIME, m_NextAutoDistributionTime.count());
}
m_AutoDistributionTimeChecker = 600000; // 10 minutes check
}
@ -561,7 +562,7 @@ void BattlegroundMgr::InitAutomaticArenaPointDistribution()
if (!sWorld->getBoolConfig(CONFIG_ARENA_AUTO_DISTRIBUTE_POINTS))
return;
Seconds wstime = Seconds(sWorld->getWorldState(WS_ARENA_DISTRIBUTION_TIME));
Seconds wstime = Seconds(sWorld->getWorldState(WORLD_STATE_CUSTOM_ARENA_DISTRIBUTION_TIME));
Seconds curtime = GameTime::GetGameTime();
LOG_INFO("server.loading", "Initializing Automatic Arena Point Distribution");

View file

@ -24,6 +24,7 @@
#include "WorldPacket.h"
#include "WorldSession.h"
#include "WorldStatePackets.h"
#include "WorldStateDefines.h"
void BattlegroundABScore::BuildObjectivesBlock(WorldPacket& data)
{
@ -129,7 +130,7 @@ void BattlegroundAB::PostUpdateImpl(uint32 diff)
}
}
UpdateWorldState(teamId == TEAM_ALLIANCE ? BG_AB_OP_RESOURCES_ALLY : BG_AB_OP_RESOURCES_HORDE, m_TeamScores[teamId]);
UpdateWorldState(teamId == TEAM_ALLIANCE ? WORLD_STATE_BATTLEGROUND_AB_RESOURCES_ALLIANCE : WORLD_STATE_BATTLEGROUND_AB_RESOURCES_HORDE, m_TeamScores[teamId]);
if (m_TeamScores[teamId] > m_TeamScores[GetOtherTeamId(teamId)] + 500)
_teamScores500Disadvantage[GetOtherTeamId(teamId)] = true;
if (m_TeamScores[teamId] >= static_cast<int32>(_configurableMaxTeamScore))
@ -247,13 +248,13 @@ void BattlegroundAB::FillInitialWorldStates(WorldPackets::WorldState::InitWorldS
packet.Worldstates.emplace_back(node._iconCapture + i - 1, node._state == i ? 1 : 0);
}
packet.Worldstates.emplace_back(BG_AB_OP_OCCUPIED_BASES_ALLY, _controlledPoints[TEAM_ALLIANCE]);
packet.Worldstates.emplace_back(BG_AB_OP_OCCUPIED_BASES_HORDE, _controlledPoints[TEAM_HORDE]);
packet.Worldstates.emplace_back(BG_AB_OP_RESOURCES_MAX, _configurableMaxTeamScore);
packet.Worldstates.emplace_back(BG_AB_OP_RESOURCES_WARNING, BG_AB_WARNING_NEAR_VICTORY_SCORE);
packet.Worldstates.emplace_back(BG_AB_OP_RESOURCES_ALLY, m_TeamScores[TEAM_ALLIANCE]);
packet.Worldstates.emplace_back(BG_AB_OP_RESOURCES_HORDE, m_TeamScores[TEAM_HORDE]);
packet.Worldstates.emplace_back(0x745, 2);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_OCCUPIED_BASES_ALLIANCE, _controlledPoints[TEAM_ALLIANCE]);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_OCCUPIED_BASES_HORDE, _controlledPoints[TEAM_HORDE]);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_RESOURCES_MAX, _configurableMaxTeamScore);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_RESOURCES_WARNING, BG_AB_WARNING_NEAR_VICTORY_SCORE);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_RESOURCES_ALLIANCE, m_TeamScores[TEAM_ALLIANCE]);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_RESOURCES_HORDE, m_TeamScores[TEAM_HORDE]);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_UNK, 2);
}
void BattlegroundAB::SendNodeUpdate(uint8 node)
@ -262,8 +263,8 @@ void BattlegroundAB::SendNodeUpdate(uint8 node)
for (uint8 i = BG_AB_NODE_STATE_ALLY_OCCUPIED; i <= BG_AB_NODE_STATE_HORDE_CONTESTED; ++i)
UpdateWorldState(_capturePointInfo[node]._iconCapture + i - 1, _capturePointInfo[node]._state == i);
UpdateWorldState(BG_AB_OP_OCCUPIED_BASES_ALLY, _controlledPoints[TEAM_ALLIANCE]);
UpdateWorldState(BG_AB_OP_OCCUPIED_BASES_HORDE, _controlledPoints[TEAM_HORDE]);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_AB_OCCUPIED_BASES_ALLIANCE, _controlledPoints[TEAM_ALLIANCE]);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_AB_OCCUPIED_BASES_HORDE, _controlledPoints[TEAM_HORDE]);
}
void BattlegroundAB::NodeOccupied(uint8 node)
@ -470,16 +471,16 @@ void BattlegroundAB::Init()
_honorTics = BattlegroundMgr::IsBGWeekend(GetBgTypeID(true)) ? BG_AB_HONOR_TICK_WEEKEND : BG_AB_HONOR_TICK_NORMAL;
_reputationTics = BattlegroundMgr::IsBGWeekend(GetBgTypeID(true)) ? BG_AB_REP_TICK_WEEKEND : BG_AB_REP_TICK_NORMAL;
_capturePointInfo[BG_AB_NODE_STABLES]._iconNone = BG_AB_OP_STABLE_ICON;
_capturePointInfo[BG_AB_NODE_FARM]._iconNone = BG_AB_OP_FARM_ICON;
_capturePointInfo[BG_AB_NODE_BLACKSMITH]._iconNone = BG_AB_OP_BLACKSMITH_ICON;
_capturePointInfo[BG_AB_NODE_LUMBER_MILL]._iconNone = BG_AB_OP_LUMBERMILL_ICON;
_capturePointInfo[BG_AB_NODE_GOLD_MINE]._iconNone = BG_AB_OP_GOLDMINE_ICON;
_capturePointInfo[BG_AB_NODE_STABLES]._iconCapture = BG_AB_OP_STABLE_STATE_ALIENCE;
_capturePointInfo[BG_AB_NODE_FARM]._iconCapture = BG_AB_OP_FARM_STATE_ALIENCE;
_capturePointInfo[BG_AB_NODE_BLACKSMITH]._iconCapture = BG_AB_OP_BLACKSMITH_STATE_ALIENCE;
_capturePointInfo[BG_AB_NODE_LUMBER_MILL]._iconCapture = BG_AB_OP_LUMBERMILL_STATE_ALIENCE;
_capturePointInfo[BG_AB_NODE_GOLD_MINE]._iconCapture = BG_AB_OP_GOLDMINE_STATE_ALIENCE;
_capturePointInfo[BG_AB_NODE_STABLES]._iconNone = WORLD_STATE_BATTLEGROUND_AB_STABLE_ICON;
_capturePointInfo[BG_AB_NODE_FARM]._iconNone = WORLD_STATE_BATTLEGROUND_AB_FARM_ICON;
_capturePointInfo[BG_AB_NODE_BLACKSMITH]._iconNone = WORLD_STATE_BATTLEGROUND_AB_BLACKSMITH_ICON;
_capturePointInfo[BG_AB_NODE_LUMBER_MILL]._iconNone = WORLD_STATE_BATTLEGROUND_AB_LUMBERMILL_ICON;
_capturePointInfo[BG_AB_NODE_GOLD_MINE]._iconNone = WORLD_STATE_BATTLEGROUND_AB_GOLDMINE_ICON;
_capturePointInfo[BG_AB_NODE_STABLES]._iconCapture = WORLD_STATE_BATTLEGROUND_AB_STABLE_STATE_ALLIANCE;
_capturePointInfo[BG_AB_NODE_FARM]._iconCapture = WORLD_STATE_BATTLEGROUND_AB_FARM_STATE_ALLIANCE;
_capturePointInfo[BG_AB_NODE_BLACKSMITH]._iconCapture = WORLD_STATE_BATTLEGROUND_AB_BLACKSMITH_STATE_ALLIANCE;
_capturePointInfo[BG_AB_NODE_LUMBER_MILL]._iconCapture = WORLD_STATE_BATTLEGROUND_AB_LUMBERMILL_STATE_ALLIANCE;
_capturePointInfo[BG_AB_NODE_GOLD_MINE]._iconCapture = WORLD_STATE_BATTLEGROUND_AB_GOLDMINE_STATE_ALLIANCE;
uint32 bgArathiCapturePointsConfig = sWorld->getIntConfig(CONFIG_BATTLEGROUND_ARATHI_CAPTUREPOINTS);
_configurableMaxTeamScore = bgArathiCapturePointsConfig > 0

View file

@ -40,46 +40,6 @@ enum BG_AB_Events
BG_AB_EVENT_HORDE_TICK = 12
};
enum BG_AB_WorldStates
{
BG_AB_OP_OCCUPIED_BASES_HORDE = 1778,
BG_AB_OP_OCCUPIED_BASES_ALLY = 1779,
BG_AB_OP_RESOURCES_ALLY = 1776,
BG_AB_OP_RESOURCES_HORDE = 1777,
BG_AB_OP_RESOURCES_MAX = 1780,
BG_AB_OP_RESOURCES_WARNING = 1955,
BG_AB_OP_STABLE_ICON = 1842, //Stable map icon (NONE)
BG_AB_OP_STABLE_STATE_ALIENCE = 1767, //Stable map state (ALIENCE)
BG_AB_OP_STABLE_STATE_HORDE = 1768, //Stable map state (HORDE)
BG_AB_OP_STABLE_STATE_CON_ALI = 1769, //Stable map state (CON ALIENCE)
BG_AB_OP_STABLE_STATE_CON_HOR = 1770, //Stable map state (CON HORDE)
BG_AB_OP_FARM_ICON = 1845, //Farm map icon (NONE)
BG_AB_OP_FARM_STATE_ALIENCE = 1772, //Farm state (ALIENCE)
BG_AB_OP_FARM_STATE_HORDE = 1773, //Farm state (HORDE)
BG_AB_OP_FARM_STATE_CON_ALI = 1774, //Farm state (CON ALIENCE)
BG_AB_OP_FARM_STATE_CON_HOR = 1775, //Farm state (CON HORDE)
BG_AB_OP_BLACKSMITH_ICON = 1846, //Blacksmith map icon (NONE)
BG_AB_OP_BLACKSMITH_STATE_ALIENCE = 1782, //Blacksmith map state (ALIENCE)
BG_AB_OP_BLACKSMITH_STATE_HORDE = 1783, //Blacksmith map state (HORDE)
BG_AB_OP_BLACKSMITH_STATE_CON_ALI = 1784, //Blacksmith map state (CON ALIENCE)
BG_AB_OP_BLACKSMITH_STATE_CON_HOR = 1785, //Blacksmith map state (CON HORDE)
BG_AB_OP_LUMBERMILL_ICON = 1844, //Lumber Mill map icon (NONE)
BG_AB_OP_LUMBERMILL_STATE_ALIENCE = 1792, //Lumber Mill map state (ALIENCE)
BG_AB_OP_LUMBERMILL_STATE_HORDE = 1793, //Lumber Mill map state (HORDE)
BG_AB_OP_LUMBERMILL_STATE_CON_ALI = 1794, //Lumber Mill map state (CON ALIENCE)
BG_AB_OP_LUMBERMILL_STATE_CON_HOR = 1795, //Lumber Mill map state (CON HORDE)
BG_AB_OP_GOLDMINE_ICON = 1843, //Gold Mine map icon (NONE)
BG_AB_OP_GOLDMINE_STATE_ALIENCE = 1787, //Gold Mine map state (ALIENCE)
BG_AB_OP_GOLDMINE_STATE_HORDE = 1788, //Gold Mine map state (HORDE)
BG_AB_OP_GOLDMINE_STATE_CON_ALI = 1789, //Gold Mine map state (CON ALIENCE
BG_AB_OP_GOLDMINE_STATE_CON_HOR = 1790, //Gold Mine map state (CON HORDE)
};
enum BG_AB_ObjectIds
{
BG_AB_OBJECTID_NODE_BANNER_0 = 180087, // Stables banner

View file

@ -272,7 +272,7 @@ void BattlegroundAV::UpdateScore(TeamId teamId, int16 points)
//note: to remove reinforcementpoints points must be negative, for adding reinforcements points must be positive
m_Team_Scores[teamId] += points;
UpdateWorldState(((teamId == TEAM_HORDE) ? AV_Horde_Score : AV_Alliance_Score), m_Team_Scores[teamId]);
UpdateWorldState(((teamId == TEAM_HORDE) ? WORLD_STATE_BATTLEGROUND_AV_HORDE_SCORE : WORLD_STATE_BATTLEGROUND_AV_ALLIANCE_SCORE), m_Team_Scores[teamId]);
if (points < 0)
{
if (m_Team_Scores[teamId] < 1)
@ -480,8 +480,8 @@ void BattlegroundAV::StartingEventOpenDoors()
if (BG_AV_SCORE_INITIAL_POINTS > 0) // display teamscores on top only if reinforcements are enabled
{
UpdateWorldState(AV_SHOW_H_SCORE, 1);
UpdateWorldState(AV_SHOW_A_SCORE, 1);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_AV_SHOW_HORDE_SCORE, 1);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_AV_SHOW_ALLIANCE_SCORE, 1);
}
DoorOpen(BG_AV_OBJECT_DOOR_H);
@ -1118,14 +1118,14 @@ void BattlegroundAV::FillInitialWorldStates(WorldPackets::WorldState::InitWorldS
}
if (m_Nodes[BG_AV_NODES_SNOWFALL_GRAVE].OwnerId == TEAM_NEUTRAL) //cause neutral teams aren't handled generic
{
packet.Worldstates.emplace_back(AV_SNOWFALL_N, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_SNOWFALL_N, 1);
}
packet.Worldstates.emplace_back(AV_Alliance_Score, m_Team_Scores[0]);
packet.Worldstates.emplace_back(AV_Horde_Score, m_Team_Scores[1]);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_ALLIANCE_SCORE, m_Team_Scores[0]);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_HORDE_SCORE, m_Team_Scores[1]);
packet.Worldstates.emplace_back(AV_SHOW_A_SCORE, GetStatus() == STATUS_IN_PROGRESS && BG_AV_SCORE_INITIAL_POINTS > 0 ? 1 : 0);
packet.Worldstates.emplace_back(AV_SHOW_H_SCORE, GetStatus() == STATUS_IN_PROGRESS && BG_AV_SCORE_INITIAL_POINTS > 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_SHOW_ALLIANCE_SCORE, GetStatus() == STATUS_IN_PROGRESS && BG_AV_SCORE_INITIAL_POINTS > 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_SHOW_HORDE_SCORE, GetStatus() == STATUS_IN_PROGRESS && BG_AV_SCORE_INITIAL_POINTS > 0 ? 1 : 0);
SendMineWorldStates(AV_NORTH_MINE);
SendMineWorldStates(AV_SOUTH_MINE);
@ -1158,7 +1158,7 @@ void BattlegroundAV::UpdateNodeWorldState(BG_AV_Nodes node)
{
UpdateWorldState(BG_AV_NodeWorldStates[node][GetWorldStateType(m_Nodes[node].State, m_Nodes[node].OwnerId)], 1);
if (m_Nodes[node].PrevOwnerId == TEAM_NEUTRAL) //currently only snowfall is supported as neutral node (i don't want to make an extra row (neutral states) in worldstatesarray just for one node
UpdateWorldState(AV_SNOWFALL_N, 0);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_AV_SNOWFALL_N, 0);
else
UpdateWorldState(BG_AV_NodeWorldStates[node][GetWorldStateType(m_Nodes[node].PrevState, m_Nodes[node].PrevOwnerId)], 0);
}

View file

@ -20,6 +20,7 @@
#include "Battleground.h"
#include "BattlegroundScore.h"
#include "WorldStateDefines.h"
#define BG_AV_CAPTIME 240000 //4:00
#define BG_AV_SNOWFALL_FIRSTCAP 300000 //5:00 but i also have seen 4:05
@ -1548,159 +1549,46 @@ enum BG_AV_States
POINT_CONTROLED = 3
};
enum BG_AV_WorldStates
{
AV_Alliance_Score = 3127,
AV_Horde_Score = 3128,
AV_SHOW_H_SCORE = 3133,
AV_SHOW_A_SCORE = 3134,
/*
//the comments behind the state shows which icon overlaps the other.. but is, until now, unused and maybe not a good solution (but give few performance (:)
// Graves
// Alliance
//Stormpike first aid station
AV_AID_A_C = 1325,
AV_AID_A_A = 1326,
AV_AID_H_C = 1327,
AV_AID_H_A = 1328,
//Stormpike Graveyard
AV_PIKEGRAVE_A_C = 1333,
AV_PIKEGRAVE_A_A = 1335,
AV_PIKEGRAVE_H_C = 1334,
AV_PIKEGRAVE_H_A = 1336,
//Stoneheart Grave
AV_STONEHEART_A_C = 1302,
AV_STONEHEART_A_A = 1304, //over hc
AV_STONEHEART_H_C = 1301, //over ac
AV_STONEHEART_H_A = 1303, //over aa
//Neutral
//Snowfall Grave
*/
AV_SNOWFALL_N = 1966, //over aa
/*
AV_SNOWFALL_A_C = 1341, //over hc
AV_SNOWFALL_A_A = 1343, //over ha
AV_SNOWFALL_H_C = 1342,
AV_SNOWFALL_H_A = 1344, //over ac
//Horde
//Iceblood grave
AV_ICEBLOOD_A_C = 1346, //over hc
AV_ICEBLOOD_A_A = 1348, //over ac
AV_ICEBLOOD_H_C = 1347,
AV_ICEBLOOD_H_A = 1349, //over aa
//Frostwolf Grave
AV_FROSTWOLF_A_C = 1337, //over hc
AV_FROSTWOLF_A_A = 1339, //over ac
AV_FROSTWOLF_H_C = 1338,
AV_FROSTWOLF_H_A = 1340, //over aa
//Frostwolf Hut
AV_FROSTWOLFHUT_A_C = 1329, //over hc
AV_FROSTWOLFHUT_A_A = 1331, //over ha
AV_FROSTWOLFHUT_H_C = 1330,
AV_FROSTWOLFHUT_H_A = 1332, //over ac
//Towers
//Alliance
//Dunbaldar South Bunker
AV_DUNS_CONTROLLED = 1361,
AV_DUNS_DESTROYED = 1370,
AV_DUNS_ASSAULTED = 1378,
//Dunbaldar North Bunker
AV_DUNN_CONTROLLED = 1362,
AV_DUNN_DESTROYED = 1371,
AV_DUNN_ASSAULTED = 1379,
//Icewing Bunker
AV_ICEWING_CONTROLLED = 1363,
AV_ICEWING_DESTROYED = 1372,
AV_ICEWING_ASSAULTED = 1380,
//Stoneheart Bunker
AV_STONEH_CONTROLLED = 1364,
AV_STONEH_DESTROYED = 1373,
AV_STONEH_ASSAULTED = 1381,
//Horde
//Iceblood Tower
AV_ICEBLOOD_CONTROLLED = 1385,
AV_ICEBLOOD_DESTROYED = 1368,
AV_ICEBLOOD_ASSAULTED = 1390,
//Tower Point
AV_TOWERPOINT_CONTROLLED = 1384,
AV_TOWERPOINT_DESTROYED = 1367, //goes over controlled
AV_TOWERPOINT_ASSAULTED = 1389, //goes over destroyed
//Frostwolf West
AV_FROSTWOLFW_CONTROLLED = 1382,
AV_FROSTWOLFW_DESTROYED = 1365, //over controlled
AV_FROSTWOLFW_ASSAULTED = 1387, //over destroyed
//Frostwolf East
AV_FROSTWOLFE_CONTROLLED = 1383,
AV_FROSTWOLFE_DESTROYED = 1366,
AV_FROSTWOLFE_ASSAULTED = 1388,
//mines
AV_N_MINE_N = 1360,
AV_N_MINE_A = 1358,
AV_N_MINE_H = 1359,
AV_S_MINE_N = 1357,
AV_S_MINE_A = 1355,
AV_S_MINE_H = 1356,
//towers assaulted by own team (unused)
AV_STONEH_UNUSED = 1377,
AV_ICEWING_UNUSED = 1376,
AV_DUNS_UNUSED = 1375,
AV_DUNN_UNUSED = 1374,
AV_ICEBLOOD_UNUSED = 1395,
AV_TOWERPOINT_UNUSED = 1394,
AV_FROSTWOLFE_UNUSED = 1393,
AV_FROSTWOLFW_UNUSED = 1392
*/
};
//alliance_control neutral_control horde_control
const uint32 BG_AV_MineWorldStates[2][3] =
{
{1358, 1360, 1359},
{1355, 1357, 1356}
{WORLD_STATE_BATTLEGROUND_AV_N_MINE_A, WORLD_STATE_BATTLEGROUND_AV_N_MINE_N, WORLD_STATE_BATTLEGROUND_AV_N_MINE_H},
{WORLD_STATE_BATTLEGROUND_AV_S_MINE_A, WORLD_STATE_BATTLEGROUND_AV_S_MINE_N, WORLD_STATE_BATTLEGROUND_AV_S_MINE_H}
};
//alliance_control alliance_assault h_control h_assault
const uint32 BG_AV_NodeWorldStates[16][4] =
{
//Stormpike first aid station
{1325, 1326, 1327, 1328},
{WORLD_STATE_BATTLEGROUND_AV_AID_A_C, WORLD_STATE_BATTLEGROUND_AV_AID_A_A, WORLD_STATE_BATTLEGROUND_AV_AID_H_C, WORLD_STATE_BATTLEGROUND_AV_AID_H_A},
//Stormpike Graveyard
{1333, 1335, 1334, 1336},
{WORLD_STATE_BATTLEGROUND_AV_PIKEGRAVE_A_C, WORLD_STATE_BATTLEGROUND_AV_PIKEGRAVE_A_A, WORLD_STATE_BATTLEGROUND_AV_PIKEGRAVE_H_C, WORLD_STATE_BATTLEGROUND_AV_PIKEGRAVE_H_A},
//Stoneheart Grave
{1302, 1304, 1301, 1303},
{WORLD_STATE_BATTLEGROUND_AV_STONEHEART_A_C, WORLD_STATE_BATTLEGROUND_AV_STONEHEART_A_A, WORLD_STATE_BATTLEGROUND_AV_STONEHEART_H_C, WORLD_STATE_BATTLEGROUND_AV_STONEHEART_H_A},
//Snowfall Grave
{1341, 1343, 1342, 1344},
{WORLD_STATE_BATTLEGROUND_AV_SNOWFALL_A_C, WORLD_STATE_BATTLEGROUND_AV_SNOWFALL_A_A, WORLD_STATE_BATTLEGROUND_AV_SNOWFALL_H_C, WORLD_STATE_BATTLEGROUND_AV_SNOWFALL_H_A},
//Iceblood grave
{1346, 1348, 1347, 1349},
{WORLD_STATE_BATTLEGROUND_AV_ICEBLOOD_A_C, WORLD_STATE_BATTLEGROUND_AV_ICEBLOOD_A_A, WORLD_STATE_BATTLEGROUND_AV_ICEBLOOD_H_C, WORLD_STATE_BATTLEGROUND_AV_ICEBLOOD_H_A},
//Frostwolf Grave
{1337, 1339, 1338, 1340},
{WORLD_STATE_BATTLEGROUND_AV_FROSTWOLF_A_C, WORLD_STATE_BATTLEGROUND_AV_FROSTWOLF_A_A, WORLD_STATE_BATTLEGROUND_AV_FROSTWOLF_H_C, WORLD_STATE_BATTLEGROUND_AV_FROSTWOLF_H_A},
//Frostwolf Hut
{1329, 1331, 1330, 1332},
{WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFHUT_A_C, WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFHUT_A_A, WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFHUT_H_C, WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFHUT_H_A},
//Dunbaldar South Bunker
{1361, 1375, 1370, 1378},
{WORLD_STATE_BATTLEGROUND_AV_DUNS_CONTROLLED, WORLD_STATE_BATTLEGROUND_AV_DUNS_UNUSED, WORLD_STATE_BATTLEGROUND_AV_DUNS_DESTROYED, WORLD_STATE_BATTLEGROUND_AV_DUNS_ASSAULTED},
//Dunbaldar North Bunker
{1362, 1374, 1371, 1379},
{WORLD_STATE_BATTLEGROUND_AV_DUNN_CONTROLLED, WORLD_STATE_BATTLEGROUND_AV_DUNN_UNUSED, WORLD_STATE_BATTLEGROUND_AV_DUNN_DESTROYED, WORLD_STATE_BATTLEGROUND_AV_DUNN_ASSAULTED},
//Icewing Bunker
{1363, 1376, 1372, 1380},
{WORLD_STATE_BATTLEGROUND_AV_ICEWING_CONTROLLED, WORLD_STATE_BATTLEGROUND_AV_ICEWING_UNUSED, WORLD_STATE_BATTLEGROUND_AV_ICEWING_DESTROYED, WORLD_STATE_BATTLEGROUND_AV_ICEWING_ASSAULTED},
//Stoneheart Bunker
{1364, 1377, 1373, 1381},
{WORLD_STATE_BATTLEGROUND_AV_STONEH_CONTROLLED, WORLD_STATE_BATTLEGROUND_AV_STONEH_UNUSED, WORLD_STATE_BATTLEGROUND_AV_STONEH_DESTROYED, WORLD_STATE_BATTLEGROUND_AV_STONEH_ASSAULTED},
//Iceblood Tower
{1368, 1390, 1385, 1395},
{WORLD_STATE_BATTLEGROUND_AV_ICEBLOOD_DESTROYED, WORLD_STATE_BATTLEGROUND_AV_ICEBLOOD_ASSAULTED, WORLD_STATE_BATTLEGROUND_AV_ICEBLOOD_CONTROLLED, WORLD_STATE_BATTLEGROUND_AV_ICEBLOOD_UNUSED},
//Tower Point
{1367, 1389, 1384, 1394},
{WORLD_STATE_BATTLEGROUND_AV_TOWERPOINT_DESTROYED, WORLD_STATE_BATTLEGROUND_AV_TOWERPOINT_ASSAULTED, WORLD_STATE_BATTLEGROUND_AV_TOWERPOINT_CONTROLLED, WORLD_STATE_BATTLEGROUND_AV_TOWERPOINT_UNUSED},
//Frostwolf East
{1366, 1388, 1383, 1393},
{WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFE_DESTROYED, WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFE_ASSAULTED, WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFE_CONTROLLED, WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFE_UNUSED},
//Frostwolf West
{1365, 1387, 1382, 1392},
{WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFW_DESTROYED, WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFW_ASSAULTED, WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFW_CONTROLLED, WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFW_UNUSED},
};
enum BG_AV_QuestIds

View file

@ -20,6 +20,7 @@
#include "Player.h"
#include "WorldPacket.h"
#include "WorldStatePackets.h"
#include "WorldStateDefines.h"
BattlegroundBE::BattlegroundBE()
{
@ -90,7 +91,7 @@ void BattlegroundBE::HandleAreaTrigger(Player* player, uint32 trigger)
void BattlegroundBE::FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet)
{
packet.Worldstates.emplace_back(0x9f3, 1); // BATTLEGROUND_BLADES_EDGE_ARENA_SHOW
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_BE_ARENA_SHOW, 1);
Arena::FillInitialWorldStates(packet);
}

View file

@ -22,6 +22,7 @@
#include "ObjectAccessor.h"
#include "Player.h"
#include "WorldPacket.h"
#include "WorldStateDefines.h"
#include "WorldStatePackets.h"
BattlegroundDS::BattlegroundDS()
@ -176,7 +177,7 @@ bool BattlegroundDS::HandlePlayerUnderMap(Player* player)
void BattlegroundDS::FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet)
{
packet.Worldstates.emplace_back(0xe1a, 1); // ARENA_WORLD_STATE_ALIVE_PLAYERS_SHOW
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_RV_ARENA_SHOW, 1); // Wrong worldstate used
Arena::FillInitialWorldStates(packet);
}

View file

@ -120,7 +120,7 @@ void BattlegroundEY::AddPoints(TeamId teamId, uint32 points)
for (; honorRewards < uint8(m_TeamScores[teamId] / _honorTics); ++honorRewards)
RewardHonorToTeam(GetBonusHonorFromKill(1), teamId);
UpdateWorldState(teamId == TEAM_ALLIANCE ? EY_ALLIANCE_RESOURCES : EY_HORDE_RESOURCES, std::min<uint32>(m_TeamScores[teamId], _configurableMaxTeamScore));
UpdateWorldState(teamId == TEAM_ALLIANCE ? WORLD_STATE_BATTLEGROUND_EY_ALLIANCE_RESOURCES : WORLD_STATE_BATTLEGROUND_EY_HORDE_RESOURCES, std::min<uint32>(m_TeamScores[teamId], _configurableMaxTeamScore));
if (m_TeamScores[teamId] >= static_cast<int32>(_configurableMaxTeamScore))
EndBattleground(teamId);
}
@ -138,14 +138,14 @@ void BattlegroundEY::UpdatePointsState()
const BattlegroundPlayerMap& bgPlayerMap = GetPlayers();
for (BattlegroundPlayerMap::const_iterator itr = bgPlayerMap.begin(); itr != bgPlayerMap.end(); ++itr)
{
itr->second->SendUpdateWorldState(PROGRESS_BAR_SHOW, BG_EY_PROGRESS_BAR_DONT_SHOW);
itr->second->SendUpdateWorldState(WORLD_STATE_BATTLEGROUND_EY_PROGRESS_BAR_SHOW, BG_EY_PROGRESS_BAR_DONT_SHOW);
for (uint8 point = 0; point < EY_POINTS_MAX; ++point)
if (GameObject* pointObject = pointsVec[point])
if (itr->second->CanCaptureTowerPoint() && itr->second->IsWithinDistInMap(pointObject, BG_EY_POINT_RADIUS))
{
itr->second->SendUpdateWorldState(PROGRESS_BAR_SHOW, BG_EY_PROGRESS_BAR_SHOW);
itr->second->SendUpdateWorldState(PROGRESS_BAR_PERCENT_GREY, BG_EY_PROGRESS_BAR_PERCENT_GREY);
itr->second->SendUpdateWorldState(PROGRESS_BAR_STATUS, _capturePointInfo[point]._barStatus);
itr->second->SendUpdateWorldState(WORLD_STATE_BATTLEGROUND_EY_PROGRESS_BAR_SHOW, BG_EY_PROGRESS_BAR_SHOW);
itr->second->SendUpdateWorldState(WORLD_STATE_BATTLEGROUND_EY_PROGRESS_BAR_PERCENT_GREY, BG_EY_PROGRESS_BAR_PERCENT_GREY);
itr->second->SendUpdateWorldState(WORLD_STATE_BATTLEGROUND_EY_PROGRESS_BAR_STATUS, _capturePointInfo[point]._barStatus);
++_capturePointInfo[point]._playersCount[itr->second->GetTeamId()];
_capturePointInfo[point].player = itr->second;
@ -187,8 +187,8 @@ void BattlegroundEY::EndBattleground(TeamId winnerTeamId)
void BattlegroundEY::UpdatePointsCount()
{
UpdateWorldState(EY_ALLIANCE_BASE, _ownedPointsCount[TEAM_ALLIANCE]);
UpdateWorldState(EY_HORDE_BASE, _ownedPointsCount[TEAM_HORDE]);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_EY_ALLIANCE_BASE, _ownedPointsCount[TEAM_ALLIANCE]);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_EY_HORDE_BASE, _ownedPointsCount[TEAM_HORDE]);
}
void BattlegroundEY::UpdatePointsIcons(uint32 point)
@ -382,7 +382,7 @@ void BattlegroundEY::RespawnFlag()
SendBroadcastText(BG_EY_TEXT_FLAG_RESET, CHAT_MSG_BG_SYSTEM_NEUTRAL);
PlaySoundToAll(BG_EY_SOUND_FLAG_RESET);
UpdateWorldState(NETHERSTORM_FLAG, 1);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_EY_FLAG, 1);
}
void BattlegroundEY::RespawnFlagAfterDrop()
@ -442,7 +442,7 @@ void BattlegroundEY::EventPlayerClickedOnFlag(Player* player, GameObject* gameOb
player->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_ENTER_PVP_COMBAT);
PlaySoundToAll(player->GetTeamId() == TEAM_ALLIANCE ? BG_EY_SOUND_FLAG_PICKED_UP_ALLIANCE : BG_EY_SOUND_FLAG_PICKED_UP_HORDE);
UpdateWorldState(NETHERSTORM_FLAG, 0);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_EY_FLAG, 0);
if (player->GetTeamId() == TEAM_ALLIANCE)
SendBroadcastText(BG_EY_TEXT_TAKEN_FLAG, CHAT_MSG_BG_SYSTEM_ALLIANCE, player);
@ -577,28 +577,28 @@ bool BattlegroundEY::UpdatePlayerScore(Player* player, uint32 type, uint32 value
void BattlegroundEY::FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet)
{
packet.Worldstates.reserve(22);
packet.Worldstates.emplace_back(EY_HORDE_BASE, _ownedPointsCount[TEAM_HORDE]);
packet.Worldstates.emplace_back(EY_ALLIANCE_BASE, _ownedPointsCount[TEAM_ALLIANCE]);
packet.Worldstates.emplace_back(DRAENEI_RUINS_HORDE_CONTROL, _capturePointInfo[POINT_DRAENEI_RUINS].IsUnderControl(TEAM_HORDE));
packet.Worldstates.emplace_back(DRAENEI_RUINS_ALLIANCE_CONTROL, _capturePointInfo[POINT_DRAENEI_RUINS].IsUnderControl(TEAM_ALLIANCE));
packet.Worldstates.emplace_back(DRAENEI_RUINS_UNCONTROL, _capturePointInfo[POINT_DRAENEI_RUINS].IsUncontrolled());
packet.Worldstates.emplace_back(MAGE_TOWER_ALLIANCE_CONTROL, _capturePointInfo[POINT_MAGE_TOWER].IsUnderControl(TEAM_HORDE));
packet.Worldstates.emplace_back(MAGE_TOWER_HORDE_CONTROL, _capturePointInfo[POINT_MAGE_TOWER].IsUnderControl(TEAM_ALLIANCE));
packet.Worldstates.emplace_back(MAGE_TOWER_UNCONTROL, _capturePointInfo[POINT_MAGE_TOWER].IsUncontrolled());
packet.Worldstates.emplace_back(FEL_REAVER_HORDE_CONTROL, _capturePointInfo[POINT_FEL_REAVER].IsUnderControl(TEAM_HORDE));
packet.Worldstates.emplace_back(FEL_REAVER_ALLIANCE_CONTROL, _capturePointInfo[POINT_FEL_REAVER].IsUnderControl(TEAM_ALLIANCE));
packet.Worldstates.emplace_back(FEL_REAVER_UNCONTROL, _capturePointInfo[POINT_FEL_REAVER].IsUncontrolled());
packet.Worldstates.emplace_back(BLOOD_ELF_HORDE_CONTROL, _capturePointInfo[POINT_BLOOD_ELF].IsUnderControl(TEAM_HORDE));
packet.Worldstates.emplace_back(BLOOD_ELF_ALLIANCE_CONTROL, _capturePointInfo[POINT_BLOOD_ELF].IsUnderControl(TEAM_ALLIANCE));
packet.Worldstates.emplace_back(BLOOD_ELF_UNCONTROL, _capturePointInfo[POINT_BLOOD_ELF].IsUncontrolled());
packet.Worldstates.emplace_back(NETHERSTORM_FLAG, _flagState == BG_EY_FLAG_STATE_ON_BASE);
packet.Worldstates.emplace_back(NETHERSTORM_FLAG_STATE_HORDE, 1);
packet.Worldstates.emplace_back(NETHERSTORM_FLAG_STATE_ALLIANCE, 1);
packet.Worldstates.emplace_back(EY_HORDE_RESOURCES, GetTeamScore(TEAM_HORDE));
packet.Worldstates.emplace_back(EY_ALLIANCE_RESOURCES, GetTeamScore(TEAM_ALLIANCE));
packet.Worldstates.emplace_back(PROGRESS_BAR_SHOW, 0);
packet.Worldstates.emplace_back(PROGRESS_BAR_PERCENT_GREY, 0);
packet.Worldstates.emplace_back(PROGRESS_BAR_STATUS, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_HORDE_BASE, _ownedPointsCount[TEAM_HORDE]);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_ALLIANCE_BASE, _ownedPointsCount[TEAM_ALLIANCE]);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_DRAENEI_RUINS_HORDE_CONTROL, _capturePointInfo[POINT_DRAENEI_RUINS].IsUnderControl(TEAM_HORDE));
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_DRAENEI_RUINS_ALLIANCE_CONTROL, _capturePointInfo[POINT_DRAENEI_RUINS].IsUnderControl(TEAM_ALLIANCE));
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_DRAENEI_RUINS_UNCONTROL, _capturePointInfo[POINT_DRAENEI_RUINS].IsUncontrolled());
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_MAGE_TOWER_ALLIANCE_CONTROL, _capturePointInfo[POINT_MAGE_TOWER].IsUnderControl(TEAM_HORDE));
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_MAGE_TOWER_HORDE_CONTROL, _capturePointInfo[POINT_MAGE_TOWER].IsUnderControl(TEAM_ALLIANCE));
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_MAGE_TOWER_UNCONTROL, _capturePointInfo[POINT_MAGE_TOWER].IsUncontrolled());
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_FEL_REAVER_HORDE_CONTROL, _capturePointInfo[POINT_FEL_REAVER].IsUnderControl(TEAM_HORDE));
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_FEL_REAVER_ALLIANCE_CONTROL, _capturePointInfo[POINT_FEL_REAVER].IsUnderControl(TEAM_ALLIANCE));
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_FEL_REAVER_UNCONTROL, _capturePointInfo[POINT_FEL_REAVER].IsUncontrolled());
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_BLOOD_ELF_HORDE_CONTROL, _capturePointInfo[POINT_BLOOD_ELF].IsUnderControl(TEAM_HORDE));
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_BLOOD_ELF_ALLIANCE_CONTROL, _capturePointInfo[POINT_BLOOD_ELF].IsUnderControl(TEAM_ALLIANCE));
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_BLOOD_ELF_UNCONTROL, _capturePointInfo[POINT_BLOOD_ELF].IsUncontrolled());
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_FLAG, _flagState == BG_EY_FLAG_STATE_ON_BASE);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_FLAG_STATE_HORDE, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_FLAG_STATE_ALLIANCE, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_HORDE_RESOURCES, GetTeamScore(TEAM_HORDE));
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_ALLIANCE_RESOURCES, GetTeamScore(TEAM_ALLIANCE));
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_PROGRESS_BAR_SHOW, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_PROGRESS_BAR_PERCENT_GREY, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_PROGRESS_BAR_STATUS, 0);
}
GraveyardStruct const* BattlegroundEY::GetClosestGraveyard(Player* player)

View file

@ -21,6 +21,7 @@
#include "Battleground.h"
#include "BattlegroundScore.h"
#include "EventMap.h"
#include "WorldStateDefines.h"
enum BG_EY_Events
{
@ -38,33 +39,6 @@ enum BG_EY_Timers
BG_EY_FPOINTS_TICK_TIME = 2 * IN_MILLISECONDS
};
enum BG_EY_WorldStates
{
EY_ALLIANCE_RESOURCES = 2749,
EY_HORDE_RESOURCES = 2750,
EY_ALLIANCE_BASE = 2752,
EY_HORDE_BASE = 2753,
DRAENEI_RUINS_HORDE_CONTROL = 2733,
DRAENEI_RUINS_ALLIANCE_CONTROL = 2732,
DRAENEI_RUINS_UNCONTROL = 2731,
MAGE_TOWER_ALLIANCE_CONTROL = 2730,
MAGE_TOWER_HORDE_CONTROL = 2729,
MAGE_TOWER_UNCONTROL = 2728,
FEL_REAVER_HORDE_CONTROL = 2727,
FEL_REAVER_ALLIANCE_CONTROL = 2726,
FEL_REAVER_UNCONTROL = 2725,
BLOOD_ELF_HORDE_CONTROL = 2724,
BLOOD_ELF_ALLIANCE_CONTROL = 2723,
BLOOD_ELF_UNCONTROL = 2722,
PROGRESS_BAR_PERCENT_GREY = 2720, //100 = empty (only grey), 0 = blue|red (no grey)
PROGRESS_BAR_STATUS = 2719, //50 init!, 48 ... hordak bere .. 33 .. 0 = full 100% hordacky, 100 = full alliance
PROGRESS_BAR_SHOW = 2718, //1 init, 0 druhy send - bez messagu, 1 = controlled aliance
NETHERSTORM_FLAG = 2757,
//set to 2 when flag is picked up, and to 1 if it is dropped
NETHERSTORM_FLAG_STATE_ALLIANCE = 2769,
NETHERSTORM_FLAG_STATE_HORDE = 2770
};
enum BG_EY_ProgressBarConsts
{
BG_EY_POINT_MAX_CAPTURERS_COUNT = 5,
@ -326,10 +300,10 @@ const uint32 BG_EY_FlagPoints[EY_POINTS_MAX] = {75, 85, 100, 500};
//constant arrays:
const BattlegroundEYPointIconsStruct m_PointsIconStruct[EY_POINTS_MAX] =
{
BattlegroundEYPointIconsStruct(FEL_REAVER_UNCONTROL, FEL_REAVER_ALLIANCE_CONTROL, FEL_REAVER_HORDE_CONTROL),
BattlegroundEYPointIconsStruct(BLOOD_ELF_UNCONTROL, BLOOD_ELF_ALLIANCE_CONTROL, BLOOD_ELF_HORDE_CONTROL),
BattlegroundEYPointIconsStruct(DRAENEI_RUINS_UNCONTROL, DRAENEI_RUINS_ALLIANCE_CONTROL, DRAENEI_RUINS_HORDE_CONTROL),
BattlegroundEYPointIconsStruct(MAGE_TOWER_UNCONTROL, MAGE_TOWER_ALLIANCE_CONTROL, MAGE_TOWER_HORDE_CONTROL)
BattlegroundEYPointIconsStruct(WORLD_STATE_BATTLEGROUND_EY_FEL_REAVER_UNCONTROL, WORLD_STATE_BATTLEGROUND_EY_FEL_REAVER_ALLIANCE_CONTROL, WORLD_STATE_BATTLEGROUND_EY_FEL_REAVER_HORDE_CONTROL),
BattlegroundEYPointIconsStruct(WORLD_STATE_BATTLEGROUND_EY_BLOOD_ELF_UNCONTROL, WORLD_STATE_BATTLEGROUND_EY_BLOOD_ELF_ALLIANCE_CONTROL, WORLD_STATE_BATTLEGROUND_EY_BLOOD_ELF_HORDE_CONTROL),
BattlegroundEYPointIconsStruct(WORLD_STATE_BATTLEGROUND_EY_DRAENEI_RUINS_UNCONTROL, WORLD_STATE_BATTLEGROUND_EY_DRAENEI_RUINS_ALLIANCE_CONTROL, WORLD_STATE_BATTLEGROUND_EY_DRAENEI_RUINS_HORDE_CONTROL),
BattlegroundEYPointIconsStruct(WORLD_STATE_BATTLEGROUND_EY_MAGE_TOWER_UNCONTROL, WORLD_STATE_BATTLEGROUND_EY_MAGE_TOWER_ALLIANCE_CONTROL, WORLD_STATE_BATTLEGROUND_EY_MAGE_TOWER_HORDE_CONTROL)
};
const BattlegroundEYLosingPointStruct m_LosingPointTypes[EY_POINTS_MAX] =

View file

@ -268,7 +268,7 @@ void BattlegroundIC::PostUpdateImpl(uint32 diff)
{
factionReinforcements[nodePoint[i].faction] += 1;
RewardHonorToTeam(RESOURCE_HONOR_AMOUNT, nodePoint[i].faction);
UpdateWorldState((nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_ALLIANCE_RENFORT : BG_IC_HORDE_RENFORT), factionReinforcements[nodePoint[i].faction]);
UpdateWorldState((nodePoint[i].faction == TEAM_ALLIANCE ? WORLD_STATE_BATTLEGROUND_IC_ALLIANCE_REINFORCEMENT : WORLD_STATE_BATTLEGROUND_IC_HORDE_REINFORCEMENT), factionReinforcements[nodePoint[i].faction]);
}
}
resourceTimer = IC_RESOURCE_TIME;
@ -385,10 +385,10 @@ bool BattlegroundIC::UpdatePlayerScore(Player* player, uint32 type, uint32 value
void BattlegroundIC::FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet)
{
packet.Worldstates.reserve(4+MAX_FORTRESS_GATES_SPAWNS+MAX_NODE_TYPES+1);
packet.Worldstates.emplace_back(BG_IC_ALLIANCE_RENFORT_SET, 1);
packet.Worldstates.emplace_back(BG_IC_HORDE_RENFORT_SET, 1);
packet.Worldstates.emplace_back(BG_IC_ALLIANCE_RENFORT, factionReinforcements[TEAM_ALLIANCE]);
packet.Worldstates.emplace_back(BG_IC_HORDE_RENFORT, factionReinforcements[TEAM_HORDE]);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_IC_ALLIANCE_REINFORCEMENT_SET, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_IC_HORDE_REINFORCEMENT_SET, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_IC_ALLIANCE_REINFORCEMENT, factionReinforcements[TEAM_ALLIANCE]);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_IC_HORDE_REINFORCEMENT, factionReinforcements[TEAM_HORDE]);
for (uint8 i = 0; i < MAX_FORTRESS_GATES_SPAWNS; ++i)
{
@ -399,7 +399,7 @@ void BattlegroundIC::FillInitialWorldStates(WorldPackets::WorldState::InitWorldS
for (uint8 i = 0; i < MAX_NODE_TYPES; ++i)
packet.Worldstates.emplace_back(nodePoint[i].worldStates[nodePoint[i].nodeState], 1);
packet.Worldstates.emplace_back(BG_IC_HORDE_RENFORT_SET, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_IC_HORDE_REINFORCEMENT_SET, 1);
}
bool BattlegroundIC::SetupBattleground()
@ -545,7 +545,7 @@ void BattlegroundIC::HandleKillPlayer(Player* player, Player* killer)
factionReinforcements[player->GetTeamId()] -= 1;
UpdateWorldState((player->GetTeamId() == TEAM_ALLIANCE ? BG_IC_ALLIANCE_RENFORT : BG_IC_HORDE_RENFORT), factionReinforcements[player->GetTeamId()]);
UpdateWorldState((player->GetTeamId() == TEAM_ALLIANCE ? WORLD_STATE_BATTLEGROUND_IC_ALLIANCE_REINFORCEMENT : WORLD_STATE_BATTLEGROUND_IC_HORDE_REINFORCEMENT), factionReinforcements[player->GetTeamId()]);
// we must end the battleground
if (factionReinforcements[player->GetTeamId()] < 1)

View file

@ -21,6 +21,7 @@
#include "Battleground.h"
#include "BattlegroundScore.h"
#include "Object.h"
#include "WorldStateDefines.h"
const uint32 BG_IC_Factions[PVP_TEAMS_COUNT] =
{
@ -735,68 +736,6 @@ enum BG_IC_Objectives
IC_OBJECTIVE_DEFEND_BASE = 246
};
enum ICWorldStates
{
BG_IC_ALLIANCE_RENFORT_SET = 4221,
BG_IC_HORDE_RENFORT_SET = 4222,
BG_IC_ALLIANCE_RENFORT = 4226,
BG_IC_HORDE_RENFORT = 4227,
BG_IC_GATE_FRONT_H_WS_CLOSED = 4317,
BG_IC_GATE_WEST_H_WS_CLOSED = 4318,
BG_IC_GATE_EAST_H_WS_CLOSED = 4319,
BG_IC_GATE_FRONT_A_WS_CLOSED = 4328,
BG_IC_GATE_WEST_A_WS_CLOSED = 4327,
BG_IC_GATE_EAST_A_WS_CLOSED = 4326,
BG_IC_GATE_FRONT_H_WS_OPEN = 4322,
BG_IC_GATE_WEST_H_WS_OPEN = 4321,
BG_IC_GATE_EAST_H_WS_OPEN = 4320,
BG_IC_GATE_FRONT_A_WS_OPEN = 4323,
BG_IC_GATE_WEST_A_WS_OPEN = 4324,
BG_IC_GATE_EAST_A_WS_OPEN = 4325,
BG_IC_DOCKS_UNCONTROLLED = 4301,
BG_IC_DOCKS_CONFLICT_A = 4305,
BG_IC_DOCKS_CONFLICT_H = 4302,
BG_IC_DOCKS_CONTROLLED_A = 4304,
BG_IC_DOCKS_CONTROLLED_H = 4303,
BG_IC_HANGAR_UNCONTROLLED = 4296,
BG_IC_HANGAR_CONFLICT_A = 4300,
BG_IC_HANGAR_CONFLICT_H = 4297,
BG_IC_HANGAR_CONTROLLED_A = 4299,
BG_IC_HANGAR_CONTROLLED_H = 4298,
BG_IC_QUARRY_UNCONTROLLED = 4306,
BG_IC_QUARRY_CONFLICT_A = 4310,
BG_IC_QUARRY_CONFLICT_H = 4307,
BG_IC_QUARRY_CONTROLLED_A = 4309,
BG_IC_QUARRY_CONTROLLED_H = 4308,
BG_IC_REFINERY_UNCONTROLLED = 4311,
BG_IC_REFINERY_CONFLICT_A = 4315,
BG_IC_REFINERY_CONFLICT_H = 4312,
BG_IC_REFINERY_CONTROLLED_A = 4314,
BG_IC_REFINERY_CONTROLLED_H = 4313,
BG_IC_WORKSHOP_UNCONTROLLED = 4294,
BG_IC_WORKSHOP_CONFLICT_A = 4228,
BG_IC_WORKSHOP_CONFLICT_H = 4293,
BG_IC_WORKSHOP_CONTROLLED_A = 4229,
BG_IC_WORKSHOP_CONTROLLED_H = 4230,
BG_IC_ALLIANCE_KEEP_UNCONTROLLED = 4341,
BG_IC_ALLIANCE_KEEP_CONFLICT_A = 4342,
BG_IC_ALLIANCE_KEEP_CONFLICT_H = 4343,
BG_IC_ALLIANCE_KEEP_CONTROLLED_A = 4339,
BG_IC_ALLIANCE_KEEP_CONTROLLED_H = 4340,
BG_IC_HORDE_KEEP_UNCONTROLLED = 4346,
BG_IC_HORDE_KEEP_CONFLICT_A = 4347,
BG_IC_HORDE_KEEP_CONFLICT_H = 4348,
BG_IC_HORDE_KEEP_CONTROLLED_A = 4344,
BG_IC_HORDE_KEEP_CONTROLLED_H = 4345
};
enum BG_IC_GateState
{
BG_IC_GATE_OK = 1,
@ -901,13 +840,13 @@ struct ICNodePoint
const ICNodePoint nodePointInitial[MAX_NODE_TYPES] =
{
{BG_IC_GO_REFINERY_BANNER, GO_REFINERY_BANNER, TEAM_NEUTRAL, NODE_TYPE_REFINERY, {GO_ALLIANCE_BANNER_REFINERY, GO_ALLIANCE_BANNER_REFINERY_CONT, GO_HORDE_BANNER_REFINERY, GO_HORDE_BANNER_REFINERY_CONT}, false, 0, 0, {BG_IC_REFINERY_UNCONTROLLED, BG_IC_REFINERY_CONFLICT_A, BG_IC_REFINERY_CONFLICT_H, BG_IC_REFINERY_CONTROLLED_A, BG_IC_REFINERY_CONTROLLED_H}, NODE_STATE_UNCONTROLLED},
{BG_IC_GO_QUARRY_BANNER, GO_QUARRY_BANNER, TEAM_NEUTRAL, NODE_TYPE_QUARRY, {GO_ALLIANCE_BANNER_QUARRY, GO_ALLIANCE_BANNER_QUARRY_CONT, GO_HORDE_BANNER_QUARRY, GO_HORDE_BANNER_QUARRY_CONT}, false, 0, 0, {BG_IC_QUARRY_UNCONTROLLED, BG_IC_QUARRY_CONFLICT_A, BG_IC_QUARRY_CONFLICT_H, BG_IC_QUARRY_CONTROLLED_A, BG_IC_QUARRY_CONTROLLED_H}, NODE_STATE_UNCONTROLLED},
{BG_IC_GO_DOCKS_BANNER, GO_DOCKS_BANNER, TEAM_NEUTRAL, NODE_TYPE_DOCKS, {GO_ALLIANCE_BANNER_DOCK, GO_ALLIANCE_BANNER_DOCK_CONT, GO_HORDE_BANNER_DOCK, GO_HORDE_BANNER_DOCK_CONT}, false, 0, 0, {BG_IC_DOCKS_UNCONTROLLED, BG_IC_DOCKS_CONFLICT_A, BG_IC_DOCKS_CONFLICT_H, BG_IC_DOCKS_CONTROLLED_A, BG_IC_DOCKS_CONTROLLED_H}, NODE_STATE_UNCONTROLLED},
{BG_IC_GO_HANGAR_BANNER, GO_HANGAR_BANNER, TEAM_NEUTRAL, NODE_TYPE_HANGAR, {GO_ALLIANCE_BANNER_HANGAR, GO_ALLIANCE_BANNER_HANGAR_CONT, GO_HORDE_BANNER_HANGAR, GO_HORDE_BANNER_HANGAR_CONT}, false, 0, 0, {BG_IC_HANGAR_UNCONTROLLED, BG_IC_HANGAR_CONFLICT_A, BG_IC_HANGAR_CONFLICT_H, BG_IC_HANGAR_CONTROLLED_A, BG_IC_HANGAR_CONTROLLED_H}, NODE_STATE_UNCONTROLLED},
{BG_IC_GO_WORKSHOP_BANNER, GO_WORKSHOP_BANNER, TEAM_NEUTRAL, NODE_TYPE_WORKSHOP, {GO_ALLIANCE_BANNER_WORKSHOP, GO_ALLIANCE_BANNER_WORKSHOP_CONT, GO_HORDE_BANNER_WORKSHOP, GO_HORDE_BANNER_WORKSHOP_CONT}, false, 0, 0, {BG_IC_WORKSHOP_UNCONTROLLED, BG_IC_WORKSHOP_CONFLICT_A, BG_IC_WORKSHOP_CONFLICT_H, BG_IC_WORKSHOP_CONTROLLED_A, BG_IC_WORKSHOP_CONTROLLED_H}, NODE_STATE_UNCONTROLLED},
{BG_IC_GO_ALLIANCE_BANNER, GO_ALLIANCE_BANNER, TEAM_ALLIANCE, NODE_TYPE_GRAVEYARD_A, {GO_ALLIANCE_BANNER_GRAVEYARD_A, GO_ALLIANCE_BANNER_GRAVEYARD_A_CONT, GO_HORDE_BANNER_GRAVEYARD_A, GO_HORDE_BANNER_GRAVEYARD_A_CONT}, false, 0, 0, {BG_IC_ALLIANCE_KEEP_UNCONTROLLED, BG_IC_ALLIANCE_KEEP_CONFLICT_A, BG_IC_ALLIANCE_KEEP_CONFLICT_H, BG_IC_ALLIANCE_KEEP_CONTROLLED_A, BG_IC_ALLIANCE_KEEP_CONTROLLED_H}, NODE_STATE_CONTROLLED_A},
{BG_IC_GO_HORDE_BANNER, GO_HORDE_BANNER, TEAM_HORDE, NODE_TYPE_GRAVEYARD_H, {GO_ALLIANCE_BANNER_GRAVEYARD_H, GO_ALLIANCE_BANNER_GRAVEYARD_H_CONT, GO_HORDE_BANNER_GRAVEYARD_H, GO_HORDE_BANNER_GRAVEYARD_H_CONT}, false, 0, 0, {BG_IC_HORDE_KEEP_UNCONTROLLED, BG_IC_HORDE_KEEP_CONFLICT_A, BG_IC_HORDE_KEEP_CONFLICT_H, BG_IC_HORDE_KEEP_CONTROLLED_A, BG_IC_HORDE_KEEP_CONTROLLED_H}, NODE_STATE_CONTROLLED_H}
{BG_IC_GO_REFINERY_BANNER, GO_REFINERY_BANNER, TEAM_NEUTRAL, NODE_TYPE_REFINERY, {GO_ALLIANCE_BANNER_REFINERY, GO_ALLIANCE_BANNER_REFINERY_CONT, GO_HORDE_BANNER_REFINERY, GO_HORDE_BANNER_REFINERY_CONT}, false, 0, 0, {WORLD_STATE_BATTLEGROUND_IC_REFINERY_UNCONTROLLED, WORLD_STATE_BATTLEGROUND_IC_REFINERY_CONFLICT_A, WORLD_STATE_BATTLEGROUND_IC_REFINERY_CONFLICT_H, WORLD_STATE_BATTLEGROUND_IC_REFINERY_CONTROLLED_A, WORLD_STATE_BATTLEGROUND_IC_REFINERY_CONTROLLED_H}, NODE_STATE_UNCONTROLLED},
{BG_IC_GO_QUARRY_BANNER, GO_QUARRY_BANNER, TEAM_NEUTRAL, NODE_TYPE_QUARRY, {GO_ALLIANCE_BANNER_QUARRY, GO_ALLIANCE_BANNER_QUARRY_CONT, GO_HORDE_BANNER_QUARRY, GO_HORDE_BANNER_QUARRY_CONT}, false, 0, 0, {WORLD_STATE_BATTLEGROUND_IC_QUARRY_UNCONTROLLED, WORLD_STATE_BATTLEGROUND_IC_QUARRY_CONFLICT_A, WORLD_STATE_BATTLEGROUND_IC_QUARRY_CONFLICT_H, WORLD_STATE_BATTLEGROUND_IC_QUARRY_CONTROLLED_A, WORLD_STATE_BATTLEGROUND_IC_QUARRY_CONTROLLED_H}, NODE_STATE_UNCONTROLLED},
{BG_IC_GO_DOCKS_BANNER, GO_DOCKS_BANNER, TEAM_NEUTRAL, NODE_TYPE_DOCKS, {GO_ALLIANCE_BANNER_DOCK, GO_ALLIANCE_BANNER_DOCK_CONT, GO_HORDE_BANNER_DOCK, GO_HORDE_BANNER_DOCK_CONT}, false, 0, 0, {WORLD_STATE_BATTLEGROUND_IC_DOCKS_UNCONTROLLED, WORLD_STATE_BATTLEGROUND_IC_DOCKS_CONFLICT_A, WORLD_STATE_BATTLEGROUND_IC_DOCKS_CONFLICT_H, WORLD_STATE_BATTLEGROUND_IC_DOCKS_CONTROLLED_A, WORLD_STATE_BATTLEGROUND_IC_DOCKS_CONTROLLED_H}, NODE_STATE_UNCONTROLLED},
{BG_IC_GO_HANGAR_BANNER, GO_HANGAR_BANNER, TEAM_NEUTRAL, NODE_TYPE_HANGAR, {GO_ALLIANCE_BANNER_HANGAR, GO_ALLIANCE_BANNER_HANGAR_CONT, GO_HORDE_BANNER_HANGAR, GO_HORDE_BANNER_HANGAR_CONT}, false, 0, 0, {WORLD_STATE_BATTLEGROUND_IC_HANGAR_UNCONTROLLED, WORLD_STATE_BATTLEGROUND_IC_HANGAR_CONFLICT_A, WORLD_STATE_BATTLEGROUND_IC_HANGAR_CONFLICT_H, WORLD_STATE_BATTLEGROUND_IC_HANGAR_CONTROLLED_A, WORLD_STATE_BATTLEGROUND_IC_HANGAR_CONTROLLED_H}, NODE_STATE_UNCONTROLLED},
{BG_IC_GO_WORKSHOP_BANNER, GO_WORKSHOP_BANNER, TEAM_NEUTRAL, NODE_TYPE_WORKSHOP, {GO_ALLIANCE_BANNER_WORKSHOP, GO_ALLIANCE_BANNER_WORKSHOP_CONT, GO_HORDE_BANNER_WORKSHOP, GO_HORDE_BANNER_WORKSHOP_CONT}, false, 0, 0, {WORLD_STATE_BATTLEGROUND_IC_WORKSHOP_UNCONTROLLED, WORLD_STATE_BATTLEGROUND_IC_WORKSHOP_CONFLICT_A, WORLD_STATE_BATTLEGROUND_IC_WORKSHOP_CONFLICT_H, WORLD_STATE_BATTLEGROUND_IC_WORKSHOP_CONTROLLED_A, WORLD_STATE_BATTLEGROUND_IC_WORKSHOP_CONTROLLED_H}, NODE_STATE_UNCONTROLLED},
{BG_IC_GO_ALLIANCE_BANNER, GO_ALLIANCE_BANNER, TEAM_ALLIANCE, NODE_TYPE_GRAVEYARD_A, {GO_ALLIANCE_BANNER_GRAVEYARD_A, GO_ALLIANCE_BANNER_GRAVEYARD_A_CONT, GO_HORDE_BANNER_GRAVEYARD_A, GO_HORDE_BANNER_GRAVEYARD_A_CONT}, false, 0, 0, {WORLD_STATE_BATTLEGROUND_IC_ALLIANCE_KEEP_UNCONTROLLED, WORLD_STATE_BATTLEGROUND_IC_ALLIANCE_KEEP_CONFLICT_A, WORLD_STATE_BATTLEGROUND_IC_ALLIANCE_KEEP_CONFLICT_H, WORLD_STATE_BATTLEGROUND_IC_ALLIANCE_KEEP_CONTROLLED_A, WORLD_STATE_BATTLEGROUND_IC_ALLIANCE_KEEP_CONTROLLED_H}, NODE_STATE_CONTROLLED_A},
{BG_IC_GO_HORDE_BANNER, GO_HORDE_BANNER, TEAM_HORDE, NODE_TYPE_GRAVEYARD_H, {GO_ALLIANCE_BANNER_GRAVEYARD_H, GO_ALLIANCE_BANNER_GRAVEYARD_H_CONT, GO_HORDE_BANNER_GRAVEYARD_H, GO_HORDE_BANNER_GRAVEYARD_H_CONT}, false, 0, 0, {WORLD_STATE_BATTLEGROUND_IC_HORDE_KEEP_UNCONTROLLED, WORLD_STATE_BATTLEGROUND_IC_HORDE_KEEP_CONFLICT_A, WORLD_STATE_BATTLEGROUND_IC_HORDE_KEEP_CONFLICT_H, WORLD_STATE_BATTLEGROUND_IC_HORDE_KEEP_CONTROLLED_A, WORLD_STATE_BATTLEGROUND_IC_HORDE_KEEP_CONTROLLED_H}, NODE_STATE_CONTROLLED_H}
};
enum HonorRewards
@ -1035,22 +974,22 @@ private:
switch (id)
{
case GO_HORDE_GATE_1:
uws = (open ? BG_IC_GATE_FRONT_H_WS_OPEN : BG_IC_GATE_FRONT_H_WS_CLOSED);
uws = (open ? WORLD_STATE_BATTLEGROUND_IC_GATE_FRONT_H_WS_OPEN : WORLD_STATE_BATTLEGROUND_IC_GATE_FRONT_H_WS_CLOSED);
break;
case GO_HORDE_GATE_2:
uws = (open ? BG_IC_GATE_EAST_H_WS_OPEN : BG_IC_GATE_EAST_H_WS_CLOSED);
uws = (open ? WORLD_STATE_BATTLEGROUND_IC_GATE_EAST_H_WS_OPEN : WORLD_STATE_BATTLEGROUND_IC_GATE_EAST_H_WS_CLOSED);
break;
case GO_HORDE_GATE_3:
uws = (open ? BG_IC_GATE_WEST_H_WS_OPEN : BG_IC_GATE_WEST_H_WS_CLOSED);
uws = (open ? WORLD_STATE_BATTLEGROUND_IC_GATE_WEST_H_WS_OPEN : WORLD_STATE_BATTLEGROUND_IC_GATE_WEST_H_WS_CLOSED);
break;
case GO_ALLIANCE_GATE_3:
uws = (open ? BG_IC_GATE_FRONT_A_WS_OPEN : BG_IC_GATE_FRONT_A_WS_CLOSED);
uws = (open ? WORLD_STATE_BATTLEGROUND_IC_GATE_FRONT_A_WS_OPEN : WORLD_STATE_BATTLEGROUND_IC_GATE_FRONT_A_WS_CLOSED);
break;
case GO_ALLIANCE_GATE_1:
uws = (open ? BG_IC_GATE_WEST_A_WS_OPEN : BG_IC_GATE_WEST_A_WS_CLOSED);
uws = (open ? WORLD_STATE_BATTLEGROUND_IC_GATE_WEST_A_WS_OPEN : WORLD_STATE_BATTLEGROUND_IC_GATE_WEST_A_WS_CLOSED);
break;
case GO_ALLIANCE_GATE_2:
uws = (open ? BG_IC_GATE_EAST_A_WS_OPEN : BG_IC_GATE_EAST_A_WS_CLOSED);
uws = (open ? WORLD_STATE_BATTLEGROUND_IC_GATE_EAST_A_WS_OPEN : WORLD_STATE_BATTLEGROUND_IC_GATE_EAST_A_WS_CLOSED);
break;
}
return uws;

View file

@ -18,6 +18,7 @@
#include "BattlegroundNA.h"
#include "Player.h"
#include "WorldPacket.h"
#include "WorldStateDefines.h"
BattlegroundNA::BattlegroundNA()
{
@ -66,7 +67,7 @@ void BattlegroundNA::HandleAreaTrigger(Player* player, uint32 trigger)
void BattlegroundNA::FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet)
{
packet.Worldstates.emplace_back(0xa11, 1); // BATTLEGROUND_NAGRAND_ARENA_SHOW
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_NA_ARENA_SHOW, 1);
Arena::FillInitialWorldStates(packet);
}

View file

@ -19,6 +19,7 @@
#include "Log.h"
#include "Player.h"
#include "WorldPacket.h"
#include "WorldStateDefines.h"
BattlegroundRL::BattlegroundRL()
{
@ -93,7 +94,7 @@ void BattlegroundRL::HandleAreaTrigger(Player* player, uint32 trigger)
void BattlegroundRL::FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet)
{
packet.Worldstates.emplace_back(0xbba, 1); // BATTELGROUND_RUINS_OF_LORDAERNON_SHOW
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_RL_ARENA_SHOW, 1);
Arena::FillInitialWorldStates(packet);
}

View file

@ -22,6 +22,7 @@
#include "ObjectAccessor.h"
#include "Player.h"
#include "WorldPacket.h"
#include "WorldStateDefines.h"
static constexpr Milliseconds BG_RV_PILLAR_SWITCH_TIMER = 25s;
static constexpr Milliseconds BG_RV_FIRE_TO_PILLAR_TIMER = 20s;
@ -206,7 +207,7 @@ void BattlegroundRV::HandleAreaTrigger(Player* player, uint32 trigger)
void BattlegroundRV::FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet)
{
packet.Worldstates.emplace_back(BG_RV_WORLD_STATE, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_RV_ARENA_SHOW, 1);
Arena::FillInitialWorldStates(packet);
}

View file

@ -76,10 +76,6 @@ enum BattlegroundRVData
BG_RV_STATE_OPEN_FENCES,
BG_RV_STATE_SWITCH_PILLARS,
BG_RV_STATE_CLOSE_FIRE,
BG_RV_WORLD_STATE_A = 0xe11,
BG_RV_WORLD_STATE_H = 0xe10,
BG_RV_WORLD_STATE = 0xe1a,
};
class AC_GAME_API BattlegroundRV : public Arena

View file

@ -238,47 +238,47 @@ bool BattlegroundSA::ResetObjs()
}
//Player may enter BEFORE we set up bG - lets update his worldstates anyway...
UpdateWorldState(BG_SA_RIGHT_GY_HORDE, GraveyardStatus[BG_SA_RIGHT_CAPTURABLE_GY] == TEAM_HORDE ? 1 : 0);
UpdateWorldState(BG_SA_LEFT_GY_HORDE, GraveyardStatus[BG_SA_LEFT_CAPTURABLE_GY] == TEAM_HORDE ? 1 : 0);
UpdateWorldState(BG_SA_CENTER_GY_HORDE, GraveyardStatus[BG_SA_CENTRAL_CAPTURABLE_GY] == TEAM_HORDE ? 1 : 0);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_RIGHT_GY_HORDE, GraveyardStatus[BG_SA_RIGHT_CAPTURABLE_GY] == TEAM_HORDE ? 1 : 0);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_LEFT_GY_HORDE, GraveyardStatus[BG_SA_LEFT_CAPTURABLE_GY] == TEAM_HORDE ? 1 : 0);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_CENTER_GY_HORDE, GraveyardStatus[BG_SA_CENTRAL_CAPTURABLE_GY] == TEAM_HORDE ? 1 : 0);
UpdateWorldState(BG_SA_RIGHT_GY_ALLIANCE, GraveyardStatus[BG_SA_RIGHT_CAPTURABLE_GY] == TEAM_ALLIANCE ? 1 : 0);
UpdateWorldState(BG_SA_LEFT_GY_ALLIANCE, GraveyardStatus[BG_SA_LEFT_CAPTURABLE_GY] == TEAM_ALLIANCE ? 1 : 0);
UpdateWorldState(BG_SA_CENTER_GY_ALLIANCE, GraveyardStatus[BG_SA_CENTRAL_CAPTURABLE_GY] == TEAM_ALLIANCE ? 1 : 0);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_RIGHT_GY_ALLIANCE, GraveyardStatus[BG_SA_RIGHT_CAPTURABLE_GY] == TEAM_ALLIANCE ? 1 : 0);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_LEFT_GY_ALLIANCE, GraveyardStatus[BG_SA_LEFT_CAPTURABLE_GY] == TEAM_ALLIANCE ? 1 : 0);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_CENTER_GY_ALLIANCE, GraveyardStatus[BG_SA_CENTRAL_CAPTURABLE_GY] == TEAM_ALLIANCE ? 1 : 0);
if (Attackers == TEAM_ALLIANCE)
{
UpdateWorldState(BG_SA_ALLY_ATTACKS, 1);
UpdateWorldState(BG_SA_HORDE_ATTACKS, 0);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_ALLIANCE_ATTACKS, 1);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_HORDE_ATTACKS, 0);
UpdateWorldState(BG_SA_RIGHT_ATT_TOKEN_ALL, 1);
UpdateWorldState(BG_SA_LEFT_ATT_TOKEN_ALL, 1);
UpdateWorldState(BG_SA_RIGHT_ATT_TOKEN_HRD, 0);
UpdateWorldState(BG_SA_LEFT_ATT_TOKEN_HRD, 0);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_RIGHT_ATTACK_TOKEN_ALLIANCE, 1);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_LEFT_ATTACK_TOKEN_ALLIANCE, 1);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_RIGHT_ATTACK_TOKEN_HORDE, 0);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_LEFT_ATTACK_TOKEN_HORDE, 0);
UpdateWorldState(BG_SA_HORDE_DEFENCE_TOKEN, 1);
UpdateWorldState(BG_SA_ALLIANCE_DEFENCE_TOKEN, 0);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_HORDE_DEFENSE_TOKEN, 1);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_ALLIANCE_DEFENSE_TOKEN, 0);
}
else
{
UpdateWorldState(BG_SA_HORDE_ATTACKS, 1);
UpdateWorldState(BG_SA_ALLY_ATTACKS, 0);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_HORDE_ATTACKS, 1);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_ALLIANCE_ATTACKS, 0);
UpdateWorldState(BG_SA_RIGHT_ATT_TOKEN_ALL, 0);
UpdateWorldState(BG_SA_LEFT_ATT_TOKEN_ALL, 0);
UpdateWorldState(BG_SA_RIGHT_ATT_TOKEN_HRD, 1);
UpdateWorldState(BG_SA_LEFT_ATT_TOKEN_HRD, 1);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_RIGHT_ATTACK_TOKEN_ALLIANCE, 0);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_LEFT_ATTACK_TOKEN_ALLIANCE, 0);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_RIGHT_ATTACK_TOKEN_HORDE, 1);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_LEFT_ATTACK_TOKEN_HORDE, 1);
UpdateWorldState(BG_SA_HORDE_DEFENCE_TOKEN, 0);
UpdateWorldState(BG_SA_ALLIANCE_DEFENCE_TOKEN, 1);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_HORDE_DEFENSE_TOKEN, 0);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_ALLIANCE_DEFENSE_TOKEN, 1);
}
UpdateWorldState(BG_SA_PURPLE_GATEWS, 1);
UpdateWorldState(BG_SA_RED_GATEWS, 1);
UpdateWorldState(BG_SA_BLUE_GATEWS, 1);
UpdateWorldState(BG_SA_GREEN_GATEWS, 1);
UpdateWorldState(BG_SA_YELLOW_GATEWS, 1);
UpdateWorldState(BG_SA_ANCIENT_GATEWS, 1);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_PURPLE_GATE, 1);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_RED_GATE, 1);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_BLUE_GATE, 1);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_GREEN_GATE, 1);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_YELLOW_GATE, 1);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_ANCIENT_GATE, 1);
for (int i = BG_SA_BOAT_ONE; i <= BG_SA_BOAT_TWO; i++)
for (BattlegroundPlayerMap::const_iterator itr = GetPlayers().begin(); itr != GetPlayers().end(); ++itr)
@ -473,40 +473,40 @@ void BattlegroundSA::FillInitialWorldStates(WorldPackets::WorldState::InitWorldS
bool const horde_attacks = Attackers == TEAM_HORDE;
packet.Worldstates.reserve(25);
packet.Worldstates.emplace_back(BG_SA_ANCIENT_GATEWS, GateStatus[BG_SA_ANCIENT_GATE]);
packet.Worldstates.emplace_back(BG_SA_YELLOW_GATEWS, GateStatus[BG_SA_YELLOW_GATE]);
packet.Worldstates.emplace_back(BG_SA_GREEN_GATEWS, GateStatus[BG_SA_GREEN_GATE]);
packet.Worldstates.emplace_back(BG_SA_BLUE_GATEWS, GateStatus[BG_SA_BLUE_GATE]);
packet.Worldstates.emplace_back(BG_SA_RED_GATEWS, GateStatus[BG_SA_RED_GATE]);
packet.Worldstates.emplace_back(BG_SA_PURPLE_GATEWS, GateStatus[BG_SA_PURPLE_GATE]);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_ANCIENT_GATE, GateStatus[BG_SA_ANCIENT_GATE]);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_YELLOW_GATE, GateStatus[BG_SA_YELLOW_GATE]);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_GREEN_GATE, GateStatus[BG_SA_GREEN_GATE]);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_BLUE_GATE, GateStatus[BG_SA_BLUE_GATE]);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_RED_GATE, GateStatus[BG_SA_RED_GATE]);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_PURPLE_GATE, GateStatus[BG_SA_PURPLE_GATE]);
packet.Worldstates.emplace_back(BG_SA_BONUS_TIMER, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_BONUS_TIMER, 0);
packet.Worldstates.emplace_back(BG_SA_HORDE_ATTACKS, horde_attacks);
packet.Worldstates.emplace_back(BG_SA_ALLY_ATTACKS, ally_attacks);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_HORDE_ATTACKS, horde_attacks);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_ALLIANCE_ATTACKS, ally_attacks);
//Time will be sent on first update...
packet.Worldstates.emplace_back(BG_SA_ENABLE_TIMER, TimerEnabled ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_ENABLE_TIMER, TimerEnabled ? 1 : 0);
packet.Worldstates.emplace_back(BG_SA_TIMER_MINS, 0);
packet.Worldstates.emplace_back(BG_SA_TIMER_SEC_TENS, 0);
packet.Worldstates.emplace_back(BG_SA_TIMER_SEC_DECS, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_TIMER_MINUTES, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_TIMER_SECONDS_FIRST_DIGIT, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_TIMER_SECONDS_SECOND_DIGIT, 0);
packet.Worldstates.emplace_back(BG_SA_RIGHT_GY_HORDE, GraveyardStatus[BG_SA_RIGHT_CAPTURABLE_GY] == TEAM_HORDE ? 1 : 0);
packet.Worldstates.emplace_back(BG_SA_LEFT_GY_HORDE, GraveyardStatus[BG_SA_LEFT_CAPTURABLE_GY] == TEAM_HORDE ? 1 : 0);
packet.Worldstates.emplace_back(BG_SA_CENTER_GY_HORDE, GraveyardStatus[BG_SA_CENTRAL_CAPTURABLE_GY] == TEAM_HORDE ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_RIGHT_GY_HORDE, GraveyardStatus[BG_SA_RIGHT_CAPTURABLE_GY] == TEAM_HORDE ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_LEFT_GY_HORDE, GraveyardStatus[BG_SA_LEFT_CAPTURABLE_GY] == TEAM_HORDE ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_CENTER_GY_HORDE, GraveyardStatus[BG_SA_CENTRAL_CAPTURABLE_GY] == TEAM_HORDE ? 1 : 0);
packet.Worldstates.emplace_back(BG_SA_RIGHT_GY_ALLIANCE, GraveyardStatus[BG_SA_RIGHT_CAPTURABLE_GY] == TEAM_ALLIANCE ? 1 : 0);
packet.Worldstates.emplace_back(BG_SA_LEFT_GY_ALLIANCE, GraveyardStatus[BG_SA_LEFT_CAPTURABLE_GY] == TEAM_ALLIANCE ? 1 : 0);
packet.Worldstates.emplace_back(BG_SA_CENTER_GY_ALLIANCE, GraveyardStatus[BG_SA_CENTRAL_CAPTURABLE_GY] == TEAM_ALLIANCE ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_RIGHT_GY_ALLIANCE, GraveyardStatus[BG_SA_RIGHT_CAPTURABLE_GY] == TEAM_ALLIANCE ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_LEFT_GY_ALLIANCE, GraveyardStatus[BG_SA_LEFT_CAPTURABLE_GY] == TEAM_ALLIANCE ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_CENTER_GY_ALLIANCE, GraveyardStatus[BG_SA_CENTRAL_CAPTURABLE_GY] == TEAM_ALLIANCE ? 1 : 0);
packet.Worldstates.emplace_back(BG_SA_HORDE_DEFENCE_TOKEN, ally_attacks);
packet.Worldstates.emplace_back(BG_SA_ALLIANCE_DEFENCE_TOKEN, horde_attacks);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_HORDE_DEFENSE_TOKEN, ally_attacks);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_ALLIANCE_DEFENSE_TOKEN, horde_attacks);
packet.Worldstates.emplace_back(BG_SA_LEFT_ATT_TOKEN_HRD, horde_attacks);
packet.Worldstates.emplace_back(BG_SA_RIGHT_ATT_TOKEN_HRD, horde_attacks);
packet.Worldstates.emplace_back(BG_SA_RIGHT_ATT_TOKEN_ALL, ally_attacks);
packet.Worldstates.emplace_back(BG_SA_LEFT_ATT_TOKEN_ALL, ally_attacks);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_LEFT_ATTACK_TOKEN_HORDE, horde_attacks);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_RIGHT_ATTACK_TOKEN_HORDE, horde_attacks);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_RIGHT_ATTACK_TOKEN_ALLIANCE, ally_attacks);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_LEFT_ATTACK_TOKEN_ALLIANCE, ally_attacks);
}
void BattlegroundSA::AddPlayer(Player* player)
@ -830,9 +830,9 @@ GraveyardStruct const* BattlegroundSA::GetClosestGraveyard(Player* player)
void BattlegroundSA::SendTime()
{
Milliseconds end_of_round = (EndRoundTimer - TotalTime);
UpdateWorldState(BG_SA_TIMER_MINS, end_of_round / 1min);
UpdateWorldState(BG_SA_TIMER_SEC_TENS, (end_of_round % 1min) / 10s);
UpdateWorldState(BG_SA_TIMER_SEC_DECS, ((end_of_round % 1min) % 10s) / 1s);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_TIMER_MINUTES, end_of_round / 1min);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_TIMER_SECONDS_FIRST_DIGIT, (end_of_round % 1min) / 10s);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_TIMER_SECONDS_SECOND_DIGIT, ((end_of_round % 1min) % 10s) / 1s);
}
bool BattlegroundSA::CanInteractWithObject(uint32 objectId)
@ -973,8 +973,8 @@ void BattlegroundSA::CaptureGraveyard(BG_SA_Graveyards i, Player* Source)
dem->SetFaction(BG_SA_Factions[Attackers]);
}
UpdateWorldState(BG_SA_LEFT_GY_ALLIANCE, (GraveyardStatus[i] == TEAM_ALLIANCE ? 1 : 0));
UpdateWorldState(BG_SA_LEFT_GY_HORDE, (GraveyardStatus[i] == TEAM_ALLIANCE ? 0 : 1));
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_LEFT_GY_ALLIANCE, (GraveyardStatus[i] == TEAM_ALLIANCE ? 1 : 0));
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_LEFT_GY_HORDE, (GraveyardStatus[i] == TEAM_ALLIANCE ? 0 : 1));
GetBgMap()->DoForAllPlayers([&](Player* player)
{
if (player->GetTeamId() == TEAM_ALLIANCE)
@ -1004,8 +1004,8 @@ void BattlegroundSA::CaptureGraveyard(BG_SA_Graveyards i, Player* Source)
dem->SetFaction(BG_SA_Factions[Attackers]);
}
UpdateWorldState(BG_SA_RIGHT_GY_ALLIANCE, (GraveyardStatus[i] == TEAM_ALLIANCE ? 1 : 0));
UpdateWorldState(BG_SA_RIGHT_GY_HORDE, (GraveyardStatus[i] == TEAM_ALLIANCE ? 0 : 1));
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_RIGHT_GY_ALLIANCE, (GraveyardStatus[i] == TEAM_ALLIANCE ? 1 : 0));
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_RIGHT_GY_HORDE, (GraveyardStatus[i] == TEAM_ALLIANCE ? 0 : 1));
GetBgMap()->DoForAllPlayers([&](Player* player)
{
if (player->GetTeamId() == TEAM_ALLIANCE)
@ -1021,8 +1021,8 @@ void BattlegroundSA::CaptureGraveyard(BG_SA_Graveyards i, Player* Source)
BG_SA_ObjSpawnlocs[flag][0], BG_SA_ObjSpawnlocs[flag][1],
BG_SA_ObjSpawnlocs[flag][2], BG_SA_ObjSpawnlocs[flag][3], 0, 0, 0, 0, RESPAWN_ONE_DAY);
UpdateWorldState(BG_SA_CENTER_GY_ALLIANCE, (GraveyardStatus[i] == TEAM_ALLIANCE ? 1 : 0));
UpdateWorldState(BG_SA_CENTER_GY_HORDE, (GraveyardStatus[i] == TEAM_ALLIANCE ? 0 : 1));
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_CENTER_GY_ALLIANCE, (GraveyardStatus[i] == TEAM_ALLIANCE ? 1 : 0));
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_CENTER_GY_HORDE, (GraveyardStatus[i] == TEAM_ALLIANCE ? 0 : 1));
GetBgMap()->DoForAllPlayers([&](Player* player)
{
if (player->GetTeamId() == TEAM_ALLIANCE)
@ -1082,7 +1082,7 @@ void BattlegroundSA::EventPlayerUsedGO(Player* Source, GameObject* object)
void BattlegroundSA::ToggleTimer()
{
TimerEnabled = !TimerEnabled;
UpdateWorldState(BG_SA_ENABLE_TIMER, (TimerEnabled) ? 1 : 0);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_SA_ENABLE_TIMER, (TimerEnabled) ? 1 : 0);
}
void BattlegroundSA::EndBattleground(TeamId winnerTeamId)

View file

@ -20,6 +20,7 @@
#include "Battleground.h"
#include "BattlegroundScore.h"
#include "WorldStateDefines.h"
#define BG_SA_FLAG_AMOUNT 3
#define BG_SA_DEMOLISHER_AMOUNT 4
@ -42,35 +43,6 @@ enum BG_SA_GateState
BG_SA_GATE_DESTROYED = 3
};
enum BG_SA_WorldStates
{
BG_SA_TIMER_MINS = 3559,
BG_SA_TIMER_SEC_TENS = 3560,
BG_SA_TIMER_SEC_DECS = 3561,
BG_SA_ALLY_ATTACKS = 4352,
BG_SA_HORDE_ATTACKS = 4353,
BG_SA_PURPLE_GATEWS = 3614,
BG_SA_RED_GATEWS = 3617,
BG_SA_BLUE_GATEWS = 3620,
BG_SA_GREEN_GATEWS = 3623,
BG_SA_YELLOW_GATEWS = 3638,
BG_SA_ANCIENT_GATEWS = 3849,
BG_SA_LEFT_GY_ALLIANCE = 3635,
BG_SA_RIGHT_GY_ALLIANCE = 3636,
BG_SA_CENTER_GY_ALLIANCE = 3637,
BG_SA_RIGHT_ATT_TOKEN_ALL = 3627,
BG_SA_LEFT_ATT_TOKEN_ALL = 3626,
BG_SA_LEFT_ATT_TOKEN_HRD = 3629,
BG_SA_RIGHT_ATT_TOKEN_HRD = 3628,
BG_SA_HORDE_DEFENCE_TOKEN = 3631,
BG_SA_ALLIANCE_DEFENCE_TOKEN = 3630,
BG_SA_RIGHT_GY_HORDE = 3632,
BG_SA_LEFT_GY_HORDE = 3633,
BG_SA_CENTER_GY_HORDE = 3634,
BG_SA_BONUS_TIMER = 0xdf3,
BG_SA_ENABLE_TIMER = 3564,
};
enum npc
{
NPC_ANTI_PERSONNAL_CANNON = 27894,
@ -494,22 +466,22 @@ public:
switch (id)
{
case BG_SA_GREEN_GATE:
uws = BG_SA_GREEN_GATEWS;
uws = WORLD_STATE_BATTLEGROUND_SA_GREEN_GATE;
break;
case BG_SA_YELLOW_GATE:
uws = BG_SA_YELLOW_GATEWS;
uws = WORLD_STATE_BATTLEGROUND_SA_YELLOW_GATE;
break;
case BG_SA_BLUE_GATE:
uws = BG_SA_BLUE_GATEWS;
uws = WORLD_STATE_BATTLEGROUND_SA_BLUE_GATE;
break;
case BG_SA_RED_GATE:
uws = BG_SA_RED_GATEWS;
uws = WORLD_STATE_BATTLEGROUND_SA_RED_GATE;
break;
case BG_SA_PURPLE_GATE:
uws = BG_SA_PURPLE_GATEWS;
uws = WORLD_STATE_BATTLEGROUND_SA_PURPLE_GATE;
break;
case BG_SA_ANCIENT_GATE:
uws = BG_SA_ANCIENT_GATEWS;
uws = WORLD_STATE_BATTLEGROUND_SA_ANCIENT_GATE;
break;
}
return uws;

View file

@ -24,6 +24,7 @@
#include "Player.h"
#include "World.h"
#include "WorldPacket.h"
#include "WorldStateDefines.h"
void BattlegroundWGScore::BuildObjectivesBlock(WorldPacket& data)
{
@ -61,7 +62,7 @@ void BattlegroundWS::PostUpdateImpl(uint32 diff)
switch (_bgEvents.ExecuteEvent())
{
case BG_WS_EVENT_UPDATE_GAME_TIME:
UpdateWorldState(BG_WS_STATE_TIMER, GetMatchTime());
UpdateWorldState(WORLD_STATE_BATTLEGROUND_WS_STATE_TIMER, GetMatchTime());
_bgEvents.ScheduleEvent(BG_WS_EVENT_UPDATE_GAME_TIME, ((BG_WS_TOTAL_GAME_TIME - GetStartTime()) % (MINUTE * IN_MILLISECONDS)) + 1);
break;
case BG_WS_EVENT_NO_TIME_LEFT:
@ -135,7 +136,7 @@ void BattlegroundWS::StartingEventOpenDoors()
SpawnBGObject(BG_WS_OBJECT_DOOR_H_4, RESPAWN_ONE_DAY);
StartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, WS_EVENT_START_BATTLE);
UpdateWorldState(BG_WS_STATE_TIMER_ACTIVE, 1);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_WS_STATE_TIMER_ACTIVE, 1);
_bgEvents.ScheduleEvent(BG_WS_EVENT_UPDATE_GAME_TIME, 0);
_bgEvents.ScheduleEvent(BG_WS_EVENT_NO_TIME_LEFT, BG_WS_TOTAL_GAME_TIME - 2 * MINUTE * IN_MILLISECONDS); // 27 - 2 = 25 minutes
_bgEvents.ScheduleEvent(BG_WS_EVENT_DESPAWN_DOORS, BG_WS_DOOR_DESPAWN_TIME);
@ -216,7 +217,7 @@ void BattlegroundWS::EventPlayerCapturedFlag(Player* player)
SpawnBGObject(BG_WS_OBJECT_H_FLAG, BG_WS_FLAG_RESPAWN_TIME);
SpawnBGObject(BG_WS_OBJECT_A_FLAG, BG_WS_FLAG_RESPAWN_TIME);
UpdateWorldState(player->GetTeamId() == TEAM_ALLIANCE ? BG_WS_FLAG_CAPTURES_ALLIANCE : BG_WS_FLAG_CAPTURES_HORDE, GetTeamScore(player->GetTeamId()));
UpdateWorldState(player->GetTeamId() == TEAM_ALLIANCE ? WORLD_STATE_BATTLEGROUND_WS_FLAG_CAPTURES_ALLIANCE : WORLD_STATE_BATTLEGROUND_WS_FLAG_CAPTURES_HORDE, GetTeamScore(player->GetTeamId()));
UpdatePlayerScore(player, SCORE_FLAG_CAPTURES, 1); // +1 flag captures
_lastFlagCaptureTeam = player->GetTeamId();
@ -224,7 +225,7 @@ void BattlegroundWS::EventPlayerCapturedFlag(Player* player)
if (GetTeamScore(TEAM_ALLIANCE) == _configurableMaxTeamScore || GetTeamScore(TEAM_HORDE) == _configurableMaxTeamScore)
{
UpdateWorldState(BG_WS_STATE_TIMER_ACTIVE, 0);
UpdateWorldState(WORLD_STATE_BATTLEGROUND_WS_STATE_TIMER_ACTIVE, 0);
EndBattleground(GetTeamScore(TEAM_HORDE) == _configurableMaxTeamScore ? TEAM_HORDE : TEAM_ALLIANCE);
}
else
@ -391,7 +392,7 @@ void BattlegroundWS::RemovePlayer(Player* player)
void BattlegroundWS::UpdateFlagState(TeamId teamId, uint32 value)
{
_flagState[teamId] = value;
UpdateWorldState(teamId == TEAM_ALLIANCE ? BG_WS_FLAG_STATE_HORDE : BG_WS_FLAG_STATE_ALLIANCE, value);
UpdateWorldState(teamId == TEAM_ALLIANCE ? WORLD_STATE_BATTLEGROUND_WS_FLAG_STATE_HORDE : WORLD_STATE_BATTLEGROUND_WS_FLAG_STATE_ALLIANCE, value);
}
void BattlegroundWS::HandleAreaTrigger(Player* player, uint32 trigger)
@ -554,15 +555,15 @@ GraveyardStruct const* BattlegroundWS::GetClosestGraveyard(Player* player)
void BattlegroundWS::FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet)
{
packet.Worldstates.reserve(7);
packet.Worldstates.emplace_back(BG_WS_FLAG_CAPTURES_ALLIANCE, GetTeamScore(TEAM_ALLIANCE));
packet.Worldstates.emplace_back(BG_WS_FLAG_CAPTURES_HORDE, GetTeamScore(TEAM_HORDE));
packet.Worldstates.emplace_back(BG_WS_FLAG_CAPTURES_MAX, _configurableMaxTeamScore);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_WS_FLAG_CAPTURES_ALLIANCE, GetTeamScore(TEAM_ALLIANCE));
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_WS_FLAG_CAPTURES_HORDE, GetTeamScore(TEAM_HORDE));
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_WS_FLAG_CAPTURES_MAX, _configurableMaxTeamScore);
packet.Worldstates.emplace_back(BG_WS_STATE_TIMER_ACTIVE, GetStatus() == STATUS_IN_PROGRESS ? 1 : 0);
packet.Worldstates.emplace_back(BG_WS_STATE_TIMER, GetMatchTime());
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_WS_STATE_TIMER_ACTIVE, GetStatus() == STATUS_IN_PROGRESS ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_WS_STATE_TIMER, GetMatchTime());
packet.Worldstates.emplace_back(BG_WS_FLAG_STATE_HORDE, GetFlagState(TEAM_HORDE));
packet.Worldstates.emplace_back(BG_WS_FLAG_STATE_ALLIANCE, GetFlagState(TEAM_ALLIANCE));
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_WS_FLAG_STATE_HORDE, GetFlagState(TEAM_HORDE));
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_WS_FLAG_STATE_ALLIANCE, GetFlagState(TEAM_ALLIANCE));
}
TeamId BattlegroundWS::GetPrematureWinner()

View file

@ -86,17 +86,6 @@ enum BG_WS_SpellId
BG_WS_SPELL_BRUTAL_ASSAULT = 46393
};
enum BG_WS_WorldStates
{
BG_WS_FLAG_CAPTURES_ALLIANCE = 1581,
BG_WS_FLAG_CAPTURES_HORDE = 1582,
BG_WS_FLAG_CAPTURES_MAX = 1601,
BG_WS_FLAG_STATE_HORDE = 2338,
BG_WS_FLAG_STATE_ALLIANCE = 2339,
BG_WS_STATE_TIMER = 4248,
BG_WS_STATE_TIMER_ACTIVE = 4247
};
enum BG_WS_ObjectTypes
{
BG_WS_OBJECT_DOOR_A_1 = 0,

View file

@ -86,6 +86,7 @@
#include "WorldSession.h"
#include "WorldSessionMgr.h"
#include "WorldState.h"
#include "WorldStateDefines.h"
#include "WorldStatePackets.h"
#include <cmath>
@ -8244,24 +8245,24 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId)
packet.AreaID = areaId;
packet.Worldstates.reserve(8);
packet.Worldstates.emplace_back(0x8d8, 0); // SCOURGE_EVENT_WORLDSTATE_EASTERN_PLAGUELANDS
packet.Worldstates.emplace_back(0x8d7, 0); // SCOURGE_EVENT_WORLDSTATE_TANARIS
packet.Worldstates.emplace_back(0x8d6, 0); // SCOURGE_EVENT_WORLDSTATE_BURNING_STEPPES
packet.Worldstates.emplace_back(0x8d5, 0); // SCOURGE_EVENT_WORLDSTATE_BLASTED_LANDS
packet.Worldstates.emplace_back(0x8d4, 0); // SCOURGE_EVENT_WORLDSTATE_AZSHARA
packet.Worldstates.emplace_back(0x8d3, 0); // SCOURGE_EVENT_WORLDSTATE_WINTERSPRING
packet.Worldstates.emplace_back(WORLD_STATE_SCOURGE_INVASION_WINTERSPRING, 0);
packet.Worldstates.emplace_back(WORLD_STATE_SCOURGE_INVASION_AZSHARA, 0);
packet.Worldstates.emplace_back(WORLD_STATE_SCOURGE_INVASION_BLASTED_LANDS, 0);
packet.Worldstates.emplace_back(WORLD_STATE_SCOURGE_INVASION_BURNING_STEPPES, 0);
packet.Worldstates.emplace_back(WORLD_STATE_SCOURGE_INVASION_TANARIS, 0);
packet.Worldstates.emplace_back(WORLD_STATE_SCOURGE_INVASION_EASTERN_PLAGUELANDS, 0);
// 7 1 - Arena season in progress, 0 - end of season
packet.Worldstates.emplace_back(0xc77, sArenaSeasonMgr->GetSeasonState() == ARENA_SEASON_STATE_IN_PROGRESS);
packet.Worldstates.emplace_back(WORLD_STATE_ARENA_SEASON_PROGRESS, sArenaSeasonMgr->GetSeasonState() == ARENA_SEASON_STATE_IN_PROGRESS);
// 8 Arena season id
packet.Worldstates.emplace_back(0xf3d, sArenaSeasonMgr->GetCurrentSeason());
packet.Worldstates.emplace_back(WORLD_STATE_ARENA_SEASON_ID, sArenaSeasonMgr->GetCurrentSeason());
if (mapId == 530) // Outland
{
packet.Worldstates.reserve(3);
packet.Worldstates.emplace_back(0x9bf, 0); // NA_UI_OUTLAND_01 "Progress: %2494w"
packet.Worldstates.emplace_back(0x9bd, 15); // NA_UI_GUARDS_MAX
packet.Worldstates.emplace_back(0x9bb, 15); // NA_UI_GUARDS_LEFT
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_UI_TOWER_SLIDER_DISPLAY, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_UI_GUARDS_MAX, 15);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_UI_GUARDS_LEFT, 15);
}
if (Player::bgZoneIdToFillWorldStates.find(zoneId) != Player::bgZoneIdToFillWorldStates.end())
@ -8290,39 +8291,39 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId)
else
{
packet.Worldstates.reserve(32);
packet.Worldstates.emplace_back(0x97a, 0); // GENERAL_WORLDSTATES_01 "Progress: %2427w"
packet.Worldstates.emplace_back(0x917, 0); // EP_UI_TOWER_COUNT_A
packet.Worldstates.emplace_back(0x918, 0); // EP_UI_TOWER_COUNT_H
packet.Worldstates.emplace_back(0x97b, 50); // GENERAL_WORLDSTATES_02
packet.Worldstates.emplace_back(0x97c, 50); // GENERAL_WORLDSTATES_03
packet.Worldstates.emplace_back(0x933, 1); // EP_CGT_N
packet.Worldstates.emplace_back(0x946, 0); // EP_CGT_N_A
packet.Worldstates.emplace_back(0x947, 0); // EP_CGT_N_H
packet.Worldstates.emplace_back(0x948, 0); // GENERAL_WORLDSTATES_04
packet.Worldstates.emplace_back(0x949, 0); // GENERAL_WORLDSTATES_05
packet.Worldstates.emplace_back(0x94a, 0); // EP_CGT_A
packet.Worldstates.emplace_back(0x94b, 0); // EP_CGT_H
packet.Worldstates.emplace_back(0x932, 0); // EP_EWT_A
packet.Worldstates.emplace_back(0x934, 0); // EP_EWT_H
packet.Worldstates.emplace_back(0x935, 0); // GENERAL_WORLDSTATES_06
packet.Worldstates.emplace_back(0x936, 0); // GENERAL_WORLDSTATES_07
packet.Worldstates.emplace_back(0x937, 0); // EP_EWT_N_A
packet.Worldstates.emplace_back(0x938, 0); // EP_EWT_N_H
packet.Worldstates.emplace_back(0x939, 1); // EP_EWT_N
packet.Worldstates.emplace_back(0x930, 1); // EP_NPT_N
packet.Worldstates.emplace_back(0x93a, 0); // EP_NPT_N_A
packet.Worldstates.emplace_back(0x93b, 0); // GENERAL_WORLDSTATES_08
packet.Worldstates.emplace_back(0x93c, 0); // GENERAL_WORLDSTATES_09
packet.Worldstates.emplace_back(0x93d, 0); // GENERAL_WORLDSTATES_10
packet.Worldstates.emplace_back(0x944, 0); // EP_NPT_A
packet.Worldstates.emplace_back(0x945, 0); // EP_NPT_H
packet.Worldstates.emplace_back(0x931, 1); // EP_PWT_N
packet.Worldstates.emplace_back(0x93e, 0); // EP_PWT_N_A
//packet.Worldstates.emplace_back(0x93f, 1); // GENERAL_WORLDSTATES_13 grey horde not in dbc!
packet.Worldstates.emplace_back(0x940, 0); // GENERAL_WORLDSTATES_11
packet.Worldstates.emplace_back(0x941, 0); // GENERAL_WORLDSTATES_12
packet.Worldstates.emplace_back(0x942, 0); // EP_PWT_A
packet.Worldstates.emplace_back(0x943, 0); // EP_PWT_H
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_DISPLAY, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_UI_TOWER_COUNT_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_UI_TOWER_COUNT_H, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_POS, 50);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_N, 50);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_N, 1);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_N_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_N_H, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_UNK_7, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_UNK_8, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_H, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_EASTWALLTOWER_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_EASTWALLTOWER_H, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_UNK_0, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_UNK_1, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_EASTWALLTOWER_N_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_EASTWALLTOWER_N_H, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_EASTWALLTOWER_N, 1);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_NORTHPASSTOWER_N, 1);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_NORTHPASSTOWER_N_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_NORTHPASSTOWER_N_H, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_UNK_2, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_UNK_3, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_NORTHPASSTOWER_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_NORTHPASSTOWER_H, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_PLAGUEWOODTOWER_N, 1);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_PLAGUEWOODTOWER_N_A, 0);
//packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_UNK_4, 1);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_UNK_5, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_UNK_6, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_PLAGUEWOODTOWER_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_PLAGUEWOODTOWER_H, 0);
break;
case 1377: // Silithus
@ -8331,16 +8332,16 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId)
else
{
packet.Worldstates.reserve(3);
packet.Worldstates.emplace_back(0x909, 0); // SI_GATHERED_A
packet.Worldstates.emplace_back(0x90a, 0); // SI_GATHERED_H
packet.Worldstates.emplace_back(0x90d, 0); // SI_SILITHYST_MAX
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_SI_GATHERED_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_SI_GATHERED_H, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_SI_SILITHYST_MAX, 0);
}
// unknown, aq opening?
packet.Worldstates.reserve(4);
packet.Worldstates.emplace_back(0x912, 0); // AQ_SANDWORM_N
packet.Worldstates.emplace_back(0x913, 0); // AQ_SANDWORM_S
packet.Worldstates.emplace_back(0x914, 0); // AQ_SANDWORM_SW
packet.Worldstates.emplace_back(0x915, 0); // AQ_SANDWORM_E
packet.Worldstates.emplace_back(WORLD_STATE_AHNQIRAJ_SANDWORM_N, 0);
packet.Worldstates.emplace_back(WORLD_STATE_AHNQIRAJ_SANDWORM_S, 0);
packet.Worldstates.emplace_back(WORLD_STATE_AHNQIRAJ_SANDWORM_SW, 0);
packet.Worldstates.emplace_back(WORLD_STATE_AHNQIRAJ_SANDWORM_E, 0);
break;
case 2597: // Alterac Valley
if (battleground && battleground->GetBgTypeID(true) == BATTLEGROUND_AV)
@ -8348,81 +8349,81 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId)
else
{
packet.Worldstates.reserve(75);
packet.Worldstates.emplace_back(0x7ae, 1); // AV_SNOWFALL_N
packet.Worldstates.emplace_back(0x532, 1); // AV_FROSTWOLFHUT_H_C
packet.Worldstates.emplace_back(0x531, 0); // AV_FROSTWOLFHUT_A_C
packet.Worldstates.emplace_back(0x52e, 0); // AV_AID_A_A
packet.Worldstates.emplace_back(0x571, 0); // East Frostwolf Tower Horde Assaulted - UNUSED
packet.Worldstates.emplace_back(0x570, 0); // West Frostwolf Tower Horde Assaulted - UNUSED
packet.Worldstates.emplace_back(0x567, 1); // AV_FROSTWOLFE_CONTROLLED
packet.Worldstates.emplace_back(0x566, 1); // AV_FROSTWOLFW_CONTROLLED
packet.Worldstates.emplace_back(0x550, 1); // AV_N_MINE_N
packet.Worldstates.emplace_back(0x544, 0); // AV_ICEBLOOD_A_A
packet.Worldstates.emplace_back(0x536, 0); // AV_PIKEGRAVE_H_C
packet.Worldstates.emplace_back(0x535, 1); // AV_PIKEGRAVE_A_C
packet.Worldstates.emplace_back(0x518, 0); // AV_STONEHEART_A_A
packet.Worldstates.emplace_back(0x517, 0); // AV_STONEHEART_H_A
packet.Worldstates.emplace_back(0x574, 0); // unk
packet.Worldstates.emplace_back(0x573, 0); // Iceblood Tower Horde Assaulted - UNUSED
packet.Worldstates.emplace_back(0x572, 0); // Towerpoint Horde Assaulted - UNUSED
packet.Worldstates.emplace_back(0x56f, 0); // unk
packet.Worldstates.emplace_back(0x56e, 0); // AV_ICEBLOOD_ASSAULTED
packet.Worldstates.emplace_back(0x56d, 0); // AV_TOWERPOINT_ASSAULTED
packet.Worldstates.emplace_back(0x56c, 0); // AV_FROSTWOLFE_ASSAULTED
packet.Worldstates.emplace_back(0x56b, 0); // AV_FROSTWOLFW_ASSAULTED
packet.Worldstates.emplace_back(0x56a, 1); // unk
packet.Worldstates.emplace_back(0x569, 1); // AV_ICEBLOOD_CONTROLLED
packet.Worldstates.emplace_back(0x568, 1); // AV_TOWERPOINT_CONTROLLED
packet.Worldstates.emplace_back(0x565, 0); // AV_STONEH_ASSAULTED
packet.Worldstates.emplace_back(0x564, 0); // AV_ICEWING_ASSAULTED
packet.Worldstates.emplace_back(0x563, 0); // AV_DUNN_ASSAULTED
packet.Worldstates.emplace_back(0x562, 0); // AV_DUNS_ASSAULTED
packet.Worldstates.emplace_back(0x561, 0); // Stoneheart Bunker Alliance Assaulted - UNUSED
packet.Worldstates.emplace_back(0x560, 0); // Icewing Bunker Alliance Assaulted - UNUSED
packet.Worldstates.emplace_back(0x55f, 0); // Dunbaldar South Alliance Assaulted - UNUSED
packet.Worldstates.emplace_back(0x55e, 0); // Dunbaldar North Alliance Assaulted - UNUSED
packet.Worldstates.emplace_back(0x55d, 0); // AV_STONEH_DESTROYED
packet.Worldstates.emplace_back(0x3c6, 0); // AV_UNK_02
packet.Worldstates.emplace_back(0x3c4, 0); // AV_UNK_01
packet.Worldstates.emplace_back(0x3c2, 0); // AV_STORMPIKE_COMMANDERS
packet.Worldstates.emplace_back(0x516, 1); // AV_STONEHEART_A_C
packet.Worldstates.emplace_back(0x515, 0); // AV_STONEHEART_H_C
packet.Worldstates.emplace_back(0x3b6, 0); // AV_STORMPIKE_LIEUTENANTS
packet.Worldstates.emplace_back(0x55c, 0); // AV_ICEWING_DESTROYED
packet.Worldstates.emplace_back(0x55b, 0); // AV_DUNN_DESTROYED
packet.Worldstates.emplace_back(0x55a, 0); // AV_DUNS_DESTROYED
packet.Worldstates.emplace_back(0x559, 0); // unk
packet.Worldstates.emplace_back(0x558, 0); // AV_ICEBLOOD_DESTROYED
packet.Worldstates.emplace_back(0x557, 0); // AV_TOWERPOINT_DESTROYED
packet.Worldstates.emplace_back(0x556, 0); // AV_FROSTWOLFE_DESTROYED
packet.Worldstates.emplace_back(0x555, 0); // AV_FROSTWOLFW_DESTROYED
packet.Worldstates.emplace_back(0x554, 1); // AV_STONEH_CONTROLLED
packet.Worldstates.emplace_back(0x553, 1); // AV_ICEWING_CONTROLLED
packet.Worldstates.emplace_back(0x552, 1); // AV_DUNN_CONTROLLED
packet.Worldstates.emplace_back(0x551, 1); // AV_DUNS_CONTROLLED
packet.Worldstates.emplace_back(0x54f, 0); // AV_N_MINE_H
packet.Worldstates.emplace_back(0x54e, 0); // AV_N_MINE_A
packet.Worldstates.emplace_back(0x54d, 1); // AV_S_MINE_N
packet.Worldstates.emplace_back(0x54c, 0); // AV_S_MINE_H
packet.Worldstates.emplace_back(0x54b, 0); // AV_S_MINE_A
packet.Worldstates.emplace_back(0x545, 0); // AV_ICEBLOOD_H_A
packet.Worldstates.emplace_back(0x543, 1); // AV_ICEBLOOD_H_C
packet.Worldstates.emplace_back(0x542, 0); // AV_ICEBLOOD_A_C
packet.Worldstates.emplace_back(0x540, 0); // AV_SNOWFALL_H_A
packet.Worldstates.emplace_back(0x53f, 0); // AV_SNOWFALL_A_A
packet.Worldstates.emplace_back(0x53e, 0); // AV_SNOWFALL_H_C
packet.Worldstates.emplace_back(0x53d, 0); // AV_SNOWFALL_A_C
packet.Worldstates.emplace_back(0x53c, 0); // AV_FROSTWOLF_H_A
packet.Worldstates.emplace_back(0x53b, 0); // AV_FROSTWOLF_A_A
packet.Worldstates.emplace_back(0x53a, 1); // AV_FROSTWOLF_H_C
packet.Worldstates.emplace_back(0x539, 0); // AV_FROSTWOLF_A_C
packet.Worldstates.emplace_back(0x538, 0); // AV_PIKEGRAVE_H_A
packet.Worldstates.emplace_back(0x537, 0); // AV_PIKEGRAVE_A_A
packet.Worldstates.emplace_back(0x534, 0); // AV_FROSTWOLFHUT_H_A
packet.Worldstates.emplace_back(0x533, 0); // AV_FROSTWOLFHUT_A_A
packet.Worldstates.emplace_back(0x530, 0); // AV_AID_H_A
packet.Worldstates.emplace_back(0x52f, 0); // AV_AID_H_C
packet.Worldstates.emplace_back(0x52d, 1); // AV_AID_A_C
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_SNOWFALL_N, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFHUT_H_C, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFHUT_A_C, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_AID_A_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFE_UNUSED, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFW_UNUSED, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFE_CONTROLLED, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFW_CONTROLLED, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_N_MINE_N, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_ICEBLOOD_A_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_PIKEGRAVE_H_C, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_PIKEGRAVE_A_C, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_STONEHEART_A_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_STONEHEART_H_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_UNK_5, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_ICEBLOOD_UNUSED, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_TOWERPOINT_UNUSED, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_UNK_4, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_ICEBLOOD_ASSAULTED, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_TOWERPOINT_ASSAULTED, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFE_ASSAULTED, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFW_ASSAULTED, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_UNK_3, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_ICEBLOOD_CONTROLLED, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_TOWERPOINT_CONTROLLED, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_STONEH_ASSAULTED, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_ICEWING_ASSAULTED, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_DUNN_ASSAULTED, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_DUNS_ASSAULTED, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_STONEH_UNUSED, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_ICEWING_UNUSED, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_DUNS_UNUSED, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_DUNN_UNUSED, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_STONEH_DESTROYED, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_UNK_1, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_UNK_0, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_STORMPIKE_COMMANDERS, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_STONEHEART_A_C, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_STONEHEART_H_C, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_STORMPIKE_LIEUTENANTS, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_ICEWING_DESTROYED, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_DUNN_DESTROYED, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_DUNS_DESTROYED, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_UNK_2, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_ICEBLOOD_DESTROYED, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_TOWERPOINT_DESTROYED, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFE_DESTROYED, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFW_DESTROYED, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_STONEH_CONTROLLED, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_ICEWING_CONTROLLED, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_DUNN_CONTROLLED, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_DUNS_CONTROLLED, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_N_MINE_H, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_N_MINE_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_S_MINE_N, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_S_MINE_H, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_S_MINE_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_ICEBLOOD_H_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_ICEBLOOD_H_C, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_ICEBLOOD_A_C, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_SNOWFALL_H_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_SNOWFALL_A_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_SNOWFALL_H_C, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_SNOWFALL_A_C, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_FROSTWOLF_H_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_FROSTWOLF_A_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_FROSTWOLF_H_C, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_FROSTWOLF_A_C, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_PIKEGRAVE_H_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_PIKEGRAVE_A_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFHUT_H_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFHUT_A_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_AID_H_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_AID_H_C, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AV_AID_A_C, 1);
}
break;
case 3277: // Warsong Gulch
@ -8431,14 +8432,14 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId)
else
{
packet.Worldstates.reserve(8);
packet.Worldstates.emplace_back(0x62d, 0); // alliance flag captures
packet.Worldstates.emplace_back(0x62e, 0); // horde flag captures
packet.Worldstates.emplace_back(0x609, 0); // unk, set to 1 on alliance flag pickup...
packet.Worldstates.emplace_back(0x60a, 0); // unk, set to 1 on horde flag pickup, after drop it's -1
packet.Worldstates.emplace_back(0x60b, 2); // unk
packet.Worldstates.emplace_back(0x641, 3); // unk (max flag captures?)
packet.Worldstates.emplace_back(0x922, 1); // horde (0 - hide, 1 - flag ok, 2 - flag picked up (flashing), 3 - flag picked up (not flashing)
packet.Worldstates.emplace_back(0x923, 1); // alliance (0 - hide, 1 - flag ok, 2 - flag picked up (flashing), 3 - flag picked up (not flashing)
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_WS_FLAG_CAPTURES_ALLIANCE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_WS_FLAG_CAPTURES_HORDE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_WS_UNK_0, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_WS_UNK_1, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_WS_UNK_2, 2);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_WS_FLAG_CAPTURES_MAX, 3);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_WS_FLAG_STATE_HORDE, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_WS_FLAG_STATE_ALLIANCE, 1);
}
break;
case 3358: // Arathi Basin
@ -8447,38 +8448,38 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId)
else
{
packet.Worldstates.reserve(32);
packet.Worldstates.emplace_back(0x6e7, 0); // stables alliance
packet.Worldstates.emplace_back(0x6e8, 0); // stables horde
packet.Worldstates.emplace_back(0x6e9, 0); // stables alliance controlled
packet.Worldstates.emplace_back(0x6ea, 0); // stables horde controlled
packet.Worldstates.emplace_back(0x6ec, 0); // farm alliance
packet.Worldstates.emplace_back(0x6ed, 0); // farm horde
packet.Worldstates.emplace_back(0x6ee, 0); // farm alliance controlled
packet.Worldstates.emplace_back(0x6ef, 0); // farm horde controlled
packet.Worldstates.emplace_back(0x6f0, 0); // alliance resources
packet.Worldstates.emplace_back(0x6f1, 0); // horde resources
packet.Worldstates.emplace_back(0x6f2, 0); // horde bases
packet.Worldstates.emplace_back(0x6f3, 0); // alliance bases
packet.Worldstates.emplace_back(0x6f4, 1600); // max resources (1600)
packet.Worldstates.emplace_back(0x6f6, 0); // blacksmith alliance
packet.Worldstates.emplace_back(0x6f7, 0); // blacksmith horde
packet.Worldstates.emplace_back(0x6f8, 0); // blacksmith alliance controlled
packet.Worldstates.emplace_back(0x6f9, 0); // blacksmith horde controlled
packet.Worldstates.emplace_back(0x6fb, 0); // gold mine alliance
packet.Worldstates.emplace_back(0x6fc, 0); // gold mine horde
packet.Worldstates.emplace_back(0x6fd, 0); // gold mine alliance controlled
packet.Worldstates.emplace_back(0x6fe, 0); // gold mine horde controlled
packet.Worldstates.emplace_back(0x700, 0); // lumber mill alliance
packet.Worldstates.emplace_back(0x701, 0); // lumber mill horde
packet.Worldstates.emplace_back(0x702, 0); // lumber mill alliance controlled
packet.Worldstates.emplace_back(0x703, 0); // lumber mill horde controlled
packet.Worldstates.emplace_back(0x732, 1); // stables (1 - uncontrolled)
packet.Worldstates.emplace_back(0x733, 1); // gold mine (1 - uncontrolled)
packet.Worldstates.emplace_back(0x734, 1); // lumber mill (1 - uncontrolled)
packet.Worldstates.emplace_back(0x735, 1); // farm (1 - uncontrolled)
packet.Worldstates.emplace_back(0x736, 1); // blacksmith (1 - uncontrolled)
packet.Worldstates.emplace_back(0x745, 2); // unk
packet.Worldstates.emplace_back(0x7a3, 1400); // warning limit (1400)
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_STABLE_STATE_ALLIANCE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_STABLE_STATE_HORDE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_STABLE_STATE_CONTROLLED_ALLIANCE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_STABLE_STATE_CONTROLLED_HORDE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_FARM_STATE_ALLIANCE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_FARM_STATE_HORDE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_FARM_STATE_CONTROLLED_ALLIANCE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_FARM_STATE_CONTROLLED_HORDE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_RESOURCES_ALLIANCE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_RESOURCES_HORDE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_OCCUPIED_BASES_HORDE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_OCCUPIED_BASES_ALLIANCE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_RESOURCES_MAX, 1600);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_BLACKSMITH_STATE_ALLIANCE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_BLACKSMITH_STATE_HORDE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_BLACKSMITH_STATE_CONTROLLED_ALLIANCE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_BLACKSMITH_STATE_CONTROLLED_HORDE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_GOLDMINE_STATE_ALLIANCE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_GOLDMINE_STATE_HORDE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_GOLDMINE_STATE_CONTROLLED_ALLIANCE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_GOLDMINE_STATE_CONTROLLED_HORDE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_LUMBERMILL_STATE_ALLIANCE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_LUMBERMILL_STATE_HORDE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_LUMBERMILL_STATE_CONTROLLED_ALLIANCE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_LUMBERMILL_STATE_CONTROLLED_HORDE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_STABLE_ICON, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_GOLDMINE_ICON, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_LUMBERMILL_ICON, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_FARM_ICON, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_BLACKSMITH_ICON, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_UNK, 2);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_AB_RESOURCES_WARNING, 1400); // warning limit (1400)
}
break;
case 3820: // Eye of the Storm
@ -8487,38 +8488,38 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId)
else
{
packet.Worldstates.reserve(32);
packet.Worldstates.emplace_back(0xac1, 0); // Horde Bases
packet.Worldstates.emplace_back(0xac0, 0); // Alliance Bases
packet.Worldstates.emplace_back(0xab6, 0); // Mage Tower - Horde conflict
packet.Worldstates.emplace_back(0xab5, 0); // Mage Tower - Alliance conflict
packet.Worldstates.emplace_back(0xab4, 0); // Fel Reaver - Horde conflict
packet.Worldstates.emplace_back(0xab3, 0); // Fel Reaver - Alliance conflict
packet.Worldstates.emplace_back(0xab2, 0); // Draenei - Alliance conflict
packet.Worldstates.emplace_back(0xab1, 0); // Draenei - Horde conflict
packet.Worldstates.emplace_back(0xab0, 0); // unk (0 at start)
packet.Worldstates.emplace_back(0xaaf, 0); // unk (0 at start)
packet.Worldstates.emplace_back(0xaad, 0); // Draenei - Horde control
packet.Worldstates.emplace_back(0xaac, 0); // Draenei - Alliance control
packet.Worldstates.emplace_back(0xaab, 1); // Draenei uncontrolled (1 - yes, 0 - no)
packet.Worldstates.emplace_back(0xaaa, 0); // Mage Tower - Alliance control
packet.Worldstates.emplace_back(0xaa9, 0); // Mage Tower - Horde control
packet.Worldstates.emplace_back(0xaa8, 1); // Mage Tower uncontrolled (1 - yes, 0 - no)
packet.Worldstates.emplace_back(0xaa7, 0); // Fel Reaver - Horde control
packet.Worldstates.emplace_back(0xaa6, 0); // Fel Reaver - Alliance control
packet.Worldstates.emplace_back(0xaa5, 1); // Fel Reaver uncontrolled (1 - yes, 0 - no)
packet.Worldstates.emplace_back(0xaa4, 0); // Boold Elf - Horde control
packet.Worldstates.emplace_back(0xaa3, 0); // Boold Elf - Alliance control
packet.Worldstates.emplace_back(0xaa2, 1); // Boold Elf uncontrolled (1 - yes, 0 - no)
packet.Worldstates.emplace_back(0xac5, 1); // Flag (1 - show, 0 - hide) - doesn't work exactly this way!
packet.Worldstates.emplace_back(0xad2, 1); // Horde top-stats (1 - show, 0 - hide) // 02 -> horde picked up the flag
packet.Worldstates.emplace_back(0xad1, 1); // Alliance top-stats (1 - show, 0 - hide) // 02 -> alliance picked up the flag
packet.Worldstates.emplace_back(0xabe, 0); // Horde resources
packet.Worldstates.emplace_back(0xabd, 0); // Alliance resources
packet.Worldstates.emplace_back(0xa05, 142); // unk, constant?
packet.Worldstates.emplace_back(0xaa0, 0); // Capturing progress-bar (100 -> empty (only grey), 0 -> blue|red (no grey), default 0)
packet.Worldstates.emplace_back(0xa9f, 0); // Capturing progress-bar (0 - left, 100 - right)
packet.Worldstates.emplace_back(0xa9e, 0); // Capturing progress-bar (1 - show, 0 - hide)
packet.Worldstates.emplace_back(0xc0d, 379); // unk, constant?
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_HORDE_BASE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_ALLIANCE_BASE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_MAGE_TOWER_HORDE_CONFLICT, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_MAGE_TOWER_ALLIANCE_CONFLICT, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_FEL_REAVER_HORDE_CONFLICT, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_FEL_REAVER_ALLIANCE_CONFLICT, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_DRAENEI_RUINS_ALLIANCE_CONFLICT, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_DRAENEI_RUINS_HORDE_CONFLICT, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_UNK_2, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_UNK_1, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_DRAENEI_RUINS_HORDE_CONTROL, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_DRAENEI_RUINS_ALLIANCE_CONTROL, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_DRAENEI_RUINS_UNCONTROL, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_MAGE_TOWER_ALLIANCE_CONTROL, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_MAGE_TOWER_HORDE_CONTROL, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_MAGE_TOWER_UNCONTROL, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_FEL_REAVER_HORDE_CONTROL, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_FEL_REAVER_ALLIANCE_CONTROL, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_FEL_REAVER_UNCONTROL, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_BLOOD_ELF_HORDE_CONTROL, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_BLOOD_ELF_ALLIANCE_CONTROL, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_BLOOD_ELF_UNCONTROL, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_FLAG, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_FLAG_STATE_HORDE, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_FLAG_STATE_ALLIANCE, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_HORDE_RESOURCES, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_ALLIANCE_RESOURCES, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_UNK_0, 142);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_PROGRESS_BAR_PERCENT_GREY, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_PROGRESS_BAR_STATUS, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_PROGRESS_BAR_SHOW, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_EY_UNK_3, 379);
// missing unknowns
}
break;
@ -8530,22 +8531,22 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId)
else
{
packet.Worldstates.reserve(16);
packet.Worldstates.emplace_back(0x9ba, 1); // add ally tower main gui icon // maybe should be sent only on login?
packet.Worldstates.emplace_back(0x9b9, 1); // add horde tower main gui icon // maybe should be sent only on login?
packet.Worldstates.emplace_back(0x9b5, 0); // show neutral broken hill icon
packet.Worldstates.emplace_back(0x9b4, 1); // show icon above broken hill
packet.Worldstates.emplace_back(0x9b3, 0); // show ally broken hill icon
packet.Worldstates.emplace_back(0x9b2, 0); // show neutral overlook icon
packet.Worldstates.emplace_back(0x9b1, 1); // show the overlook arrow
packet.Worldstates.emplace_back(0x9b0, 0); // show ally overlook icon
packet.Worldstates.emplace_back(0x9ae, 0); // horde pvp objectives captured
packet.Worldstates.emplace_back(0x9ac, 0); // ally pvp objectives captured
packet.Worldstates.emplace_back(0x9ab, 100); //: ally / horde slider grey area // show only in direct vicinity!
packet.Worldstates.emplace_back(0x9aa, 50); //: ally / horde slider percentage, 100 for ally, 0 for horde // show only in direct vicinity!
packet.Worldstates.emplace_back(0x9a9, 0); //: ally / horde slider display // show only in direct vicinity!
packet.Worldstates.emplace_back(0x9a8, 0); // show the neutral stadium icon
packet.Worldstates.emplace_back(0x9a7, 0); // show the ally stadium icon
packet.Worldstates.emplace_back(0x9a6, 1); // show the horde stadium icon
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_HP_UI_TOWER_DISPLAY_A, 1);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_HP_UI_TOWER_DISPLAY_H, 1);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_HP_BROKENHILL_N, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_HP_BROKENHILL_H, 1);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_HP_BROKENHILL_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_HP_OVERLOOK_N, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_HP_OVERLOOK_H, 1);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_HP_OVERLOOK_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_HP_UI_TOWER_COUNT_H, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_HP_UI_TOWER_COUNT_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_HP_UI_TOWER_SLIDER_N, 100);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_HP_UI_TOWER_SLIDER_POS, 50);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_HP_UI_TOWER_SLIDER_DISPLAY, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_HP_STADIUM_N, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_HP_STADIUM_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_HP_STADIUM_H, 1);
}
break;
case 3518: // Nagrand
@ -8554,34 +8555,34 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId)
else
{
packet.Worldstates.reserve(28);
packet.Worldstates.emplace_back(0x9c7, 0); // NA_UI_HORDE_GUARDS_SHOW
packet.Worldstates.emplace_back(0x9c6, 0); // NA_UI_ALLIANCE_GUARDS_SHOW
packet.Worldstates.emplace_back(0x9bd, 0); // NA_UI_GUARDS_MAX
packet.Worldstates.emplace_back(0x9bb, 0); // NA_UI_GUARDS_LEFT
packet.Worldstates.emplace_back(0x9bf, 0); // NA_UI_OUTLAND_01
packet.Worldstates.emplace_back(0x9be, 0); // NA_UI_UNK_1
packet.Worldstates.emplace_back(0x9c1, 0); // NA_UI_UNK_2
packet.Worldstates.emplace_back(0xaca, 0); // NA_MAP_WYVERN_NORTH_NEU_H
packet.Worldstates.emplace_back(0xa66, 0); // NA_MAP_WYVERN_NORTH_NEU_A
packet.Worldstates.emplace_back(0xa67, 0); // NA_MAP_WYVERN_NORTH_H
packet.Worldstates.emplace_back(0xa68, 0); // NA_MAP_WYVERN_NORTH_A
packet.Worldstates.emplace_back(0xac8, 0); // NA_MAP_WYVERN_SOUTH_NEU_H
packet.Worldstates.emplace_back(0xa6e, 0); // NA_MAP_WYVERN_SOUTH_NEU_A
packet.Worldstates.emplace_back(0xa6c, 0); // NA_MAP_WYVERN_SOUTH_H
packet.Worldstates.emplace_back(0xa6d, 0); // NA_MAP_WYVERN_SOUTH_A
packet.Worldstates.emplace_back(0xac9, 0); // NA_MAP_WYVERN_WEST_NEU_H
packet.Worldstates.emplace_back(0xa6b, 0); // NA_MAP_WYVERN_WEST_NEU_A
packet.Worldstates.emplace_back(0xa69, 0); // NA_MAP_WYVERN_WEST_H
packet.Worldstates.emplace_back(0xa6a, 0); // NA_MAP_WYVERN_WEST_A
packet.Worldstates.emplace_back(0xacb, 0); // NA_MAP_WYVERN_EAST_NEU_H
packet.Worldstates.emplace_back(0xa63, 0); // NA_MAP_WYVERN_EAST_NEU_A
packet.Worldstates.emplace_back(0xa64, 0); // NA_MAP_WYVERN_EAST_H
packet.Worldstates.emplace_back(0xa65, 0); // NA_MAP_WYVERN_EAST_A
packet.Worldstates.emplace_back(0xa6f, 0); // NA_MAP_HALAA_NEUTRAL
packet.Worldstates.emplace_back(0xa74, 0); // NA_MAP_HALAA_NEU_A
packet.Worldstates.emplace_back(0xa75, 0); // NA_MAP_HALAA_NEU_H
packet.Worldstates.emplace_back(0xa70, 0); // NA_MAP_HALAA_HORDE
packet.Worldstates.emplace_back(0xa71, 0); // NA_MAP_HALAA_ALLIANCE
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_UI_HORDE_GUARDS_SHOW, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_UI_ALLIANCE_GUARDS_SHOW, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_UI_GUARDS_MAX, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_UI_GUARDS_LEFT, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_UI_TOWER_SLIDER_DISPLAY, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_UI_TOWER_SLIDER_POS, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_UI_SLIDER_N, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_WYVERN_NORTH_NEU_H, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_WYVERN_NORTH_NEU_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_WYVERN_NORTH_H, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_WYVERN_NORTH_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_WYVERN_SOUTH_NEU_H, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_WYVERN_SOUTH_NEU_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_WYVERN_SOUTH_H, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_WYVERN_SOUTH_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_WYVERN_WEST_NEU_H, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_WYVERN_WEST_NEU_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_WYVERN_WEST_H, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_WYVERN_WEST_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_WYVERN_EAST_NEU_H, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_WYVERN_EAST_NEU_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_WYVERN_EAST_H, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_WYVERN_EAST_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_HALAA_NEUTRAL, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_HALAA_NEU_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_HALAA_NEU_H, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_HALAA_HORDE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_HALAA_ALLIANCE, 0);
}
break;
case 3519: // Terokkar Forest
@ -8590,34 +8591,34 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId)
else
{
packet.Worldstates.reserve(28);
packet.Worldstates.emplace_back(0xa41, 0); // TF_UI_CAPTURE_BAR_POS
packet.Worldstates.emplace_back(0xa40, 20); // TF_UI_CAPTURE_BAR_NEUTRAL
packet.Worldstates.emplace_back(0xa3f, 0); // TF_UI_SHOW CAPTURE BAR
packet.Worldstates.emplace_back(0xa3e, 0); // TF_UI_TOWER_COUNT_H
packet.Worldstates.emplace_back(0xa3d, 5); // TF_UI_TOWER_COUNT_A
packet.Worldstates.emplace_back(0xa3c, 0); // TF_UI_TOWERS_CONTROLLED_DISPLAY
packet.Worldstates.emplace_back(0xa88, 0); // TF_TOWER_NUM_15 - SE Neutral
packet.Worldstates.emplace_back(0xa87, 0); // TF_TOWER_NUM_14 - SE Horde
packet.Worldstates.emplace_back(0xa86, 0); // TF_TOWER_NUM_13 - SE Alliance
packet.Worldstates.emplace_back(0xa85, 0); // TF_TOWER_NUM_12 - S Neutral
packet.Worldstates.emplace_back(0xa84, 0); // TF_TOWER_NUM_11 - S Horde
packet.Worldstates.emplace_back(0xa83, 0); // TF_TOWER_NUM_10 - S Alliance
packet.Worldstates.emplace_back(0xa82, 0); // TF_TOWER_NUM_09 - NE Neutral
packet.Worldstates.emplace_back(0xa81, 0); // TF_TOWER_NUM_08 - NE Horde
packet.Worldstates.emplace_back(0xa80, 0); // TF_TOWER_NUM_07 - NE Alliance
packet.Worldstates.emplace_back(0xa7f, 0); // TF_TOWER_NUM_16 - unk
packet.Worldstates.emplace_back(0xa7e, 0); // TF_TOWER_NUM_06 - N Neutral
packet.Worldstates.emplace_back(0xa7d, 0); // TF_TOWER_NUM_05 - N Horde
packet.Worldstates.emplace_back(0xa7c, 0); // TF_TOWER_NUM_04 - N Alliance
packet.Worldstates.emplace_back(0xa7b, 0); // TF_TOWER_NUM_03 - NW Alliance
packet.Worldstates.emplace_back(0xa7a, 0); // TF_TOWER_NUM_02 - NW Horde
packet.Worldstates.emplace_back(0xa79, 0); // TF_TOWER_NUM_01 - NW Neutral
packet.Worldstates.emplace_back(0x9d0, 5); // TF_UI_LOCKED_TIME_MINUTES_FIRST_DIGIT
packet.Worldstates.emplace_back(0x9ce, 0); // TF_UI_LOCKED_TIME_MINUTES_SECOND_DIGIT
packet.Worldstates.emplace_back(0x9cd, 0); // TF_UI_LOCKED_TIME_HOURS
packet.Worldstates.emplace_back(0x9cc, 0); // TF_UI_LOCKED_DISPLAY_NEUTRAL
packet.Worldstates.emplace_back(0xad0, 0); // TF_UI_LOCKED_DISPLAY_HORDE
packet.Worldstates.emplace_back(0xacf, 1); // TF_UI_LOCKED_DISPLAY_ALLIANCE
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_UI_TOWER_SLIDER_POS, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_UI_TOWER_SLIDER_N, 20);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_UI_TOWER_SLIDER_DISPLAY, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_UI_TOWER_COUNT_H, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_UI_TOWER_COUNT_A, 5);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_UI_TOWERS_CONTROLLED_DISPLAY, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_TOWER_NUM_14, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_TOWER_NUM_13, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_TOWER_NUM_12, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_TOWER_NUM_11, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_TOWER_NUM_10, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_TOWER_NUM_09, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_TOWER_NUM_08, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_TOWER_NUM_07, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_TOWER_NUM_06, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_TOWER_NUM_15, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_TOWER_NUM_05, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_TOWER_NUM_04, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_TOWER_NUM_03, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_TOWER_NUM_02, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_TOWER_NUM_01, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_TOWER_NUM_00, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_UI_LOCKED_TIME_MINUTES_FIRST_DIGIT, 5);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_UI_LOCKED_TIME_MINUTES_SECOND_DIGIT, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_UI_LOCKED_TIME_HOURS, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_UI_LOCKED_DISPLAY_NEUTRAL, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_UI_LOCKED_DISPLAY_HORDE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_UI_LOCKED_DISPLAY_ALLIANCE, 1);
}
break;
case 3521: // Zangarmarsh
@ -8626,32 +8627,32 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId)
else
{
packet.Worldstates.reserve(26);
packet.Worldstates.emplace_back(0x9e1, 0); // ZM_UNK_1
packet.Worldstates.emplace_back(0x9e0, 0); // ZM_UNK_2
packet.Worldstates.emplace_back(0x9df, 0); // ZM_UNK_3
packet.Worldstates.emplace_back(0xa5d, 1); // ZM_WORLDSTATE_UNK_1
packet.Worldstates.emplace_back(0xa5c, 0); // ZM_MAP_TOWER_EAST_N
packet.Worldstates.emplace_back(0xa5b, 1); // ZM_MAP_TOWER_EAST_H
packet.Worldstates.emplace_back(0xa5a, 0); // ZM_MAP_TOWER_EAST_A
packet.Worldstates.emplace_back(0xa59, 1); // ZM_MAP_GRAVEYARD_H - Twin spire graveyard horde
packet.Worldstates.emplace_back(0xa58, 0); // ZM_MAP_GRAVEYARD_A
packet.Worldstates.emplace_back(0xa57, 0); // ZM_MAP_GRAVEYARD_N
packet.Worldstates.emplace_back(0xa56, 0); // ZM_MAP_TOWER_WEST_N
packet.Worldstates.emplace_back(0xa55, 1); // ZM_MAP_TOWER_WEST_H
packet.Worldstates.emplace_back(0xa54, 0); // ZM_MAP_TOWER_WEST_A
packet.Worldstates.emplace_back(0x9e7, 0); // ZM_UNK_4
packet.Worldstates.emplace_back(0x9e6, 0); // ZM_UNK_5
packet.Worldstates.emplace_back(0x9e5, 0); // ZM_UNK_6
packet.Worldstates.emplace_back(0xa00, 0); // ZM_UI_TOWER_EAST_N
packet.Worldstates.emplace_back(0x9ff, 1); // ZM_UI_TOWER_EAST_H
packet.Worldstates.emplace_back(0x9fe, 0); // ZM_UI_TOWER_EAST_A
packet.Worldstates.emplace_back(0x9fd, 0); // ZM_UI_TOWER_WEST_N
packet.Worldstates.emplace_back(0x9fc, 1); // ZM_UI_TOWER_WEST_H
packet.Worldstates.emplace_back(0x9fb, 0); // ZM_UI_TOWER_WEST_A
packet.Worldstates.emplace_back(0xa62, 0); // ZM_MAP_HORDE_FLAG_READY
packet.Worldstates.emplace_back(0xa61, 1); // ZM_MAP_HORDE_FLAG_NOT_READY
packet.Worldstates.emplace_back(0xa60, 1); // ZM_MAP_ALLIANCE_FLAG_NOT_READY
packet.Worldstates.emplace_back(0xa5f, 0); // ZM_MAP_ALLIANCE_FLAG_READY
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_ZM_UI_TOWER_SLIDER_N_W, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_ZM_UI_TOWER_SLIDER_POS_W, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_ZM_UI_TOWER_SLIDER_DISPLAY_W, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_ZM_UNK, 1);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_ZM_MAP_TOWER_EAST_N, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_ZM_MAP_TOWER_EAST_H, 1);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_ZM_MAP_TOWER_EAST_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_ZM_MAP_GRAVEYARD_H, 1);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_ZM_MAP_GRAVEYARD_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_ZM_MAP_GRAVEYARD_N, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_ZM_MAP_TOWER_WEST_N, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_ZM_MAP_TOWER_WEST_H, 1);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_ZM_MAP_TOWER_WEST_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_ZM_UI_TOWER_SLIDER_N_E, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_ZM_UI_TOWER_SLIDER_POS_E, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_ZM_UI_TOWER_SLIDER_DISPLAY_E, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_ZM_UI_TOWER_EAST_N, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_ZM_UI_TOWER_EAST_H, 1);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_ZM_UI_TOWER_EAST_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_ZM_UI_TOWER_WEST_N, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_ZM_UI_TOWER_WEST_H, 1);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_ZM_UI_TOWER_WEST_A, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_ZM_MAP_HORDE_FLAG_READY, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_ZM_MAP_HORDE_FLAG_NOT_READY, 1);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_ZM_MAP_ALLIANCE_FLAG_NOT_READY, 1);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_ZM_MAP_ALLIANCE_FLAG_READY, 0);
}
break;
case 3698: // Nagrand Arena
@ -8660,9 +8661,9 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId)
else
{
packet.Worldstates.reserve(3);
packet.Worldstates.emplace_back(0xa0f, 0); // BATTLEGROUND_NAGRAND_ARENA_GOLD
packet.Worldstates.emplace_back(0xa10, 0); // BATTLEGROUND_NAGRAND_ARENA_GREEN
packet.Worldstates.emplace_back(0xa11, 0); // BATTLEGROUND_NAGRAND_ARENA_SHOW
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_NA_ARENA_GOLD, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_NA_ARENA_GREEN, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_NA_ARENA_SHOW, 0);
}
break;
case 3702: // Blade's Edge Arena
@ -8671,9 +8672,9 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId)
else
{
packet.Worldstates.reserve(3);
packet.Worldstates.emplace_back(0x9f0, 0); // BATTLEGROUND_BLADES_EDGE_ARENA_GOLD
packet.Worldstates.emplace_back(0x9f1, 0); // BATTLEGROUND_BLADES_EDGE_ARENA_GREEN
packet.Worldstates.emplace_back(0x9f3, 0); // BATTLEGROUND_BLADES_EDGE_ARENA_SHOW
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_BE_ARENA_GOLD, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_BE_ARENA_GREEN, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_BE_ARENA_SHOW, 0);
}
break;
case 3968: // Ruins of Lordaeron
@ -8682,9 +8683,9 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId)
else
{
packet.Worldstates.reserve(3);
packet.Worldstates.emplace_back(0xbb8, 0); // BATTELGROUND_RUINS_OF_LORDAERNON_GOLD
packet.Worldstates.emplace_back(0xbb9, 0); // BATTELGROUND_RUINS_OF_LORDAERNON_GREEN
packet.Worldstates.emplace_back(0xbba, 0); // BATTELGROUND_RUINS_OF_LORDAERNON_SHOW
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_RL_ARENA_GOLD, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_RL_ARENA_GREEN, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_RL_ARENA_SHOW, 0);
}
break;
case 4378: // Dalaran Sewers
@ -8693,9 +8694,9 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId)
else
{
packet.Worldstates.reserve(3);
packet.Worldstates.emplace_back(0xe11, 0); // ARENA_WORLD_STATE_ALIVE_PLAYERS_GOLD
packet.Worldstates.emplace_back(0xe10, 0); // ARENA_WORLD_STATE_ALIVE_PLAYERS_GREEN
packet.Worldstates.emplace_back(0xe1a, 0); // ARENA_WORLD_STATE_ALIVE_PLAYERS_SHOW
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_DS_ARENA_GOLD, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_DS_ARENA_GREEN, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_DS_ARENA_SHOW, 0);
}
break;
case 4384: // Strand of the Ancients
@ -8704,34 +8705,33 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId)
else
{
packet.Worldstates.reserve(24);
// 1-3 A defend, 4-6 H defend, 7-9 unk defend, 1 - ok, 2 - half destroyed, 3 - destroyed
packet.Worldstates.emplace_back(0xf09, 0); // Gate of Temple
packet.Worldstates.emplace_back(0xe36, 0); // Gate of Yellow Moon
packet.Worldstates.emplace_back(0xe27, 0); // Gate of Green Emerald
packet.Worldstates.emplace_back(0xe24, 0); // Gate of Blue Sapphire
packet.Worldstates.emplace_back(0xe21, 0); // Gate of Red Sun
packet.Worldstates.emplace_back(0xe1e, 0); // Gate of Purple Ametyst
packet.Worldstates.emplace_back(0xdf3, 0); // bonus timer (1 - on, 0 - off)
packet.Worldstates.emplace_back(0xded, 0); // Horde Attacker
packet.Worldstates.emplace_back(0xdec, 0); // Alliance Attacker
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_ANCIENT_GATE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_YELLOW_GATE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_GREEN_GATE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_BLUE_GATE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_RED_GATE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_PURPLE_GATE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_BONUS_TIMER, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_HORDE_ATTACKER, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_ENABLE_TIMER, 0);
// End Round timer, example: 19:59 -> A:BC
packet.Worldstates.emplace_back(0xde9, 0); // C
packet.Worldstates.emplace_back(0xde8, 0); // B
packet.Worldstates.emplace_back(0xde7, 0); // A
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_TIMER_SECONDS_SECOND_DIGIT, 0); // C
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_TIMER_SECONDS_FIRST_DIGIT, 0); // B
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_TIMER_MINUTES, 0); // A
packet.Worldstates.emplace_back(0xe35, 0); // BG_SA_CENTER_GY_ALLIANCE
packet.Worldstates.emplace_back(0xe34, 0); // BG_SA_RIGHT_GY_ALLIANCE
packet.Worldstates.emplace_back(0xe33, 0); // BG_SA_LEFT_GY_ALLIANCE
packet.Worldstates.emplace_back(0xe32, 0); // BG_SA_CENTER_GY_HORDE
packet.Worldstates.emplace_back(0xe31, 0); // BG_SA_LEFT_GY_HORDE
packet.Worldstates.emplace_back(0xe30, 0); // BG_SA_RIGHT_GY_HORDE
packet.Worldstates.emplace_back(0xe2f, 0); // BG_SA_HORDE_DEFENCE_TOKEN
packet.Worldstates.emplace_back(0xe2e, 0); // BG_SA_ALLIANCE_DEFENCE_TOKEN
packet.Worldstates.emplace_back(0xe2d, 0); // BG_SA_LEFT_ATT_TOKEN_HRD
packet.Worldstates.emplace_back(0xe2c, 0); // BG_SA_RIGHT_ATT_TOKEN_HRD
packet.Worldstates.emplace_back(0xe2b, 0); // BG_SA_RIGHT_ATT_TOKEN_ALL
packet.Worldstates.emplace_back(0xe2a, 0); // BG_SA_LEFT_ATT_TOKEN_ALL
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_CENTER_GY_ALLIANCE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_RIGHT_GY_ALLIANCE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_LEFT_GY_ALLIANCE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_CENTER_GY_HORDE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_LEFT_GY_HORDE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_RIGHT_GY_HORDE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_HORDE_DEFENSE_TOKEN, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_ALLIANCE_DEFENSE_TOKEN, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_LEFT_ATTACK_TOKEN_HORDE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_RIGHT_ATTACK_TOKEN_HORDE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_RIGHT_ATTACK_TOKEN_ALLIANCE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_SA_LEFT_ATTACK_TOKEN_ALLIANCE, 0);
// missing unknowns
}
break;
@ -8741,9 +8741,9 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId)
else
{
packet.Worldstates.reserve(3);
packet.Worldstates.emplace_back(0xe10, 0); // ARENA_WORLD_STATE_ALIVE_PLAYERS_GREEN
packet.Worldstates.emplace_back(0xe11, 0); // ARENA_WORLD_STATE_ALIVE_PLAYERS_GOLD
packet.Worldstates.emplace_back(0xe1a, 0); // ARENA_WORLD_STATE_ALIVE_PLAYERS_SHOW
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_RV_ARENA_GREEN, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_RV_ARENA_GOLD, 0);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_RV_ARENA_SHOW, 0);
}
break;
case 4710: // Isle of Conquest
@ -8752,24 +8752,24 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId)
else
{
packet.Worldstates.reserve(18);
packet.Worldstates.emplace_back(0x107d, 1); // BG_IC_ALLIANCE_RENFORT_SET
packet.Worldstates.emplace_back(0x107e, 1); // BG_IC_HORDE_RENFORT_SET
packet.Worldstates.emplace_back(0x1082, 300); // BG_IC_ALLIANCE_RENFORT
packet.Worldstates.emplace_back(0x1083, 300); // BG_IC_HORDE_RENFORT
packet.Worldstates.emplace_back(0x10e2, 1); // BG_IC_GATE_FRONT_H_WS_OPEN
packet.Worldstates.emplace_back(0x10e1, 1); // BG_IC_GATE_WEST_H_WS_OPEN
packet.Worldstates.emplace_back(0x10e0, 1); // BG_IC_GATE_EAST_H_WS_OPEN
packet.Worldstates.emplace_back(0x10e3, 1); // BG_IC_GATE_FRONT_A_WS_OPEN
packet.Worldstates.emplace_back(0x10e4, 1); // BG_IC_GATE_WEST_A_WS_OPEN
packet.Worldstates.emplace_back(0x10e5, 1); // BG_IC_GATE_EAST_A_WS_OPEN
packet.Worldstates.emplace_back(0x10dd, 1); // unk
packet.Worldstates.emplace_back(0x10cd, 1); // BG_IC_DOCKS_UNCONTROLLED
packet.Worldstates.emplace_back(0x10c8, 1); // BG_IC_HANGAR_UNCONTROLLED
packet.Worldstates.emplace_back(0x10d2, 1); // BG_IC_QUARRY_UNCONTROLLED
packet.Worldstates.emplace_back(0x10d7, 1); // BG_IC_REFINERY_UNCONTROLLED
packet.Worldstates.emplace_back(0x10c6, 1); // BG_IC_WORKSHOP_UNCONTROLLED
packet.Worldstates.emplace_back(0x1093, 1); // unk
packet.Worldstates.emplace_back(0x10f9, 1); // unk
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_IC_ALLIANCE_REINFORCEMENT_SET, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_IC_HORDE_REINFORCEMENT_SET, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_IC_ALLIANCE_REINFORCEMENT, 300);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_IC_HORDE_REINFORCEMENT, 300);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_IC_GATE_FRONT_H_WS_OPEN, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_IC_GATE_WEST_H_WS_OPEN, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_IC_GATE_EAST_H_WS_OPEN, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_IC_GATE_FRONT_A_WS_OPEN, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_IC_GATE_WEST_A_WS_OPEN, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_IC_GATE_EAST_A_WS_OPEN, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_IC_GATE_FRONT_H_WS_CLOSED, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_IC_DOCKS_UNCONTROLLED, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_IC_HANGAR_UNCONTROLLED, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_IC_QUARRY_UNCONTROLLED, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_IC_REFINERY_UNCONTROLLED, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_IC_WORKSHOP_UNCONTROLLED, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_IC_UNK, 1);
packet.Worldstates.emplace_back(WORLD_STATE_BATTLEGROUND_IC_HORDE_KEEP_CONTROLLED_H, 1);
}
break;
case 4987: // The Ruby Sanctum
@ -8778,9 +8778,9 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId)
else
{
packet.Worldstates.reserve(3);
packet.Worldstates.emplace_back(0x13b9, 50); // WORLDSTATE_CORPOREALITY_MATERIAL
packet.Worldstates.emplace_back(0x13ba, 50); // WORLDSTATE_CORPOREALITY_TWILIGHT
packet.Worldstates.emplace_back(0x13bb, 0); // WORLDSTATE_CORPOREALITY_TOGGLE
packet.Worldstates.emplace_back(WORLD_STATE_RUBY_SANCTUM_CORPOREALITY_MATERIAL, 50);
packet.Worldstates.emplace_back(WORLD_STATE_RUBY_SANCTUM_CORPOREALITY_TWILIGHT, 50);
packet.Worldstates.emplace_back(WORLD_STATE_RUBY_SANCTUM_CORPOREALITY_TOGGLE, 0);
}
break;
case 4812: // Icecrown Citadel
@ -8789,11 +8789,11 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId)
else
{
packet.Worldstates.reserve(5);
packet.Worldstates.emplace_back(0x1327, 0); // WORLDSTATE_SHOW_TIMER (Blood Quickening weekly)
packet.Worldstates.emplace_back(0x1328, 30); // WORLDSTATE_EXECUTION_TIME
packet.Worldstates.emplace_back(0x134c, 0); // WORLDSTATE_SHOW_ATTEMPTS
packet.Worldstates.emplace_back(0x134d, 50); // WORLDSTATE_ATTEMPTS_REMAINING
packet.Worldstates.emplace_back(0x134e, 50); // WORLDSTATE_ATTEMPTS_MAX
packet.Worldstates.emplace_back(WORLD_STATE_ICECROWN_CITADEL_SHOW_TIMER, 0);
packet.Worldstates.emplace_back(WORLD_STATE_ICECROWN_CITADEL_EXECUTION_TIME, 30);
packet.Worldstates.emplace_back(WORLD_STATE_ICECROWN_CITADEL_SHOW_ATTEMPTS, 0);
packet.Worldstates.emplace_back(WORLD_STATE_ICECROWN_CITADEL_ATTEMPTS_REMAINING, 50);
packet.Worldstates.emplace_back(WORLD_STATE_ICECROWN_CITADEL_ATTEMPTS_MAX, 50);
}
break;
case 4100: // The Culling of Stratholme
@ -8802,11 +8802,11 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId)
else
{
packet.Worldstates.reserve(5);
packet.Worldstates.emplace_back(0xd97, 0); // WORLDSTATE_SHOW_CRATES
packet.Worldstates.emplace_back(0xd98, 0); // WORLDSTATE_CRATES_REVEALED
packet.Worldstates.emplace_back(0xdb0, 0); // WORLDSTATE_WAVE_COUNT
packet.Worldstates.emplace_back(0xf5b, 25); // WORLDSTATE_TIME_GUARDIAN
packet.Worldstates.emplace_back(0xf5c, 0); // WORLDSTATE_TIME_GUARDIAN_SHOW
packet.Worldstates.emplace_back(WORLD_STATE_CULLING_OF_STRATHOLME_SHOW_CRATES, 0);
packet.Worldstates.emplace_back(WORLD_STATE_CULLING_OF_STRATHOLME_CRATES_REVEALED, 0);
packet.Worldstates.emplace_back(WORLD_STATE_CULLING_OF_STRATHOLME_WAVE_COUNT, 0);
packet.Worldstates.emplace_back(WORLD_STATE_CULLING_OF_STRATHOLME_TIME_GUARDIAN, 25);
packet.Worldstates.emplace_back(WORLD_STATE_CULLING_OF_STRATHOLME_TIME_GUARDIAN_SHOW, 0);
}
break;
case 4228: // The Oculus
@ -8815,8 +8815,8 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId)
else
{
packet.Worldstates.reserve(2);
packet.Worldstates.emplace_back(0xdc4, 0); // WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW
packet.Worldstates.emplace_back(0xd9e, 0); // WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT
packet.Worldstates.emplace_back(WORLD_STATE_OCULUS_CENTRIFUGE_CONSTRUCT_SHOW, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OCULUS_CENTRIFUGE_CONSTRUCT_AMOUNT, 0);
}
break;
case 4273: // Ulduar
@ -8825,8 +8825,8 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId)
else
{
packet.Worldstates.reserve(2);
packet.Worldstates.emplace_back(0x1024, 0); // WORLDSTATE_ALGALON_TIMER_ENABLED
packet.Worldstates.emplace_back(0x1023, 0); // WORLDSTATE_ALGALON_DESPAWN_TIMER
packet.Worldstates.emplace_back(WORLD_STATE_ULDUAR_ALGALON_TIMER_ENABLED, 0);
packet.Worldstates.emplace_back(WORLD_STATE_ULDUAR_ALGALON_DESPAWN_TIMER, 0);
}
break;
case 4415: // Violet Hold
@ -8835,9 +8835,9 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId)
else
{
packet.Worldstates.reserve(3);
packet.Worldstates.emplace_back(0xee8, 0); // WORLD_STATE_VH_SHOW
packet.Worldstates.emplace_back(0xee7, 100); // WORLD_STATE_VH_PRISON_STATE
packet.Worldstates.emplace_back(0xee2, 0); // WORLD_STATE_VH_WAVE_COUNT
packet.Worldstates.emplace_back(WORLD_STATE_VIOLET_HOLD_SHOW, 0);
packet.Worldstates.emplace_back(WORLD_STATE_VIOLET_HOLD_PRISON_STATE, 100);
packet.Worldstates.emplace_back(WORLD_STATE_VIOLET_HOLD_WAVE_COUNT, 0);
}
break;
case 4820: // Halls of Refection
@ -8846,8 +8846,8 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId)
else
{
packet.Worldstates.reserve(2);
packet.Worldstates.emplace_back(0x1314, 0); // WORLD_STATE_HOR_WAVES_ENABLED
packet.Worldstates.emplace_back(0x1312, 0); // WORLD_STATE_HOR_WAVE_COUNT
packet.Worldstates.emplace_back(WORLD_STATE_HALLS_OF_REFLECTION_WAVES_ENABLED, 0);
packet.Worldstates.emplace_back(WORLD_STATE_HALLS_OF_REFLECTION_WAVE_COUNT, 0);
}
break;
case 4298: // Scarlet Enclave (DK starting zone)
@ -8857,12 +8857,12 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId)
if (CreatureAI* mograineAI = mograine->AI())
{
packet.Worldstates.reserve(6);
packet.Worldstates.emplace_back(0xe06, mograineAI->GetData(3590));
packet.Worldstates.emplace_back(0xe07, mograineAI->GetData(3591));
packet.Worldstates.emplace_back(0xe08, mograineAI->GetData(3592));
packet.Worldstates.emplace_back(0xe13, mograineAI->GetData(3603));
packet.Worldstates.emplace_back(0xe14, mograineAI->GetData(3604));
packet.Worldstates.emplace_back(0xe15, mograineAI->GetData(3605));
packet.Worldstates.emplace_back(WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_DEFENDERS_COUNT, mograineAI->GetData(3590));
packet.Worldstates.emplace_back(WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_SCOURGE_COUNT, mograineAI->GetData(3591));
packet.Worldstates.emplace_back(WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_SOLDIERS_ENABLE, mograineAI->GetData(3592));
packet.Worldstates.emplace_back(WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_COUNTDOWN_ENABLE, mograineAI->GetData(3603));
packet.Worldstates.emplace_back(WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_COUNTDOWN_TIME, mograineAI->GetData(3604));
packet.Worldstates.emplace_back(WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_EVENT_BEGIN_ENABLE, mograineAI->GetData(3605));
}
}
break;
@ -8875,10 +8875,10 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId)
[[fallthrough]];
default:
packet.Worldstates.reserve(4);
packet.Worldstates.emplace_back(0x914, 0);
packet.Worldstates.emplace_back(0x913, 0);
packet.Worldstates.emplace_back(0x912, 0);
packet.Worldstates.emplace_back(0x915, 0);
packet.Worldstates.emplace_back(WORLD_STATE_GENERIC_UNK_2, 0);
packet.Worldstates.emplace_back(WORLD_STATE_GENERIC_UNK_1, 0);
packet.Worldstates.emplace_back(WORLD_STATE_GENERIC_UNK_0, 0);
packet.Worldstates.emplace_back(WORLD_STATE_GENERIC_UNK_3, 0);
break;
}
}

View file

@ -22,6 +22,7 @@
#include "QueryResult.h"
#include "SpellMgr.h"
#include "World.h"
#include "WorldStateDefines.h"
void CharacterDatabaseCleaner::CleanDatabase()
{
@ -34,7 +35,7 @@ void CharacterDatabaseCleaner::CleanDatabase()
uint32 oldMSTime = getMSTime();
// check flags which clean ups are necessary
QueryResult result = CharacterDatabase.Query("SELECT value FROM worldstates WHERE entry = {}", WS_CLEANING_FLAGS);
QueryResult result = CharacterDatabase.Query("SELECT value FROM worldstates WHERE entry = {}", WORLD_STATE_CUSTOM_CLEANING_FLAGS);
if (!result)
return;
@ -59,7 +60,7 @@ void CharacterDatabaseCleaner::CleanDatabase()
// NOTE: In order to have persistentFlags be set in worldstates for the next cleanup,
// you need to define them at least once in worldstates.
flags &= sWorld->getIntConfig(CONFIG_PERSISTENT_CHARACTER_CLEAN_FLAGS);
CharacterDatabase.DirectExecute("UPDATE worldstates SET value = {} WHERE entry = {}", flags, WS_CLEANING_FLAGS);
CharacterDatabase.DirectExecute("UPDATE worldstates SET value = {} WHERE entry = {}", flags, WORLD_STATE_CUSTOM_CLEANING_FLAGS);
sWorld->SetCleaningFlags(flags);

View file

@ -96,6 +96,7 @@
#include "WorldSession.h"
#include "WorldSessionMgr.h"
#include "WorldState.h"
#include "WorldStateDefines.h"
#include <boost/asio/ip/address.hpp>
#include <cmath>
@ -2516,67 +2517,67 @@ void World::_UpdateRealmCharCount(PreparedQueryResult resultCharCount,uint32 acc
void World::InitWeeklyQuestResetTime()
{
Seconds wstime = Seconds(sWorld->getWorldState(WS_WEEKLY_QUEST_RESET_TIME));
Seconds wstime = Seconds(sWorld->getWorldState(WORLD_STATE_CUSTOM_WEEKLY_QUEST_RESET_TIME));
_nextWeeklyQuestReset = wstime > 0s ? wstime : Seconds(Acore::Time::GetNextTimeWithDayAndHour(4, 6));
if (wstime == 0s)
{
sWorld->setWorldState(WS_WEEKLY_QUEST_RESET_TIME, _nextWeeklyQuestReset.count());
sWorld->setWorldState(WORLD_STATE_CUSTOM_WEEKLY_QUEST_RESET_TIME, _nextWeeklyQuestReset.count());
}
}
void World::InitDailyQuestResetTime()
{
Seconds wstime = Seconds(sWorld->getWorldState(WS_DAILY_QUEST_RESET_TIME));
Seconds wstime = Seconds(sWorld->getWorldState(WORLD_STATE_CUSTOM_DAILY_QUEST_RESET_TIME));
_nextDailyQuestReset = wstime > 0s ? wstime : Seconds(Acore::Time::GetNextTimeWithDayAndHour(-1, 6));
if (wstime == 0s)
{
sWorld->setWorldState(WS_DAILY_QUEST_RESET_TIME, _nextDailyQuestReset.count());
sWorld->setWorldState(WORLD_STATE_CUSTOM_DAILY_QUEST_RESET_TIME, _nextDailyQuestReset.count());
}
}
void World::InitMonthlyQuestResetTime()
{
Seconds wstime = Seconds(sWorld->getWorldState(WS_MONTHLY_QUEST_RESET_TIME));
Seconds wstime = Seconds(sWorld->getWorldState(WORLD_STATE_CUSTOM_MONTHLY_QUEST_RESET_TIME));
_nextMonthlyQuestReset = wstime > 0s ? wstime : Seconds(Acore::Time::GetNextTimeWithDayAndHour(-1, 6));
if (wstime == 0s)
{
sWorld->setWorldState(WS_MONTHLY_QUEST_RESET_TIME, _nextMonthlyQuestReset.count());
sWorld->setWorldState(WORLD_STATE_CUSTOM_MONTHLY_QUEST_RESET_TIME, _nextMonthlyQuestReset.count());
}
}
void World::InitRandomBGResetTime()
{
Seconds wstime = Seconds(sWorld->getWorldState(WS_BG_DAILY_RESET_TIME));
Seconds wstime = Seconds(sWorld->getWorldState(WORLD_STATE_CUSTOM_BG_DAILY_RESET_TIME));
_nextRandomBGReset = wstime > 0s ? wstime : Seconds(Acore::Time::GetNextTimeWithDayAndHour(-1, 6));
if (wstime == 0s)
{
sWorld->setWorldState(WS_BG_DAILY_RESET_TIME, _nextRandomBGReset.count());
sWorld->setWorldState(WORLD_STATE_CUSTOM_BG_DAILY_RESET_TIME, _nextRandomBGReset.count());
}
}
void World::InitCalendarOldEventsDeletionTime()
{
Seconds currentDeletionTime = Seconds(getWorldState(WS_DAILY_CALENDAR_DELETION_OLD_EVENTS_TIME));
Seconds currentDeletionTime = Seconds(getWorldState(WORLD_STATE_CUSTOM_DAILY_CALENDAR_DELETION_OLD_EVENTS_TIME));
Seconds nextDeletionTime = currentDeletionTime > 0s ? currentDeletionTime : Seconds(Acore::Time::GetNextTimeWithDayAndHour(-1, getIntConfig(CONFIG_CALENDAR_DELETE_OLD_EVENTS_HOUR)));
if (currentDeletionTime == 0s)
{
sWorld->setWorldState(WS_DAILY_CALENDAR_DELETION_OLD_EVENTS_TIME, nextDeletionTime.count());
sWorld->setWorldState(WORLD_STATE_CUSTOM_DAILY_CALENDAR_DELETION_OLD_EVENTS_TIME, nextDeletionTime.count());
}
}
void World::InitGuildResetTime()
{
Seconds wstime = Seconds(getWorldState(WS_GUILD_DAILY_RESET_TIME));
Seconds wstime = Seconds(getWorldState(WORLD_STATE_CUSTOM_GUILD_DAILY_RESET_TIME));
_nextGuildReset = wstime > 0s ? wstime : Seconds(Acore::Time::GetNextTimeWithDayAndHour(-1, 6));
if (wstime == 0s)
{
sWorld->setWorldState(WS_GUILD_DAILY_RESET_TIME, _nextGuildReset.count());
sWorld->setWorldState(WORLD_STATE_CUSTOM_GUILD_DAILY_RESET_TIME, _nextGuildReset.count());
}
}
@ -2591,7 +2592,7 @@ void World::ResetDailyQuests()
itr->second->GetPlayer()->ResetDailyQuestStatus();
_nextDailyQuestReset = Seconds(Acore::Time::GetNextTimeWithDayAndHour(-1, 6));
sWorld->setWorldState(WS_DAILY_QUEST_RESET_TIME, _nextDailyQuestReset.count());
sWorld->setWorldState(WORLD_STATE_CUSTOM_DAILY_QUEST_RESET_TIME, _nextDailyQuestReset.count());
// change available dailies
sPoolMgr->ChangeDailyQuests();
@ -2627,7 +2628,7 @@ void World::ResetWeeklyQuests()
itr->second->GetPlayer()->ResetWeeklyQuestStatus();
_nextWeeklyQuestReset = Seconds(Acore::Time::GetNextTimeWithDayAndHour(4, 6));
sWorld->setWorldState(WS_WEEKLY_QUEST_RESET_TIME, _nextWeeklyQuestReset.count());
sWorld->setWorldState(WORLD_STATE_CUSTOM_WEEKLY_QUEST_RESET_TIME, _nextWeeklyQuestReset.count());
// change available weeklies
sPoolMgr->ChangeWeeklyQuests();
@ -2646,7 +2647,7 @@ void World::ResetMonthlyQuests()
itr->second->GetPlayer()->ResetMonthlyQuestStatus();
_nextMonthlyQuestReset = Seconds(Acore::Time::GetNextTimeWithMonthAndHour(-1, 6));
sWorld->setWorldState(WS_MONTHLY_QUEST_RESET_TIME, _nextMonthlyQuestReset.count());
sWorld->setWorldState(WORLD_STATE_CUSTOM_MONTHLY_QUEST_RESET_TIME, _nextMonthlyQuestReset.count());
}
void World::ResetEventSeasonalQuests(uint16 event_id)
@ -2674,7 +2675,7 @@ void World::ResetRandomBG()
itr->second->GetPlayer()->SetRandomWinner(false);
_nextRandomBGReset = Seconds(Acore::Time::GetNextTimeWithDayAndHour(-1, 6));
sWorld->setWorldState(WS_BG_DAILY_RESET_TIME, _nextRandomBGReset.count());
sWorld->setWorldState(WORLD_STATE_CUSTOM_BG_DAILY_RESET_TIME, _nextRandomBGReset.count());
}
void World::CalendarDeleteOldEvents()
@ -2682,7 +2683,7 @@ void World::CalendarDeleteOldEvents()
LOG_INFO("server.worldserver", "Calendar deletion of old events.");
_nextCalendarOldEventsDeletionTime = Seconds(Acore::Time::GetNextTimeWithDayAndHour(-1, getIntConfig(CONFIG_CALENDAR_DELETE_OLD_EVENTS_HOUR)));
sWorld->setWorldState(WS_DAILY_CALENDAR_DELETION_OLD_EVENTS_TIME, _nextCalendarOldEventsDeletionTime.count());
sWorld->setWorldState(WORLD_STATE_CUSTOM_DAILY_CALENDAR_DELETION_OLD_EVENTS_TIME, _nextCalendarOldEventsDeletionTime.count());
sCalendarMgr->DeleteOldEvents();
}
@ -2691,7 +2692,7 @@ void World::ResetGuildCap()
LOG_INFO("server.worldserver", "Guild Daily Cap reset.");
_nextGuildReset = Seconds(Acore::Time::GetNextTimeWithDayAndHour(-1, 6));
sWorld->setWorldState(WS_GUILD_DAILY_RESET_TIME, _nextGuildReset.count());
sWorld->setWorldState(WORLD_STATE_CUSTOM_GUILD_DAILY_RESET_TIME, _nextGuildReset.count());
sGuildMgr->ResetTimes();
}

View file

@ -127,18 +127,6 @@ enum RealmZone
REALM_ZONE_CN5_8 = 37 // basic-Latin at create, any at login
};
enum WorldStates
{
WS_ARENA_DISTRIBUTION_TIME = 20001, // Next arena distribution time
WS_WEEKLY_QUEST_RESET_TIME = 20002, // Next weekly reset time
WS_BG_DAILY_RESET_TIME = 20003, // Next daily BG reset time
WS_CLEANING_FLAGS = 20004, // Cleaning Flags
WS_DAILY_QUEST_RESET_TIME = 20005, // Next daily reset time
WS_GUILD_DAILY_RESET_TIME = 20006, // Next guild cap reset time
WS_MONTHLY_QUEST_RESET_TIME = 20007, // Next monthly reset time
WS_DAILY_CALENDAR_DELETION_OLD_EVENTS_TIME = 20008 // Next daily calendar deletions of old events time
};
// xinef: petitions storage
struct PetitionData
{

View file

@ -21,6 +21,7 @@
#include "SharedDefines.h"
#include "Weather.h"
#include "WorldState.h"
#include "WorldStateDefines.h"
WorldState* WorldState::instance()
{

View file

@ -21,24 +21,6 @@
#include "Player.h"
#include <atomic>
// TODO: Move these to WorldStateDefines.h
enum WorldStateWorldStates
{
// Sun's Reach Reclamation
WORLD_STATE_QUEL_DANAS_MUSIC = 3426,
WORLD_STATE_QUEL_DANAS_HARBOR = 3238,
WORLD_STATE_QUEL_DANAS_ALCHEMY_LAB = 3223,
WORLD_STATE_QUEL_DANAS_ARMORY = 3233,
WORLD_STATE_QUEL_DANAS_SANCTUM = 3244,
WORLD_STATE_QUEL_DANAS_PORTAL = 3269,
WORLD_STATE_QUEL_DANAS_ANVIL = 3228,
WORLD_STATE_QUEL_DANAS_MONUMENT = 3275,
// Sunwell Gate
WORLD_STATE_AGAMATH_THE_FIRST_GATE_HEALTH = 3253, // guessed, potentially wrong
WORLD_STATE_ROHENDOR_THE_SECOND_GATE_HEALTH = 3255,
WORLD_STATE_ARCHONISUS_THE_FINAL_GATE_HEALTH = 3257,
};
enum WorldStateCondition
{
WORLD_STATE_CONDITION_TROLLBANES_COMMAND = 39911,

View file

@ -0,0 +1,622 @@
/*
* This file is part of the AzerothCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU Affero General Public License as published by the
* Free Software Foundation; either version 3 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef WORLD_STATE_DEFINES_H
#define WORLD_STATE_DEFINES_H
enum WorldStateIDs
{
// Scourge Invasion
WORLD_STATE_SCOURGE_INVASION_VICTORIES = 2219,
// Active Invasion Indicators
WORLD_STATE_SCOURGE_INVASION_WINTERSPRING = 2259,
WORLD_STATE_SCOURGE_INVASION_AZSHARA = 2260,
WORLD_STATE_SCOURGE_INVASION_BLASTED_LANDS = 2261,
WORLD_STATE_SCOURGE_INVASION_BURNING_STEPPES = 2262,
WORLD_STATE_SCOURGE_INVASION_TANARIS = 2263,
WORLD_STATE_SCOURGE_INVASION_EASTERN_PLAGUELANDS = 2264,
// Active Necropoli
WORLD_STATE_SCOURGE_INVASION_NECROPOLIS_AZSHARA = 2279,
WORLD_STATE_SCOURGE_INVASION_NECROPOLIS_BLASTED_LANDS = 2280,
WORLD_STATE_SCOURGE_INVASION_NECROPOLIS_BURNING_STEPPES = 2281,
WORLD_STATE_SCOURGE_INVASION_NECROPOLIS_EASTERN_PLAGUELANDS = 2282,
WORLD_STATE_SCOURGE_INVASION_NECROPOLIS_TANARIS = 2283,
WORLD_STATE_SCOURGE_INVASION_NECROPOLIS_WINTERSPRING = 2284,
// Arena
WORLD_STATE_ARENA_SEASON_PROGRESS = 3191,
WORLD_STATE_ARENA_ALIVE_PLAYERS_GREEN = 3600,
WORLD_STATE_ARENA_ALIVE_PLAYERS_GOLD = 3601,
WORLD_STATE_ARENA_SEASON_ID = 3901,
// Sun's Reach Reclamation
WORLD_STATE_QUEL_DANAS_MUSIC = 3426,
WORLD_STATE_QUEL_DANAS_HARBOR = 3238,
WORLD_STATE_QUEL_DANAS_ALCHEMY_LAB = 3223,
WORLD_STATE_QUEL_DANAS_ARMORY = 3233,
WORLD_STATE_QUEL_DANAS_SANCTUM = 3244,
WORLD_STATE_QUEL_DANAS_PORTAL = 3269,
WORLD_STATE_QUEL_DANAS_ANVIL = 3228,
WORLD_STATE_QUEL_DANAS_MONUMENT = 3275,
// Sunwell Gate
WORLD_STATE_AGAMATH_THE_FIRST_GATE_HEALTH = 3253, // guessed, potentially wrong
WORLD_STATE_ROHENDOR_THE_SECOND_GATE_HEALTH = 3255,
WORLD_STATE_ARCHONISUS_THE_FINAL_GATE_HEALTH = 3257,
// Wintergrasp
WORLD_STATE_BATTLEFIELD_WG_VEHICLE_H = 3490,
WORLD_STATE_BATTLEFIELD_WG_MAX_VEHICLE_H = 3491,
WORLD_STATE_BATTLEFIELD_WG_VEHICLE_A = 3680,
WORLD_STATE_BATTLEFIELD_WG_MAX_VEHICLE_A = 3681,
WORLD_STATE_BATTLEFIELD_WG_WORKSHOP_K_W = 3698,
WORLD_STATE_BATTLEFIELD_WG_WORKSHOP_K_E = 3699,
WORLD_STATE_BATTLEFIELD_WG_WORKSHOP_NW = 3700,
WORLD_STATE_BATTLEFIELD_WG_WORKSHOP_NE = 3701,
WORLD_STATE_BATTLEFIELD_WG_WORKSHOP_SW = 3702,
WORLD_STATE_BATTLEFIELD_WG_WORKSHOP_SE = 3703,
WORLD_STATE_BATTLEFIELD_WG_SHOW = 3710,
WORLD_STATE_BATTLEFIELD_WG_CLOCK = 3781,
WORLD_STATE_BATTLEFIELD_WG_ACTIVE = 3801,
WORLD_STATE_BATTLEFIELD_WG_DEFENDER = 3802,
WORLD_STATE_BATTLEFIELD_WG_ATTACKER = 3803,
WORLD_STATE_BATTLEFIELD_WG_CONTROL = 3804, // Shows on the map who controls WG
WORLD_STATE_BATTLEFIELD_WG_HORDE_KEEP_CAPTURED = 4022,
WORLD_STATE_BATTLEFIELD_WG_ALLIANCE_KEEP_CAPTURED = 4023,
WORLD_STATE_BATTLEFIELD_WG_HORDE_KEEP_DEFENDED = 4024,
WORLD_STATE_BATTLEFIELD_WG_ALLIANCE_KEEP_DEFENDED = 4025,
WORLD_STATE_BATTLEFIELD_WG_CLOCK_TEXTS = 4354,
WORLD_STATE_BATTLEFIELD_WG_ICON_ACTIVE = 4375, // Activates "ice" icon
// Alterac Valley
WORLD_STATE_BATTLEGROUND_AV_STORMPIKE_LIEUTENANTS = 950,
WORLD_STATE_BATTLEGROUND_AV_STORMPIKE_COMMANDERS = 962,
WORLD_STATE_BATTLEGROUND_AV_UNK_0 = 964,
WORLD_STATE_BATTLEGROUND_AV_UNK_1 = 966,
WORLD_STATE_BATTLEGROUND_AV_STONEHEART_H_C = 1301,
WORLD_STATE_BATTLEGROUND_AV_STONEHEART_A_C = 1302,
WORLD_STATE_BATTLEGROUND_AV_STONEHEART_H_A = 1303,
WORLD_STATE_BATTLEGROUND_AV_STONEHEART_A_A = 1304,
WORLD_STATE_BATTLEGROUND_AV_AID_A_C = 1325,
WORLD_STATE_BATTLEGROUND_AV_AID_A_A = 1326,
WORLD_STATE_BATTLEGROUND_AV_AID_H_C = 1327,
WORLD_STATE_BATTLEGROUND_AV_AID_H_A = 1328,
WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFHUT_A_C = 1329,
WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFHUT_H_C = 1330,
WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFHUT_A_A = 1331,
WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFHUT_H_A = 1332,
WORLD_STATE_BATTLEGROUND_AV_PIKEGRAVE_A_C = 1333,
WORLD_STATE_BATTLEGROUND_AV_PIKEGRAVE_H_C = 1334,
WORLD_STATE_BATTLEGROUND_AV_PIKEGRAVE_A_A = 1335,
WORLD_STATE_BATTLEGROUND_AV_PIKEGRAVE_H_A = 1336,
WORLD_STATE_BATTLEGROUND_AV_FROSTWOLF_A_C = 1337,
WORLD_STATE_BATTLEGROUND_AV_FROSTWOLF_H_C = 1338,
WORLD_STATE_BATTLEGROUND_AV_FROSTWOLF_A_A = 1339,
WORLD_STATE_BATTLEGROUND_AV_FROSTWOLF_H_A = 1340,
WORLD_STATE_BATTLEGROUND_AV_SNOWFALL_A_C = 1341,
WORLD_STATE_BATTLEGROUND_AV_SNOWFALL_H_C = 1342,
WORLD_STATE_BATTLEGROUND_AV_SNOWFALL_A_A = 1343,
WORLD_STATE_BATTLEGROUND_AV_SNOWFALL_H_A = 1344,
WORLD_STATE_BATTLEGROUND_AV_ICEBLOOD_A_C = 1346,
WORLD_STATE_BATTLEGROUND_AV_ICEBLOOD_H_C = 1347,
WORLD_STATE_BATTLEGROUND_AV_ICEBLOOD_A_A = 1348,
WORLD_STATE_BATTLEGROUND_AV_ICEBLOOD_H_A = 1349,
WORLD_STATE_BATTLEGROUND_AV_S_MINE_A = 1355,
WORLD_STATE_BATTLEGROUND_AV_S_MINE_H = 1356,
WORLD_STATE_BATTLEGROUND_AV_S_MINE_N = 1357,
WORLD_STATE_BATTLEGROUND_AV_N_MINE_A = 1358,
WORLD_STATE_BATTLEGROUND_AV_N_MINE_H = 1359,
WORLD_STATE_BATTLEGROUND_AV_N_MINE_N = 1360,
WORLD_STATE_BATTLEGROUND_AV_DUNS_CONTROLLED = 1361,
WORLD_STATE_BATTLEGROUND_AV_DUNN_CONTROLLED = 1362,
WORLD_STATE_BATTLEGROUND_AV_ICEWING_CONTROLLED = 1363,
WORLD_STATE_BATTLEGROUND_AV_STONEH_CONTROLLED = 1364,
WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFW_DESTROYED = 1365,
WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFE_DESTROYED = 1366,
WORLD_STATE_BATTLEGROUND_AV_TOWERPOINT_DESTROYED = 1367,
WORLD_STATE_BATTLEGROUND_AV_ICEBLOOD_DESTROYED = 1368,
WORLD_STATE_BATTLEGROUND_AV_UNK_2 = 1369,
WORLD_STATE_BATTLEGROUND_AV_DUNS_DESTROYED = 1370,
WORLD_STATE_BATTLEGROUND_AV_DUNN_DESTROYED = 1371,
WORLD_STATE_BATTLEGROUND_AV_ICEWING_DESTROYED = 1372,
WORLD_STATE_BATTLEGROUND_AV_STONEH_DESTROYED = 1373,
WORLD_STATE_BATTLEGROUND_AV_DUNN_UNUSED = 1374, // Unused
WORLD_STATE_BATTLEGROUND_AV_DUNS_UNUSED = 1375, // Unused
WORLD_STATE_BATTLEGROUND_AV_ICEWING_UNUSED = 1376, // Unused
WORLD_STATE_BATTLEGROUND_AV_STONEH_UNUSED = 1377, // Unused
WORLD_STATE_BATTLEGROUND_AV_DUNS_ASSAULTED = 1378,
WORLD_STATE_BATTLEGROUND_AV_DUNN_ASSAULTED = 1379,
WORLD_STATE_BATTLEGROUND_AV_ICEWING_ASSAULTED = 1380,
WORLD_STATE_BATTLEGROUND_AV_STONEH_ASSAULTED = 1381,
WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFW_CONTROLLED = 1382,
WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFE_CONTROLLED = 1383,
WORLD_STATE_BATTLEGROUND_AV_TOWERPOINT_CONTROLLED = 1384,
WORLD_STATE_BATTLEGROUND_AV_ICEBLOOD_CONTROLLED = 1385,
WORLD_STATE_BATTLEGROUND_AV_UNK_3 = 1386,
WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFW_ASSAULTED = 1387,
WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFE_ASSAULTED = 1388,
WORLD_STATE_BATTLEGROUND_AV_TOWERPOINT_ASSAULTED = 1389,
WORLD_STATE_BATTLEGROUND_AV_ICEBLOOD_ASSAULTED = 1390,
WORLD_STATE_BATTLEGROUND_AV_UNK_4 = 1391,
WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFW_UNUSED = 1392, // Unused
WORLD_STATE_BATTLEGROUND_AV_FROSTWOLFE_UNUSED = 1393, // Unused
WORLD_STATE_BATTLEGROUND_AV_TOWERPOINT_UNUSED = 1394, // Unused
WORLD_STATE_BATTLEGROUND_AV_ICEBLOOD_UNUSED = 1395, // Unused
WORLD_STATE_BATTLEGROUND_AV_UNK_5 = 1396,
WORLD_STATE_BATTLEGROUND_AV_SNOWFALL_N = 1966,
WORLD_STATE_BATTLEGROUND_AV_ALLIANCE_SCORE = 3127,
WORLD_STATE_BATTLEGROUND_AV_HORDE_SCORE = 3128,
WORLD_STATE_BATTLEGROUND_AV_SHOW_HORDE_SCORE = 3133,
WORLD_STATE_BATTLEGROUND_AV_SHOW_ALLIANCE_SCORE = 3134,
// Warsong Gulch
WORLD_STATE_BATTLEGROUND_WS_UNK_0 = 1545, // set to 1 on alliance flag pickup...
WORLD_STATE_BATTLEGROUND_WS_UNK_1 = 1546, // set to 1 on horde flag pickup, after drop it's -1
WORLD_STATE_BATTLEGROUND_WS_UNK_2 = 1547,
WORLD_STATE_BATTLEGROUND_WS_FLAG_CAPTURES_ALLIANCE = 1581,
WORLD_STATE_BATTLEGROUND_WS_FLAG_CAPTURES_HORDE = 1582,
WORLD_STATE_BATTLEGROUND_WS_FLAG_CAPTURES_MAX = 1601, // unk
WORLD_STATE_BATTLEGROUND_WS_FLAG_STATE_HORDE = 2338, // (0 - hide, 1 - flag ok, 2 - flag picked up (flashing), 3 - flag picked up (not flashing)
WORLD_STATE_BATTLEGROUND_WS_FLAG_STATE_ALLIANCE = 2339, // (0 - hide, 1 - flag ok, 2 - flag picked up (flashing), 3 - flag picked up (not flashing)
WORLD_STATE_BATTLEGROUND_WS_STATE_TIMER_ACTIVE = 4247,
WORLD_STATE_BATTLEGROUND_WS_STATE_TIMER = 4248,
// Arathi Basin
WORLD_STATE_BATTLEGROUND_AB_STABLE_STATE_ALLIANCE = 1767,
WORLD_STATE_BATTLEGROUND_AB_STABLE_STATE_HORDE = 1768,
WORLD_STATE_BATTLEGROUND_AB_STABLE_STATE_CONTROLLED_ALLIANCE = 1769,
WORLD_STATE_BATTLEGROUND_AB_STABLE_STATE_CONTROLLED_HORDE = 1770,
WORLD_STATE_BATTLEGROUND_AB_FARM_STATE_ALLIANCE = 1772,
WORLD_STATE_BATTLEGROUND_AB_FARM_STATE_HORDE = 1773,
WORLD_STATE_BATTLEGROUND_AB_FARM_STATE_CONTROLLED_ALLIANCE = 1774,
WORLD_STATE_BATTLEGROUND_AB_FARM_STATE_CONTROLLED_HORDE = 1775,
WORLD_STATE_BATTLEGROUND_AB_RESOURCES_ALLIANCE = 1776,
WORLD_STATE_BATTLEGROUND_AB_RESOURCES_HORDE = 1777,
WORLD_STATE_BATTLEGROUND_AB_OCCUPIED_BASES_HORDE = 1778,
WORLD_STATE_BATTLEGROUND_AB_OCCUPIED_BASES_ALLIANCE = 1779,
WORLD_STATE_BATTLEGROUND_AB_RESOURCES_MAX = 1780,
WORLD_STATE_BATTLEGROUND_AB_BLACKSMITH_STATE_ALLIANCE = 1782,
WORLD_STATE_BATTLEGROUND_AB_BLACKSMITH_STATE_HORDE = 1783,
WORLD_STATE_BATTLEGROUND_AB_BLACKSMITH_STATE_CONTROLLED_ALLIANCE = 1784,
WORLD_STATE_BATTLEGROUND_AB_BLACKSMITH_STATE_CONTROLLED_HORDE = 1785,
WORLD_STATE_BATTLEGROUND_AB_GOLDMINE_STATE_ALLIANCE = 1787,
WORLD_STATE_BATTLEGROUND_AB_GOLDMINE_STATE_HORDE = 1788,
WORLD_STATE_BATTLEGROUND_AB_GOLDMINE_STATE_CONTROLLED_ALLIANCE = 1789,
WORLD_STATE_BATTLEGROUND_AB_GOLDMINE_STATE_CONTROLLED_HORDE = 1790,
WORLD_STATE_BATTLEGROUND_AB_LUMBERMILL_STATE_ALLIANCE = 1792,
WORLD_STATE_BATTLEGROUND_AB_LUMBERMILL_STATE_HORDE = 1793,
WORLD_STATE_BATTLEGROUND_AB_LUMBERMILL_STATE_CONTROLLED_ALLIANCE = 1794,
WORLD_STATE_BATTLEGROUND_AB_LUMBERMILL_STATE_CONTROLLED_HORDE = 1795,
WORLD_STATE_BATTLEGROUND_AB_STABLE_ICON = 1842, // 1 - uncontrolled
WORLD_STATE_BATTLEGROUND_AB_GOLDMINE_ICON = 1843, // 1 - uncontrolled
WORLD_STATE_BATTLEGROUND_AB_LUMBERMILL_ICON = 1844, // 1 - uncontrolled
WORLD_STATE_BATTLEGROUND_AB_FARM_ICON = 1845, // 1 - uncontrolled
WORLD_STATE_BATTLEGROUND_AB_BLACKSMITH_ICON = 1846, // 1 - uncontrolled
WORLD_STATE_BATTLEGROUND_AB_UNK = 1861,
WORLD_STATE_BATTLEGROUND_AB_RESOURCES_WARNING = 1955,
// Eye of the Storm
WORLD_STATE_BATTLEGROUND_EY_PROGRESS_BAR_SHOW = 2718, //1 init, 0 druhy send - bez messagu, 1 = controlled aliance // Capturing progress-bar (1 - show, 0 - hide)
WORLD_STATE_BATTLEGROUND_EY_PROGRESS_BAR_STATUS = 2719, //50 init!, 48 ... hordak bere .. 33 .. 0 = full 100% hordacky, 100 = full alliance // Capturing progress-bar (0 - left, 100 - right)
WORLD_STATE_BATTLEGROUND_EY_PROGRESS_BAR_PERCENT_GREY = 2720, //100 = empty (only grey), 0 = blue|red (no grey)
WORLD_STATE_BATTLEGROUND_EY_BLOOD_ELF_UNCONTROL = 2722, // 1 - yes, 0 - no
WORLD_STATE_BATTLEGROUND_EY_BLOOD_ELF_ALLIANCE_CONTROL = 2723,
WORLD_STATE_BATTLEGROUND_EY_BLOOD_ELF_HORDE_CONTROL = 2724,
WORLD_STATE_BATTLEGROUND_EY_FEL_REAVER_UNCONTROL = 2725, // 1 - yes, 0 - no
WORLD_STATE_BATTLEGROUND_EY_FEL_REAVER_ALLIANCE_CONTROL = 2726,
WORLD_STATE_BATTLEGROUND_EY_FEL_REAVER_HORDE_CONTROL = 2727,
WORLD_STATE_BATTLEGROUND_EY_MAGE_TOWER_UNCONTROL = 2728, // 1 - yes, 0 - no
WORLD_STATE_BATTLEGROUND_EY_MAGE_TOWER_HORDE_CONTROL = 2729,
WORLD_STATE_BATTLEGROUND_EY_MAGE_TOWER_ALLIANCE_CONTROL = 2730,
WORLD_STATE_BATTLEGROUND_EY_DRAENEI_RUINS_UNCONTROL = 2731, // 1 - yes, 0 - no
WORLD_STATE_BATTLEGROUND_EY_DRAENEI_RUINS_ALLIANCE_CONTROL = 2732,
WORLD_STATE_BATTLEGROUND_EY_DRAENEI_RUINS_HORDE_CONTROL = 2733,
WORLD_STATE_BATTLEGROUND_EY_DRAENEI_RUINS_HORDE_CONFLICT = 2737,
WORLD_STATE_BATTLEGROUND_EY_DRAENEI_RUINS_ALLIANCE_CONFLICT = 2738,
WORLD_STATE_BATTLEGROUND_EY_FEL_REAVER_ALLIANCE_CONFLICT = 2739,
WORLD_STATE_BATTLEGROUND_EY_FEL_REAVER_HORDE_CONFLICT = 2740,
WORLD_STATE_BATTLEGROUND_EY_MAGE_TOWER_ALLIANCE_CONFLICT = 2741,
WORLD_STATE_BATTLEGROUND_EY_MAGE_TOWER_HORDE_CONFLICT = 2742,
WORLD_STATE_BATTLEGROUND_EY_UNK_0 = 2565, // 142, constant?
WORLD_STATE_BATTLEGROUND_EY_UNK_1 = 2735, // 0 at start
WORLD_STATE_BATTLEGROUND_EY_UNK_2 = 2736, // 0 at start
WORLD_STATE_BATTLEGROUND_EY_UNK_3 = 3085, // 379, constant?
WORLD_STATE_BATTLEGROUND_EY_ALLIANCE_RESOURCES = 2749,
WORLD_STATE_BATTLEGROUND_EY_HORDE_RESOURCES = 2750,
WORLD_STATE_BATTLEGROUND_EY_ALLIANCE_BASE = 2752,
WORLD_STATE_BATTLEGROUND_EY_HORDE_BASE = 2753,
WORLD_STATE_BATTLEGROUND_EY_FLAG = 2757, // 1 - show, 0 - hide (doesn't work exactly this way!)
WORLD_STATE_BATTLEGROUND_EY_FLAG_STATE_ALLIANCE = 2769, // 0 - hide, 1 - show stats, 2 - Alliance picked up the flag
WORLD_STATE_BATTLEGROUND_EY_FLAG_STATE_HORDE = 2770, // 0 - hide, 1 - show stats, 2 - Horde picked up the flag
// Isle of Conquest
WORLD_STATE_BATTLEGROUND_IC_ALLIANCE_REINFORCEMENT_SET = 4221,
WORLD_STATE_BATTLEGROUND_IC_HORDE_REINFORCEMENT_SET = 4222,
WORLD_STATE_BATTLEGROUND_IC_ALLIANCE_REINFORCEMENT = 4226,
WORLD_STATE_BATTLEGROUND_IC_HORDE_REINFORCEMENT = 4227,
WORLD_STATE_BATTLEGROUND_IC_WORKSHOP_CONFLICT_A = 4228,
WORLD_STATE_BATTLEGROUND_IC_WORKSHOP_CONTROLLED_A = 4229,
WORLD_STATE_BATTLEGROUND_IC_WORKSHOP_CONTROLLED_H = 4230,
WORLD_STATE_BATTLEGROUND_IC_UNK = 4243,
WORLD_STATE_BATTLEGROUND_IC_WORKSHOP_CONFLICT_H = 4293,
WORLD_STATE_BATTLEGROUND_IC_WORKSHOP_UNCONTROLLED = 4294,
WORLD_STATE_BATTLEGROUND_IC_HANGAR_UNCONTROLLED = 4296,
WORLD_STATE_BATTLEGROUND_IC_HANGAR_CONFLICT_H = 4297,
WORLD_STATE_BATTLEGROUND_IC_HANGAR_CONTROLLED_H = 4298,
WORLD_STATE_BATTLEGROUND_IC_HANGAR_CONTROLLED_A = 4299,
WORLD_STATE_BATTLEGROUND_IC_HANGAR_CONFLICT_A = 4300,
WORLD_STATE_BATTLEGROUND_IC_DOCKS_UNCONTROLLED = 4301,
WORLD_STATE_BATTLEGROUND_IC_DOCKS_CONFLICT_H = 4302,
WORLD_STATE_BATTLEGROUND_IC_DOCKS_CONTROLLED_H = 4303,
WORLD_STATE_BATTLEGROUND_IC_DOCKS_CONTROLLED_A = 4304,
WORLD_STATE_BATTLEGROUND_IC_DOCKS_CONFLICT_A = 4305,
WORLD_STATE_BATTLEGROUND_IC_QUARRY_UNCONTROLLED = 4306,
WORLD_STATE_BATTLEGROUND_IC_QUARRY_CONFLICT_H = 4307,
WORLD_STATE_BATTLEGROUND_IC_QUARRY_CONTROLLED_H = 4308,
WORLD_STATE_BATTLEGROUND_IC_QUARRY_CONTROLLED_A = 4309,
WORLD_STATE_BATTLEGROUND_IC_QUARRY_CONFLICT_A = 4310,
WORLD_STATE_BATTLEGROUND_IC_REFINERY_UNCONTROLLED = 4311,
WORLD_STATE_BATTLEGROUND_IC_REFINERY_CONFLICT_H = 4312,
WORLD_STATE_BATTLEGROUND_IC_REFINERY_CONTROLLED_H = 4313,
WORLD_STATE_BATTLEGROUND_IC_REFINERY_CONTROLLED_A = 4314,
WORLD_STATE_BATTLEGROUND_IC_REFINERY_CONFLICT_A = 4315,
WORLD_STATE_BATTLEGROUND_IC_GATE_FRONT_H_WS_CLOSED = 4317,
WORLD_STATE_BATTLEGROUND_IC_GATE_WEST_H_WS_CLOSED = 4318,
WORLD_STATE_BATTLEGROUND_IC_GATE_EAST_H_WS_CLOSED = 4319,
WORLD_STATE_BATTLEGROUND_IC_GATE_EAST_H_WS_OPEN = 4320,
WORLD_STATE_BATTLEGROUND_IC_GATE_WEST_H_WS_OPEN = 4321,
WORLD_STATE_BATTLEGROUND_IC_GATE_FRONT_H_WS_OPEN = 4322,
WORLD_STATE_BATTLEGROUND_IC_GATE_FRONT_A_WS_OPEN = 4323,
WORLD_STATE_BATTLEGROUND_IC_GATE_WEST_A_WS_OPEN = 4324,
WORLD_STATE_BATTLEGROUND_IC_GATE_EAST_A_WS_OPEN = 4325,
WORLD_STATE_BATTLEGROUND_IC_GATE_EAST_A_WS_CLOSED = 4326,
WORLD_STATE_BATTLEGROUND_IC_GATE_WEST_A_WS_CLOSED = 4327,
WORLD_STATE_BATTLEGROUND_IC_GATE_FRONT_A_WS_CLOSED = 4328,
WORLD_STATE_BATTLEGROUND_IC_ALLIANCE_KEEP_CONTROLLED_A = 4339,
WORLD_STATE_BATTLEGROUND_IC_ALLIANCE_KEEP_CONTROLLED_H = 4340,
WORLD_STATE_BATTLEGROUND_IC_ALLIANCE_KEEP_UNCONTROLLED = 4341,
WORLD_STATE_BATTLEGROUND_IC_ALLIANCE_KEEP_CONFLICT_A = 4342,
WORLD_STATE_BATTLEGROUND_IC_ALLIANCE_KEEP_CONFLICT_H = 4343,
WORLD_STATE_BATTLEGROUND_IC_HORDE_KEEP_CONTROLLED_A = 4344,
WORLD_STATE_BATTLEGROUND_IC_HORDE_KEEP_CONTROLLED_H = 4345,
WORLD_STATE_BATTLEGROUND_IC_HORDE_KEEP_UNCONTROLLED = 4346,
WORLD_STATE_BATTLEGROUND_IC_HORDE_KEEP_CONFLICT_A = 4347,
WORLD_STATE_BATTLEGROUND_IC_HORDE_KEEP_CONFLICT_H = 4348,
// Strand of the Ancients
// Gates: 1-3 A defend, 4-6 H defend, 7-9 unk defend, 1 - ok, 2 - half destroyed, 3 - destroyed
WORLD_STATE_BATTLEGROUND_SA_TIMER_MINUTES = 3559,
WORLD_STATE_BATTLEGROUND_SA_TIMER_SECONDS_FIRST_DIGIT = 3560,
WORLD_STATE_BATTLEGROUND_SA_TIMER_SECONDS_SECOND_DIGIT = 3561,
WORLD_STATE_BATTLEGROUND_SA_ENABLE_TIMER = 3564, // previously mislabelled? (Alliance Attacker)
WORLD_STATE_BATTLEGROUND_SA_HORDE_ATTACKER = 3565, // mislabelled?
WORLD_STATE_BATTLEGROUND_SA_BONUS_TIMER = 3571, // bonus timer (1 - on, 0 - off)
WORLD_STATE_BATTLEGROUND_SA_PURPLE_GATE = 3614, // Gate of Purple Amethyst
WORLD_STATE_BATTLEGROUND_SA_RED_GATE = 3617, // Gate of Red Sun
WORLD_STATE_BATTLEGROUND_SA_BLUE_GATE = 3620, // Gate of Blue Sapphire
WORLD_STATE_BATTLEGROUND_SA_GREEN_GATE = 3623, // Gate of Green Emerald
WORLD_STATE_BATTLEGROUND_SA_LEFT_ATTACK_TOKEN_ALLIANCE = 3626,
WORLD_STATE_BATTLEGROUND_SA_RIGHT_ATTACK_TOKEN_ALLIANCE = 3627,
WORLD_STATE_BATTLEGROUND_SA_RIGHT_ATTACK_TOKEN_HORDE = 3628,
WORLD_STATE_BATTLEGROUND_SA_LEFT_ATTACK_TOKEN_HORDE = 3629,
WORLD_STATE_BATTLEGROUND_SA_ALLIANCE_DEFENSE_TOKEN = 3630,
WORLD_STATE_BATTLEGROUND_SA_HORDE_DEFENSE_TOKEN = 3631,
WORLD_STATE_BATTLEGROUND_SA_RIGHT_GY_HORDE = 3632,
WORLD_STATE_BATTLEGROUND_SA_LEFT_GY_HORDE = 3633,
WORLD_STATE_BATTLEGROUND_SA_CENTER_GY_HORDE = 3634,
WORLD_STATE_BATTLEGROUND_SA_LEFT_GY_ALLIANCE = 3635,
WORLD_STATE_BATTLEGROUND_SA_RIGHT_GY_ALLIANCE = 3636,
WORLD_STATE_BATTLEGROUND_SA_CENTER_GY_ALLIANCE = 3637,
WORLD_STATE_BATTLEGROUND_SA_YELLOW_GATE = 3638, // Gate of Yellow Moon
WORLD_STATE_BATTLEGROUND_SA_ANCIENT_GATE = 3849, // Gate of Temple
WORLD_STATE_BATTLEGROUND_SA_ALLIANCE_ATTACKS = 4352,
WORLD_STATE_BATTLEGROUND_SA_HORDE_ATTACKS = 4353,
// Blade's Edge Arena
WORLD_STATE_BATTLEGROUND_BE_ARENA_GOLD = 2544,
WORLD_STATE_BATTLEGROUND_BE_ARENA_GREEN = 2545,
WORLD_STATE_BATTLEGROUND_BE_ARENA_SHOW = 2547,
// Nagrand Arena
WORLD_STATE_BATTLEGROUND_NA_ARENA_GOLD = 2575,
WORLD_STATE_BATTLEGROUND_NA_ARENA_GREEN = 2576,
WORLD_STATE_BATTLEGROUND_NA_ARENA_SHOW = 2577,
// Ruins of Lordaeron
WORLD_STATE_BATTLEGROUND_RL_ARENA_GOLD = 3000,
WORLD_STATE_BATTLEGROUND_RL_ARENA_GREEN = 3001,
WORLD_STATE_BATTLEGROUND_RL_ARENA_SHOW = 3002,
// Dalaran Sewers
WORLD_STATE_BATTLEGROUND_DS_ARENA_GREEN = 3600,
WORLD_STATE_BATTLEGROUND_DS_ARENA_GOLD = 3601,
WORLD_STATE_BATTLEGROUND_DS_ARENA_SHOW = 3610,
// The Ring of Valor
WORLD_STATE_BATTLEGROUND_RV_ARENA_GREEN = 3600, // Used generically for all arenas
WORLD_STATE_BATTLEGROUND_RV_ARENA_GOLD = 3601, // Used generically for all arenas
WORLD_STATE_BATTLEGROUND_RV_ARENA_SHOW = 3610,
// The Silithyst Must Flow - Silithus Outdoor PvP
WORLD_STATE_OPVP_SI_GATHERED_A = 2313,
WORLD_STATE_OPVP_SI_GATHERED_H = 2314,
WORLD_STATE_OPVP_SI_SILITHYST_MAX = 2317,
// A Game of Towers - Eastern Plaguelands Outdoor PvP
WORLD_STATE_OPVP_EP_UI_TOWER_COUNT_A = 2327,
WORLD_STATE_OPVP_EP_UI_TOWER_COUNT_H = 2328,
WORLD_STATE_OPVP_EP_NORTHPASSTOWER_N = 2352,
WORLD_STATE_OPVP_EP_PLAGUEWOODTOWER_N = 2353,
WORLD_STATE_OPVP_EP_PLAGUEWOODTOWER_N_H = 2353, // 2367 not present! use neutral!
WORLD_STATE_OPVP_EP_EASTWALLTOWER_A = 2354,
WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_N = 2355,
WORLD_STATE_OPVP_EP_EASTWALLTOWER_H = 2356,
WORLD_STATE_OPVP_EP_EASTWALLTOWER_N_A = 2359, // ally conquested
WORLD_STATE_OPVP_EP_EASTWALLTOWER_N_H = 2360,
WORLD_STATE_OPVP_EP_EASTWALLTOWER_N = 2361,
WORLD_STATE_OPVP_EP_NORTHPASSTOWER_N_A = 2362,
WORLD_STATE_OPVP_EP_NORTHPASSTOWER_N_H = 2363, // GENERAL_WORLDSTATES_08
WORLD_STATE_OPVP_EP_PLAGUEWOODTOWER_N_A = 2366,
WORLD_STATE_OPVP_EP_PLAGUEWOODTOWER_A = 2370,
WORLD_STATE_OPVP_EP_PLAGUEWOODTOWER_H = 2371,
WORLD_STATE_OPVP_EP_NORTHPASSTOWER_A = 2372,
WORLD_STATE_OPVP_EP_NORTHPASSTOWER_H = 2373,
WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_N_A = 2374,
WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_N_H = 2375,
WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_A = 2378,
WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_H = 2379,
WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_DISPLAY = 2426, // GENERAL_WORLDSTATES_01 "Progress: %2427w"
WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_POS = 2427, // GENERAL_WORLDSTATES_02
WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_N = 2428, // GENERAL_WORLDSTATES_03
WORLD_STATE_OPVP_EP_UNK_0 = 2357, // GENERAL_WORLDSTATES_06
WORLD_STATE_OPVP_EP_UNK_1 = 2358, // GENERAL_WORLDSTATES_07
WORLD_STATE_OPVP_EP_UNK_2 = 2364, // GENERAL_WORLDSTATES_09
WORLD_STATE_OPVP_EP_UNK_3 = 2365, // GENERAL_WORLDSTATES_10
// WORLD_STATE_OPVP_EP_UNK_4 = 2367, // GENERAL_WORLDSTATES_13 grey horde not in dbc! See: PlaguewoodTowerNH
WORLD_STATE_OPVP_EP_UNK_5 = 2368, // GENERAL_WORLDSTATES_11
WORLD_STATE_OPVP_EP_UNK_6 = 2369, // GENERAL_WORLDSTATES_12
WORLD_STATE_OPVP_EP_UNK_7 = 2376, // GENERAL_WORLDSTATES_04
WORLD_STATE_OPVP_EP_UNK_8 = 2377, // GENERAL_WORLDSTATES_05
// Hellfire Peninsula Outdoor PvP
WORLD_STATE_OPVP_HP_STADIUM_H = 2470, // show the horde stadium icon
WORLD_STATE_OPVP_HP_STADIUM_A = 2471, // show the ally stadium icon
WORLD_STATE_OPVP_HP_STADIUM_N = 2472, // show the neutral stadium icon
WORLD_STATE_OPVP_HP_UI_TOWER_SLIDER_DISPLAY = 2473, //: ally / horde slider display // show only in direct vicinity!
WORLD_STATE_OPVP_HP_UI_TOWER_SLIDER_POS = 2474, //: ally / horde slider percentage, 100 for ally, 0 for horde // show only in direct vicinity!
WORLD_STATE_OPVP_HP_UI_TOWER_SLIDER_N = 2475, //: ally / horde slider grey area // show only in direct vicinity!
WORLD_STATE_OPVP_HP_UI_TOWER_COUNT_A = 2476, // ally pvp objectives captured
WORLD_STATE_OPVP_HP_UI_TOWER_COUNT_H = 2478, // horde pvp objectives captured
WORLD_STATE_OPVP_HP_OVERLOOK_A = 2480, // show ally overlook icon
WORLD_STATE_OPVP_HP_OVERLOOK_H = 2481, // show the overlook arrow
WORLD_STATE_OPVP_HP_OVERLOOK_N = 2482, // show neutral overlook icon
WORLD_STATE_OPVP_HP_BROKENHILL_A = 2483, // show ally broken hill icon
WORLD_STATE_OPVP_HP_BROKENHILL_H = 2484, // show icon above broken hill
WORLD_STATE_OPVP_HP_BROKENHILL_N = 2485, // show neutral broken hill icon
WORLD_STATE_OPVP_HP_UI_TOWER_DISPLAY_H = 2489, // add horde tower main gui icon // maybe should be sent only on login?
WORLD_STATE_OPVP_HP_UI_TOWER_DISPLAY_A = 2490, // add ally tower main gui icon // maybe should be sent only on login?
// Zangarmarsh Outdoor PvP
WORLD_STATE_OPVP_ZM_UI_TOWER_SLIDER_DISPLAY_W = 2527,
WORLD_STATE_OPVP_ZM_UI_TOWER_SLIDER_POS_W = 2528,
WORLD_STATE_OPVP_ZM_UI_TOWER_SLIDER_N_W = 2529,
WORLD_STATE_OPVP_ZM_UI_TOWER_SLIDER_DISPLAY_E = 2533,
WORLD_STATE_OPVP_ZM_UI_TOWER_SLIDER_POS_E = 2534,
WORLD_STATE_OPVP_ZM_UI_TOWER_SLIDER_N_E = 2535,
WORLD_STATE_OPVP_ZM_UI_TOWER_WEST_A = 2555,
WORLD_STATE_OPVP_ZM_UI_TOWER_WEST_H = 2556,
WORLD_STATE_OPVP_ZM_UI_TOWER_WEST_N = 2557,
WORLD_STATE_OPVP_ZM_UI_TOWER_EAST_A = 2558,
WORLD_STATE_OPVP_ZM_UI_TOWER_EAST_H = 2559,
WORLD_STATE_OPVP_ZM_UI_TOWER_EAST_N = 2560,
WORLD_STATE_OPVP_ZM_MAP_TOWER_WEST_A = 2644,
WORLD_STATE_OPVP_ZM_MAP_TOWER_WEST_H = 2645,
WORLD_STATE_OPVP_ZM_MAP_TOWER_WEST_N = 2646,
WORLD_STATE_OPVP_ZM_MAP_GRAVEYARD_N = 2647,
WORLD_STATE_OPVP_ZM_MAP_GRAVEYARD_A = 2648,
WORLD_STATE_OPVP_ZM_MAP_GRAVEYARD_H = 2649, // Twin spire graveyard horde
WORLD_STATE_OPVP_ZM_MAP_TOWER_EAST_A = 2650,
WORLD_STATE_OPVP_ZM_MAP_TOWER_EAST_H = 2651,
WORLD_STATE_OPVP_ZM_MAP_TOWER_EAST_N = 2652,
WORLD_STATE_OPVP_ZM_UNK = 2653,
WORLD_STATE_OPVP_ZM_MAP_ALLIANCE_FLAG_READY = 2655,
WORLD_STATE_OPVP_ZM_MAP_ALLIANCE_FLAG_NOT_READY = 2656,
WORLD_STATE_OPVP_ZM_MAP_HORDE_FLAG_NOT_READY = 2657,
WORLD_STATE_OPVP_ZM_MAP_HORDE_FLAG_READY = 2658,
// Terokkar Forest Outdoor PvP
WORLD_STATE_OPVP_TF_UI_LOCKED_DISPLAY_NEUTRAL = 2508,
WORLD_STATE_OPVP_TF_UI_LOCKED_TIME_HOURS = 2509,
WORLD_STATE_OPVP_TF_UI_LOCKED_TIME_MINUTES_SECOND_DIGIT = 2510,
WORLD_STATE_OPVP_TF_UI_LOCKED_TIME_MINUTES_FIRST_DIGIT = 2512,
WORLD_STATE_OPVP_TF_UI_TOWERS_CONTROLLED_DISPLAY = 2620,
WORLD_STATE_OPVP_TF_UI_TOWER_COUNT_A = 2621,
WORLD_STATE_OPVP_TF_UI_TOWER_COUNT_H = 2622,
WORLD_STATE_OPVP_TF_UI_TOWER_SLIDER_DISPLAY = 2623,
WORLD_STATE_OPVP_TF_UI_TOWER_SLIDER_N = 2624,
WORLD_STATE_OPVP_TF_UI_TOWER_SLIDER_POS = 2625,
WORLD_STATE_OPVP_TF_TOWER_NUM_00 = 2681, // NW Neutral
WORLD_STATE_OPVP_TF_TOWER_NUM_01 = 2682, // NW Horde
WORLD_STATE_OPVP_TF_TOWER_NUM_02 = 2683, // NW Alliance
WORLD_STATE_OPVP_TF_TOWER_NUM_03 = 2684, // N Alliance
WORLD_STATE_OPVP_TF_TOWER_NUM_04 = 2685, // N Horde
WORLD_STATE_OPVP_TF_TOWER_NUM_05 = 2686, // N Neutral
WORLD_STATE_OPVP_TF_TOWER_NUM_15 = 2687, // unk
WORLD_STATE_OPVP_TF_TOWER_NUM_06 = 2688, // NE Alliance
WORLD_STATE_OPVP_TF_TOWER_NUM_07 = 2689, // NE Horde
WORLD_STATE_OPVP_TF_TOWER_NUM_08 = 2690, // NE Neutral
WORLD_STATE_OPVP_TF_TOWER_NUM_09 = 2691, // S Alliance
WORLD_STATE_OPVP_TF_TOWER_NUM_10 = 2692, // S Horde
WORLD_STATE_OPVP_TF_TOWER_NUM_11 = 2693, // S Neutral
WORLD_STATE_OPVP_TF_TOWER_NUM_12 = 2694, // SE Alliance
WORLD_STATE_OPVP_TF_TOWER_NUM_13 = 2695, // SE Horde
WORLD_STATE_OPVP_TF_TOWER_NUM_14 = 2696, // SE Neutral
WORLD_STATE_OPVP_TF_UI_LOCKED_DISPLAY_ALLIANCE = 2767,
WORLD_STATE_OPVP_TF_UI_LOCKED_DISPLAY_HORDE = 2768,
// Halaa, Nagrand Outdoor PvP
WORLD_STATE_OPVP_NA_UI_GUARDS_LEFT = 2491,
WORLD_STATE_OPVP_NA_UI_GUARDS_MAX = 2493,
WORLD_STATE_OPVP_NA_UI_TOWER_SLIDER_POS = 2494,
WORLD_STATE_OPVP_NA_UI_TOWER_SLIDER_DISPLAY = 2495, // OUTLAND_01 "Progress: %2494w"
WORLD_STATE_OPVP_NA_UI_SLIDER_N = 2497,
WORLD_STATE_OPVP_NA_UI_ALLIANCE_GUARDS_SHOW = 2502,
WORLD_STATE_OPVP_NA_UI_HORDE_GUARDS_SHOW = 2503,
WORLD_STATE_OPVP_NA_MAP_WYVERN_EAST_NEU_A = 2659,
WORLD_STATE_OPVP_NA_MAP_WYVERN_EAST_H = 2660,
WORLD_STATE_OPVP_NA_MAP_WYVERN_EAST_A = 2661,
WORLD_STATE_OPVP_NA_MAP_WYVERN_NORTH_NEU_A = 2662,
WORLD_STATE_OPVP_NA_MAP_WYVERN_NORTH_H = 2663,
WORLD_STATE_OPVP_NA_MAP_WYVERN_NORTH_A = 2664,
WORLD_STATE_OPVP_NA_MAP_WYVERN_WEST_H = 2665,
WORLD_STATE_OPVP_NA_MAP_WYVERN_WEST_A = 2666,
WORLD_STATE_OPVP_NA_MAP_WYVERN_WEST_NEU_A = 2667,
WORLD_STATE_OPVP_NA_MAP_WYVERN_SOUTH_H = 2668,
WORLD_STATE_OPVP_NA_MAP_WYVERN_SOUTH_A = 2669,
WORLD_STATE_OPVP_NA_MAP_WYVERN_SOUTH_NEU_A = 2670,
WORLD_STATE_OPVP_NA_MAP_HALAA_NEUTRAL = 2671,
WORLD_STATE_OPVP_NA_MAP_HALAA_HORDE = 2672,
WORLD_STATE_OPVP_NA_MAP_HALAA_ALLIANCE = 2673,
WORLD_STATE_OPVP_NA_MAP_HALAA_NEU_A = 2676,
WORLD_STATE_OPVP_NA_MAP_HALAA_NEU_H = 2677,
WORLD_STATE_OPVP_NA_MAP_WYVERN_SOUTH_NEU_H = 2760,
WORLD_STATE_OPVP_NA_MAP_WYVERN_WEST_NEU_H = 2761,
WORLD_STATE_OPVP_NA_MAP_WYVERN_NORTH_NEU_H = 2762,
WORLD_STATE_OPVP_NA_MAP_WYVERN_EAST_NEU_H = 2763,
// Grizzly Hills Outdoor PvP
WORLD_STATE_OPVP_GH_UI_SLIDER_DISPLAY = 3466,
WORLD_STATE_OPVP_GH_UI_SLIDER_POS = 3467,
WORLD_STATE_OPVP_GH_UI_SLIDER_N = 3468,
// Ahn'Qiraj
WORLD_STATE_AHNQIRAJ_SANDWORM_N = 2322,
WORLD_STATE_AHNQIRAJ_SANDWORM_S = 2323,
WORLD_STATE_AHNQIRAJ_SANDWORM_SW = 2324,
WORLD_STATE_AHNQIRAJ_SANDWORM_E = 2325,
// The Battle for Light's Hope Chapel - Scarlet Enclave
WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_DEFENDERS_COUNT = 3590,
WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_SCOURGE_COUNT = 3591,
WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_SOLDIERS_ENABLE = 3592,
WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_COUNTDOWN_ENABLE = 3603,
WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_COUNTDOWN_TIME = 3604,
WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_EVENT_BEGIN_ENABLE = 3605,
// The Battle for the Undercity
WORLD_STATE_BATTLE_FOR_UNDERCITY_MANHUNT_COUNTDOWN_A = 3958,
WORLD_STATE_BATTLE_FOR_UNDERCITY_SEWERS_FIGHT_A = 3962,
WORLD_STATE_BATTLE_FOR_UNDERCITY_FAIL_A = 3963,
WORLD_STATE_BATTLE_FOR_UNDERCITY_SEWERS_DONE_A = 3964,
WORLD_STATE_BATTLE_FOR_UNDERCITY_MANHUNT_STARTS_A = 3966,
WORLD_STATE_BATTLE_FOR_UNDERCITY_APOTHECARIUM_DONE_A = 3971,
WORLD_STATE_BATTLE_FOR_UNDERCITY_APOTHECARIUM_FIGHT_A = 3972,
WORLD_STATE_BATTLE_FOR_UNDERCITY_START_H = 3875,
WORLD_STATE_BATTLE_FOR_UNDERCITY_COUNTDOWN_H = 3876,
WORLD_STATE_BATTLE_FOR_UNDERCITY_FAIL_H = 3878,
WORLD_STATE_BATTLE_FOR_UNDERCITY_COURTYARD_FIGHT_H = 3885,
WORLD_STATE_BATTLE_FOR_UNDERCITY_COURTYARD_DONE_H = 3886,
WORLD_STATE_BATTLE_FOR_UNDERCITY_INNER_SANCTUM_FIGHT_H = 3887,
WORLD_STATE_BATTLE_FOR_UNDERCITY_INNER_SANCTUM_DONE_H = 3888,
WORLD_STATE_BATTLE_FOR_UNDERCITY_ROYAL_QUARTER_FIGHT_H = 3889,
WORLD_STATE_BATTLE_FOR_UNDERCITY_ROYAL_QUARTER_DONE_H = 3890,
WORLD_STATE_BATTLE_FOR_UNDERCITY_APOTHECARIUM_FIGHT_H = 3891, // unused
WORLD_STATE_BATTLE_FOR_UNDERCITY_APOTHECARIUM_DONE_H = 3892, // unused
// The Ruby Sanctum
WORLD_STATE_RUBY_SANCTUM_CORPOREALITY_MATERIAL = 5049,
WORLD_STATE_RUBY_SANCTUM_CORPOREALITY_TWILIGHT = 5050,
WORLD_STATE_RUBY_SANCTUM_CORPOREALITY_TOGGLE = 5051,
// Icecrown Citadel
WORLD_STATE_ICECROWN_CITADEL_SHOW_TIMER = 4903, // Blood Quickening weekly
WORLD_STATE_ICECROWN_CITADEL_EXECUTION_TIME = 4904,
WORLD_STATE_ICECROWN_CITADEL_SHOW_ATTEMPTS = 4940,
WORLD_STATE_ICECROWN_CITADEL_ATTEMPTS_REMAINING = 4941,
WORLD_STATE_ICECROWN_CITADEL_ATTEMPTS_MAX = 4942,
// The Culling of Stratholme
WORLD_STATE_CULLING_OF_STRATHOLME_SHOW_CRATES = 3479,
WORLD_STATE_CULLING_OF_STRATHOLME_CRATES_REVEALED = 3480,
WORLD_STATE_CULLING_OF_STRATHOLME_WAVE_COUNT = 3504,
WORLD_STATE_CULLING_OF_STRATHOLME_TIME_GUARDIAN = 3931,
WORLD_STATE_CULLING_OF_STRATHOLME_TIME_GUARDIAN_SHOW = 3932,
// The Oculus
WORLD_STATE_OCULUS_CENTRIFUGE_CONSTRUCT_AMOUNT = 3486,
WORLD_STATE_OCULUS_CENTRIFUGE_CONSTRUCT_SHOW = 3524,
// Ulduar
WORLD_STATE_ULDUAR_ALGALON_DESPAWN_TIMER = 4131,
WORLD_STATE_ULDUAR_ALGALON_TIMER_ENABLED = 4132,
// The Violet Hold
WORLD_STATE_VIOLET_HOLD_WAVE_COUNT = 3810,
WORLD_STATE_VIOLET_HOLD_PRISON_STATE = 3815,
WORLD_STATE_VIOLET_HOLD_SHOW = 3816,
// Halls of Reflection
WORLD_STATE_HALLS_OF_REFLECTION_WAVE_COUNT = 4882,
WORLD_STATE_HALLS_OF_REFLECTION_WAVES_ENABLED = 4884,
// Zul'Aman
WORLD_STATE_ZUL_AMAN_SHOW_TIMER = 3104,
WORLD_STATE_ZUL_AMAN_TIME_TO_SACRIFICE = 3106,
// The Black Morass
WORLD_STATE_BLACK_MORASS_SHIELD = 2540,
WORLD_STATE_BLACK_MORASS = 2541,
WORLD_STATE_BLACK_MORASS_RIFT = 2784,
// Battle for Mount Hyjal
WORLD_STATE_HYJAL_ENEMY = 2453,
WORLD_STATE_HYJAL_ENEMY_COUNT = 2454,
WORLD_STATE_HYJAL_WAVES = 2842,
// Escape From Durnholde Keep
WORLD_STATE_OLD_HILLSBRAD_BARRELS_PLANTED = 2436,
// Trial of the Crusader
WORLD_STATE_TRIAL_OF_THE_CRUSADER_UI_COUNT = 4389,
WORLD_STATE_TRIAL_OF_THE_CRUSADER_UI_SHOW = 4390,
// Unknown
WORLD_STATE_GENERIC_UNK_0 = 2322,
WORLD_STATE_GENERIC_UNK_1 = 2323,
WORLD_STATE_GENERIC_UNK_2 = 2324,
WORLD_STATE_GENERIC_UNK_3 = 2325,
// Stranglethorn Fishing Extravaganza (Are these custom IDs?)
WORLD_STATE_STRANGLETHORN_VALE_FISHING_PREV_WIN_TIME = 197,
WORLD_STATE_STRANGLETHORN_VALE_FISHING_HAS_WINNER = 198,
WORLD_STATE_STRANGLETHORN_VALE_FISHING_ANNOUNCE_EVENT_BEGIN = 199,
WORLD_STATE_STRANGLETHORN_VALE_FISHING_ANNOUNCE_POOLS_DESPAWN = 200,
// Custom
WORLD_STATE_CUSTOM_ARENA_DISTRIBUTION_TIME = 20001, // Next arena distribution time
WORLD_STATE_CUSTOM_WEEKLY_QUEST_RESET_TIME = 20002, // Next weekly reset time
WORLD_STATE_CUSTOM_BG_DAILY_RESET_TIME = 20003, // Next daily BG reset time
WORLD_STATE_CUSTOM_CLEANING_FLAGS = 20004, // Cleaning Flags
WORLD_STATE_CUSTOM_DAILY_QUEST_RESET_TIME = 20005, // Next daily reset time
WORLD_STATE_CUSTOM_GUILD_DAILY_RESET_TIME = 20006, // Next guild cap reset time
WORLD_STATE_CUSTOM_MONTHLY_QUEST_RESET_TIME = 20007, // Next monthly reset time
WORLD_STATE_CUSTOM_DAILY_CALENDAR_DELETION_OLD_EVENTS_TIME = 20008, // Next daily calendar deletions of old events time
};
#endif

View file

@ -21,6 +21,7 @@
#include "ScriptedGossip.h"
#include "SpellScript.h"
#include "SpellScriptLoader.h"
#include "WorldStateDefines.h"
enum LightOfDawnSays
{
@ -198,13 +199,6 @@ enum LightOfDawnEncounter
ENCOUNTER_TOTAL_DEFENDERS = 300,
ENCOUNTER_TOTAL_SCOURGE = 10000,
WORLD_STATE_DEFENDERS_COUNT = 3590,
WORLD_STATE_SCOURGE_COUNT = 3591,
WORLD_STATE_SOLDIERS_ENABLE = 3592,
WORLD_STATE_COUNTDOWN_ENABLE = 3603,
WORLD_STATE_COUNTDOWN_TIME = 3604,
WORLD_STATE_EVENT_BEGIN_ENABLE = 3605,
ENCOUNTER_STATE_NONE = 0,
ENCOUNTER_STATE_FIGHT = 1,
ENCOUNTER_STATE_OUTRO = 2,
@ -343,7 +337,7 @@ public:
if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (player->GetQuestStatus(12801) == QUEST_STATUS_INCOMPLETE && !creature->AI()->GetData(WORLD_STATE_SOLDIERS_ENABLE))
if (player->GetQuestStatus(12801) == QUEST_STATUS_INCOMPLETE && !creature->AI()->GetData(WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_SOLDIERS_ENABLE))
AddGossipItemFor(player, 9795, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
@ -414,17 +408,17 @@ public:
{
switch (type)
{
case WORLD_STATE_DEFENDERS_COUNT:
case WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_DEFENDERS_COUNT:
return defendersRemaining;
case WORLD_STATE_SCOURGE_COUNT:
case WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_SCOURGE_COUNT:
return scourgeRemaining;
case WORLD_STATE_SOLDIERS_ENABLE:
case WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_SOLDIERS_ENABLE:
return me->IsAlive() && (startTimeRemaining || battleStarted);
case WORLD_STATE_COUNTDOWN_ENABLE:
case WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_COUNTDOWN_ENABLE:
return me->IsAlive() && startTimeRemaining;
case WORLD_STATE_COUNTDOWN_TIME:
case WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_COUNTDOWN_TIME:
return startTimeRemaining;
case WORLD_STATE_EVENT_BEGIN_ENABLE:
case WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_EVENT_BEGIN_ENABLE:
return me->IsAlive() && !startTimeRemaining && battleStarted;
}
return 0;
@ -442,12 +436,12 @@ public:
void SendInitialWorldStates()
{
SendUpdateWorldState(WORLD_STATE_DEFENDERS_COUNT, GetData(WORLD_STATE_DEFENDERS_COUNT));
SendUpdateWorldState(WORLD_STATE_SCOURGE_COUNT, GetData(WORLD_STATE_SCOURGE_COUNT));
SendUpdateWorldState(WORLD_STATE_SOLDIERS_ENABLE, GetData(WORLD_STATE_SOLDIERS_ENABLE));
SendUpdateWorldState(WORLD_STATE_COUNTDOWN_ENABLE, GetData(WORLD_STATE_COUNTDOWN_ENABLE));
SendUpdateWorldState(WORLD_STATE_COUNTDOWN_TIME, GetData(WORLD_STATE_COUNTDOWN_TIME));
SendUpdateWorldState(WORLD_STATE_EVENT_BEGIN_ENABLE, GetData(WORLD_STATE_EVENT_BEGIN_ENABLE));
SendUpdateWorldState(WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_DEFENDERS_COUNT, GetData(WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_DEFENDERS_COUNT));
SendUpdateWorldState(WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_SCOURGE_COUNT, GetData(WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_SCOURGE_COUNT));
SendUpdateWorldState(WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_SOLDIERS_ENABLE, GetData(WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_SOLDIERS_ENABLE));
SendUpdateWorldState(WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_COUNTDOWN_ENABLE, GetData(WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_COUNTDOWN_ENABLE));
SendUpdateWorldState(WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_COUNTDOWN_TIME, GetData(WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_COUNTDOWN_TIME));
SendUpdateWorldState(WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_EVENT_BEGIN_ENABLE, GetData(WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_EVENT_BEGIN_ENABLE));
}
void JustSummoned(Creature* cr) override
@ -482,12 +476,12 @@ public:
if (creature->GetEntry() >= NPC_RAMPAGING_ABOMINATION)
{
--scourgeRemaining;
SendUpdateWorldState(WORLD_STATE_SCOURGE_COUNT, GetData(WORLD_STATE_SCOURGE_COUNT));
SendUpdateWorldState(WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_SCOURGE_COUNT, GetData(WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_SCOURGE_COUNT));
}
else
{
--defendersRemaining;
SendUpdateWorldState(WORLD_STATE_DEFENDERS_COUNT, GetData(WORLD_STATE_DEFENDERS_COUNT));
SendUpdateWorldState(WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_DEFENDERS_COUNT, GetData(WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_DEFENDERS_COUNT));
if (defendersRemaining == 200)
FinishFight();
@ -610,25 +604,25 @@ public:
switch (eventId)
{
case EVENT_START_COUNTDOWN_1:
SendUpdateWorldState(WORLD_STATE_COUNTDOWN_TIME, 4);
SendUpdateWorldState(WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_COUNTDOWN_TIME, 4);
break;
case EVENT_START_COUNTDOWN_2:
SendUpdateWorldState(WORLD_STATE_COUNTDOWN_TIME, 3);
SendUpdateWorldState(WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_COUNTDOWN_TIME, 3);
break;
case EVENT_START_COUNTDOWN_3:
SendUpdateWorldState(WORLD_STATE_COUNTDOWN_TIME, 2);
SendUpdateWorldState(WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_COUNTDOWN_TIME, 2);
break;
case EVENT_START_COUNTDOWN_4:
Talk(SAY_LIGHT_OF_DAWN02);
SendUpdateWorldState(WORLD_STATE_COUNTDOWN_TIME, 1);
SendUpdateWorldState(WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_COUNTDOWN_TIME, 1);
break;
case EVENT_START_COUNTDOWN_5:
battleStarted = ENCOUNTER_STATE_FIGHT;
me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE);
Talk(SAY_LIGHT_OF_DAWN04); // Wrong order in DB!
SendUpdateWorldState(WORLD_STATE_COUNTDOWN_TIME, 0);
SendUpdateWorldState(WORLD_STATE_COUNTDOWN_ENABLE, 0);
SendUpdateWorldState(WORLD_STATE_EVENT_BEGIN_ENABLE, 1);
SendUpdateWorldState(WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_COUNTDOWN_TIME, 0);
SendUpdateWorldState(WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_COUNTDOWN_ENABLE, 0);
SendUpdateWorldState(WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_EVENT_BEGIN_ENABLE, 1);
break;
case EVENT_START_COUNTDOWN_6:
case EVENT_START_COUNTDOWN_7:

View file

@ -19,13 +19,12 @@
#include "InstanceScript.h"
#include "Player.h"
#include "TemporarySummon.h"
#include "WorldStateDefines.h"
#include "zulaman.h"
enum Misc
{
RAND_VENDOR = 2,
WORLDSTATE_SHOW_TIMER = 3104,
WORLDSTATE_TIME_TO_SACRIFICE = 3106
RAND_VENDOR = 2,
};
// Chests spawn at bear/eagle/dragonhawk/lynx bosses
@ -175,8 +174,8 @@ public:
{
if (uint32 timer = GetPersistentData(DATA_TIMED_RUN))
{
DoUpdateWorldState(WORLDSTATE_SHOW_TIMER, 1);
DoUpdateWorldState(WORLDSTATE_TIME_TO_SACRIFICE, timer);
DoUpdateWorldState(WORLD_STATE_ZUL_AMAN_SHOW_TIMER, 1);
DoUpdateWorldState(WORLD_STATE_ZUL_AMAN_TIME_TO_SACRIFICE, timer);
}
scheduler.Schedule(1min, GROUP_TIMED_RUN, [this](TaskContext context)
@ -184,13 +183,13 @@ public:
if (uint32 timer = GetPersistentData(DATA_TIMED_RUN))
{
--timer;
DoUpdateWorldState(WORLDSTATE_SHOW_TIMER, 1);
DoUpdateWorldState(WORLDSTATE_TIME_TO_SACRIFICE, timer);
DoUpdateWorldState(WORLD_STATE_ZUL_AMAN_SHOW_TIMER, 1);
DoUpdateWorldState(WORLD_STATE_ZUL_AMAN_TIME_TO_SACRIFICE, timer);
StorePersistentData(DATA_TIMED_RUN, timer);
context.Repeat();
}
else
DoUpdateWorldState(WORLDSTATE_SHOW_TIMER, 0);
DoUpdateWorldState(WORLD_STATE_ZUL_AMAN_SHOW_TIMER, 0);
});
}
}
@ -303,7 +302,7 @@ public:
if (uint32 timer = GetPersistentData(DATA_TIMED_RUN))
{
StorePersistentData(DATA_TIMED_RUN, timer += 15);
DoUpdateWorldState(WORLDSTATE_TIME_TO_SACRIFICE, timer);
DoUpdateWorldState(WORLD_STATE_ZUL_AMAN_TIME_TO_SACRIFICE, timer);
}
SummonHostage(type);
break;
@ -311,7 +310,7 @@ public:
if (uint32 timer = GetPersistentData(DATA_TIMED_RUN))
{
StorePersistentData(DATA_TIMED_RUN, timer += 10);
DoUpdateWorldState(WORLDSTATE_TIME_TO_SACRIFICE, timer);
DoUpdateWorldState(WORLD_STATE_ZUL_AMAN_TIME_TO_SACRIFICE, timer);
}
SummonHostage(type);
break;
@ -328,7 +327,7 @@ public:
if (GetPersistentData(DATA_TIMED_RUN) && AllBossesDone({ DATA_NALORAKK, DATA_AKILZON, DATA_JANALAI, DATA_HALAZZI }))
{
StorePersistentData(DATA_TIMED_RUN, 0);
DoUpdateWorldState(WORLDSTATE_SHOW_TIMER, 0);
DoUpdateWorldState(WORLD_STATE_ZUL_AMAN_SHOW_TIMER, 0);
}
CheckInstanceStatus();

View file

@ -37,6 +37,7 @@ EndContentData */
#include "SpellAuraEffects.h"
#include "SpellScript.h"
#include "SpellScriptLoader.h"
#include "WorldStateDefines.h"
/*######
## npc_lady_sylvanas_windrunner
@ -723,31 +724,6 @@ enum QuestMisc
ZONE_UNDERCITY = 1497
};
enum Worldstates
{
// Alliance
WORLD_STATE_MANHUNT_COUNTDOWN_A = 3958,
WORLD_STATE_MANHUNT_STARTS_A = 3966,
WORLD_STATE_SEWERS_FIGHT_A = 3962,
WORLD_STATE_SEWERS_DONE_A = 3964,
WORLD_STATE_APOTHECARIUM_FIGHT_A = 3972,
WORLD_STATE_APOTHECARIUM_DONE_A = 3971,
WORLD_STATE_FAIL_A = 3963,
// Horde
WORLD_STATE_BATTLE_COUNTDOWN_H = 3876,
WORLD_STATE_BATTLE_START_H = 3875,
WORLD_STATE_COURTYARD_FIGHT_H = 3885,
WORLD_STATE_COURTYARD_DONE_H = 3886,
WORLD_STATE_INNER_SANKTUM_FIGHT_H = 3887,
WORLD_STATE_INNER_SANKTUM_DONE_H = 3888,
WORLD_STATE_APOTHECARIUM_FIGHT_H = 3891, // unused
WORLD_STATE_APOTHECARIUM_DONE_H = 3892, // unused
WORLD_STATE_ROYAL_QUARTER_FIGHT_H = 3889,
WORLD_STATE_ROYAL_QUARTER_DONE_H = 3890,
WORLD_STATE_FAIL_H = 3878
};
struct LocationXYZO {
float x, y, z, o;
};
@ -1131,13 +1107,13 @@ public:
switch (summon->GetEntry())
{
case NPC_BLIGHTWORM:
UpdateWorldState(me->GetMap(), WORLD_STATE_SEWERS_FIGHT_A, 0);
UpdateWorldState(me->GetMap(), WORLD_STATE_SEWERS_DONE_A, 1);
UpdateWorldState(me->GetMap(), WORLD_STATE_BATTLE_FOR_UNDERCITY_SEWERS_FIGHT_A, 0);
UpdateWorldState(me->GetMap(), WORLD_STATE_BATTLE_FOR_UNDERCITY_SEWERS_DONE_A, 1);
bStepping = true;
break;
case NPC_PUTRESS:
UpdateWorldState(me->GetMap(), WORLD_STATE_APOTHECARIUM_FIGHT_A, 0);
UpdateWorldState(me->GetMap(), WORLD_STATE_APOTHECARIUM_DONE_A, 1);
UpdateWorldState(me->GetMap(), WORLD_STATE_BATTLE_FOR_UNDERCITY_APOTHECARIUM_FIGHT_A, 0);
UpdateWorldState(me->GetMap(), WORLD_STATE_BATTLE_FOR_UNDERCITY_APOTHECARIUM_DONE_A, 1);
bStepping = true;
break;
default:
@ -1536,7 +1512,7 @@ public:
//Preparation
case 0:
me->setActive(true);
UpdateWorldState(me->GetMap(), WORLD_STATE_MANHUNT_COUNTDOWN_A, 1);
UpdateWorldState(me->GetMap(), WORLD_STATE_BATTLE_FOR_UNDERCITY_MANHUNT_COUNTDOWN_A, 1);
Talk(WRYNN_SAY_PREP_1);
JumpToNextStep(10 * IN_MILLISECONDS);
break;
@ -1553,8 +1529,8 @@ public:
JumpToNextStep(20 * IN_MILLISECONDS);
break;
case 4:
UpdateWorldState(me->GetMap(), WORLD_STATE_MANHUNT_COUNTDOWN_A, 0);
UpdateWorldState(me->GetMap(), WORLD_STATE_MANHUNT_STARTS_A, 1);
UpdateWorldState(me->GetMap(), WORLD_STATE_BATTLE_FOR_UNDERCITY_MANHUNT_COUNTDOWN_A, 0);
UpdateWorldState(me->GetMap(), WORLD_STATE_BATTLE_FOR_UNDERCITY_MANHUNT_STARTS_A, 1);
Talk(WRYNN_SAY_PREP_5);
JumpToNextStep(10 * IN_MILLISECONDS);
break;
@ -1600,8 +1576,8 @@ public:
break;
case 12:
SetEscortPaused(false);
UpdateWorldState(me->GetMap(), WORLD_STATE_MANHUNT_STARTS_A, 0);
UpdateWorldState(me->GetMap(), WORLD_STATE_SEWERS_FIGHT_A, 1);
UpdateWorldState(me->GetMap(), WORLD_STATE_BATTLE_FOR_UNDERCITY_MANHUNT_STARTS_A, 0);
UpdateWorldState(me->GetMap(), WORLD_STATE_BATTLE_FOR_UNDERCITY_SEWERS_FIGHT_A, 1);
JumpToNextStep(1 * IN_MILLISECONDS);
break;
case 13:
@ -1692,7 +1668,7 @@ public:
JumpToNextStep(1.5 * IN_MILLISECONDS);
break;
case 30:
UpdateWorldState(me->GetMap(), WORLD_STATE_APOTHECARIUM_FIGHT_A, 1);
UpdateWorldState(me->GetMap(), WORLD_STATE_BATTLE_FOR_UNDERCITY_APOTHECARIUM_FIGHT_A, 1);
if (Creature* putress = ObjectAccessor::GetCreature(*me, putressGUID))
putress->AI()->Talk(PUTRESS_SAY_1);
if (Player* player = GetPlayerForEscort())
@ -2018,9 +1994,9 @@ public:
}
}
}
UpdateWorldState(me->GetMap(), WORLD_STATE_MANHUNT_STARTS_A, 0);
UpdateWorldState(me->GetMap(), WORLD_STATE_SEWERS_DONE_A, 0);
UpdateWorldState(me->GetMap(), WORLD_STATE_APOTHECARIUM_DONE_A, 0);
UpdateWorldState(me->GetMap(), WORLD_STATE_BATTLE_FOR_UNDERCITY_MANHUNT_STARTS_A, 0);
UpdateWorldState(me->GetMap(), WORLD_STATE_BATTLE_FOR_UNDERCITY_SEWERS_DONE_A, 0);
UpdateWorldState(me->GetMap(), WORLD_STATE_BATTLE_FOR_UNDERCITY_APOTHECARIUM_DONE_A, 0);
me->DespawnOrUnsummon();
break;
}
@ -2471,14 +2447,14 @@ public:
switch (summon->GetEntry())
{
case NPC_BLIGHT_ABBERATION:
UpdateWorldState(me->GetMap(), WORLD_STATE_COURTYARD_FIGHT_H, 0);
UpdateWorldState(me->GetMap(), WORLD_STATE_COURTYARD_DONE_H, 1);
UpdateWorldState(me->GetMap(), WORLD_STATE_BATTLE_FOR_UNDERCITY_COURTYARD_FIGHT_H, 0);
UpdateWorldState(me->GetMap(), WORLD_STATE_BATTLE_FOR_UNDERCITY_COURTYARD_DONE_H, 1);
bStepping = true;
break;
case NPC_KHANOK:
{
UpdateWorldState(me->GetMap(), WORLD_STATE_INNER_SANKTUM_FIGHT_H, 0);
UpdateWorldState(me->GetMap(), WORLD_STATE_INNER_SANKTUM_DONE_H, 1);
UpdateWorldState(me->GetMap(), WORLD_STATE_BATTLE_FOR_UNDERCITY_INNER_SANCTUM_FIGHT_H, 0);
UpdateWorldState(me->GetMap(), WORLD_STATE_BATTLE_FOR_UNDERCITY_INNER_SANCTUM_DONE_H, 1);
FollowThrall();
SetEscortPaused(false);
std::list<Creature*> SanktumList;
@ -2497,8 +2473,8 @@ public:
}
case NPC_VARIMATHRAS:
{
UpdateWorldState(me->GetMap(), WORLD_STATE_ROYAL_QUARTER_FIGHT_H, 0);
UpdateWorldState(me->GetMap(), WORLD_STATE_ROYAL_QUARTER_DONE_H, 1);
UpdateWorldState(me->GetMap(), WORLD_STATE_BATTLE_FOR_UNDERCITY_ROYAL_QUARTER_FIGHT_H, 0);
UpdateWorldState(me->GetMap(), WORLD_STATE_BATTLE_FOR_UNDERCITY_ROYAL_QUARTER_DONE_H, 1);
std::list<Creature*> ThroneList;
me->GetCreatureListWithEntryInGrid(ThroneList, NPC_LEGION_OVERLORD, 1000.0f);
me->GetCreatureListWithEntryInGrid(ThroneList, NPC_LEGION_INVADER, 1000.0f);
@ -2874,7 +2850,7 @@ public:
break;
case 36:
Talk(THRALL_SAY_SANCTUM_1);
UpdateWorldState(me->GetMap(), WORLD_STATE_INNER_SANKTUM_FIGHT_H, 1);
UpdateWorldState(me->GetMap(), WORLD_STATE_BATTLE_FOR_UNDERCITY_ROYAL_QUARTER_FIGHT_H, 1);
break;
case 46:
SetHoldState(true);
@ -2951,7 +2927,7 @@ public:
JumpToNextStep(3 * IN_MILLISECONDS);
break;
case 1:
UpdateWorldState(me->GetMap(), WORLD_STATE_BATTLE_COUNTDOWN_H, 1);
UpdateWorldState(me->GetMap(), WORLD_STATE_BATTLE_FOR_UNDERCITY_COUNTDOWN_H, 1);
Talk(THRALL_SAY_PREP_1);
JumpToNextStep(6 * IN_MILLISECONDS);
break;
@ -2995,8 +2971,8 @@ public:
break;
// Start Event
case 11:
UpdateWorldState(me->GetMap(), WORLD_STATE_BATTLE_COUNTDOWN_H, 0);
UpdateWorldState(me->GetMap(), WORLD_STATE_BATTLE_START_H, 1);
UpdateWorldState(me->GetMap(), WORLD_STATE_BATTLE_FOR_UNDERCITY_COUNTDOWN_H, 0);
UpdateWorldState(me->GetMap(), WORLD_STATE_BATTLE_FOR_UNDERCITY_START_H, 1);
Talk(THRALL_SAY_PREP_8);
SetEscortPaused(false);
bStepping = false;
@ -3108,8 +3084,8 @@ public:
bStepping = false;
SetRun(true);
Talk(THRALL_SAY_COURTYARD_4);
UpdateWorldState(me->GetMap(), WORLD_STATE_BATTLE_START_H, 0);
UpdateWorldState(me->GetMap(), WORLD_STATE_COURTYARD_FIGHT_H, 1);
UpdateWorldState(me->GetMap(), WORLD_STATE_BATTLE_FOR_UNDERCITY_START_H, 0);
UpdateWorldState(me->GetMap(), WORLD_STATE_BATTLE_FOR_UNDERCITY_COURTYARD_FIGHT_H, 1);
JumpToNextStep(0);
break;
case 28:
@ -3548,7 +3524,7 @@ public:
}
case 116:
Talk(THRALL_SAY_SANCTUM_7);
UpdateWorldState(me->GetMap(), WORLD_STATE_ROYAL_QUARTER_FIGHT_H, 1);
UpdateWorldState(me->GetMap(), WORLD_STATE_BATTLE_FOR_UNDERCITY_ROYAL_QUARTER_FIGHT_H, 1);
FollowThrall();
SetEscortPaused(false);
bStepping = false;
@ -3885,9 +3861,9 @@ public:
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
me->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
Talk(THRALL_SAY_THRONE_11);
UpdateWorldState(me->GetMap(), WORLD_STATE_ROYAL_QUARTER_FIGHT_H, 0);
UpdateWorldState(me->GetMap(), WORLD_STATE_INNER_SANKTUM_FIGHT_H, 0);
UpdateWorldState(me->GetMap(), WORLD_STATE_COURTYARD_FIGHT_H, 0);
UpdateWorldState(me->GetMap(), WORLD_STATE_BATTLE_FOR_UNDERCITY_ROYAL_QUARTER_FIGHT_H, 0);
UpdateWorldState(me->GetMap(), WORLD_STATE_BATTLE_FOR_UNDERCITY_INNER_SANCTUM_FIGHT_H, 0);
UpdateWorldState(me->GetMap(), WORLD_STATE_BATTLE_FOR_UNDERCITY_COURTYARD_FIGHT_H, 0);
std::list<Creature*> HelperList;
me->GetCreatureListWithEntryInGrid(HelperList, NPC_SYLVANAS, 100.0f);
me->GetCreatureListWithEntryInGrid(HelperList, NPC_OVERLORD_SAURFANG, 100.0f);

View file

@ -51,13 +51,6 @@ enum DataTypes
DATA_BOSS_WAVE = 27
};
enum HyjalWorldStateIds
{
WORLD_STATE_WAVES = 2842,
WORLD_STATE_ENEMY = 2453,
WORLD_STATE_ENEMYCOUNT = 2454
};
enum HyjalCreaturesIds
{
// Trash Mobs summoned in waves

View file

@ -19,6 +19,7 @@
#include "InstanceMapScript.h"
#include "InstanceScript.h"
#include "Player.h"
#include "WorldStateDefines.h"
#include "hyjal.h"
/* Battle of Mount Hyjal encounters:
@ -193,7 +194,7 @@ public:
{
if (_currentWave == 0 && _initialWaves)
creature->SetReputationRewardDisabled(true);
DoUpdateWorldState(WORLD_STATE_ENEMYCOUNT, ++_trash); // Update the instance wave count on new trash spawn
DoUpdateWorldState(WORLD_STATE_HYJAL_ENEMY_COUNT, ++_trash); // Update the instance wave count on new trash spawn
_encounterNPCs.insert(creature->GetGUID()); // Used for despawning on wipe
}
break;
@ -231,7 +232,7 @@ public:
{
if (_bossWave != TO_BE_DECIDED)
{
DoUpdateWorldState(WORLD_STATE_ENEMYCOUNT, --_trash); // Update the instance wave count on new trash death
DoUpdateWorldState(WORLD_STATE_HYJAL_ENEMY_COUNT, --_trash); // Update the instance wave count on new trash death
_encounterNPCs.erase(creature->GetGUID()); // Used for despawning on wipe
if (_trash == 0) // It can reach negatives if trash spawned after a retreat are killed, it shouldn't affect anything. Also happens on retail
@ -406,7 +407,7 @@ public:
if (_bossWave != TO_BE_DECIDED)
{
DoUpdateWorldState(WORLD_STATE_WAVES, 0);
DoUpdateWorldState(WORLD_STATE_HYJAL_WAVES, 0);
scheduler.Schedule(30s, [this](TaskContext context)
{
if (IsEncounterInProgress())
@ -491,9 +492,9 @@ public:
_trash = 0;
_bossWave = TO_BE_DECIDED;
_retreat = 0;
DoUpdateWorldState(WORLD_STATE_WAVES, _currentWave);
DoUpdateWorldState(WORLD_STATE_ENEMY, _trash);
DoUpdateWorldState(WORLD_STATE_ENEMYCOUNT, _trash);
DoUpdateWorldState(WORLD_STATE_HYJAL_WAVES, _currentWave);
DoUpdateWorldState(WORLD_STATE_HYJAL_ENEMY, _trash);
DoUpdateWorldState(WORLD_STATE_HYJAL_ENEMY_COUNT, _trash);
break;
}
@ -548,8 +549,8 @@ public:
context.Repeat(timerptr[_currentWave]);
if (++_currentWave < maxWaves && _bossWave != TO_BE_DECIDED)
{
DoUpdateWorldState(WORLD_STATE_WAVES, _currentWave);
DoUpdateWorldState(WORLD_STATE_ENEMY, 1);
DoUpdateWorldState(WORLD_STATE_HYJAL_WAVES, _currentWave);
DoUpdateWorldState(WORLD_STATE_HYJAL_ENEMY, 1);
}
context.SetGroup(CONTEXT_GROUP_WAVES);

View file

@ -23,6 +23,7 @@
#include "ScriptedEscortAI.h"
#include "ScriptedGossip.h"
#include "SpellInfo.h"
#include "WorldStateDefines.h"
enum Says
{
@ -924,7 +925,7 @@ public:
break;
case EVENT_ACTION_PHASE2+9:
if (pInstance)
pInstance->DoUpdateWorldState(WORLDSTATE_WAVE_COUNT, 0);
pInstance->DoUpdateWorldState(WORLD_STATE_CULLING_OF_STRATHOLME_WAVE_COUNT, 0);
Talk(SAY_PHASE210);
eventInRun = false;
@ -1274,7 +1275,7 @@ void npc_arthas::npc_arthasAI::ReorderInstance(uint32 data)
else // if (data == COS_PROGRESS_KILLED_SALRAMM)
{
if (pInstance)
pInstance->DoUpdateWorldState(WORLDSTATE_WAVE_COUNT, 10);
pInstance->DoUpdateWorldState(WORLD_STATE_CULLING_OF_STRATHOLME_WAVE_COUNT, 10);
DoAction(ACTION_KILLED_SALRAMM);
}
break;
@ -1331,7 +1332,7 @@ void npc_arthas::npc_arthasAI::SendNextWave(uint32 entry)
else
SummonNextWave();
pInstance->DoUpdateWorldState(WORLDSTATE_WAVE_COUNT, waveGroupId + 1);
pInstance->DoUpdateWorldState(WORLD_STATE_CULLING_OF_STRATHOLME_WAVE_COUNT, waveGroupId + 1);
}
}

View file

@ -73,15 +73,6 @@ enum GameObjects
GO_PLAGUED_CRATE = 190095,
};
enum WorldStatesCoT
{
WORLDSTATE_SHOW_CRATES = 3479,
WORLDSTATE_CRATES_REVEALED = 3480,
WORLDSTATE_WAVE_COUNT = 3504,
WORLDSTATE_TIME_GUARDIAN = 3931,
WORLDSTATE_TIME_GUARDIAN_SHOW = 3932,
};
enum CrateSpells
{
SPELL_CRATES_CREDIT = 58109,

View file

@ -22,6 +22,7 @@
#include "ScriptedCreature.h"
#include "SpellInfo.h"
#include "TemporarySummon.h"
#include "WorldStateDefines.h"
#include "WorldStatePackets.h"
#include "culling_of_stratholme.h"
@ -57,11 +58,11 @@ public:
void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override
{
packet.Worldstates.reserve(5);
packet.Worldstates.emplace_back(WORLDSTATE_SHOW_CRATES, 0);
packet.Worldstates.emplace_back(WORLDSTATE_CRATES_REVEALED, _crateCount);
packet.Worldstates.emplace_back(WORLDSTATE_WAVE_COUNT, 0);
packet.Worldstates.emplace_back(WORLDSTATE_TIME_GUARDIAN, 25);
packet.Worldstates.emplace_back(WORLDSTATE_TIME_GUARDIAN_SHOW, 0);
packet.Worldstates.emplace_back(WORLD_STATE_CULLING_OF_STRATHOLME_SHOW_CRATES, 0);
packet.Worldstates.emplace_back(WORLD_STATE_CULLING_OF_STRATHOLME_CRATES_REVEALED, _crateCount);
packet.Worldstates.emplace_back(WORLD_STATE_CULLING_OF_STRATHOLME_WAVE_COUNT, 0);
packet.Worldstates.emplace_back(WORLD_STATE_CULLING_OF_STRATHOLME_TIME_GUARDIAN, 25);
packet.Worldstates.emplace_back(WORLD_STATE_CULLING_OF_STRATHOLME_TIME_GUARDIAN_SHOW, 0);
}
void OnPlayerEnter(Player* plr) override
@ -112,13 +113,13 @@ public:
switch (type)
{
case DATA_SHOW_CRATES:
DoUpdateWorldState(WORLDSTATE_SHOW_CRATES, data);
DoUpdateWorldState(WORLD_STATE_CULLING_OF_STRATHOLME_SHOW_CRATES, data);
return;
case DATA_SHOW_INFINITE_TIMER:
if (!instance->IsHeroic() || !_guardianTimer)
return;
DoUpdateWorldState(WORLDSTATE_TIME_GUARDIAN_SHOW, data);
DoUpdateWorldState(WORLDSTATE_TIME_GUARDIAN, uint32(_guardianTimer / (MINUTE * IN_MILLISECONDS)));
DoUpdateWorldState(WORLD_STATE_CULLING_OF_STRATHOLME_TIME_GUARDIAN_SHOW, data);
DoUpdateWorldState(WORLD_STATE_CULLING_OF_STRATHOLME_TIME_GUARDIAN, uint32(_guardianTimer / (MINUTE * IN_MILLISECONDS)));
if (data == 0)
{
_guardianTimer = 0;
@ -128,10 +129,10 @@ public:
instance->SummonCreature(NPC_INFINITE, EventPos[EVENT_SRC_CORRUPTOR]);
return;
case DATA_START_WAVES:
DoUpdateWorldState(WORLDSTATE_WAVE_COUNT, 1);
DoUpdateWorldState(WORLD_STATE_CULLING_OF_STRATHOLME_WAVE_COUNT, 1);
if (instance->IsHeroic())
{
DoUpdateWorldState(WORLDSTATE_TIME_GUARDIAN_SHOW, true);
DoUpdateWorldState(WORLD_STATE_CULLING_OF_STRATHOLME_TIME_GUARDIAN_SHOW, true);
_guardianTimer = 26 * MINUTE * IN_MILLISECONDS;
if (!_infiniteGUID)
instance->SummonCreature(NPC_INFINITE, EventPos[EVENT_SRC_CORRUPTOR]);
@ -151,7 +152,7 @@ public:
SetData(DATA_ARTHAS_EVENT, COS_PROGRESS_CRATES_FOUND);
}
DoUpdateWorldState(WORLDSTATE_CRATES_REVEALED, _crateCount);
DoUpdateWorldState(WORLD_STATE_CULLING_OF_STRATHOLME_CRATES_REVEALED, _crateCount);
return;
case DATA_ARTHAS_EVENT:
// Start Event
@ -256,7 +257,7 @@ public:
if (divAfter == 0)
{
_guardianTimer = 0;
DoUpdateWorldState(WORLDSTATE_TIME_GUARDIAN_SHOW, 0);
DoUpdateWorldState(WORLD_STATE_CULLING_OF_STRATHOLME_TIME_GUARDIAN_SHOW, 0);
// Inform infinite we run out of time
if (instance->IsHeroic() && _infiniteGUID)
@ -270,7 +271,7 @@ public:
else if (divAfter == 1)
ChromieWhisper(2);
DoUpdateWorldState(WORLDSTATE_TIME_GUARDIAN, divAfter);
DoUpdateWorldState(WORLD_STATE_CULLING_OF_STRATHOLME_TIME_GUARDIAN, divAfter);
SaveToDB();
}
}
@ -290,7 +291,7 @@ public:
ChromieWhisper(0);
// hide crates count
DoUpdateWorldState(WORLDSTATE_SHOW_CRATES, 0);
DoUpdateWorldState(WORLD_STATE_CULLING_OF_STRATHOLME_SHOW_CRATES, 0);
_showCrateTimer = 0;
_encounterState = COS_PROGRESS_CRATES_FOUND;
}

View file

@ -19,6 +19,7 @@
#include "InstanceMapScript.h"
#include "InstanceScript.h"
#include "Player.h"
#include "WorldStateDefines.h"
#include "old_hillsbrad.h"
static Position const instancePositions[INSTANCE_POSITIONS_COUNT] =
@ -70,7 +71,7 @@ public:
CleanupInstance();
if (_encounterProgress < ENCOUNTER_PROGRESS_BARRELS)
player->SendUpdateWorldState(WORLD_STATE_BARRELS_PLANTED, _barrelCount);
player->SendUpdateWorldState(WORLD_STATE_OLD_HILLSBRAD_BARRELS_PLANTED, _barrelCount);
}
void CleanupInstance()
@ -153,7 +154,7 @@ public:
if (_barrelCount >= 5 || _encounterProgress > ENCOUNTER_PROGRESS_NONE)
return;
DoUpdateWorldState(WORLD_STATE_BARRELS_PLANTED, ++_barrelCount);
DoUpdateWorldState(WORLD_STATE_OLD_HILLSBRAD_BARRELS_PLANTED, ++_barrelCount);
if (_barrelCount == 5)
{
_events.ScheduleEvent(EVENT_INITIAL_BARRELS_FLAME, 4000);
@ -237,7 +238,7 @@ public:
orc->HandleEmoteCommand(EMOTE_ONESHOT_CHEER);
SetData(DATA_ESCORT_PROGRESS, ENCOUNTER_PROGRESS_BARRELS);
DoUpdateWorldState(WORLD_STATE_BARRELS_PLANTED, 0);
DoUpdateWorldState(WORLD_STATE_OLD_HILLSBRAD_BARRELS_PLANTED, 0);
break;
}
case EVENT_SUMMON_LIEUTENANT:

View file

@ -69,7 +69,6 @@ enum GobjectIds
enum MiscIds
{
WORLD_STATE_BARRELS_PLANTED = 2436,
SKARLOC_MOUNT_MODEL = 18223,
ENCOUNTER_PROGRESS_NONE = 0,

View file

@ -18,6 +18,7 @@
#include "InstanceMapScript.h"
#include "InstanceScript.h"
#include "Player.h"
#include "WorldStateDefines.h"
#include "the_black_morass.h"
const Position PortalLocation[4] =
@ -180,9 +181,9 @@ public:
CleanupInstance();
}
player->SendUpdateWorldState(WORLD_STATE_BM, _eventStatus);
player->SendUpdateWorldState(WORLD_STATE_BM_SHIELD, _shieldPercent);
player->SendUpdateWorldState(WORLD_STATE_BM_RIFT, _currentRift);
player->SendUpdateWorldState(WORLD_STATE_BLACK_MORASS, _eventStatus);
player->SendUpdateWorldState(WORLD_STATE_BLACK_MORASS_SHIELD, _shieldPercent);
player->SendUpdateWorldState(WORLD_STATE_BLACK_MORASS_RIFT, _currentRift);
}
void ScheduleNextPortal(Milliseconds time, Position lastPosition)
@ -219,7 +220,7 @@ public:
_availableRiftPositions.remove(spawnPos);
DoUpdateWorldState(WORLD_STATE_BM_RIFT, ++_currentRift);
DoUpdateWorldState(WORLD_STATE_BLACK_MORASS_RIFT, ++_currentRift);
instance->SummonCreature(NPC_TIME_RIFT, spawnPos);
@ -318,9 +319,9 @@ public:
{
_eventStatus = EVENT_IN_PROGRESS;
DoUpdateWorldState(WORLD_STATE_BM, _eventStatus);
DoUpdateWorldState(WORLD_STATE_BM_SHIELD, _shieldPercent);
DoUpdateWorldState(WORLD_STATE_BM_RIFT, _currentRift);
DoUpdateWorldState(WORLD_STATE_BLACK_MORASS, _eventStatus);
DoUpdateWorldState(WORLD_STATE_BLACK_MORASS_SHIELD, _shieldPercent);
DoUpdateWorldState(WORLD_STATE_BLACK_MORASS_RIFT, _currentRift);
ScheduleNextPortal(3s, Position(0.0f, 0.0f, 0.0f, 0.0f));
@ -339,7 +340,7 @@ public:
_shieldPercent = 0;
}
DoUpdateWorldState(WORLD_STATE_BM_SHIELD, _shieldPercent);
DoUpdateWorldState(WORLD_STATE_BLACK_MORASS_SHIELD, _shieldPercent);
if (!_shieldPercent)
{
@ -421,9 +422,9 @@ public:
{
CleanupInstance();
DoUpdateWorldState(WORLD_STATE_BM, _eventStatus);
DoUpdateWorldState(WORLD_STATE_BM_SHIELD, _shieldPercent);
DoUpdateWorldState(WORLD_STATE_BM_RIFT, _currentRift);
DoUpdateWorldState(WORLD_STATE_BLACK_MORASS, _eventStatus);
DoUpdateWorldState(WORLD_STATE_BLACK_MORASS_SHIELD, _shieldPercent);
DoUpdateWorldState(WORLD_STATE_BLACK_MORASS_RIFT, _currentRift);
});
});
});

View file

@ -40,13 +40,6 @@ enum DataTypes
DATA_RIFT_NUMBER = 14
};
enum WorldStateIds
{
WORLD_STATE_BM = 2541,
WORLD_STATE_BM_SHIELD = 2540,
WORLD_STATE_BM_RIFT = 2784
};
enum EventStatus
{
EVENT_PREPARE = 0,

View file

@ -26,6 +26,7 @@
#include "SpellScript.h"
#include "SpellScriptLoader.h"
#include "Vehicle.h"
#include "WorldStateDefines.h"
#include "ruby_sanctum.h"
enum Texts
@ -715,8 +716,8 @@ public:
break;
}
_instance->DoUpdateWorldState(WORLDSTATE_CORPOREALITY_MATERIAL, _corporeality * 10);
_instance->DoUpdateWorldState(WORLDSTATE_CORPOREALITY_TWILIGHT, 100 - _corporeality * 10);
_instance->DoUpdateWorldState(WORLD_STATE_RUBY_SANCTUM_CORPOREALITY_MATERIAL, _corporeality * 10);
_instance->DoUpdateWorldState(WORLD_STATE_RUBY_SANCTUM_CORPOREALITY_TWILIGHT, 100 - _corporeality * 10);
if (Creature* twilightHalion = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(NPC_TWILIGHT_HALION)))
{
@ -1272,9 +1273,9 @@ class spell_halion_twilight_division : public SpellScript
if (GameObject* gobject = halion->FindNearestGameObject(GO_HALION_PORTAL_1, 100.0f))
gobject->Delete();
instance->DoUpdateWorldState(WORLDSTATE_CORPOREALITY_TOGGLE, 1);
instance->DoUpdateWorldState(WORLDSTATE_CORPOREALITY_MATERIAL, 50);
instance->DoUpdateWorldState(WORLDSTATE_CORPOREALITY_TWILIGHT, 50);
instance->DoUpdateWorldState(WORLD_STATE_RUBY_SANCTUM_CORPOREALITY_TOGGLE, 1);
instance->DoUpdateWorldState(WORLD_STATE_RUBY_SANCTUM_CORPOREALITY_MATERIAL, 50);
instance->DoUpdateWorldState(WORLD_STATE_RUBY_SANCTUM_CORPOREALITY_TWILIGHT, 50);
}
void Register() override

View file

@ -22,6 +22,7 @@
#include "SpellScript.h"
#include "SpellScriptLoader.h"
#include "WorldPacket.h"
#include "WorldStateDefines.h"
#include "WorldStatePackets.h"
#include "ruby_sanctum.h"
@ -208,9 +209,9 @@ public:
halionController->AI()->DoAction(ACTION_INTRO_HALION);
break;
case DATA_HALION:
DoUpdateWorldState(WORLDSTATE_CORPOREALITY_TOGGLE, 0);
DoUpdateWorldState(WORLDSTATE_CORPOREALITY_TWILIGHT, 0);
DoUpdateWorldState(WORLDSTATE_CORPOREALITY_MATERIAL, 0);
DoUpdateWorldState(WORLD_STATE_RUBY_SANCTUM_CORPOREALITY_TOGGLE, 0);
DoUpdateWorldState(WORLD_STATE_RUBY_SANCTUM_CORPOREALITY_TWILIGHT, 0);
DoUpdateWorldState(WORLD_STATE_RUBY_SANCTUM_CORPOREALITY_MATERIAL, 0);
HandleGameObject(FlameRingGUID, true);
break;
}
@ -221,9 +222,9 @@ public:
void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override
{
packet.Worldstates.reserve(3);
packet.Worldstates.emplace_back(WORLDSTATE_CORPOREALITY_MATERIAL, 50);
packet.Worldstates.emplace_back(WORLDSTATE_CORPOREALITY_TWILIGHT, 50);
packet.Worldstates.emplace_back(WORLDSTATE_CORPOREALITY_TOGGLE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_RUBY_SANCTUM_CORPOREALITY_MATERIAL, 50);
packet.Worldstates.emplace_back(WORLD_STATE_RUBY_SANCTUM_CORPOREALITY_TWILIGHT, 50);
packet.Worldstates.emplace_back(WORLD_STATE_RUBY_SANCTUM_CORPOREALITY_TOGGLE, 0);
}
protected:

View file

@ -95,13 +95,6 @@ enum GameObjectsIds
GO_BURNING_TREE_4 = 203037
};
enum WorldStatesRS
{
WORLDSTATE_CORPOREALITY_MATERIAL = 5049,
WORLDSTATE_CORPOREALITY_TWILIGHT = 5050,
WORLDSTATE_CORPOREALITY_TOGGLE = 5051
};
enum InstanceSpell
{
SPELL_BERSERK = 26662,

View file

@ -20,6 +20,7 @@
#include "InstanceMapScript.h"
#include "Player.h"
#include "ScriptedCreature.h"
#include "WorldStateDefines.h"
#include "trial_of_the_crusader.h"
std::map<uint32, bool> validDedicatedInsanityItems;
@ -283,7 +284,7 @@ public:
Map::PlayerList const& pl = instance->GetPlayers();
for( Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr )
if (Player* plr = itr->GetSource())
plr->SendUpdateWorldState(UPDATE_STATE_UI_COUNT, AttemptsLeft);
plr->SendUpdateWorldState(WORLD_STATE_TRIAL_OF_THE_CRUSADER_UI_COUNT, AttemptsLeft);
}
InstanceCleanup(true);
SaveToDB();
@ -1379,11 +1380,11 @@ public:
if (instance->IsHeroic())
{
plr->SendUpdateWorldState(UPDATE_STATE_UI_SHOW, 1);
plr->SendUpdateWorldState(UPDATE_STATE_UI_COUNT, AttemptsLeft);
plr->SendUpdateWorldState(WORLD_STATE_TRIAL_OF_THE_CRUSADER_UI_SHOW, 1);
plr->SendUpdateWorldState(WORLD_STATE_TRIAL_OF_THE_CRUSADER_UI_COUNT, AttemptsLeft);
}
else
plr->SendUpdateWorldState(UPDATE_STATE_UI_SHOW, 0);
plr->SendUpdateWorldState(WORLD_STATE_TRIAL_OF_THE_CRUSADER_UI_SHOW, 0);
if (DoNeedCleanup(plr))
{
@ -1555,7 +1556,7 @@ public:
Map::PlayerList const& pl = instance->GetPlayers();
for( Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr )
if (Player* plr = itr->GetSource())
plr->SendUpdateWorldState(UPDATE_STATE_UI_COUNT, AttemptsLeft);
plr->SendUpdateWorldState(WORLD_STATE_TRIAL_OF_THE_CRUSADER_UI_COUNT, AttemptsLeft);
}
if (instance->IsHeroic() && AttemptsLeft == 0 )

View file

@ -379,12 +379,6 @@ enum eAchievementCriteria
ACHIEV_CRITERIA_REALM_FIRST_GRAND_CRUSADER = 12350,
};
enum euiWorldStates
{
UPDATE_STATE_UI_SHOW = 4390,
UPDATE_STATE_UI_COUNT = 4389,
};
const uint32 dIIc = 405;
const uint32 dedicatedInsanityItems[405] =
{

View file

@ -100,12 +100,6 @@ enum GameObjects
GO_PORTAL_TO_DALARAN = 195682,
};
enum HorWorldStates
{
WORLD_STATE_HOR_COUNTER = 4884,
WORLD_STATE_HOR_WAVE_COUNT = 4882,
};
enum BatteredHiltStatusFlags
{
BHSF_NONE = 0,

View file

@ -20,6 +20,7 @@
#include "InstanceScript.h"
#include "MapMgr.h"
#include "Transport.h"
#include "WorldStateDefines.h"
#include "halls_of_reflection.h"
class UtherBatteredHiltEvent : public BasicEvent
@ -435,7 +436,7 @@ public:
c->HandleEmoteCommand(EMOTE_ONESHOT_EMERGE);
}
WaveNumber = 0;
DoUpdateWorldState(WORLD_STATE_HOR_COUNTER, 0);
DoUpdateWorldState(WORLD_STATE_HALLS_OF_REFLECTION_WAVES_ENABLED, 0);
// give quest
Map::PlayerList const& pl = instance->GetPlayers();
@ -803,8 +804,8 @@ public:
if (WaveNumber >= 6)
bFinished5Waves = true;
DoUpdateWorldState(WORLD_STATE_HOR_COUNTER, 1);
DoUpdateWorldState(WORLD_STATE_HOR_WAVE_COUNT, WaveNumber);
DoUpdateWorldState(WORLD_STATE_HALLS_OF_REFLECTION_WAVES_ENABLED, 1);
DoUpdateWorldState(WORLD_STATE_HALLS_OF_REFLECTION_WAVE_COUNT, WaveNumber);
HandleGameObject(GO_FrontDoorGUID, false);
// some of them could go back to spawn due to vanish, etc.
@ -869,8 +870,8 @@ public:
if (!WaveNumber)
return;
DoUpdateWorldState(WORLD_STATE_HOR_COUNTER, 0);
DoUpdateWorldState(WORLD_STATE_HOR_WAVE_COUNT, 0);
DoUpdateWorldState(WORLD_STATE_HALLS_OF_REFLECTION_WAVES_ENABLED, 0);
DoUpdateWorldState(WORLD_STATE_HALLS_OF_REFLECTION_WAVE_COUNT, 0);
HandleGameObject(GO_FrontDoorGUID, true);
TrashCounter = NUM_OF_TRASH;

View file

@ -557,15 +557,6 @@ enum QuestsICC
QUEST_A_FEAST_OF_SOULS = 24547
};
enum WorldStatesICC
{
WORLDSTATE_SHOW_TIMER = 4903,
WORLDSTATE_EXECUTION_TIME = 4904,
WORLDSTATE_SHOW_ATTEMPTS = 4940,
WORLDSTATE_ATTEMPTS_REMAINING = 4941,
WORLDSTATE_ATTEMPTS_MAX = 4942,
};
enum PutricideEventFlags
{
PUTRICIDE_EVENT_FLAG_FESTERGUT_VALVE = 1,

View file

@ -27,6 +27,7 @@
#include "Transport.h"
#include "WorldPacket.h"
#include "WorldSession.h"
#include "WorldStateDefines.h"
#include "icecrown_citadel.h"
enum EventIds
@ -233,11 +234,11 @@ public:
void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override
{
packet.Worldstates.reserve(5);
packet.Worldstates.emplace_back(WORLDSTATE_SHOW_TIMER, BloodQuickeningState == IN_PROGRESS ? 1 : 0);
packet.Worldstates.emplace_back(WORLDSTATE_EXECUTION_TIME, BloodQuickeningMinutes);
packet.Worldstates.emplace_back(WORLDSTATE_SHOW_ATTEMPTS, 1); // instance->IsHeroic() ? 1 : 0
packet.Worldstates.emplace_back(WORLDSTATE_ATTEMPTS_REMAINING, HeroicAttempts);
packet.Worldstates.emplace_back(WORLDSTATE_ATTEMPTS_MAX, MaxHeroicAttempts);
packet.Worldstates.emplace_back(WORLD_STATE_ICECROWN_CITADEL_SHOW_TIMER, BloodQuickeningState == IN_PROGRESS ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_ICECROWN_CITADEL_EXECUTION_TIME, BloodQuickeningMinutes);
packet.Worldstates.emplace_back(WORLD_STATE_ICECROWN_CITADEL_SHOW_ATTEMPTS, 1); // instance->IsHeroic() ? 1 : 0
packet.Worldstates.emplace_back(WORLD_STATE_ICECROWN_CITADEL_ATTEMPTS_REMAINING, HeroicAttempts);
packet.Worldstates.emplace_back(WORLD_STATE_ICECROWN_CITADEL_ATTEMPTS_MAX, MaxHeroicAttempts);
}
void OnPlayerAreaUpdate(Player* player, uint32 /*oldArea*/, uint32 newArea) override
@ -252,7 +253,7 @@ public:
}
else
{
player->SendUpdateWorldState(WORLDSTATE_SHOW_ATTEMPTS, 0);
player->SendUpdateWorldState(WORLD_STATE_ICECROWN_CITADEL_SHOW_ATTEMPTS, 0);
}
}
@ -1021,7 +1022,7 @@ public:
if (drop && HeroicAttempts)
{
--HeroicAttempts;
DoUpdateWorldState(WORLDSTATE_ATTEMPTS_REMAINING, HeroicAttempts);
DoUpdateWorldState(WORLD_STATE_ICECROWN_CITADEL_ATTEMPTS_REMAINING, HeroicAttempts);
SaveToDB();
}
if (HeroicAttempts)
@ -1350,13 +1351,13 @@ public:
case IN_PROGRESS:
Events.ScheduleEvent(EVENT_UPDATE_EXECUTION_TIME, 1min);
BloodQuickeningMinutes = 30;
DoUpdateWorldState(WORLDSTATE_SHOW_TIMER, 1);
DoUpdateWorldState(WORLDSTATE_EXECUTION_TIME, BloodQuickeningMinutes);
DoUpdateWorldState(WORLD_STATE_ICECROWN_CITADEL_SHOW_TIMER, 1);
DoUpdateWorldState(WORLD_STATE_ICECROWN_CITADEL_EXECUTION_TIME, BloodQuickeningMinutes);
break;
case DONE:
Events.CancelEvent(EVENT_UPDATE_EXECUTION_TIME);
BloodQuickeningMinutes = 0;
DoUpdateWorldState(WORLDSTATE_SHOW_TIMER, 0);
DoUpdateWorldState(WORLD_STATE_ICECROWN_CITADEL_SHOW_TIMER, 0);
break;
default:
break;
@ -1616,8 +1617,8 @@ public:
if (BloodQuickeningState == IN_PROGRESS)
{
Events.ScheduleEvent(EVENT_UPDATE_EXECUTION_TIME, 1min);
DoUpdateWorldState(WORLDSTATE_SHOW_TIMER, 1);
DoUpdateWorldState(WORLDSTATE_EXECUTION_TIME, BloodQuickeningMinutes);
DoUpdateWorldState(WORLD_STATE_ICECROWN_CITADEL_SHOW_TIMER, 1);
DoUpdateWorldState(WORLD_STATE_ICECROWN_CITADEL_EXECUTION_TIME, BloodQuickeningMinutes);
}
data >> WeeklyQuestId10;
@ -1695,13 +1696,13 @@ public:
if (BloodQuickeningMinutes)
{
Events.ScheduleEvent(EVENT_UPDATE_EXECUTION_TIME, 1min);
DoUpdateWorldState(WORLDSTATE_SHOW_TIMER, 1);
DoUpdateWorldState(WORLDSTATE_EXECUTION_TIME, BloodQuickeningMinutes);
DoUpdateWorldState(WORLD_STATE_ICECROWN_CITADEL_SHOW_TIMER, 1);
DoUpdateWorldState(WORLD_STATE_ICECROWN_CITADEL_EXECUTION_TIME, BloodQuickeningMinutes);
}
else
{
BloodQuickeningState = DONE;
DoUpdateWorldState(WORLDSTATE_SHOW_TIMER, 0);
DoUpdateWorldState(WORLD_STATE_ICECROWN_CITADEL_SHOW_TIMER, 0);
if (Creature* bq = instance->GetCreature(BloodQueenLanaThelGUID))
bq->AI()->DoAction(ACTION_KILL_MINCHAR);
}

View file

@ -20,6 +20,7 @@
#include "LFGMgr.h"
#include "Player.h"
#include "ScriptedCreature.h"
#include "WorldStateDefines.h"
#include "WorldStatePackets.h"
#include "oculus.h"
@ -112,13 +113,13 @@ public:
{
if (m_auiEncounter[DATA_DRAKOS] == DONE && m_auiEncounter[DATA_VAROS] != DONE)
{
player->SendUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW, 1);
player->SendUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT, 10 - CentrifugeCount);
player->SendUpdateWorldState(WORLD_STATE_OCULUS_CENTRIFUGE_CONSTRUCT_SHOW, 1);
player->SendUpdateWorldState(WORLD_STATE_OCULUS_CENTRIFUGE_CONSTRUCT_AMOUNT, 10 - CentrifugeCount);
}
else
{
player->SendUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW, 0);
player->SendUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT, 0);
player->SendUpdateWorldState(WORLD_STATE_OCULUS_CENTRIFUGE_CONSTRUCT_SHOW, 0);
player->SendUpdateWorldState(WORLD_STATE_OCULUS_CENTRIFUGE_CONSTRUCT_AMOUNT, 0);
}
}
@ -136,8 +137,8 @@ public:
m_auiEncounter[DATA_DRAKOS] = data;
if (data == DONE)
{
DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW, 1);
DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT, 10 - CentrifugeCount);
DoUpdateWorldState(WORLD_STATE_OCULUS_CENTRIFUGE_CONSTRUCT_SHOW, 1);
DoUpdateWorldState(WORLD_STATE_OCULUS_CENTRIFUGE_CONSTRUCT_AMOUNT, 10 - CentrifugeCount);
if (instance->IsHeroic())
DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_MAKE_IT_COUNT_TIMED_EVENT);
@ -147,7 +148,7 @@ public:
m_auiEncounter[DATA_VAROS] = data;
if (data == DONE)
{
DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW, 0);
DoUpdateWorldState(WORLD_STATE_OCULUS_CENTRIFUGE_CONSTRUCT_SHOW, 0);
if (Creature* urom = instance->GetCreature(uiUromGUID))
urom->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
@ -178,7 +179,7 @@ public:
if (CentrifugeCount < 10)
{
++CentrifugeCount;
DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT, 10 - CentrifugeCount);
DoUpdateWorldState(WORLD_STATE_OCULUS_CENTRIFUGE_CONSTRUCT_AMOUNT, 10 - CentrifugeCount);
}
if (CentrifugeCount >= 10)
if (Creature* varos = instance->GetCreature(uiVarosGUID))

View file

@ -97,12 +97,6 @@ enum AchievData
CRITERIA_RUBY_VOID = 7323,
};
enum OculusWorldStates
{
WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW = 3524,
WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT = 3486
};
enum MISC
{
POINT_MOVE_DRAKES

View file

@ -22,6 +22,7 @@
#include "ScriptedCreature.h"
#include "Transport.h"
#include "WorldPacket.h"
#include "WorldStateDefines.h"
#include "WorldStatePackets.h"
#include "ulduar.h"
@ -173,8 +174,8 @@ public:
void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override
{
packet.Worldstates.reserve(2);
packet.Worldstates.emplace_back(WORLD_STATE_ALGALON_TIMER_ENABLED, (m_algalonTimer && m_algalonTimer <= 60) ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_ALGALON_DESPAWN_TIMER, std::min<int32>(m_algalonTimer, 60));
packet.Worldstates.emplace_back(WORLD_STATE_ULDUAR_ALGALON_TIMER_ENABLED, (m_algalonTimer && m_algalonTimer <= 60) ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_ULDUAR_ALGALON_DESPAWN_TIMER, std::min<int32>(m_algalonTimer, 60));
}
void OnPlayerEnter(Player* player) override
@ -769,15 +770,15 @@ public:
SaveToDB();
return;
case DATA_DESPAWN_ALGALON:
DoUpdateWorldState(WORLD_STATE_ALGALON_TIMER_ENABLED, 1);
DoUpdateWorldState(WORLD_STATE_ALGALON_DESPAWN_TIMER, 60);
DoUpdateWorldState(WORLD_STATE_ULDUAR_ALGALON_TIMER_ENABLED, 1);
DoUpdateWorldState(WORLD_STATE_ULDUAR_ALGALON_DESPAWN_TIMER, 60);
m_algalonTimer = 60;
_events.RescheduleEvent(EVENT_UPDATE_ALGALON_TIMER, 1min);
SaveToDB();
return;
case DATA_ALGALON_SUMMON_STATE:
case DATA_ALGALON_DEFEATED:
DoUpdateWorldState(WORLD_STATE_ALGALON_TIMER_ENABLED, 0);
DoUpdateWorldState(WORLD_STATE_ULDUAR_ALGALON_TIMER_ENABLED, 0);
m_algalonTimer = (type == DATA_ALGALON_DEFEATED ? TIMER_ALGALON_DEFEATED : TIMER_ALGALON_SUMMONED);
_events.CancelEvent(EVENT_UPDATE_ALGALON_TIMER);
SaveToDB();
@ -1148,8 +1149,8 @@ public:
if (m_algalonTimer && m_algalonTimer <= 60 && GetData(TYPE_ALGALON) != DONE)
{
DoUpdateWorldState(WORLD_STATE_ALGALON_TIMER_ENABLED, 1);
DoUpdateWorldState(WORLD_STATE_ALGALON_DESPAWN_TIMER, m_algalonTimer);
DoUpdateWorldState(WORLD_STATE_ULDUAR_ALGALON_TIMER_ENABLED, 1);
DoUpdateWorldState(WORLD_STATE_ULDUAR_ALGALON_DESPAWN_TIMER, m_algalonTimer);
}
data >> C_of_Ulduar_MASK;
@ -1190,7 +1191,7 @@ public:
}
SaveToDB();
DoUpdateWorldState(WORLD_STATE_ALGALON_DESPAWN_TIMER, --m_algalonTimer);
DoUpdateWorldState(WORLD_STATE_ULDUAR_ALGALON_DESPAWN_TIMER, --m_algalonTimer);
if (m_algalonTimer)
{
_events.Repeat(1min);

View file

@ -276,10 +276,6 @@ enum UlduarMisc
ACTION_TOWER_OF_FLAMES_DESTROYED = 3,
ACTION_TOWER_OF_LIFE_DESTROYED = 4,
// Algalon the Observer
WORLD_STATE_ALGALON_DESPAWN_TIMER = 4131,
WORLD_STATE_ALGALON_TIMER_ENABLED = 4132,
EVENT_UPDATE_ALGALON_TIMER = 1,
ACTION_FEEDS_ON_TEARS_FAILED = 0,
ACTION_INIT_ALGALON = 1,

View file

@ -19,6 +19,7 @@
#include "InstanceMapScript.h"
#include "Player.h"
#include "ScriptedCreature.h"
#include "WorldStateDefines.h"
#include "violet_hold.h"
enum vYells
@ -235,7 +236,7 @@ public:
CLEANED = false;
InstanceCleanup();
}
DoUpdateWorldState(WORLD_STATE_VH_PRISON_STATE, (uint32)GateHealth);
DoUpdateWorldState(WORLD_STATE_VIOLET_HOLD_PRISON_STATE, (uint32)GateHealth);
break;
case DATA_RELEASE_BOSS:
if (WaveCount == 6)
@ -253,7 +254,7 @@ public:
m_auiEncounter[2] = DONE;
EncounterStatus = DONE;
HandleGameObject(GO_MainGateGUID, true);
DoUpdateWorldState(WORLD_STATE_VH_SHOW, 0);
DoUpdateWorldState(WORLD_STATE_VIOLET_HOLD_SHOW, 0);
if (Creature* c = instance->GetCreature(NPC_SinclariGUID))
{
c->AI()->Talk(SAY_SINCLARI_COMPLETE);
@ -458,9 +459,9 @@ public:
}
GateHealth = 100;
HandleGameObject(GO_MainGateGUID, false);
DoUpdateWorldState(WORLD_STATE_VH_SHOW, 1);
DoUpdateWorldState(WORLD_STATE_VH_PRISON_STATE, (uint32)GateHealth);
DoUpdateWorldState(WORLD_STATE_VH_WAVE_COUNT, (uint32)WaveCount);
DoUpdateWorldState(WORLD_STATE_VIOLET_HOLD_SHOW, 1);
DoUpdateWorldState(WORLD_STATE_VIOLET_HOLD_PRISON_STATE, (uint32)GateHealth);
DoUpdateWorldState(WORLD_STATE_VIOLET_HOLD_WAVE_COUNT, (uint32)WaveCount);
for (ObjectGuid const& guid : GO_ActivationCrystalGUID)
if (GameObject* go = instance->GetGameObject(guid))
@ -473,7 +474,7 @@ public:
break;
case EVENT_SUMMON_PORTAL:
++WaveCount;
DoUpdateWorldState(WORLD_STATE_VH_WAVE_COUNT, (uint32)WaveCount);
DoUpdateWorldState(WORLD_STATE_VIOLET_HOLD_WAVE_COUNT, (uint32)WaveCount);
SetData(DATA_PORTAL_LOCATION, (GetData(DATA_PORTAL_LOCATION) + urand(1, 5)) % 6);
if (Creature* c = instance->GetCreature(NPC_SinclariGUID))
{
@ -527,12 +528,12 @@ public:
if (EncounterStatus == IN_PROGRESS)
{
plr->SendUpdateWorldState(WORLD_STATE_VH_SHOW, 1);
plr->SendUpdateWorldState(WORLD_STATE_VH_PRISON_STATE, (uint32)GateHealth);
plr->SendUpdateWorldState(WORLD_STATE_VH_WAVE_COUNT, (uint32)WaveCount);
plr->SendUpdateWorldState(WORLD_STATE_VIOLET_HOLD_SHOW, 1);
plr->SendUpdateWorldState(WORLD_STATE_VIOLET_HOLD_PRISON_STATE, (uint32)GateHealth);
plr->SendUpdateWorldState(WORLD_STATE_VIOLET_HOLD_WAVE_COUNT, (uint32)WaveCount);
}
else
plr->SendUpdateWorldState(WORLD_STATE_VH_SHOW, 0);
plr->SendUpdateWorldState(WORLD_STATE_VIOLET_HOLD_SHOW, 0);
events.RescheduleEvent(EVENT_CHECK_PLAYERS, 5s);
}
@ -625,7 +626,7 @@ public:
}
// reinitialize variables and events
DoUpdateWorldState(WORLD_STATE_VH_SHOW, 0);
DoUpdateWorldState(WORLD_STATE_VIOLET_HOLD_SHOW, 0);
EncounterStatus = NOT_STARTED;
GateHealth = 100;
WaveCount = 0;

View file

@ -89,13 +89,6 @@ enum Bosses
BOSS_CYANIGOSA
};
enum VHWorldStates
{
WORLD_STATE_VH_SHOW = 3816,
WORLD_STATE_VH_PRISON_STATE = 3815,
WORLD_STATE_VH_WAVE_COUNT = 3810,
};
enum Spells
{
SPELL_CONTROL_CRYSTAL_ACTIVATION = 57804,

View file

@ -307,7 +307,7 @@ public:
else
{
uint32 timer = wintergrasp->GetTimer() / 1000;
player->SendUpdateWorldState(4354, GameTime::GetGameTime().count() + timer);
player->SendUpdateWorldState(WORLD_STATE_BATTLEFIELD_WG_CLOCK_TEXTS, GameTime::GetGameTime().count() + timer);
if (timer < 15 * MINUTE)
{
AddGossipItemFor(player, WG_GOSSIP_MENU_QUEUE, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);

View file

@ -28,6 +28,7 @@
#include "World.h"
#include "WorldPacket.h"
#include "WorldSessionMgr.h"
#include "WorldStateDefines.h"
#include "WorldStatePackets.h"
OPvPCapturePointEP_EWT::OPvPCapturePointEP_EWT(OutdoorPvP* pvp)
@ -101,41 +102,41 @@ void OPvPCapturePointEP_EWT::ChangeState()
void OPvPCapturePointEP_EWT::SendChangePhase()
{
// send this too, sometimes the slider disappears, dunno why :(
SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 1);
SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_DISPLAY, 1);
// send these updates to only the ones in this objective
uint32 phase = (uint32)ceil((_value + _maxValue) / (2 * _maxValue) * 100.0f);
SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, phase);
SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_POS, phase);
// send this too, sometimes it resets :S
SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, _neutralValuePct);
SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_N, _neutralValuePct);
}
void OPvPCapturePointEP_EWT::FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet)
{
packet.Worldstates.reserve(5);
packet.Worldstates.emplace_back(EP_EWT_A, (m_TowerState & EP_TS_A) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(EP_EWT_H, (m_TowerState & EP_TS_H) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(EP_EWT_N_A, (m_TowerState & EP_TS_N_A) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(EP_EWT_N_H, (m_TowerState & EP_TS_N_H) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(EP_EWT_N, (m_TowerState & EP_TS_N) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_EASTWALLTOWER_A, (m_TowerState & EP_TS_A) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_EASTWALLTOWER_H, (m_TowerState & EP_TS_H) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_EASTWALLTOWER_N_A, (m_TowerState & EP_TS_N_A) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_EASTWALLTOWER_N_H, (m_TowerState & EP_TS_N_H) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_EASTWALLTOWER_N, (m_TowerState & EP_TS_N) != 0 ? 1 : 0);
}
void OPvPCapturePointEP_EWT::UpdateTowerState()
{
_pvp->SendUpdateWorldState(EP_EWT_A, bool(m_TowerState & EP_TS_A));
_pvp->SendUpdateWorldState(EP_EWT_H, bool(m_TowerState & EP_TS_H));
_pvp->SendUpdateWorldState(EP_EWT_N_A, bool(m_TowerState & EP_TS_N_A));
_pvp->SendUpdateWorldState(EP_EWT_N_H, bool(m_TowerState & EP_TS_N_H));
_pvp->SendUpdateWorldState(EP_EWT_N, bool(m_TowerState & EP_TS_N));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_EP_EASTWALLTOWER_A, bool(m_TowerState & EP_TS_A));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_EP_EASTWALLTOWER_H, bool(m_TowerState & EP_TS_H));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_EP_EASTWALLTOWER_N_A, bool(m_TowerState & EP_TS_N_A));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_EP_EASTWALLTOWER_N_H, bool(m_TowerState & EP_TS_N_H));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_EP_EASTWALLTOWER_N, bool(m_TowerState & EP_TS_N));
}
bool OPvPCapturePointEP_EWT::HandlePlayerEnter(Player* player)
{
if (OPvPCapturePoint::HandlePlayerEnter(player))
{
player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 1);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_DISPLAY, 1);
uint32 phase = (uint32)ceil((_value + _maxValue) / (2 * _maxValue) * 100.0f);
player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, phase);
player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, _neutralValuePct);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_POS, phase);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_N, _neutralValuePct);
return true;
}
return false;
@ -143,7 +144,7 @@ bool OPvPCapturePointEP_EWT::HandlePlayerEnter(Player* player)
void OPvPCapturePointEP_EWT::HandlePlayerLeave(Player* player)
{
player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_DISPLAY, 0);
OPvPCapturePoint::HandlePlayerLeave(player);
}
@ -244,41 +245,41 @@ void OPvPCapturePointEP_NPT::ChangeState()
void OPvPCapturePointEP_NPT::SendChangePhase()
{
// send this too, sometimes the slider disappears, dunno why :(
SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 1);
SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_DISPLAY, 1);
// send these updates to only the ones in this objective
uint32 phase = (uint32)ceil((_value + _maxValue) / (2 * _maxValue) * 100.0f);
SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, phase);
SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_POS, phase);
// send this too, sometimes it resets :S
SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, _neutralValuePct);
SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_N, _neutralValuePct);
}
void OPvPCapturePointEP_NPT::FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet)
{
packet.Worldstates.reserve(5);
packet.Worldstates.emplace_back(EP_NPT_A, (m_TowerState & EP_TS_A) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(EP_NPT_H, (m_TowerState & EP_TS_H) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(EP_NPT_N_A, (m_TowerState & EP_TS_N_A) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(EP_NPT_N_H, (m_TowerState & EP_TS_N_H) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(EP_NPT_N, (m_TowerState & EP_TS_N) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_NORTHPASSTOWER_A, (m_TowerState & EP_TS_A) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_NORTHPASSTOWER_H, (m_TowerState & EP_TS_H) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_NORTHPASSTOWER_N_A, (m_TowerState & EP_TS_N_A) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_NORTHPASSTOWER_N_H, (m_TowerState & EP_TS_N_H) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_NORTHPASSTOWER_N, (m_TowerState & EP_TS_N) != 0 ? 1 : 0);
}
void OPvPCapturePointEP_NPT::UpdateTowerState()
{
_pvp->SendUpdateWorldState(EP_NPT_A, bool(m_TowerState & EP_TS_A));
_pvp->SendUpdateWorldState(EP_NPT_H, bool(m_TowerState & EP_TS_H));
_pvp->SendUpdateWorldState(EP_NPT_N_A, bool(m_TowerState & EP_TS_N_A));
_pvp->SendUpdateWorldState(EP_NPT_N_H, bool(m_TowerState & EP_TS_N_H));
_pvp->SendUpdateWorldState(EP_NPT_N, bool(m_TowerState & EP_TS_N));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_EP_NORTHPASSTOWER_A, bool(m_TowerState & EP_TS_A));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_EP_NORTHPASSTOWER_H, bool(m_TowerState & EP_TS_H));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_EP_NORTHPASSTOWER_N_A, bool(m_TowerState & EP_TS_N_A));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_EP_NORTHPASSTOWER_N_H, bool(m_TowerState & EP_TS_N_H));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_EP_NORTHPASSTOWER_N, bool(m_TowerState & EP_TS_N));
}
bool OPvPCapturePointEP_NPT::HandlePlayerEnter(Player* player)
{
if (OPvPCapturePoint::HandlePlayerEnter(player))
{
player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 1);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_DISPLAY, 1);
uint32 phase = (uint32)ceil((_value + _maxValue) / (2 * _maxValue) * 100.0f);
player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, phase);
player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, _neutralValuePct);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_POS, phase);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_N, _neutralValuePct);
return true;
}
return false;
@ -286,7 +287,7 @@ bool OPvPCapturePointEP_NPT::HandlePlayerEnter(Player* player)
void OPvPCapturePointEP_NPT::HandlePlayerLeave(Player* player)
{
player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_DISPLAY, 0);
OPvPCapturePoint::HandlePlayerLeave(player);
}
@ -377,41 +378,41 @@ void OPvPCapturePointEP_CGT::ChangeState()
void OPvPCapturePointEP_CGT::SendChangePhase()
{
// send this too, sometimes the slider disappears, dunno why :(
SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 1);
SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_DISPLAY, 1);
// send these updates to only the ones in this objective
uint32 phase = (uint32)ceil((_value + _maxValue) / (2 * _maxValue) * 100.0f);
SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, phase);
SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_POS, phase);
// send this too, sometimes it resets :S
SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, _neutralValuePct);
SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_N, _neutralValuePct);
}
void OPvPCapturePointEP_CGT::FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet)
{
packet.Worldstates.reserve(5);
packet.Worldstates.emplace_back(EP_CGT_A, (m_TowerState & EP_TS_A) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(EP_CGT_H, (m_TowerState & EP_TS_H) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(EP_CGT_N_A, (m_TowerState & EP_TS_N_A) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(EP_CGT_N_H, (m_TowerState & EP_TS_N_H) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(EP_CGT_N, (m_TowerState & EP_TS_N) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_A, (m_TowerState & EP_TS_A) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_H, (m_TowerState & EP_TS_H) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_N_A, (m_TowerState & EP_TS_N_A) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_N_H, (m_TowerState & EP_TS_N_H) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_N, (m_TowerState & EP_TS_N) != 0 ? 1 : 0);
}
void OPvPCapturePointEP_CGT::UpdateTowerState()
{
_pvp->SendUpdateWorldState(EP_CGT_A, bool(m_TowerState & EP_TS_A));
_pvp->SendUpdateWorldState(EP_CGT_H, bool(m_TowerState & EP_TS_H));
_pvp->SendUpdateWorldState(EP_CGT_N_A, bool(m_TowerState & EP_TS_N_A));
_pvp->SendUpdateWorldState(EP_CGT_N_H, bool(m_TowerState & EP_TS_N_H));
_pvp->SendUpdateWorldState(EP_CGT_N, bool(m_TowerState & EP_TS_N));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_A, bool(m_TowerState & EP_TS_A));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_H, bool(m_TowerState & EP_TS_H));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_N_A, bool(m_TowerState & EP_TS_N_A));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_N_H, bool(m_TowerState & EP_TS_N_H));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_N, bool(m_TowerState & EP_TS_N));
}
bool OPvPCapturePointEP_CGT::HandlePlayerEnter(Player* player)
{
if (OPvPCapturePoint::HandlePlayerEnter(player))
{
player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 1);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_DISPLAY, 1);
uint32 phase = (uint32)ceil((_value + _maxValue) / (2 * _maxValue) * 100.0f);
player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, phase);
player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, _neutralValuePct);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_POS, phase);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_N, _neutralValuePct);
return true;
}
return false;
@ -419,7 +420,7 @@ bool OPvPCapturePointEP_CGT::HandlePlayerEnter(Player* player)
void OPvPCapturePointEP_CGT::HandlePlayerLeave(Player* player)
{
player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_DISPLAY, 0);
OPvPCapturePoint::HandlePlayerLeave(player);
}
@ -515,41 +516,41 @@ void OPvPCapturePointEP_PWT::ChangeState()
void OPvPCapturePointEP_PWT::SendChangePhase()
{
// send this too, sometimes the slider disappears, dunno why :(
SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 1);
SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_DISPLAY, 1);
// send these updates to only the ones in this objective
uint32 phase = (uint32)ceil((_value + _maxValue) / (2 * _maxValue) * 100.0f);
SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, phase);
SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_POS, phase);
// send this too, sometimes it resets :S
SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, _neutralValuePct);
SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_N, _neutralValuePct);
}
void OPvPCapturePointEP_PWT::FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet)
{
packet.Worldstates.reserve(5);
packet.Worldstates.emplace_back(EP_PWT_A, (m_TowerState & EP_TS_A) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(EP_PWT_H, (m_TowerState & EP_TS_H) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(EP_PWT_N_A, (m_TowerState & EP_TS_N_A) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(EP_PWT_N_H, (m_TowerState & EP_TS_N_H) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(EP_PWT_N, (m_TowerState & EP_TS_N) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_PLAGUEWOODTOWER_A, (m_TowerState & EP_TS_A) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_PLAGUEWOODTOWER_H, (m_TowerState & EP_TS_H) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_PLAGUEWOODTOWER_N_A, (m_TowerState & EP_TS_N_A) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_PLAGUEWOODTOWER_N_H, (m_TowerState & EP_TS_N_H) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_PLAGUEWOODTOWER_N, (m_TowerState & EP_TS_N) != 0 ? 1 : 0);
}
void OPvPCapturePointEP_PWT::UpdateTowerState()
{
_pvp->SendUpdateWorldState(EP_PWT_A, bool(m_TowerState & EP_TS_A));
_pvp->SendUpdateWorldState(EP_PWT_H, bool(m_TowerState & EP_TS_H));
_pvp->SendUpdateWorldState(EP_PWT_N_A, bool(m_TowerState & EP_TS_N_A));
_pvp->SendUpdateWorldState(EP_PWT_N_H, bool(m_TowerState & EP_TS_N_H));
_pvp->SendUpdateWorldState(EP_PWT_N, bool(m_TowerState & EP_TS_N));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_EP_PLAGUEWOODTOWER_A, bool(m_TowerState & EP_TS_A));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_EP_PLAGUEWOODTOWER_H, bool(m_TowerState & EP_TS_H));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_EP_PLAGUEWOODTOWER_N_A, bool(m_TowerState & EP_TS_N_A));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_EP_PLAGUEWOODTOWER_N_H, bool(m_TowerState & EP_TS_N_H));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_EP_PLAGUEWOODTOWER_N, bool(m_TowerState & EP_TS_N));
}
bool OPvPCapturePointEP_PWT::HandlePlayerEnter(Player* player)
{
if (OPvPCapturePoint::HandlePlayerEnter(player))
{
player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 1);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_DISPLAY, 1);
uint32 phase = (uint32)ceil((_value + _maxValue) / (2 * _maxValue) * 100.0f);
player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, phase);
player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, _neutralValuePct);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_POS, phase);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_N, _neutralValuePct);
return true;
}
return false;
@ -557,7 +558,7 @@ bool OPvPCapturePointEP_PWT::HandlePlayerEnter(Player* player)
void OPvPCapturePointEP_PWT::HandlePlayerLeave(Player* player)
{
player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_DISPLAY, 0);
OPvPCapturePoint::HandlePlayerLeave(player);
}
@ -647,8 +648,8 @@ bool OutdoorPvPEP::Update(uint32 diff)
++m_AllianceTowersControlled;
else if (EP_ControlsId[i] == TEAM_HORDE)
++m_HordeTowersControlled;
SendUpdateWorldState(EP_UI_TOWER_COUNT_A, m_AllianceTowersControlled);
SendUpdateWorldState(EP_UI_TOWER_COUNT_H, m_HordeTowersControlled);
SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_COUNT_A, m_AllianceTowersControlled);
SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_COUNT_H, m_HordeTowersControlled);
BuffTeams();
}
return true;
@ -720,11 +721,11 @@ void OutdoorPvPEP::SetControlledState(uint32 index, TeamId teamId)
void OutdoorPvPEP::FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet)
{
packet.Worldstates.reserve(5);
packet.Worldstates.emplace_back(EP_UI_TOWER_COUNT_A, m_AllianceTowersControlled);
packet.Worldstates.emplace_back(EP_UI_TOWER_COUNT_H, m_HordeTowersControlled);
packet.Worldstates.emplace_back(EP_UI_TOWER_SLIDER_DISPLAY, 0);
packet.Worldstates.emplace_back(EP_UI_TOWER_SLIDER_POS, 50);
packet.Worldstates.emplace_back(EP_UI_TOWER_SLIDER_N, 100);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_UI_TOWER_COUNT_A, m_AllianceTowersControlled);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_UI_TOWER_COUNT_H, m_HordeTowersControlled);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_DISPLAY, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_POS, 50);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_N, 100);
for (OPvPCapturePointMap::iterator itr = _capturePoints.begin(); itr != _capturePoints.end(); ++itr)
{
@ -734,35 +735,35 @@ void OutdoorPvPEP::FillInitialWorldStates(WorldPackets::WorldState::InitWorldSta
void OutdoorPvPEP::SendRemoveWorldStates(Player* player)
{
player->SendUpdateWorldState(EP_UI_TOWER_COUNT_A, 0);
player->SendUpdateWorldState(EP_UI_TOWER_COUNT_H, 0);
player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 0);
player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, 0);
player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_COUNT_A, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_COUNT_H, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_DISPLAY, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_POS, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_N, 0);
player->SendUpdateWorldState(EP_EWT_A, 0);
player->SendUpdateWorldState(EP_EWT_H, 0);
player->SendUpdateWorldState(EP_EWT_N, 0);
player->SendUpdateWorldState(EP_EWT_N_A, 0);
player->SendUpdateWorldState(EP_EWT_N_H, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_EASTWALLTOWER_A, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_EASTWALLTOWER_H, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_EASTWALLTOWER_N, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_EASTWALLTOWER_N_A, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_EASTWALLTOWER_N_H, 0);
player->SendUpdateWorldState(EP_PWT_A, 0);
player->SendUpdateWorldState(EP_PWT_H, 0);
player->SendUpdateWorldState(EP_PWT_N, 0);
player->SendUpdateWorldState(EP_PWT_N_A, 0);
player->SendUpdateWorldState(EP_PWT_N_H, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_PLAGUEWOODTOWER_A, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_PLAGUEWOODTOWER_H, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_PLAGUEWOODTOWER_N, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_PLAGUEWOODTOWER_N_A, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_PLAGUEWOODTOWER_N_H, 0);
player->SendUpdateWorldState(EP_NPT_A, 0);
player->SendUpdateWorldState(EP_NPT_H, 0);
player->SendUpdateWorldState(EP_NPT_N, 0);
player->SendUpdateWorldState(EP_NPT_N_A, 0);
player->SendUpdateWorldState(EP_NPT_N_H, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_NORTHPASSTOWER_A, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_NORTHPASSTOWER_H, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_NORTHPASSTOWER_N, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_NORTHPASSTOWER_N_A, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_NORTHPASSTOWER_N_H, 0);
player->SendUpdateWorldState(EP_CGT_A, 0);
player->SendUpdateWorldState(EP_CGT_H, 0);
player->SendUpdateWorldState(EP_CGT_N, 0);
player->SendUpdateWorldState(EP_CGT_N_A, 0);
player->SendUpdateWorldState(EP_CGT_N_H, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_A, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_H, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_N, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_N_A, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_N_H, 0);
}
class OutdoorPvP_eastern_plaguelands : public OutdoorPvPScript

View file

@ -46,52 +46,6 @@ const uint32 EPBuffZones[EPBuffZonesNum] = {139, 2017, 2057};
// EP_PWT_Taxi = 84
//};
enum EP_EastwallTowerWorldStates
{
EP_EWT_A = 2354,
EP_EWT_H = 2356,
EP_EWT_N_A = 2359, // ally conquested
EP_EWT_N_H = 2360,
EP_EWT_N = 2361
};
enum EP_NorthpassTowerWorldStates
{
EP_NPT_N = 2352,
EP_NPT_N_A = 2362,
EP_NPT_N_H = 2363,
EP_NPT_A = 2372,
EP_NPT_H = 2373
};
enum EP_PlagewoodTowerWorldStates
{
EP_PWT_N_A = 2366,
EP_PWT_N_H = 2353, //2367 not present! use neutral!
EP_PWT_A = 2370,
EP_PWT_H = 2371,
EP_PWT_N = 2353
};
enum EP_CrownGuardTowerWorldStates
{
EP_CGT_N_A = 2374,
EP_CGT_N_H = 2375,
EP_CGT_A = 2378,
EP_CGT_H = 2379,
EP_CGT_N = 2355
};
enum EP_WorldStates
{
EP_UI_TOWER_SLIDER_DISPLAY = 2426,
EP_UI_TOWER_SLIDER_POS = 2427,
EP_UI_TOWER_SLIDER_N = 2428,
EP_UI_TOWER_COUNT_A = 2327,
EP_UI_TOWER_COUNT_H = 2328
};
enum EP_Summons
{
EP_EWT_COMMANDER = 0,

View file

@ -22,6 +22,7 @@
#include "OutdoorPvPScript.h"
#include "Player.h"
#include "WorldPacket.h"
#include "WorldStateDefines.h"
OutdoorPvPGH::OutdoorPvPGH()
{
@ -39,9 +40,9 @@ bool OutdoorPvPGH::SetupOutdoorPvP()
void OutdoorPvPGH::SendRemoveWorldStates(Player* player)
{
player->SendUpdateWorldState(GH_UI_SLIDER_DISPLAY, 0);
player->SendUpdateWorldState(GH_UI_SLIDER_POS, 0);
player->SendUpdateWorldState(GH_UI_SLIDER_N, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_GH_UI_SLIDER_DISPLAY, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_GH_UI_SLIDER_POS, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_GH_UI_SLIDER_N, 0);
}
OPvPCapturePointGH::OPvPCapturePointGH(OutdoorPvP* pvp) : OPvPCapturePoint(pvp)
@ -52,29 +53,29 @@ OPvPCapturePointGH::OPvPCapturePointGH(OutdoorPvP* pvp) : OPvPCapturePoint(pvp)
void OPvPCapturePointGH::FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet)
{
packet.Worldstates.reserve(3);
packet.Worldstates.emplace_back(GH_UI_SLIDER_DISPLAY, 0);
packet.Worldstates.emplace_back(GH_UI_SLIDER_POS, 50);
packet.Worldstates.emplace_back(GH_UI_SLIDER_N, 20);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_GH_UI_SLIDER_DISPLAY, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_GH_UI_SLIDER_POS, 50);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_GH_UI_SLIDER_N, 20);
}
void OPvPCapturePointGH::SendChangePhase()
{
// send this too, sometimes the slider disappears, dunno why :(
SendUpdateWorldState(GH_UI_SLIDER_DISPLAY, 1);
SendUpdateWorldState(WORLD_STATE_OPVP_GH_UI_SLIDER_DISPLAY, 1);
// send these updates to only the ones in this objective
uint32 phase = (uint32)ceil((_value + _maxValue) / (2 * _maxValue) * 100.0f);
SendUpdateWorldState(GH_UI_SLIDER_POS, phase);
SendUpdateWorldState(GH_UI_SLIDER_N, _neutralValuePct);
SendUpdateWorldState(WORLD_STATE_OPVP_GH_UI_SLIDER_POS, phase);
SendUpdateWorldState(WORLD_STATE_OPVP_GH_UI_SLIDER_N, _neutralValuePct);
}
bool OPvPCapturePointGH::HandlePlayerEnter(Player* player)
{
if (OPvPCapturePoint::HandlePlayerEnter(player))
{
player->SendUpdateWorldState(GH_UI_SLIDER_DISPLAY, 1);
player->SendUpdateWorldState(WORLD_STATE_OPVP_GH_UI_SLIDER_DISPLAY, 1);
uint32 phase = (uint32)ceil((_value + _maxValue) / (2 * _maxValue) * 100.0f);
player->SendUpdateWorldState(GH_UI_SLIDER_POS, phase);
player->SendUpdateWorldState(GH_UI_SLIDER_N, _neutralValuePct);
player->SendUpdateWorldState(WORLD_STATE_OPVP_GH_UI_SLIDER_POS, phase);
player->SendUpdateWorldState(WORLD_STATE_OPVP_GH_UI_SLIDER_N, _neutralValuePct);
return true;
}
return false;
@ -82,7 +83,7 @@ bool OPvPCapturePointGH::HandlePlayerEnter(Player* player)
void OPvPCapturePointGH::HandlePlayerLeave(Player* player)
{
player->SendUpdateWorldState(GH_UI_SLIDER_DISPLAY, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_GH_UI_SLIDER_DISPLAY, 0);
OPvPCapturePoint::HandlePlayerLeave(player);
}

View file

@ -26,10 +26,6 @@ enum OutdoorPvPGHenum
GH_HORDE_DEFENSE_EVENT = 66,
GH_ZONE = 394,
GH_UI_SLIDER_DISPLAY = 3466,
GH_UI_SLIDER_POS = 3467,
GH_UI_SLIDER_N = 3468,
};
class Unit;

View file

@ -131,21 +131,21 @@ bool OutdoorPvPHP::Update(uint32 diff)
TeamCastSpell(TEAM_ALLIANCE, -AllianceBuff);
TeamCastSpell(TEAM_HORDE, -HordeBuff);
}
SendUpdateWorldState(HP_UI_TOWER_COUNT_A, m_AllianceTowersControlled);
SendUpdateWorldState(HP_UI_TOWER_COUNT_H, m_HordeTowersControlled);
SendUpdateWorldState(WORLD_STATE_OPVP_HP_UI_TOWER_COUNT_A, m_AllianceTowersControlled);
SendUpdateWorldState(WORLD_STATE_OPVP_HP_UI_TOWER_COUNT_H, m_HordeTowersControlled);
}
return changed;
}
void OutdoorPvPHP::SendRemoveWorldStates(Player* player)
{
player->SendUpdateWorldState(HP_UI_TOWER_DISPLAY_A, 0);
player->SendUpdateWorldState(HP_UI_TOWER_DISPLAY_H, 0);
player->SendUpdateWorldState(HP_UI_TOWER_COUNT_H, 0);
player->SendUpdateWorldState(HP_UI_TOWER_COUNT_A, 0);
player->SendUpdateWorldState(HP_UI_TOWER_SLIDER_N, 0);
player->SendUpdateWorldState(HP_UI_TOWER_SLIDER_POS, 0);
player->SendUpdateWorldState(HP_UI_TOWER_SLIDER_DISPLAY, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_HP_UI_TOWER_DISPLAY_A, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_HP_UI_TOWER_DISPLAY_H, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_HP_UI_TOWER_COUNT_H, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_HP_UI_TOWER_COUNT_A, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_HP_UI_TOWER_SLIDER_N, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_HP_UI_TOWER_SLIDER_POS, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_HP_UI_TOWER_SLIDER_DISPLAY, 0);
for (int i = 0; i < HP_TOWER_NUM; ++i)
{
player->SendUpdateWorldState(HP_MAP_N[i], 0);
@ -157,15 +157,15 @@ void OutdoorPvPHP::SendRemoveWorldStates(Player* player)
void OutdoorPvPHP::FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet)
{
packet.Worldstates.reserve(8);
packet.Worldstates.emplace_back(HP_UI_TOWER_DISPLAY_A, 1);
packet.Worldstates.emplace_back(HP_UI_TOWER_DISPLAY_H, 1);
packet.Worldstates.emplace_back(HP_UI_TOWER_COUNT_A, m_AllianceTowersControlled);
packet.Worldstates.emplace_back(HP_UI_TOWER_COUNT_H, m_HordeTowersControlled);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_HP_UI_TOWER_DISPLAY_A, 1);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_HP_UI_TOWER_DISPLAY_H, 1);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_HP_UI_TOWER_COUNT_A, m_AllianceTowersControlled);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_HP_UI_TOWER_COUNT_H, m_HordeTowersControlled);
packet.Worldstates.emplace_back(HP_UI_TOWER_COUNT_H, m_HordeTowersControlled);
packet.Worldstates.emplace_back(HP_UI_TOWER_SLIDER_DISPLAY, 0);
packet.Worldstates.emplace_back(HP_UI_TOWER_SLIDER_POS, 50);
packet.Worldstates.emplace_back(HP_UI_TOWER_SLIDER_N, 100);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_HP_UI_TOWER_COUNT_H, m_HordeTowersControlled);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_HP_UI_TOWER_SLIDER_DISPLAY, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_HP_UI_TOWER_SLIDER_POS, 50);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_HP_UI_TOWER_SLIDER_N, 100);
for (OPvPCapturePointMap::iterator itr = _capturePoints.begin(); itr != _capturePoints.end(); ++itr)
{
itr->second->FillInitialWorldStates(packet);
@ -269,12 +269,12 @@ void OPvPCapturePointHP::ChangeState()
void OPvPCapturePointHP::SendChangePhase()
{
SendUpdateWorldState(HP_UI_TOWER_SLIDER_N, _neutralValuePct);
SendUpdateWorldState(WORLD_STATE_OPVP_HP_UI_TOWER_SLIDER_N, _neutralValuePct);
// send these updates to only the ones in this objective
uint32 phase = (uint32)ceil((_value + _maxValue) / (2 * _maxValue) * 100.0f);
SendUpdateWorldState(HP_UI_TOWER_SLIDER_POS, phase);
SendUpdateWorldState(WORLD_STATE_OPVP_HP_UI_TOWER_SLIDER_POS, phase);
// send this too, sometimes the slider disappears, dunno why :(
SendUpdateWorldState(HP_UI_TOWER_SLIDER_DISPLAY, 1);
SendUpdateWorldState(WORLD_STATE_OPVP_HP_UI_TOWER_SLIDER_DISPLAY, 1);
}
void OPvPCapturePointHP::FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet)
@ -311,10 +311,10 @@ bool OPvPCapturePointHP::HandlePlayerEnter(Player* player)
{
if (OPvPCapturePoint::HandlePlayerEnter(player))
{
player->SendUpdateWorldState(HP_UI_TOWER_SLIDER_DISPLAY, 1);
player->SendUpdateWorldState(WORLD_STATE_OPVP_HP_UI_TOWER_SLIDER_DISPLAY, 1);
uint32 phase = (uint32)ceil((_value + _maxValue) / (2 * _maxValue) * 100.0f);
player->SendUpdateWorldState(HP_UI_TOWER_SLIDER_POS, phase);
player->SendUpdateWorldState(HP_UI_TOWER_SLIDER_N, _neutralValuePct);
player->SendUpdateWorldState(WORLD_STATE_OPVP_HP_UI_TOWER_SLIDER_POS, phase);
player->SendUpdateWorldState(WORLD_STATE_OPVP_HP_UI_TOWER_SLIDER_N, _neutralValuePct);
return true;
}
return false;
@ -322,7 +322,7 @@ bool OPvPCapturePointHP::HandlePlayerEnter(Player* player)
void OPvPCapturePointHP::HandlePlayerLeave(Player* player)
{
player->SendUpdateWorldState(HP_UI_TOWER_SLIDER_DISPLAY, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_HP_UI_TOWER_SLIDER_DISPLAY, 0);
OPvPCapturePoint::HandlePlayerLeave(player);
}

View file

@ -19,6 +19,7 @@
#define OUTDOOR_PVP_HP_
#include "OutdoorPvP.h"
#include "WorldStateDefines.h"
#define OutdoorPvPHPBuffZonesNum 6
// HP, citadel, ramparts, blood furnace, shattered halls, mag's lair
@ -46,24 +47,11 @@ const uint32 HP_CREDITMARKER[HP_TOWER_NUM] = {19032, 19028, 19029};
//const uint32 HP_CapturePointEvent_Leave[HP_TOWER_NUM] = {11403, 11395, 11387};
enum OutdoorPvPHPWorldStates
{
HP_UI_TOWER_DISPLAY_A = 0x9ba,
HP_UI_TOWER_DISPLAY_H = 0x9b9,
const uint32 HP_MAP_N[HP_TOWER_NUM] = {WORLD_STATE_OPVP_HP_BROKENHILL_N, WORLD_STATE_OPVP_HP_OVERLOOK_N, WORLD_STATE_OPVP_HP_STADIUM_N };
HP_UI_TOWER_COUNT_H = 0x9ae,
HP_UI_TOWER_COUNT_A = 0x9ac,
const uint32 HP_MAP_A[HP_TOWER_NUM] = {WORLD_STATE_OPVP_HP_BROKENHILL_A, WORLD_STATE_OPVP_HP_OVERLOOK_A, WORLD_STATE_OPVP_HP_STADIUM_A };
HP_UI_TOWER_SLIDER_N = 2475,
HP_UI_TOWER_SLIDER_POS = 2474,
HP_UI_TOWER_SLIDER_DISPLAY = 2473
};
const uint32 HP_MAP_N[HP_TOWER_NUM] = {0x9b5, 0x9b2, 0x9a8};
const uint32 HP_MAP_A[HP_TOWER_NUM] = {0x9b3, 0x9b0, 0x9a7};
const uint32 HP_MAP_H[HP_TOWER_NUM] = {0x9b4, 0x9b1, 0x9a6};
const uint32 HP_MAP_H[HP_TOWER_NUM] = {WORLD_STATE_OPVP_HP_BROKENHILL_H, WORLD_STATE_OPVP_HP_OVERLOOK_H, WORLD_STATE_OPVP_HP_STADIUM_H };
const uint32 HP_TowerArtKit_A[HP_TOWER_NUM] = {65, 62, 67};

View file

@ -29,6 +29,7 @@
#include "World.h"
#include "WorldPacket.h"
#include "WorldSessionMgr.h"
#include "WorldStateDefines.h"
#include "WorldStatePackets.h"
OutdoorPvPNA::OutdoorPvPNA()
@ -216,9 +217,9 @@ void OPvPCapturePointNA::FactionTakeOver(TeamId teamId)
m_WyvernStateEast = WYVERN_NEU_HORDE;
m_WyvernStateWest = WYVERN_NEU_HORDE;
_pvp->TeamApplyBuff(TEAM_ALLIANCE, NA_CAPTURE_BUFF);
_pvp->SendUpdateWorldState(NA_UI_HORDE_GUARDS_SHOW, 0);
_pvp->SendUpdateWorldState(NA_UI_ALLIANCE_GUARDS_SHOW, 1);
_pvp->SendUpdateWorldState(NA_UI_GUARDS_LEFT, m_GuardsAlive);
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_NA_UI_HORDE_GUARDS_SHOW, 0);
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_NA_UI_ALLIANCE_GUARDS_SHOW, 1);
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_NA_UI_GUARDS_LEFT, m_GuardsAlive);
sWorldSessionMgr->SendZoneText(NA_HALAA_GRAVEYARD_ZONE, sObjectMgr->GetAcoreStringForDBCLocale(LANG_OPVP_NA_CAPTURE_A));
}
else
@ -228,9 +229,9 @@ void OPvPCapturePointNA::FactionTakeOver(TeamId teamId)
m_WyvernStateEast = WYVERN_NEU_ALLIANCE;
m_WyvernStateWest = WYVERN_NEU_ALLIANCE;
_pvp->TeamApplyBuff(TEAM_HORDE, NA_CAPTURE_BUFF);
_pvp->SendUpdateWorldState(NA_UI_HORDE_GUARDS_SHOW, 1);
_pvp->SendUpdateWorldState(NA_UI_ALLIANCE_GUARDS_SHOW, 0);
_pvp->SendUpdateWorldState(NA_UI_GUARDS_LEFT, m_GuardsAlive);
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_NA_UI_HORDE_GUARDS_SHOW, 1);
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_NA_UI_ALLIANCE_GUARDS_SHOW, 0);
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_NA_UI_GUARDS_LEFT, m_GuardsAlive);
sWorldSessionMgr->SendZoneText(NA_HALAA_GRAVEYARD_ZONE, sObjectMgr->GetAcoreStringForDBCLocale(LANG_OPVP_NA_CAPTURE_H));
}
UpdateWyvernRoostWorldState(NA_ROOST_S);
@ -243,10 +244,10 @@ bool OPvPCapturePointNA::HandlePlayerEnter(Player* player)
{
if (OPvPCapturePoint::HandlePlayerEnter(player))
{
player->SendUpdateWorldState(NA_UI_TOWER_SLIDER_DISPLAY, 1);
player->SendUpdateWorldState(WORLD_STATE_OPVP_NA_UI_TOWER_SLIDER_DISPLAY, 1);
uint32 phase = (uint32)ceil((_value + _maxValue) / (2 * _maxValue) * 100.0f);
player->SendUpdateWorldState(NA_UI_TOWER_SLIDER_POS, phase);
player->SendUpdateWorldState(NA_UI_TOWER_SLIDER_N, _neutralValuePct);
player->SendUpdateWorldState(WORLD_STATE_OPVP_NA_UI_TOWER_SLIDER_POS, phase);
player->SendUpdateWorldState(WORLD_STATE_OPVP_NA_UI_SLIDER_N, _neutralValuePct);
return true;
}
return false;
@ -254,7 +255,7 @@ bool OPvPCapturePointNA::HandlePlayerEnter(Player* player)
void OPvPCapturePointNA::HandlePlayerLeave(Player* player)
{
player->SendUpdateWorldState(NA_UI_TOWER_SLIDER_DISPLAY, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_NA_UI_TOWER_SLIDER_DISPLAY, 0);
OPvPCapturePoint::HandlePlayerLeave(player);
}
@ -311,75 +312,75 @@ void OPvPCapturePointNA::FillInitialWorldStates(WorldPackets::WorldState::InitWo
packet.Worldstates.reserve(25);
if (m_ControllingFaction == TEAM_ALLIANCE)
{
packet.Worldstates.emplace_back(NA_UI_HORDE_GUARDS_SHOW, 0);
packet.Worldstates.emplace_back(NA_UI_ALLIANCE_GUARDS_SHOW, 1);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_UI_HORDE_GUARDS_SHOW, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_UI_ALLIANCE_GUARDS_SHOW, 1);
}
else if (m_ControllingFaction == TEAM_HORDE)
{
packet.Worldstates.emplace_back(NA_UI_HORDE_GUARDS_SHOW, 1);
packet.Worldstates.emplace_back(NA_UI_ALLIANCE_GUARDS_SHOW, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_UI_HORDE_GUARDS_SHOW, 1);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_UI_ALLIANCE_GUARDS_SHOW, 0);
}
else
{
packet.Worldstates.emplace_back(NA_UI_HORDE_GUARDS_SHOW, 0);
packet.Worldstates.emplace_back(NA_UI_ALLIANCE_GUARDS_SHOW, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_UI_HORDE_GUARDS_SHOW, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_UI_ALLIANCE_GUARDS_SHOW, 0);
}
packet.Worldstates.emplace_back(NA_UI_GUARDS_MAX, NA_GUARDS_MAX);
packet.Worldstates.emplace_back(NA_UI_GUARDS_LEFT, m_GuardsAlive);
packet.Worldstates.emplace_back(NA_MAP_WYVERN_NORTH_NEU_H, (m_WyvernStateNorth & WYVERN_NEU_HORDE) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(NA_MAP_WYVERN_NORTH_NEU_A, (m_WyvernStateNorth & WYVERN_NEU_ALLIANCE) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(NA_MAP_WYVERN_NORTH_H, (m_WyvernStateNorth & WYVERN_HORDE) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(NA_MAP_WYVERN_NORTH_A, (m_WyvernStateNorth & WYVERN_ALLIANCE) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(NA_MAP_WYVERN_SOUTH_NEU_H, (m_WyvernStateSouth & WYVERN_NEU_HORDE) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(NA_MAP_WYVERN_SOUTH_NEU_A, (m_WyvernStateSouth & WYVERN_NEU_ALLIANCE) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(NA_MAP_WYVERN_SOUTH_H, (m_WyvernStateSouth & WYVERN_HORDE) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(NA_MAP_WYVERN_SOUTH_A, (m_WyvernStateSouth & WYVERN_ALLIANCE) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(NA_MAP_WYVERN_WEST_NEU_H, (m_WyvernStateWest & WYVERN_NEU_HORDE) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(NA_MAP_WYVERN_WEST_NEU_A, (m_WyvernStateWest & WYVERN_NEU_ALLIANCE) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(NA_MAP_WYVERN_WEST_H, (m_WyvernStateWest & WYVERN_HORDE) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(NA_MAP_WYVERN_WEST_A, (m_WyvernStateWest & WYVERN_ALLIANCE) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(NA_MAP_WYVERN_EAST_NEU_H, (m_WyvernStateEast & WYVERN_NEU_HORDE) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(NA_MAP_WYVERN_EAST_NEU_A, (m_WyvernStateEast & WYVERN_NEU_ALLIANCE) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(NA_MAP_WYVERN_EAST_H, (m_WyvernStateEast & WYVERN_HORDE) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(NA_MAP_WYVERN_EAST_A, (m_WyvernStateEast & WYVERN_ALLIANCE) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(NA_MAP_HALAA_NEUTRAL, (m_HalaaState & HALAA_N) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(NA_MAP_HALAA_NEU_A, (m_HalaaState & HALAA_N_A) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(NA_MAP_HALAA_NEU_H, (m_HalaaState & HALAA_N_H) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(NA_MAP_HALAA_HORDE, (m_HalaaState & HALAA_H) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(NA_MAP_HALAA_ALLIANCE, (m_HalaaState & HALAA_A) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_UI_GUARDS_MAX, NA_GUARDS_MAX);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_UI_GUARDS_LEFT, m_GuardsAlive);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_WYVERN_NORTH_NEU_H, (m_WyvernStateNorth & WYVERN_NEU_HORDE) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_WYVERN_NORTH_NEU_A, (m_WyvernStateNorth & WYVERN_NEU_ALLIANCE) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_WYVERN_NORTH_H, (m_WyvernStateNorth & WYVERN_HORDE) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_WYVERN_NORTH_A, (m_WyvernStateNorth & WYVERN_ALLIANCE) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_WYVERN_SOUTH_NEU_H, (m_WyvernStateSouth & WYVERN_NEU_HORDE) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_WYVERN_SOUTH_NEU_A, (m_WyvernStateSouth & WYVERN_NEU_ALLIANCE) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_WYVERN_SOUTH_H, (m_WyvernStateSouth & WYVERN_HORDE) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_WYVERN_SOUTH_A, (m_WyvernStateSouth & WYVERN_ALLIANCE) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_WYVERN_WEST_NEU_H, (m_WyvernStateWest & WYVERN_NEU_HORDE) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_WYVERN_WEST_NEU_A, (m_WyvernStateWest & WYVERN_NEU_ALLIANCE) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_WYVERN_WEST_H, (m_WyvernStateWest & WYVERN_HORDE) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_WYVERN_WEST_A, (m_WyvernStateWest & WYVERN_ALLIANCE) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_WYVERN_EAST_NEU_H, (m_WyvernStateEast & WYVERN_NEU_HORDE) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_WYVERN_EAST_NEU_A, (m_WyvernStateEast & WYVERN_NEU_ALLIANCE) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_WYVERN_EAST_H, (m_WyvernStateEast & WYVERN_HORDE) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_WYVERN_EAST_A, (m_WyvernStateEast & WYVERN_ALLIANCE) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_HALAA_NEUTRAL, (m_HalaaState & HALAA_N) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_HALAA_NEU_A, (m_HalaaState & HALAA_N_A) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_HALAA_NEU_H, (m_HalaaState & HALAA_N_H) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_HALAA_HORDE, (m_HalaaState & HALAA_H) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_NA_MAP_HALAA_ALLIANCE, (m_HalaaState & HALAA_A) != 0 ? 1 : 0);
}
void OutdoorPvPNA::SendRemoveWorldStates(Player* player)
{
player->SendUpdateWorldState(NA_UI_HORDE_GUARDS_SHOW, 0);
player->SendUpdateWorldState(NA_UI_ALLIANCE_GUARDS_SHOW, 0);
player->SendUpdateWorldState(NA_UI_GUARDS_MAX, 0);
player->SendUpdateWorldState(NA_UI_GUARDS_LEFT, 0);
player->SendUpdateWorldState(NA_UI_TOWER_SLIDER_DISPLAY, 0);
player->SendUpdateWorldState(NA_UI_TOWER_SLIDER_POS, 0);
player->SendUpdateWorldState(NA_UI_TOWER_SLIDER_N, 0);
player->SendUpdateWorldState(NA_MAP_WYVERN_NORTH_NEU_H, 0);
player->SendUpdateWorldState(NA_MAP_WYVERN_NORTH_NEU_A, 0);
player->SendUpdateWorldState(NA_MAP_WYVERN_NORTH_H, 0);
player->SendUpdateWorldState(NA_MAP_WYVERN_NORTH_A, 0);
player->SendUpdateWorldState(NA_MAP_WYVERN_SOUTH_NEU_H, 0);
player->SendUpdateWorldState(NA_MAP_WYVERN_SOUTH_NEU_A, 0);
player->SendUpdateWorldState(NA_MAP_WYVERN_SOUTH_H, 0);
player->SendUpdateWorldState(NA_MAP_WYVERN_SOUTH_A, 0);
player->SendUpdateWorldState(NA_MAP_WYVERN_WEST_NEU_H, 0);
player->SendUpdateWorldState(NA_MAP_WYVERN_WEST_NEU_A, 0);
player->SendUpdateWorldState(NA_MAP_WYVERN_WEST_H, 0);
player->SendUpdateWorldState(NA_MAP_WYVERN_WEST_A, 0);
player->SendUpdateWorldState(NA_MAP_WYVERN_EAST_NEU_H, 0);
player->SendUpdateWorldState(NA_MAP_WYVERN_EAST_NEU_A, 0);
player->SendUpdateWorldState(NA_MAP_WYVERN_EAST_H, 0);
player->SendUpdateWorldState(NA_MAP_WYVERN_EAST_A, 0);
player->SendUpdateWorldState(NA_MAP_HALAA_NEUTRAL, 0);
player->SendUpdateWorldState(NA_MAP_HALAA_NEU_A, 0);
player->SendUpdateWorldState(NA_MAP_HALAA_NEU_H, 0);
player->SendUpdateWorldState(NA_MAP_HALAA_HORDE, 0);
player->SendUpdateWorldState(NA_MAP_HALAA_ALLIANCE, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_NA_UI_HORDE_GUARDS_SHOW, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_NA_UI_ALLIANCE_GUARDS_SHOW, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_NA_UI_GUARDS_MAX, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_NA_UI_GUARDS_LEFT, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_NA_UI_TOWER_SLIDER_DISPLAY, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_NA_UI_TOWER_SLIDER_POS, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_NA_UI_SLIDER_N, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_WYVERN_NORTH_NEU_H, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_WYVERN_NORTH_NEU_A, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_WYVERN_NORTH_H, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_WYVERN_NORTH_A, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_WYVERN_SOUTH_NEU_H, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_WYVERN_SOUTH_NEU_A, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_WYVERN_SOUTH_H, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_WYVERN_SOUTH_A, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_WYVERN_WEST_NEU_H, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_WYVERN_WEST_NEU_A, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_WYVERN_WEST_H, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_WYVERN_WEST_A, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_WYVERN_EAST_NEU_H, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_WYVERN_EAST_NEU_A, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_WYVERN_EAST_H, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_WYVERN_EAST_A, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_HALAA_NEUTRAL, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_HALAA_NEU_A, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_HALAA_NEU_H, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_HALAA_HORDE, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_HALAA_ALLIANCE, 0);
}
bool OutdoorPvPNA::Update(uint32 diff)
@ -640,7 +641,7 @@ bool OPvPCapturePointNA::Update(uint32 diff)
else
m_capturable = false;
// update the guard count for the players in zone
_pvp->SendUpdateWorldState(NA_UI_GUARDS_LEFT, m_GuardsAlive);
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_NA_UI_GUARDS_LEFT, m_GuardsAlive);
}
}
else m_GuardCheckTimer -= diff;
@ -774,7 +775,7 @@ bool OPvPCapturePointNA::Update(uint32 diff)
}
}
else
SendUpdateWorldState(NA_UI_TOWER_SLIDER_DISPLAY, 0); //Point is not capturable so we hide the slider
SendUpdateWorldState(WORLD_STATE_OPVP_NA_UI_TOWER_SLIDER_DISPLAY, 0); //Point is not capturable so we hide the slider
return false;
}
@ -824,20 +825,20 @@ void OPvPCapturePointNA::ChangeState()
void OPvPCapturePointNA::SendChangePhase()
{
// send this too, sometimes the slider disappears, dunno why :(
SendUpdateWorldState(NA_UI_TOWER_SLIDER_DISPLAY, 1);
SendUpdateWorldState(WORLD_STATE_OPVP_NA_UI_TOWER_SLIDER_DISPLAY, 1);
// send these updates to only the ones in this objective
uint32 phase = (uint32)ceil((_value + _maxValue) / (2 * _maxValue) * 100.0f);
SendUpdateWorldState(NA_UI_TOWER_SLIDER_POS, phase);
SendUpdateWorldState(NA_UI_TOWER_SLIDER_N, _neutralValuePct);
SendUpdateWorldState(WORLD_STATE_OPVP_NA_UI_TOWER_SLIDER_POS, phase);
SendUpdateWorldState(WORLD_STATE_OPVP_NA_UI_SLIDER_N, _neutralValuePct);
}
void OPvPCapturePointNA::UpdateHalaaWorldState()
{
_pvp->SendUpdateWorldState(NA_MAP_HALAA_NEUTRAL, uint32(bool(m_HalaaState & HALAA_N)));
_pvp->SendUpdateWorldState(NA_MAP_HALAA_NEU_A, uint32(bool(m_HalaaState & HALAA_N_A)));
_pvp->SendUpdateWorldState(NA_MAP_HALAA_NEU_H, uint32(bool(m_HalaaState & HALAA_N_H)));
_pvp->SendUpdateWorldState(NA_MAP_HALAA_HORDE, uint32(bool(m_HalaaState & HALAA_H)));
_pvp->SendUpdateWorldState(NA_MAP_HALAA_ALLIANCE, uint32(bool(m_HalaaState & HALAA_A)));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_HALAA_NEUTRAL, uint32(bool(m_HalaaState & HALAA_N)));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_HALAA_NEU_A, uint32(bool(m_HalaaState & HALAA_N_A)));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_HALAA_NEU_H, uint32(bool(m_HalaaState & HALAA_N_H)));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_HALAA_HORDE, uint32(bool(m_HalaaState & HALAA_H)));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_HALAA_ALLIANCE, uint32(bool(m_HalaaState & HALAA_A)));
}
void OPvPCapturePointNA::UpdateWyvernRoostWorldState(uint32 roost)
@ -845,28 +846,28 @@ void OPvPCapturePointNA::UpdateWyvernRoostWorldState(uint32 roost)
switch (roost)
{
case NA_ROOST_S:
_pvp->SendUpdateWorldState(NA_MAP_WYVERN_SOUTH_NEU_H, uint32(bool(m_WyvernStateSouth & WYVERN_NEU_HORDE)));
_pvp->SendUpdateWorldState(NA_MAP_WYVERN_SOUTH_NEU_A, uint32(bool(m_WyvernStateSouth & WYVERN_NEU_ALLIANCE)));
_pvp->SendUpdateWorldState(NA_MAP_WYVERN_SOUTH_H, uint32(bool(m_WyvernStateSouth & WYVERN_HORDE)));
_pvp->SendUpdateWorldState(NA_MAP_WYVERN_SOUTH_A, uint32(bool(m_WyvernStateSouth & WYVERN_ALLIANCE)));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_WYVERN_SOUTH_NEU_H, uint32(bool(m_WyvernStateSouth & WYVERN_NEU_HORDE)));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_WYVERN_SOUTH_NEU_A, uint32(bool(m_WyvernStateSouth & WYVERN_NEU_ALLIANCE)));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_WYVERN_SOUTH_H, uint32(bool(m_WyvernStateSouth & WYVERN_HORDE)));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_WYVERN_SOUTH_A, uint32(bool(m_WyvernStateSouth & WYVERN_ALLIANCE)));
break;
case NA_ROOST_N:
_pvp->SendUpdateWorldState(NA_MAP_WYVERN_NORTH_NEU_H, uint32(bool(m_WyvernStateNorth & WYVERN_NEU_HORDE)));
_pvp->SendUpdateWorldState(NA_MAP_WYVERN_NORTH_NEU_A, uint32(bool(m_WyvernStateNorth & WYVERN_NEU_ALLIANCE)));
_pvp->SendUpdateWorldState(NA_MAP_WYVERN_NORTH_H, uint32(bool(m_WyvernStateNorth & WYVERN_HORDE)));
_pvp->SendUpdateWorldState(NA_MAP_WYVERN_NORTH_A, uint32(bool(m_WyvernStateNorth & WYVERN_ALLIANCE)));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_WYVERN_NORTH_NEU_H, uint32(bool(m_WyvernStateNorth & WYVERN_NEU_HORDE)));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_WYVERN_NORTH_NEU_A, uint32(bool(m_WyvernStateNorth & WYVERN_NEU_ALLIANCE)));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_WYVERN_NORTH_H, uint32(bool(m_WyvernStateNorth & WYVERN_HORDE)));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_WYVERN_NORTH_A, uint32(bool(m_WyvernStateNorth & WYVERN_ALLIANCE)));
break;
case NA_ROOST_W:
_pvp->SendUpdateWorldState(NA_MAP_WYVERN_WEST_NEU_H, uint32(bool(m_WyvernStateWest & WYVERN_NEU_HORDE)));
_pvp->SendUpdateWorldState(NA_MAP_WYVERN_WEST_NEU_A, uint32(bool(m_WyvernStateWest & WYVERN_NEU_ALLIANCE)));
_pvp->SendUpdateWorldState(NA_MAP_WYVERN_WEST_H, uint32(bool(m_WyvernStateWest & WYVERN_HORDE)));
_pvp->SendUpdateWorldState(NA_MAP_WYVERN_WEST_A, uint32(bool(m_WyvernStateWest & WYVERN_ALLIANCE)));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_WYVERN_WEST_NEU_H, uint32(bool(m_WyvernStateWest & WYVERN_NEU_HORDE)));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_WYVERN_WEST_NEU_A, uint32(bool(m_WyvernStateWest & WYVERN_NEU_ALLIANCE)));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_WYVERN_WEST_H, uint32(bool(m_WyvernStateWest & WYVERN_HORDE)));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_WYVERN_WEST_A, uint32(bool(m_WyvernStateWest & WYVERN_ALLIANCE)));
break;
case NA_ROOST_E:
_pvp->SendUpdateWorldState(NA_MAP_WYVERN_EAST_NEU_H, uint32(bool(m_WyvernStateEast & WYVERN_NEU_HORDE)));
_pvp->SendUpdateWorldState(NA_MAP_WYVERN_EAST_NEU_A, uint32(bool(m_WyvernStateEast & WYVERN_NEU_ALLIANCE)));
_pvp->SendUpdateWorldState(NA_MAP_WYVERN_EAST_H, uint32(bool(m_WyvernStateEast & WYVERN_HORDE)));
_pvp->SendUpdateWorldState(NA_MAP_WYVERN_EAST_A, uint32(bool(m_WyvernStateEast & WYVERN_ALLIANCE)));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_WYVERN_EAST_NEU_H, uint32(bool(m_WyvernStateEast & WYVERN_NEU_HORDE)));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_WYVERN_EAST_NEU_A, uint32(bool(m_WyvernStateEast & WYVERN_NEU_ALLIANCE)));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_WYVERN_EAST_H, uint32(bool(m_WyvernStateEast & WYVERN_HORDE)));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_NA_MAP_WYVERN_EAST_A, uint32(bool(m_WyvernStateEast & WYVERN_ALLIANCE)));
break;
}
}

View file

@ -48,44 +48,6 @@ const uint32 NA_GUARD_CHECK_TIME = 500; // every half second
const uint32 NA_HALAA_BOMB = 24538; // Item id Bomb throwed in Halaa
enum OutdoorPvPNAWorldStates
{
NA_UI_HORDE_GUARDS_SHOW = 2503,
NA_UI_ALLIANCE_GUARDS_SHOW = 2502,
NA_UI_GUARDS_MAX = 2493,
NA_UI_GUARDS_LEFT = 2491,
NA_UI_TOWER_SLIDER_DISPLAY = 2495,
NA_UI_TOWER_SLIDER_POS = 2494,
NA_UI_TOWER_SLIDER_N = 2497,
NA_MAP_WYVERN_NORTH_NEU_H = 2762,
NA_MAP_WYVERN_NORTH_NEU_A = 2662,
NA_MAP_WYVERN_NORTH_H = 2663,
NA_MAP_WYVERN_NORTH_A = 2664,
NA_MAP_WYVERN_SOUTH_NEU_H = 2760,
NA_MAP_WYVERN_SOUTH_NEU_A = 2670,
NA_MAP_WYVERN_SOUTH_H = 2668,
NA_MAP_WYVERN_SOUTH_A = 2669,
NA_MAP_WYVERN_WEST_NEU_H = 2761,
NA_MAP_WYVERN_WEST_NEU_A = 2667,
NA_MAP_WYVERN_WEST_H = 2665,
NA_MAP_WYVERN_WEST_A = 2666,
NA_MAP_WYVERN_EAST_NEU_H = 2763,
NA_MAP_WYVERN_EAST_NEU_A = 2659,
NA_MAP_WYVERN_EAST_H = 2660,
NA_MAP_WYVERN_EAST_A = 2661,
NA_MAP_HALAA_NEUTRAL = 2671,
NA_MAP_HALAA_NEU_A = 2676,
NA_MAP_HALAA_NEU_H = 2677,
NA_MAP_HALAA_HORDE = 2672,
NA_MAP_HALAA_ALLIANCE = 2673
};
const uint32 FLIGHT_NODES_NUM = 4;
// used to access the elements of Horde/AllyControlGOs

View file

@ -29,6 +29,7 @@
#include "World.h"
#include "WorldPacket.h"
#include "WorldSessionMgr.h"
#include "WorldStateDefines.h"
#include "WorldStatePackets.h"
OutdoorPvPSI::OutdoorPvPSI()
@ -42,23 +43,23 @@ OutdoorPvPSI::OutdoorPvPSI()
void OutdoorPvPSI::FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet)
{
packet.Worldstates.reserve(3);
packet.Worldstates.emplace_back(SI_GATHERED_A, m_Gathered_A);
packet.Worldstates.emplace_back(SI_GATHERED_H, m_Gathered_H);
packet.Worldstates.emplace_back(SI_SILITHYST_MAX, SI_MAX_RESOURCES);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_SI_GATHERED_A, m_Gathered_A);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_SI_GATHERED_H, m_Gathered_H);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_SI_SILITHYST_MAX, SI_MAX_RESOURCES);
}
void OutdoorPvPSI::SendRemoveWorldStates(Player* player)
{
player->SendUpdateWorldState(SI_GATHERED_A, 0);
player->SendUpdateWorldState(SI_GATHERED_H, 0);
player->SendUpdateWorldState(SI_SILITHYST_MAX, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_SI_GATHERED_A, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_SI_GATHERED_H, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_SI_SILITHYST_MAX, 0);
}
void OutdoorPvPSI::UpdateWorldState()
{
SendUpdateWorldState(SI_GATHERED_A, m_Gathered_A);
SendUpdateWorldState(SI_GATHERED_H, m_Gathered_H);
SendUpdateWorldState(SI_SILITHYST_MAX, SI_MAX_RESOURCES);
SendUpdateWorldState(WORLD_STATE_OPVP_SI_GATHERED_A, m_Gathered_A);
SendUpdateWorldState(WORLD_STATE_OPVP_SI_GATHERED_H, m_Gathered_H);
SendUpdateWorldState(WORLD_STATE_OPVP_SI_SILITHYST_MAX, SI_MAX_RESOURCES);
}
bool OutdoorPvPSI::SetupOutdoorPvP()

View file

@ -44,13 +44,6 @@ const uint32 SI_TURNIN_QUEST_CM_H = 18199;
const uint32 SI_SILITHYST_MOUND = 181597;
enum SI_WorldStates
{
SI_GATHERED_A = 2313,
SI_GATHERED_H = 2314,
SI_SILITHYST_MAX = 2317
};
class OutdoorPvPSI : public OutdoorPvP
{
public:

View file

@ -63,19 +63,19 @@ void OPvPCapturePointTF::FillInitialWorldStates(WorldPackets::WorldState::InitWo
void OutdoorPvPTF::FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet)
{
packet.Worldstates.reserve(12);
packet.Worldstates.emplace_back(TF_UI_TOWER_SLIDER_POS, 50);
packet.Worldstates.emplace_back(TF_UI_TOWER_SLIDER_N, 100);
packet.Worldstates.emplace_back(TF_UI_TOWER_SLIDER_DISPLAY, 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_UI_TOWER_SLIDER_POS, 50);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_UI_TOWER_SLIDER_N, 100);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_UI_TOWER_SLIDER_DISPLAY, 0);
packet.Worldstates.emplace_back(TF_UI_TOWER_COUNT_H, m_HordeTowersControlled);
packet.Worldstates.emplace_back(TF_UI_TOWER_COUNT_A, m_AllianceTowersControlled);
packet.Worldstates.emplace_back(TF_UI_TOWERS_CONTROLLED_DISPLAY, !m_IsLocked);
packet.Worldstates.emplace_back(TF_UI_LOCKED_TIME_MINUTES_FIRST_DIGIT, first_digit);
packet.Worldstates.emplace_back(TF_UI_LOCKED_TIME_MINUTES_SECOND_DIGIT, second_digit);
packet.Worldstates.emplace_back(TF_UI_LOCKED_TIME_HOURS, hours_left);
packet.Worldstates.emplace_back(TF_UI_LOCKED_DISPLAY_NEUTRAL, (m_IsLocked && !m_HordeTowersControlled && !m_AllianceTowersControlled) ? 1 : 0);
packet.Worldstates.emplace_back(TF_UI_LOCKED_DISPLAY_HORDE, (m_IsLocked && (m_HordeTowersControlled > m_AllianceTowersControlled)) ? 1 : 0);
packet.Worldstates.emplace_back(TF_UI_LOCKED_DISPLAY_ALLIANCE, (m_IsLocked && (m_HordeTowersControlled < m_AllianceTowersControlled)) ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_UI_TOWER_COUNT_H, m_HordeTowersControlled);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_UI_TOWER_COUNT_A, m_AllianceTowersControlled);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_UI_TOWERS_CONTROLLED_DISPLAY, !m_IsLocked);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_UI_LOCKED_TIME_MINUTES_FIRST_DIGIT, first_digit);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_UI_LOCKED_TIME_MINUTES_SECOND_DIGIT, second_digit);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_UI_LOCKED_TIME_HOURS, hours_left);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_UI_LOCKED_DISPLAY_NEUTRAL, (m_IsLocked && !m_HordeTowersControlled && !m_AllianceTowersControlled) ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_UI_LOCKED_DISPLAY_HORDE, (m_IsLocked && (m_HordeTowersControlled > m_AllianceTowersControlled)) ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_TF_UI_LOCKED_DISPLAY_ALLIANCE, (m_IsLocked && (m_HordeTowersControlled < m_AllianceTowersControlled)) ? 1 : 0);
for (OPvPCapturePointMap::iterator itr = _capturePoints.begin(); itr != _capturePoints.end(); ++itr)
{
@ -85,21 +85,21 @@ void OutdoorPvPTF::FillInitialWorldStates(WorldPackets::WorldState::InitWorldSta
void OutdoorPvPTF::SendRemoveWorldStates(Player* player)
{
player->SendUpdateWorldState(TF_UI_TOWER_SLIDER_POS, uint32(0));
player->SendUpdateWorldState(TF_UI_TOWER_SLIDER_N, uint32(0));
player->SendUpdateWorldState(TF_UI_TOWER_SLIDER_DISPLAY, uint32(0));
player->SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_TOWER_SLIDER_POS, uint32(0));
player->SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_TOWER_SLIDER_N, uint32(0));
player->SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_TOWER_SLIDER_DISPLAY, uint32(0));
player->SendUpdateWorldState(TF_UI_TOWER_COUNT_H, uint32(0));
player->SendUpdateWorldState(TF_UI_TOWER_COUNT_A, uint32(0));
player->SendUpdateWorldState(TF_UI_TOWERS_CONTROLLED_DISPLAY, uint32(0));
player->SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_TOWER_COUNT_H, uint32(0));
player->SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_TOWER_COUNT_A, uint32(0));
player->SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_TOWERS_CONTROLLED_DISPLAY, uint32(0));
player->SendUpdateWorldState(TF_UI_LOCKED_TIME_MINUTES_FIRST_DIGIT, uint32(0));
player->SendUpdateWorldState(TF_UI_LOCKED_TIME_MINUTES_SECOND_DIGIT, uint32(0));
player->SendUpdateWorldState(TF_UI_LOCKED_TIME_HOURS, uint32(0));
player->SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_LOCKED_TIME_MINUTES_FIRST_DIGIT, uint32(0));
player->SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_LOCKED_TIME_MINUTES_SECOND_DIGIT, uint32(0));
player->SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_LOCKED_TIME_HOURS, uint32(0));
player->SendUpdateWorldState(TF_UI_LOCKED_DISPLAY_NEUTRAL, uint32(0));
player->SendUpdateWorldState(TF_UI_LOCKED_DISPLAY_HORDE, uint32(0));
player->SendUpdateWorldState(TF_UI_LOCKED_DISPLAY_ALLIANCE, uint32(0));
player->SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_LOCKED_DISPLAY_NEUTRAL, uint32(0));
player->SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_LOCKED_DISPLAY_HORDE, uint32(0));
player->SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_LOCKED_DISPLAY_ALLIANCE, uint32(0));
for (int i = 0; i < TF_TOWER_NUM; ++i)
{
@ -111,14 +111,14 @@ void OutdoorPvPTF::SendRemoveWorldStates(Player* player)
void OutdoorPvPTF::SaveRequiredWorldStates() const
{
sWorld->setWorldState(TF_UI_TOWER_COUNT_H, m_HordeTowersControlled);
sWorld->setWorldState(TF_UI_TOWER_COUNT_A, m_AllianceTowersControlled);
sWorld->setWorldState(WORLD_STATE_OPVP_TF_UI_TOWER_COUNT_H, m_HordeTowersControlled);
sWorld->setWorldState(WORLD_STATE_OPVP_TF_UI_TOWER_COUNT_A, m_AllianceTowersControlled);
sWorld->setWorldState(TF_UI_TOWERS_CONTROLLED_DISPLAY, m_IsLocked);
sWorld->setWorldState(WORLD_STATE_OPVP_TF_UI_TOWERS_CONTROLLED_DISPLAY, m_IsLocked);
// Save expiry as unix
uint32 const lockExpireTime = GameTime::GetGameTime().count() + (m_LockTimer / IN_MILLISECONDS);
sWorld->setWorldState(TF_UI_LOCKED_TIME_HOURS, lockExpireTime);
sWorld->setWorldState(WORLD_STATE_OPVP_TF_UI_LOCKED_TIME_HOURS, lockExpireTime);
}
void OutdoorPvPTF::ResetZoneToTeamControlled(TeamId team)
@ -144,8 +144,8 @@ void OutdoorPvPTF::ResetZoneToTeamControlled(TeamId team)
dynamic_cast<OPvPCapturePointTF*>(tower)->ResetToTeamControlled(team);
}
SendUpdateWorldState(TF_UI_TOWER_COUNT_H, m_HordeTowersControlled);
SendUpdateWorldState(TF_UI_TOWER_COUNT_A, m_AllianceTowersControlled);
SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_TOWER_COUNT_H, m_HordeTowersControlled);
SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_TOWER_COUNT_A, m_AllianceTowersControlled);
}
void OPvPCapturePointTF::ResetToTeamControlled(TeamId team)
@ -185,10 +185,10 @@ bool OPvPCapturePointTF::HandlePlayerEnter(Player* player)
{
if (OPvPCapturePoint::HandlePlayerEnter(player))
{
player->SendUpdateWorldState(TF_UI_TOWER_SLIDER_DISPLAY, 1);
player->SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_TOWER_SLIDER_DISPLAY, 1);
uint32 phase = (uint32)ceil((_value + _maxValue) / (2 * _maxValue) * 100.0f);
player->SendUpdateWorldState(TF_UI_TOWER_SLIDER_POS, phase);
player->SendUpdateWorldState(TF_UI_TOWER_SLIDER_N, _neutralValuePct);
player->SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_TOWER_SLIDER_POS, phase);
player->SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_TOWER_SLIDER_N, _neutralValuePct);
return true;
}
return false;
@ -196,7 +196,7 @@ bool OPvPCapturePointTF::HandlePlayerEnter(Player* player)
void OPvPCapturePointTF::HandlePlayerLeave(Player* player)
{
player->SendUpdateWorldState(TF_UI_TOWER_SLIDER_DISPLAY, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_TOWER_SLIDER_DISPLAY, 0);
OPvPCapturePoint::HandlePlayerLeave(player);
}
@ -211,20 +211,20 @@ bool OutdoorPvPTF::Update(uint32 diff)
TeamApplyBuff(TEAM_ALLIANCE, TF_CAPTURE_BUFF);
m_IsLocked = true;
m_JustLocked = true;
SendUpdateWorldState(TF_UI_LOCKED_DISPLAY_NEUTRAL, uint32(0));
SendUpdateWorldState(TF_UI_LOCKED_DISPLAY_HORDE, uint32(0));
SendUpdateWorldState(TF_UI_LOCKED_DISPLAY_ALLIANCE, uint32(1));
SendUpdateWorldState(TF_UI_TOWERS_CONTROLLED_DISPLAY, uint32(0));
SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_LOCKED_DISPLAY_NEUTRAL, uint32(0));
SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_LOCKED_DISPLAY_HORDE, uint32(0));
SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_LOCKED_DISPLAY_ALLIANCE, uint32(1));
SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_TOWERS_CONTROLLED_DISPLAY, uint32(0));
}
else if (m_HordeTowersControlled == TF_TOWER_NUM)
{
TeamApplyBuff(TEAM_HORDE, TF_CAPTURE_BUFF);
m_IsLocked = true;
m_JustLocked = true;
SendUpdateWorldState(TF_UI_LOCKED_DISPLAY_NEUTRAL, uint32(0));
SendUpdateWorldState(TF_UI_LOCKED_DISPLAY_HORDE, uint32(1));
SendUpdateWorldState(TF_UI_LOCKED_DISPLAY_ALLIANCE, uint32(0));
SendUpdateWorldState(TF_UI_TOWERS_CONTROLLED_DISPLAY, uint32(0));
SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_LOCKED_DISPLAY_NEUTRAL, uint32(0));
SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_LOCKED_DISPLAY_HORDE, uint32(1));
SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_LOCKED_DISPLAY_ALLIANCE, uint32(0));
SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_TOWERS_CONTROLLED_DISPLAY, uint32(0));
}
else
{
@ -232,8 +232,8 @@ bool OutdoorPvPTF::Update(uint32 diff)
TeamCastSpell(TEAM_HORDE, -TF_CAPTURE_BUFF);
}
SendUpdateWorldState(TF_UI_TOWER_COUNT_A, m_AllianceTowersControlled);
SendUpdateWorldState(TF_UI_TOWER_COUNT_H, m_HordeTowersControlled);
SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_TOWER_COUNT_A, m_AllianceTowersControlled);
SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_TOWER_COUNT_H, m_HordeTowersControlled);
}
if (m_IsLocked)
@ -254,10 +254,10 @@ bool OutdoorPvPTF::Update(uint32 diff)
ResetZoneToTeamControlled(TEAM_NEUTRAL);
SaveRequiredWorldStates();
SendUpdateWorldState(TF_UI_TOWERS_CONTROLLED_DISPLAY, uint32(1));
SendUpdateWorldState(TF_UI_LOCKED_DISPLAY_NEUTRAL, uint32(0));
SendUpdateWorldState(TF_UI_LOCKED_DISPLAY_HORDE, uint32(0));
SendUpdateWorldState(TF_UI_LOCKED_DISPLAY_ALLIANCE, uint32(0));
SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_TOWERS_CONTROLLED_DISPLAY, uint32(1));
SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_LOCKED_DISPLAY_NEUTRAL, uint32(0));
SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_LOCKED_DISPLAY_HORDE, uint32(0));
SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_LOCKED_DISPLAY_ALLIANCE, uint32(0));
}
else
{
@ -267,9 +267,9 @@ bool OutdoorPvPTF::Update(uint32 diff)
m_LockTimerUpdate = TF_LOCK_TIME_UPDATE;
RecalculateClientUILockTime();
SendUpdateWorldState(TF_UI_LOCKED_TIME_MINUTES_FIRST_DIGIT, first_digit);
SendUpdateWorldState(TF_UI_LOCKED_TIME_MINUTES_SECOND_DIGIT, second_digit);
SendUpdateWorldState(TF_UI_LOCKED_TIME_HOURS, hours_left);
SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_LOCKED_TIME_MINUTES_FIRST_DIGIT, first_digit);
SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_LOCKED_TIME_MINUTES_SECOND_DIGIT, second_digit);
SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_LOCKED_TIME_HOURS, hours_left);
}
else
{
@ -335,7 +335,7 @@ bool OutdoorPvPTF::SetupOutdoorPvP()
m_AllianceTowersControlled = 0;
m_HordeTowersControlled = 0;
m_IsLocked = bool(sWorld->getWorldState(TF_UI_TOWERS_CONTROLLED_DISPLAY));
m_IsLocked = bool(sWorld->getWorldState(WORLD_STATE_OPVP_TF_UI_TOWERS_CONTROLLED_DISPLAY));
m_JustLocked = false;
m_LockTimer = TF_LOCK_TIME;
m_LockTimerUpdate = 0;
@ -359,14 +359,14 @@ bool OutdoorPvPTF::SetupOutdoorPvP()
{
// Core shutdown while locked -- init from latest known data in WorldState
// Convert from unix
int32 const lockRemainingTime = int32((sWorld->getWorldState(TF_UI_LOCKED_TIME_HOURS) - GameTime::GetGameTime().count()) * IN_MILLISECONDS);
int32 const lockRemainingTime = int32((sWorld->getWorldState(WORLD_STATE_OPVP_TF_UI_LOCKED_TIME_HOURS) - GameTime::GetGameTime().count()) * IN_MILLISECONDS);
if (lockRemainingTime > 0)
{
m_LockTimer = lockRemainingTime;
RecalculateClientUILockTime();
uint32 const hordeTowers = uint32(sWorld->getWorldState(TF_UI_TOWER_COUNT_H));
uint32 const allianceTowers = uint32(sWorld->getWorldState(TF_UI_TOWER_COUNT_A));
uint32 const hordeTowers = uint32(sWorld->getWorldState(WORLD_STATE_OPVP_TF_UI_TOWER_COUNT_H));
uint32 const allianceTowers = uint32(sWorld->getWorldState(WORLD_STATE_OPVP_TF_UI_TOWER_COUNT_A));
TeamId const controllingTeam = hordeTowers > allianceTowers ? TEAM_HORDE : TEAM_ALLIANCE;
ResetZoneToTeamControlled(controllingTeam);
@ -462,12 +462,12 @@ void OPvPCapturePointTF::ChangeState()
void OPvPCapturePointTF::SendChangePhase()
{
// send this too, sometimes the slider disappears, dunno why :(
SendUpdateWorldState(TF_UI_TOWER_SLIDER_DISPLAY, 1);
SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_TOWER_SLIDER_DISPLAY, 1);
// send these updates to only the ones in this objective
uint32 phase = (uint32)ceil((_value + _maxValue) / (2 * _maxValue) * 100.0f);
SendUpdateWorldState(TF_UI_TOWER_SLIDER_POS, phase);
SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_TOWER_SLIDER_POS, phase);
// send this too, sometimes it resets :S
SendUpdateWorldState(TF_UI_TOWER_SLIDER_N, _neutralValuePct);
SendUpdateWorldState(WORLD_STATE_OPVP_TF_UI_TOWER_SLIDER_N, _neutralValuePct);
}
class OutdoorPvP_terokkar_forest : public OutdoorPvPScript

View file

@ -19,6 +19,7 @@
#define OUTDOOR_PVP_TF_
#include "OutdoorPvP.h"
#include "WorldStateDefines.h"
const uint8 OutdoorPvPTFBuffZonesNum = 5;
@ -71,11 +72,11 @@ struct tf_tower_world_state
const tf_tower_world_state TFTowerWorldStates[TF_TOWER_NUM] =
{
{0xa79, 0xa7a, 0xa7b},
{0xa7e, 0xa7d, 0xa7c},
{0xa82, 0xa81, 0xa80},
{0xa88, 0xa87, 0xa86},
{0xa85, 0xa84, 0xa83}
{WORLD_STATE_OPVP_TF_TOWER_NUM_00, WORLD_STATE_OPVP_TF_TOWER_NUM_01, WORLD_STATE_OPVP_TF_TOWER_NUM_02},
{WORLD_STATE_OPVP_TF_TOWER_NUM_05, WORLD_STATE_OPVP_TF_TOWER_NUM_04, WORLD_STATE_OPVP_TF_TOWER_NUM_03},
{WORLD_STATE_OPVP_TF_TOWER_NUM_08, WORLD_STATE_OPVP_TF_TOWER_NUM_07, WORLD_STATE_OPVP_TF_TOWER_NUM_06},
{WORLD_STATE_OPVP_TF_TOWER_NUM_14, WORLD_STATE_OPVP_TF_TOWER_NUM_13, WORLD_STATE_OPVP_TF_TOWER_NUM_12},
{WORLD_STATE_OPVP_TF_TOWER_NUM_11, WORLD_STATE_OPVP_TF_TOWER_NUM_10, WORLD_STATE_OPVP_TF_TOWER_NUM_09}
};
//const uint32 TFTowerPlayerEnterEvents[TF_TOWER_NUM] =
@ -96,24 +97,6 @@ const tf_tower_world_state TFTowerWorldStates[TF_TOWER_NUM] =
// 12500
//};
enum TFWorldStates
{
TF_UI_TOWER_SLIDER_POS = 0xa41,
TF_UI_TOWER_SLIDER_N = 0xa40,
TF_UI_TOWER_SLIDER_DISPLAY = 0xa3f,
TF_UI_TOWER_COUNT_H = 0xa3e,
TF_UI_TOWER_COUNT_A = 0xa3d,
TF_UI_TOWERS_CONTROLLED_DISPLAY = 0xa3c,
TF_UI_LOCKED_TIME_MINUTES_FIRST_DIGIT = 0x9d0,
TF_UI_LOCKED_TIME_MINUTES_SECOND_DIGIT = 0x9ce,
TF_UI_LOCKED_TIME_HOURS = 0x9cd,
TF_UI_LOCKED_DISPLAY_NEUTRAL = 0x9cc,
TF_UI_LOCKED_DISPLAY_HORDE = 0xad0,
TF_UI_LOCKED_DISPLAY_ALLIANCE = 0xacf
};
enum TFTowerStates
{
TF_TOWERSTATE_N = 1,

View file

@ -26,6 +26,7 @@
#include "World.h"
#include "WorldPacket.h"
#include "WorldSessionMgr.h"
#include "WorldStateDefines.h"
#include "WorldStatePackets.h"
OPvPCapturePointZM_Beacon::OPvPCapturePointZM_Beacon(OutdoorPvP* pvp, ZM_BeaconType type)
@ -269,26 +270,26 @@ OPvPCapturePointZM_Graveyard::OPvPCapturePointZM_Graveyard(OutdoorPvP* pvp)
void OPvPCapturePointZM_Graveyard::UpdateTowerState()
{
_pvp->SendUpdateWorldState(ZM_MAP_GRAVEYARD_N, uint32(bool(m_GraveyardState & ZM_GRAVEYARD_N)));
_pvp->SendUpdateWorldState(ZM_MAP_GRAVEYARD_H, uint32(bool(m_GraveyardState & ZM_GRAVEYARD_H)));
_pvp->SendUpdateWorldState(ZM_MAP_GRAVEYARD_A, uint32(bool(m_GraveyardState & ZM_GRAVEYARD_A)));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_ZM_MAP_GRAVEYARD_N, uint32(bool(m_GraveyardState & ZM_GRAVEYARD_N)));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_ZM_MAP_GRAVEYARD_H, uint32(bool(m_GraveyardState & ZM_GRAVEYARD_H)));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_ZM_MAP_GRAVEYARD_A, uint32(bool(m_GraveyardState & ZM_GRAVEYARD_A)));
_pvp->SendUpdateWorldState(ZM_MAP_ALLIANCE_FLAG_READY, uint32(m_BothControllingFactionId == TEAM_ALLIANCE));
_pvp->SendUpdateWorldState(ZM_MAP_ALLIANCE_FLAG_NOT_READY, uint32(m_BothControllingFactionId != TEAM_ALLIANCE));
_pvp->SendUpdateWorldState(ZM_MAP_HORDE_FLAG_READY, uint32(m_BothControllingFactionId == TEAM_HORDE));
_pvp->SendUpdateWorldState(ZM_MAP_HORDE_FLAG_NOT_READY, uint32(m_BothControllingFactionId != TEAM_HORDE));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_ZM_MAP_ALLIANCE_FLAG_READY, uint32(m_BothControllingFactionId == TEAM_ALLIANCE));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_ZM_MAP_ALLIANCE_FLAG_NOT_READY, uint32(m_BothControllingFactionId != TEAM_ALLIANCE));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_ZM_MAP_HORDE_FLAG_READY, uint32(m_BothControllingFactionId == TEAM_HORDE));
_pvp->SendUpdateWorldState(WORLD_STATE_OPVP_ZM_MAP_HORDE_FLAG_NOT_READY, uint32(m_BothControllingFactionId != TEAM_HORDE));
}
void OPvPCapturePointZM_Graveyard::FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet)
{
packet.Worldstates.reserve(7);
packet.Worldstates.emplace_back(ZM_MAP_GRAVEYARD_N, (m_GraveyardState & ZM_GRAVEYARD_N) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(ZM_MAP_GRAVEYARD_H, (m_GraveyardState & ZM_GRAVEYARD_H) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(ZM_MAP_GRAVEYARD_A, (m_GraveyardState & ZM_GRAVEYARD_A) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(ZM_MAP_ALLIANCE_FLAG_READY, m_BothControllingFactionId == TEAM_ALLIANCE ? 1 : 0);
packet.Worldstates.emplace_back(ZM_MAP_ALLIANCE_FLAG_NOT_READY, m_BothControllingFactionId != TEAM_ALLIANCE ? 1 : 0);
packet.Worldstates.emplace_back(ZM_MAP_HORDE_FLAG_READY, m_BothControllingFactionId == TEAM_HORDE ? 1 : 0);
packet.Worldstates.emplace_back(ZM_MAP_HORDE_FLAG_NOT_READY, m_BothControllingFactionId != TEAM_HORDE ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_ZM_MAP_GRAVEYARD_N, (m_GraveyardState & ZM_GRAVEYARD_N) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_ZM_MAP_GRAVEYARD_H, (m_GraveyardState & ZM_GRAVEYARD_H) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_ZM_MAP_GRAVEYARD_A, (m_GraveyardState & ZM_GRAVEYARD_A) != 0 ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_ZM_MAP_ALLIANCE_FLAG_READY, m_BothControllingFactionId == TEAM_ALLIANCE ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_ZM_MAP_ALLIANCE_FLAG_NOT_READY, m_BothControllingFactionId != TEAM_ALLIANCE ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_ZM_MAP_HORDE_FLAG_READY, m_BothControllingFactionId == TEAM_HORDE ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_ZM_MAP_HORDE_FLAG_NOT_READY, m_BothControllingFactionId != TEAM_HORDE ? 1 : 0);
}
void OPvPCapturePointZM_Graveyard::SetBeaconState(TeamId controlling_factionId)
@ -417,7 +418,7 @@ void OutdoorPvPZM::SetHordeTowersControlled(uint32 count)
void OutdoorPvPZM::FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet)
{
packet.Worldstates.emplace_back(ZM_WORLDSTATE_UNK_1, 1);
packet.Worldstates.emplace_back(WORLD_STATE_OPVP_ZM_UNK, 1);
for (OPvPCapturePointMap::iterator itr = _capturePoints.begin(); itr != _capturePoints.end(); ++itr)
{
itr->second->FillInitialWorldStates(packet);
@ -426,32 +427,32 @@ void OutdoorPvPZM::FillInitialWorldStates(WorldPackets::WorldState::InitWorldSta
void OutdoorPvPZM::SendRemoveWorldStates(Player* player)
{
player->SendUpdateWorldState(ZM_UI_TOWER_SLIDER_N_W, 0);
player->SendUpdateWorldState(ZM_UI_TOWER_SLIDER_POS_W, 0);
player->SendUpdateWorldState(ZM_UI_TOWER_SLIDER_DISPLAY_W, 0);
player->SendUpdateWorldState(ZM_UI_TOWER_SLIDER_N_E, 0);
player->SendUpdateWorldState(ZM_UI_TOWER_SLIDER_POS_E, 0);
player->SendUpdateWorldState(ZM_UI_TOWER_SLIDER_DISPLAY_E, 0);
player->SendUpdateWorldState(ZM_WORLDSTATE_UNK_1, 1);
player->SendUpdateWorldState(ZM_UI_TOWER_EAST_N, 0);
player->SendUpdateWorldState(ZM_UI_TOWER_EAST_H, 0);
player->SendUpdateWorldState(ZM_UI_TOWER_EAST_A, 0);
player->SendUpdateWorldState(ZM_UI_TOWER_WEST_N, 0);
player->SendUpdateWorldState(ZM_UI_TOWER_WEST_H, 0);
player->SendUpdateWorldState(ZM_UI_TOWER_WEST_A, 0);
player->SendUpdateWorldState(ZM_MAP_TOWER_EAST_N, 0);
player->SendUpdateWorldState(ZM_MAP_TOWER_EAST_H, 0);
player->SendUpdateWorldState(ZM_MAP_TOWER_EAST_A, 0);
player->SendUpdateWorldState(ZM_MAP_GRAVEYARD_H, 0);
player->SendUpdateWorldState(ZM_MAP_GRAVEYARD_A, 0);
player->SendUpdateWorldState(ZM_MAP_GRAVEYARD_N, 0);
player->SendUpdateWorldState(ZM_MAP_TOWER_WEST_N, 0);
player->SendUpdateWorldState(ZM_MAP_TOWER_WEST_H, 0);
player->SendUpdateWorldState(ZM_MAP_TOWER_WEST_A, 0);
player->SendUpdateWorldState(ZM_MAP_HORDE_FLAG_READY, 0);
player->SendUpdateWorldState(ZM_MAP_HORDE_FLAG_NOT_READY, 0);
player->SendUpdateWorldState(ZM_MAP_ALLIANCE_FLAG_NOT_READY, 0);
player->SendUpdateWorldState(ZM_MAP_ALLIANCE_FLAG_READY, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_ZM_UI_TOWER_SLIDER_N_W, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_ZM_UI_TOWER_SLIDER_POS_W, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_ZM_UI_TOWER_SLIDER_DISPLAY_W, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_ZM_UI_TOWER_SLIDER_N_E, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_ZM_UI_TOWER_SLIDER_POS_E, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_ZM_UI_TOWER_SLIDER_DISPLAY_E, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_ZM_UNK, 1);
player->SendUpdateWorldState(WORLD_STATE_OPVP_ZM_UI_TOWER_EAST_N, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_ZM_UI_TOWER_EAST_H, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_ZM_UI_TOWER_EAST_A, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_ZM_UI_TOWER_WEST_N, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_ZM_UI_TOWER_WEST_H, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_ZM_UI_TOWER_WEST_A, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_ZM_MAP_TOWER_EAST_N, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_ZM_MAP_TOWER_EAST_H, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_ZM_MAP_TOWER_EAST_A, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_ZM_MAP_GRAVEYARD_H, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_ZM_MAP_GRAVEYARD_A, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_ZM_MAP_GRAVEYARD_N, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_ZM_MAP_TOWER_WEST_N, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_ZM_MAP_TOWER_WEST_H, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_ZM_MAP_TOWER_WEST_A, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_ZM_MAP_HORDE_FLAG_READY, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_ZM_MAP_HORDE_FLAG_NOT_READY, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_ZM_MAP_ALLIANCE_FLAG_NOT_READY, 0);
player->SendUpdateWorldState(WORLD_STATE_OPVP_ZM_MAP_ALLIANCE_FLAG_READY, 0);
}
class OutdoorPvP_zangarmarsh : public OutdoorPvPScript

View file

@ -122,41 +122,6 @@ const go_type ZMCapturePoints[ZM_NUM_BEACONS] =
{182522, 530, 336.466f, 7340.26f, 41.4984f, -1.58825f, 0.0f, 0.0f, 0.71325f, -0.700909f}
};
enum OutdoorPvPZMWorldStates
{
ZM_UI_TOWER_SLIDER_N_W = 2529,
ZM_UI_TOWER_SLIDER_POS_W = 2528,
ZM_UI_TOWER_SLIDER_DISPLAY_W = 2527,
ZM_UI_TOWER_SLIDER_N_E = 2535,
ZM_UI_TOWER_SLIDER_POS_E = 2534,
ZM_UI_TOWER_SLIDER_DISPLAY_E = 2533,
ZM_WORLDSTATE_UNK_1 = 2653,
ZM_UI_TOWER_EAST_N = 2560,
ZM_UI_TOWER_EAST_H = 2559,
ZM_UI_TOWER_EAST_A = 2558,
ZM_UI_TOWER_WEST_N = 2557,
ZM_UI_TOWER_WEST_H = 2556,
ZM_UI_TOWER_WEST_A = 2555,
ZM_MAP_TOWER_EAST_N = 2652,
ZM_MAP_TOWER_EAST_H = 2651,
ZM_MAP_TOWER_EAST_A = 2650,
ZM_MAP_GRAVEYARD_H = 2649,
ZM_MAP_GRAVEYARD_A = 2648,
ZM_MAP_GRAVEYARD_N = 2647,
ZM_MAP_TOWER_WEST_N = 2646,
ZM_MAP_TOWER_WEST_H = 2645,
ZM_MAP_TOWER_WEST_A = 2644,
ZM_MAP_HORDE_FLAG_READY = 2658,
ZM_MAP_HORDE_FLAG_NOT_READY = 2657,
ZM_MAP_ALLIANCE_FLAG_NOT_READY = 2656,
ZM_MAP_ALLIANCE_FLAG_READY = 2655
};
enum ZM_TowerStateMask
{
ZM_TOWERSTATE_N = 1,

View file

@ -34,6 +34,7 @@
#include "TaskScheduler.h"
#include "WaypointMgr.h"
#include "World.h"
#include "WorldStateDefines.h"
/// @todo: this import is not necessary for compilation and marked as unused by the IDE
// however, for some reasons removing it would cause a damn linking issue
@ -186,17 +187,6 @@ public:
}
};
/*
* Stranglethorn Vale Fishing Extravaganza World States
*/
enum FishingExtravaganzaWorldStates
{
STV_FISHING_PREV_WIN_TIME = 197,
STV_FISHING_HAS_WINNER = 198,
STV_FISHING_ANNOUNCE_EVENT_BEGIN = 199,
STV_FISHING_ANNOUNCE_POOLS_DESPAN = 200
};
enum RiggleBassbait
{
RIGGLE_SAY_START = 0,
@ -222,13 +212,13 @@ public:
npc_riggle_bassbaitAI(Creature* c) : ScriptedAI(c)
{
m_uiTimer = 0;
auto prevWinTime = sWorld->getWorldState(STV_FISHING_PREV_WIN_TIME);
auto prevWinTime = sWorld->getWorldState(WORLD_STATE_STRANGLETHORN_VALE_FISHING_PREV_WIN_TIME);
if (GameTime::GetGameTime().count() - prevWinTime > DAY)
{
// reset all after 1 day
sWorld->setWorldState(STV_FISHING_ANNOUNCE_EVENT_BEGIN, 1);
sWorld->setWorldState(STV_FISHING_ANNOUNCE_POOLS_DESPAN, 0);
sWorld->setWorldState(STV_FISHING_HAS_WINNER, 0);
sWorld->setWorldState(WORLD_STATE_STRANGLETHORN_VALE_FISHING_ANNOUNCE_EVENT_BEGIN, 1);
sWorld->setWorldState(WORLD_STATE_STRANGLETHORN_VALE_FISHING_ANNOUNCE_POOLS_DESPAWN, 0);
sWorld->setWorldState(WORLD_STATE_STRANGLETHORN_VALE_FISHING_HAS_WINNER, 0);
}
}
@ -236,16 +226,16 @@ public:
void CheckTournamentState() const
{
if (sGameEventMgr->IsActiveEvent(EVENT_FISHING_TURN_INS) && !sWorld->getWorldState(STV_FISHING_HAS_WINNER))
if (sGameEventMgr->IsActiveEvent(EVENT_FISHING_TURN_INS) && !sWorld->getWorldState(WORLD_STATE_STRANGLETHORN_VALE_FISHING_HAS_WINNER))
{
if (!me->IsQuestGiver())
{
me->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
}
if (sWorld->getWorldState(STV_FISHING_ANNOUNCE_EVENT_BEGIN))
if (sWorld->getWorldState(WORLD_STATE_STRANGLETHORN_VALE_FISHING_ANNOUNCE_EVENT_BEGIN))
{
me->AI()->Talk(RIGGLE_SAY_START);
sWorld->setWorldState(STV_FISHING_ANNOUNCE_EVENT_BEGIN, 0);
sWorld->setWorldState(WORLD_STATE_STRANGLETHORN_VALE_FISHING_ANNOUNCE_EVENT_BEGIN, 0);
}
}
else
@ -258,14 +248,14 @@ public:
if (sGameEventMgr->IsActiveEvent(EVENT_FISHING_POOLS))
{
// enable announcement: when pools despawn
sWorld->setWorldState(STV_FISHING_ANNOUNCE_POOLS_DESPAN, 1);
sWorld->setWorldState(WORLD_STATE_STRANGLETHORN_VALE_FISHING_ANNOUNCE_POOLS_DESPAWN, 1);
}
else
{
if (sWorld->getWorldState(STV_FISHING_ANNOUNCE_POOLS_DESPAN))
if (sWorld->getWorldState(WORLD_STATE_STRANGLETHORN_VALE_FISHING_ANNOUNCE_POOLS_DESPAWN))
{
me->AI()->Talk(RIGGLE_SAY_POOLS_END);
sWorld->setWorldState(STV_FISHING_ANNOUNCE_POOLS_DESPAN, 0);
sWorld->setWorldState(WORLD_STATE_STRANGLETHORN_VALE_FISHING_ANNOUNCE_POOLS_DESPAWN, 0);
}
}
}
@ -291,7 +281,7 @@ public:
player->PrepareQuestMenu(creature->GetGUID());
}
if (sWorld->getWorldState(STV_FISHING_HAS_WINNER))
if (sWorld->getWorldState(WORLD_STATE_STRANGLETHORN_VALE_FISHING_HAS_WINNER))
{
SendGossipMenuFor(player, GOSSIP_EVENT_OVER, creature->GetGUID());
}
@ -308,8 +298,8 @@ public:
{
creature->RemoveNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
creature->AI()->Talk(RIGGLE_SAY_WINNER, player);
sWorld->setWorldState(STV_FISHING_PREV_WIN_TIME, GameTime::GetGameTime().count());
sWorld->setWorldState(STV_FISHING_HAS_WINNER, 1);
sWorld->setWorldState(WORLD_STATE_STRANGLETHORN_VALE_FISHING_PREV_WIN_TIME, GameTime::GetGameTime().count());
sWorld->setWorldState(WORLD_STATE_STRANGLETHORN_VALE_FISHING_HAS_WINNER, 1);
}
return true;
}