diff --git a/sql/updates/world/4.3.4/2022_10_09_04_world.sql b/sql/updates/world/4.3.4/2022_10_09_04_world.sql new file mode 100644 index 0000000000..1b533f24d7 --- /dev/null +++ b/sql/updates/world/4.3.4/2022_10_09_04_world.sql @@ -0,0 +1,55 @@ +DELETE FROM `world_state` WHERE `ID` IN (5332,5333,5334,5344,5346,5347,5348,5349,5350,5384,5385,5387,5418,5419,5420,5421,5422,5423,5424,5425,5426,5427,5428,5429,5430,5431,5432,5433,5434,5435,5436,5437,5438,5439,5440,5441,5442,5443,5444,5445,5446,5447,5451,5452,5453,5454,5455,5456,5469,5470,5546,5547,5684); +INSERT INTO `world_state` (`ID`, `DefaultValue`, `MapIDs`, `AreaIDs`, `ScriptName`, `Comment`) VALUES +(5332, 0, '732', '5095,5389', '', 'Tol Barad - Next battle start time'), +(5333, 0, '732', '5095', '', 'Tol Barad - Battle end time'), +(5334, 0, '732', '5095,5389', '', 'Tol Barad - Controlling faction'), +(5344, 0, '732', '5095', '', 'Tol Barad - In progress'), +(5346, 0, '732', '5095', '', 'Tol Barad - Show timer to battle end'), +(5347, 0, '732', '5095', '', 'Tol Barad - Number of destroyed towers'), +(5348, 0, '732', '5095', '', 'Tol Barad - Number of captured buildings'), +(5349, 0, '732', '5095', '', 'Tol Barad - Show number of captured buildings'), +(5350, 0, '732', '5095', '', 'Tol Barad - Show number of destroyed towers'), +(5384, 0, '732', '5095,5389', '', 'Tol Barad - Show if Horde is controlling'), +(5385, 0, '732', '5095,5389', '', 'Tol Barad - Show if Alliance is controlling'), +(5387, 0, '732', '5095,5389', '', 'Tol Barad - Show timer for next battle'), +(5418, 0, '732', '5095', '', 'Tol Barad - Ironclad Garrison controlled by Horde'), +(5419, 0, '732', '5095', '', 'Tol Barad - Ironclad Garrison being captured by Horde'), +(5420, 0, '732', '5095', '', 'Tol Barad - Ironclad Garrison neutral'), +(5421, 0, '732', '5095', '', 'Tol Barad - Ironclad Garrison being captured by Alliance'), +(5422, 0, '732', '5095', '', 'Tol Barad - Ironclad Garrison controlled by Alliance'), +(5423, 0, '732', '5095', '', 'Tol Barad - Warden\'s Vigil controlled by Horde'), +(5424, 0, '732', '5095', '', 'Tol Barad - Warden\'s Vigil being captured by Horde'), +(5425, 0, '732', '5095', '', 'Tol Barad - Warden\'s Vigil neutral'), +(5426, 0, '732', '5095', '', 'Tol Barad - Warden\'s Vigil being captured by Alliance'), +(5427, 0, '732', '5095', '', 'Tol Barad - Warden\'s Vigil controlled by Alliance'), +(5428, 0, '732', '5095', '', 'Tol Barad - Slagworks controlled by Horde'), +(5429, 0, '732', '5095', '', 'Tol Barad - Slagworks being captured by Horde'), +(5430, 0, '732', '5095', '', 'Tol Barad - Slagworks neutral'), +(5431, 0, '732', '5095', '', 'Tol Barad - Slagworks being captured by Alliance'), +(5432, 0, '732', '5095', '', 'Tol Barad - Slagworks controlled by Alliance'), +(5433, 0, '732', '5095', '', 'Tol Barad - West Spire Horde controlled'), +(5434, 0, '732', '5095', '', 'Tol Barad - West Spire Horde controlled, damaged'), +(5435, 0, '732', '5095', '', 'Tol Barad - West Spire destroyed'), +(5436, 0, '732', '5095', '', 'Tol Barad - West Spire Alliance controlled'), +(5437, 0, '732', '5095', '', 'Tol Barad - West Spire Alliance controlled, damaged'), +(5438, 0, '732', '5095', '', 'Tol Barad - South Spire Horde controlled'), +(5439, 0, '732', '5095', '', 'Tol Barad - South Spire Horde controlled, damaged'), +(5440, 0, '732', '5095', '', 'Tol Barad - South Spire destroyed'), +(5441, 0, '732', '5095', '', 'Tol Barad - South Spire Alliance controlled'), +(5442, 0, '732', '5095', '', 'Tol Barad - South Spire Alliance controlled, damaged'), +(5443, 0, '732', '5095', '', 'Tol Barad - East Spire Horde controlled'), +(5444, 0, '732', '5095', '', 'Tol Barad - East Spire Horde controlled, damaged'), +(5445, 0, '732', '5095', '', 'Tol Barad - East Spire destroyed'), +(5446, 0, '732', '5095', '', 'Tol Barad - East Spire Alliance controlled'), +(5447, 0, '732', '5095', '', 'Tol Barad - East Spire Alliance controlled, damaged'), +(5451, 0, '732', '5095', '', 'Tol Barad - East Spire uncontrolled'), +(5452, 0, '732', '5095', '', 'Tol Barad - East Spire damaged'), +(5453, 0, '732', '5095', '', 'Tol Barad - West Spire uncontrolled'), +(5454, 0, '732', '5095', '', 'Tol Barad - West Spire damaged'), +(5455, 0, '732', '5095', '', 'Tol Barad - South Spire uncontrolled'), +(5456, 0, '732', '5095', '', 'Tol Barad - South Spire damaged'), +(5469, 0, '732', '5095', '', 'Tol Barad - Baradin Hold controlled by Horde'), +(5470, 0, '732', '5095', '', 'Tol Barad - Baradin Hold controlled by Alliance'), +(5546, 0, '732', '5095,5389', '', 'Tol Barad - Show if Alliance is attacking'), +(5547, 0, '732', '5095,5389', '', 'Tol Barad - Show if Horde is attacking'), +(5684, 0, '732', '5095', '', 'Tol Barad - Preparation'); diff --git a/src/server/game/Battlefield/Battlefield.cpp b/src/server/game/Battlefield/Battlefield.cpp index 6160073fb0..c7aae6ebd0 100644 --- a/src/server/game/Battlefield/Battlefield.cpp +++ b/src/server/game/Battlefield/Battlefield.cpp @@ -451,25 +451,6 @@ void Battlefield::SendWarning(uint8 id, WorldObject const* target /*= nullptr*/) sCreatureTextMgr->SendChat(stalker, id, target); } -void Battlefield::SendInitWorldStatesTo(Player* player) -{ - WorldPackets::WorldState::InitWorldStates packet; - packet.MapID = m_MapId; - packet.AreaID = m_ZoneId; - packet.SubareaID = player->GetAreaId(); - FillInitialWorldStates(packet); - - player->SendDirectMessage(packet.Write()); -} - -void Battlefield::SendUpdateWorldState(uint32 field, uint32 value) -{ - for (uint8 i = 0; i < BG_TEAMS_COUNT; ++i) - for (auto itr = m_players[i].begin(); itr != m_players[i].end(); ++itr) - if (Player* player = ObjectAccessor::FindPlayer(*itr)) - player->SendUpdateWorldState(field, value); -} - void Battlefield::RegisterZone(uint32 zoneId) { sBattlefieldMgr->AddZone(zoneId, this); diff --git a/src/server/game/Battlefield/Battlefield.h b/src/server/game/Battlefield/Battlefield.h index f814a20baf..7752b99557 100644 --- a/src/server/game/Battlefield/Battlefield.h +++ b/src/server/game/Battlefield/Battlefield.h @@ -97,8 +97,6 @@ class TC_GAME_API BfCapturePoint virtual ~BfCapturePoint() { } - virtual void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& /*data*/) { } - // Send world state update to all players present void SendUpdateWorldState(uint32 field, uint32 value); @@ -221,11 +219,6 @@ class TC_GAME_API Battlefield : public ZoneScript /// Call this to init the Battlefield virtual bool SetupBattlefield() { return true; } - void SendInitWorldStatesTo(Player* player); - - /// Update data of a worldstate to all players present in zone - void SendUpdateWorldState(uint32 field, uint32 value); - /** * \brief Called every time for update bf data and time * - Update timer for start/end battle @@ -343,10 +336,6 @@ class TC_GAME_API Battlefield : public ZoneScript virtual void DoCompleteOrIncrementAchievement(uint32 /*achievement*/, Player* /*player*/, uint8 /*incrementNumber = 1*/) { } - /// Send all worldstate data to all player in zone. - virtual void SendInitWorldStatesToAll() = 0; - virtual void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& /*data*/) = 0; - /// Return if we can use mount in battlefield bool CanFlyIn() { return !m_isActive; } diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 77ef654da9..66742788bf 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -8789,7 +8789,6 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId) uint32 mapid = GetMapId(); OutdoorPvP* pvp = sOutdoorPvPMgr->GetOutdoorPvPToZoneId(zoneId); InstanceScript* instance = GetInstanceScript(); - Battlefield* bf = sBattlefieldMgr->GetBattlefieldToZoneId(zoneId); TC_LOG_DEBUG("network", "Sending SMSG_INIT_WORLD_STATES to Map: %u, Zone: %u", mapid, zoneId); @@ -9391,29 +9390,12 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId) if (bg && bg->GetTypeID(true) == BATTLEGROUND_BFG) bg->FillInitialWorldStates(packet); break; - // Tol Barad Peninsula - case 5389: - if (sWorld->getBoolConfig(CONFIG_TOLBARAD_ENABLE)) - { - packet.Worldstates.emplace_back(WS_BATTLEFIELD_TB_ALLIANCE_CONTROLS_SHOW, sWorld->getWorldState(WS_BATTLEFIELD_TB_ALLIANCE_CONTROLS_SHOW)); - packet.Worldstates.emplace_back(WS_BATTLEFIELD_TB_HORDE_CONTROLS_SHOW, sWorld->getWorldState(WS_BATTLEFIELD_TB_HORDE_CONTROLS_SHOW)); - packet.Worldstates.emplace_back(WS_BATTLEFIELD_TB_TIME_NEXT_BATTLE_SHOW, sWorld->getWorldState(WS_BATTLEFIELD_TB_TIME_NEXT_BATTLE_SHOW)); - packet.Worldstates.emplace_back(WS_BATTLEFIELD_TB_ALLIANCE_ATTACKING_SHOW, sWorld->getWorldState(WS_BATTLEFIELD_TB_ALLIANCE_ATTACKING_SHOW)); - packet.Worldstates.emplace_back(WS_BATTLEFIELD_TB_HORDE_ATTACKING_SHOW, sWorld->getWorldState(WS_BATTLEFIELD_TB_HORDE_ATTACKING_SHOW)); - } - break; - // Tol Barad - case 5095: - if (bf && bf->GetTypeId() == BATTLEFIELD_TB) - bf->FillInitialWorldStates(packet); - break; default: break; } SendDirectMessage(packet.Write()); SendBGWeekendWorldStates(); - SendBattlefieldWorldStates(); } void Player::SendBGWeekendWorldStates() const @@ -9431,21 +9413,6 @@ void Player::SendBGWeekendWorldStates() const } } -void Player::SendBattlefieldWorldStates() const -{ - /// Send misc stuff that needs to be sent on every login, like the battle timers. - if (sWorld->getBoolConfig(CONFIG_TOLBARAD_ENABLE)) - { - if (Battlefield* tb = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_TB)) - { - SendUpdateWorldState(WS_BATTLEFIELD_TB_FACTION_CONTROLLING, uint32(tb->GetDefenderTeam() + 1)); - uint32 timer = tb->GetTimer() / 1000; - SendUpdateWorldState(WS_BATTLEFIELD_TB_TIME_BATTLE_END, uint32(tb->IsWarTime() ? uint32(GameTime::GetGameTime() + timer) : 0)); - SendUpdateWorldState(WS_BATTLEFIELD_TB_TIME_NEXT_BATTLE, uint32(!tb->IsWarTime() ? uint32(GameTime::GetGameTime() + timer) : 0)); - } - } -} - uint32 Player::GetXPRestBonus(uint32 xp) { uint32 rested_bonus = (uint32)GetRestBonus(); // xp for each rested bonus diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index eb4df8dca2..5123316da6 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -2053,7 +2053,6 @@ class TC_GAME_API Player : public Unit, public GridObject void SendUpdateWorldState(uint32 variable, uint32 value, bool hidden = false) const; void SendDirectMessage(WorldPacket const* data) const; void SendBGWeekendWorldStates() const; - void SendBattlefieldWorldStates() const; void SendAurasForTarget(Unit* target) const; diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h index 18efcb9fd5..28de75ee34 100644 --- a/src/server/game/Miscellaneous/SharedDefines.h +++ b/src/server/game/Miscellaneous/SharedDefines.h @@ -4400,10 +4400,6 @@ enum WorldState : uint32 WS_BATTLEFIELD_TB_STATE_PREPARATIONS = 5684, WS_BATTLEFIELD_TB_STATE_BATTLE = 5344, - WS_BATTLEFIELD_TB_PROGRESS_SHOW = 5376, - WS_BATTLEFIELD_TB_PROGRESS = 5377, // 0 horde, 100 alliance - WS_BATTLEFIELD_TB_PROGRESS_PERCENT_GREY = 5378, - WS_BATTLEFIELD_TB_KEEP_HORDE = 5469, WS_BATTLEFIELD_TB_KEEP_ALLIANCE = 5470, diff --git a/src/server/scripts/Battlefield/BattlefieldTB.cpp b/src/server/scripts/Battlefield/BattlefieldTB.cpp index 62bce6498d..ff40adb6a6 100644 --- a/src/server/scripts/Battlefield/BattlefieldTB.cpp +++ b/src/server/scripts/Battlefield/BattlefieldTB.cpp @@ -35,7 +35,6 @@ #include "ScriptMgr.h" #include "World.h" #include "WorldStateMgr.h" -#include "WorldStatePackets.h" const uint32 TBFactions[BG_TEAMS_COUNT] = { 1610, 1732 }; @@ -316,8 +315,16 @@ bool BattlefieldTB::SetupBattlefield() // Set defender team SetDefenderTeam(TeamId(sWorld->getWorldState(WS_BATTLEFIELD_TB_FACTION_CONTROLLING) - 1)); - // Just to save world states - SendInitWorldStatesToAll(); + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TIME_NEXT_BATTLE_SHOW, 1, m_Map); + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TIME_NEXT_BATTLE, GameTime::GetGameTime() + m_Timer / IN_MILLISECONDS, m_Map); + + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_FACTION_CONTROLLING, GetDefenderTeam() + 1, m_Map); + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_ALLIANCE_CONTROLS_SHOW, GetDefenderTeam() == TEAM_ALLIANCE ? 1 : 0, m_Map); + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_HORDE_CONTROLS_SHOW, GetDefenderTeam() == TEAM_HORDE ? 1 : 0, m_Map); + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_KEEP_ALLIANCE, GetDefenderTeam() == TEAM_ALLIANCE ? 1 : 0, m_Map); + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_KEEP_HORDE, GetDefenderTeam() == TEAM_HORDE ? 1 : 0, m_Map); + + SaveWorldStateValues(); // Create capture points for (uint8 i = 0; i < TB_BASE_COUNT; i++) @@ -406,8 +413,7 @@ bool BattlefieldTB::Update(uint32 diff) if (m_saveTimer <= diff) { - if (!IsWarTime()) - sWorld->setWorldState(WS_BATTLEFIELD_TB_TIME_NEXT_BATTLE, m_Timer); + SaveWorldStateValues(); m_saveTimer = 60 * IN_MILLISECONDS; } else @@ -420,8 +426,6 @@ void BattlefieldTB::OnPlayerEnterZone(Player* player) { if (!m_isActive) RemoveAurasFromPlayer(player); - - SendInitWorldStatesTo(player); } void BattlefieldTB::OnPlayerLeaveZone(Player* player) @@ -437,15 +441,14 @@ void BattlefieldTB::OnPlayerJoinWar(Player* player) player->SetPvP(true); // Bonus damage buff for attackers - if (player->GetTeam() == GetAttackerTeam() && GetData(BATTLEFIELD_TB_DATA_TOWERS_DESTROYED) > 0) + if (player->GetTeamId() == GetAttackerTeam()) { - CastSpellExtraArgs args(TRIGGERED_FULL_MASK); - args.AddSpellMod(SPELLVALUE_AURA_STACK, GetData(BATTLEFIELD_TB_DATA_TOWERS_DESTROYED)); - player->CastSpell(player, SPELL_TOWER_ATTACK_BONUS, args); + int32 towersDestroyed = sWorldStateMgr->GetValue(WS_BATTLEFIELD_TB_TOWERS_DESTROYED, m_Map); + if (towersDestroyed > 0) + player->CastSpell(player, SPELL_TOWER_ATTACK_BONUS, CastSpellExtraArgs(TRIGGERED_FULL_MASK).AddSpellMod(SPELLVALUE_AURA_STACK, towersDestroyed)); } } - void BattlefieldTB::OnPlayerLeaveWar(Player* player) { RemoveAurasFromPlayer(player); @@ -459,165 +462,18 @@ void BattlefieldTB::RemoveAurasFromPlayer(Player* player) player->RemoveAurasDueToSpell(SPELL_TB_SPIRITUAL_IMMUNITY); } -// 62 fields, [7]-[68] -void BattlefieldTB::FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) +void BattlefieldTB::SaveWorldStateValues() { - packet.Worldstates.emplace_back(uint32(WS_BATTLEFIELD_TB_ALLIANCE_ATTACKING_SHOW), int32(IsWarTime() && GetAttackerTeam() == TEAM_ALLIANCE ? 1 : 0)); - packet.Worldstates.emplace_back(uint32(WS_BATTLEFIELD_TB_HORDE_ATTACKING_SHOW), int32(IsWarTime() && GetAttackerTeam() == TEAM_HORDE ? 1 : 0)); - - // Not sure if TB - //packet.Worldstates.emplace_back(uint32(WS_BATTLEFIELD_TB_9_UNKNOWN), int32(1)); - - packet.Worldstates.emplace_back(uint32(WS_BATTLEFIELD_TB_SOUTH_DAMAGED_NEUTRAL), int32(0)); - packet.Worldstates.emplace_back(uint32(WS_BATTLEFIELD_TB_SOUTH_INTACT_NEUTRAL), int32(0)); - - packet.Worldstates.emplace_back(uint32(WS_BATTLEFIELD_TB_PROGRESS_SHOW), int32(0)); - - // Buildings/bases - for (BfCapturePointMap::iterator itr = m_capturePoints.begin(); itr != m_capturePoints.end(); ++itr) - { - uint8 i = TB_BASE_COUNT; - switch (itr->second->GetCapturePointEntry()) - { - case GO_CAPTURE_POINT_NORTH_A_DEFENDING: - case GO_CAPTURE_POINT_NORTH_H_DEFENDING: - i = TB_BASE_IRONCLAD_GARRISON; - break; - case GO_CAPTURE_POINT_EAST_A_DEFENDING: - case GO_CAPTURE_POINT_EAST_H_DEFENDING: - i = TB_BASE_SLAGWORKS; - break; - case GO_CAPTURE_POINT_WEST_A_DEFENDING: - case GO_CAPTURE_POINT_WEST_H_DEFENDING: - i = TB_BASE_WARDENS_VIGIL; - break; - default: - continue; - } - - TeamId team = TEAM_NEUTRAL; - bool controlled = false; - bool capturing = false; - - switch (itr->second->GetObjectiveState()) - { - case BF_CAPTUREPOINT_OBJECTIVESTATE_ALLIANCE: - case BF_CAPTUREPOINT_OBJECTIVESTATE_HORDE: - controlled = true; - team = itr->second->GetTeamId(); - break; - case BF_CAPTUREPOINT_OBJECTIVESTATE_HORDE_ALLIANCE_CHALLENGE: - case BF_CAPTUREPOINT_OBJECTIVESTATE_NEUTRAL_ALLIANCE_CHALLENGE: - team = TEAM_ALLIANCE; - capturing = true; - break; - case BF_CAPTUREPOINT_OBJECTIVESTATE_ALLIANCE_HORDE_CHALLENGE: - case BF_CAPTUREPOINT_OBJECTIVESTATE_NEUTRAL_HORDE_CHALLENGE: - team = TEAM_HORDE; - capturing = true; - break; - default: - team = TEAM_NEUTRAL; - break; - } - - packet.Worldstates.emplace_back(uint32(TBCapturePoints[i].wsControlled[TEAM_ALLIANCE]), int32(team == TEAM_ALLIANCE && controlled ? 1 : 0)); - packet.Worldstates.emplace_back(uint32(TBCapturePoints[i].wsCapturing[TEAM_ALLIANCE]), int32(team == TEAM_ALLIANCE && capturing ? 1 : 0)); - packet.Worldstates.emplace_back(uint32(TBCapturePoints[i].wsNeutral), int32(team == TEAM_NEUTRAL ? 1 : 0)); - packet.Worldstates.emplace_back(uint32(TBCapturePoints[i].wsCapturing[TEAM_HORDE]), int32(team == TEAM_HORDE && capturing ? 1 : 0)); - packet.Worldstates.emplace_back(uint32(TBCapturePoints[i].wsControlled[TEAM_HORDE]), int32(team == TEAM_HORDE && controlled ? 1 : 0)); - } - - packet.Worldstates.emplace_back(uint32(WS_BATTLEFIELD_TB_TOWERS_DESTROYED_SHOW), int32(GetData(BATTLEFIELD_TB_DATA_TOWERS_DESTROYED))); - packet.Worldstates.emplace_back(uint32(WS_BATTLEFIELD_TB_BUILDINGS_CAPTURED_SHOW), int32(IsWarTime() ? 1 : 0)); - packet.Worldstates.emplace_back(uint32(WS_BATTLEFIELD_TB_BUILDINGS_CAPTURED), int32(GetData(BATTLEFIELD_TB_DATA_BUILDINGS_CAPTURED))); - packet.Worldstates.emplace_back(uint32(WS_BATTLEFIELD_TB_TOWERS_DESTROYED), int32(0)); - - packet.Worldstates.emplace_back(uint32(WS_BATTLEFIELD_TB_TIME_BATTLE_END_SHOW), int32(IsWarTime() ? 1 : 0)); - - packet.Worldstates.emplace_back(uint32(WS_BATTLEFIELD_TB_STATE_BATTLE), int32(IsWarTime() ? 1 : 0)); - packet.Worldstates.emplace_back(uint32(WS_BATTLEFIELD_TB_STATE_PREPARATIONS), int32(GetState() == BATTLEFIELD_WARMUP ? 1 : 0)); - - // Not sure if TB - //packet.Worldstates.emplace_back(uint32(WS_BATTLEFIELD_TB_35_UNKNOWN), int32(0)); - //packet.Worldstates.emplace_back(uint32(WS_BATTLEFIELD_TB_36_UNKNOWN), int32(0)); - //packet.Worldstates.emplace_back(uint32(WS_BATTLEFIELD_TB_37_UNKNOWN), int32(0)); - - // Unused tower icons - packet.Worldstates.emplace_back(uint32(WS_BATTLEFIELD_TB_WEST_DAMAGED_NEUTRAL), int32(0)); - packet.Worldstates.emplace_back(uint32(WS_BATTLEFIELD_TB_WEST_INTACT_NEUTRAL), int32(0)); - packet.Worldstates.emplace_back(uint32(WS_BATTLEFIELD_TB_EAST_DAMAGED_NEUTRAL), int32(0)); - packet.Worldstates.emplace_back(uint32(WS_BATTLEFIELD_TB_EAST_INTACT_NEUTRAL), int32(0)); - - // Towers/spires - for (uint8 i = 0; i < TB_TOWERS_COUNT; i++) - { - // Find gameobject - for (ObjectGuid guid : Towers) - { - GameObject* tower = GetGameObject(guid); - if (!tower || tower->GetEntry() != TBTowers[i].entry) - continue; - - TeamId team = GetDefenderTeam(); // 0-false -> alliance; 1-true -> horde - bool intact = tower->GetDestructibleState() == GO_DESTRUCTIBLE_INTACT; - bool damaged = tower->GetDestructibleState() == GO_DESTRUCTIBLE_DAMAGED; - bool destroyed = tower->GetDestructibleState() == GO_DESTRUCTIBLE_DESTROYED; - - packet.Worldstates.emplace_back(uint32(TBTowers[i].wsIntact[TEAM_ALLIANCE]), int32(!team && intact ? 1 : 0)); - packet.Worldstates.emplace_back(uint32(TBTowers[i].wsDamaged[TEAM_ALLIANCE]), int32(!team && damaged ? 1 : 0)); - packet.Worldstates.emplace_back(uint32(TBTowers[i].wsDestroyed), int32(destroyed ? 1 : 0)); - packet.Worldstates.emplace_back(uint32(TBTowers[i].wsDamaged[TEAM_HORDE]), int32(team && damaged ? 1 : 0)); - packet.Worldstates.emplace_back(uint32(TBTowers[i].wsIntact[TEAM_HORDE]), int32(team && intact ? 1 : 0)); - } - } - - packet.Worldstates.emplace_back(uint32(WS_BATTLEFIELD_TB_TIME_NEXT_BATTLE_SHOW), int32(!IsWarTime() ? 1 : 0)); - - packet.Worldstates.emplace_back(uint32(WS_BATTLEFIELD_TB_ALLIANCE_CONTROLS_SHOW), int32(!IsWarTime() && GetDefenderTeam() == TEAM_ALLIANCE ? 1 : 0)); - packet.Worldstates.emplace_back(uint32(WS_BATTLEFIELD_TB_HORDE_CONTROLS_SHOW), int32(!IsWarTime() && GetDefenderTeam() == TEAM_HORDE ? 1 : 0)); - - packet.Worldstates.emplace_back(uint32(WS_BATTLEFIELD_TB_TIME_BATTLE_END), int32(IsWarTime() ? GameTime::GetGameTime() + (m_Timer / 1000) : 0)); - packet.Worldstates.emplace_back(uint32(WS_BATTLEFIELD_TB_TIME_NEXT_BATTLE), int32(!IsWarTime() ? GameTime::GetGameTime() + (m_Timer / 1000) : 0)); - - // Not sure if TB - //packet.Worldstates.emplace_back(uint32(WS_BATTLEFIELD_TB_65_UNKNOWN), int32(0)); - //packet.Worldstates.emplace_back(uint32(WS_BATTLEFIELD_TB_66_UNKNOWN), int32(0)); - - packet.Worldstates.emplace_back(uint32(WS_BATTLEFIELD_TB_KEEP_ALLIANCE), int32(GetDefenderTeam() == TEAM_ALLIANCE ? 1 : 0)); - packet.Worldstates.emplace_back(uint32(WS_BATTLEFIELD_TB_KEEP_HORDE), int32(GetDefenderTeam() == TEAM_HORDE ? 1 : 0)); -} - -void BattlefieldTB::SendInitWorldStatesToAll() -{ - // Save + sWorld->setWorldState(WS_BATTLEFIELD_TB_FACTION_CONTROLLING, uint32(GetDefenderTeam())); sWorld->setWorldState(WS_BATTLEFIELD_TB_STATE_BATTLE, uint32(IsWarTime() ? 1 : 0)); - sWorld->setWorldState(WS_BATTLEFIELD_TB_ALLIANCE_CONTROLS_SHOW, uint32(!IsWarTime() && GetDefenderTeam() == TEAM_ALLIANCE ? 1 : 0)); - sWorld->setWorldState(WS_BATTLEFIELD_TB_HORDE_CONTROLS_SHOW, uint32(!IsWarTime() && GetDefenderTeam() == TEAM_HORDE ? 1 : 0)); - sWorld->setWorldState(WS_BATTLEFIELD_TB_ALLIANCE_ATTACKING_SHOW, uint32(IsWarTime() && GetAttackerTeam() == TEAM_ALLIANCE ? 1 : 0)); - sWorld->setWorldState(WS_BATTLEFIELD_TB_HORDE_ATTACKING_SHOW, uint32(IsWarTime() && GetAttackerTeam() == TEAM_HORDE ? 1 : 0)); sWorld->setWorldState(WS_BATTLEFIELD_TB_TIME_NEXT_BATTLE, uint32(!IsWarTime() ? m_Timer : 0)); - sWorld->setWorldState(WS_BATTLEFIELD_TB_TIME_NEXT_BATTLE_SHOW, uint32(!IsWarTime() ? 1 : 0)); - - // Tol Barad - for (uint8 team = 0; team < 2; team++) - for (auto itr = m_players[team].begin(); itr != m_players[team].end(); ++itr) - if (Player* player = ObjectAccessor::FindPlayer(*itr)) - SendInitWorldStatesTo(player); - - // Tol Barad Peninsula - Map::PlayerList const& players = m_Map->GetPlayers(); - for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr) - if (Player* player = itr->GetSource()->ToPlayer()) - if (player->GetZoneId() == 5389) // ZONE_TOL_BARAD_PENINSULA - player->SendInitWorldStates(5389, player->GetAreaId()); } void BattlefieldTB::OnStartGrouping() { UpdateNPCsAndGameObjects(); - SendUpdateWorldState(WS_BATTLEFIELD_TB_STATE_PREPARATIONS, uint32(1)); + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_STATE_PREPARATIONS, 1, m_Map); // Teleport players out of questing area for (uint8 team = 0; team < BG_TEAMS_COUNT; ++team) @@ -627,18 +483,45 @@ void BattlefieldTB::OnStartGrouping() player->CastSpell(player, TBQuestAreas[m_iCellblockRandom].teleportSpell, true); // Should we also teleport players out of Baradin Hold underground area? -}; +} void BattlefieldTB::OnBattleStart() { - SetData(BATTLEFIELD_TB_DATA_BUILDINGS_CAPTURED, uint32(0)); SetData(BATTLEFIELD_TB_DATA_TOWERS_INTACT, uint32(3)); - SetData(BATTLEFIELD_TB_DATA_TOWERS_DESTROYED, uint32(0)); UpdateNPCsAndGameObjects(); - SendInitWorldStatesToAll(); -}; + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TIME_BATTLE_END_SHOW, 1, m_Map); + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TIME_BATTLE_END, GameTime::GetGameTime() + m_Timer / IN_MILLISECONDS, m_Map); + + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TIME_NEXT_BATTLE_SHOW, 0, m_Map); + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TIME_NEXT_BATTLE, 0, m_Map); + + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_ALLIANCE_ATTACKING_SHOW, GetAttackerTeam() == TEAM_ALLIANCE ? 1 : 0, m_Map); + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_HORDE_ATTACKING_SHOW, GetAttackerTeam() == TEAM_HORDE ? 1 : 0, m_Map); + + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_ALLIANCE_CONTROLS_SHOW, 0, m_Map); + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_HORDE_CONTROLS_SHOW, 0, m_Map); + + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_BUILDINGS_CAPTURED_SHOW, 1, m_Map); + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_BUILDINGS_CAPTURED, 0, m_Map); + + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TOWERS_DESTROYED_SHOW, 0, m_Map); + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TOWERS_DESTROYED, 0, m_Map); + + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_STATE_PREPARATIONS, 0, m_Map); + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_STATE_BATTLE, 1, m_Map); + + // Towers/spires + for (uint8 i = 0; i < TB_TOWERS_COUNT; i++) + { + sWorldStateMgr->SetValue(TBTowers[i].wsIntact[GetDefenderTeam()], 1, m_Map); + sWorldStateMgr->SetValue(TBTowers[i].wsDamaged[GetDefenderTeam()], 0, m_Map); + sWorldStateMgr->SetValue(TBTowers[i].wsDestroyed, 0, m_Map); + sWorldStateMgr->SetValue(TBTowers[i].wsDamaged[GetAttackerTeam()], 0, m_Map); + sWorldStateMgr->SetValue(TBTowers[i].wsIntact[GetAttackerTeam()], 0, m_Map); + } +} void BattlefieldTB::OnBattleEnd(bool endByTimer) { @@ -674,8 +557,25 @@ void BattlefieldTB::OnBattleEnd(bool endByTimer) warnedTwoMinutes = false; warnedOneMinute = false; + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TIME_BATTLE_END_SHOW, 0, m_Map); + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TIME_BATTLE_END, 0, m_Map); + + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TIME_NEXT_BATTLE_SHOW, 1, m_Map); sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TIME_NEXT_BATTLE, GameTime::GetGameTime() + m_NoWarBattleTime / IN_MILLISECONDS, m_Map); -}; + + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_ALLIANCE_ATTACKING_SHOW, 0, m_Map); + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_HORDE_ATTACKING_SHOW, 0, m_Map); + + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_FACTION_CONTROLLING, GetDefenderTeam() + 1, m_Map); + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_ALLIANCE_CONTROLS_SHOW, GetDefenderTeam() == TEAM_ALLIANCE ? 1 : 0, m_Map); + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_HORDE_CONTROLS_SHOW, GetDefenderTeam() == TEAM_HORDE ? 1 : 0, m_Map); + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_KEEP_ALLIANCE, GetDefenderTeam() == TEAM_ALLIANCE ? 1 : 0, m_Map); + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_KEEP_HORDE, GetDefenderTeam() == TEAM_HORDE ? 1 : 0, m_Map); + + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_BUILDINGS_CAPTURED_SHOW, 0, m_Map); + + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_STATE_BATTLE, 0, m_Map); +} void BattlefieldTB::UpdateNPCsAndGameObjects() { @@ -803,7 +703,7 @@ void BattlefieldTB::UpdateNPCsAndGameObjects() for (uint8 i = 0; i < BATTLEFIELD_TB_GRAVEYARD_MAX; i++) if (BfGraveyard* graveyard = GetGraveyardById(i)) graveyard->GiveControlTo(!IsWarTime() || TBGraveyards[i].defenderControls ? GetDefenderTeam() : GetAttackerTeam()); -}; +} void BattlefieldTB::OnCreatureCreate(Creature* creature) { @@ -860,7 +760,7 @@ void BattlefieldTB::OnCreatureCreate(Creature* creature) default: break; } -}; +} void BattlefieldTB::OnGameObjectCreate(GameObject* go) { @@ -901,7 +801,7 @@ void BattlefieldTB::OnGameObjectCreate(GameObject* go) default: break; } -}; +} void BattlefieldTB::ProcessEvent(WorldObject* obj, uint32 eventId, WorldObject* /*invoker*/) { @@ -952,8 +852,8 @@ void BattlefieldTB::TowerDamaged(TBTowerId tbTowerId) SetData(BATTLEFIELD_TB_DATA_TOWERS_INTACT, GetData(BATTLEFIELD_TB_DATA_TOWERS_INTACT) - 1); - SendUpdateWorldState(uint32(TBTowers[tbTowerId].wsIntact[GetDefenderTeam()]), int32(0)); - SendUpdateWorldState(uint32(TBTowers[tbTowerId].wsDamaged[GetDefenderTeam()]), int32(1)); + sWorldStateMgr->SetValue(TBTowers[tbTowerId].wsIntact[GetDefenderTeam()], 0, m_Map); + sWorldStateMgr->SetValue(TBTowers[tbTowerId].wsDamaged[GetDefenderTeam()], 1, m_Map); TeamCastSpell(GetAttackerTeam(), SPELL_REWARD_TOWER_DAMAGED); } @@ -965,27 +865,21 @@ void BattlefieldTB::TowerDestroyed(TBTowerId tbTowerId) // Add 5 minute bonus time m_Timer += m_BonusTime; + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TIME_BATTLE_END, GameTime::GetGameTime() + m_Timer / IN_MILLISECONDS, m_Map); - SendUpdateWorldState(WS_BATTLEFIELD_TB_TIME_BATTLE_END, uint32(GameTime::GetGameTime() + (m_Timer / 1000))); + SendWarning(TBTowers[tbTowerId].textDestroyed); - SendWarning(TBTowers[tbTowerId].textDamaged); + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TOWERS_DESTROYED_SHOW, 1, m_Map); + int32 towersDestroyed = sWorldStateMgr->GetValue(WS_BATTLEFIELD_TB_TOWERS_DESTROYED, m_Map) + 1; + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TOWERS_DESTROYED, towersDestroyed, m_Map); - SetData(BATTLEFIELD_TB_DATA_TOWERS_DESTROYED, GetData(BATTLEFIELD_TB_DATA_TOWERS_DESTROYED) + 1); - SendUpdateWorldState(uint32(WS_BATTLEFIELD_TB_TOWERS_DESTROYED), int32(GetData(BATTLEFIELD_TB_DATA_TOWERS_DESTROYED))); - - SendUpdateWorldState(uint32(TBTowers[tbTowerId].wsDamaged[GetDefenderTeam()]), int32(0)); - SendUpdateWorldState(uint32(TBTowers[tbTowerId].wsDestroyed), int32(1)); + sWorldStateMgr->SetValue(TBTowers[tbTowerId].wsDamaged[GetDefenderTeam()], 0, m_Map); + sWorldStateMgr->SetValue(TBTowers[tbTowerId].wsDestroyed, 1, m_Map); // Attack bonus buff - for (auto itr = m_PlayersInWar[GetAttackerTeam()].begin(); itr != m_PlayersInWar[GetAttackerTeam()].end(); ++itr) - { - if (Player* player = ObjectAccessor::FindPlayer(*itr)) - { - CastSpellExtraArgs args(TRIGGERED_FULL_MASK); - args.AddSpellMod(SPELLVALUE_AURA_STACK, GetData(BATTLEFIELD_TB_DATA_TOWERS_DESTROYED)); - player->CastSpell(player, SPELL_TOWER_ATTACK_BONUS, args); - } - } + for (ObjectGuid const& guid : m_PlayersInWar[GetAttackerTeam()]) + if (Player* player = ObjectAccessor::FindPlayer(guid)) + player->CastSpell(player, SPELL_TOWER_ATTACK_BONUS, CastSpellExtraArgs(TRIGGERED_FULL_MASK).AddSpellMod(SPELLVALUE_AURA_STACK, towersDestroyed)); // Honor reward TeamCastSpell(GetAttackerTeam(), SPELL_REWARD_TOWER_DESTROYED); @@ -999,8 +893,7 @@ void BattlefieldTB::UpdateCapturedBaseCount() if (itr->second->GetTeamId() == GetAttackerTeam()) numCapturedBases += 1; - SetData(BATTLEFIELD_TB_DATA_BUILDINGS_CAPTURED, numCapturedBases); - SendUpdateWorldState(WS_BATTLEFIELD_TB_BUILDINGS_CAPTURED, uint32(numCapturedBases)); + sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_BUILDINGS_CAPTURED, numCapturedBases, m_Map); // Check if attackers won if (numCapturedBases == TB_BASE_COUNT) @@ -1036,8 +929,11 @@ TolBaradCapturePoint::TolBaradCapturePoint(BattlefieldTB* battlefield, TeamId te m_State = teamInControl == TEAM_ALLIANCE ? BF_CAPTUREPOINT_OBJECTIVESTATE_ALLIANCE : BF_CAPTUREPOINT_OBJECTIVESTATE_HORDE; } -void TolBaradCapturePoint::ChangeTeam(TeamId /*oldTeam*/) +void TolBaradCapturePoint::SendChangePhase() { + if (m_OldState == m_State) + return; + // Find out index uint8 iBase = TB_BASE_COUNT; for (uint8 i = 0; i < TB_BASE_COUNT; i++) @@ -1052,15 +948,15 @@ void TolBaradCapturePoint::ChangeTeam(TeamId /*oldTeam*/) { case BF_CAPTUREPOINT_OBJECTIVESTATE_ALLIANCE: case BF_CAPTUREPOINT_OBJECTIVESTATE_HORDE: - SendUpdateWorldState(TBCapturePoints[iBase].wsControlled[GetTeamId()], uint32(0)); + sWorldStateMgr->SetValue(TBCapturePoints[iBase].wsControlled[GetTeamId()], 0, m_Bf->GetMap()); break; case BF_CAPTUREPOINT_OBJECTIVESTATE_HORDE_ALLIANCE_CHALLENGE: case BF_CAPTUREPOINT_OBJECTIVESTATE_NEUTRAL_ALLIANCE_CHALLENGE: - SendUpdateWorldState(TBCapturePoints[iBase].wsCapturing[TEAM_ALLIANCE], uint32(0)); + sWorldStateMgr->SetValue(TBCapturePoints[iBase].wsCapturing[TEAM_ALLIANCE], 0, m_Bf->GetMap()); break; case BF_CAPTUREPOINT_OBJECTIVESTATE_ALLIANCE_HORDE_CHALLENGE: case BF_CAPTUREPOINT_OBJECTIVESTATE_NEUTRAL_HORDE_CHALLENGE: - SendUpdateWorldState(TBCapturePoints[iBase].wsCapturing[TEAM_HORDE], uint32(0)); + sWorldStateMgr->SetValue(TBCapturePoints[iBase].wsCapturing[TEAM_HORDE], 0, m_Bf->GetMap()); break; default: break; @@ -1072,21 +968,21 @@ void TolBaradCapturePoint::ChangeTeam(TeamId /*oldTeam*/) case BF_CAPTUREPOINT_OBJECTIVESTATE_ALLIANCE: case BF_CAPTUREPOINT_OBJECTIVESTATE_HORDE: m_Bf->SendWarning(TBCapturePoints[iBase].textGained[GetTeamId()]); - SendUpdateWorldState(TBCapturePoints[iBase].wsControlled[GetTeamId()], uint32(1)); + sWorldStateMgr->SetValue(TBCapturePoints[iBase].wsControlled[GetTeamId()], 1, m_Bf->GetMap()); GetCapturePointGo()->SetGoArtKit(GetTeamId() == TEAM_ALLIANCE ? TB_GO_ARTKIT_FLAG_ALLIANCE : TB_GO_ARTKIT_FLAG_HORDE); break; case BF_CAPTUREPOINT_OBJECTIVESTATE_HORDE_ALLIANCE_CHALLENGE: m_Bf->SendWarning(TBCapturePoints[iBase].textLost[TEAM_HORDE]); [[fallthrough]]; case BF_CAPTUREPOINT_OBJECTIVESTATE_NEUTRAL_ALLIANCE_CHALLENGE: - SendUpdateWorldState(TBCapturePoints[iBase].wsCapturing[TEAM_ALLIANCE], uint32(1)); + sWorldStateMgr->SetValue(TBCapturePoints[iBase].wsCapturing[TEAM_ALLIANCE], 1, m_Bf->GetMap()); GetCapturePointGo()->SetGoArtKit(TB_GO_ARTKIT_FLAG_NONE); break; case BF_CAPTUREPOINT_OBJECTIVESTATE_ALLIANCE_HORDE_CHALLENGE: m_Bf->SendWarning(TBCapturePoints[iBase].textLost[TEAM_ALLIANCE]); [[fallthrough]]; case BF_CAPTUREPOINT_OBJECTIVESTATE_NEUTRAL_HORDE_CHALLENGE: - SendUpdateWorldState(TBCapturePoints[iBase].wsCapturing[TEAM_HORDE], uint32(1)); + sWorldStateMgr->SetValue(TBCapturePoints[iBase].wsCapturing[TEAM_HORDE], 1, m_Bf->GetMap()); GetCapturePointGo()->SetGoArtKit(TB_GO_ARTKIT_FLAG_NONE); break; default: diff --git a/src/server/scripts/Battlefield/BattlefieldTB.h b/src/server/scripts/Battlefield/BattlefieldTB.h index 6bd36a3bd8..693da1a718 100644 --- a/src/server/scripts/Battlefield/BattlefieldTB.h +++ b/src/server/scripts/Battlefield/BattlefieldTB.h @@ -39,9 +39,7 @@ enum TolBaradInfo enum TolBaradData { - BATTLEFIELD_TB_DATA_BUILDINGS_CAPTURED, BATTLEFIELD_TB_DATA_TOWERS_INTACT, - BATTLEFIELD_TB_DATA_TOWERS_DESTROYED, BATTLEFIELD_TB_DATA_MAX, }; @@ -338,7 +336,7 @@ class TolBaradCapturePoint : public BfCapturePoint public: TolBaradCapturePoint(BattlefieldTB* battlefield, TeamId teamInControl); - void ChangeTeam(TeamId /*oldteam*/) override; + void SendChangePhase() override; }; /* ##################### * @@ -374,8 +372,7 @@ class BattlefieldTB : public Battlefield bool SetupBattlefield() override; - void SendInitWorldStatesToAll() override; - void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& /*data*/) override; + void SaveWorldStateValues(); void HandleKill(Player* killer, Unit* victim) override; //void OnUnitDeath(Unit* unit) override; diff --git a/src/server/scripts/Battlefield/BattlefieldWG.cpp b/src/server/scripts/Battlefield/BattlefieldWG.cpp index 92202af752..57f943bd54 100644 --- a/src/server/scripts/Battlefield/BattlefieldWG.cpp +++ b/src/server/scripts/Battlefield/BattlefieldWG.cpp @@ -40,7 +40,6 @@ #include "World.h" #include "WorldSession.h" #include "WorldStateMgr.h" -#include "WorldStatePackets.h" struct BfWGCoordGY { @@ -637,7 +636,6 @@ void BattlefieldWG::OnBattleStart() player->GetPosition(x, y, z); if (5500 > x && x > 5392 && y < 2880 && y > 2800 && z < 480) player->TeleportTo(571, 5349.8686f, 2838.481f, 409.240f, 0.046328f); - SendInitWorldStatesTo(player); } } } @@ -1110,7 +1108,6 @@ void BattlefieldWG::OnPlayerJoinWar(Player* player) if (GetData(BATTLEFIELD_WG_DATA_BROKEN_TOWER_ATT) > 0) player->SetAuraStack(SPELL_TOWER_CONTROL, player, GetData(BATTLEFIELD_WG_DATA_BROKEN_TOWER_ATT)); } - SendInitWorldStatesTo(player); } void BattlefieldWG::OnPlayerLeaveWar(Player* player) @@ -1148,8 +1145,6 @@ void BattlefieldWG::OnPlayerEnterZone(Player* player) RemoveAurasFromPlayer(player); player->AddAura(m_DefenderTeam == TEAM_HORDE ? SPELL_HORDE_CONTROL_PHASE_SHIFT : SPELL_ALLIANCE_CONTROL_PHASE_SHIFT, player); - // Send worldstate to player - SendInitWorldStatesTo(player); } uint32 BattlefieldWG::GetData(uint32 data) const diff --git a/src/server/scripts/Battlefield/BattlefieldWG.h b/src/server/scripts/Battlefield/BattlefieldWG.h index d12644b538..9fb966546e 100644 --- a/src/server/scripts/Battlefield/BattlefieldWG.h +++ b/src/server/scripts/Battlefield/BattlefieldWG.h @@ -334,11 +334,6 @@ class BattlefieldWG : public Battlefield void UpdateVehicleCountWG(); void UpdateCounterVehicle(bool init); - // TODO: delete - void SendInitWorldStatesToAll() override { } - // TODO: delete - void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& /*packet*/) override { } - void HandleKill(Player* killer, Unit* victim) override; void OnUnitDeath(Unit* unit) override; void HandlePromotion(Player* killer, Unit* killed); diff --git a/src/server/scripts/Commands/cs_bf.cpp b/src/server/scripts/Commands/cs_bf.cpp index 9c4dd46611..d885b69bad 100644 --- a/src/server/scripts/Commands/cs_bf.cpp +++ b/src/server/scripts/Commands/cs_bf.cpp @@ -165,7 +165,6 @@ public: return false; bf->SetTimer(time * IN_MILLISECONDS); - bf->SendInitWorldStatesToAll(); if (battleid == 1) handler->SendGlobalGMSysMessage("Wintergrasp (Command timer used)");