mirror of
https://github.com/liyunfan1223/azerothcore-wotlk.git
synced 2026-08-08 15:58:04 +00:00
feat(Core/Wintergrasp): Save win/loss totals for faction (#11056)
This commit is contained in:
@@ -476,9 +476,19 @@ void BattlefieldWG::OnBattleEnd(bool endByTimer)
|
|||||||
m_PlayersInWar[TEAM_HORDE].clear();
|
m_PlayersInWar[TEAM_HORDE].clear();
|
||||||
|
|
||||||
if (!endByTimer) // win alli/horde
|
if (!endByTimer) // win alli/horde
|
||||||
|
{
|
||||||
|
uint32 const worldStateId = GetDefenderTeam() == TEAM_ALLIANCE ? WORLDSTATE_ALLIANCE_KEEP_CAPTURED : WORLDSTATE_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));
|
SendWarning((GetDefenderTeam() == TEAM_ALLIANCE) ? BATTLEFIELD_WG_TEXT_WIN_KEEP : (BATTLEFIELD_WG_TEXT_WIN_KEEP + 2));
|
||||||
|
}
|
||||||
else // defend alli/horde
|
else // defend alli/horde
|
||||||
|
{
|
||||||
|
uint32 const worldStateId = GetDefenderTeam() == TEAM_ALLIANCE ? WORLDSTATE_ALLIANCE_KEEP_DEFENDED : WORLDSTATE_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));
|
SendWarning((GetDefenderTeam() == TEAM_ALLIANCE) ? BATTLEFIELD_WG_TEXT_DEFEND_KEEP : (BATTLEFIELD_WG_TEXT_DEFEND_KEEP + 2));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// *******************************************************
|
// *******************************************************
|
||||||
@@ -898,6 +908,11 @@ void BattlefieldWG::FillInitialWorldStates(WorldPacket& data)
|
|||||||
data << uint32(BATTLEFIELD_WG_WORLD_STATE_VEHICLE_A) << uint32(GetData(BATTLEFIELD_WG_DATA_VEHICLE_A));
|
data << uint32(BATTLEFIELD_WG_WORLD_STATE_VEHICLE_A) << uint32(GetData(BATTLEFIELD_WG_DATA_VEHICLE_A));
|
||||||
data << uint32(BATTLEFIELD_WG_WORLD_STATE_MAX_VEHICLE_A) << GetData(BATTLEFIELD_WG_DATA_MAX_VEHICLE_A);
|
data << uint32(BATTLEFIELD_WG_WORLD_STATE_MAX_VEHICLE_A) << GetData(BATTLEFIELD_WG_DATA_MAX_VEHICLE_A);
|
||||||
|
|
||||||
|
data << uint32(WORLDSTATE_HORDE_KEEP_CAPTURED) << uint32(sWorld->getWorldState(WORLDSTATE_HORDE_KEEP_CAPTURED));
|
||||||
|
data << uint32(WORLDSTATE_HORDE_KEEP_DEFENDED) << uint32(sWorld->getWorldState(WORLDSTATE_HORDE_KEEP_DEFENDED));
|
||||||
|
data << uint32(WORLDSTATE_ALLIANCE_KEEP_CAPTURED) << uint32(sWorld->getWorldState(WORLDSTATE_ALLIANCE_KEEP_CAPTURED));
|
||||||
|
data << uint32(WORLDSTATE_ALLIANCE_KEEP_DEFENDED) << uint32(sWorld->getWorldState(WORLDSTATE_ALLIANCE_KEEP_DEFENDED));
|
||||||
|
|
||||||
for (GameObjectBuilding::const_iterator itr = BuildingsInZone.begin(); itr != BuildingsInZone.end(); ++itr)
|
for (GameObjectBuilding::const_iterator itr = BuildingsInZone.begin(); itr != BuildingsInZone.end(); ++itr)
|
||||||
data << (*itr)->m_WorldState << (*itr)->m_State;
|
data << (*itr)->m_WorldState << (*itr)->m_State;
|
||||||
|
|
||||||
@@ -913,7 +928,7 @@ void BattlefieldWG::SendInitWorldStatesTo(Player* player)
|
|||||||
data << uint32(m_MapId);
|
data << uint32(m_MapId);
|
||||||
data << uint32(m_ZoneId);
|
data << uint32(m_ZoneId);
|
||||||
data << uint32(0);
|
data << uint32(0);
|
||||||
data << uint16(10 + BuildingsInZone.size() + WorkshopsList.size()); // Number of fields
|
data << uint16(14 + BuildingsInZone.size() + WorkshopsList.size()); // Number of fields
|
||||||
|
|
||||||
FillInitialWorldStates(data);
|
FillInitialWorldStates(data);
|
||||||
|
|
||||||
|
|||||||
@@ -523,7 +523,11 @@ enum WintergraspWorldstates
|
|||||||
WORLDSTATE_WORKSHOP_SE = 3703,
|
WORLDSTATE_WORKSHOP_SE = 3703,
|
||||||
WORLDSTATE_WORKSHOP_SW = 3702,
|
WORLDSTATE_WORKSHOP_SW = 3702,
|
||||||
WORLDSTATE_WORKSHOP_K_W = 3698,
|
WORLDSTATE_WORKSHOP_K_W = 3698,
|
||||||
WORLDSTATE_WORKSHOP_K_E = 3699
|
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 ?
|
// TODO: Handle this with creature_text ?
|
||||||
|
|||||||
Reference in New Issue
Block a user