Core/WorldStates: Migrate OutdoorPvP worldstates to new system

Port From (https://github.com/TrinityCore/TrinityCore/commit/36ff703df55704265a28e28f4ea9f9cdcb54e85c)
This commit is contained in:
hondacrx
2022-07-13 17:31:56 -04:00
parent ecb70dc4a9
commit 9421aeee98
4 changed files with 137 additions and 241 deletions
-169
View File
@@ -2905,7 +2905,6 @@ namespace Game.Entities
{
// data depends on zoneid/mapid...
uint mapid = GetMapId();
OutdoorPvP pvp = Global.OutdoorPvPMgr.GetOutdoorPvPToZoneId(zoneId);
InitWorldStates packet = new();
packet.MapID = mapid;
@@ -2932,174 +2931,6 @@ namespace Game.Entities
previousArenaSeason = WorldConfig.GetUIntValue(WorldCfg.ArenaSeasonId) - 1;// 0 - End of season
packet.AddState(3901, previousArenaSeason);
if (mapid == 530) // Outland
{
packet.AddState(2495, 0); // NA_UI_OUTLAND_01 "Progress: %2494w"
packet.AddState(2493, 15); // NA_UI_GUARDS_MAX
packet.AddState(2491, 15); // NA_UI_GUARDS_LEFT
}
// insert <field> <value>
switch (zoneId)
{
case 1: // Dun Morogh
case 11: // Wetlands
case 12: // Elwynn Forest
case 38: // Loch Modan
case 40: // Westfall
case 51: // Searing Gorge
case 1519: // Stormwind City
case 1537: // Ironforge
case 2257: // Deeprun Tram
case 3703: // Shattrath City});
break;
case 1377: // Silithus
if (pvp != null && pvp.GetTypeId() == OutdoorPvPTypes.Silithus)
pvp.FillInitialWorldStates(packet);
else
{
packet.AddState(2313, 0); // SI_GATHERED_A
packet.AddState(2314, 0); // SI_GATHERED_H
packet.AddState(2317, 0); // SI_SILITHYST_MAX
}
// unknown, aq opening?
packet.AddState(2322, 0); // AQ_SANDWORM_N
packet.AddState(2323, 0); // AQ_SANDWORM_S
packet.AddState(2324, 0); // AQ_SANDWORM_SW
packet.AddState(2325, 0); // AQ_SANDWORM_E
break;
// any of these needs change! the client remembers the prev setting!
// ON EVERY ZONE LEAVE, RESET THE OLD ZONE'S WORLD STATE, BUT AT LEAST THE UI STUFF!
case 3483: // Hellfire Peninsula
if (pvp != null && pvp.GetTypeId() == OutdoorPvPTypes.HellfirePeninsula)
pvp.FillInitialWorldStates(packet);
else
{
packet.AddState(2490, 1); // add ally tower main gui icon
packet.AddState(2489, 1); // add horde tower main gui icon
packet.AddState(2485, 0); // show neutral broken hill icon
packet.AddState(2484, 1); // show icon above broken hill
packet.AddState(2483, 0); // show ally broken hill icon
packet.AddState(2482, 0); // show neutral overlook icon
packet.AddState(2481, 1); // show the overlook arrow
packet.AddState(2480, 0); // show ally overlook icon
packet.AddState(2478, 0); // horde pvp objectives captured
packet.AddState(2476, 0); // ally pvp objectives captured
packet.AddState(2475, 100); // horde slider grey area
packet.AddState(2474, 50); // horde slider percentage, 100 for ally, 0 for horde
packet.AddState(2473, 0); // horde slider display
packet.AddState(2472, 0); // show the neutral stadium icon
packet.AddState(2471, 0); // show the ally stadium icon
packet.AddState(2470, 1); // show the horde stadium icon
}
break;
case 3518: // Nagrand
if (pvp != null && pvp.GetTypeId() == OutdoorPvPTypes.Nagrand)
pvp.FillInitialWorldStates(packet);
else
{
packet.AddState(2503, 0); // NA_UI_HORDE_GUARDS_SHOW
packet.AddState(2502, 0); // NA_UI_ALLIANCE_GUARDS_SHOW
packet.AddState(2493, 0); // NA_UI_GUARDS_MAX
packet.AddState(2491, 0); // NA_UI_GUARDS_LEFT
packet.AddState(2495, 0); // NA_UI_OUTLAND_01
packet.AddState(2494, 0); // NA_UI_UNK_1
packet.AddState(2497, 0); // NA_UI_UNK_2
packet.AddState(2762, 0); // NA_MAP_WYVERN_NORTH_NEU_H
packet.AddState(2662, 0); // NA_MAP_WYVERN_NORTH_NEU_A
packet.AddState(2663, 0); // NA_MAP_WYVERN_NORTH_H
packet.AddState(2664, 0); // NA_MAP_WYVERN_NORTH_A
packet.AddState(2760, 0); // NA_MAP_WYVERN_SOUTH_NEU_H
packet.AddState(2670, 0); // NA_MAP_WYVERN_SOUTH_NEU_A
packet.AddState(2668, 0); // NA_MAP_WYVERN_SOUTH_H
packet.AddState(2669, 0); // NA_MAP_WYVERN_SOUTH_A
packet.AddState(2761, 0); // NA_MAP_WYVERN_WEST_NEU_H
packet.AddState(2667, 0); // NA_MAP_WYVERN_WEST_NEU_A
packet.AddState(2665, 0); // NA_MAP_WYVERN_WEST_H
packet.AddState(2666, 0); // NA_MAP_WYVERN_WEST_A
packet.AddState(2763, 0); // NA_MAP_WYVERN_EAST_NEU_H
packet.AddState(2659, 0); // NA_MAP_WYVERN_EAST_NEU_A
packet.AddState(2660, 0); // NA_MAP_WYVERN_EAST_H
packet.AddState(2661, 0); // NA_MAP_WYVERN_EAST_A
packet.AddState(2671, 0); // NA_MAP_HALAA_NEUTRAL
packet.AddState(2676, 0); // NA_MAP_HALAA_NEU_A
packet.AddState(2677, 0); // NA_MAP_HALAA_NEU_H
packet.AddState(2672, 0); // NA_MAP_HALAA_HORDE
packet.AddState(2673, 0); // NA_MAP_HALAA_ALLIANCE
}
break;
case 3519: // Terokkar Forest
if (pvp != null && pvp.GetTypeId() == OutdoorPvPTypes.TerokkarForest)
pvp.FillInitialWorldStates(packet);
else
{
packet.AddState(2625, 0); // TF_UI_CAPTURE_BAR_POS
packet.AddState(2624, 20); // TF_UI_CAPTURE_BAR_NEUTRAL
packet.AddState(2623, 0); // TF_UI_SHOW CAPTURE BAR
packet.AddState(2622, 0); // TF_UI_TOWER_COUNT_H
packet.AddState(2621, 5); // TF_UI_TOWER_COUNT_A
packet.AddState(2620, 0); // TF_UI_TOWERS_CONTROLLED_DISPLAY
packet.AddState(2696, 0); // TF_TOWER_NUM_15 - SE Neutral
packet.AddState(2695, 0); // TF_TOWER_NUM_14 - SE Horde
packet.AddState(2694, 0); // TF_TOWER_NUM_13 - SE Alliance
packet.AddState(2693, 0); // TF_TOWER_NUM_12 - S Neutral
packet.AddState(2692, 0); // TF_TOWER_NUM_11 - S Horde
packet.AddState(2691, 0); // TF_TOWER_NUM_10 - S Alliance
packet.AddState(2690, 0); // TF_TOWER_NUM_09 - NE Neutral
packet.AddState(2689, 0); // TF_TOWER_NUM_08 - NE Horde
packet.AddState(2688, 0); // TF_TOWER_NUM_07 - NE Alliance
packet.AddState(2687, 0); // TF_TOWER_NUM_16 - unk
packet.AddState(2686, 0); // TF_TOWER_NUM_06 - N Neutral
packet.AddState(2685, 0); // TF_TOWER_NUM_05 - N Horde
packet.AddState(2684, 0); // TF_TOWER_NUM_04 - N Alliance
packet.AddState(2683, 0); // TF_TOWER_NUM_03 - NW Alliance
packet.AddState(2682, 0); // TF_TOWER_NUM_02 - NW Horde
packet.AddState(2681, 0); // TF_TOWER_NUM_01 - NW Neutral
packet.AddState(2512, 5); // TF_UI_LOCKED_TIME_MINUTES_FIRST_DIGIT
packet.AddState(2510, 0); // TF_UI_LOCKED_TIME_MINUTES_SECOND_DIGIT
packet.AddState(2509, 0); // TF_UI_LOCKED_TIME_HOURS
packet.AddState(2508, 0); // TF_UI_LOCKED_DISPLAY_NEUTRAL
packet.AddState(2768, 0); // TF_UI_LOCKED_DISPLAY_HORDE
packet.AddState(2767, 1); // TF_UI_LOCKED_DISPLAY_ALLIANCE
}
break;
case 3521: // Zangarmarsh
if (pvp != null && pvp.GetTypeId() == OutdoorPvPTypes.Zangarmarsh)
pvp.FillInitialWorldStates(packet);
else
{
packet.AddState(2529, 0); // ZM_UNK_1
packet.AddState(2528, 0); // ZM_UNK_2
packet.AddState(2527, 0); // ZM_UNK_3
packet.AddState(2653, 1); // ZM_WORLDSTATE_UNK_1
packet.AddState(2652, 0); // ZM_MAP_TOWER_EAST_N
packet.AddState(2651, 1); // ZM_MAP_TOWER_EAST_H
packet.AddState(2650, 0); // ZM_MAP_TOWER_EAST_A
packet.AddState(2649, 1); // ZM_MAP_GRAVEYARD_H - Twin spire graveyard horde
packet.AddState(2648, 0); // ZM_MAP_GRAVEYARD_A
packet.AddState(2647, 0); // ZM_MAP_GRAVEYARD_N
packet.AddState(2646, 0); // ZM_MAP_TOWER_WEST_N
packet.AddState(2645, 1); // ZM_MAP_TOWER_WEST_H
packet.AddState(2644, 0); // ZM_MAP_TOWER_WEST_A
packet.AddState(2535, 0); // ZM_UNK_4
packet.AddState(2534, 0); // ZM_UNK_5
packet.AddState(2533, 0); // ZM_UNK_6
packet.AddState(2560, 0); // ZM_UI_TOWER_EAST_N
packet.AddState(2559, 1); // ZM_UI_TOWER_EAST_H
packet.AddState(2558, 0); // ZM_UI_TOWER_EAST_A
packet.AddState(2557, 0); // ZM_UI_TOWER_WEST_N
packet.AddState(2556, 1); // ZM_UI_TOWER_WEST_H
packet.AddState(2555, 0); // ZM_UI_TOWER_WEST_A
packet.AddState(2658, 0); // ZM_MAP_HORDE_FLAG_READY
packet.AddState(2657, 1); // ZM_MAP_HORDE_FLAG_NOT_READY
packet.AddState(2656, 1); // ZM_MAP_ALLIANCE_FLAG_NOT_READY
packet.AddState(2655, 0); // ZM_MAP_ALLIANCE_FLAG_READY
}
break;
default:
break;
}
SendPacket(packet);
SendBGWeekendWorldStates();
}
+7 -17
View File
@@ -73,20 +73,14 @@ namespace Game.PvP
return objective_changed;
}
public void SendUpdateWorldState(uint field, uint value)
public int GetWorldState(int worldStateId)
{
if (m_sendUpdate)
{
for (int i = 0; i < 2; ++i)
{
foreach (var guid in m_players[i])
{
Player player = Global.ObjAccessor.FindPlayer(guid);
if (player)
player.SendUpdateWorldState(field, value);
}
}
}
return Global.WorldStateMgr.GetValue(worldStateId, m_map);
}
public void SetWorldState(int worldStateId, int value)
{
Global.WorldStateMgr.SetValue(worldStateId, value, false, m_map);
}
public virtual void HandleKill(Player killer, Unit killed)
@@ -264,8 +258,6 @@ namespace Game.PvP
}
}
public virtual void FillInitialWorldStates(InitWorldStates data) { }
// setup stuff
public virtual bool SetupOutdoorPvP() { return true; }
@@ -672,8 +664,6 @@ namespace Game.PvP
return -1;
}
public virtual void FillInitialWorldStates(InitWorldStates data) { }
public virtual void ChangeState() { }
public virtual void ChangeTeam(uint oldTeam) { }
@@ -92,36 +92,31 @@ namespace Game.PvP
TeamCastSpell(TeamId.Alliance, -(int)OutdoorPvPHPSpells.AllianceBuff);
TeamCastSpell(TeamId.Horde, -(int)OutdoorPvPHPSpells.HordeBuff);
}
SendUpdateWorldState(OutdoorPvPHPWorldStates.Count_A, m_AllianceTowersControlled);
SendUpdateWorldState(OutdoorPvPHPWorldStates.Count_H, m_HordeTowersControlled);
SetWorldState(OutdoorPvPHPWorldStates.Count_A, (int)m_AllianceTowersControlled);
SetWorldState(OutdoorPvPHPWorldStates.Count_H, (int)m_HordeTowersControlled);
}
return changed;
}
public override void SendRemoveWorldStates(Player player)
{
player.SendUpdateWorldState(OutdoorPvPHPWorldStates.Display_A, 0);
player.SendUpdateWorldState(OutdoorPvPHPWorldStates.Display_H, 0);
player.SendUpdateWorldState(OutdoorPvPHPWorldStates.Count_H, 0);
player.SendUpdateWorldState(OutdoorPvPHPWorldStates.Count_A, 0);
InitWorldStates initWorldStates = new();
initWorldStates.MapID = player.GetMapId();
initWorldStates.AreaID = player.GetZoneId();
initWorldStates.SubareaID = player.GetAreaId();
initWorldStates.AddState(OutdoorPvPHPWorldStates.Display_A, 0);
initWorldStates.AddState(OutdoorPvPHPWorldStates.Display_H, 0);
initWorldStates.AddState(OutdoorPvPHPWorldStates.Count_H, 0);
initWorldStates.AddState(OutdoorPvPHPWorldStates.Count_A, 0);
for (int i = 0; i < (int)OutdoorPvPHPTowerType.Num; ++i)
{
player.SendUpdateWorldState(HPConst.Map_N[i], 0);
player.SendUpdateWorldState(HPConst.Map_A[i], 0);
player.SendUpdateWorldState(HPConst.Map_H[i], 0);
initWorldStates.AddState(HPConst.Map_N[i], 0);
initWorldStates.AddState(HPConst.Map_A[i], 0);
initWorldStates.AddState(HPConst.Map_H[i], 0);
}
}
public override void FillInitialWorldStates(InitWorldStates packet)
{
packet.AddState(OutdoorPvPHPWorldStates.Display_A, 1);
packet.AddState(OutdoorPvPHPWorldStates.Display_H, 1);
packet.AddState(OutdoorPvPHPWorldStates.Count_A, m_AllianceTowersControlled);
packet.AddState(OutdoorPvPHPWorldStates.Count_H, m_HordeTowersControlled);
foreach (var capture in m_capturePoints.Values)
capture.FillInitialWorldStates(packet);
player.SendPacket(initWorldStates);
}
public override void HandleKillImpl(Player killer, Unit killed)
@@ -207,7 +202,7 @@ namespace Game.PvP
// send world state update
if (field != 0)
{
PvP.SendUpdateWorldState(field, 0);
PvP.SetWorldState((int)field, 0);
field = 0;
}
uint artkit = 21;
@@ -268,40 +263,13 @@ namespace Game.PvP
// send world state update
if (field != 0)
PvP.SendUpdateWorldState(field, 1);
PvP.SetWorldState((int)field, 1);
// complete quest objective
if (State == ObjectiveStates.Alliance || State == ObjectiveStates.Horde)
SendObjectiveComplete(HPConst.CreditMarker[m_TowerType], ObjectGuid.Empty);
}
public override void FillInitialWorldStates(InitWorldStates packet)
{
switch (State)
{
case ObjectiveStates.Alliance:
case ObjectiveStates.AllianceHordeChallenge:
packet.AddState(HPConst.Map_N[m_TowerType], 0);
packet.AddState(HPConst.Map_A[m_TowerType], 1);
packet.AddState(HPConst.Map_H[m_TowerType], 0);
break;
case ObjectiveStates.Horde:
case ObjectiveStates.HordeAllianceChallenge:
packet.AddState(HPConst.Map_N[m_TowerType], 0);
packet.AddState(HPConst.Map_A[m_TowerType], 0);
packet.AddState(HPConst.Map_H[m_TowerType], 1);
break;
case ObjectiveStates.Neutral:
case ObjectiveStates.NeutralAllianceChallenge:
case ObjectiveStates.NeutralHordeChallenge:
default:
packet.AddState(HPConst.Map_N[m_TowerType], 1);
packet.AddState(HPConst.Map_A[m_TowerType], 0);
packet.AddState(HPConst.Map_H[m_TowerType], 0);
break;
}
}
uint m_TowerType;
}
@@ -322,11 +290,11 @@ namespace Game.PvP
public static uint[] LangCapture_H = { DefenseMessages.BrokenHillTakenHorde, DefenseMessages.OverlookTakenHorde, DefenseMessages.StadiumTakenHorde };
public static uint[] Map_N = { 0x9b5, 0x9b2, 0x9a8 };
public static uint[] Map_N = { 2485, 2482, 0x9a8 };
public static uint[] Map_A = { 0x9b3, 0x9b0, 0x9a7 };
public static uint[] Map_A = { 2483, 2480, 2471 };
public static uint[] Map_H = { 0x9b4, 0x9b1, 0x9a6 };
public static uint[] Map_H = { 2484, 2481, 2470 };
public static uint[] TowerArtKit_A = { 65, 62, 67 };
@@ -386,10 +354,10 @@ namespace Game.PvP
struct OutdoorPvPHPWorldStates
{
public const uint Display_A = 0x9ba;
public const uint Display_H = 0x9b9;
public const int Display_A = 0x9ba;
public const int Display_H = 0x9b9;
public const uint Count_H = 0x9ae;
public const uint Count_A = 0x9ac;
public const int Count_H = 0x9ae;
public const int Count_A = 0x9ac;
}
}
@@ -0,0 +1,107 @@
DELETE FROM `world_state` WHERE `ID` IN (2313,2314,2317,2322,2323,2324,2325,2470,2471,2472,2473,2474,2475,2476,2478,2480,2481,2482,2483,2484,2485,2489,2490,2491,2493,2494,2495,2497,2502,
2503,2508,2509,2510,2512,2527,2528,2529,2533,2534,2535,2555,2556,2557,2558,2559,2560,2620,2621,2622,2623,2624,2625,2644,2645,2646,2647,2648,2649,2650,2651,2652,2655,2656,2657,2658,2659,
2660,2661,2662,2663,2664,2665,2666,2667,2668,2669,2670,2671,2672,2673,2676,2677,2681,2682,2683,2684,2685,2686,2688,2689,2690,2691,2692,2693,2694,2695,2696,2760,2761,2762,2763,2767,2768);
INSERT INTO `world_state` (`ID`,`DefaultValue`,`MapIDs`,`AreaIDs`,`ScriptName`,`Comment`) VALUES
(2313,0,'1','1377','','Silithus - Alliance Silithyst Collected'),
(2314,0,'1','1377','','Silithus - Horde Silithyst Collected'),
(2317,200,'1','1377','','Silithus - Max Silithyst'),
(2322,0,'1','1377','','Silithus - Sandworm N (unused)'),
(2323,0,'1','1377','','Silithus - Sandworm S (unused)'),
(2324,0,'1','1377','','Silithus - Sandworm SW (unused)'),
(2325,0,'1','1377','','Silithus - Sandworm E (unused)'),
(2470,0,'530','3483','','Hellfire Peninsula - The Stadium - Horde Controlled'),
(2471,0,'530','3483','','Hellfire Peninsula - The Stadium - Alliance Controlled'),
(2472,1,'530','3483','','Hellfire Peninsula - The Stadium - Neutral'),
(2473,0,'530','3483','','Hellfire Peninsula - Show Fort capture bar'),
(2474,50,'530','3483','','Hellfire Peninsula - Fort CaptureBar Value'),
(2475,20,'530','3483','','Hellfire Peninsula - Fort CaptureBar Neutral Zone Size'),
(2476,0,'530','3483','','Hellfire Peninsula - Alliance Forts Controlled'),
(2478,0,'530','3483','','Hellfire Peninsula - Horde Forts Controlled'),
(2480,0,'530','3483','','Hellfire Peninsula - The Overlook - Alliance Controlled'),
(2481,0,'530','3483','','Hellfire Peninsula - The Overlook - Horde Controlled'),
(2482,1,'530','3483','','Hellfire Peninsula - The Overlook - Neutral'),
(2483,0,'530','3483','','Hellfire Peninsula - Broken Hill - Alliance Controlled'),
(2484,0,'530','3483','','Hellfire Peninsula - Broken Hill - Horde Controlled'),
(2485,1,'530','3483','','Hellfire Peninsula - Broken Hill - Neutral'),
(2489,1,'530','3483','','Hellfire Peninsula - Show Horde Forts Controlled'),
(2490,1,'530','3483','','Hellfire Peninsula - Show Alliance Forts Controlled'),
(2491,0,'530','3518','','Nagrand - Halaa - Guards Remaining'),
(2493,15,'530','3518','','Nagrand - Halaa - Guards Max'),
(2494,50,'530','3518','','Nagrand - Halaa - CaptureBar Value'),
(2495,0,'530','3518','','Nagrand - Halaa - Show capture bar'),
(2497,0,'530','3518','','Nagrand - Halaa - CaptureBar Neutral Zone Size'),
(2502,0,'530','3518','','Nagrand - Halaa - Show Alliance Guards Remaining'),
(2503,0,'530','3518','','Nagrand - Halaa - Show Horde Guards Remaining'),
(2508,0,'530','3519','','Terokkar Forest - Show Locked time remaining (Neutral)'),
(2509,0,'530','3519','','Terokkar Forest - Locked time remaining hours'),
(2510,0,'530','3519','','Terokkar Forest - Locked time remaining minutes first digit'),
(2512,0,'530','3519','','Terokkar Forest - Locked time remaining minutes second digit'),
(2527,0,'530','3521','','Zangarmarsh - West Beacon Show CaptureBar'),
(2528,50,'530','3521','','Zangarmarsh - West Beacon CaptureBar Value'),
(2529,80,'530','3521','','Zangarmarsh - West Beacon CaptureBar Neutral Zone Size'),
(2533,0,'530','3521','','Zangarmarsh - East Beacon Show CaptureBar'),
(2534,50,'530','3521','','Zangarmarsh - East Beacon CaptureBar Value'),
(2535,80,'530','3521','','Zangarmarsh - East Beacon CaptureBar Neutral Zone Size'),
(2555,0,'530','3521','','Zangarmarsh - West Beacon - Alliance Controlled widget'),
(2556,0,'530','3521','','Zangarmarsh - West Beacon - Horde Controlled widget'),
(2557,1,'530','3521','','Zangarmarsh - West Beacon - Neutral widget'),
(2558,0,'530','3521','','Zangarmarsh - East Beacon - Alliance Controlled widget'),
(2559,0,'530','3521','','Zangarmarsh - East Beacon - Horde Controlled widget'),
(2560,1,'530','3521','','Zangarmarsh - East Beacon - Neutral widget'),
(2620,1,'530','3519','','Terokkar Forest - Show Towers Controlled'),
(2621,0,'530','3519','','Terokkar Forest - Alliance Towers Controlled'),
(2622,0,'530','3519','','Terokkar Forest - Horde Towers Controlled'),
(2623,0,'530','3519','','Terokkar Forest - Show Tower capture bar'),
(2624,80,'530','3519','','Terokkar Forest - Tower CaptureBar Neutral Zone Size'),
(2625,50,'530','3519','','Terokkar Forest - Tower CaptureBar Value'),
(2644,0,'530','3521','','Zangarmarsh - West Beacon - Alliance Controlled POI'),
(2645,0,'530','3521','','Zangarmarsh - West Beacon - Horde Controlled POI'),
(2646,1,'530','3521','','Zangarmarsh - West Beacon POI'),
(2647,1,'530','3521','','Zangarmarsh - Twinspire Graveyard'),
(2648,0,'530','3521','','Zangarmarsh - Twinspire Graveyard - Alliance Controlled'),
(2649,0,'530','3521','','Zangarmarsh - Twinspire Graveyard - Horde Controlled'),
(2650,0,'530','3521','','Zangarmarsh - East Beacon - Alliance Controlled POI'),
(2651,0,'530','3521','','Zangarmarsh - East Beacon - Horde Controlled POI'),
(2652,1,'530','3521','','Zangarmarsh - East Beacon POI'),
(2655,0,'530','3521','','Zangarmarsh - Alliance Field Scout (ready)'),
(2656,1,'530','3521','','Zangarmarsh - Alliance Field Scout (not ready)'),
(2657,1,'530','3521','','Zangarmarsh - Horde Field Scout (not ready)'),
(2658,0,'530','3521','','Zangarmarsh - Horde Field Scout (ready)'),
(2659,0,'530','3518','','Nagrand - Wyvern Camp (East) - Alliance Uncontrolled'),
(2660,0,'530','3518','','Nagrand - Wyvern Camp (East) - Horde Controlled'),
(2661,0,'530','3518','','Nagrand - Wyvern Camp (East) - Alliance Controlled'),
(2662,0,'530','3518','','Nagrand - Wyvern Camp (North) - Alliance Uncontrolled'),
(2663,0,'530','3518','','Nagrand - Wyvern Camp (North) - Horde Controlled'),
(2664,0,'530','3518','','Nagrand - Wyvern Camp (North) - Alliance Controlled'),
(2665,0,'530','3518','','Nagrand - Wyvern Camp (West) - Horde Controlled'),
(2666,0,'530','3518','','Nagrand - Wyvern Camp (West) - Alliance Controlled'),
(2667,0,'530','3518','','Nagrand - Wyvern Camp (West) - Alliance Uncontrolled'),
(2668,0,'530','3518','','Nagrand - Wyvern Camp (South) - Horde Controlled'),
(2669,0,'530','3518','','Nagrand - Wyvern Camp (South) - Alliance Controlled'),
(2670,0,'530','3518','','Nagrand - Wyvern Camp (South) - Alliance Uncontrolled'),
(2671,1,'530','3518','','Nagrand - Halaa - Uncontrolled'),
(2672,0,'530','3518','','Nagrand - Halaa - Horde Controlled'),
(2673,0,'530','3518','','Nagrand - Halaa - Alliance Controlled'),
(2676,0,'530','3518','','Nagrand - Halaa - Alliance Capturing'),
(2677,0,'530','3518','','Nagrand - Halaa - Horde Capturing'),
(2681,1,'530','3519','','Terokkar Forest - Spirit Tower (NW) - Neutral'),
(2682,0,'530','3519','','Terokkar Forest - Spirit Tower (NW) - Horde Controlled'),
(2683,0,'530','3519','','Terokkar Forest - Spirit Tower (NW) - Alliance Controlled'),
(2684,0,'530','3519','','Terokkar Forest - Spirit Tower (N) - Alliance Controlled'),
(2685,0,'530','3519','','Terokkar Forest - Spirit Tower (N) - Horde Controlled'),
(2686,1,'530','3519','','Terokkar Forest - Spirit Tower (N) - Neutral'),
(2688,0,'530','3519','','Terokkar Forest - Spirit Tower (NE) - Alliance Controlled'),
(2689,0,'530','3519','','Terokkar Forest - Spirit Tower (NE) - Horde Controlled'),
(2690,1,'530','3519','','Terokkar Forest - Spirit Tower (NE) - Neutral'),
(2691,0,'530','3519','','Terokkar Forest - Spirit Tower (S) - Alliance Controlled'),
(2692,0,'530','3519','','Terokkar Forest - Spirit Tower (S) - Horde Controlled'),
(2693,1,'530','3519','','Terokkar Forest - Spirit Tower (S) - Neutral'),
(2694,0,'530','3519','','Terokkar Forest - Spirit Tower (SE) - Alliance Controlled'),
(2695,0,'530','3519','','Terokkar Forest - Spirit Tower (SE) - Horde Controlled'),
(2696,1,'530','3519','','Terokkar Forest - Spirit Tower (SE) - Neutral'),
(2760,0,'530','3518','','Nagrand - Wyvern Camp (South) - Horde Uncontrolled'),
(2761,0,'530','3518','','Nagrand - Wyvern Camp (West) - Horde Uncontrolled'),
(2762,0,'530','3518','','Nagrand - Wyvern Camp (North) - Horde Uncontrolled'),
(2763,0,'530','3518','','Nagrand - Wyvern Camp (East) - Horde Uncontrolled'),
(2767,0,'530','3519','','Terokkar Forest - Show Locked time remaining (Alliance)'),
(2768,0,'530','3519','','Terokkar Forest - Show Locked time remaining (Horde)');