diff options
25 files changed, 348 insertions, 137 deletions
diff --git a/src/server/game/Battlefield/Battlefield.cpp b/src/server/game/Battlefield/Battlefield.cpp index c06ade69f01..401844b6151 100644 --- a/src/server/game/Battlefield/Battlefield.cpp +++ b/src/server/game/Battlefield/Battlefield.cpp @@ -29,6 +29,7 @@ #include "ObjectAccessor.h" #include "ObjectMgr.h" #include "WorldPacket.h" +#include "WorldStatePackets.h" Battlefield::Battlefield() { @@ -351,7 +352,7 @@ void Battlefield::DoPlaySoundToAll(uint32 SoundID) data << uint32(SoundID); data << uint64(0); - BroadcastPacketToWar(data); + BroadcastPacketToWar(&data); } bool Battlefield::HasPlayer(Player* player) const @@ -410,28 +411,28 @@ void Battlefield::TeamCastSpell(TeamId team, int32 spellId) } } -void Battlefield::BroadcastPacketToZone(WorldPacket& data) const +void Battlefield::BroadcastPacketToZone(WorldPacket const* data) const { for (uint8 team = 0; team < BG_TEAMS_COUNT; ++team) for (GuidSet::const_iterator itr = m_players[team].begin(); itr != m_players[team].end(); ++itr) if (Player* player = ObjectAccessor::FindPlayer(*itr)) - player->SendDirectMessage(&data); + player->SendDirectMessage(data); } -void Battlefield::BroadcastPacketToQueue(WorldPacket& data) const +void Battlefield::BroadcastPacketToQueue(WorldPacket const* data) const { for (uint8 team = 0; team < BG_TEAMS_COUNT; ++team) for (GuidSet::const_iterator itr = m_PlayersInQueue[team].begin(); itr != m_PlayersInQueue[team].end(); ++itr) if (Player* player = ObjectAccessor::FindConnectedPlayer(*itr)) - player->SendDirectMessage(&data); + player->SendDirectMessage(data); } -void Battlefield::BroadcastPacketToWar(WorldPacket& data) const +void Battlefield::BroadcastPacketToWar(WorldPacket const* data) const { for (uint8 team = 0; team < BG_TEAMS_COUNT; ++team) for (GuidSet::const_iterator itr = m_PlayersInWar[team].begin(); itr != m_PlayersInWar[team].end(); ++itr) if (Player* player = ObjectAccessor::FindPlayer(*itr)) - player->SendDirectMessage(&data); + player->SendDirectMessage(data); } void Battlefield::SendWarning(uint8 id, WorldObject const* target /*= nullptr*/) @@ -440,12 +441,13 @@ void Battlefield::SendWarning(uint8 id, WorldObject const* target /*= nullptr*/) sCreatureTextMgr->SendChat(stalker, id, target); } -void Battlefield::SendUpdateWorldState(uint32 field, uint32 value) +void Battlefield::SendUpdateWorldState(uint32 variable, uint32 value, bool hidden /*= false*/) { - for (uint8 i = 0; i < BG_TEAMS_COUNT; ++i) - for (GuidSet::iterator itr = m_players[i].begin(); itr != m_players[i].end(); ++itr) - if (Player* player = ObjectAccessor::FindPlayer(*itr)) - player->SendUpdateWorldState(field, value); + WorldPackets::WorldState::UpdateWorldState worldstate; + worldstate.VariableID = variable; + worldstate.Value = value; + worldstate.Hidden = hidden; + BroadcastPacketToZone(worldstate.Write()); } void Battlefield::RegisterZone(uint32 zoneId) diff --git a/src/server/game/Battlefield/Battlefield.h b/src/server/game/Battlefield/Battlefield.h index 29b8f4a5126..03557779ab1 100644 --- a/src/server/game/Battlefield/Battlefield.h +++ b/src/server/game/Battlefield/Battlefield.h @@ -200,7 +200,7 @@ class Battlefield : public ZoneScript virtual bool SetupBattlefield() { return true; } /// Update data of a worldstate to all players present in zone - void SendUpdateWorldState(uint32 field, uint32 value); + void SendUpdateWorldState(uint32 variable, uint32 value, bool hidden = false); /** * \brief Called every time for update bf data and time @@ -397,9 +397,9 @@ class Battlefield : public ZoneScript virtual void SendRemoveWorldStates(Player* /*player*/) { } // use for send a packet for all player list - void BroadcastPacketToZone(WorldPacket& data) const; - void BroadcastPacketToQueue(WorldPacket& data) const; - void BroadcastPacketToWar(WorldPacket& data) const; + void BroadcastPacketToZone(WorldPacket const* data) const; + void BroadcastPacketToQueue(WorldPacket const* data) const; + void BroadcastPacketToWar(WorldPacket const* data) const; // CapturePoint system void AddCapturePoint(BfCapturePoint* cp) { m_capturePoints[cp->GetCapturePointEntry()] = cp; } diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp index 396b549c0bc..be043aa289a 100644 --- a/src/server/game/Battlegrounds/Battleground.cpp +++ b/src/server/game/Battlegrounds/Battleground.cpp @@ -37,6 +37,7 @@ #include "SpellAuras.h" #include "Util.h" #include "WorldPacket.h" +#include "WorldStatePackets.h" #include "Transport.h" namespace Trinity @@ -634,14 +635,14 @@ Position const* Battleground::GetTeamStartPosition(TeamId teamId) const return &StartPosition[teamId]; } -void Battleground::SendPacketToAll(WorldPacket* packet) +void Battleground::SendPacketToAll(WorldPacket const* packet) const { for (BattlegroundPlayerMap::const_iterator itr = m_Players.begin(); itr != m_Players.end(); ++itr) if (Player* player = _GetPlayer(itr, "SendPacketToAll")) player->SendDirectMessage(packet); } -void Battleground::SendPacketToTeam(uint32 TeamID, WorldPacket* packet, Player* sender, bool self) +void Battleground::SendPacketToTeam(uint32 TeamID, WorldPacket const* packet, Player* sender, bool self) const { for (BattlegroundPlayerMap::const_iterator itr = m_Players.begin(); itr != m_Players.end(); ++itr) { @@ -716,18 +717,13 @@ void Battleground::RewardReputationToTeam(uint32 faction_id, uint32 Reputation, } } -void Battleground::UpdateWorldState(uint32 Field, uint32 Value) +void Battleground::UpdateWorldState(uint32 variable, uint32 value, bool hidden /*= false*/) { - WorldPacket data; - sBattlegroundMgr->BuildUpdateWorldStatePacket(&data, Field, Value); - SendPacketToAll(&data); -} - -void Battleground::UpdateWorldStateForPlayer(uint32 field, uint32 value, Player* player) -{ - WorldPacket data; - sBattlegroundMgr->BuildUpdateWorldStatePacket(&data, field, value); - player->SendDirectMessage(&data); + WorldPackets::WorldState::UpdateWorldState worldstate; + worldstate.VariableID = variable; + worldstate.Value = value; + worldstate.Hidden = hidden; + SendPacketToAll(worldstate.Write()); } void Battleground::EndBattleground(uint32 winner) diff --git a/src/server/game/Battlegrounds/Battleground.h b/src/server/game/Battlegrounds/Battleground.h index fc52178c52d..aa0bb6fbb4c 100644 --- a/src/server/game/Battlegrounds/Battleground.h +++ b/src/server/game/Battlegrounds/Battleground.h @@ -347,8 +347,8 @@ class Battleground // Packet Transfer // method that should fill worldpacket with actual world states (not yet implemented for all battlegrounds!) virtual void FillInitialWorldStates(WorldPacket& /*data*/) { } - void SendPacketToTeam(uint32 TeamID, WorldPacket* packet, Player* sender = NULL, bool self = true); - void SendPacketToAll(WorldPacket* packet); + void SendPacketToTeam(uint32 TeamID, WorldPacket const* packet, Player* sender = NULL, bool self = true) const; + void SendPacketToAll(WorldPacket const* packet) const; void SendChatMessage(Creature* source, uint8 textId, WorldObject* target = NULL); @@ -361,8 +361,7 @@ class Battleground void RemoveAuraOnTeam(uint32 SpellID, uint32 TeamID); void RewardHonorToTeam(uint32 Honor, uint32 TeamID); void RewardReputationToTeam(uint32 faction_id, uint32 Reputation, uint32 TeamID); - void UpdateWorldState(uint32 Field, uint32 Value); - void UpdateWorldStateForPlayer(uint32 Field, uint32 Value, Player* player); + void UpdateWorldState(uint32 variable, uint32 value, bool hidden = false); virtual void EndBattleground(uint32 winner); void BlockMovement(Player* player); diff --git a/src/server/game/Battlegrounds/BattlegroundMgr.cpp b/src/server/game/Battlegrounds/BattlegroundMgr.cpp index eae6a831290..e1a3a9b065c 100644 --- a/src/server/game/Battlegrounds/BattlegroundMgr.cpp +++ b/src/server/game/Battlegrounds/BattlegroundMgr.cpp @@ -426,13 +426,6 @@ void BattlegroundMgr::BuildStatusFailedPacket(WorldPacket* data, Battleground* b data->WriteByteSeq(unkGuid3[5]); } -void BattlegroundMgr::BuildUpdateWorldStatePacket(WorldPacket* data, uint32 field, uint32 value) -{ - data->Initialize(SMSG_UPDATE_WORLD_STATE, 4+4); - *data << uint32(field); - *data << uint32(value); -} - void BattlegroundMgr::BuildPlaySoundPacket(WorldPacket* data, uint32 soundid) { data->Initialize(SMSG_PLAY_SOUND, 4 + 8); diff --git a/src/server/game/Battlegrounds/BattlegroundMgr.h b/src/server/game/Battlegrounds/BattlegroundMgr.h index 23689c03fba..9e330373685 100644 --- a/src/server/game/Battlegrounds/BattlegroundMgr.h +++ b/src/server/game/Battlegrounds/BattlegroundMgr.h @@ -74,7 +74,6 @@ class BattlegroundMgr void BuildPlayerLeftBattlegroundPacket(WorldPacket* data, ObjectGuid guid); void BuildBattlegroundListPacket(WorldPacket* data, ObjectGuid guid, Player* player, BattlegroundTypeId bgTypeId); void BuildStatusFailedPacket(WorldPacket* data, Battleground* bg, Player* pPlayer, uint8 QueueSlot, GroupJoinBattlegroundResult result); - void BuildUpdateWorldStatePacket(WorldPacket* data, uint32 field, uint32 value); void BuildBattlegroundStatusPacket(WorldPacket* data, Battleground* bg, Player* player, uint8 queueSlot, uint8 statusId, uint32 time1, uint32 time2, uint8 arenaType); void BuildPlaySoundPacket(WorldPacket* data, uint32 soundId); void SendAreaSpiritHealerQueryOpcode(Player* player, Battleground* bg, ObjectGuid guid); diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp index 034f7c91999..1663f4da049 100644 --- a/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp +++ b/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp @@ -179,9 +179,9 @@ void BattlegroundEY::CheckSomeoneJoinedPoint() { //player joined point! //show progress bar - UpdateWorldStateForPlayer(PROGRESS_BAR_PERCENT_GREY, BG_EY_PROGRESS_BAR_PERCENT_GREY, player); - UpdateWorldStateForPlayer(PROGRESS_BAR_STATUS, m_PointBarStatus[i], player); - UpdateWorldStateForPlayer(PROGRESS_BAR_SHOW, BG_EY_PROGRESS_BAR_SHOW, player); + player->SendUpdateWorldState(PROGRESS_BAR_PERCENT_GREY, BG_EY_PROGRESS_BAR_PERCENT_GREY); + player->SendUpdateWorldState(PROGRESS_BAR_STATUS, m_PointBarStatus[i]); + player->SendUpdateWorldState(PROGRESS_BAR_SHOW, BG_EY_PROGRESS_BAR_SHOW); //add player to point m_PlayersNearPoint[i].push_back(m_PlayersNearPoint[EY_POINTS_MAX][j]); //remove player from "free space" @@ -222,7 +222,7 @@ void BattlegroundEY::CheckSomeoneLeftPoint() { m_PlayersNearPoint[EY_POINTS_MAX].push_back(m_PlayersNearPoint[i][j]); m_PlayersNearPoint[i].erase(m_PlayersNearPoint[i].begin() + j); - this->UpdateWorldStateForPlayer(PROGRESS_BAR_SHOW, BG_EY_PROGRESS_BAR_DONT_SHOW, player); + player->SendUpdateWorldState(PROGRESS_BAR_SHOW, BG_EY_PROGRESS_BAR_DONT_SHOW); } else { @@ -265,7 +265,7 @@ void BattlegroundEY::UpdatePointStatuses() Player* player = ObjectAccessor::FindPlayer(m_PlayersNearPoint[point][i]); if (player) { - this->UpdateWorldStateForPlayer(PROGRESS_BAR_STATUS, m_PointBarStatus[point], player); + player->SendUpdateWorldState(PROGRESS_BAR_STATUS, m_PointBarStatus[point]); //if point owner changed we must evoke event! if (pointOwnerTeamId != m_PointOwnedByTeam[point]) { diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 99561741931..1ad85c237ac 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -41,6 +41,7 @@ #include "DisableMgr.h" #include "Formulas.h" #include "GameEventMgr.h" +#include "GameObjectAI.h" #include "GossipDef.h" #include "GridNotifiers.h" #include "GridNotifiersImpl.h" @@ -55,6 +56,7 @@ #include "Log.h" #include "MapInstanced.h" #include "MapManager.h" +#include "MovementStructures.h" #include "ObjectAccessor.h" #include "ObjectMgr.h" #include "Opcodes.h" @@ -81,8 +83,7 @@ #include "World.h" #include "WorldPacket.h" #include "WorldSession.h" -#include "MovementStructures.h" -#include "GameObjectAI.h" +#include "WorldStatePackets.h" #define ZONE_UPDATE_INTERVAL (1*IN_MILLISECONDS) @@ -6516,7 +6517,7 @@ void Player::SendMessageToSet(WorldPacket* data, Player const* skipped_rcvr) VisitNearbyWorldObject(GetVisibilityRange(), notifier); } -void Player::SendDirectMessage(WorldPacket* data) +void Player::SendDirectMessage(WorldPacket const* data) { m_session->SendPacket(data); } @@ -9084,13 +9085,13 @@ void Player::SendNotifyLootItemRemoved(uint8 lootSlot) GetSession()->SendPacket(&data); } -void Player::SendUpdateWorldState(uint32 Field, uint32 Value) +void Player::SendUpdateWorldState(uint32 variable, uint32 value, bool hidden /*= false*/) { - WorldPacket data(SMSG_UPDATE_WORLD_STATE, 4+4+1); - data << Field; - data << Value; - data << uint8(0); - GetSession()->SendPacket(&data); + WorldPackets::WorldState::UpdateWorldState worldstate; + worldstate.VariableID = variable; + worldstate.Value = value; + worldstate.Hidden = hidden; + SendDirectMessage(worldstate.Write()); } void Player::SendInitWorldStates(uint32 zoneid, uint32 areaid) @@ -9110,22 +9111,22 @@ void Player::SendInitWorldStates(uint32 zoneid, uint32 areaid) data << uint32(areaid); // area id, new 2.1.0 size_t countPos = data.wpos(); data << uint16(0); // count of uint64 blocks - data << uint32(0x8d8) << uint32(0x0); // 1 - data << uint32(0x8d7) << uint32(0x0); // 2 - data << uint32(0x8d6) << uint32(0x0); // 3 - data << uint32(0x8d5) << uint32(0x0); // 4 - data << uint32(0x8d4) << uint32(0x0); // 5 - data << uint32(0x8d3) << uint32(0x0); // 6 - // 7 1 - Arena season in progress, 0 - end of season - data << uint32(0xC77) << uint32(sWorld->getBoolConfig(CONFIG_ARENA_SEASON_IN_PROGRESS)); - // 8 Arena season id - data << uint32(0xF3D) << uint32(sWorld->getIntConfig(CONFIG_ARENA_SEASON_ID)); + data << uint32(2264) << uint32(0); // 1 + data << uint32(2263) << uint32(0); // 2 + data << uint32(2262) << uint32(0); // 3 + data << uint32(2261) << uint32(0); // 4 + data << uint32(2260) << uint32(0); // 5 + data << uint32(2259) << uint32(0); // 6 + + data << uint32(3191) << uint32(sWorld->getBoolConfig(CONFIG_ARENA_SEASON_IN_PROGRESS) ? sWorld->getIntConfig(CONFIG_ARENA_SEASON_ID) : 0); // 7 Current Season - Arena season in progress + // 0 - End of season + data << uint32(3901) << uint32(sWorld->getIntConfig(CONFIG_ARENA_SEASON_ID) - sWorld->getBoolConfig(CONFIG_ARENA_SEASON_IN_PROGRESS)); // 8 PreviousSeason if (mapid == 530) // Outland { - data << uint32(0x9bf) << uint32(0x0); // 7 - data << uint32(0x9bd) << uint32(0xF); // 8 - data << uint32(0x9bb) << uint32(0xF); // 9 + data << uint32(2495) << uint32(0x0); // 7 + data << uint32(2493) << uint32(0xF); // 8 + data << uint32(2491) << uint32(0xF); // 9 } // insert <field> <value> diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index e0655a39daa..0f5418e24e7 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -2248,8 +2248,8 @@ class Player : public Unit, public GridObject<Player> void DeleteEquipmentSet(uint64 setGuid); void SendInitWorldStates(uint32 zone, uint32 area); - void SendUpdateWorldState(uint32 Field, uint32 Value); - void SendDirectMessage(WorldPacket* data); + void SendUpdateWorldState(uint32 variable, uint32 value, bool hidden = false); + void SendDirectMessage(WorldPacket const* data); void SendBGWeekendWorldStates(); void SendBattlefieldWorldStates(); diff --git a/src/server/game/Events/GameEventMgr.cpp b/src/server/game/Events/GameEventMgr.cpp index 780360dc945..cf46272080e 100644 --- a/src/server/game/Events/GameEventMgr.cpp +++ b/src/server/game/Events/GameEventMgr.cpp @@ -19,7 +19,6 @@ #include "GameEventMgr.h" #include "World.h" #include "ObjectMgr.h" -#include "WorldPacket.h" #include "PoolMgr.h" #include "Language.h" #include "Log.h" @@ -29,6 +28,7 @@ #include "BattlegroundMgr.h" #include "UnitAI.h" #include "GameObjectAI.h" +#include "WorldStatePackets.h" bool GameEventMgr::CheckOneGameEvent(uint16 entry) const { @@ -1486,9 +1486,11 @@ void GameEventMgr::UpdateWorldStates(uint16 event_id, bool Activate) BattlemasterListEntry const* bl = sBattlemasterListStore.LookupEntry(bgTypeId); if (bl && bl->HolidayWorldStateId) { - WorldPacket data; - sBattlegroundMgr->BuildUpdateWorldStatePacket(&data, bl->HolidayWorldStateId, Activate ? 1 : 0); - sWorld->SendGlobalMessage(&data); + WorldPackets::WorldState::UpdateWorldState worldstate; + worldstate.VariableID = bl->HolidayWorldStateId; + worldstate.Value = Activate; + //worldstate.Hidden = false; + sWorld->SendGlobalMessage(worldstate.Write()); } } } diff --git a/src/server/game/Handlers/AuctionHouseHandler.cpp b/src/server/game/Handlers/AuctionHouseHandler.cpp index e35baca3efc..bad38c91e79 100644 --- a/src/server/game/Handlers/AuctionHouseHandler.cpp +++ b/src/server/game/Handlers/AuctionHouseHandler.cpp @@ -65,7 +65,7 @@ void WorldSession::SendAuctionHello(ObjectGuid guid, Creature* unit) if (!ahEntry) return; - WorldPacket data(MSG_AUCTION_HELLO, 12); + WorldPacket data(SMSG_AUCTION_HELLO, 12); data << guid; data << uint32(ahEntry->houseId); data << uint8(1); // 3.3.3: 1 - AH enabled, 0 - AH disabled @@ -74,7 +74,7 @@ void WorldSession::SendAuctionHello(ObjectGuid guid, Creature* unit) void WorldSession::SendAuctionCommandResult(AuctionEntry* auction, uint32 action, uint32 errorCode, uint32 /*bidError = 0*/) { - WorldPackets::AuctionHousePackets::AuctionCommandResult auctionCommandResult; + WorldPackets::AuctionHouse::AuctionCommandResult auctionCommandResult; auctionCommandResult.InitializeAuction(auction); auctionCommandResult.Action = action; auctionCommandResult.ErrorCode = errorCode; diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp index b27a398e989..dd6090a0d62 100644 --- a/src/server/game/Handlers/CharacterHandler.cpp +++ b/src/server/game/Handlers/CharacterHandler.cpp @@ -19,7 +19,10 @@ #include "AccountMgr.h" #include "ArenaTeam.h" #include "ArenaTeamMgr.h" +#include "AuthenticationPackets.h" #include "Battleground.h" +#include "BattlegroundPackets.h" +#include "BattlenetServerManager.h" #include "CalendarMgr.h" #include "CharacterPackets.h" #include "Chat.h" @@ -50,8 +53,6 @@ #include "World.h" #include "WorldPacket.h" #include "WorldSession.h" -#include "BattlenetServerManager.h" -#include "AuthenticationPackets.h" class LoginQueryHolder : public SQLQueryHolder { @@ -892,6 +893,20 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder* holder) TC_LOG_DEBUG("network", "WORLD: Sent motd (SMSG_MOTD)"); } + SendSetTimeZoneInformation(); + + // Send PVPSeason + { + WorldPackets::Battleground::PVPSeason season; + season.PreviousSeason = sWorld->getIntConfig(CONFIG_ARENA_SEASON_ID) - sWorld->getBoolConfig(CONFIG_ARENA_SEASON_IN_PROGRESS); + + if (sWorld->getBoolConfig(CONFIG_ARENA_SEASON_IN_PROGRESS)) + season.CurrentSeason = sWorld->getIntConfig(CONFIG_ARENA_SEASON_ID); + + SendPacket(season.Write()); + TC_LOG_DEBUG("network", "WORLD: Sent PVPSeason"); + } + // send server info { if (sWorld->getIntConfig(CONFIG_ENABLE_SINFO_LOGIN) == 1) diff --git a/src/server/game/Server/Packets/AuctionHousePackets.cpp b/src/server/game/Server/Packets/AuctionHousePackets.cpp index 56fa0ed396b..bb1a10be254 100644 --- a/src/server/game/Server/Packets/AuctionHousePackets.cpp +++ b/src/server/game/Server/Packets/AuctionHousePackets.cpp @@ -19,10 +19,10 @@ #include "AuctionHouseMgr.h" #include "ObjectGuid.h" -WorldPackets::AuctionHousePackets::AuctionCommandResult::AuctionCommandResult() +WorldPackets::AuctionHouse::AuctionCommandResult::AuctionCommandResult() : ServerPacket(SMSG_AUCTION_COMMAND_RESULT, 4 + 4 + 4 + 8 + 4 + 8 + 8 + 8) { } -void WorldPackets::AuctionHousePackets::AuctionCommandResult::InitializeAuction(AuctionEntry* auction) +void WorldPackets::AuctionHouse::AuctionCommandResult::InitializeAuction(AuctionEntry* auction) { if (auction) { @@ -33,7 +33,7 @@ void WorldPackets::AuctionHousePackets::AuctionCommandResult::InitializeAuction( } } -WorldPacket const* WorldPackets::AuctionHousePackets::AuctionCommandResult::Write() +WorldPacket const* WorldPackets::AuctionHouse::AuctionCommandResult::Write() { _worldPacket << uint32(AuctionId); _worldPacket << uint32(Action); diff --git a/src/server/game/Server/Packets/AuctionHousePackets.h b/src/server/game/Server/Packets/AuctionHousePackets.h index bf392246a20..4204c5c6afc 100644 --- a/src/server/game/Server/Packets/AuctionHousePackets.h +++ b/src/server/game/Server/Packets/AuctionHousePackets.h @@ -20,13 +20,11 @@ #include "Packet.h" #include "ObjectGuid.h" -class ObjectGuid; - struct AuctionEntry; namespace WorldPackets { - namespace AuctionHousePackets + namespace AuctionHouse { class AuctionCommandResult final : public ServerPacket { @@ -54,4 +52,5 @@ namespace WorldPackets }; } } -#endif + +#endif // AuctionHousePackets_h__ diff --git a/src/server/game/Server/Packets/BattlegroundPackets.cpp b/src/server/game/Server/Packets/BattlegroundPackets.cpp new file mode 100644 index 00000000000..8a1bec1173b --- /dev/null +++ b/src/server/game/Server/Packets/BattlegroundPackets.cpp @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/> + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 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 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/>. + */ + +#include "BattlegroundPackets.h" + +WorldPacket const* WorldPackets::Battleground::PVPSeason::Write() +{ + _worldPacket << uint32(CurrentSeason); + _worldPacket << uint32(PreviousSeason); + + return &_worldPacket; +} diff --git a/src/server/game/Server/Packets/BattlegroundPackets.h b/src/server/game/Server/Packets/BattlegroundPackets.h new file mode 100644 index 00000000000..77dc8238438 --- /dev/null +++ b/src/server/game/Server/Packets/BattlegroundPackets.h @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/> + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 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 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 BattlegroundPackets_h__ +#define BattlegroundPackets_h__ + +#include "Packet.h" + +namespace WorldPackets +{ + namespace Battleground + { + class PVPSeason final : public ServerPacket + { + public: + PVPSeason() : ServerPacket(SMSG_PVP_SEASON, 8) { } + + WorldPacket const* Write() override; + + uint32 PreviousSeason = 0; + uint32 CurrentSeason = 0; + }; + } +} + +#endif // BattlegroundPackets_h__ diff --git a/src/server/game/Server/Packets/WorldStatePackets.cpp b/src/server/game/Server/Packets/WorldStatePackets.cpp new file mode 100644 index 00000000000..7d062841003 --- /dev/null +++ b/src/server/game/Server/Packets/WorldStatePackets.cpp @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/> + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 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 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/>. + */ + +#include "WorldStatePackets.h" + +WorldPackets::WorldState::InitWorldStates::InitWorldStates() + : ServerPacket(SMSG_INIT_WORLD_STATES, 16) { } + +WorldPacket const* WorldPackets::WorldState::InitWorldStates::Write() +{ + _worldPacket.reserve(16 + Worldstates.size() * 8); + + _worldPacket << uint32(AreaID); + _worldPacket << uint32(SubareaID); + _worldPacket << uint32(MapID); + + _worldPacket << uint32(Worldstates.size()); + for (WorldStateInfo const& wsi : Worldstates) + { + _worldPacket << uint32(wsi.VariableID); + _worldPacket << uint32(wsi.Value); + } + + return &_worldPacket; +} + +WorldPackets::WorldState::UpdateWorldState::UpdateWorldState() + : ServerPacket(SMSG_UPDATE_WORLD_STATE, 9) { } + +WorldPacket const* WorldPackets::WorldState::UpdateWorldState::Write() +{ + _worldPacket << uint32(VariableID); + _worldPacket << int32(Value); + _worldPacket.WriteBit(Hidden); + _worldPacket.FlushBits(); + + return &_worldPacket; +} diff --git a/src/server/game/Server/Packets/WorldStatePackets.h b/src/server/game/Server/Packets/WorldStatePackets.h new file mode 100644 index 00000000000..7f9cdfe80de --- /dev/null +++ b/src/server/game/Server/Packets/WorldStatePackets.h @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/> + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 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 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 WorldStatePackets_h__ +#define WorldStatePackets_h__ + +#include "Packet.h" + +namespace WorldPackets +{ + namespace WorldState + { + class InitWorldStates final : public ServerPacket + { + public: + struct WorldStateInfo + { + WorldStateInfo(uint32 variableID, int32 value) + : VariableID(variableID), Value(value) { } + + uint32 VariableID; + int32 Value; + }; + + InitWorldStates(); + + WorldPacket const* Write() override; + + uint32 AreaID = 0; ///< ZoneId + uint32 SubareaID = 0; ///< AreaId + uint32 MapID = 0; ///< MapId + + std::list<WorldStateInfo> Worldstates; + }; + + class UpdateWorldState final : public ServerPacket + { + public: + UpdateWorldState(); + + WorldPacket const* Write() override; + + int32 Value = 0; + bool Hidden = false; ///< @todo: research + uint32 VariableID = 0; + }; + } +} + +#endif // WorldStatePackets_h__ diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 003a1ce1fad..97fc18a1c2f 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -130,6 +130,7 @@ void OpcodeTable::Initialize() DEFINE_OPCODE_HANDLER_OLD(CMSG_ARENA_TEAM_ROSTER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleArenaTeamRosterOpcode ); DEFINE_OPCODE_HANDLER_OLD(CMSG_ATTACKSTOP, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleAttackStopOpcode ); DEFINE_OPCODE_HANDLER_OLD(CMSG_ATTACKSWING, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleAttackSwingOpcode ); + DEFINE_OPCODE_HANDLER_OLD(CMSG_AUCTION_HELLO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionHelloOpcode ); DEFINE_OPCODE_HANDLER_OLD(CMSG_AUCTION_LIST_BIDDER_ITEMS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionListBidderItems ); DEFINE_OPCODE_HANDLER_OLD(CMSG_AUCTION_LIST_ITEMS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionListItems ); DEFINE_OPCODE_HANDLER_OLD(CMSG_AUCTION_LIST_OWNER_ITEMS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionListOwnerItems ); @@ -161,6 +162,8 @@ void OpcodeTable::Initialize() DEFINE_OPCODE_HANDLER_OLD(CMSG_BATTLEMASTER_JOIN_ARENA, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlemasterJoinArena ); DEFINE_OPCODE_HANDLER_OLD(CMSG_BATTLEMASTER_JOIN_RATED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_BATTLE_PAY_GET_PRODUCT_LIST_QUERY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); + DEFINE_OPCODE_HANDLER_OLD(CMSG_BATTLE_PAY_GET_PURCHASE_LIST_QUERY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); + DEFINE_OPCODE_HANDLER_OLD(CMSG_BATTLE_PET_NAME_QUERY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_BEGIN_TRADE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleBeginTradeOpcode ); DEFINE_OPCODE_HANDLER_OLD(CMSG_BINDER_ACTIVATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleBinderActivateOpcode ); DEFINE_OPCODE_HANDLER_OLD(CMSG_BUG, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleBugOpcode ); @@ -498,12 +501,13 @@ void OpcodeTable::Initialize() DEFINE_OPCODE_HANDLER_OLD(CMSG_QUEST_NPC_QUERY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestNPCQuery ); DEFINE_OPCODE_HANDLER_OLD(CMSG_QUEST_POI_QUERY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestPOIQuery ); DEFINE_OPCODE_HANDLER_OLD(CMSG_QUEST_QUERY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestQueryOpcode ); + DEFINE_OPCODE_HANDLER_OLD(CMSG_QUEUED_MESSAGES_END, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_HANDLER(CMSG_RANDOMIZE_CHAR_NAME, STATUS_AUTHED, PROCESS_THREADUNSAFE, WorldPackets::Character::GenerateRandomCharacterName, &WorldSession::HandleRandomizeCharNameOpcode); DEFINE_OPCODE_HANDLER_OLD(CMSG_READ_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleReadItem ); DEFINE_OPCODE_HANDLER_OLD(CMSG_REALM_SPLIT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRealmSplitOpcode ); DEFINE_OPCODE_HANDLER_OLD(CMSG_RECLAIM_CORPSE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleReclaimCorpseOpcode ); DEFINE_OPCODE_HANDLER_OLD(CMSG_REFORGE_ITEM, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleReforgeItemOpcode ); - DEFINE_HANDLER(CMSG_REORDER_CHARACTERS, STATUS_AUTHED, PROCESS_INPLACE, WorldPackets::Character::ReorderCharacters, &WorldSession::HandleReorderCharacters); + DEFINE_HANDLER(CMSG_REORDER_CHARACTERS, STATUS_AUTHED, PROCESS_THREADUNSAFE, WorldPackets::Character::ReorderCharacters, &WorldSession::HandleReorderCharacters); DEFINE_OPCODE_HANDLER_OLD(CMSG_REPAIR_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRepairItemOpcode ); DEFINE_OPCODE_HANDLER_OLD(CMSG_REPOP_REQUEST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRepopRequestOpcode ); DEFINE_OPCODE_HANDLER_OLD(CMSG_REPORT_PVP_AFK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleReportPvPAFK ); @@ -549,6 +553,7 @@ void OpcodeTable::Initialize() DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_FACTION_ATWAR, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetFactionAtWar ); DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_FACTION_INACTIVE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetFactionInactiveOpcode ); DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_GUILD_BANK_TEXT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetGuildBankTabText ); + DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_LOOT_SPECIALIZATION, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_PET_SLOT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_PLAYER_DECLINED_NAMES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetPlayerDeclinedNames ); DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_PREFERED_CEMETERY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); @@ -576,6 +581,7 @@ void OpcodeTable::Initialize() DEFINE_OPCODE_HANDLER_OLD(CMSG_SUBMIT_COMPLAIN, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_SUGGESTION_SUBMIT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_SUMMON_RESPONSE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSummonResponseOpcode ); + DEFINE_OPCODE_HANDLER_OLD(CMSG_SUSPEND_COMMS_ACK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_SUSPEND_TOKEN_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_SWAP_INV_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSwapInvItemOpcode ); DEFINE_OPCODE_HANDLER_OLD(CMSG_SWAP_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSwapItem ); @@ -622,9 +628,6 @@ void OpcodeTable::Initialize() DEFINE_OPCODE_HANDLER_OLD(CMSG_WORLD_TELEPORT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleWorldTeleportOpcode ); DEFINE_OPCODE_HANDLER_OLD(CMSG_WRAP_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleWrapItemOpcode ); DEFINE_OPCODE_HANDLER_OLD(CMSG_ZONEUPDATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleZoneUpdateOpcode ); - DEFINE_OPCODE_HANDLER_OLD(MSG_AUCTION_HELLO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionHelloOpcode ); - DEFINE_OPCODE_HANDLER_OLD(MSG_CHANNEL_START, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - DEFINE_OPCODE_HANDLER_OLD(MSG_CHANNEL_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); DEFINE_OPCODE_HANDLER_OLD(MSG_CORPSE_QUERY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCorpseQueryOpcode ); DEFINE_OPCODE_HANDLER_OLD(MSG_INSPECT_ARENA_TEAMS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleInspectArenaTeamsOpcode ); DEFINE_OPCODE_HANDLER_OLD(MSG_LIST_STABLED_PETS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleListStabledPetsOpcode ); @@ -679,6 +682,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_DATA_TIMES, STATUS_NEVER); DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_INFO_RESPONSE, STATUS_UNHANDLED); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_MOUNT_UPDATE, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_RESTRICTED_WARNING, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACHIEVEMENT_DELETED, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACHIEVEMENT_EARNED, STATUS_UNHANDLED); @@ -692,7 +696,6 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_AREA_TRIGGER_MESSAGE, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_AREA_TRIGGER_MOVEMENT_UPDATE, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_ARENA_ERROR, STATUS_UNHANDLED); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ARENA_SEASON_WORLD_STATE, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_ARENA_UNIT_DESTROYED, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_ARENA_TEAM_CHANGE_FAILED_QUEUED, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_ARENA_TEAM_COMMAND_RESULT, STATUS_UNHANDLED); @@ -711,6 +714,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_BIDDER_LIST_RESULT, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_BIDDER_NOTIFICATION, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_COMMAND_RESULT, STATUS_UNHANDLED); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_HELLO, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_LIST_PENDING_SALES, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_LIST_RESULT, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_OWNER_LIST_RESULT, STATUS_UNHANDLED); @@ -745,8 +749,12 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEGROUND_INFO_THROTTLED, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEGROUND_PLAYER_JOINED, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEGROUND_PLAYER_LEFT, STATUS_UNHANDLED); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_GET_DISTRIBUTION_LIST_RESPONSE, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_GET_PRODUCT_LIST_RESPONSE, STATUS_UNHANDLED); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_GET_PURCHASE_LIST_RESPONSE, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PET_JOURNAL, STATUS_UNHANDLED); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PET_JOURNAL_LOCK_ACQUIRED, STATUS_UNHANDLED); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PET_NAME_QUERY_RESPONSE, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_BINDER_CONFIRM, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_BINDPOINTUPDATE, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_BINDZONEREPLY, STATUS_UNHANDLED); @@ -782,6 +790,8 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANNEL_LIST, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANNEL_MEMBER_COUNT, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANNEL_NOTIFY, STATUS_UNHANDLED); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANNEL_START, STATUS_UNHANDLED); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANNEL_UPDATE, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHARACTER_LOGIN_FAILED, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAR_CREATE, STATUS_NEVER); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAR_CUSTOMIZE, STATUS_UNHANDLED); @@ -834,6 +844,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_CUSTOM_LOAD_SCREEN, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_DAMAGE_CALC_LOG, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_DANCE_QUERY_RESPONSE, STATUS_UNHANDLED); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_DANCE_STUDIO_CREATE_RESULT, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_DB_REPLY, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_DEATH_RELEASE_LOC, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_DEBUG_RUNE_REGEN, STATUS_UNHANDLED); @@ -1165,6 +1176,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_CREDIT, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_LOG_DATA, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_OPTIONS_ENABLED, STATUS_UNHANDLED); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_SEASON, STATUS_NEVER); DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_QUESTS_COMPLETED_RESPONSE, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_TIME_RESPONSE, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUESTGIVER_OFFER_REWARD, STATUS_UNHANDLED); @@ -1353,7 +1365,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_LAST_INSTANCE, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_OBJECT, STATUS_NEVER); DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_SERVER_PLAYER_POSITION, STATUS_UNHANDLED); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_WORLD_STATE, STATUS_UNHANDLED); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_WORLD_STATE, STATUS_NEVER); DEFINE_SERVER_OPCODE_HANDLER(SMSG_USERLIST_ADD, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_USERLIST_REMOVE, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_USERLIST_UPDATE, STATUS_UNHANDLED); diff --git a/src/server/game/Server/Protocol/Opcodes.h b/src/server/game/Server/Protocol/Opcodes.h index c20dc4b81c9..879554e8bd6 100644 --- a/src/server/game/Server/Protocol/Opcodes.h +++ b/src/server/game/Server/Protocol/Opcodes.h @@ -105,6 +105,8 @@ enum OpcodeClient : uint32 CMSG_BATTLEMASTER_JOIN_RATED = 0xBADD, CMSG_BATTLEMASTER_HELLO = 0xBADD, CMSG_BATTLE_PAY_GET_PRODUCT_LIST_QUERY = 0x1389, + CMSG_BATTLE_PAY_GET_PURCHASE_LIST_QUERY = 0x120C, + CMSG_BATTLE_PET_NAME_QUERY = 0x041C, CMSG_BEGIN_TRADE = 0xBADD, CMSG_BINDER_ACTIVATE = 0xBADD, CMSG_BOT_DETECTED2 = 0xBADD, @@ -130,7 +132,7 @@ enum OpcodeClient : uint32 CMSG_CALENDAR_GUILD_FILTER = 0xBADD, CMSG_CALENDAR_REMOVE_EVENT = 0xBADD, CMSG_CALENDAR_UPDATE_EVENT = 0xBADD, - CMSG_CANCEL_AURA = 0xBADD, + CMSG_CANCEL_AURA = 0x08AE, CMSG_CANCEL_AUTO_REPEAT_SPELL = 0xBADD, CMSG_CANCEL_CAST = 0xBADD, CMSG_CANCEL_CHANNELLING = 0xBADD, @@ -214,7 +216,7 @@ enum OpcodeClient : uint32 CMSG_EQUIPMENT_SET_USE = 0xBADD, CMSG_FACTION_BONUS_INFO = 0x0928, CMSG_FAR_SIGHT = 0xBADD, - CMSG_FORCE_MOVE_ROOT_ACK = 0xBADD, + CMSG_FORCE_MOVE_ROOT_ACK = 0x0B73, CMSG_FORCE_MOVE_UNROOT_ACK = 0xBADD, CMSG_GAMEOBJECT_QUERY = 0x03AE, CMSG_GAMEOBJ_REPORT_USE = 0x082E, @@ -385,7 +387,7 @@ enum OpcodeClient : uint32 CMSG_MOVE_FORCE_SWIM_SPEED_CHANGE_ACK = 0xBADD, CMSG_MOVE_FORCE_TURN_RATE_CHANGE_ACK = 0xBADD, CMSG_MOVE_FORCE_WALK_SPEED_CHANGE_ACK = 0xBADD, - CMSG_MOVE_GRAVITY_DISABLE_ACK = 0xBADD, + CMSG_MOVE_GRAVITY_DISABLE_ACK = 0x0553, CMSG_MOVE_GRAVITY_ENABLE_ACK = 0xBADD, CMSG_MOVE_HEARTBEAT = 0x19C1, CMSG_MOVE_HOVER_ACK = 0xBADD, @@ -396,7 +398,7 @@ enum OpcodeClient : uint32 CMSG_MOVE_SET_CAN_FLY = 0xBADD, CMSG_MOVE_SET_CAN_FLY_ACK = 0xBADD, CMSG_MOVE_SET_CAN_TRANSITION_BETWEEN_SWIM_AND_FLY_ACK = 0xBADD, - CMSG_MOVE_SET_COLLISION_HEIGHT_ACK = 0xBADD, + CMSG_MOVE_SET_COLLISION_HEIGHT_ACK = 0x0141, CMSG_MOVE_SET_RELATIVE_POSITION = 0xBADD, CMSG_MOVE_SET_VEHICLE_REC_ID_ACK = 0xBADD, CMSG_MOVE_SPLINE_DONE = 0xBADD, @@ -469,6 +471,7 @@ enum OpcodeClient : uint32 CMSG_QUEST_NPC_QUERY = 0x0B81, CMSG_QUEST_POI_QUERY = 0x0BD9, CMSG_QUEST_QUERY = 0x09A6, + CMSG_QUEUED_MESSAGES_END = 0x04DF, CMSG_RANDOMIZE_CHAR_NAME = 0x1981, CMSG_READ_ITEM = 0xBADD, CMSG_REALM_SPLIT = 0xBADD, @@ -496,7 +499,7 @@ enum OpcodeClient : uint32 CMSG_REQUEST_VEHICLE_NEXT_SEAT = 0xBADD, CMSG_REQUEST_VEHICLE_PREV_SEAT = 0xBADD, CMSG_REQUEST_VEHICLE_SWITCH_SEAT = 0xBADD, - CMSG_RESET_FACTION_CHEAT = 0x0C56, + CMSG_RESET_FACTION_CHEAT = 0xBADD, CMSG_RESET_INSTANCES = 0xBADD, CMSG_RESURRECT_RESPONSE = 0xBADD, CMSG_RETURN_TO_GRAVEYARD = 0xBADD, @@ -528,10 +531,11 @@ enum OpcodeClient : uint32 CMSG_SET_FACTION_INACTIVE = 0xBADD, CMSG_SET_GUILD_BANK_TEXT = 0xBADD, CMSG_SET_LFG_COMMENT = 0xBADD, + CMSG_SET_LOOT_SPECIALIZATION = 0x0226, CMSG_SET_PET_SLOT = 0xBADD, CMSG_SET_PLAYER_DECLINED_NAMES = 0xBADD, CMSG_SET_PREFERED_CEMETERY = 0xBADD, - CMSG_SET_RAID_DIFFICULTY = 0x04DF, + CMSG_SET_RAID_DIFFICULTY = 0xBADD, CMSG_SET_RELATIVE_POSITION = 0xBADD, CMSG_SET_SAVED_INSTANCE_EXTEND = 0xBADD, CMSG_SET_SELECTION = 0x05BD, @@ -547,7 +551,7 @@ enum OpcodeClient : uint32 CMSG_SHOWING_CLOAK = 0x0132, CMSG_SHOWING_HELM = 0x11E1, CMSG_SOCKET_GEMS = 0xBADD, - CMSG_SPELLCLICK = 0xBADD, + CMSG_SPELLCLICK = 0x0BC2, CMSG_SPIRIT_HEALER_ACTIVATE = 0xBADD, CMSG_SPLIT_ITEM = 0xBADD, CMSG_STANDSTATECHANGE = 0xBADD, @@ -558,6 +562,7 @@ enum OpcodeClient : uint32 CMSG_SUBMIT_COMPLAIN = 0xBADD, CMSG_SUGGESTION_SUBMIT = 0xBADD, CMSG_SUMMON_RESPONSE = 0xBADD, + CMSG_SUSPEND_COMMS_ACK = 0x0C56, CMSG_SUSPEND_TOKEN_RESPONSE = 0x0142, CMSG_SWAP_INV_ITEM = 0xBADD, CMSG_SWAP_ITEM = 0xBADD, @@ -576,7 +581,7 @@ enum OpcodeClient : uint32 CMSG_TOTEM_DESTROYED = 0xBADD, CMSG_TRAINER_BUY_SPELL = 0xBADD, CMSG_TRAINER_LIST = 0xBADD, - CMSG_TRANSMOGRIFY_ITEMS = 0xBADD, + CMSG_TRANSMOGRIFY_ITEMS = 0x0A85, CMSG_TRIGGER_CINEMATIC_CHEAT = 0xBADD, CMSG_TURN_IN_PETITION = 0xBADD, CMSG_TUTORIAL_CLEAR = 0xBADD, @@ -596,9 +601,9 @@ enum OpcodeClient : uint32 CMSG_VIOLENCE_LEVEL = 0x098D, CMSG_VOICE_SESSION_ENABLE = 0xBADD, CMSG_VOID_STORAGE_QUERY = 0x019E, - CMSG_VOID_STORAGE_TRANSFER = 0xBADD, + CMSG_VOID_STORAGE_TRANSFER = 0x0463, CMSG_VOID_STORAGE_UNLOCK = 0xBADD, - CMSG_VOID_SWAP_ITEM = 0xBADD, + CMSG_VOID_SWAP_ITEM = 0x0619, CMSG_WARDEN_DATA = 0x0BA1, CMSG_WARGAME_ACCEPT = 0xBADD, CMSG_WARGAME_START = 0xBADD, @@ -608,9 +613,6 @@ enum OpcodeClient : uint32 CMSG_WORLD_TELEPORT = 0xBADD, CMSG_WRAP_ITEM = 0xBADD, CMSG_ZONEUPDATE = 0xBADD, - MSG_AUCTION_HELLO = 0xBADD, - MSG_CHANNEL_START = 0xBADD, // SMSG only? - MSG_CHANNEL_UPDATE = 0xBADD, // SMSG only? MSG_CORPSE_QUERY = 0xBADD, MSG_GM_BIND_OTHER = 0xBADD, MSG_GM_SHOWLABEL = 0xBADD, @@ -680,6 +682,7 @@ enum OpcodeServer : uint32 { SMSG_ACCOUNT_DATA_TIMES = 0x0120, SMSG_ACCOUNT_INFO_RESPONSE = 0xBADD, + SMSG_ACCOUNT_MOUNT_UPDATE = 0x0140, SMSG_ACCOUNT_RESTRICTED_WARNING = 0xBADD, SMSG_ACHIEVEMENT_DELETED = 0xBADD, SMSG_ACHIEVEMENT_EARNED = 0xBADD, @@ -687,7 +690,7 @@ enum OpcodeServer : uint32 SMSG_ACTIVATETAXIREPLY = 0xBADD, SMSG_ADDON_INFO = 0x1D9F, SMSG_ADD_RUNE_POWER = 0xBADD, - SMSG_AI_REACTION = 0xBADD, + SMSG_AI_REACTION = 0x0BA1, SMSG_ALL_ACHIEVEMENT_DATA = 0xBADD, SMSG_ALL_ACHIEVEMENT_DATA_ACCOUNT = 0x0123, SMSG_ALL_ACHIEVEMENT_DATA_PLAYER = 0x0030, @@ -695,7 +698,6 @@ enum OpcodeServer : uint32 SMSG_AREA_TRIGGER_MESSAGE = 0xBADD, SMSG_AREA_TRIGGER_MOVEMENT_UPDATE = 0xBADD, SMSG_ARENA_ERROR = 0xBADD, - SMSG_ARENA_SEASON_WORLD_STATE = 0x09E3, SMSG_ARENA_UNIT_DESTROYED = 0xBADD, SMSG_ARENA_TEAM_CHANGE_FAILED_QUEUED = 0xBADD, SMSG_ARENA_TEAM_COMMAND_RESULT = 0xBADD, @@ -740,7 +742,7 @@ enum OpcodeServer : uint32 SMSG_BATTLEFIELD_MGR_STATE_CHANGE = 0xBADD, SMSG_BATTLEFIELD_PLAYER_POSITIONS = 0xBADD, SMSG_BATTLEFIELD_PORT_DENIED = 0xBADD, - SMSG_BATTLEFIELD_RATED_INFO = 0xBADD, + SMSG_BATTLEFIELD_RATED_INFO = 0x1F0A, SMSG_BATTLEFIELD_STATUS = 0xBADD, SMSG_BATTLEFIELD_STATUS_QUEUED = 0xBADD, SMSG_BATTLEFIELD_STATUS_ACTIVE = 0xBADD, @@ -750,8 +752,12 @@ enum OpcodeServer : uint32 SMSG_BATTLEGROUND_INFO_THROTTLED = 0xBADD, SMSG_BATTLEGROUND_PLAYER_JOINED = 0xBADD, SMSG_BATTLEGROUND_PLAYER_LEFT = 0xBADD, + SMSG_BATTLE_PAY_GET_DISTRIBUTION_LIST_RESPONSE = 0x0F2A, SMSG_BATTLE_PAY_GET_PRODUCT_LIST_RESPONSE = 0x12A4, + SMSG_BATTLE_PAY_GET_PURCHASE_LIST_RESPONSE = 0x168A, SMSG_BATTLE_PET_JOURNAL = 0x19A2, + SMSG_BATTLE_PET_JOURNAL_LOCK_ACQUIRED = 0x01A3, + SMSG_BATTLE_PET_NAME_QUERY_RESPONSE = 0x09EC, SMSG_BINDER_CONFIRM = 0xBADD, SMSG_BINDPOINTUPDATE = 0x0A30, SMSG_BINDZONEREPLY = 0xBADD, @@ -790,6 +796,8 @@ enum OpcodeServer : uint32 SMSG_CHANNEL_MEMBER_COUNT = 0xBADD, SMSG_CHANNEL_NOTIFY = 0x0643, SMSG_CHANNEL_NOTIFY_JOINED = 0x1602, + SMSG_CHANNEL_START = 0x016C, + SMSG_CHANNEL_UPDATE = 0x19DB, SMSG_CHARACTER_LOGIN_FAILED = 0xBADD, SMSG_CHAR_CREATE = 0x0107, SMSG_CHAR_CUSTOMIZE = 0xBADD, @@ -848,6 +856,7 @@ enum OpcodeServer : uint32 SMSG_DAMAGE_CALC_LOG = 0xBADD, SMSG_DAMAGE_DONE_OBSOLETE = 0xBADD, SMSG_DANCE_QUERY_RESPONSE = 0xBADD, + SMSG_DANCE_STUDIO_CREATE_RESULT = 0x178D, SMSG_DB_REPLY = 0x1939, SMSG_DEATH_RELEASE_LOC = 0xBADD, SMSG_DEBUG_RUNE_REGEN = 0xBADD, @@ -936,7 +945,7 @@ enum OpcodeServer : uint32 SMSG_GUILD_ACHIEVEMENT_MEMBERS = 0xBADD, SMSG_GUILD_BANK_LIST = 0xBADD, SMSG_GUILD_BANK_LOG_QUERY_RESULT = 0xBADD, - SMSG_GUILD_BANK_MONEY_WITHDRAWN = 0xBADD, + SMSG_GUILD_BANK_MONEY_WITHDRAWN = 0x1047, SMSG_GUILD_BANK_QUERY_TEXT_RESULT = 0xBADD, SMSG_GUILD_CANCEL = 0xBADD, SMSG_GUILD_CHALLENGE_COMPLETED = 0xBADD, @@ -965,7 +974,7 @@ enum OpcodeServer : uint32 SMSG_GUILD_NEWS_DELETED = 0xBADD, SMSG_GUILD_NEWS_UPDATE = 0xBADD, SMSG_GUILD_PARTY_STATE_RESPONSE = 0x1225, - SMSG_GUILD_PERMISSIONS_QUERY_RESULTS = 0xBADD, + SMSG_GUILD_PERMISSIONS_QUERY_RESULTS = 0x1827, SMSG_GUILD_QUERY_RESPONSE = 0x1046, SMSG_GUILD_RANK = 0x1218, SMSG_GUILD_RANKS_UPDATE = 0xBADD, @@ -1091,16 +1100,16 @@ enum OpcodeServer : uint32 SMSG_MOVE_COLLISION_DISABLE = 0xBADD, SMSG_MOVE_COLLISION_ENABLE = 0xBADD, SMSG_MOVE_FEATHER_FALL = 0xBADD, - SMSG_MOVE_GRAVITY_DISABLE = 0xBADD, + SMSG_MOVE_GRAVITY_DISABLE = 0x02C6, SMSG_MOVE_GRAVITY_ENABLE = 0xBADD, SMSG_MOVE_KNOCK_BACK = 0xBADD, SMSG_MOVE_LAND_WALK = 0xBADD, SMSG_MOVE_NORMAL_FALL = 0xBADD, - SMSG_MOVE_ROOT = 0xBADD, + SMSG_MOVE_ROOT = 0x1B5A, SMSG_MOVE_SET_ACTIVE_MOVER = 0xBADD, SMSG_MOVE_SET_CAN_FLY = 0xBADD, SMSG_MOVE_SET_CAN_TRANSITION_BETWEEN_SWIM_AND_FLY = 0xBADD, - SMSG_MOVE_SET_COLLISION_HEIGHT = 0xBADD, + SMSG_MOVE_SET_COLLISION_HEIGHT = 0x008D, SMSG_MOVE_SET_COMPOUND_STATE = 0xBADD, SMSG_MOVE_SET_FLIGHT_BACK_SPEED = 0xBADD, SMSG_MOVE_SET_FLIGHT_SPEED = 0xBADD, @@ -1128,7 +1137,7 @@ enum OpcodeServer : uint32 SMSG_MOVE_UPDATE_RUN_SPEED = 0xBADD, SMSG_MOVE_UPDATE_SWIM_BACK_SPEED = 0xBADD, SMSG_MOVE_UPDATE_SWIM_SPEED = 0xBADD, - SMSG_MOVE_UPDATE_TELEPORT = 0xBADD, + SMSG_MOVE_UPDATE_TELEPORT = 0x03D5, SMSG_MOVE_UPDATE_TURN_RATE = 0xBADD, SMSG_MOVE_UPDATE_WALK_SPEED = 0xBADD, SMSG_MOVE_WATER_WALK = 0xBADD, @@ -1144,7 +1153,7 @@ enum OpcodeServer : uint32 SMSG_NPC_TEXT_UPDATE = 0x1122, SMSG_NPC_WONT_TALK = 0xBADD, SMSG_OFFER_PETITION_ERROR = 0xBADD, - SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA = 0xBADD, + SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA = 0x053F, SMSG_OPEN_CONTAINER = 0xBADD, SMSG_OPEN_LFG_DUNGEON_FINDER = 0xBADD, SMSG_OVERRIDE_LIGHT = 0xBADD, @@ -1189,7 +1198,7 @@ enum OpcodeServer : uint32 SMSG_PLAY_MUSIC = 0xBADD, SMSG_PLAY_OBJECT_SOUND = 0xBADD, SMSG_PLAY_ONE_SHOT_ANIM_KIT = 0xBADD, - SMSG_PLAY_SOUND = 0xBADD, + SMSG_PLAY_SOUND = 0x02D2, SMSG_PLAY_SPELL_VISUAL = 0xBADD, SMSG_PLAY_SPELL_VISUAL_KIT = 0xBADD, SMSG_PLAY_TIME_WARNING = 0xBADD, @@ -1202,8 +1211,9 @@ enum OpcodeServer : uint32 SMSG_PVP_CREDIT = 0xBADD, SMSG_PVP_LOG_DATA = 0xBADD, SMSG_PVP_OPTIONS_ENABLED = 0xBADD, + SMSG_PVP_SEASON = 0x09E3, SMSG_QUERY_QUESTS_COMPLETED_RESPONSE = 0xBADD, - SMSG_QUERY_TIME_RESPONSE = 0xBADD, + SMSG_QUERY_TIME_RESPONSE = 0x1DB0, SMSG_QUESTGIVER_OFFER_REWARD = 0xBADD, SMSG_QUESTGIVER_QUEST_COMPLETE = 0xBADD, SMSG_QUESTGIVER_QUEST_DETAILS = 0x15B3, @@ -1274,13 +1284,13 @@ enum OpcodeServer : uint32 SMSG_SET_FACTION_STANDING = 0xBADD, SMSG_SET_FACTION_VISIBLE = 0xBADD, SMSG_SET_FLAT_SPELL_MODIFIER = 0x1884, - SMSG_SET_FORCED_REACTIONS = 0xBADD, + SMSG_SET_FORCED_REACTIONS = 0x09A9, SMSG_SET_MELEE_ANIM_KIT = 0xBADD, SMSG_SET_MOVEMENT_ANIM_KIT = 0xBADD, SMSG_SET_PCT_SPELL_MODIFIER = 0x113C, SMSG_SET_PHASE_SHIFT = 0x00D1, SMSG_SET_PLAYER_DECLINED_NAMES_RESULT = 0xBADD, - SMSG_SET_PLAY_HOVER_ANIM = 0xBADD, + SMSG_SET_PLAY_HOVER_ANIM = 0x02D4, SMSG_SET_PROFICIENCY = 0x00D3, SMSG_SET_PROJECTILE_POSITION = 0xBADD, SMSG_SET_TIME_ZONE_INFORMATION = 0x153E, @@ -1310,11 +1320,11 @@ enum OpcodeServer : uint32 SMSG_SPELL_FAILURE = 0xBADD, SMSG_SPELL_GO = 0x1161, SMSG_SPELL_START = 0x0803, - SMSG_SPELL_UPDATE_CHAIN_TARGETS = 0xBADD, + SMSG_SPELL_UPDATE_CHAIN_TARGETS = 0x0374, SMSG_SPIRIT_HEALER_CONFIRM = 0xBADD, SMSG_SPLINE_MOVE_COLLISION_DISABLE = 0xBADD, SMSG_SPLINE_MOVE_COLLISION_ENABLE = 0xBADD, - SMSG_SPLINE_MOVE_GRAVITY_DISABLE = 0xBADD, + SMSG_SPLINE_MOVE_GRAVITY_DISABLE = 0x03B2, SMSG_SPLINE_MOVE_GRAVITY_ENABLE = 0xBADD, SMSG_SPLINE_MOVE_ROOT = 0xBADD, SMSG_SPLINE_MOVE_SET_ANIM = 0xBADD, @@ -1339,10 +1349,10 @@ enum OpcodeServer : uint32 SMSG_SPLINE_MOVE_STOP_SWIM = 0xBADD, SMSG_SPLINE_MOVE_UNROOT = 0xBADD, SMSG_SPLINE_MOVE_UNSET_FLYING = 0xBADD, - SMSG_SPLINE_MOVE_UNSET_HOVER = 0xBADD, + SMSG_SPLINE_MOVE_UNSET_HOVER = 0x1959, SMSG_SPLINE_MOVE_WATER_WALK = 0xBADD, SMSG_STABLE_RESULT = 0xBADD, - SMSG_STANDSTATE_UPDATE = 0xBADD, + SMSG_STANDSTATE_UPDATE = 0x1311, SMSG_START_MIRROR_TIMER = 0xBADD, SMSG_START_TIMER = 0xBADD, SMSG_STOP_DANCE = 0xBADD, @@ -1404,11 +1414,11 @@ enum OpcodeServer : uint32 SMSG_VOICE_SESSION_LEAVE = 0xBADD, SMSG_VOICE_SESSION_ROSTER_UPDATE = 0xBADD, SMSG_VOICE_SET_TALKER_MUTED = 0xBADD, - SMSG_VOID_ITEM_SWAP_RESPONSE = 0xBADD, + SMSG_VOID_ITEM_SWAP_RESPONSE = 0x1131, SMSG_VOID_STORAGE_CONTENTS = 0x0108, SMSG_VOID_STORAGE_FAILED = 0xBADD, - SMSG_VOID_STORAGE_TRANSFER_CHANGES = 0xBADD, - SMSG_VOID_TRANSFER_RESULT = 0xBADD, + SMSG_VOID_STORAGE_TRANSFER_CHANGES = 0x0321, + SMSG_VOID_TRANSFER_RESULT = 0x0539, SMSG_WAIT_QUEUE_FINISH = 0xBADD, SMSG_WAIT_QUEUE_UPDATE = 0xBADD, SMSG_WARDEN_DATA = 0x0BEC, diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 659e7ad46ef..2dc6aa3f7a7 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -4207,7 +4207,7 @@ void Spell::SendChannelUpdate(uint32 time) m_caster->SetUInt32Value(UNIT_CHANNEL_SPELL, 0); } - WorldPacket data(MSG_CHANNEL_UPDATE, 8+4); + WorldPacket data(SMSG_CHANNEL_UPDATE, 8+4); data << m_caster->GetPackGUID(); data << uint32(time); @@ -4221,7 +4221,7 @@ void Spell::SendChannelStart(uint32 duration) if (m_UniqueTargetInfo.size() + m_UniqueGOTargetInfo.size() == 1) // this is for TARGET_SELECT_CATEGORY_NEARBY channelTarget = !m_UniqueTargetInfo.empty() ? m_UniqueTargetInfo.front().targetGUID : m_UniqueGOTargetInfo.front().targetGUID; - WorldPacket data(MSG_CHANNEL_START, (8+4+4)); + WorldPacket data(SMSG_CHANNEL_START, (8+4+4)); data << m_caster->GetPackGUID(); data << uint32(m_spellInfo->Id); data << uint32(duration); diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index f2248ebf3e2..8bc360abf4d 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -1086,11 +1086,11 @@ void World::LoadConfigSettings(bool reload) m_int_configs[CONFIG_ARENA_RATED_UPDATE_TIMER] = sConfigMgr->GetIntDefault ("Arena.RatedUpdateTimer", 5 * IN_MILLISECONDS); m_bool_configs[CONFIG_ARENA_QUEUE_ANNOUNCER_ENABLE] = sConfigMgr->GetBoolDefault("Arena.QueueAnnouncer.Enable", false); m_bool_configs[CONFIG_ARENA_QUEUE_ANNOUNCER_PLAYERONLY] = sConfigMgr->GetBoolDefault("Arena.QueueAnnouncer.PlayerOnly", false); - m_int_configs[CONFIG_ARENA_SEASON_ID] = sConfigMgr->GetIntDefault ("Arena.ArenaSeason.ID", 1); + m_int_configs[CONFIG_ARENA_SEASON_ID] = sConfigMgr->GetIntDefault ("Arena.ArenaSeason.ID", 15); m_int_configs[CONFIG_ARENA_START_RATING] = sConfigMgr->GetIntDefault ("Arena.ArenaStartRating", 0); m_int_configs[CONFIG_ARENA_START_PERSONAL_RATING] = sConfigMgr->GetIntDefault ("Arena.ArenaStartPersonalRating", 1000); m_int_configs[CONFIG_ARENA_START_MATCHMAKER_RATING] = sConfigMgr->GetIntDefault ("Arena.ArenaStartMatchmakerRating", 1500); - m_bool_configs[CONFIG_ARENA_SEASON_IN_PROGRESS] = sConfigMgr->GetBoolDefault("Arena.ArenaSeason.InProgress", true); + m_bool_configs[CONFIG_ARENA_SEASON_IN_PROGRESS] = sConfigMgr->GetBoolDefault("Arena.ArenaSeason.InProgress", false); m_bool_configs[CONFIG_ARENA_LOG_EXTENDED_INFO] = sConfigMgr->GetBoolDefault("ArenaLog.ExtendedInfo", false); m_bool_configs[CONFIG_OFFHAND_CHECK_AT_SPELL_UNLEARN] = sConfigMgr->GetBoolDefault("OffhandCheckAtSpellUnlearn", true); @@ -2216,7 +2216,7 @@ void World::ForceGameEventUpdate() } /// Send a packet to all players (except self if mentioned) -void World::SendGlobalMessage(WorldPacket* packet, WorldSession* self, uint32 team) +void World::SendGlobalMessage(WorldPacket const* packet, WorldSession* self, uint32 team) { SessionMap::const_iterator itr; for (itr = m_sessions.begin(); itr != m_sessions.end(); ++itr) @@ -2233,7 +2233,7 @@ void World::SendGlobalMessage(WorldPacket* packet, WorldSession* self, uint32 te } /// Send a packet to all GMs (except self if mentioned) -void World::SendGlobalGMMessage(WorldPacket* packet, WorldSession* self, uint32 team) +void World::SendGlobalGMMessage(WorldPacket const* packet, WorldSession* self, uint32 team) { for (SessionMap::const_iterator itr = m_sessions.begin(); itr != m_sessions.end(); ++itr) { @@ -2361,7 +2361,7 @@ void World::SendGlobalText(const char* text, WorldSession* self) } /// Send a packet to all players (or players selected team) in the zone (except self if mentioned) -bool World::SendZoneMessage(uint32 zone, WorldPacket* packet, WorldSession* self, uint32 team) +bool World::SendZoneMessage(uint32 zone, WorldPacket const* packet, WorldSession* self, uint32 team) { bool foundPlayerToSend = false; SessionMap::const_iterator itr; diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h index 48f6271b558..7bf8f5b70e7 100644 --- a/src/server/game/World/World.h +++ b/src/server/game/World/World.h @@ -662,9 +662,9 @@ class World void SendGlobalText(const char* text, WorldSession* self); void SendGMText(uint32 string_id, ...); void SendServerMessage(ServerMessageType type, const char *text = "", Player* player = NULL); - void SendGlobalMessage(WorldPacket* packet, WorldSession* self = nullptr, uint32 team = 0); - void SendGlobalGMMessage(WorldPacket* packet, WorldSession* self = nullptr, uint32 team = 0); - bool SendZoneMessage(uint32 zone, WorldPacket* packet, WorldSession* self = nullptr, uint32 team = 0); + void SendGlobalMessage(WorldPacket const* packet, WorldSession* self = nullptr, uint32 team = 0); + void SendGlobalGMMessage(WorldPacket const* packet, WorldSession* self = nullptr, uint32 team = 0); + bool SendZoneMessage(uint32 zone, WorldPacket const* packet, WorldSession* self = nullptr, uint32 team = 0); void SendZoneText(uint32 zone, const char *text, WorldSession* self = nullptr, uint32 team = 0); /// Are we in the middle of a shutdown? diff --git a/src/server/worldserver/Main.cpp b/src/server/worldserver/Main.cpp index d4f5c086f4b..821e1f5bd83 100644 --- a/src/server/worldserver/Main.cpp +++ b/src/server/worldserver/Main.cpp @@ -511,6 +511,7 @@ bool LoadRealmInfo() realm.Id.Build = fields[11].GetUInt32(); realm.Id.Region = fields[12].GetUInt8(); realm.Id.Battlegroup = fields[13].GetUInt8(); + return true; } /// Initialize connection to the databases diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist index 3d59b6216f8..e4406e7ecce 100644 --- a/src/server/worldserver/worldserver.conf.dist +++ b/src/server/worldserver/worldserver.conf.dist @@ -2265,9 +2265,9 @@ Arena.QueueAnnouncer.Enable = 0 # # Arena.ArenaSeason.ID # Description: Current arena season id shown in clients. -# Default: 8 +# Default: 15 -Arena.ArenaSeason.ID = 8 +Arena.ArenaSeason.ID = 15 # # Arena.ArenaSeason.InProgress |