diff options
Diffstat (limited to 'src')
33 files changed, 975 insertions, 784 deletions
diff --git a/src/server/database/Database/Implementation/CharacterDatabase.cpp b/src/server/database/Database/Implementation/CharacterDatabase.cpp index 29c43f2871b..dc39e147e52 100644 --- a/src/server/database/Database/Implementation/CharacterDatabase.cpp +++ b/src/server/database/Database/Implementation/CharacterDatabase.cpp @@ -312,7 +312,7 @@ void CharacterDatabaseConnection::DoPrepareStatements() PrepareStatement(CHAR_DEL_GUILD_MEMBER_WITHDRAW, "DELETE FROM guild_member_withdraw", CONNECTION_ASYNC); // 0: uint32, 1: uint32, 2: uint32 - PrepareStatement(CHAR_SEL_CHAR_DATA_FOR_GUILD, "SELECT name, level, class, gender, zone, account FROM characters WHERE guid = ?", CONNECTION_SYNCH); + PrepareStatement(CHAR_SEL_CHAR_DATA_FOR_GUILD, "SELECT name, level, race, class, gender, zone, account FROM characters WHERE guid = ?", CONNECTION_SYNCH); PrepareStatement(CHAR_DEL_GUILD_ACHIEVEMENT, "DELETE FROM guild_achievement WHERE guildId = ? AND achievement = ?", CONNECTION_ASYNC); PrepareStatement(CHAR_INS_GUILD_ACHIEVEMENT, "INSERT INTO guild_achievement (guildId, achievement, date, guids) VALUES (?, ?, ?, ?)", CONNECTION_ASYNC); PrepareStatement(CHAR_DEL_GUILD_ACHIEVEMENT_CRITERIA, "DELETE FROM guild_achievement_progress WHERE guildId = ? AND criteria = ?", CONNECTION_ASYNC); @@ -447,8 +447,8 @@ void CharacterDatabaseConnection::DoPrepareStatements() PrepareStatement(CHAR_DEL_ALL_GM_BUGS, "DELETE FROM gm_bug", CONNECTION_ASYNC); // GM Complaint - PrepareStatement(CHAR_SEL_GM_COMPLAINTS, "SELECT id, playerGuid, note, createTime, mapId, posX, posY, posZ, facing, targetCharacterGuid, complaintType, reportLineIndex, assignedTo, closedBy, comment FROM gm_complaint", CONNECTION_SYNCH); - PrepareStatement(CHAR_REP_GM_COMPLAINT, "REPLACE INTO gm_complaint (id, playerGuid, note, createTime, mapId, posX, posY, posZ, facing, targetCharacterGuid, complaintType, reportLineIndex, assignedTo, closedBy, comment) VALUES (?, ?, ?, UNIX_TIMESTAMP(NOW()), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC); + PrepareStatement(CHAR_SEL_GM_COMPLAINTS, "SELECT id, playerGuid, note, createTime, mapId, posX, posY, posZ, facing, targetCharacterGuid, reportType, reportMajorCategory, reportMinorCategoryFlags, reportLineIndex, assignedTo, closedBy, comment FROM gm_complaint", CONNECTION_SYNCH); + PrepareStatement(CHAR_REP_GM_COMPLAINT, "REPLACE INTO gm_complaint (id, playerGuid, note, createTime, mapId, posX, posY, posZ, facing, targetCharacterGuid, reportType, reportMajorCategory, reportMinorCategoryFlags, reportLineIndex, assignedTo, closedBy, comment) VALUES (?, ?, ?, UNIX_TIMESTAMP(NOW()), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC); PrepareStatement(CHAR_DEL_GM_COMPLAINT, "DELETE FROM gm_complaint WHERE id = ?", CONNECTION_ASYNC); PrepareStatement(CHAR_SEL_GM_COMPLAINT_CHATLINES, "SELECT timestamp, text FROM gm_complaint_chatlog WHERE complaintId = ? ORDER BY lineId ASC", CONNECTION_SYNCH); PrepareStatement(CHAR_INS_GM_COMPLAINT_CHATLINE, "INSERT INTO gm_complaint_chatlog (complaintId, lineId, timestamp, text) VALUES (?, ?, ?, ?)", CONNECTION_ASYNC); diff --git a/src/server/game/Entities/Object/Updates/UpdateFields.cpp b/src/server/game/Entities/Object/Updates/UpdateFields.cpp index 591aeb657ac..70e228847b4 100644 --- a/src/server/game/Entities/Object/Updates/UpdateFields.cpp +++ b/src/server/game/Entities/Object/Updates/UpdateFields.cpp @@ -2998,7 +2998,7 @@ void ActivePlayerData::WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> f for (uint32 i = 0; i < 12; ++i) { data << uint32(BuybackPrice[i]); - data << uint32(BuybackTimestamp[i]); + data << int64(BuybackTimestamp[i]); } data << uint16(TodayHonorableKills); data << uint16(YesterdayHonorableKills); @@ -4036,7 +4036,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo } if (changesMask[605 + i]) { - data << uint32(BuybackTimestamp[i]); + data << int64(BuybackTimestamp[i]); } } } diff --git a/src/server/game/Entities/Object/Updates/UpdateFields.h b/src/server/game/Entities/Object/Updates/UpdateFields.h index e3cfb83fa40..a4fcd0b65dd 100644 --- a/src/server/game/Entities/Object/Updates/UpdateFields.h +++ b/src/server/game/Entities/Object/Updates/UpdateFields.h @@ -772,7 +772,7 @@ struct ActivePlayerData : public IsUpdateFieldStructureTag, public HasChangesMas UpdateFieldArray<float, 3, 585, 586> WeaponDmgMultipliers; UpdateFieldArray<float, 3, 585, 589> WeaponAtkSpeedMultipliers; UpdateFieldArray<uint32, 12, 592, 593> BuybackPrice; - UpdateFieldArray<uint32, 12, 592, 605> BuybackTimestamp; + UpdateFieldArray<int64, 12, 592, 605> BuybackTimestamp; UpdateFieldArray<int32, 32, 617, 618> CombatRatings; UpdateFieldArray<UF::PVPInfo, 6, 650, 651> PvpInfo; UpdateFieldArray<uint32, 4, 657, 658> NoReagentCostMask; diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 9a291f099f5..e35a3a80aa4 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -13727,7 +13727,7 @@ void Player::AddItemToBuyBackSlot(Item* pItem) // if current back slot non-empty search oldest or free if (m_items[slot]) { - uint32 oldest_time = m_activePlayerData->BuybackTimestamp[0]; + time_t oldest_time = m_activePlayerData->BuybackTimestamp[0]; uint32 oldest_slot = BUYBACK_SLOT_START; for (uint32 i = BUYBACK_SLOT_START + 1; i < BUYBACK_SLOT_END; ++i) @@ -13739,7 +13739,7 @@ void Player::AddItemToBuyBackSlot(Item* pItem) break; } - uint32 i_time = m_activePlayerData->BuybackTimestamp[i - BUYBACK_SLOT_START]; + time_t i_time = m_activePlayerData->BuybackTimestamp[i - BUYBACK_SLOT_START]; if (oldest_time > i_time) { diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 0098e0742dd..969d3f3debf 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -1483,7 +1483,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player> void SwapItem(uint16 src, uint16 dst); void AddItemToBuyBackSlot(Item* pItem); void SetBuybackPrice(uint32 slot, uint32 price) { SetUpdateFieldValue(m_values.ModifyValue(&Player::m_activePlayerData).ModifyValue(&UF::ActivePlayerData::BuybackPrice, slot), price); } - void SetBuybackTimestamp(uint32 slot, uint32 timestamp) { SetUpdateFieldValue(m_values.ModifyValue(&Player::m_activePlayerData).ModifyValue(&UF::ActivePlayerData::BuybackTimestamp, slot), timestamp); } + void SetBuybackTimestamp(uint32 slot, time_t timestamp) { SetUpdateFieldValue(m_values.ModifyValue(&Player::m_activePlayerData).ModifyValue(&UF::ActivePlayerData::BuybackTimestamp, slot), timestamp); } Item* GetItemFromBuyBackSlot(uint32 slot); void RemoveItemFromBuyBackSlot(uint32 slot, bool del); void SendEquipError(InventoryResult msg, Item const* item1 = nullptr, Item const* item2 = nullptr, uint32 itemId = 0) const; diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp index 4dfa4dd7b7f..e886dfcee16 100644 --- a/src/server/game/Groups/Group.cpp +++ b/src/server/game/Groups/Group.cpp @@ -452,6 +452,7 @@ bool Group::AddMember(Player* player) MemberSlot member; member.guid = player->GetGUID(); member.name = player->GetName(); + member.race = Races(player->GetRace()); member._class = player->GetClass(); member.group = subGroup; member.flags = 0; @@ -1551,6 +1552,10 @@ void Group::SendUpdateToPlayer(ObjectGuid playerGUID, MemberSlot* slot) playerInfos.Name = citr->name; playerInfos.Class = citr->_class; + ChrRacesEntry const* race = sChrRacesStore.AssertEntry(citr->race); + FactionTemplateEntry const* raceFaction = sFactionTemplateStore.AssertEntry(race->FactionID); + playerInfos.FactionGroup = raceFaction->FactionGroup; + playerInfos.Status = MEMBER_STATUS_OFFLINE; if (member && member->GetSession() && !member->GetSession()->PlayerLogout()) playerInfos.Status = MEMBER_STATUS_ONLINE | (isBGGroup() || isBFGroup() ? MEMBER_STATUS_PVP : 0); diff --git a/src/server/game/Groups/Group.h b/src/server/game/Groups/Group.h index 95cb2fc00bc..7f72e6e8d6a 100644 --- a/src/server/game/Groups/Group.h +++ b/src/server/game/Groups/Group.h @@ -23,6 +23,7 @@ #include "GroupRefManager.h" #include "Loot.h" #include "Object.h" +#include "RaceMask.h" #include "SharedDefines.h" #include "Timer.h" #include <map> @@ -224,6 +225,7 @@ class TC_GAME_API Group { ObjectGuid guid; std::string name; + Races race; uint8 _class; uint8 group; uint8 flags; diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp index 83c8894fc82..d7e5bd9bf41 100644 --- a/src/server/game/Guilds/Guild.cpp +++ b/src/server/game/Guilds/Guild.cpp @@ -513,6 +513,7 @@ Guild::Member::Member(ObjectGuid::LowType guildId, ObjectGuid guid, GuildRankId m_guid(guid), m_zoneId(0), m_level(0), + m_race(0), m_class(0), m_gender(0), m_flags(GUILDMEMBER_STATUS_NONE), @@ -531,6 +532,7 @@ void Guild::Member::SetStats(Player* player) { m_name = player->GetName(); m_level = player->GetLevel(); + m_race = player->GetRace(); m_class = player->GetClass(); m_gender = player->GetNativeGender(); m_zoneId = player->GetZoneId(); @@ -538,10 +540,11 @@ void Guild::Member::SetStats(Player* player) m_achievementPoints = player->GetAchievementPoints(); } -void Guild::Member::SetStats(std::string_view name, uint8 level, uint8 _class, uint8 gender, uint32 zoneId, uint32 accountId, uint32 reputation) +void Guild::Member::SetStats(std::string_view name, uint8 level, uint8 race, uint8 _class, uint8 gender, uint32 zoneId, uint32 accountId, uint32 reputation) { m_name = name; m_level = level; + m_race = race; m_class = _class; m_gender = gender; m_zoneId = zoneId; @@ -620,12 +623,13 @@ bool Guild::Member::LoadFromDB(Field* fields) SetStats(fields[14].GetString(), fields[15].GetUInt8(), // characters.level - fields[16].GetUInt8(), // characters.class - fields[17].GetUInt8(), // characters.gender - fields[18].GetUInt16(), // characters.zone - fields[19].GetUInt32(), // characters.account + fields[16].GetUInt8(), // characters.race + fields[17].GetUInt8(), // characters.class + fields[18].GetUInt8(), // characters.gender + fields[19].GetUInt16(), // characters.zone + fields[20].GetUInt32(), // characters.account 0); - m_logoutTime = fields[20].GetUInt64(); // characters.logout_time + m_logoutTime = fields[21].GetUInt64(); // characters.logout_time m_totalActivity = 0; m_weekActivity = 0; m_weekReputation = 0; @@ -652,7 +656,13 @@ bool Guild::Member::CheckStats() const return false; } - if (m_class < CLASS_WARRIOR || m_class >= MAX_CLASSES) + if (!sChrRacesStore.LookupEntry(m_race)) + { + TC_LOG_ERROR("guild", "%s has a broken data in field `characters`.`race`, deleting him from guild!", m_guid.ToString().c_str()); + return false; + } + + if (!sChrClassesStore.LookupEntry(m_class)) { TC_LOG_ERROR("guild", "%s has a broken data in field `characters`.`class`, deleting him from guild!", m_guid.ToString().c_str()); return false; @@ -1321,6 +1331,7 @@ void Guild::HandleRoster(WorldSession* session) memberData.Level = member.GetLevel(); memberData.ClassID = member.GetClass(); memberData.Gender = member.GetGender(); + memberData.RaceID = member.GetRace(); memberData.Authenticated = false; memberData.SorEligible = false; @@ -2776,8 +2787,9 @@ bool Guild::AddMember(CharacterDatabaseTransaction trans, ObjectGuid guid, Optio fields[1].GetUInt8(), fields[2].GetUInt8(), fields[3].GetUInt8(), - fields[4].GetUInt16(), - fields[5].GetUInt32(), + fields[4].GetUInt8(), + fields[5].GetUInt16(), + fields[6].GetUInt32(), 0); ok = member.CheckStats(); diff --git a/src/server/game/Guilds/Guild.h b/src/server/game/Guilds/Guild.h index 179ee6073de..eb33be36bcb 100644 --- a/src/server/game/Guilds/Guild.h +++ b/src/server/game/Guilds/Guild.h @@ -312,7 +312,7 @@ class TC_GAME_API Guild Member(ObjectGuid::LowType guildId, ObjectGuid guid, GuildRankId rankId); void SetStats(Player* player); - void SetStats(std::string_view name, uint8 level, uint8 _class, uint8 gender, uint32 zoneId, uint32 accountId, uint32 reputation); + void SetStats(std::string_view name, uint8 level, uint8 race, uint8 _class, uint8 gender, uint32 zoneId, uint32 accountId, uint32 reputation); bool CheckStats() const; void SetPublicNote(std::string_view publicNote); @@ -336,6 +336,7 @@ class TC_GAME_API Guild float GetInactiveDays() const; std::string GetPublicNote() const { return m_publicNote; } std::string GetOfficerNote() const { return m_officerNote; } + uint8 GetRace() const { return m_race; } uint8 GetClass() const { return m_class; } uint8 GetGender() const { return m_gender; } uint8 GetLevel() const { return m_level; } @@ -375,6 +376,7 @@ class TC_GAME_API Guild std::string m_name; uint32 m_zoneId; uint8 m_level; + uint8 m_race; uint8 m_class; uint8 m_gender; uint8 m_flags; diff --git a/src/server/game/Guilds/GuildMgr.cpp b/src/server/game/Guilds/GuildMgr.cpp index a95f47e55c9..155284130e7 100644 --- a/src/server/game/Guilds/GuildMgr.cpp +++ b/src/server/game/Guilds/GuildMgr.cpp @@ -201,8 +201,8 @@ void GuildMgr::LoadGuilds() // 0 1 2 3 4 5 6 7 8 9 10 QueryResult result = CharacterDatabase.Query("SELECT gm.guildid, gm.guid, `rank`, pnote, offnote, w.tab0, w.tab1, w.tab2, w.tab3, w.tab4, w.tab5, " - // 11 12 13 14 15 16 17 18 19 20 - "w.tab6, w.tab7, w.money, c.name, c.level, c.class, c.gender, c.zone, c.account, c.logout_time " + // 11 12 13 14 15 16 17 18 19 20 21 + "w.tab6, w.tab7, w.money, c.name, c.level, c.race, c.class, c.gender, c.zone, c.account, c.logout_time " "FROM guild_member gm " "LEFT JOIN guild_member_withdraw w ON gm.guid = w.guid " "LEFT JOIN characters c ON c.guid = gm.guid ORDER BY gm.guildid ASC"); diff --git a/src/server/game/Handlers/AuctionHouseHandler.cpp b/src/server/game/Handlers/AuctionHouseHandler.cpp index 59ddbcbae8f..85e114a08ec 100644 --- a/src/server/game/Handlers/AuctionHouseHandler.cpp +++ b/src/server/game/Handlers/AuctionHouseHandler.cpp @@ -579,6 +579,35 @@ void WorldSession::HandleAuctionReplicateItems(WorldPackets::AuctionHouse::Aucti SendPacket(response.Write()); } +void WorldSession::HandleAuctionRequestFavoriteList(WorldPackets::AuctionHouse::AuctionRequestFavoriteList& /*requestFavoriteList*/) +{ + CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_FAVORITE_AUCTIONS); + stmt->setUInt64(0, _player->GetGUID().GetCounter()); + GetQueryProcessor().AddCallback(CharacterDatabase.AsyncQuery(stmt)).WithPreparedCallback([this](PreparedQueryResult favoriteAuctionResult) + { + WorldPackets::AuctionHouse::AuctionFavoriteList favoriteItems; + if (favoriteAuctionResult) + { + favoriteItems.Items.reserve(favoriteAuctionResult->GetRowCount()); + + do + { + Field* fields = favoriteAuctionResult->Fetch(); + + WorldPackets::AuctionHouse::AuctionFavoriteInfo& item = favoriteItems.Items.emplace_back(); + item.Order = fields[0].GetUInt32(); + item.ItemID = fields[1].GetUInt32(); + item.ItemLevel = fields[2].GetUInt32(); + item.BattlePetSpeciesID = fields[3].GetUInt32(); + item.SuffixItemNameDescriptionID = fields[4].GetUInt32(); + + } while (favoriteAuctionResult->NextRow()); + + } + SendPacket(favoriteItems.Write()); + }); +} + void WorldSession::HandleAuctionSellCommodity(WorldPackets::AuctionHouse::AuctionSellCommodity& sellCommodity) { AuctionThrottleResult throttle = sAuctionMgr->CheckThrottle(_player, sellCommodity.TaintedBy.has_value(), AuctionCommand::SellItem); diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp index 609a1e2ff9f..214e6aefcaa 100644 --- a/src/server/game/Handlers/CharacterHandler.cpp +++ b/src/server/game/Handlers/CharacterHandler.cpp @@ -1235,33 +1235,6 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder const& holder) // Place character in world (and load zone) before some object loading pCurrChar->LoadCorpse(holder.GetPreparedResult(PLAYER_LOGIN_QUERY_LOAD_CORPSE_LOCATION)); - stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_FAVORITE_AUCTIONS); - stmt->setUInt64(0, pCurrChar->GetGUID().GetCounter()); - GetQueryProcessor().AddCallback(CharacterDatabase.AsyncQuery(stmt)).WithPreparedCallback([this](PreparedQueryResult favoriteAuctionResult) - { - WorldPackets::AuctionHouse::AuctionFavoriteList favoriteItems; - if (favoriteAuctionResult) - { - favoriteItems.Items.reserve(favoriteAuctionResult->GetRowCount()); - - do - { - Field* fields = favoriteAuctionResult->Fetch(); - - favoriteItems.Items.emplace_back(); - WorldPackets::AuctionHouse::AuctionFavoriteInfo& item = favoriteItems.Items.back(); - item.Order = fields[0].GetUInt32(); - item.ItemID = fields[1].GetUInt32(); - item.ItemLevel = fields[2].GetUInt32(); - item.BattlePetSpeciesID = fields[3].GetUInt32(); - item.SuffixItemNameDescriptionID = fields[4].GetUInt32(); - - } while (favoriteAuctionResult->NextRow()); - - } - SendPacket(favoriteItems.Write()); - }); - // setting Ghost+speed if dead if (pCurrChar->m_deathState == DEAD) { diff --git a/src/server/game/Handlers/SocialHandler.cpp b/src/server/game/Handlers/SocialHandler.cpp index 38a9dbb6279..21f025b848a 100644 --- a/src/server/game/Handlers/SocialHandler.cpp +++ b/src/server/game/Handlers/SocialHandler.cpp @@ -175,3 +175,10 @@ void WorldSession::HandleSetContactNotesOpcode(WorldPackets::Social::SetContactN TC_LOG_DEBUG("network", "WorldSession::HandleSetContactNotesOpcode: Contact: %s, Notes: %s", packet.Player.Guid.ToString().c_str(), packet.Notes.c_str()); _player->GetSocial()->SetFriendNote(packet.Player.Guid, packet.Notes); } + +void WorldSession::HandleSocialContractRequest(WorldPackets::Social::SocialContractRequest& /*socialContractRequest*/) +{ + WorldPackets::Social::SocialContractRequestResponse response; + response.ShowSocialContract = false; + SendPacket(response.Write()); +} diff --git a/src/server/game/Handlers/TicketHandler.cpp b/src/server/game/Handlers/TicketHandler.cpp index 2942c27ba3d..56eaac4623f 100644 --- a/src/server/game/Handlers/TicketHandler.cpp +++ b/src/server/game/Handlers/TicketHandler.cpp @@ -75,7 +75,9 @@ void WorldSession::HandleSupportTicketSubmitComplaint(WorldPackets::Ticket::Supp comp->SetFacing(packet.Header.Facing); comp->SetChatLog(packet.ChatLog); comp->SetTargetCharacterGuid(packet.TargetCharacterGUID); - comp->SetComplaintType(GMSupportComplaintType(packet.ComplaintType)); + comp->SetReportType(ReportType(packet.ReportType)); + comp->SetMajorCategory(ReportMajorCategory(packet.MajorCategory)); + comp->SetMinorCategoryFlags(ReportMinorCategory(packet.MinorCategoryFlags)); comp->SetNote(packet.Note); sSupportMgr->AddTicket(comp); diff --git a/src/server/game/Server/Packets/AuctionHousePackets.h b/src/server/game/Server/Packets/AuctionHousePackets.h index 4b9ef230450..6f441c4b281 100644 --- a/src/server/game/Server/Packets/AuctionHousePackets.h +++ b/src/server/game/Server/Packets/AuctionHousePackets.h @@ -305,6 +305,14 @@ namespace WorldPackets Optional<Addon::AddOnInfo> TaintedBy; }; + class AuctionRequestFavoriteList final : public ClientPacket + { + public: + AuctionRequestFavoriteList(WorldPacket&& packet) : ClientPacket(CMSG_AUCTION_REQUEST_FAVORITE_LIST, std::move(packet)) { } + + void Read() override { } + }; + class AuctionSellCommodity final : public ClientPacket { public: diff --git a/src/server/game/Server/Packets/GarrisonPackets.cpp b/src/server/game/Server/Packets/GarrisonPackets.cpp index 9a268388696..0796748d877 100644 --- a/src/server/game/Server/Packets/GarrisonPackets.cpp +++ b/src/server/game/Server/Packets/GarrisonPackets.cpp @@ -37,7 +37,7 @@ WorldPacket const* GarrisonDeleteResult::Write() return &_worldPacket; } -ByteBuffer& operator<<(ByteBuffer& data, GarrisonPlotInfo& plotInfo) +ByteBuffer& operator<<(ByteBuffer& data, GarrisonPlotInfo const& plotInfo) { data << uint32(plotInfo.GarrPlotInstanceID); data << plotInfo.PlotPos; @@ -87,19 +87,18 @@ ByteBuffer& operator<<(ByteBuffer& data, GarrisonFollower const& follower) return data; } -ByteBuffer& operator<<(ByteBuffer& data, GarrisonMission const& mission) +ByteBuffer& operator<<(ByteBuffer& data, GarrisonEncounter const& encounter) { - data << uint64(mission.DbID); - data << mission.OfferTime; - data << mission.OfferDuration; - data << mission.StartTime; - data << mission.TravelDuration; - data << mission.MissionDuration; - data << uint32(mission.MissionRecID); - data << uint32(mission.MissionState); - data << uint32(mission.SuccessChance); - data << uint32(mission.Flags); - data << float(mission.MissionScalar); + data << int32(encounter.GarrEncounterID); + data << uint32(encounter.Mechanics.size()); + data << int32(encounter.GarrAutoCombatantID); + data << int32(encounter.Health); + data << int32(encounter.MaxHealth); + data << int32(encounter.Attack); + data << int8(encounter.BoardIndex); + + if (!encounter.Mechanics.empty()) + data.append(encounter.Mechanics.data(), encounter.Mechanics.size()); return data; } @@ -122,6 +121,36 @@ ByteBuffer& operator<<(ByteBuffer& data, GarrisonMissionReward const& missionRew return data; } +ByteBuffer& operator<<(ByteBuffer& data, GarrisonMission const& mission) +{ + data << uint64(mission.DbID); + data << int32(mission.MissionRecID); + data << mission.OfferTime; + data << mission.OfferDuration; + data << mission.StartTime; + data << mission.TravelDuration; + data << mission.MissionDuration; + data << int32(mission.MissionState); + data << int32(mission.SuccessChance); + data << uint32(mission.Flags); + data << float(mission.MissionScalar); + data << int32(mission.ContentTuningID); + data << uint32(mission.Encounters.size()); + data << uint32(mission.Rewards.size()); + data << uint32(mission.OvermaxRewards.size()); + + for (GarrisonEncounter const& encounter : mission.Encounters) + data << encounter; + + for (GarrisonMissionReward const& missionRewardItem : mission.Rewards) + data << missionRewardItem; + + for (GarrisonMissionReward const& missionRewardItem : mission.OvermaxRewards) + data << missionRewardItem; + + return data; +} + ByteBuffer& operator<<(ByteBuffer& data, GarrisonMissionBonusAbility const& areaBonus) { data << areaBonus.StartTime; @@ -227,9 +256,6 @@ ByteBuffer& operator<<(ByteBuffer& data, GarrisonInfo const& garrison) for (GarrisonPlotInfo* plot : garrison.Plots) data << *plot; - for (GarrisonMission const* mission : garrison.Missions) - data << *mission; - for (std::vector<GarrisonMissionReward> const& missionReward : garrison.MissionRewards) data << uint32(missionReward.size()); @@ -265,6 +291,9 @@ ByteBuffer& operator<<(ByteBuffer& data, GarrisonInfo const& garrison) for (GarrisonFollower const* follower : garrison.AutoTroops) data << *follower; + for (GarrisonMission const* mission : garrison.Missions) + data << *mission; + for (GarrisonTalent const& talent : garrison.Talents) data << talent; @@ -395,7 +424,7 @@ WorldPacket const* GarrisonRequestBlueprintAndSpecializationDataResult::Write() return &_worldPacket; } -ByteBuffer& operator<<(ByteBuffer& data, GarrisonBuildingMapData& building) +ByteBuffer& operator<<(ByteBuffer& data, GarrisonBuildingMapData const& building) { data << uint32(building.GarrBuildingPlotInstID); data << building.Pos; diff --git a/src/server/game/Server/Packets/GarrisonPackets.h b/src/server/game/Server/Packets/GarrisonPackets.h index 08e56820c10..983982842f8 100644 --- a/src/server/game/Server/Packets/GarrisonPackets.h +++ b/src/server/game/Server/Packets/GarrisonPackets.h @@ -102,19 +102,15 @@ namespace WorldPackets std::string CustomName; }; - struct GarrisonMission + struct GarrisonEncounter { - uint64 DbID = 0; - uint32 MissionRecID = 0; - Timestamp<> OfferTime; - Duration<Seconds> OfferDuration; - Timestamp<> StartTime = time_t(2288912640); - Duration<Seconds> TravelDuration; - Duration<Seconds> MissionDuration; - uint32 MissionState = 0; - uint32 SuccessChance = 0; - uint32 Flags = 0; - float MissionScalar = 1.0f; + int32 GarrEncounterID = 0; + std::vector<int32> Mechanics; + int32 GarrAutoCombatantID = 0; + int32 Health = 0; + int32 MaxHealth = 0; + int32 Attack = 0; + int8 BoardIndex = 0; }; struct GarrisonMissionReward @@ -129,6 +125,25 @@ namespace WorldPackets Optional<Item::ItemInstance> ItemInstance; }; + struct GarrisonMission + { + uint64 DbID = 0; + int32 MissionRecID = 0; + Timestamp<> OfferTime; + Duration<Seconds> OfferDuration; + Timestamp<> StartTime = time_t(2288912640); + Duration<Seconds> TravelDuration; + Duration<Seconds> MissionDuration; + int32 MissionState = 0; + int32 SuccessChance = 0; + uint32 Flags = 0; + float MissionScalar = 1.0f; + int32 ContentTuningID = 0; + std::vector<GarrisonEncounter> Encounters; + std::vector<GarrisonMissionReward> Rewards; + std::vector<GarrisonMissionReward> OvermaxRewards; + }; + struct GarrisonMissionBonusAbility { uint32 GarrMssnBonusAbilityID = 0; diff --git a/src/server/game/Server/Packets/GuildPackets.cpp b/src/server/game/Server/Packets/GuildPackets.cpp index b37b438046c..a1c84ea74df 100644 --- a/src/server/game/Server/Packets/GuildPackets.cpp +++ b/src/server/game/Server/Packets/GuildPackets.cpp @@ -178,6 +178,8 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Guild::GuildRosterMemberD data << uint8(rosterMemberData.Level); data << uint8(rosterMemberData.ClassID); data << uint8(rosterMemberData.Gender); + data << uint64(rosterMemberData.GuildClubMemberID); + data << uint8(rosterMemberData.RaceID); data.WriteBits(rosterMemberData.Name.length(), 6); data.WriteBits(rosterMemberData.Note.length(), 8); diff --git a/src/server/game/Server/Packets/GuildPackets.h b/src/server/game/Server/Packets/GuildPackets.h index 5fb9e2a3dbc..bd80498061e 100644 --- a/src/server/game/Server/Packets/GuildPackets.h +++ b/src/server/game/Server/Packets/GuildPackets.h @@ -112,6 +112,8 @@ namespace WorldPackets uint8 Level = 0; uint8 ClassID = 0; uint8 Gender = 0; + uint64 GuildClubMemberID = 0; + uint8 RaceID = 0; bool Authenticated = false; bool SorEligible = false; GuildRosterProfessionData Profession[2]; diff --git a/src/server/game/Server/Packets/LFGPacketsCommon.cpp b/src/server/game/Server/Packets/LFGPacketsCommon.cpp index b10b76bb10a..a88cc08977e 100644 --- a/src/server/game/Server/Packets/LFGPacketsCommon.cpp +++ b/src/server/game/Server/Packets/LFGPacketsCommon.cpp @@ -23,6 +23,8 @@ ByteBuffer& operator>>(ByteBuffer& data, WorldPackets::LFG::RideTicket& ticket) data >> ticket.Id; ticket.Type = data.read<WorldPackets::LFG::RideType>(); data >> ticket.Time; + ticket.Unknown925 = data.ReadBit(); + data.ResetBitPos(); return data; } @@ -33,6 +35,8 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::RideTicket const& ti data << uint32(ticket.Id); data << uint32(ticket.Type); data << ticket.Time; + data.WriteBit(ticket.Unknown925); + data.FlushBits(); return data; } diff --git a/src/server/game/Server/Packets/LFGPacketsCommon.h b/src/server/game/Server/Packets/LFGPacketsCommon.h index eb3b41ee538..2244b7dcd31 100644 --- a/src/server/game/Server/Packets/LFGPacketsCommon.h +++ b/src/server/game/Server/Packets/LFGPacketsCommon.h @@ -38,6 +38,7 @@ namespace WorldPackets uint32 Id = 0; RideType Type = RideType::None; Timestamp<> Time; + bool Unknown925 = false; }; } } diff --git a/src/server/game/Server/Packets/MovementPackets.cpp b/src/server/game/Server/Packets/MovementPackets.cpp index 48dd1381785..98ce7ff6815 100644 --- a/src/server/game/Server/Packets/MovementPackets.cpp +++ b/src/server/game/Server/Packets/MovementPackets.cpp @@ -487,12 +487,9 @@ void WorldPackets::Movement::CommonMovement::WriteMovementForceWithDirection(Mov data << uint32(movementForce.TransportID); data << float(movementForce.Magnitude); + data << int32(movementForce.Unused910); data.WriteBits(AsUnderlyingType(movementForce.Type), 2); - data.WriteBit(movementForce.Unused910 != 0); data.FlushBits(); - - if (movementForce.Unused910) - data << int32(movementForce.Unused910); } void WorldPackets::Movement::MonsterMove::InitializeSplineData(::Movement::MoveSpline const& moveSpline) @@ -723,10 +720,8 @@ ByteBuffer& operator>>(ByteBuffer& data, MovementForce& movementForce) data >> movementForce.Direction; data >> movementForce.TransportID; data >> movementForce.Magnitude; + data >> movementForce.Unused910; movementForce.Type = MovementForceType(data.ReadBits(2)); - bool has910 = data.ReadBit(); - if (has910) - data >> movementForce.Unused910; return data; } diff --git a/src/server/game/Server/Packets/PartyPackets.cpp b/src/server/game/Server/Packets/PartyPackets.cpp index 0a3f79fb39d..2c831e6db8d 100644 --- a/src/server/game/Server/Packets/PartyPackets.cpp +++ b/src/server/game/Server/Packets/PartyPackets.cpp @@ -431,6 +431,7 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Party::PartyPlayerInfo co data << uint8(playerInfo.Flags); data << uint8(playerInfo.RolesAssigned); data << uint8(playerInfo.Class); + data << uint8(playerInfo.FactionGroup); data.WriteString(playerInfo.Name); if (!playerInfo.VoiceStateID.empty()) data << playerInfo.VoiceStateID; diff --git a/src/server/game/Server/Packets/PartyPackets.h b/src/server/game/Server/Packets/PartyPackets.h index a6576ecb440..d3dd89c06e3 100644 --- a/src/server/game/Server/Packets/PartyPackets.h +++ b/src/server/game/Server/Packets/PartyPackets.h @@ -510,6 +510,7 @@ namespace WorldPackets uint8 Subgroup = 0u; uint8 Flags = 0u; uint8 RolesAssigned = 0u; + uint8 FactionGroup = 0u; bool FromSocialQueue = false; bool VoiceChatSilenced = false; }; diff --git a/src/server/game/Server/Packets/SocialPackets.cpp b/src/server/game/Server/Packets/SocialPackets.cpp index 61aea784296..09ac59d4128 100644 --- a/src/server/game/Server/Packets/SocialPackets.cpp +++ b/src/server/game/Server/Packets/SocialPackets.cpp @@ -138,3 +138,11 @@ void WorldPackets::Social::DelIgnore::Read() { _worldPacket >> Player; } + +WorldPacket const* WorldPackets::Social::SocialContractRequestResponse::Write() +{ + _worldPacket.WriteBit(ShowSocialContract); + _worldPacket.FlushBits(); + + return &_worldPacket; +} diff --git a/src/server/game/Server/Packets/SocialPackets.h b/src/server/game/Server/Packets/SocialPackets.h index e553aa692f8..3007cb3800b 100644 --- a/src/server/game/Server/Packets/SocialPackets.h +++ b/src/server/game/Server/Packets/SocialPackets.h @@ -146,6 +146,24 @@ namespace WorldPackets QualifiedGUID Player; }; + + class SocialContractRequest final : public ClientPacket + { + public: + SocialContractRequest(WorldPacket&& packet) : ClientPacket(CMSG_SOCIAL_CONTRACT_REQUEST, std::move(packet)) { } + + void Read() override { } + }; + + class SocialContractRequestResponse final : public ServerPacket + { + public: + SocialContractRequestResponse() : ServerPacket(SMSG_SOCIAL_CONTRACT_REQUEST_RESPONSE, 1) { } + + WorldPacket const* Write() override; + + bool ShowSocialContract = false; + }; } } diff --git a/src/server/game/Server/Packets/TicketPackets.cpp b/src/server/game/Server/Packets/TicketPackets.cpp index b9c3c797602..49343589912 100644 --- a/src/server/game/Server/Packets/TicketPackets.cpp +++ b/src/server/game/Server/Packets/TicketPackets.cpp @@ -265,8 +265,10 @@ void WorldPackets::Ticket::SupportTicketSubmitComplaint::Read() { _worldPacket >> Header; _worldPacket >> TargetCharacterGUID; + _worldPacket >> ReportType; + _worldPacket >> MajorCategory; + _worldPacket >> MinorCategoryFlags; _worldPacket >> ChatLog; - ComplaintType = _worldPacket.ReadBits(5); uint32 noteLength = _worldPacket.ReadBits(10); bool hasMailInfo = _worldPacket.ReadBit(); diff --git a/src/server/game/Server/Packets/TicketPackets.h b/src/server/game/Server/Packets/TicketPackets.h index db82d3af913..ec2b558dd41 100644 --- a/src/server/game/Server/Packets/TicketPackets.h +++ b/src/server/game/Server/Packets/TicketPackets.h @@ -32,6 +32,7 @@ namespace WorldPackets int32 MapID = 0; TaggedPosition<::Position::XYZ> Position; float Facing = 0.0f; + int32 Program = 0; }; class GMTicketGetSystemStatus final : public ClientPacket @@ -115,7 +116,7 @@ namespace WorldPackets struct SupportTicketChatLog { - std::vector<SupportTicketChatLine> Lines; + Array<SupportTicketChatLine, 255> Lines; Optional<uint32> ReportLineIndex; }; @@ -141,7 +142,7 @@ namespace WorldPackets struct SupportTicketHorusChatLog { - std::vector<SupportTicketHorusChatLine> Lines; + Array<SupportTicketHorusChatLine, 255> Lines; }; struct SupportTicketMailInfo @@ -219,7 +220,9 @@ namespace WorldPackets SupportTicketHeader Header; SupportTicketChatLog ChatLog; ObjectGuid TargetCharacterGUID; - uint8 ComplaintType = 0; + int32 ReportType = 0; + int32 MajorCategory = 0; + int32 MinorCategoryFlags = 0; SupportTicketHorusChatLog HorusChatLog; std::string Note; Optional<SupportTicketMailInfo> MailInfo; diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index bb64ab455fe..b48dbda21be 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -132,6 +132,7 @@ void OpcodeTable::Initialize() DEFINE_HANDLER(CMSG_ABANDON_NPE_RESPONSE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_ACCEPT_GUILD_INVITE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildAcceptInvite); + DEFINE_HANDLER(CMSG_ACCEPT_SOCIAL_CONTRACT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_ACCEPT_TRADE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAcceptTradeOpcode); DEFINE_HANDLER(CMSG_ACCEPT_WARGAME_INVITE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_ACCOUNT_NOTIFICATION_ACKNOWLEDGED, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); @@ -170,6 +171,7 @@ void OpcodeTable::Initialize() DEFINE_HANDLER(CMSG_AUCTION_PLACE_BID, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionPlaceBid); DEFINE_HANDLER(CMSG_AUCTION_REMOVE_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionRemoveItem); DEFINE_HANDLER(CMSG_AUCTION_REPLICATE_ITEMS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionReplicateItems); + DEFINE_HANDLER(CMSG_AUCTION_REQUEST_FAVORITE_LIST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionRequestFavoriteList); DEFINE_HANDLER(CMSG_AUCTION_SELL_COMMODITY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionSellCommodity); DEFINE_HANDLER(CMSG_AUCTION_SELL_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionSellItem); DEFINE_HANDLER(CMSG_AUCTION_SET_FAVORITE_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionSetFavoriteItem); @@ -333,6 +335,7 @@ void OpcodeTable::Initialize() DEFINE_HANDLER(CMSG_CLUB_FINDER_REQUEST_PENDING_CLUBS_LIST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_CLUB_FINDER_REQUEST_SUBSCRIBED_CLUB_POSTING_IDS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_CLUB_FINDER_RESPOND_TO_APPLICANT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_CLUB_FINDER_WHISPER_APPLICANT_REQUEST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_CLUB_PRESENCE_SUBSCRIBE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_COLLECTION_ITEM_SET_FAVORITE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCollectionItemSetFavorite); DEFINE_HANDLER(CMSG_COMMENTATOR_SPECTATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); @@ -836,6 +839,7 @@ void OpcodeTable::Initialize() DEFINE_HANDLER(CMSG_SHOW_TRADE_SKILL, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_SIGN_PETITION, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSignPetition); DEFINE_HANDLER(CMSG_SILENCE_PARTY_TALKER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_SOCIAL_CONTRACT_REQUEST, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleSocialContractRequest); DEFINE_HANDLER(CMSG_SOCKET_GEMS, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSocketGems); DEFINE_HANDLER(CMSG_SORT_BAGS, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSortBags); DEFINE_HANDLER(CMSG_SORT_BANK_BAGS, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSortBankBags); @@ -1169,6 +1173,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLUB_FINDER_RESPONSE_CHARACTER_APPLICATION_LIST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLUB_FINDER_RESPONSE_POST_RECRUITMENT_MESSAGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLUB_FINDER_UPDATE_APPLICATIONS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLUB_FINDER_WHISPER_APPLICANT_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_COIN_REMOVED, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMBAT_EVENT_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMMENTATOR_MAP_INFO, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); @@ -1544,6 +1549,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_MAP_OBJECTIVES_INIT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_MAP_OBJ_EVENTS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_MASTER_LOOT_CANDIDATE_LIST, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MEETING_STONE_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_MESSAGE_BOX, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_MINIMAP_PING, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_MIRROR_IMAGE_COMPONENTED_DATA, STATUS_NEVER, CONNECTION_TYPE_REALM); @@ -1918,6 +1924,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHOW_QUEST_COMPLETION_TEXT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHOW_TAXI_NODES, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHOW_TRADE_SKILL_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SOCIAL_CONTRACT_REQUEST_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SOCKET_GEMS_FAILURE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SOCKET_GEMS_SUCCESS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPECIAL_MOUNT_ANIM, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); @@ -2016,6 +2023,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_LAST_INSTANCE, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_OBJECT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_PRIMARY_SPEC, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_RECENT_PLAYER_GUIDS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_TALENT_DATA, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_TASK_PROGRESS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_WEEKLY_SPELL_USAGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); diff --git a/src/server/game/Server/Protocol/Opcodes.h b/src/server/game/Server/Protocol/Opcodes.h index f8b1ab93db7..44494fd60bd 100644 --- a/src/server/game/Server/Protocol/Opcodes.h +++ b/src/server/game/Server/Protocol/Opcodes.h @@ -44,21 +44,22 @@ enum OpcodeMisc : uint16 enum OpcodeClient : uint16 { - CMSG_ABANDON_NPE_RESPONSE = 0x33F2, + CMSG_ABANDON_NPE_RESPONSE = 0x33E1, CMSG_ACCEPT_GUILD_INVITE = 0x35FC, + CMSG_ACCEPT_SOCIAL_CONTRACT = 0x373B, CMSG_ACCEPT_TRADE = 0x315A, CMSG_ACCEPT_WARGAME_INVITE = 0x35E0, - CMSG_ACCOUNT_NOTIFICATION_ACKNOWLEDGED = 0x3732, - CMSG_ACTIVATE_SOULBIND = 0x33E1, + CMSG_ACCOUNT_NOTIFICATION_ACKNOWLEDGED = 0x3731, + CMSG_ACTIVATE_SOULBIND = 0x33D0, CMSG_ACTIVATE_TAXI = 0x34B1, CMSG_ADDON_LIST = 0x35D8, CMSG_ADD_ACCOUNT_COSMETIC = 0x32A9, - CMSG_ADD_BATTLENET_FRIEND = 0x365A, - CMSG_ADD_FRIEND = 0x36CD, - CMSG_ADD_IGNORE = 0x36D1, + CMSG_ADD_BATTLENET_FRIEND = 0x3659, + CMSG_ADD_FRIEND = 0x36CC, + CMSG_ADD_IGNORE = 0x36D0, CMSG_ADD_TOY = 0x32A8, CMSG_ADVENTURE_JOURNAL_OPEN_QUEST = 0x3205, - CMSG_ADVENTURE_JOURNAL_UPDATE_SUGGESTIONS = 0x33E4, + CMSG_ADVENTURE_JOURNAL_UPDATE_SUGGESTIONS = 0x33D3, CMSG_ADVENTURE_MAP_START_QUEST = 0x3360, CMSG_ALTER_APPEARANCE = 0x3503, CMSG_AREA_SPIRIT_HEALER_QUERY = 0x34B6, @@ -69,8 +70,8 @@ enum OpcodeClient : uint16 CMSG_ASSIGN_EQUIPMENT_SET_SPEC = 0x3211, CMSG_ATTACK_STOP = 0x3260, CMSG_ATTACK_SWING = 0x325F, - CMSG_AUCTIONABLE_TOKEN_SELL = 0x36E3, - CMSG_AUCTIONABLE_TOKEN_SELL_AT_MARKET_PRICE = 0x36E4, + CMSG_AUCTIONABLE_TOKEN_SELL = 0x36E2, + CMSG_AUCTIONABLE_TOKEN_SELL_AT_MARKET_PRICE = 0x36E3, CMSG_AUCTION_BROWSE_QUERY = 0x34D6, CMSG_AUCTION_CANCEL_COMMODITIES_PURCHASE = 0x34DE, CMSG_AUCTION_CONFIRM_COMMODITIES_PURCHASE = 0x34DD, @@ -84,9 +85,10 @@ enum OpcodeClient : uint16 CMSG_AUCTION_PLACE_BID = 0x34D5, CMSG_AUCTION_REMOVE_ITEM = 0x34D3, CMSG_AUCTION_REPLICATE_ITEMS = 0x34D4, + CMSG_AUCTION_REQUEST_FAVORITE_LIST = 0x3733, CMSG_AUCTION_SELL_COMMODITY = 0x34DF, CMSG_AUCTION_SELL_ITEM = 0x34D2, - CMSG_AUCTION_SET_FAVORITE_ITEM = 0x3733, + CMSG_AUCTION_SET_FAVORITE_ITEM = 0x3732, CMSG_AUTH_CONTINUED_SESSION = 0x3766, CMSG_AUTH_SESSION = 0x3765, CMSG_AUTOBANK_ITEM = 0x3997, @@ -111,19 +113,19 @@ enum OpcodeClient : uint16 CMSG_BATTLEMASTER_JOIN_ARENA = 0x3531, CMSG_BATTLEMASTER_JOIN_BRAWL = 0x3535, CMSG_BATTLEMASTER_JOIN_SKIRMISH = 0x3532, - CMSG_BATTLENET_CHALLENGE_RESPONSE = 0x36D0, - CMSG_BATTLENET_REQUEST = 0x36F2, - CMSG_BATTLE_PAY_ACK_FAILED_RESPONSE = 0x36CA, - CMSG_BATTLE_PAY_CANCEL_OPEN_CHECKOUT = 0x3710, - CMSG_BATTLE_PAY_CONFIRM_PURCHASE_RESPONSE = 0x36C9, - CMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_TO_TARGET = 0x36C0, + CMSG_BATTLENET_CHALLENGE_RESPONSE = 0x36CF, + CMSG_BATTLENET_REQUEST = 0x36F1, + CMSG_BATTLE_PAY_ACK_FAILED_RESPONSE = 0x36C9, + CMSG_BATTLE_PAY_CANCEL_OPEN_CHECKOUT = 0x370F, + CMSG_BATTLE_PAY_CONFIRM_PURCHASE_RESPONSE = 0x36C8, + CMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_TO_TARGET = 0x36BF, CMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_VAS = 0x3736, - CMSG_BATTLE_PAY_GET_PRODUCT_LIST = 0x36B8, - CMSG_BATTLE_PAY_GET_PURCHASE_LIST = 0x36B9, - CMSG_BATTLE_PAY_OPEN_CHECKOUT = 0x3709, - CMSG_BATTLE_PAY_REQUEST_PRICE_INFO = 0x3705, - CMSG_BATTLE_PAY_START_PURCHASE = 0x36C8, - CMSG_BATTLE_PAY_START_VAS_PURCHASE = 0x36EF, + CMSG_BATTLE_PAY_GET_PRODUCT_LIST = 0x36B7, + CMSG_BATTLE_PAY_GET_PURCHASE_LIST = 0x36B8, + CMSG_BATTLE_PAY_OPEN_CHECKOUT = 0x3708, + CMSG_BATTLE_PAY_REQUEST_PRICE_INFO = 0x3704, + CMSG_BATTLE_PAY_START_PURCHASE = 0x36C7, + CMSG_BATTLE_PAY_START_VAS_PURCHASE = 0x36EE, CMSG_BATTLE_PET_CLEAR_FANFARE = 0x312C, CMSG_BATTLE_PET_DELETE_PET = 0x3625, CMSG_BATTLE_PET_DELETE_PET_CHEAT = 0x3626, @@ -141,28 +143,28 @@ enum OpcodeClient : uint16 CMSG_BLACK_MARKET_OPEN = 0x353D, CMSG_BLACK_MARKET_REQUEST_ITEMS = 0x353E, CMSG_BONUS_ROLL = 0x338B, - CMSG_BUG_REPORT = 0x3685, + CMSG_BUG_REPORT = 0x3684, CMSG_BUSY_TRADE = 0x3158, CMSG_BUY_BACK_ITEM = 0x34AA, CMSG_BUY_BANK_SLOT = 0x34BA, CMSG_BUY_ITEM = 0x34A9, CMSG_BUY_REAGENT_BANK = 0x34BB, CMSG_CAGE_BATTLE_PET = 0x31F4, - CMSG_CALENDAR_ADD_EVENT = 0x367D, - CMSG_CALENDAR_COMMUNITY_INVITE = 0x3671, - CMSG_CALENDAR_COMPLAIN = 0x3679, - CMSG_CALENDAR_COPY_EVENT = 0x3678, - CMSG_CALENDAR_EVENT_SIGN_UP = 0x367B, - CMSG_CALENDAR_GET = 0x366F, - CMSG_CALENDAR_GET_EVENT = 0x3670, - CMSG_CALENDAR_GET_NUM_PENDING = 0x367A, - CMSG_CALENDAR_INVITE = 0x3672, - CMSG_CALENDAR_MODERATOR_STATUS = 0x3676, - CMSG_CALENDAR_REMOVE_EVENT = 0x3677, - CMSG_CALENDAR_REMOVE_INVITE = 0x3673, - CMSG_CALENDAR_RSVP = 0x3674, - CMSG_CALENDAR_STATUS = 0x3675, - CMSG_CALENDAR_UPDATE_EVENT = 0x367E, + CMSG_CALENDAR_ADD_EVENT = 0x367C, + CMSG_CALENDAR_COMMUNITY_INVITE = 0x3670, + CMSG_CALENDAR_COMPLAIN = 0x3678, + CMSG_CALENDAR_COPY_EVENT = 0x3677, + CMSG_CALENDAR_EVENT_SIGN_UP = 0x367A, + CMSG_CALENDAR_GET = 0x366E, + CMSG_CALENDAR_GET_EVENT = 0x366F, + CMSG_CALENDAR_GET_NUM_PENDING = 0x3679, + CMSG_CALENDAR_INVITE = 0x3671, + CMSG_CALENDAR_MODERATOR_STATUS = 0x3675, + CMSG_CALENDAR_REMOVE_EVENT = 0x3676, + CMSG_CALENDAR_REMOVE_INVITE = 0x3672, + CMSG_CALENDAR_RSVP = 0x3673, + CMSG_CALENDAR_STATUS = 0x3674, + CMSG_CALENDAR_UPDATE_EVENT = 0x367D, CMSG_CANCEL_AURA = 0x31AF, CMSG_CANCEL_AUTO_REPEAT_SPELL = 0x34F5, CMSG_CANCEL_CAST = 0x32AF, @@ -174,22 +176,22 @@ enum OpcodeClient : uint16 CMSG_CANCEL_QUEUED_SPELL = 0x3180, CMSG_CANCEL_TEMP_ENCHANTMENT = 0x3500, CMSG_CANCEL_TRADE = 0x315C, - CMSG_CAN_DUEL = 0x3662, - CMSG_CAN_REDEEM_TOKEN_FOR_BALANCE = 0x3704, + CMSG_CAN_DUEL = 0x3661, + CMSG_CAN_REDEEM_TOKEN_FOR_BALANCE = 0x3703, CMSG_CAST_SPELL = 0x32AC, CMSG_CHALLENGE_MODE_REQUEST_LEADERS = 0x3090, CMSG_CHANGE_BAG_SLOT_FLAG = 0x3345, CMSG_CHANGE_BANK_BAG_SLOT_FLAG = 0x3346, CMSG_CHANGE_MONUMENT_APPEARANCE = 0x3326, - CMSG_CHANGE_REALM_TICKET = 0x36F7, - CMSG_CHANGE_SUB_GROUP = 0x364C, - CMSG_CHARACTER_CHECK_UPGRADE = 0x36C3, - CMSG_CHARACTER_RENAME_REQUEST = 0x36BE, - CMSG_CHARACTER_UPGRADE_MANUAL_UNREVOKE_REQUEST = 0x36C1, - CMSG_CHARACTER_UPGRADE_START = 0x36C2, - CMSG_CHAR_CUSTOMIZE = 0x368C, - CMSG_CHAR_DELETE = 0x369B, - CMSG_CHAR_RACE_OR_FACTION_CHANGE = 0x3692, + CMSG_CHANGE_REALM_TICKET = 0x36F6, + CMSG_CHANGE_SUB_GROUP = 0x364B, + CMSG_CHARACTER_CHECK_UPGRADE = 0x36C2, + CMSG_CHARACTER_RENAME_REQUEST = 0x36BD, + CMSG_CHARACTER_UPGRADE_MANUAL_UNREVOKE_REQUEST = 0x36C0, + CMSG_CHARACTER_UPGRADE_START = 0x36C1, + CMSG_CHAR_CUSTOMIZE = 0x368B, + CMSG_CHAR_DELETE = 0x369A, + CMSG_CHAR_RACE_OR_FACTION_CHANGE = 0x3691, CMSG_CHAT_ADDON_MESSAGE = 0x37EE, CMSG_CHAT_ADDON_MESSAGE_TARGETED = 0x37EF, CMSG_CHAT_CHANNEL_ANNOUNCEMENTS = 0x37E3, @@ -226,28 +228,29 @@ enum OpcodeClient : uint16 CMSG_CHAT_REPORT_FILTERED = 0x37CC, CMSG_CHAT_REPORT_IGNORED = 0x37CB, CMSG_CHAT_UNREGISTER_ALL_ADDON_PREFIXES = 0x37CE, - CMSG_CHECK_CHARACTER_NAME_AVAILABILITY = 0x3645, + CMSG_CHECK_CHARACTER_NAME_AVAILABILITY = 0x3644, CMSG_CHECK_IS_ADVENTURE_MAP_POI_VALID = 0x3251, CMSG_CHOICE_RESPONSE = 0x32B4, - CMSG_CHROMIE_TIME_SELECT_EXPANSION = 0x33E0, - CMSG_CLAIM_WEEKLY_REWARD = 0x33BC, + CMSG_CHROMIE_TIME_SELECT_EXPANSION = 0x33CF, + CMSG_CLAIM_WEEKLY_REWARD = 0x33AB, CMSG_CLEAR_NEW_APPEARANCE = 0x312F, CMSG_CLEAR_RAID_MARKER = 0x31A7, CMSG_CLEAR_TRADE_ITEM = 0x315E, CMSG_CLIENT_PORT_GRAVEYARD = 0x3539, CMSG_CLOSE_INTERACTION = 0x3499, CMSG_CLOSE_QUEST_CHOICE = 0x32B5, - CMSG_CLOSE_RUNEFORGE_INTERACTION = 0x33E8, - CMSG_CLUB_FINDER_APPLICATION_RESPONSE = 0x371B, - CMSG_CLUB_FINDER_GET_APPLICANTS_LIST = 0x3719, - CMSG_CLUB_FINDER_POST = 0x3716, - CMSG_CLUB_FINDER_REQUEST_CLUBS_DATA = 0x371D, - CMSG_CLUB_FINDER_REQUEST_CLUBS_LIST = 0x3717, - CMSG_CLUB_FINDER_REQUEST_MEMBERSHIP_TO_CLUB = 0x3718, - CMSG_CLUB_FINDER_REQUEST_PENDING_CLUBS_LIST = 0x371C, - CMSG_CLUB_FINDER_REQUEST_SUBSCRIBED_CLUB_POSTING_IDS = 0x371E, - CMSG_CLUB_FINDER_RESPOND_TO_APPLICANT = 0x371A, - CMSG_CLUB_PRESENCE_SUBSCRIBE = 0x36F4, + CMSG_CLOSE_RUNEFORGE_INTERACTION = 0x33D7, + CMSG_CLUB_FINDER_APPLICATION_RESPONSE = 0x371A, + CMSG_CLUB_FINDER_GET_APPLICANTS_LIST = 0x3718, + CMSG_CLUB_FINDER_POST = 0x3715, + CMSG_CLUB_FINDER_REQUEST_CLUBS_DATA = 0x371C, + CMSG_CLUB_FINDER_REQUEST_CLUBS_LIST = 0x3716, + CMSG_CLUB_FINDER_REQUEST_MEMBERSHIP_TO_CLUB = 0x3717, + CMSG_CLUB_FINDER_REQUEST_PENDING_CLUBS_LIST = 0x371B, + CMSG_CLUB_FINDER_REQUEST_SUBSCRIBED_CLUB_POSTING_IDS = 0x371D, + CMSG_CLUB_FINDER_RESPOND_TO_APPLICANT = 0x3719, + CMSG_CLUB_FINDER_WHISPER_APPLICANT_REQUEST = 0x3739, + CMSG_CLUB_PRESENCE_SUBSCRIBE = 0x36F3, CMSG_COLLECTION_ITEM_SET_FAVORITE = 0x3633, CMSG_COMMENTATOR_ENABLE = 0x35F0, CMSG_COMMENTATOR_ENTER_INSTANCE = 0x35F4, @@ -257,34 +260,34 @@ enum OpcodeClient : uint16 CMSG_COMMENTATOR_GET_PLAYER_INFO = 0x35F2, CMSG_COMMENTATOR_SPECTATE = 0x3737, CMSG_COMMENTATOR_START_WARGAME = 0x35EF, - CMSG_COMMERCE_TOKEN_GET_COUNT = 0x36E1, - CMSG_COMMERCE_TOKEN_GET_LOG = 0x36EB, - CMSG_COMMERCE_TOKEN_GET_MARKET_PRICE = 0x36E2, - CMSG_COMPLAINT = 0x366C, + CMSG_COMMERCE_TOKEN_GET_COUNT = 0x36E0, + CMSG_COMMERCE_TOKEN_GET_LOG = 0x36EA, + CMSG_COMMERCE_TOKEN_GET_MARKET_PRICE = 0x36E1, + CMSG_COMPLAINT = 0x366B, CMSG_COMPLETE_CINEMATIC = 0x3557, CMSG_COMPLETE_MOVIE = 0x34EB, CMSG_CONFIRM_ARTIFACT_RESPEC = 0x31AC, CMSG_CONFIRM_RESPEC_WIPE = 0x3213, CMSG_CONNECT_TO_FAILED = 0x35D4, - CMSG_CONSUMABLE_TOKEN_BUY = 0x36E6, - CMSG_CONSUMABLE_TOKEN_BUY_AT_MARKET_PRICE = 0x36E7, - CMSG_CONSUMABLE_TOKEN_CAN_VETERAN_BUY = 0x36E5, - CMSG_CONSUMABLE_TOKEN_REDEEM = 0x36E9, - CMSG_CONSUMABLE_TOKEN_REDEEM_CONFIRMATION = 0x36EA, + CMSG_CONSUMABLE_TOKEN_BUY = 0x36E5, + CMSG_CONSUMABLE_TOKEN_BUY_AT_MARKET_PRICE = 0x36E6, + CMSG_CONSUMABLE_TOKEN_CAN_VETERAN_BUY = 0x36E4, + CMSG_CONSUMABLE_TOKEN_REDEEM = 0x36E8, + CMSG_CONSUMABLE_TOKEN_REDEEM_CONFIRMATION = 0x36E9, CMSG_CONTRIBUTION_CONTRIBUTE = 0x356B, CMSG_CONTRIBUTION_LAST_UPDATE_REQUEST = 0x356C, CMSG_CONVERSATION_CINEMATIC_READY = 0x3559, CMSG_CONVERSATION_LINE_STARTED = 0x3558, - CMSG_CONVERT_RAID = 0x364E, + CMSG_CONVERT_RAID = 0x364D, CMSG_COVENANT_RENOWN_REQUEST_CATCHUP_STATE = 0x357F, - CMSG_CREATE_CHARACTER = 0x3644, + CMSG_CREATE_CHARACTER = 0x3643, CMSG_CREATE_SHIPMENT = 0x3312, CMSG_DB_QUERY_BULK = 0x35E4, CMSG_DECLINE_GUILD_INVITES = 0x352D, CMSG_DECLINE_PETITION = 0x3546, CMSG_DELETE_EQUIPMENT_SET = 0x3519, - CMSG_DEL_FRIEND = 0x36CE, - CMSG_DEL_IGNORE = 0x36D2, + CMSG_DEL_FRIEND = 0x36CD, + CMSG_DEL_IGNORE = 0x36D1, CMSG_DEPOSIT_REAGENT_BANK = 0x334E, CMSG_DESTROY_ITEM = 0x32A2, CMSG_DF_BOOT_PLAYER_VOTE = 0x3616, @@ -299,7 +302,7 @@ enum OpcodeClient : uint16 CMSG_DF_TELEPORT = 0x3617, CMSG_DISCARDED_TIME_SYNC_ACKS = 0x3A42, CMSG_DISMISS_CRITTER = 0x3507, - CMSG_DO_COUNTDOWN = 0x3715, + CMSG_DO_COUNTDOWN = 0x3714, CMSG_DO_MASTER_LOOT_ROLL = 0x3218, CMSG_DO_READY_CHECK = 0x3634, CMSG_DUEL_RESPONSE = 0x34F0, @@ -307,10 +310,10 @@ enum OpcodeClient : uint16 CMSG_EMOTE = 0x3553, CMSG_ENABLE_NAGLE = 0x376B, CMSG_ENABLE_TAXI_NODE = 0x34AF, - CMSG_ENGINE_SURVEY = 0x36E0, + CMSG_ENGINE_SURVEY = 0x36DF, CMSG_ENTER_ENCRYPTED_MODE_ACK = 0x3767, CMSG_ENUM_CHARACTERS = 0x35E8, - CMSG_ENUM_CHARACTERS_DELETED_BY_CLIENT = 0x36DA, + CMSG_ENUM_CHARACTERS_DELETED_BY_CLIENT = 0x36D9, CMSG_FAR_SIGHT = 0x34F6, CMSG_GAME_EVENT_DEBUG_DISABLE = 0x31B3, CMSG_GAME_EVENT_DEBUG_ENABLE = 0x31B2, @@ -340,26 +343,26 @@ enum OpcodeClient : uint16 CMSG_GARRISON_SET_FOLLOWER_FAVORITE = 0x32F1, CMSG_GARRISON_SET_FOLLOWER_INACTIVE = 0x32E9, CMSG_GARRISON_SET_RECRUITMENT_PREFERENCES = 0x32F7, - CMSG_GARRISON_SOCKET_TALENT = 0x33F5, + CMSG_GARRISON_SOCKET_TALENT = 0x33E4, CMSG_GARRISON_START_MISSION = 0x3332, CMSG_GARRISON_SWAP_BUILDINGS = 0x32E1, CMSG_GENERATE_RANDOM_CHARACTER_NAME = 0x35E7, - CMSG_GET_ACCOUNT_CHARACTER_LIST = 0x36B3, - CMSG_GET_ACCOUNT_NOTIFICATIONS = 0x3731, + CMSG_GET_ACCOUNT_CHARACTER_LIST = 0x36B2, + CMSG_GET_ACCOUNT_NOTIFICATIONS = 0x3730, CMSG_GET_GARRISON_INFO = 0x32D6, CMSG_GET_ITEM_PURCHASE_DATA = 0x3541, CMSG_GET_LANDING_PAGE_SHIPMENTS = 0x3311, CMSG_GET_MIRROR_IMAGE_DATA = 0x32A6, CMSG_GET_PVP_OPTIONS_ENABLED = 0x35EE, - CMSG_GET_RAF_ACCOUNT_INFO = 0x371F, - CMSG_GET_REMAINING_GAME_TIME = 0x36E8, + CMSG_GET_RAF_ACCOUNT_INFO = 0x371E, + CMSG_GET_REMAINING_GAME_TIME = 0x36E7, CMSG_GET_TROPHY_LIST = 0x3323, - CMSG_GET_UNDELETE_CHARACTER_COOLDOWN_STATUS = 0x36DC, - CMSG_GET_VAS_ACCOUNT_CHARACTER_LIST = 0x36ED, - CMSG_GET_VAS_TRANSFER_TARGET_REALM_LIST = 0x36EE, - CMSG_GM_TICKET_ACKNOWLEDGE_SURVEY = 0x3690, - CMSG_GM_TICKET_GET_CASE_STATUS = 0x368F, - CMSG_GM_TICKET_GET_SYSTEM_STATUS = 0x368E, + CMSG_GET_UNDELETE_CHARACTER_COOLDOWN_STATUS = 0x36DB, + CMSG_GET_VAS_ACCOUNT_CHARACTER_LIST = 0x36EC, + CMSG_GET_VAS_TRANSFER_TARGET_REALM_LIST = 0x36ED, + CMSG_GM_TICKET_ACKNOWLEDGE_SURVEY = 0x368F, + CMSG_GM_TICKET_GET_CASE_STATUS = 0x368E, + CMSG_GM_TICKET_GET_SYSTEM_STATUS = 0x368D, CMSG_GOSSIP_REFRESH_OPTIONS = 0x357E, CMSG_GOSSIP_SELECT_OPTION = 0x349A, CMSG_GUILD_ADD_BATTLENET_FRIEND = 0x308E, @@ -399,7 +402,7 @@ enum OpcodeClient : uint16 CMSG_GUILD_REPLACE_GUILD_MASTER = 0x3089, CMSG_GUILD_SET_ACHIEVEMENT_TRACKING = 0x3070, CMSG_GUILD_SET_FOCUSED_ACHIEVEMENT = 0x3071, - CMSG_GUILD_SET_GUILD_MASTER = 0x36C5, + CMSG_GUILD_SET_GUILD_MASTER = 0x36C4, CMSG_GUILD_SET_MEMBER_NOTE = 0x3073, CMSG_GUILD_SET_RANK_PERMISSIONS = 0x3068, CMSG_GUILD_SHIFT_RANK = 0x3067, @@ -413,17 +416,17 @@ enum OpcodeClient : uint16 CMSG_INITIATE_TRADE = 0x3156, CMSG_INSPECT = 0x353B, CMSG_INSTANCE_LOCK_RESPONSE = 0x351A, - CMSG_ISLAND_QUEUE = 0x33B8, + CMSG_ISLAND_QUEUE = 0x33A7, CMSG_ITEM_PURCHASE_REFUND = 0x3542, CMSG_ITEM_TEXT_QUERY = 0x3342, CMSG_JOIN_PET_BATTLE_QUEUE = 0x31DF, CMSG_JOIN_RATED_BATTLEGROUND = 0x3179, - CMSG_KEEP_ALIVE = 0x367F, + CMSG_KEEP_ALIVE = 0x367E, CMSG_KEYBOUND_OVERRIDE = 0x322B, CMSG_LATENCY_REPORT = 0x3771, CMSG_LEARN_PVP_TALENTS = 0x356A, CMSG_LEARN_TALENTS = 0x3568, - CMSG_LEAVE_GROUP = 0x3649, + CMSG_LEAVE_GROUP = 0x3648, CMSG_LEAVE_PET_BATTLE_QUEUE = 0x31E0, CMSG_LFG_LIST_APPLY_TO_GROUP = 0x360D, CMSG_LFG_LIST_CANCEL_APPLICATION = 0x360E, @@ -436,10 +439,10 @@ enum OpcodeClient : uint16 CMSG_LFG_LIST_SEARCH = 0x360C, CMSG_LFG_LIST_UPDATE_REQUEST = 0x3387, CMSG_LIST_INVENTORY = 0x34A7, - CMSG_LIVE_REGION_ACCOUNT_RESTORE = 0x36B6, - CMSG_LIVE_REGION_CHARACTER_COPY = 0x36B5, - CMSG_LIVE_REGION_GET_ACCOUNT_CHARACTER_LIST = 0x36B4, - CMSG_LIVE_REGION_KEY_BINDINGS_COPY = 0x36B7, + CMSG_LIVE_REGION_ACCOUNT_RESTORE = 0x36B5, + CMSG_LIVE_REGION_CHARACTER_COPY = 0x36B4, + CMSG_LIVE_REGION_GET_ACCOUNT_CHARACTER_LIST = 0x36B3, + CMSG_LIVE_REGION_KEY_BINDINGS_COPY = 0x36B6, CMSG_LOADING_SCREEN_NOTIFY = 0x35F8, CMSG_LOAD_SELECTED_TROPHY = 0x3324, CMSG_LOGOUT_CANCEL = 0x34E6, @@ -452,13 +455,13 @@ enum OpcodeClient : uint16 CMSG_LOOT_RELEASE = 0x321A, CMSG_LOOT_ROLL = 0x321B, CMSG_LOOT_UNIT = 0x3214, - CMSG_LOW_LEVEL_RAID1 = 0x369F, + CMSG_LOW_LEVEL_RAID1 = 0x369E, CMSG_LOW_LEVEL_RAID2 = 0x3521, CMSG_MAIL_CREATE_TEXT_ITEM = 0x354D, CMSG_MAIL_DELETE = 0x322D, CMSG_MAIL_GET_LIST = 0x3548, CMSG_MAIL_MARK_AS_READ = 0x354C, - CMSG_MAIL_RETURN_TO_SENDER = 0x3655, + CMSG_MAIL_RETURN_TO_SENDER = 0x3654, CMSG_MAIL_TAKE_ITEM = 0x354A, CMSG_MAIL_TAKE_MONEY = 0x3549, CMSG_MAKE_CONTITIONAL_APPEARANCE_PERMANENT = 0x322F, @@ -466,7 +469,7 @@ enum OpcodeClient : uint16 CMSG_MERGE_GUILD_BANK_ITEM_WITH_GUILD_BANK_ITEM = 0x34C7, CMSG_MERGE_GUILD_BANK_ITEM_WITH_ITEM = 0x34C4, CMSG_MERGE_ITEM_WITH_GUILD_BANK_ITEM = 0x34C2, - CMSG_MINIMAP_PING = 0x364B, + CMSG_MINIMAP_PING = 0x364A, CMSG_MISSILE_TRAJECTORY_COLLISION = 0x318B, CMSG_MOUNT_CLEAR_FANFARE = 0x312D, CMSG_MOUNT_SET_FAVORITE = 0x3632, @@ -549,7 +552,7 @@ enum OpcodeClient : uint16 CMSG_NEXT_CINEMATIC_CAMERA = 0x3556, CMSG_OBJECT_UPDATE_FAILED = 0x3181, CMSG_OBJECT_UPDATE_RESCUED = 0x3182, - CMSG_OFFER_PETITION = 0x33DF, + CMSG_OFFER_PETITION = 0x33CE, CMSG_OPENING_CINEMATIC = 0x3555, CMSG_OPEN_ITEM = 0x3343, CMSG_OPEN_MISSION_NPC = 0x3307, @@ -559,19 +562,19 @@ enum OpcodeClient : uint16 CMSG_OVERRIDE_SCREEN_FLASH = 0x352E, CMSG_PARTY_INVITE = 0x3602, CMSG_PARTY_INVITE_RESPONSE = 0x3604, - CMSG_PARTY_UNINVITE = 0x3647, + CMSG_PARTY_UNINVITE = 0x3646, CMSG_PERFORM_ITEM_INTERACTION = 0x3237, CMSG_PETITION_BUY = 0x34CF, - CMSG_PETITION_RENAME_GUILD = 0x36C6, + CMSG_PETITION_RENAME_GUILD = 0x36C5, CMSG_PETITION_SHOW_LIST = 0x34CE, CMSG_PETITION_SHOW_SIGNATURES = 0x34D0, CMSG_PET_ABANDON = 0x3493, CMSG_PET_ACTION = 0x3491, CMSG_PET_BATTLE_FINAL_NOTIFY = 0x31E4, - CMSG_PET_BATTLE_INPUT = 0x3641, + CMSG_PET_BATTLE_INPUT = 0x3640, CMSG_PET_BATTLE_QUEUE_PROPOSE_MATCH_RESULT = 0x322C, CMSG_PET_BATTLE_QUIT_NOTIFY = 0x31E3, - CMSG_PET_BATTLE_REPLACE_FRONT_PET = 0x3642, + CMSG_PET_BATTLE_REPLACE_FRONT_PET = 0x3641, CMSG_PET_BATTLE_REQUEST_PVP = 0x31DD, CMSG_PET_BATTLE_REQUEST_UPDATE = 0x31DE, CMSG_PET_BATTLE_REQUEST_WILD = 0x31DB, @@ -579,7 +582,7 @@ enum OpcodeClient : uint16 CMSG_PET_BATTLE_WILD_LOCATION_FAIL = 0x31DC, CMSG_PET_CANCEL_AURA = 0x3494, CMSG_PET_CAST_SPELL = 0x32AB, - CMSG_PET_RENAME = 0x3684, + CMSG_PET_RENAME = 0x3683, CMSG_PET_SET_ACTION = 0x3490, CMSG_PET_SPELL_AUTOCAST = 0x3495, CMSG_PET_STOP_ATTACK = 0x3492, @@ -588,13 +591,13 @@ enum OpcodeClient : uint16 CMSG_PUSH_QUEST_TO_PARTY = 0x34A5, CMSG_PVP_LOG_DATA = 0x317C, CMSG_QUERY_BATTLE_PET_NAME = 0x3284, - CMSG_QUERY_CORPSE_LOCATION_FROM_CLIENT = 0x3660, - CMSG_QUERY_CORPSE_TRANSPORT = 0x3661, + CMSG_QUERY_CORPSE_LOCATION_FROM_CLIENT = 0x365F, + CMSG_QUERY_CORPSE_TRANSPORT = 0x3660, CMSG_QUERY_COUNTDOWN_TIMER = 0x31AA, CMSG_QUERY_CREATURE = 0x327E, CMSG_QUERY_GAME_OBJECT = 0x327F, CMSG_QUERY_GARRISON_PET_NAME = 0x3285, - CMSG_QUERY_GUILD_INFO = 0x368A, + CMSG_QUERY_GUILD_INFO = 0x3689, CMSG_QUERY_INSPECT_ACHIEVEMENTS = 0x350E, CMSG_QUERY_NEXT_MAIL_TIME = 0x354B, CMSG_QUERY_NPC_TEXT = 0x3280, @@ -606,8 +609,8 @@ enum OpcodeClient : uint16 CMSG_QUERY_PLAYER_NAME_BY_COMMUNITY_ID = 0x376F, CMSG_QUERY_QUEST_COMPLETION_NPCS = 0x3175, CMSG_QUERY_QUEST_INFO = 0x3281, - CMSG_QUERY_REALM_NAME = 0x3689, - CMSG_QUERY_SCENARIO_POI = 0x3656, + CMSG_QUERY_REALM_NAME = 0x3688, + CMSG_QUERY_SCENARIO_POI = 0x3655, CMSG_QUERY_TIME = 0x34E3, CMSG_QUERY_TREASURE_PICKER = 0x3367, CMSG_QUERY_VOID_STORAGE = 0x31A3, @@ -622,60 +625,60 @@ enum OpcodeClient : uint16 CMSG_QUEST_GIVER_STATUS_MULTIPLE_QUERY = 0x34A3, CMSG_QUEST_GIVER_STATUS_QUERY = 0x34A2, CMSG_QUEST_LOG_REMOVE_QUEST = 0x3540, - CMSG_QUEST_POI_QUERY = 0x36AD, + CMSG_QUEST_POI_QUERY = 0x36AC, CMSG_QUEST_PUSH_RESULT = 0x34A6, - CMSG_QUEST_SESSION_BEGIN_RESPONSE = 0x33D0, - CMSG_QUEST_SESSION_REQUEST_START = 0x33CF, - CMSG_QUEST_SESSION_REQUEST_STOP = 0x372A, + CMSG_QUEST_SESSION_BEGIN_RESPONSE = 0x33BF, + CMSG_QUEST_SESSION_REQUEST_START = 0x33BE, + CMSG_QUEST_SESSION_REQUEST_STOP = 0x3729, CMSG_QUEUED_MESSAGES_END = 0x376C, - CMSG_QUICK_JOIN_AUTO_ACCEPT_REQUESTS = 0x3703, - CMSG_QUICK_JOIN_REQUEST_INVITE = 0x3702, - CMSG_QUICK_JOIN_REQUEST_INVITE_WITH_CONFIRMATION = 0x372F, - CMSG_QUICK_JOIN_RESPOND_TO_INVITE = 0x3701, - CMSG_QUICK_JOIN_SIGNAL_TOAST_DISPLAYED = 0x3700, + CMSG_QUICK_JOIN_AUTO_ACCEPT_REQUESTS = 0x3702, + CMSG_QUICK_JOIN_REQUEST_INVITE = 0x3701, + CMSG_QUICK_JOIN_REQUEST_INVITE_WITH_CONFIRMATION = 0x372E, + CMSG_QUICK_JOIN_RESPOND_TO_INVITE = 0x3700, + CMSG_QUICK_JOIN_SIGNAL_TOAST_DISPLAYED = 0x36FF, CMSG_RAF_CLAIM_ACTIVITY_REWARD = 0x3512, - CMSG_RAF_CLAIM_NEXT_REWARD = 0x3720, - CMSG_RAF_GENERATE_RECRUITMENT_LINK = 0x3722, - CMSG_RAF_UPDATE_RECRUITMENT_INFO = 0x3721, - CMSG_RANDOM_ROLL = 0x3654, + CMSG_RAF_CLAIM_NEXT_REWARD = 0x371F, + CMSG_RAF_GENERATE_RECRUITMENT_LINK = 0x3721, + CMSG_RAF_UPDATE_RECRUITMENT_INFO = 0x3720, + CMSG_RANDOM_ROLL = 0x3653, CMSG_READY_CHECK_RESPONSE = 0x3635, CMSG_READ_ITEM = 0x3344, CMSG_RECLAIM_CORPSE = 0x34E9, CMSG_REMOVE_NEW_ITEM = 0x336A, - CMSG_REMOVE_RAF_RECRUIT = 0x3723, + CMSG_REMOVE_RAF_RECRUIT = 0x3722, CMSG_REORDER_CHARACTERS = 0x35E9, CMSG_REPAIR_ITEM = 0x34FA, CMSG_REPLACE_TROPHY = 0x3325, CMSG_REPOP_REQUEST = 0x3538, - CMSG_REPORT_CLIENT_VARIABLES = 0x36FD, - CMSG_REPORT_ENABLED_ADDONS = 0x36FC, - CMSG_REPORT_KEYBINDING_EXECUTION_COUNTS = 0x36FE, + CMSG_REPORT_CLIENT_VARIABLES = 0x36FC, + CMSG_REPORT_ENABLED_ADDONS = 0x36FB, + CMSG_REPORT_KEYBINDING_EXECUTION_COUNTS = 0x36FD, CMSG_REPORT_PVP_PLAYER_AFK = 0x3502, - CMSG_REPORT_SERVER_LAG = 0x33C8, - CMSG_REPORT_STUCK_IN_COMBAT = 0x33C9, - CMSG_REQUEST_ACCOUNT_DATA = 0x3694, + CMSG_REPORT_SERVER_LAG = 0x33B7, + CMSG_REPORT_STUCK_IN_COMBAT = 0x33B8, + CMSG_REQUEST_ACCOUNT_DATA = 0x3693, CMSG_REQUEST_AREA_POI_UPDATE = 0x3369, CMSG_REQUEST_BATTLEFIELD_STATUS = 0x35DC, CMSG_REQUEST_CATEGORY_COOLDOWNS = 0x317E, CMSG_REQUEST_CEMETERY_LIST = 0x3177, - CMSG_REQUEST_CHARACTER_GUILD_FOLLOW_INFO = 0x368B, + CMSG_REQUEST_CHARACTER_GUILD_FOLLOW_INFO = 0x368A, CMSG_REQUEST_CONQUEST_FORMULA_CONSTANTS = 0x32C8, - CMSG_REQUEST_COVENANT_CALLINGS = 0x33BA, + CMSG_REQUEST_COVENANT_CALLINGS = 0x33A9, CMSG_REQUEST_CROWD_CONTROL_SPELL = 0x353C, CMSG_REQUEST_FORCED_REACTIONS = 0x320F, - CMSG_REQUEST_GARRISON_TALENT_WORLD_QUEST_UNLOCKS = 0x33F4, + CMSG_REQUEST_GARRISON_TALENT_WORLD_QUEST_UNLOCKS = 0x33E3, CMSG_REQUEST_GUILD_PARTY_STATE = 0x31A9, CMSG_REQUEST_GUILD_REWARDS_LIST = 0x31A8, - CMSG_REQUEST_LATEST_SPLASH_SCREEN = 0x33CA, + CMSG_REQUEST_LATEST_SPLASH_SCREEN = 0x33B9, CMSG_REQUEST_LFG_LIST_BLACKLIST = 0x32B7, CMSG_REQUEST_MYTHIC_PLUS_AFFIXES = 0x3209, CMSG_REQUEST_MYTHIC_PLUS_SEASON_DATA = 0x320A, CMSG_REQUEST_PARTY_JOIN_UPDATES = 0x35F7, - CMSG_REQUEST_PARTY_MEMBER_STATS = 0x3653, + CMSG_REQUEST_PARTY_MEMBER_STATS = 0x3652, CMSG_REQUEST_PET_INFO = 0x3496, CMSG_REQUEST_PLAYED_TIME = 0x3289, CMSG_REQUEST_PVP_REWARDS = 0x3196, - CMSG_REQUEST_RAID_INFO = 0x36C7, + CMSG_REQUEST_RAID_INFO = 0x36C6, CMSG_REQUEST_RATED_PVP_INFO = 0x35E3, CMSG_REQUEST_REALM_GUILD_MASTER_INFO = 0x309B, CMSG_REQUEST_RESEARCH_HISTORY = 0x3167, @@ -685,12 +688,12 @@ enum OpcodeClient : uint16 CMSG_REQUEST_VEHICLE_NEXT_SEAT = 0x3243, CMSG_REQUEST_VEHICLE_PREV_SEAT = 0x3242, CMSG_REQUEST_VEHICLE_SWITCH_SEAT = 0x3244, - CMSG_REQUEST_WEEKLY_REWARDS = 0x33BD, + CMSG_REQUEST_WEEKLY_REWARDS = 0x33AC, CMSG_REQUEST_WORLD_QUEST_UPDATE = 0x3368, CMSG_RESET_CHALLENGE_MODE = 0x3207, CMSG_RESET_CHALLENGE_MODE_CHEAT = 0x3208, - CMSG_RESET_INSTANCES = 0x3668, - CMSG_RESURRECT_RESPONSE = 0x3683, + CMSG_RESET_INSTANCES = 0x3667, + CMSG_RESURRECT_RESPONSE = 0x3682, CMSG_REVERT_MONUMENT_APPEARANCE = 0x3327, CMSG_RIDE_VEHICLE_INTERACT = 0x3245, CMSG_SAVE_CUF_PROFILES = 0x318C, @@ -701,41 +704,41 @@ enum OpcodeClient : uint16 CMSG_SCENE_TRIGGER_EVENT = 0x3229, CMSG_SELF_RES = 0x3543, CMSG_SELL_ITEM = 0x34A8, - CMSG_SEND_CHARACTER_CLUB_INVITATION = 0x36F6, - CMSG_SEND_CONTACT_LIST = 0x36CC, + CMSG_SEND_CHARACTER_CLUB_INVITATION = 0x36F5, + CMSG_SEND_CONTACT_LIST = 0x36CB, CMSG_SEND_MAIL = 0x35FA, CMSG_SEND_TEXT_EMOTE = 0x348E, - CMSG_SERVER_TIME_OFFSET_REQUEST = 0x369A, + CMSG_SERVER_TIME_OFFSET_REQUEST = 0x3699, CMSG_SET_ACHIEVEMENTS_HIDDEN = 0x322E, CMSG_SET_ACTION_BAR_TOGGLES = 0x3544, CMSG_SET_ACTION_BUTTON = 0x3636, CMSG_SET_ACTIVE_MOVER = 0x3A3D, CMSG_SET_ADVANCED_COMBAT_LOGGING = 0x32C9, - CMSG_SET_ASSISTANT_LEADER = 0x364F, + CMSG_SET_ASSISTANT_LEADER = 0x364E, CMSG_SET_BACKPACK_AUTOSORT_DISABLED = 0x3347, CMSG_SET_BANK_AUTOSORT_DISABLED = 0x3348, CMSG_SET_CHAT_DISABLED = 0x3735, - CMSG_SET_CONTACT_NOTES = 0x36CF, + CMSG_SET_CONTACT_NOTES = 0x36CE, CMSG_SET_CURRENCY_FLAGS = 0x3169, CMSG_SET_DIFFICULTY_ID = 0x322A, - CMSG_SET_DUNGEON_DIFFICULTY = 0x3682, + CMSG_SET_DUNGEON_DIFFICULTY = 0x3681, CMSG_SET_EVERYONE_IS_ASSISTANT = 0x3618, CMSG_SET_FACTION_AT_WAR = 0x34EC, CMSG_SET_FACTION_INACTIVE = 0x34EE, CMSG_SET_FACTION_NOT_AT_WAR = 0x34ED, CMSG_SET_GAME_EVENT_DEBUG_VIEW_STATE = 0x31BA, CMSG_SET_INSERT_ITEMS_LEFT_TO_RIGHT = 0x334A, - CMSG_SET_LOOT_METHOD = 0x3648, + CMSG_SET_LOOT_METHOD = 0x3647, CMSG_SET_LOOT_SPECIALIZATION = 0x3551, - CMSG_SET_PARTY_ASSIGNMENT = 0x3651, - CMSG_SET_PARTY_LEADER = 0x364A, + CMSG_SET_PARTY_ASSIGNMENT = 0x3650, + CMSG_SET_PARTY_LEADER = 0x3649, CMSG_SET_PET_SLOT = 0x3168, - CMSG_SET_PLAYER_DECLINED_NAMES = 0x3688, + CMSG_SET_PLAYER_DECLINED_NAMES = 0x3687, CMSG_SET_PREFERRED_CEMETERY = 0x3178, CMSG_SET_PVP = 0x32BF, - CMSG_SET_RAID_DIFFICULTY = 0x36D8, + CMSG_SET_RAID_DIFFICULTY = 0x36D7, CMSG_SET_ROLE = 0x35D9, - CMSG_SET_SAVED_INSTANCE_EXTEND = 0x3686, + CMSG_SET_SAVED_INSTANCE_EXTEND = 0x3685, CMSG_SET_SELECTION = 0x353A, CMSG_SET_SHEATHED = 0x348F, CMSG_SET_SORT_BAGS_RIGHT_TO_LEFT = 0x3349, @@ -747,9 +750,10 @@ enum OpcodeClient : uint16 CMSG_SET_USING_PARTY_GARRISON = 0x3309, CMSG_SET_WAR_MODE = 0x32C0, CMSG_SET_WATCHED_FACTION = 0x34EF, - CMSG_SHOW_TRADE_SKILL = 0x36BF, + CMSG_SHOW_TRADE_SKILL = 0x36BE, CMSG_SIGN_PETITION = 0x3545, - CMSG_SILENCE_PARTY_TALKER = 0x3652, + CMSG_SILENCE_PARTY_TALKER = 0x3651, + CMSG_SOCIAL_CONTRACT_REQUEST = 0x373A, CMSG_SOCKET_GEMS = 0x34F9, CMSG_SORT_BAGS = 0x334B, CMSG_SORT_BANK_BAGS = 0x334C, @@ -765,10 +769,10 @@ enum OpcodeClient : uint16 CMSG_START_SPECTATOR_WAR_GAME = 0x35DF, CMSG_START_WAR_GAME = 0x35DE, CMSG_STORE_GUILD_BANK_ITEM = 0x34BE, - CMSG_SUBMIT_USER_FEEDBACK = 0x3693, - CMSG_SUBSCRIPTION_INTERSTITIAL_RESPONSE = 0x33E9, - CMSG_SUMMON_RESPONSE = 0x366A, - CMSG_SUPPORT_TICKET_SUBMIT_COMPLAINT = 0x3646, + CMSG_SUBMIT_USER_FEEDBACK = 0x3692, + CMSG_SUBSCRIPTION_INTERSTITIAL_RESPONSE = 0x33D8, + CMSG_SUMMON_RESPONSE = 0x3669, + CMSG_SUPPORT_TICKET_SUBMIT_COMPLAINT = 0x3645, CMSG_SURRENDER_ARENA = 0x3174, CMSG_SUSPEND_COMMS_ACK = 0x3764, CMSG_SUSPEND_TOKEN_RESPONSE = 0x376A, @@ -776,7 +780,7 @@ enum OpcodeClient : uint16 CMSG_SWAP_INV_ITEM = 0x399D, CMSG_SWAP_ITEM = 0x399C, CMSG_SWAP_ITEM_WITH_GUILD_BANK_ITEM = 0x34BF, - CMSG_SWAP_SUB_GROUPS = 0x364D, + CMSG_SWAP_SUB_GROUPS = 0x364C, CMSG_SWAP_VOID_ITEM = 0x31A5, CMSG_TABARD_VENDOR_ACTIVATE = 0x32BC, CMSG_TALK_TO_GOSSIP = 0x3498, @@ -787,7 +791,7 @@ enum OpcodeClient : uint16 CMSG_TIME_SYNC_RESPONSE = 0x3A3E, CMSG_TIME_SYNC_RESPONSE_DROPPED = 0x3A40, CMSG_TIME_SYNC_RESPONSE_FAILED = 0x3A3F, - CMSG_TOGGLE_DIFFICULTY = 0x3657, + CMSG_TOGGLE_DIFFICULTY = 0x3656, CMSG_TOGGLE_PVP = 0x32BE, CMSG_TOTEM_DESTROYED = 0x3506, CMSG_TOY_CLEAR_FANFARE = 0x312E, @@ -796,41 +800,41 @@ enum OpcodeClient : uint16 CMSG_TRAINER_LIST = 0x34B3, CMSG_TRANSMOGRIFY_ITEMS = 0x3198, CMSG_TURN_IN_PETITION = 0x3547, - CMSG_TUTORIAL = 0x36D9, + CMSG_TUTORIAL = 0x36D8, CMSG_TWITTER_CHECK_STATUS = 0x312A, CMSG_TWITTER_CONNECT = 0x3127, CMSG_TWITTER_DISCONNECT = 0x312B, - CMSG_UI_MAP_QUEST_LINES_REQUEST = 0x33B9, + CMSG_UI_MAP_QUEST_LINES_REQUEST = 0x33A8, CMSG_UNACCEPT_TRADE = 0x315B, - CMSG_UNDELETE_CHARACTER = 0x36DB, + CMSG_UNDELETE_CHARACTER = 0x36DA, CMSG_UNLEARN_SKILL = 0x34F3, CMSG_UNLEARN_SPECIALIZATION = 0x31A6, CMSG_UNLOCK_VOID_STORAGE = 0x31A2, - CMSG_UPDATE_ACCOUNT_DATA = 0x3695, + CMSG_UPDATE_ACCOUNT_DATA = 0x3694, CMSG_UPDATE_AREA_TRIGGER_VISUAL = 0x32AE, - CMSG_UPDATE_CLIENT_SETTINGS = 0x3664, + CMSG_UPDATE_CLIENT_SETTINGS = 0x3663, CMSG_UPDATE_MISSILE_TRAJECTORY = 0x3A44, - CMSG_UPDATE_RAID_TARGET = 0x3650, + CMSG_UPDATE_RAID_TARGET = 0x364F, CMSG_UPDATE_SPELL_VISUAL = 0x32AD, - CMSG_UPDATE_VAS_PURCHASE_STATES = 0x36F0, + CMSG_UPDATE_VAS_PURCHASE_STATES = 0x36EF, CMSG_UPGRADE_GARRISON = 0x32D1, - CMSG_UPGRADE_RUNEFORGE_LEGENDARY = 0x33E7, + CMSG_UPGRADE_RUNEFORGE_LEGENDARY = 0x33D6, CMSG_USED_FOLLOW = 0x3187, CMSG_USE_CRITTER_ITEM = 0x324B, CMSG_USE_EQUIPMENT_SET = 0x3995, CMSG_USE_ITEM = 0x32A7, CMSG_USE_TOY = 0x32AA, - CMSG_VAS_CHECK_TRANSFER_OK = 0x3708, - CMSG_VAS_GET_QUEUE_MINUTES = 0x3707, - CMSG_VAS_GET_SERVICE_STATUS = 0x3706, + CMSG_VAS_CHECK_TRANSFER_OK = 0x3707, + CMSG_VAS_GET_QUEUE_MINUTES = 0x3706, + CMSG_VAS_GET_SERVICE_STATUS = 0x3705, CMSG_VIOLENCE_LEVEL = 0x3185, - CMSG_VOICE_CHANNEL_STT_TOKEN_REQUEST = 0x370C, - CMSG_VOICE_CHAT_JOIN_CHANNEL = 0x370D, - CMSG_VOICE_CHAT_LOGIN = 0x370B, + CMSG_VOICE_CHANNEL_STT_TOKEN_REQUEST = 0x370B, + CMSG_VOICE_CHAT_JOIN_CHANNEL = 0x370C, + CMSG_VOICE_CHAT_LOGIN = 0x370A, CMSG_VOID_STORAGE_TRANSFER = 0x31A4, CMSG_WARDEN3_DATA = 0x35EC, - CMSG_WHO = 0x3681, - CMSG_WHO_IS = 0x3680, + CMSG_WHO = 0x3680, + CMSG_WHO_IS = 0x367F, CMSG_WORLD_PORT_RESPONSE = 0x35F9, CMSG_WRAP_ITEM = 0x3994, @@ -842,85 +846,85 @@ enum OpcodeClient : uint16 enum OpcodeServer : uint16 { SMSG_ABORT_NEW_WORLD = 0x259A, - SMSG_ACCOUNT_COSMETIC_ADDED = 0x2885, - SMSG_ACCOUNT_CRITERIA_UPDATE = 0x286B, - SMSG_ACCOUNT_DATA_TIMES = 0x26FD, + SMSG_ACCOUNT_COSMETIC_ADDED = 0x2872, + SMSG_ACCOUNT_CRITERIA_UPDATE = 0x2858, + SMSG_ACCOUNT_DATA_TIMES = 0x26FE, SMSG_ACCOUNT_MOUNT_UPDATE = 0x25AC, - SMSG_ACCOUNT_NOTIFICATIONS_RESPONSE = 0x2884, + SMSG_ACCOUNT_NOTIFICATIONS_RESPONSE = 0x2871, SMSG_ACCOUNT_TOY_UPDATE = 0x25AD, SMSG_ACCOUNT_TRANSMOG_SET_FAVORITES_UPDATE = 0x25B0, SMSG_ACCOUNT_TRANSMOG_UPDATE = 0x25AF, - SMSG_ACHIEVEMENT_DELETED = 0x26DC, - SMSG_ACHIEVEMENT_EARNED = 0x263A, + SMSG_ACHIEVEMENT_DELETED = 0x26DD, + SMSG_ACHIEVEMENT_EARNED = 0x263B, SMSG_ACTIVATE_ESSENCE_FAILED = 0x3015, SMSG_ACTIVATE_SOULBIND_FAILED = 0x3017, - SMSG_ACTIVATE_TAXI_REPLY = 0x2674, + SMSG_ACTIVATE_TAXI_REPLY = 0x2675, SMSG_ACTIVE_GLYPHS = 0x2C54, - SMSG_ADDON_LIST_REQUEST = 0x2639, - SMSG_ADD_BATTLENET_FRIEND_RESPONSE = 0x2634, + SMSG_ADDON_LIST_REQUEST = 0x263A, + SMSG_ADD_BATTLENET_FRIEND_RESPONSE = 0x2635, SMSG_ADD_ITEM_PASSIVE = 0x25A8, - SMSG_ADD_LOSS_OF_CONTROL = 0x2668, - SMSG_ADD_RUNE_POWER = 0x26AE, + SMSG_ADD_LOSS_OF_CONTROL = 0x2669, + SMSG_ADD_RUNE_POWER = 0x26AF, SMSG_ADJUST_SPLINE_DURATION = 0x25CC, - SMSG_ADVANCED_COMBAT_LOG = 0x2881, - SMSG_ADVENTURE_JOURNAL_DATA_RESPONSE = 0x287B, - SMSG_ADVENTURE_MAP_OPEN_NPC = 0x27E4, - SMSG_AE_LOOT_TARGETS = 0x260F, - SMSG_AE_LOOT_TARGET_ACK = 0x2610, - SMSG_AI_REACTION = 0x26AB, - SMSG_ALLIED_RACE_DETAILS = 0x27EA, + SMSG_ADVANCED_COMBAT_LOG = 0x286E, + SMSG_ADVENTURE_JOURNAL_DATA_RESPONSE = 0x2868, + SMSG_ADVENTURE_MAP_OPEN_NPC = 0x27E5, + SMSG_AE_LOOT_TARGETS = 0x2610, + SMSG_AE_LOOT_TARGET_ACK = 0x2611, + SMSG_AI_REACTION = 0x26AC, + SMSG_ALLIED_RACE_DETAILS = 0x27EB, SMSG_ALL_ACCOUNT_CRITERIA = 0x2571, SMSG_ALL_ACHIEVEMENT_DATA = 0x2570, SMSG_ALL_GUILD_ACHIEVEMENTS = 0x29B8, - SMSG_APPLY_MOUNT_EQUIPMENT_RESULT = 0x2858, + SMSG_APPLY_MOUNT_EQUIPMENT_RESULT = 0x2845, SMSG_ARCHAEOLOGY_SURVERY_CAST = 0x2588, SMSG_AREA_POI_UPDATE_RESPONSE = 0x3010, - SMSG_AREA_SPIRIT_HEALER_TIME = 0x2732, + SMSG_AREA_SPIRIT_HEALER_TIME = 0x2733, SMSG_AREA_TRIGGER_DENIED = 0x2902, SMSG_AREA_TRIGGER_FORCE_SET_POSITION_AND_FACING = 0x28FF, - SMSG_AREA_TRIGGER_NO_CORPSE = 0x2709, + SMSG_AREA_TRIGGER_NO_CORPSE = 0x270A, SMSG_AREA_TRIGGER_PLAY_SPELL_VISUAL = 0x28FE, SMSG_AREA_TRIGGER_RE_PATH = 0x28FD, SMSG_AREA_TRIGGER_RE_SHAPE = 0x2901, SMSG_AREA_TRIGGER_UNATTACH = 0x2900, - SMSG_ARENA_CLEAR_OPPONENTS = 0x2640, - SMSG_ARENA_CROWD_CONTROL_SPELL_RESULT = 0x2629, - SMSG_ARENA_PREP_OPPONENT_SPECIALIZATIONS = 0x263F, - SMSG_ARTIFACT_ENDGAME_POWERS_REFUNDED = 0x2795, - SMSG_ARTIFACT_FORGE_ERROR = 0x2793, - SMSG_ARTIFACT_RESPEC_PROMPT = 0x2794, - SMSG_ARTIFACT_XP_GAIN = 0x27DD, + SMSG_ARENA_CLEAR_OPPONENTS = 0x2641, + SMSG_ARENA_CROWD_CONTROL_SPELL_RESULT = 0x262A, + SMSG_ARENA_PREP_OPPONENT_SPECIALIZATIONS = 0x2640, + SMSG_ARTIFACT_ENDGAME_POWERS_REFUNDED = 0x2796, + SMSG_ARTIFACT_FORGE_ERROR = 0x2794, + SMSG_ARTIFACT_RESPEC_PROMPT = 0x2795, + SMSG_ARTIFACT_XP_GAIN = 0x27DE, SMSG_ATTACKER_STATE_UPDATE = 0x294D, SMSG_ATTACK_START = 0x2938, SMSG_ATTACK_STOP = 0x2939, SMSG_ATTACK_SWING_ERROR = 0x2947, SMSG_ATTACK_SWING_LANDED_LOG = 0x2948, - SMSG_AUCTIONABLE_TOKEN_AUCTION_SOLD = 0x27C6, - SMSG_AUCTIONABLE_TOKEN_SELL_AT_MARKET_PRICE_RESPONSE = 0x27C5, - SMSG_AUCTIONABLE_TOKEN_SELL_CONFIRM_REQUIRED = 0x27C4, - SMSG_AUCTION_CLOSED_NOTIFICATION = 0x26E6, - SMSG_AUCTION_COMMAND_RESULT = 0x26E3, - SMSG_AUCTION_FAVORITE_LIST = 0x2872, - SMSG_AUCTION_GET_COMMODITY_QUOTE_RESULT = 0x2869, - SMSG_AUCTION_HELLO_RESPONSE = 0x26E1, - SMSG_AUCTION_LIST_BIDDED_ITEMS_RESULT = 0x2868, - SMSG_AUCTION_LIST_BUCKETS_RESULT = 0x2865, - SMSG_AUCTION_LIST_ITEMS_RESULT = 0x2866, - SMSG_AUCTION_LIST_OWNED_ITEMS_RESULT = 0x2867, - SMSG_AUCTION_OUTBID_NOTIFICATION = 0x26E5, - SMSG_AUCTION_OWNER_BID_NOTIFICATION = 0x26E7, - SMSG_AUCTION_REPLICATE_RESPONSE = 0x26E2, - SMSG_AUCTION_WON_NOTIFICATION = 0x26E4, + SMSG_AUCTIONABLE_TOKEN_AUCTION_SOLD = 0x27C7, + SMSG_AUCTIONABLE_TOKEN_SELL_AT_MARKET_PRICE_RESPONSE = 0x27C6, + SMSG_AUCTIONABLE_TOKEN_SELL_CONFIRM_REQUIRED = 0x27C5, + SMSG_AUCTION_CLOSED_NOTIFICATION = 0x26E7, + SMSG_AUCTION_COMMAND_RESULT = 0x26E4, + SMSG_AUCTION_FAVORITE_LIST = 0x285F, + SMSG_AUCTION_GET_COMMODITY_QUOTE_RESULT = 0x2856, + SMSG_AUCTION_HELLO_RESPONSE = 0x26E2, + SMSG_AUCTION_LIST_BIDDED_ITEMS_RESULT = 0x2855, + SMSG_AUCTION_LIST_BUCKETS_RESULT = 0x2852, + SMSG_AUCTION_LIST_ITEMS_RESULT = 0x2853, + SMSG_AUCTION_LIST_OWNED_ITEMS_RESULT = 0x2854, + SMSG_AUCTION_OUTBID_NOTIFICATION = 0x26E6, + SMSG_AUCTION_OWNER_BID_NOTIFICATION = 0x26E8, + SMSG_AUCTION_REPLICATE_RESPONSE = 0x26E3, + SMSG_AUCTION_WON_NOTIFICATION = 0x26E5, SMSG_AURA_POINTS_DEPLETED = 0x2C23, SMSG_AURA_UPDATE = 0x2C22, SMSG_AUTH_CHALLENGE = 0x3048, SMSG_AUTH_FAILED = 0x256C, SMSG_AUTH_RESPONSE = 0x256D, SMSG_AVAILABLE_HOTFIXES = 0x290F, - SMSG_AZERITE_RESPEC_NPC = 0x27E7, + SMSG_AZERITE_RESPEC_NPC = 0x27E8, SMSG_BAG_CLEANUP_FINISHED = 0x2DA7, - SMSG_BARBER_SHOP_RESULT = 0x26B3, - SMSG_BATCH_PRESENCE_SUBSCRIPTION = 0x2849, + SMSG_BARBER_SHOP_RESULT = 0x26B4, + SMSG_BATCH_PRESENCE_SUBSCRIPTION = 0x2836, SMSG_BATTLEFIELD_LIST = 0x2927, SMSG_BATTLEFIELD_PORT_DENIED = 0x292D, SMSG_BATTLEFIELD_STATUS_ACTIVE = 0x2923, @@ -936,33 +940,33 @@ enum OpcodeServer : uint16 SMSG_BATTLEGROUND_PLAYER_LEFT = 0x292C, SMSG_BATTLEGROUND_PLAYER_POSITIONS = 0x2928, SMSG_BATTLEGROUND_POINTS = 0x2949, - SMSG_BATTLENET_CHALLENGE_ABORT = 0x277C, - SMSG_BATTLENET_CHALLENGE_START = 0x277B, - SMSG_BATTLENET_NOTIFICATION = 0x27F5, - SMSG_BATTLENET_RESPONSE = 0x27F4, - SMSG_BATTLE_NET_CONNECTION_STATUS = 0x27F6, - SMSG_BATTLE_PAY_ACK_FAILED = 0x2776, - SMSG_BATTLE_PAY_BATTLE_PET_DELIVERED = 0x276B, - SMSG_BATTLE_PAY_COLLECTION_ITEM_DELIVERED = 0x276C, - SMSG_BATTLE_PAY_CONFIRM_PURCHASE = 0x2775, - SMSG_BATTLE_PAY_DELIVERY_ENDED = 0x2769, - SMSG_BATTLE_PAY_DELIVERY_STARTED = 0x2768, - SMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_VAS_RESPONSE = 0x288A, - SMSG_BATTLE_PAY_DISTRIBUTION_UNREVOKED = 0x2766, - SMSG_BATTLE_PAY_DISTRIBUTION_UPDATE = 0x2767, - SMSG_BATTLE_PAY_GET_DISTRIBUTION_LIST_RESPONSE = 0x2765, - SMSG_BATTLE_PAY_GET_PRODUCT_LIST_RESPONSE = 0x2763, - SMSG_BATTLE_PAY_GET_PURCHASE_LIST_RESPONSE = 0x2764, - SMSG_BATTLE_PAY_MOUNT_DELIVERED = 0x276A, - SMSG_BATTLE_PAY_PURCHASE_UPDATE = 0x2774, - SMSG_BATTLE_PAY_START_CHECKOUT = 0x2811, - SMSG_BATTLE_PAY_START_DISTRIBUTION_ASSIGN_TO_TARGET_RESPONSE = 0x2772, - SMSG_BATTLE_PAY_START_PURCHASE_RESPONSE = 0x2771, - SMSG_BATTLE_PAY_VALIDATE_PURCHASE_RESPONSE = 0x2805, + SMSG_BATTLENET_CHALLENGE_ABORT = 0x277D, + SMSG_BATTLENET_CHALLENGE_START = 0x277C, + SMSG_BATTLENET_NOTIFICATION = 0x27F6, + SMSG_BATTLENET_RESPONSE = 0x27F5, + SMSG_BATTLE_NET_CONNECTION_STATUS = 0x27F7, + SMSG_BATTLE_PAY_ACK_FAILED = 0x2777, + SMSG_BATTLE_PAY_BATTLE_PET_DELIVERED = 0x276C, + SMSG_BATTLE_PAY_COLLECTION_ITEM_DELIVERED = 0x276D, + SMSG_BATTLE_PAY_CONFIRM_PURCHASE = 0x2776, + SMSG_BATTLE_PAY_DELIVERY_ENDED = 0x276A, + SMSG_BATTLE_PAY_DELIVERY_STARTED = 0x2769, + SMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_VAS_RESPONSE = 0x2877, + SMSG_BATTLE_PAY_DISTRIBUTION_UNREVOKED = 0x2767, + SMSG_BATTLE_PAY_DISTRIBUTION_UPDATE = 0x2768, + SMSG_BATTLE_PAY_GET_DISTRIBUTION_LIST_RESPONSE = 0x2766, + SMSG_BATTLE_PAY_GET_PRODUCT_LIST_RESPONSE = 0x2764, + SMSG_BATTLE_PAY_GET_PURCHASE_LIST_RESPONSE = 0x2765, + SMSG_BATTLE_PAY_MOUNT_DELIVERED = 0x276B, + SMSG_BATTLE_PAY_PURCHASE_UPDATE = 0x2775, + SMSG_BATTLE_PAY_START_CHECKOUT = 0x2812, + SMSG_BATTLE_PAY_START_DISTRIBUTION_ASSIGN_TO_TARGET_RESPONSE = 0x2773, + SMSG_BATTLE_PAY_START_PURCHASE_RESPONSE = 0x2772, + SMSG_BATTLE_PAY_VALIDATE_PURCHASE_RESPONSE = 0x2806, SMSG_BATTLE_PETS_HEALED = 0x25EC, - SMSG_BATTLE_PET_CAGE_DATE_ERROR = 0x266F, + SMSG_BATTLE_PET_CAGE_DATE_ERROR = 0x2670, SMSG_BATTLE_PET_DELETED = 0x25E9, - SMSG_BATTLE_PET_ERROR = 0x262F, + SMSG_BATTLE_PET_ERROR = 0x2630, SMSG_BATTLE_PET_JOURNAL = 0x25E8, SMSG_BATTLE_PET_JOURNAL_LOCK_ACQUIRED = 0x25E6, SMSG_BATTLE_PET_JOURNAL_LOCK_DENIED = 0x25E7, @@ -971,78 +975,78 @@ enum OpcodeServer : uint16 SMSG_BATTLE_PET_REVOKED = 0x25EA, SMSG_BATTLE_PET_TRAP_LEVEL = 0x25E4, SMSG_BATTLE_PET_UPDATES = 0x25E3, - SMSG_BINDER_CONFIRM = 0x26F0, + SMSG_BINDER_CONFIRM = 0x26F1, SMSG_BIND_POINT_UPDATE = 0x257D, - SMSG_BLACK_MARKET_BID_ON_ITEM_RESULT = 0x261F, - SMSG_BLACK_MARKET_OPEN_RESULT = 0x261D, - SMSG_BLACK_MARKET_OUTBID = 0x2620, - SMSG_BLACK_MARKET_REQUEST_ITEMS_RESULT = 0x261E, - SMSG_BLACK_MARKET_WON = 0x2621, - SMSG_BONUS_ROLL_EMPTY = 0x263C, + SMSG_BLACK_MARKET_BID_ON_ITEM_RESULT = 0x2620, + SMSG_BLACK_MARKET_OPEN_RESULT = 0x261E, + SMSG_BLACK_MARKET_OUTBID = 0x2621, + SMSG_BLACK_MARKET_REQUEST_ITEMS_RESULT = 0x261F, + SMSG_BLACK_MARKET_WON = 0x2622, + SMSG_BONUS_ROLL_EMPTY = 0x263D, SMSG_BOSS_KILL = 0x294C, SMSG_BREAK_TARGET = 0x2937, SMSG_BROADCAST_ACHIEVEMENT = 0x2BBC, - SMSG_BROADCAST_SUMMON_CAST = 0x284B, - SMSG_BROADCAST_SUMMON_RESPONSE = 0x284C, - SMSG_BUY_FAILED = 0x26BC, - SMSG_BUY_SUCCEEDED = 0x26BB, + SMSG_BROADCAST_SUMMON_CAST = 0x2838, + SMSG_BROADCAST_SUMMON_RESPONSE = 0x2839, + SMSG_BUY_FAILED = 0x26BD, + SMSG_BUY_SUCCEEDED = 0x26BC, SMSG_CACHE_INFO = 0x291D, SMSG_CACHE_VERSION = 0x291C, - SMSG_CALENDAR_CLEAR_PENDING_ACTION = 0x2694, - SMSG_CALENDAR_COMMAND_RESULT = 0x2695, - SMSG_CALENDAR_COMMUNITY_INVITE = 0x2684, - SMSG_CALENDAR_EVENT_REMOVED_ALERT = 0x268C, - SMSG_CALENDAR_EVENT_UPDATED_ALERT = 0x268D, - SMSG_CALENDAR_INVITE_ADDED = 0x2685, - SMSG_CALENDAR_INVITE_ALERT = 0x2689, - SMSG_CALENDAR_INVITE_NOTES = 0x268E, - SMSG_CALENDAR_INVITE_NOTES_ALERT = 0x268F, - SMSG_CALENDAR_INVITE_REMOVED = 0x2686, - SMSG_CALENDAR_INVITE_REMOVED_ALERT = 0x268B, - SMSG_CALENDAR_INVITE_STATUS = 0x2687, - SMSG_CALENDAR_INVITE_STATUS_ALERT = 0x268A, - SMSG_CALENDAR_MODERATOR_STATUS = 0x2688, - SMSG_CALENDAR_RAID_LOCKOUT_ADDED = 0x2690, - SMSG_CALENDAR_RAID_LOCKOUT_REMOVED = 0x2691, - SMSG_CALENDAR_RAID_LOCKOUT_UPDATED = 0x2692, - SMSG_CALENDAR_SEND_CALENDAR = 0x2682, - SMSG_CALENDAR_SEND_EVENT = 0x2683, - SMSG_CALENDAR_SEND_NUM_PENDING = 0x2693, - SMSG_CAMERA_EFFECT = 0x2718, - SMSG_CANCEL_AUTO_REPEAT = 0x26D2, + SMSG_CALENDAR_CLEAR_PENDING_ACTION = 0x2695, + SMSG_CALENDAR_COMMAND_RESULT = 0x2696, + SMSG_CALENDAR_COMMUNITY_INVITE = 0x2685, + SMSG_CALENDAR_EVENT_REMOVED_ALERT = 0x268D, + SMSG_CALENDAR_EVENT_UPDATED_ALERT = 0x268E, + SMSG_CALENDAR_INVITE_ADDED = 0x2686, + SMSG_CALENDAR_INVITE_ALERT = 0x268A, + SMSG_CALENDAR_INVITE_NOTES = 0x268F, + SMSG_CALENDAR_INVITE_NOTES_ALERT = 0x2690, + SMSG_CALENDAR_INVITE_REMOVED = 0x2687, + SMSG_CALENDAR_INVITE_REMOVED_ALERT = 0x268C, + SMSG_CALENDAR_INVITE_STATUS = 0x2688, + SMSG_CALENDAR_INVITE_STATUS_ALERT = 0x268B, + SMSG_CALENDAR_MODERATOR_STATUS = 0x2689, + SMSG_CALENDAR_RAID_LOCKOUT_ADDED = 0x2691, + SMSG_CALENDAR_RAID_LOCKOUT_REMOVED = 0x2692, + SMSG_CALENDAR_RAID_LOCKOUT_UPDATED = 0x2693, + SMSG_CALENDAR_SEND_CALENDAR = 0x2683, + SMSG_CALENDAR_SEND_EVENT = 0x2684, + SMSG_CALENDAR_SEND_NUM_PENDING = 0x2694, + SMSG_CAMERA_EFFECT = 0x2719, + SMSG_CANCEL_AUTO_REPEAT = 0x26D3, SMSG_CANCEL_COMBAT = 0x2946, SMSG_CANCEL_ORPHAN_SPELL_VISUAL = 0x2C46, - SMSG_CANCEL_SCENE = 0x262E, + SMSG_CANCEL_SCENE = 0x262F, SMSG_CANCEL_SPELL_VISUAL = 0x2C44, SMSG_CANCEL_SPELL_VISUAL_KIT = 0x2C48, SMSG_CAN_DUEL_RESULT = 0x2942, - SMSG_CAN_REDEEM_TOKEN_FOR_BALANCE_RESPONSE = 0x2804, + SMSG_CAN_REDEEM_TOKEN_FOR_BALANCE_RESPONSE = 0x2805, SMSG_CAPTURE_POINT_REMOVED = 0x292A, SMSG_CAST_FAILED = 0x2C57, SMSG_CATEGORY_COOLDOWN = 0x2C16, SMSG_CHAIN_MISSILE_BOUNCE = 0x25C4, - SMSG_CHALLENGE_MODE_COMPLETE = 0x2603, - SMSG_CHALLENGE_MODE_REQUEST_LEADERS_RESULT = 0x2607, - SMSG_CHALLENGE_MODE_RESET = 0x2602, - SMSG_CHALLENGE_MODE_START = 0x2600, - SMSG_CHALLENGE_MODE_UPDATE_DEATH_COUNT = 0x2601, + SMSG_CHALLENGE_MODE_COMPLETE = 0x2604, + SMSG_CHALLENGE_MODE_REQUEST_LEADERS_RESULT = 0x2608, + SMSG_CHALLENGE_MODE_RESET = 0x2603, + SMSG_CHALLENGE_MODE_START = 0x2601, + SMSG_CHALLENGE_MODE_UPDATE_DEATH_COUNT = 0x2602, SMSG_CHANGE_PLAYER_DIFFICULTY_RESULT = 0x3004, - SMSG_CHANGE_REALM_TICKET_RESPONSE = 0x27F7, + SMSG_CHANGE_REALM_TICKET_RESPONSE = 0x27F8, SMSG_CHANNEL_LIST = 0x2BC3, SMSG_CHANNEL_NOTIFY = 0x2BC0, SMSG_CHANNEL_NOTIFY_JOINED = 0x2BC1, SMSG_CHANNEL_NOTIFY_LEFT = 0x2BC2, - SMSG_CHARACTER_CHECK_UPGRADE_RESULT = 0x27AF, - SMSG_CHARACTER_LOGIN_FAILED = 0x26F8, - SMSG_CHARACTER_OBJECT_TEST_RESPONSE = 0x277A, - SMSG_CHARACTER_RENAME_RESULT = 0x2755, - SMSG_CHARACTER_UPGRADE_ABORTED = 0x27AE, - SMSG_CHARACTER_UPGRADE_COMPLETE = 0x27AD, - SMSG_CHARACTER_UPGRADE_MANUAL_UNREVOKE_RESULT = 0x27B0, - SMSG_CHARACTER_UPGRADE_STARTED = 0x27AC, - SMSG_CHAR_CUSTOMIZE_FAILURE = 0x26D6, - SMSG_CHAR_CUSTOMIZE_SUCCESS = 0x26D7, - SMSG_CHAR_FACTION_CHANGE_RESULT = 0x2799, + SMSG_CHARACTER_CHECK_UPGRADE_RESULT = 0x27B0, + SMSG_CHARACTER_LOGIN_FAILED = 0x26F9, + SMSG_CHARACTER_OBJECT_TEST_RESPONSE = 0x277B, + SMSG_CHARACTER_RENAME_RESULT = 0x2756, + SMSG_CHARACTER_UPGRADE_ABORTED = 0x27AF, + SMSG_CHARACTER_UPGRADE_COMPLETE = 0x27AE, + SMSG_CHARACTER_UPGRADE_MANUAL_UNREVOKE_RESULT = 0x27B1, + SMSG_CHARACTER_UPGRADE_STARTED = 0x27AD, + SMSG_CHAR_CUSTOMIZE_FAILURE = 0x26D7, + SMSG_CHAR_CUSTOMIZE_SUCCESS = 0x26D8, + SMSG_CHAR_FACTION_CHANGE_RESULT = 0x279A, SMSG_CHAT = 0x2BAD, SMSG_CHAT_AUTO_RESPONDED = 0x2BB8, SMSG_CHAT_DOWN = 0x2BBD, @@ -1059,86 +1063,87 @@ enum OpcodeServer : uint16 SMSG_CHECK_ABANDON_NPE = 0x3018, SMSG_CHECK_CHARACTER_NAME_AVAILABILITY_RESULT = 0x2584, SMSG_CHECK_WARGAME_ENTRY = 0x2592, - SMSG_CHROMIE_TIME_OPEN_NPC = 0x27EC, - SMSG_CHROMIE_TIME_SELECT_EXPANSION_SUCCESS = 0x2875, - SMSG_CLAIM_RAF_REWARD_RESPONSE = 0x285C, + SMSG_CHROMIE_TIME_OPEN_NPC = 0x27ED, + SMSG_CHROMIE_TIME_SELECT_EXPANSION_SUCCESS = 0x2862, + SMSG_CLAIM_RAF_REWARD_RESPONSE = 0x2849, SMSG_CLEAR_ALL_SPELL_CHARGES = 0x2C27, SMSG_CLEAR_BOSS_EMOTES = 0x25B7, - SMSG_CLEAR_COOLDOWN = 0x26B0, + SMSG_CLEAR_COOLDOWN = 0x26B1, SMSG_CLEAR_COOLDOWNS = 0x2C26, SMSG_CLEAR_RESURRECT = 0x257F, SMSG_CLEAR_SPELL_CHARGES = 0x2C28, SMSG_CLEAR_TARGET = 0x2943, SMSG_CLEAR_TREASURE_PICKER_CACHE = 0x2AA1, - SMSG_CLOSE_ARTIFACT_FORGE = 0x2792, - SMSG_CLOSE_HEART_FORGE = 0x2817, - SMSG_CLOSE_ITEM_FORGE = 0x2790, - SMSG_CLUB_FINDER_ERROR_MESSAGE = 0x2854, - SMSG_CLUB_FINDER_GET_CLUB_POSTING_IDS_RESPONSE = 0x2857, - SMSG_CLUB_FINDER_LOOKUP_CLUB_POSTINGS_LIST = 0x2855, - SMSG_CLUB_FINDER_RESPONSE_CHARACTER_APPLICATION_LIST = 0x2852, - SMSG_CLUB_FINDER_RESPONSE_POST_RECRUITMENT_MESSAGE = 0x2856, - SMSG_CLUB_FINDER_UPDATE_APPLICATIONS = 0x2853, - SMSG_COIN_REMOVED = 0x260E, + SMSG_CLOSE_ARTIFACT_FORGE = 0x2793, + SMSG_CLOSE_HEART_FORGE = 0x2818, + SMSG_CLOSE_ITEM_FORGE = 0x2791, + SMSG_CLUB_FINDER_ERROR_MESSAGE = 0x2841, + SMSG_CLUB_FINDER_GET_CLUB_POSTING_IDS_RESPONSE = 0x2844, + SMSG_CLUB_FINDER_LOOKUP_CLUB_POSTINGS_LIST = 0x2842, + SMSG_CLUB_FINDER_RESPONSE_CHARACTER_APPLICATION_LIST = 0x283F, + SMSG_CLUB_FINDER_RESPONSE_POST_RECRUITMENT_MESSAGE = 0x2843, + SMSG_CLUB_FINDER_UPDATE_APPLICATIONS = 0x2840, + SMSG_CLUB_FINDER_WHISPER_APPLICANT_RESPONSE = 0x287A, + SMSG_COIN_REMOVED = 0x260F, SMSG_COMBAT_EVENT_FAILED = 0x293A, - SMSG_COMMENTATOR_MAP_INFO = 0x26FA, - SMSG_COMMENTATOR_PLAYER_INFO = 0x26FB, - SMSG_COMMENTATOR_STATE_CHANGED = 0x26F9, - SMSG_COMMERCE_TOKEN_GET_COUNT_RESPONSE = 0x27C1, - SMSG_COMMERCE_TOKEN_GET_LOG_RESPONSE = 0x27CD, - SMSG_COMMERCE_TOKEN_GET_MARKET_PRICE_RESPONSE = 0x27C3, - SMSG_COMMERCE_TOKEN_UPDATE = 0x27C2, - SMSG_COMPLAINT_RESULT = 0x26A2, - SMSG_COMPLETE_SHIPMENT_RESPONSE = 0x278B, - SMSG_CONFIRM_PARTY_INVITE = 0x2803, + SMSG_COMMENTATOR_MAP_INFO = 0x26FB, + SMSG_COMMENTATOR_PLAYER_INFO = 0x26FC, + SMSG_COMMENTATOR_STATE_CHANGED = 0x26FA, + SMSG_COMMERCE_TOKEN_GET_COUNT_RESPONSE = 0x27C2, + SMSG_COMMERCE_TOKEN_GET_LOG_RESPONSE = 0x27CE, + SMSG_COMMERCE_TOKEN_GET_MARKET_PRICE_RESPONSE = 0x27C4, + SMSG_COMMERCE_TOKEN_UPDATE = 0x27C3, + SMSG_COMPLAINT_RESULT = 0x26A3, + SMSG_COMPLETE_SHIPMENT_RESPONSE = 0x278C, + SMSG_CONFIRM_PARTY_INVITE = 0x2804, SMSG_CONNECT_TO = 0x304D, - SMSG_CONQUEST_FORMULA_CONSTANTS = 0x2777, - SMSG_CONSOLE_WRITE = 0x262C, - SMSG_CONSUMABLE_TOKEN_BUY_AT_MARKET_PRICE_RESPONSE = 0x27C9, - SMSG_CONSUMABLE_TOKEN_BUY_CHOICE_REQUIRED = 0x27C8, - SMSG_CONSUMABLE_TOKEN_CAN_VETERAN_BUY_RESPONSE = 0x27C7, - SMSG_CONSUMABLE_TOKEN_REDEEM_CONFIRM_REQUIRED = 0x27CB, - SMSG_CONSUMABLE_TOKEN_REDEEM_RESPONSE = 0x27CC, - SMSG_CONTACT_LIST = 0x2778, - SMSG_CONTRIBUTION_LAST_UPDATE_RESPONSE = 0x280A, - SMSG_CONTROL_UPDATE = 0x263E, - SMSG_CONVERT_ITEMS_TO_CURRENCY_VALUE = 0x287E, - SMSG_COOLDOWN_CHEAT = 0x272B, - SMSG_COOLDOWN_EVENT = 0x26AF, - SMSG_CORPSE_LOCATION = 0x2646, - SMSG_CORPSE_RECLAIM_DELAY = 0x273C, - SMSG_CORPSE_TRANSPORT_QUERY = 0x2705, + SMSG_CONQUEST_FORMULA_CONSTANTS = 0x2778, + SMSG_CONSOLE_WRITE = 0x262D, + SMSG_CONSUMABLE_TOKEN_BUY_AT_MARKET_PRICE_RESPONSE = 0x27CA, + SMSG_CONSUMABLE_TOKEN_BUY_CHOICE_REQUIRED = 0x27C9, + SMSG_CONSUMABLE_TOKEN_CAN_VETERAN_BUY_RESPONSE = 0x27C8, + SMSG_CONSUMABLE_TOKEN_REDEEM_CONFIRM_REQUIRED = 0x27CC, + SMSG_CONSUMABLE_TOKEN_REDEEM_RESPONSE = 0x27CD, + SMSG_CONTACT_LIST = 0x2779, + SMSG_CONTRIBUTION_LAST_UPDATE_RESPONSE = 0x280B, + SMSG_CONTROL_UPDATE = 0x263F, + SMSG_CONVERT_ITEMS_TO_CURRENCY_VALUE = 0x286B, + SMSG_COOLDOWN_CHEAT = 0x272C, + SMSG_COOLDOWN_EVENT = 0x26B0, + SMSG_CORPSE_LOCATION = 0x2647, + SMSG_CORPSE_RECLAIM_DELAY = 0x273D, + SMSG_CORPSE_TRANSPORT_QUERY = 0x2706, SMSG_COVENANT_CALLINGS_AVAILABILITY_RESPONSE = 0x2AA3, - SMSG_COVENANT_PREVIEW_OPEN_NPC = 0x27ED, - SMSG_COVENANT_RENOWN_OPEN_NPC = 0x287D, - SMSG_COVENANT_RENOWN_SEND_CATCHUP_STATE = 0x287F, - SMSG_CREATE_CHAR = 0x26F4, - SMSG_CREATE_SHIPMENT_RESPONSE = 0x278A, - SMSG_CRITERIA_DELETED = 0x26DB, - SMSG_CRITERIA_UPDATE = 0x26D5, - SMSG_CROSSED_INEBRIATION_THRESHOLD = 0x26B7, + SMSG_COVENANT_PREVIEW_OPEN_NPC = 0x27EE, + SMSG_COVENANT_RENOWN_OPEN_NPC = 0x286A, + SMSG_COVENANT_RENOWN_SEND_CATCHUP_STATE = 0x286C, + SMSG_CREATE_CHAR = 0x26F5, + SMSG_CREATE_SHIPMENT_RESPONSE = 0x278B, + SMSG_CRITERIA_DELETED = 0x26DC, + SMSG_CRITERIA_UPDATE = 0x26D6, + SMSG_CROSSED_INEBRIATION_THRESHOLD = 0x26B8, SMSG_CUSTOM_LOAD_SCREEN = 0x25C7, SMSG_DAILY_QUESTS_RESET = 0x2A80, - SMSG_DAMAGE_CALC_LOG = 0x27B6, + SMSG_DAMAGE_CALC_LOG = 0x27B7, SMSG_DB_REPLY = 0x290E, - SMSG_DEATH_RELEASE_LOC = 0x26C8, - SMSG_DEBUG_MENU_MANAGER_FULL_UPDATE = 0x264C, + SMSG_DEATH_RELEASE_LOC = 0x26C9, + SMSG_DEBUG_MENU_MANAGER_FULL_UPDATE = 0x264D, SMSG_DEFENSE_MESSAGE = 0x2BB6, - SMSG_DELETE_CHAR = 0x26F5, + SMSG_DELETE_CHAR = 0x26F6, SMSG_DELETE_EXPIRED_MISSIONS_RESULT = 0x2980, - SMSG_DESTROY_ARENA_UNIT = 0x2734, - SMSG_DESTRUCTIBLE_BUILDING_DAMAGE = 0x26EC, + SMSG_DESTROY_ARENA_UNIT = 0x2735, + SMSG_DESTRUCTIBLE_BUILDING_DAMAGE = 0x26ED, SMSG_DIFFERENT_INSTANCE_FROM_PARTY = 0x258C, SMSG_DISENCHANT_CREDIT = 0x25A5, SMSG_DISMOUNT_RESULT = 0x257C, SMSG_DISPEL_FAILED = 0x2C30, SMSG_DISPLAY_GAME_ERROR = 0x259F, SMSG_DISPLAY_PLAYER_CHOICE = 0x2FFC, - SMSG_DISPLAY_PROMOTION = 0x2643, + SMSG_DISPLAY_PROMOTION = 0x2644, SMSG_DISPLAY_QUEST_POPUP = 0x2A9E, - SMSG_DISPLAY_SOULBIND_UPDATE_MESSAGE = 0x2883, - SMSG_DISPLAY_TOAST = 0x261B, - SMSG_DISPLAY_WORLD_TEXT = 0x27DE, + SMSG_DISPLAY_SOULBIND_UPDATE_MESSAGE = 0x2870, + SMSG_DISPLAY_TOAST = 0x261C, + SMSG_DISPLAY_WORLD_TEXT = 0x27DF, SMSG_DONT_AUTO_PUSH_SPELLS_TO_ACTION_BAR = 0x25DA, SMSG_DROP_NEW_CONNECTION = 0x304C, SMSG_DUEL_ARRANGED = 0x293C, @@ -1148,48 +1153,48 @@ enum OpcodeServer : uint16 SMSG_DUEL_OUT_OF_BOUNDS = 0x293D, SMSG_DUEL_REQUESTED = 0x293B, SMSG_DUEL_WINNER = 0x2941, - SMSG_DURABILITY_DAMAGE_DEATH = 0x2738, - SMSG_EMOTE = 0x27B7, - SMSG_ENABLE_BARBER_SHOP = 0x26B2, - SMSG_ENCHANTMENT_LOG = 0x2706, - SMSG_ENCOUNTER_END = 0x2770, - SMSG_ENCOUNTER_START = 0x276F, - SMSG_END_LIGHTNING_STORM = 0x269F, + SMSG_DURABILITY_DAMAGE_DEATH = 0x2739, + SMSG_EMOTE = 0x27B8, + SMSG_ENABLE_BARBER_SHOP = 0x26B3, + SMSG_ENCHANTMENT_LOG = 0x2707, + SMSG_ENCOUNTER_END = 0x2771, + SMSG_ENCOUNTER_START = 0x2770, + SMSG_END_LIGHTNING_STORM = 0x26A0, SMSG_ENTER_ENCRYPTED_MODE = 0x3049, SMSG_ENUM_CHARACTERS_RESULT = 0x2583, - SMSG_ENUM_VAS_PURCHASE_STATES_RESPONSE = 0x27E3, + SMSG_ENUM_VAS_PURCHASE_STATES_RESPONSE = 0x27E4, SMSG_ENVIRONMENTAL_DAMAGE_LOG = 0x2C21, - SMSG_EQUIPMENT_SET_ID = 0x26A8, + SMSG_EQUIPMENT_SET_ID = 0x26A9, SMSG_EXPECTED_SPAM_RECORDS = 0x2BB1, - SMSG_EXPLORATION_EXPERIENCE = 0x2751, - SMSG_EXTERNAL_TRANSACTION_ID_GENERATED = 0x287C, - SMSG_FACTION_BONUS_INFO = 0x2717, + SMSG_EXPLORATION_EXPERIENCE = 0x2752, + SMSG_EXTERNAL_TRANSACTION_ID_GENERATED = 0x2869, + SMSG_FACTION_BONUS_INFO = 0x2718, SMSG_FAILED_PLAYER_CONDITION = 0x2FFA, - SMSG_FAILED_QUEST_TURN_IN = 0x2800, + SMSG_FAILED_QUEST_TURN_IN = 0x2801, SMSG_FEATURE_SYSTEM_STATUS = 0x25BB, SMSG_FEATURE_SYSTEM_STATUS_GLUE_SCREEN = 0x25BC, - SMSG_FEIGN_DEATH_RESISTED = 0x2737, - SMSG_FISH_ESCAPED = 0x26C5, - SMSG_FISH_NOT_HOOKED = 0x26C4, + SMSG_FEIGN_DEATH_RESISTED = 0x2738, + SMSG_FISH_ESCAPED = 0x26C6, + SMSG_FISH_NOT_HOOKED = 0x26C5, SMSG_FLIGHT_SPLINE_SYNC = 0x2E2B, - SMSG_FORCED_DEATH_UPDATE = 0x26C9, - SMSG_FORCE_ANIM = 0x2743, - SMSG_FORCE_ANIMATIONS = 0x2744, - SMSG_FORCE_OBJECT_RELINK = 0x2642, - SMSG_FRIEND_STATUS = 0x2779, - SMSG_GAIN_MAW_POWER = 0x27D2, + SMSG_FORCED_DEATH_UPDATE = 0x26CA, + SMSG_FORCE_ANIM = 0x2744, + SMSG_FORCE_ANIMATIONS = 0x2745, + SMSG_FORCE_OBJECT_RELINK = 0x2643, + SMSG_FRIEND_STATUS = 0x277A, + SMSG_GAIN_MAW_POWER = 0x27D3, SMSG_GAME_OBJECT_ACTIVATE_ANIM_KIT = 0x25BF, - SMSG_GAME_OBJECT_BASE = 0x2818, + SMSG_GAME_OBJECT_BASE = 0x2819, SMSG_GAME_OBJECT_CUSTOM_ANIM = 0x25C0, SMSG_GAME_OBJECT_DESPAWN = 0x25C1, SMSG_GAME_OBJECT_PLAY_SPELL_VISUAL = 0x2C4B, SMSG_GAME_OBJECT_PLAY_SPELL_VISUAL_KIT = 0x2C4A, - SMSG_GAME_OBJECT_RESET_STATE = 0x2711, - SMSG_GAME_OBJECT_SET_STATE_LOCAL = 0x27F3, - SMSG_GAME_OBJECT_UI_LINK = 0x270D, - SMSG_GAME_SPEED_SET = 0x2678, - SMSG_GAME_TIME_SET = 0x26FF, - SMSG_GAME_TIME_UPDATE = 0x26FE, + SMSG_GAME_OBJECT_RESET_STATE = 0x2712, + SMSG_GAME_OBJECT_SET_STATE_LOCAL = 0x27F4, + SMSG_GAME_OBJECT_UI_LINK = 0x270E, + SMSG_GAME_SPEED_SET = 0x2679, + SMSG_GAME_TIME_SET = 0x2700, + SMSG_GAME_TIME_UPDATE = 0x26FF, SMSG_GARRISON_ACTIVATE_MISSION_BONUS_ABILITY = 0x2982, SMSG_GARRISON_ADD_EVENT = 0x29A5, SMSG_GARRISON_ADD_FOLLOWER_RESULT = 0x2974, @@ -1264,33 +1269,33 @@ enum OpcodeServer : uint16 SMSG_GARRISON_UPGRADE_RESULT = 0x296B, SMSG_GARRISON_USE_RECALL_PORTAL_RESULT = 0x297D, SMSG_GENERATE_RANDOM_CHARACTER_NAME_RESULT = 0x2585, - SMSG_GENERATE_SSO_TOKEN_RESPONSE = 0x280B, - SMSG_GET_ACCOUNT_CHARACTER_LIST_RESULT = 0x2753, + SMSG_GENERATE_SSO_TOKEN_RESPONSE = 0x280C, + SMSG_GET_ACCOUNT_CHARACTER_LIST_RESULT = 0x2754, SMSG_GET_GARRISON_INFO_RESULT = 0x295E, - SMSG_GET_LANDING_PAGE_SHIPMENTS_RESPONSE = 0x278D, - SMSG_GET_REMAINING_GAME_TIME_RESPONSE = 0x27CA, - SMSG_GET_SELECTED_TROPHY_ID_RESPONSE = 0x27B4, - SMSG_GET_SHIPMENTS_OF_TYPE_RESPONSE = 0x278C, - SMSG_GET_SHIPMENT_INFO_RESPONSE = 0x2788, - SMSG_GET_TROPHY_LIST_RESPONSE = 0x27B3, - SMSG_GET_VAS_ACCOUNT_CHARACTER_LIST_RESULT = 0x27DF, - SMSG_GET_VAS_TRANSFER_TARGET_REALM_LIST_RESULT = 0x27E0, + SMSG_GET_LANDING_PAGE_SHIPMENTS_RESPONSE = 0x278E, + SMSG_GET_REMAINING_GAME_TIME_RESPONSE = 0x27CB, + SMSG_GET_SELECTED_TROPHY_ID_RESPONSE = 0x27B5, + SMSG_GET_SHIPMENTS_OF_TYPE_RESPONSE = 0x278D, + SMSG_GET_SHIPMENT_INFO_RESPONSE = 0x2789, + SMSG_GET_TROPHY_LIST_RESPONSE = 0x27B4, + SMSG_GET_VAS_ACCOUNT_CHARACTER_LIST_RESULT = 0x27E0, + SMSG_GET_VAS_TRANSFER_TARGET_REALM_LIST_RESULT = 0x27E1, SMSG_GM_PLAYER_INFO = 0x3005, SMSG_GM_REQUEST_PLAYER_INFO = 0x2FFB, - SMSG_GM_TICKET_CASE_STATUS = 0x269A, - SMSG_GM_TICKET_SYSTEM_STATUS = 0x2699, - SMSG_GOD_MODE = 0x26EF, + SMSG_GM_TICKET_CASE_STATUS = 0x269B, + SMSG_GM_TICKET_SYSTEM_STATUS = 0x269A, + SMSG_GOD_MODE = 0x26F0, SMSG_GOSSIP_COMPLETE = 0x2A97, SMSG_GOSSIP_MESSAGE = 0x2A98, - SMSG_GOSSIP_POI = 0x2785, + SMSG_GOSSIP_POI = 0x2786, SMSG_GOSSIP_QUEST_UPDATE = 0x2A99, SMSG_GOSSIP_REFRESH_OPTIONS = 0x2AA6, SMSG_GROUP_ACTION_THROTTLED = 0x2590, - SMSG_GROUP_AUTO_KICK = 0x2783, - SMSG_GROUP_DECLINE = 0x2780, - SMSG_GROUP_DESTROYED = 0x2782, - SMSG_GROUP_NEW_LEADER = 0x2624, - SMSG_GROUP_UNINVITE = 0x2781, + SMSG_GROUP_AUTO_KICK = 0x2784, + SMSG_GROUP_DECLINE = 0x2781, + SMSG_GROUP_DESTROYED = 0x2783, + SMSG_GROUP_NEW_LEADER = 0x2625, + SMSG_GROUP_UNINVITE = 0x2782, SMSG_GUILD_ACHIEVEMENT_DELETED = 0x29C5, SMSG_GUILD_ACHIEVEMENT_EARNED = 0x29C4, SMSG_GUILD_ACHIEVEMENT_MEMBERS = 0x29C7, @@ -1344,60 +1349,60 @@ enum OpcodeServer : uint16 SMSG_GUILD_ROSTER = 0x29BB, SMSG_GUILD_ROSTER_UPDATE = 0x29BC, SMSG_GUILD_SEND_RANK_CHANGE = 0x29B9, - SMSG_HEALTH_UPDATE = 0x26C6, - SMSG_HIGHEST_THREAT_UPDATE = 0x26CE, + SMSG_HEALTH_UPDATE = 0x26C7, + SMSG_HIGHEST_THREAT_UPDATE = 0x26CF, SMSG_HOTFIX_CONNECT = 0x2911, SMSG_HOTFIX_MESSAGE = 0x2910, - SMSG_INITIALIZE_FACTIONS = 0x2716, + SMSG_INITIALIZE_FACTIONS = 0x2717, SMSG_INITIAL_SETUP = 0x2580, - SMSG_INIT_WORLD_STATES = 0x2739, - SMSG_INSPECT_RESULT = 0x2628, - SMSG_INSTANCE_ENCOUNTER_CHANGE_PRIORITY = 0x279F, - SMSG_INSTANCE_ENCOUNTER_DISENGAGE_UNIT = 0x279E, - SMSG_INSTANCE_ENCOUNTER_END = 0x27A7, - SMSG_INSTANCE_ENCOUNTER_ENGAGE_UNIT = 0x279D, - SMSG_INSTANCE_ENCOUNTER_GAIN_COMBAT_RESURRECTION_CHARGE = 0x27A9, - SMSG_INSTANCE_ENCOUNTER_IN_COMBAT_RESURRECTION = 0x27A8, - SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_COMPLETE = 0x27A2, - SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_START = 0x27A1, - SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_UPDATE = 0x27A6, - SMSG_INSTANCE_ENCOUNTER_PHASE_SHIFT_CHANGED = 0x27AA, - SMSG_INSTANCE_ENCOUNTER_START = 0x27A3, - SMSG_INSTANCE_ENCOUNTER_TIMER_START = 0x27A0, - SMSG_INSTANCE_ENCOUNTER_UPDATE_ALLOW_RELEASE_IN_PROGRESS = 0x27A5, - SMSG_INSTANCE_ENCOUNTER_UPDATE_SUPPRESS_RELEASE = 0x27A4, - SMSG_INSTANCE_GROUP_SIZE_CHANGED = 0x26ED, - SMSG_INSTANCE_INFO = 0x262B, - SMSG_INSTANCE_RESET = 0x267D, - SMSG_INSTANCE_RESET_FAILED = 0x267E, - SMSG_INSTANCE_SAVE_CREATED = 0x276E, + SMSG_INIT_WORLD_STATES = 0x273A, + SMSG_INSPECT_RESULT = 0x2629, + SMSG_INSTANCE_ENCOUNTER_CHANGE_PRIORITY = 0x27A0, + SMSG_INSTANCE_ENCOUNTER_DISENGAGE_UNIT = 0x279F, + SMSG_INSTANCE_ENCOUNTER_END = 0x27A8, + SMSG_INSTANCE_ENCOUNTER_ENGAGE_UNIT = 0x279E, + SMSG_INSTANCE_ENCOUNTER_GAIN_COMBAT_RESURRECTION_CHARGE = 0x27AA, + SMSG_INSTANCE_ENCOUNTER_IN_COMBAT_RESURRECTION = 0x27A9, + SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_COMPLETE = 0x27A3, + SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_START = 0x27A2, + SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_UPDATE = 0x27A7, + SMSG_INSTANCE_ENCOUNTER_PHASE_SHIFT_CHANGED = 0x27AB, + SMSG_INSTANCE_ENCOUNTER_START = 0x27A4, + SMSG_INSTANCE_ENCOUNTER_TIMER_START = 0x27A1, + SMSG_INSTANCE_ENCOUNTER_UPDATE_ALLOW_RELEASE_IN_PROGRESS = 0x27A6, + SMSG_INSTANCE_ENCOUNTER_UPDATE_SUPPRESS_RELEASE = 0x27A5, + SMSG_INSTANCE_GROUP_SIZE_CHANGED = 0x26EE, + SMSG_INSTANCE_INFO = 0x262C, + SMSG_INSTANCE_RESET = 0x267E, + SMSG_INSTANCE_RESET_FAILED = 0x267F, + SMSG_INSTANCE_SAVE_CREATED = 0x276F, SMSG_INTERRUPT_POWER_REGEN = 0x2C59, SMSG_INVALIDATE_PAGE_TEXT = 0x2918, SMSG_INVALIDATE_PLAYER = 0x2FFF, - SMSG_INVALID_PROMOTION_CODE = 0x2745, + SMSG_INVALID_PROMOTION_CODE = 0x2746, SMSG_INVENTORY_CHANGE_FAILURE = 0x2DA5, - SMSG_INVENTORY_FIXUP_COMPLETE = 0x2802, - SMSG_INVENTORY_FULL_OVERFLOW = 0x2813, - SMSG_ISLANDS_MISSION_NPC = 0x27E9, - SMSG_ISLAND_AZERITE_GAIN = 0x274E, - SMSG_ISLAND_COMPLETE = 0x274F, + SMSG_INVENTORY_FIXUP_COMPLETE = 0x2803, + SMSG_INVENTORY_FULL_OVERFLOW = 0x2814, + SMSG_ISLANDS_MISSION_NPC = 0x27EA, + SMSG_ISLAND_AZERITE_GAIN = 0x274F, + SMSG_ISLAND_COMPLETE = 0x2750, SMSG_IS_QUEST_COMPLETE_RESPONSE = 0x2A84, - SMSG_ITEM_CHANGED = 0x26DE, - SMSG_ITEM_COOLDOWN = 0x27B5, - SMSG_ITEM_ENCHANT_TIME_UPDATE = 0x2747, + SMSG_ITEM_CHANGED = 0x26DF, + SMSG_ITEM_COOLDOWN = 0x27B6, + SMSG_ITEM_ENCHANT_TIME_UPDATE = 0x2748, SMSG_ITEM_EXPIRE_PURCHASE_REFUND = 0x259E, - SMSG_ITEM_INTERACTION_COMPLETE = 0x2874, + SMSG_ITEM_INTERACTION_COMPLETE = 0x2861, SMSG_ITEM_PURCHASE_REFUND_RESULT = 0x259C, - SMSG_ITEM_PUSH_RESULT = 0x261A, - SMSG_ITEM_TIME_UPDATE = 0x2746, - SMSG_KICK_REASON = 0x2680, - SMSG_LATENCY_REPORT_PING = 0x2886, + SMSG_ITEM_PUSH_RESULT = 0x261B, + SMSG_ITEM_TIME_UPDATE = 0x2747, + SMSG_KICK_REASON = 0x2681, + SMSG_LATENCY_REPORT_PING = 0x2873, SMSG_LEARNED_SPELLS = 0x2C4D, SMSG_LEARN_PVP_TALENT_FAILED = 0x25CE, SMSG_LEARN_TALENT_FAILED = 0x25CD, - SMSG_LEGACY_LOOT_RULES = 0x2819, - SMSG_LEVEL_LINKING_RESULT = 0x285A, - SMSG_LEVEL_UP_INFO = 0x26DD, + SMSG_LEGACY_LOOT_RULES = 0x281A, + SMSG_LEVEL_LINKING_RESULT = 0x2847, + SMSG_LEVEL_UP_INFO = 0x26DE, SMSG_LFG_BOOT_PLAYER = 0x2A35, SMSG_LFG_DISABLED = 0x2A33, SMSG_LFG_EXPAND_SEARCH_PROMPT = 0x2A3B, @@ -1425,44 +1430,45 @@ enum OpcodeServer : uint16 SMSG_LFG_SLOT_INVALID = 0x2A30, SMSG_LFG_TELEPORT_DENIED = 0x2A32, SMSG_LFG_UPDATE_STATUS = 0x2A24, - SMSG_LIVE_REGION_ACCOUNT_RESTORE_RESULT = 0x2760, - SMSG_LIVE_REGION_CHARACTER_COPY_RESULT = 0x275F, - SMSG_LIVE_REGION_GET_ACCOUNT_CHARACTER_LIST_RESULT = 0x2754, - SMSG_LIVE_REGION_KEY_BINDINGS_COPY_RESULT = 0x2761, + SMSG_LIVE_REGION_ACCOUNT_RESTORE_RESULT = 0x2761, + SMSG_LIVE_REGION_CHARACTER_COPY_RESULT = 0x2760, + SMSG_LIVE_REGION_GET_ACCOUNT_CHARACTER_LIST_RESULT = 0x2755, + SMSG_LIVE_REGION_KEY_BINDINGS_COPY_RESULT = 0x2762, SMSG_LOAD_CUF_PROFILES = 0x25B8, - SMSG_LOAD_EQUIPMENT_SET = 0x2701, - SMSG_LOGIN_SET_TIME_SPEED = 0x2700, + SMSG_LOAD_EQUIPMENT_SET = 0x2702, + SMSG_LOGIN_SET_TIME_SPEED = 0x2701, SMSG_LOGIN_VERIFY_WORLD = 0x2599, - SMSG_LOGOUT_CANCEL_ACK = 0x267C, - SMSG_LOGOUT_COMPLETE = 0x267B, - SMSG_LOGOUT_RESPONSE = 0x267A, - SMSG_LOG_XP_GAIN = 0x26D9, - SMSG_LOOT_ALL_PASSED = 0x2618, - SMSG_LOOT_LIST = 0x2733, - SMSG_LOOT_MONEY_NOTIFY = 0x2613, - SMSG_LOOT_RELEASE = 0x2612, - SMSG_LOOT_RELEASE_ALL = 0x2611, - SMSG_LOOT_REMOVED = 0x260D, - SMSG_LOOT_RESPONSE = 0x260C, - SMSG_LOOT_ROLL = 0x2615, - SMSG_LOOT_ROLLS_COMPLETE = 0x2617, - SMSG_LOOT_ROLL_WON = 0x2619, - SMSG_LOSS_OF_CONTROL_AURA_UPDATE = 0x2667, - SMSG_MAIL_COMMAND_RESULT = 0x2632, - SMSG_MAIL_LIST_RESULT = 0x2748, - SMSG_MAIL_QUERY_NEXT_TIME_RESULT = 0x2749, + SMSG_LOGOUT_CANCEL_ACK = 0x267D, + SMSG_LOGOUT_COMPLETE = 0x267C, + SMSG_LOGOUT_RESPONSE = 0x267B, + SMSG_LOG_XP_GAIN = 0x26DA, + SMSG_LOOT_ALL_PASSED = 0x2619, + SMSG_LOOT_LIST = 0x2734, + SMSG_LOOT_MONEY_NOTIFY = 0x2614, + SMSG_LOOT_RELEASE = 0x2613, + SMSG_LOOT_RELEASE_ALL = 0x2612, + SMSG_LOOT_REMOVED = 0x260E, + SMSG_LOOT_RESPONSE = 0x260D, + SMSG_LOOT_ROLL = 0x2616, + SMSG_LOOT_ROLLS_COMPLETE = 0x2618, + SMSG_LOOT_ROLL_WON = 0x261A, + SMSG_LOSS_OF_CONTROL_AURA_UPDATE = 0x2668, + SMSG_MAIL_COMMAND_RESULT = 0x2633, + SMSG_MAIL_LIST_RESULT = 0x2749, + SMSG_MAIL_QUERY_NEXT_TIME_RESULT = 0x274A, SMSG_MAP_OBJECTIVES_INIT = 0x294B, SMSG_MAP_OBJ_EVENTS = 0x25C2, - SMSG_MASTER_LOOT_CANDIDATE_LIST = 0x2616, + SMSG_MASTER_LOOT_CANDIDATE_LIST = 0x2617, + SMSG_MEETING_STONE_FAILED = 0x287C, SMSG_MESSAGE_BOX = 0x2576, - SMSG_MINIMAP_PING = 0x26C3, + SMSG_MINIMAP_PING = 0x26C4, SMSG_MIRROR_IMAGE_COMPONENTED_DATA = 0x2C14, SMSG_MIRROR_IMAGE_CREATURE_DATA = 0x2C13, SMSG_MISSILE_CANCEL = 0x25C3, - SMSG_MODIFY_COOLDOWN = 0x2756, + SMSG_MODIFY_COOLDOWN = 0x2757, SMSG_MOTD = 0x2BAF, SMSG_MOUNT_RESULT = 0x257B, - SMSG_MOVEMENT_ENFORCEMENT_ALERT = 0x284A, + SMSG_MOVEMENT_ENFORCEMENT_ALERT = 0x2837, SMSG_MOVE_APPLY_INERTIA = 0x2E2E, SMSG_MOVE_APPLY_MOVEMENT_FORCE = 0x2E15, SMSG_MOVE_DISABLE_COLLISION = 0x2E11, @@ -1553,82 +1559,82 @@ enum OpcodeServer : uint16 SMSG_MOVE_UPDATE_TELEPORT = 0x2DE1, SMSG_MOVE_UPDATE_TURN_RATE = 0x2DDD, SMSG_MOVE_UPDATE_WALK_SPEED = 0x2DD8, - SMSG_MULTI_FLOOR_LEAVE_FLOOR = 0x27CF, - SMSG_MULTI_FLOOR_NEW_FLOOR = 0x27CE, - SMSG_MYTHIC_PLUS_ALL_MAP_STATS = 0x2604, - SMSG_MYTHIC_PLUS_CURRENT_AFFIXES = 0x2606, - SMSG_MYTHIC_PLUS_NEW_WEEK_RECORD = 0x2609, - SMSG_MYTHIC_PLUS_SEASON_DATA = 0x2605, + SMSG_MULTI_FLOOR_LEAVE_FLOOR = 0x27D0, + SMSG_MULTI_FLOOR_NEW_FLOOR = 0x27CF, + SMSG_MYTHIC_PLUS_ALL_MAP_STATS = 0x2605, + SMSG_MYTHIC_PLUS_CURRENT_AFFIXES = 0x2607, + SMSG_MYTHIC_PLUS_NEW_WEEK_RECORD = 0x260A, + SMSG_MYTHIC_PLUS_SEASON_DATA = 0x2606, SMSG_NEUTRAL_PLAYER_FACTION_SELECT_RESULT = 0x25D5, - SMSG_NEW_TAXI_PATH = 0x2675, + SMSG_NEW_TAXI_PATH = 0x2676, SMSG_NEW_WORLD = 0x2598, SMSG_NOTIFY_DEST_LOC_SPELL_CAST = 0x2C43, - SMSG_NOTIFY_MISSILE_TRAJECTORY_COLLISION = 0x26A1, + SMSG_NOTIFY_MISSILE_TRAJECTORY_COLLISION = 0x26A2, SMSG_NOTIFY_MONEY = 0x259B, - SMSG_NOTIFY_RECEIVED_MAIL = 0x2633, - SMSG_OFFER_PETITION_ERROR = 0x26AC, - SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA = 0x26DA, + SMSG_NOTIFY_RECEIVED_MAIL = 0x2634, + SMSG_OFFER_PETITION_ERROR = 0x26AD, + SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA = 0x26DB, SMSG_ON_MONSTER_MOVE = 0x2DD4, - SMSG_OPEN_ANIMA_DIVERSION_UI = 0x270E, - SMSG_OPEN_ARTIFACT_FORGE = 0x2791, + SMSG_OPEN_ANIMA_DIVERSION_UI = 0x270F, + SMSG_OPEN_ARTIFACT_FORGE = 0x2792, SMSG_OPEN_CONTAINER = 0x2DA6, - SMSG_OPEN_HEART_FORGE = 0x2816, - SMSG_OPEN_ITEM_FORGE = 0x278F, + SMSG_OPEN_HEART_FORGE = 0x2817, + SMSG_OPEN_ITEM_FORGE = 0x2790, SMSG_OPEN_LFG_DUNGEON_FINDER = 0x2A31, - SMSG_OPEN_SHIPMENT_NPC_FROM_GOSSIP = 0x2787, - SMSG_OPEN_SHIPMENT_NPC_RESULT = 0x2789, - SMSG_OVERRIDE_LIGHT = 0x26B1, - SMSG_PAGE_TEXT = 0x270C, - SMSG_PARTY_COMMAND_RESULT = 0x2784, + SMSG_OPEN_SHIPMENT_NPC_FROM_GOSSIP = 0x2788, + SMSG_OPEN_SHIPMENT_NPC_RESULT = 0x278A, + SMSG_OVERRIDE_LIGHT = 0x26B2, + SMSG_PAGE_TEXT = 0x270D, + SMSG_PARTY_COMMAND_RESULT = 0x2785, SMSG_PARTY_INVITE = 0x25B9, - SMSG_PARTY_KILL_LOG = 0x274C, - SMSG_PARTY_MEMBER_FULL_STATE = 0x274B, - SMSG_PARTY_MEMBER_PARTIAL_STATE = 0x274A, - SMSG_PARTY_NOTIFY_LFG_LEADER_CHANGE = 0x287A, + SMSG_PARTY_KILL_LOG = 0x274D, + SMSG_PARTY_MEMBER_FULL_STATE = 0x274C, + SMSG_PARTY_MEMBER_PARTIAL_STATE = 0x274B, + SMSG_PARTY_NOTIFY_LFG_LEADER_CHANGE = 0x2867, SMSG_PARTY_UPDATE = 0x25EE, SMSG_PAST_TIME_EVENTS = 0x25BE, - SMSG_PAUSE_MIRROR_TIMER = 0x2703, - SMSG_PENDING_RAID_LOCK = 0x26EB, + SMSG_PAUSE_MIRROR_TIMER = 0x2704, + SMSG_PENDING_RAID_LOCK = 0x26EC, SMSG_PETITION_ALREADY_SIGNED = 0x25A1, SMSG_PETITION_RENAME_GUILD_RESPONSE = 0x29FA, - SMSG_PETITION_SHOW_LIST = 0x26B4, - SMSG_PETITION_SHOW_SIGNATURES = 0x26B5, - SMSG_PETITION_SIGN_RESULTS = 0x273E, - SMSG_PET_ACTION_FEEDBACK = 0x273B, - SMSG_PET_ACTION_SOUND = 0x2697, + SMSG_PETITION_SHOW_LIST = 0x26B5, + SMSG_PETITION_SHOW_SIGNATURES = 0x26B6, + SMSG_PETITION_SIGN_RESULTS = 0x273F, + SMSG_PET_ACTION_FEEDBACK = 0x273C, + SMSG_PET_ACTION_SOUND = 0x2698, SMSG_PET_ADDED = 0x2595, - SMSG_PET_BATTLE_CHAT_RESTRICTED = 0x25FB, - SMSG_PET_BATTLE_DEBUG_QUEUE_DUMP_RESPONSE = 0x266C, - SMSG_PET_BATTLE_FINALIZE_LOCATION = 0x25F4, - SMSG_PET_BATTLE_FINAL_ROUND = 0x25F9, - SMSG_PET_BATTLE_FINISHED = 0x25FA, - SMSG_PET_BATTLE_FIRST_ROUND = 0x25F6, - SMSG_PET_BATTLE_INITIAL_UPDATE = 0x25F5, - SMSG_PET_BATTLE_MAX_GAME_LENGTH_WARNING = 0x25FC, - SMSG_PET_BATTLE_PVP_CHALLENGE = 0x25F3, - SMSG_PET_BATTLE_QUEUE_PROPOSE_MATCH = 0x2630, - SMSG_PET_BATTLE_QUEUE_STATUS = 0x2631, - SMSG_PET_BATTLE_REPLACEMENTS_MADE = 0x25F8, - SMSG_PET_BATTLE_REQUEST_FAILED = 0x25F2, - SMSG_PET_BATTLE_ROUND_RESULT = 0x25F7, + SMSG_PET_BATTLE_CHAT_RESTRICTED = 0x25FC, + SMSG_PET_BATTLE_DEBUG_QUEUE_DUMP_RESPONSE = 0x266D, + SMSG_PET_BATTLE_FINALIZE_LOCATION = 0x25F5, + SMSG_PET_BATTLE_FINAL_ROUND = 0x25FA, + SMSG_PET_BATTLE_FINISHED = 0x25FB, + SMSG_PET_BATTLE_FIRST_ROUND = 0x25F7, + SMSG_PET_BATTLE_INITIAL_UPDATE = 0x25F6, + SMSG_PET_BATTLE_MAX_GAME_LENGTH_WARNING = 0x25FD, + SMSG_PET_BATTLE_PVP_CHALLENGE = 0x25F4, + SMSG_PET_BATTLE_QUEUE_PROPOSE_MATCH = 0x2631, + SMSG_PET_BATTLE_QUEUE_STATUS = 0x2632, + SMSG_PET_BATTLE_REPLACEMENTS_MADE = 0x25F9, + SMSG_PET_BATTLE_REQUEST_FAILED = 0x25F3, + SMSG_PET_BATTLE_ROUND_RESULT = 0x25F8, SMSG_PET_BATTLE_SLOT_UPDATES = 0x25E5, SMSG_PET_CAST_FAILED = 0x2C58, SMSG_PET_CLEAR_SPELLS = 0x2C24, - SMSG_PET_DISMISS_SOUND = 0x2698, - SMSG_PET_GOD_MODE = 0x2672, - SMSG_PET_GUIDS = 0x26F7, + SMSG_PET_DISMISS_SOUND = 0x2699, + SMSG_PET_GOD_MODE = 0x2673, + SMSG_PET_GUIDS = 0x26F8, SMSG_PET_LEARNED_SPELLS = 0x2C4F, SMSG_PET_MODE = 0x258B, - SMSG_PET_NAME_INVALID = 0x26B9, + SMSG_PET_NAME_INVALID = 0x26BA, SMSG_PET_NEWLY_TAMED = 0x2589, SMSG_PET_SLOT_UPDATED = 0x258A, SMSG_PET_SPELLS_MESSAGE = 0x2C25, SMSG_PET_STABLE_LIST = 0x2596, SMSG_PET_STABLE_RESULT = 0x2597, - SMSG_PET_TAME_FAILURE = 0x26A9, + SMSG_PET_TAME_FAILURE = 0x26AA, SMSG_PET_UNLEARNED_SPELLS = 0x2C50, SMSG_PHASE_SHIFT_CHANGE = 0x2578, - SMSG_PLAYED_TIME = 0x26CA, + SMSG_PLAYED_TIME = 0x26CB, SMSG_PLAYER_AZERITE_ITEM_EQUIPPED_STATUS_CHANGED = 0x3014, SMSG_PLAYER_AZERITE_ITEM_GAINS = 0x3013, SMSG_PLAYER_BONUS_ROLL_FAILED = 0x3016, @@ -1644,23 +1650,23 @@ enum OpcodeServer : uint16 SMSG_PLAYER_TABARD_VENDOR_ACTIVATE = 0x3007, SMSG_PLAYER_TUTORIAL_HIGHLIGHT_SPELL = 0x300D, SMSG_PLAYER_TUTORIAL_UNHIGHLIGHT_SPELL = 0x300C, - SMSG_PLAY_MUSIC = 0x275B, - SMSG_PLAY_OBJECT_SOUND = 0x275C, - SMSG_PLAY_ONE_SHOT_ANIM_KIT = 0x2723, + SMSG_PLAY_MUSIC = 0x275C, + SMSG_PLAY_OBJECT_SOUND = 0x275D, + SMSG_PLAY_ONE_SHOT_ANIM_KIT = 0x2724, SMSG_PLAY_ORPHAN_SPELL_VISUAL = 0x2C47, - SMSG_PLAY_SCENE = 0x262D, - SMSG_PLAY_SOUND = 0x275A, - SMSG_PLAY_SPEAKERBOT_SOUND = 0x275D, + SMSG_PLAY_SCENE = 0x262E, + SMSG_PLAY_SOUND = 0x275B, + SMSG_PLAY_SPEAKERBOT_SOUND = 0x275E, SMSG_PLAY_SPELL_VISUAL = 0x2C45, SMSG_PLAY_SPELL_VISUAL_KIT = 0x2C49, - SMSG_PLAY_TIME_WARNING = 0x26F1, + SMSG_PLAY_TIME_WARNING = 0x26F2, SMSG_PONG = 0x304E, - SMSG_POWER_UPDATE = 0x26C7, + SMSG_POWER_UPDATE = 0x26C8, SMSG_PRELOAD_CHILD_MAP = 0x2579, - SMSG_PREPOPULATE_NAME_CACHE = 0x284D, - SMSG_PRE_RESSURECT = 0x2759, + SMSG_PREPOPULATE_NAME_CACHE = 0x283A, + SMSG_PRE_RESSURECT = 0x275A, SMSG_PRINT_NOTIFICATION = 0x25C6, - SMSG_PROC_RESIST = 0x274D, + SMSG_PROC_RESIST = 0x274E, SMSG_PUSH_SPELL_TO_ACTION_BAR = 0x2C51, SMSG_PVP_CREDIT = 0x2945, SMSG_PVP_MATCH_COMPLETE = 0x294F, @@ -1668,7 +1674,7 @@ enum OpcodeServer : uint16 SMSG_PVP_MATCH_START = 0x294E, SMSG_PVP_MATCH_STATISTICS = 0x2932, SMSG_PVP_OPTIONS_ENABLED = 0x2934, - SMSG_PVP_TIER_RECORD = 0x2887, + SMSG_PVP_TIER_RECORD = 0x2874, SMSG_QUERY_BATTLE_PET_NAME_RESPONSE = 0x291A, SMSG_QUERY_CREATURE_RESPONSE = 0x2914, SMSG_QUERY_GAME_OBJECT_RESPONSE = 0x2915, @@ -1684,7 +1690,7 @@ enum OpcodeServer : uint16 SMSG_QUERY_PLAYER_NAME_BY_COMMUNITY_ID_RESPONSE = 0x3002, SMSG_QUERY_QUEST_INFO_RESPONSE = 0x2A96, SMSG_QUERY_REALM_GUILD_MASTER_INFO_RESPONSE = 0x29E6, - SMSG_QUERY_TIME_RESPONSE = 0x26D8, + SMSG_QUERY_TIME_RESPONSE = 0x26D9, SMSG_QUEST_COMPLETION_NPC_RESPONSE = 0x2A81, SMSG_QUEST_CONFIRM_ACCEPT = 0x2A8F, SMSG_QUEST_FORCE_REMOVED = 0x2A9C, @@ -1702,50 +1708,50 @@ enum OpcodeServer : uint16 SMSG_QUEST_POI_QUERY_RESPONSE = 0x2A9D, SMSG_QUEST_POI_UPDATE_RESPONSE = 0x2A9F, SMSG_QUEST_PUSH_RESULT = 0x2A90, - SMSG_QUEST_SESSION_INFO_RESPONSE = 0x2870, - SMSG_QUEST_SESSION_READY_CHECK = 0x285E, - SMSG_QUEST_SESSION_READY_CHECK_RESPONSE = 0x285F, - SMSG_QUEST_SESSION_RESULT = 0x285D, + SMSG_QUEST_SESSION_INFO_RESPONSE = 0x285D, + SMSG_QUEST_SESSION_READY_CHECK = 0x284B, + SMSG_QUEST_SESSION_READY_CHECK_RESPONSE = 0x284C, + SMSG_QUEST_SESSION_RESULT = 0x284A, SMSG_QUEST_UPDATE_ADD_CREDIT = 0x2A8C, SMSG_QUEST_UPDATE_ADD_CREDIT_SIMPLE = 0x2A8D, SMSG_QUEST_UPDATE_ADD_PVP_CREDIT = 0x2A8E, SMSG_QUEST_UPDATE_COMPLETE = 0x2A89, SMSG_QUEST_UPDATE_FAILED = 0x2A8A, SMSG_QUEST_UPDATE_FAILED_TIMER = 0x2A8B, - SMSG_QUEUE_SUMMARY_UPDATE = 0x2801, - SMSG_RAF_ACCOUNT_INFO = 0x285B, - SMSG_RAF_ACTIVITY_STATE_CHANGED = 0x286C, - SMSG_RAID_DIFFICULTY_SET = 0x279A, - SMSG_RAID_GROUP_ONLY = 0x279C, + SMSG_QUEUE_SUMMARY_UPDATE = 0x2802, + SMSG_RAF_ACCOUNT_INFO = 0x2848, + SMSG_RAF_ACTIVITY_STATE_CHANGED = 0x2859, + SMSG_RAID_DIFFICULTY_SET = 0x279B, + SMSG_RAID_GROUP_ONLY = 0x279D, SMSG_RAID_INSTANCE_MESSAGE = 0x2BB4, SMSG_RAID_MARKERS_CHANGED = 0x25A2, - SMSG_RANDOM_ROLL = 0x2627, + SMSG_RANDOM_ROLL = 0x2628, SMSG_RATED_PVP_INFO = 0x2931, - SMSG_READY_CHECK_COMPLETED = 0x25F1, - SMSG_READY_CHECK_RESPONSE = 0x25F0, - SMSG_READY_CHECK_STARTED = 0x25EF, - SMSG_READ_ITEM_RESULT_FAILED = 0x2796, - SMSG_READ_ITEM_RESULT_OK = 0x278E, - SMSG_REALM_LOOKUP_INFO = 0x27BA, + SMSG_READY_CHECK_COMPLETED = 0x25F2, + SMSG_READY_CHECK_RESPONSE = 0x25F1, + SMSG_READY_CHECK_STARTED = 0x25F0, + SMSG_READ_ITEM_RESULT_FAILED = 0x2797, + SMSG_READ_ITEM_RESULT_OK = 0x278F, + SMSG_REALM_LOOKUP_INFO = 0x27BB, SMSG_REALM_QUERY_RESPONSE = 0x2913, - SMSG_REATTACH_RESURRECT = 0x273D, - SMSG_RECRUIT_A_FRIEND_FAILURE = 0x26B6, - SMSG_REFRESH_COMPONENT = 0x2648, + SMSG_REATTACH_RESURRECT = 0x273E, + SMSG_RECRUIT_A_FRIEND_FAILURE = 0x26B7, + SMSG_REFRESH_COMPONENT = 0x2649, SMSG_REFRESH_SPELL_HISTORY = 0x2C2C, SMSG_REMOVE_ITEM_PASSIVE = 0x25A9, SMSG_REMOVE_SPELL_FROM_ACTION_BAR = 0x2C52, - SMSG_REPLACE_TROPHY_RESPONSE = 0x27B2, + SMSG_REPLACE_TROPHY_RESPONSE = 0x27B3, SMSG_REPORT_PVP_PLAYER_AFK_RESULT = 0x3001, SMSG_REQUEST_CEMETERY_LIST_RESPONSE = 0x2591, SMSG_REQUEST_PVP_REWARDS_RESPONSE = 0x2935, SMSG_REQUEST_SCHEDULED_PVP_INFO_RESPONSE = 0x2936, SMSG_RESEARCH_COMPLETE = 0x2587, SMSG_RESET_COMPRESSION_CONTEXT = 0x304F, - SMSG_RESET_FAILED_NOTIFY = 0x26AD, + SMSG_RESET_FAILED_NOTIFY = 0x26AE, SMSG_RESET_QUEST_POI = 0x2AA0, SMSG_RESET_RANGED_COMBAT_TIMER = 0x2944, SMSG_RESET_WEEKLY_CURRENCY = 0x2575, - SMSG_RESPEC_WIPE_CONFIRM = 0x260A, + SMSG_RESPEC_WIPE_CONFIRM = 0x260B, SMSG_RESPOND_INSPECT_ACHIEVEMENTS = 0x2572, SMSG_RESTART_GLOBAL_COOLDOWN = 0x2C60, SMSG_RESTRICTED_ACCOUNT_WARNING = 0x25B5, @@ -1755,20 +1761,20 @@ enum OpcodeServer : uint16 SMSG_RESUME_TOKEN = 0x25A7, SMSG_RESURRECT_REQUEST = 0x257E, SMSG_RESYNC_RUNES = 0x2C5F, - SMSG_RETURN_APPLICANT_LIST = 0x2851, - SMSG_RETURN_RECRUITING_CLUBS = 0x2850, + SMSG_RETURN_APPLICANT_LIST = 0x283E, + SMSG_RETURN_RECRUITING_CLUBS = 0x283D, SMSG_ROLE_CHANGED_INFORM = 0x258D, SMSG_ROLE_CHOSEN = 0x2A39, SMSG_ROLE_POLL_INFORM = 0x258E, - SMSG_RUNEFORGE_LEGENDARY_CRAFTING_OPEN_NPC = 0x27EE, + SMSG_RUNEFORGE_LEGENDARY_CRAFTING_OPEN_NPC = 0x27EF, SMSG_RUNE_REGEN_DEBUG = 0x25B2, - SMSG_SCENARIO_COMPLETED = 0x27DC, - SMSG_SCENARIO_POIS = 0x262A, - SMSG_SCENARIO_PROGRESS_UPDATE = 0x2623, - SMSG_SCENARIO_SHOW_CRITERIA = 0x27F1, - SMSG_SCENARIO_STATE = 0x2622, - SMSG_SCENARIO_UI_UPDATE = 0x27F0, - SMSG_SCENARIO_VACATE = 0x2797, + SMSG_SCENARIO_COMPLETED = 0x27DD, + SMSG_SCENARIO_POIS = 0x262B, + SMSG_SCENARIO_PROGRESS_UPDATE = 0x2624, + SMSG_SCENARIO_SHOW_CRITERIA = 0x27F2, + SMSG_SCENARIO_STATE = 0x2623, + SMSG_SCENARIO_UI_UPDATE = 0x27F1, + SMSG_SCENARIO_VACATE = 0x2798, SMSG_SCENE_OBJECT_EVENT = 0x25DB, SMSG_SCENE_OBJECT_PET_BATTLE_FINAL_ROUND = 0x25E0, SMSG_SCENE_OBJECT_PET_BATTLE_FINISHED = 0x25E1, @@ -1778,60 +1784,61 @@ enum OpcodeServer : uint16 SMSG_SCENE_OBJECT_PET_BATTLE_ROUND_RESULT = 0x25DE, SMSG_SCRIPT_CAST = 0x2C56, SMSG_SEASON_INFO = 0x25BD, - SMSG_SELL_RESPONSE = 0x26BA, + SMSG_SELL_RESPONSE = 0x26BB, SMSG_SEND_ITEM_PASSIVES = 0x25AA, SMSG_SEND_KNOWN_SPELLS = 0x2C2A, - SMSG_SEND_RAID_TARGET_UPDATE_ALL = 0x2625, - SMSG_SEND_RAID_TARGET_UPDATE_SINGLE = 0x2626, + SMSG_SEND_RAID_TARGET_UPDATE_ALL = 0x2626, + SMSG_SEND_RAID_TARGET_UPDATE_SINGLE = 0x2627, SMSG_SEND_SPELL_CHARGES = 0x2C2D, SMSG_SEND_SPELL_HISTORY = 0x2C2B, SMSG_SEND_UNLEARN_SPELLS = 0x2C2E, - SMSG_SERVER_FIRST_ACHIEVEMENTS = 0x2645, - SMSG_SERVER_TIME = 0x2679, - SMSG_SERVER_TIME_OFFSET = 0x2707, + SMSG_SERVER_FIRST_ACHIEVEMENTS = 0x2646, + SMSG_SERVER_TIME = 0x267A, + SMSG_SERVER_TIME_OFFSET = 0x2708, SMSG_SETUP_CURRENCY = 0x2573, SMSG_SETUP_RESEARCH_HISTORY = 0x2586, - SMSG_SET_AI_ANIM_KIT = 0x2722, - SMSG_SET_ALL_TASK_PROGRESS = 0x277E, - SMSG_SET_ANIM_TIER = 0x2726, + SMSG_SET_AI_ANIM_KIT = 0x2723, + SMSG_SET_ALL_TASK_PROGRESS = 0x277F, + SMSG_SET_ANIM_TIER = 0x2727, SMSG_SET_CHR_UPGRADE_TIER = 0x25D8, SMSG_SET_CURRENCY = 0x2574, SMSG_SET_DF_FAST_LAUNCH_RESULT = 0x2A2E, - SMSG_SET_DUNGEON_DIFFICULTY = 0x269B, - SMSG_SET_FACTION_AT_WAR = 0x26F3, - SMSG_SET_FACTION_NOT_VISIBLE = 0x271D, - SMSG_SET_FACTION_STANDING = 0x271E, - SMSG_SET_FACTION_VISIBLE = 0x271C, + SMSG_SET_DUNGEON_DIFFICULTY = 0x269C, + SMSG_SET_FACTION_AT_WAR = 0x26F4, + SMSG_SET_FACTION_NOT_VISIBLE = 0x271E, + SMSG_SET_FACTION_STANDING = 0x271F, + SMSG_SET_FACTION_VISIBLE = 0x271D, SMSG_SET_FLAT_SPELL_MODIFIER = 0x2C36, - SMSG_SET_FORCED_REACTIONS = 0x2710, + SMSG_SET_FORCED_REACTIONS = 0x2711, SMSG_SET_ITEM_PURCHASE_DATA = 0x259D, - SMSG_SET_LOOT_METHOD_FAILED = 0x27C0, + SMSG_SET_LOOT_METHOD_FAILED = 0x27C1, SMSG_SET_MAX_WEEKLY_QUANTITY = 0x25A0, - SMSG_SET_MELEE_ANIM_KIT = 0x2725, - SMSG_SET_MOVEMENT_ANIM_KIT = 0x2724, + SMSG_SET_MELEE_ANIM_KIT = 0x2726, + SMSG_SET_MOVEMENT_ANIM_KIT = 0x2725, SMSG_SET_PCT_SPELL_MODIFIER = 0x2C37, - SMSG_SET_PET_SPECIALIZATION = 0x261C, + SMSG_SET_PET_SPECIALIZATION = 0x261D, SMSG_SET_PLAYER_DECLINED_NAMES_RESULT = 0x3003, SMSG_SET_PLAY_HOVER_ANIM = 0x25B6, - SMSG_SET_PROFICIENCY = 0x2727, - SMSG_SET_QUEST_REPLAY_COOLDOWN_OVERRIDE = 0x2864, + SMSG_SET_PROFICIENCY = 0x2728, + SMSG_SET_QUEST_REPLAY_COOLDOWN_OVERRIDE = 0x2851, SMSG_SET_SHIPMENT_READY_RESPONSE = 0x2997, SMSG_SET_SPELL_CHARGES = 0x2C29, - SMSG_SET_TASK_COMPLETE = 0x277F, - SMSG_SET_TIME_ZONE_INFORMATION = 0x266E, - SMSG_SET_VEHICLE_REC_ID = 0x26EA, - SMSG_SHADOWLANDS_CAPACITANCE_UPDATE = 0x288B, + SMSG_SET_TASK_COMPLETE = 0x2780, + SMSG_SET_TIME_ZONE_INFORMATION = 0x266F, + SMSG_SET_VEHICLE_REC_ID = 0x26EB, + SMSG_SHADOWLANDS_CAPACITANCE_UPDATE = 0x2878, SMSG_SHIPMENT_FACTION_UPDATE_RESULT = 0x2998, - SMSG_SHOW_BANK = 0x2676, - SMSG_SHOW_MAILBOX = 0x2798, + SMSG_SHOW_BANK = 0x2677, + SMSG_SHOW_MAILBOX = 0x2799, SMSG_SHOW_NEUTRAL_PLAYER_FACTION_SELECT_UI = 0x25D4, SMSG_SHOW_QUEST_COMPLETION_TEXT = 0x2A95, - SMSG_SHOW_TAXI_NODES = 0x26C2, - SMSG_SHOW_TRADE_SKILL_RESPONSE = 0x2762, - SMSG_SOCKET_GEMS_FAILURE = 0x271A, - SMSG_SOCKET_GEMS_SUCCESS = 0x2719, - SMSG_SPECIAL_MOUNT_ANIM = 0x2696, - SMSG_SPEC_INVOLUNTARILY_CHANGED = 0x270B, + SMSG_SHOW_TAXI_NODES = 0x26C3, + SMSG_SHOW_TRADE_SKILL_RESPONSE = 0x2763, + SMSG_SOCIAL_CONTRACT_REQUEST_RESPONSE = 0x287D, + SMSG_SOCKET_GEMS_FAILURE = 0x271B, + SMSG_SOCKET_GEMS_SUCCESS = 0x271A, + SMSG_SPECIAL_MOUNT_ANIM = 0x2697, + SMSG_SPEC_INVOLUNTARILY_CHANGED = 0x270C, SMSG_SPELL_ABSORB_LOG = 0x2C1F, SMSG_SPELL_CATEGORY_COOLDOWN = 0x2C17, SMSG_SPELL_CHANNEL_START = 0x2C34, @@ -1857,93 +1864,94 @@ enum OpcodeServer : uint16 SMSG_SPELL_PREPARE = 0x2C38, SMSG_SPELL_START = 0x2C3A, SMSG_SPELL_VISUAL_LOAD_SCREEN = 0x25C8, - SMSG_SPIRIT_HEALER_CONFIRM = 0x2708, - SMSG_SPLASH_SCREEN_SHOW_LATEST = 0x2876, - SMSG_STAND_STATE_UPDATE = 0x270F, - SMSG_START_ELAPSED_TIMER = 0x25FD, - SMSG_START_ELAPSED_TIMERS = 0x25FF, - SMSG_START_LIGHTNING_STORM = 0x269E, - SMSG_START_LOOT_ROLL = 0x2614, - SMSG_START_MIRROR_TIMER = 0x2702, + SMSG_SPIRIT_HEALER_CONFIRM = 0x2709, + SMSG_SPLASH_SCREEN_SHOW_LATEST = 0x2863, + SMSG_STAND_STATE_UPDATE = 0x2710, + SMSG_START_ELAPSED_TIMER = 0x25FE, + SMSG_START_ELAPSED_TIMERS = 0x2600, + SMSG_START_LIGHTNING_STORM = 0x269F, + SMSG_START_LOOT_ROLL = 0x2615, + SMSG_START_MIRROR_TIMER = 0x2703, SMSG_START_TIMER = 0x25A4, - SMSG_STOP_ELAPSED_TIMER = 0x25FE, - SMSG_STOP_MIRROR_TIMER = 0x2704, - SMSG_STOP_SPEAKERBOT_SOUND = 0x275E, + SMSG_STOP_ELAPSED_TIMER = 0x25FF, + SMSG_STOP_MIRROR_TIMER = 0x2705, + SMSG_STOP_SPEAKERBOT_SOUND = 0x275F, SMSG_STREAMING_MOVIES = 0x25A3, - SMSG_SUMMON_CANCEL = 0x26A7, + SMSG_SUMMON_CANCEL = 0x26A8, SMSG_SUMMON_RAID_MEMBER_VALIDATE_FAILED = 0x258F, - SMSG_SUMMON_REQUEST = 0x2714, + SMSG_SUMMON_REQUEST = 0x2715, SMSG_SUPERCEDED_SPELLS = 0x2C4C, SMSG_SUSPEND_COMMS = 0x304A, SMSG_SUSPEND_TOKEN = 0x25A6, - SMSG_SYNC_WOW_ENTITLEMENTS = 0x286E, - SMSG_TALENTS_INVOLUNTARILY_RESET = 0x270A, - SMSG_TAXI_NODE_STATUS = 0x2673, - SMSG_TEXT_EMOTE = 0x2671, - SMSG_THREAT_CLEAR = 0x26D1, - SMSG_THREAT_REMOVE = 0x26D0, - SMSG_THREAT_UPDATE = 0x26CF, + SMSG_SYNC_WOW_ENTITLEMENTS = 0x285B, + SMSG_TALENTS_INVOLUNTARILY_RESET = 0x270B, + SMSG_TAXI_NODE_STATUS = 0x2674, + SMSG_TEXT_EMOTE = 0x2672, + SMSG_THREAT_CLEAR = 0x26D2, + SMSG_THREAT_REMOVE = 0x26D1, + SMSG_THREAT_UPDATE = 0x26D0, SMSG_TIME_ADJUSTMENT = 0x2DD3, SMSG_TIME_SYNC_REQUEST = 0x2DD2, - SMSG_TITLE_EARNED = 0x26CC, - SMSG_TITLE_LOST = 0x26CD, - SMSG_TOTEM_CREATED = 0x26BD, - SMSG_TOTEM_DURATION_CHANGED = 0x26BE, - SMSG_TOTEM_MOVED = 0x26BF, + SMSG_TITLE_EARNED = 0x26CD, + SMSG_TITLE_LOST = 0x26CE, + SMSG_TOTEM_CREATED = 0x26BE, + SMSG_TOTEM_DURATION_CHANGED = 0x26BF, + SMSG_TOTEM_MOVED = 0x26C0, SMSG_TRADE_STATUS = 0x2582, SMSG_TRADE_UPDATED = 0x2581, - SMSG_TRAINER_BUY_FAILED = 0x26D4, - SMSG_TRAINER_LIST = 0x26D3, - SMSG_TRANSFER_ABORTED = 0x26F6, + SMSG_TRAINER_BUY_FAILED = 0x26D5, + SMSG_TRAINER_LIST = 0x26D4, + SMSG_TRANSFER_ABORTED = 0x26F7, SMSG_TRANSFER_PENDING = 0x25C9, - SMSG_TRANSMOGRIFY_NPC = 0x27E6, + SMSG_TRANSMOGRIFY_NPC = 0x27E7, SMSG_TREASURE_PICKER_RESPONSE = 0x291F, - SMSG_TRIGGER_CINEMATIC = 0x27B8, - SMSG_TRIGGER_MOVIE = 0x26C0, - SMSG_TURN_IN_PETITION_RESULT = 0x2740, - SMSG_TUTORIAL_FLAGS = 0x27AB, + SMSG_TRIGGER_CINEMATIC = 0x27B9, + SMSG_TRIGGER_MOVIE = 0x26C1, + SMSG_TURN_IN_PETITION_RESULT = 0x2741, + SMSG_TUTORIAL_FLAGS = 0x27AC, SMSG_TWITTER_STATUS = 0x3043, - SMSG_UI_HEALING_RANGE_MODIFIED = 0x2736, - SMSG_UI_ITEM_INTERACTION_NPC = 0x27E8, + SMSG_UI_HEALING_RANGE_MODIFIED = 0x2737, + SMSG_UI_ITEM_INTERACTION_NPC = 0x27E9, SMSG_UI_MAP_QUEST_LINES_RESPONSE = 0x2AA2, - SMSG_UNDELETE_CHARACTER_RESPONSE = 0x27BB, - SMSG_UNDELETE_COOLDOWN_STATUS_RESPONSE = 0x27BC, + SMSG_UNDELETE_CHARACTER_RESPONSE = 0x27BC, + SMSG_UNDELETE_COOLDOWN_STATUS_RESPONSE = 0x27BD, SMSG_UNLEARNED_SPELLS = 0x2C4E, SMSG_UNLOAD_CHILD_MAP = 0x257A, - SMSG_UPDATE_AADC_STATUS_RESPONSE = 0x2888, - SMSG_UPDATE_ACCOUNT_DATA = 0x26FC, + SMSG_UPDATE_AADC_STATUS_RESPONSE = 0x2875, + SMSG_UPDATE_ACCOUNT_DATA = 0x26FD, SMSG_UPDATE_ACTION_BUTTONS = 0x25D9, - SMSG_UPDATE_BNET_SESSION_KEY = 0x2812, + SMSG_UPDATE_BNET_SESSION_KEY = 0x2813, SMSG_UPDATE_CAPTURE_POINT = 0x2929, - SMSG_UPDATE_CELESTIAL_BODY = 0x280E, - SMSG_UPDATE_CHARACTER_FLAGS = 0x27B1, - SMSG_UPDATE_CHARGE_CATEGORY_COOLDOWN = 0x2758, - SMSG_UPDATE_COOLDOWN = 0x2757, + SMSG_UPDATE_CELESTIAL_BODY = 0x280F, + SMSG_UPDATE_CHARACTER_FLAGS = 0x27B2, + SMSG_UPDATE_CHARGE_CATEGORY_COOLDOWN = 0x2759, + SMSG_UPDATE_COOLDOWN = 0x2758, SMSG_UPDATE_DAILY_MISSION_COUNTER = 0x297F, - SMSG_UPDATE_EXPANSION_LEVEL = 0x263D, - SMSG_UPDATE_GAME_TIME_STATE = 0x2815, - SMSG_UPDATE_INSTANCE_OWNERSHIP = 0x26A0, - SMSG_UPDATE_LAST_INSTANCE = 0x267F, - SMSG_UPDATE_OBJECT = 0x27B9, + SMSG_UPDATE_EXPANSION_LEVEL = 0x263E, + SMSG_UPDATE_GAME_TIME_STATE = 0x2816, + SMSG_UPDATE_INSTANCE_OWNERSHIP = 0x26A1, + SMSG_UPDATE_LAST_INSTANCE = 0x2680, + SMSG_UPDATE_OBJECT = 0x27BA, SMSG_UPDATE_PRIMARY_SPEC = 0x25D1, + SMSG_UPDATE_RECENT_PLAYER_GUIDS = 0x25EF, SMSG_UPDATE_TALENT_DATA = 0x25D0, - SMSG_UPDATE_TASK_PROGRESS = 0x277D, + SMSG_UPDATE_TASK_PROGRESS = 0x277E, SMSG_UPDATE_WEEKLY_SPELL_USAGE = 0x2C19, - SMSG_UPDATE_WORLD_STATE = 0x273A, + SMSG_UPDATE_WORLD_STATE = 0x273B, SMSG_USERLIST_ADD = 0x2BB9, SMSG_USERLIST_REMOVE = 0x2BBA, SMSG_USERLIST_UPDATE = 0x2BBB, - SMSG_USE_EQUIPMENT_SET_RESULT = 0x2741, - SMSG_VAS_CHECK_TRANSFER_OK_RESPONSE = 0x2809, - SMSG_VAS_GET_QUEUE_MINUTES_RESPONSE = 0x2807, - SMSG_VAS_GET_SERVICE_STATUS_RESPONSE = 0x2806, - SMSG_VAS_PURCHASE_COMPLETE = 0x27E2, - SMSG_VAS_PURCHASE_STATE_UPDATE = 0x27E1, + SMSG_USE_EQUIPMENT_SET_RESULT = 0x2742, + SMSG_VAS_CHECK_TRANSFER_OK_RESPONSE = 0x280A, + SMSG_VAS_GET_QUEUE_MINUTES_RESPONSE = 0x2808, + SMSG_VAS_GET_SERVICE_STATUS_RESPONSE = 0x2807, + SMSG_VAS_PURCHASE_COMPLETE = 0x27E3, + SMSG_VAS_PURCHASE_STATE_UPDATE = 0x27E2, SMSG_VENDOR_INVENTORY = 0x25B4, SMSG_VIGNETTE_UPDATE = 0x3008, - SMSG_VOICE_CHANNEL_INFO_RESPONSE = 0x280D, - SMSG_VOICE_CHANNEL_STT_TOKEN_RESPONSE = 0x2882, - SMSG_VOICE_LOGIN_RESPONSE = 0x280C, + SMSG_VOICE_CHANNEL_INFO_RESPONSE = 0x280E, + SMSG_VOICE_CHANNEL_STT_TOKEN_RESPONSE = 0x286F, + SMSG_VOICE_LOGIN_RESPONSE = 0x280D, SMSG_VOID_ITEM_SWAP_RESPONSE = 0x2DA4, SMSG_VOID_STORAGE_CONTENTS = 0x2DA1, SMSG_VOID_STORAGE_FAILED = 0x2DA0, @@ -1952,24 +1960,24 @@ enum OpcodeServer : uint16 SMSG_WAIT_QUEUE_FINISH = 0x256F, SMSG_WAIT_QUEUE_UPDATE = 0x256E, SMSG_WARDEN3_DATA = 0x2577, - SMSG_WARDEN3_DISABLED = 0x2810, - SMSG_WARDEN3_ENABLED = 0x280F, - SMSG_WARFRONT_COMPLETE = 0x2750, + SMSG_WARDEN3_DISABLED = 0x2811, + SMSG_WARDEN3_ENABLED = 0x2810, + SMSG_WARFRONT_COMPLETE = 0x2751, SMSG_WARGAME_REQUEST_SUCCESSFULLY_SENT_TO_OPPONENT = 0x2933, - SMSG_WEATHER = 0x269D, - SMSG_WEEKLY_REWARDS_PROGRESS_RESULT = 0x2879, - SMSG_WEEKLY_REWARDS_RESULT = 0x2877, - SMSG_WEEKLY_REWARD_CLAIM_RESULT = 0x2878, + SMSG_WEATHER = 0x269E, + SMSG_WEEKLY_REWARDS_PROGRESS_RESULT = 0x2866, + SMSG_WEEKLY_REWARDS_RESULT = 0x2864, + SMSG_WEEKLY_REWARD_CLAIM_RESULT = 0x2865, SMSG_WEEKLY_SPELL_USAGE = 0x2C18, SMSG_WHO = 0x2BAE, - SMSG_WHO_IS = 0x269C, - SMSG_WILL_BE_KICKED_FOR_ADDED_SUBSCRIPTION_TIME = 0x2814, - SMSG_WORLD_MAP_OPEN_NPC = 0x27E5, + SMSG_WHO_IS = 0x269D, + SMSG_WILL_BE_KICKED_FOR_ADDED_SUBSCRIPTION_TIME = 0x2815, + SMSG_WORLD_MAP_OPEN_NPC = 0x27E6, SMSG_WORLD_QUEST_UPDATE_RESPONSE = 0x300F, SMSG_WORLD_SERVER_INFO = 0x25AB, - SMSG_WOW_ENTITLEMENT_NOTIFICATION = 0x286F, + SMSG_WOW_ENTITLEMENT_NOTIFICATION = 0x285C, SMSG_XP_GAIN_ABORTED = 0x25C5, - SMSG_XP_GAIN_ENABLED = 0x279B, + SMSG_XP_GAIN_ENABLED = 0x279C, SMSG_ZONE_UNDER_ATTACK = 0x2BB5, // Opcodes that are not generated automatically diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index 8762b3d0899..886be10727b 100644 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -137,6 +137,7 @@ namespace WorldPackets class AuctionPlaceBid; class AuctionRemoveItem; class AuctionReplicateItems; + class AuctionRequestFavoriteList; class AuctionSellCommodity; class AuctionSellItem; class AuctionSetFavoriteItem; @@ -697,6 +698,7 @@ namespace WorldPackets class DelIgnore; class SendContactList; class SetContactNotes; + class SocialContractRequest; } namespace Spells @@ -1443,6 +1445,7 @@ class TC_GAME_API WorldSession void HandleAuctionPlaceBid(WorldPackets::AuctionHouse::AuctionPlaceBid& placeBid); void HandleAuctionRemoveItem(WorldPackets::AuctionHouse::AuctionRemoveItem& removeItem); void HandleAuctionReplicateItems(WorldPackets::AuctionHouse::AuctionReplicateItems& replicateItems); + void HandleAuctionRequestFavoriteList(WorldPackets::AuctionHouse::AuctionRequestFavoriteList& requestFavoriteList); void HandleAuctionSellCommodity(WorldPackets::AuctionHouse::AuctionSellCommodity& sellCommodity); void HandleAuctionSellItem(WorldPackets::AuctionHouse::AuctionSellItem& sellItem); void HandleAuctionSetFavoriteItem(WorldPackets::AuctionHouse::AuctionSetFavoriteItem& setFavoriteItem); @@ -1820,6 +1823,8 @@ class TC_GAME_API WorldSession void HandleRequestLatestSplashScreen(WorldPackets::Misc::RequestLatestSplashScreen& requestLatestSplashScreen); + void HandleSocialContractRequest(WorldPackets::Social::SocialContractRequest& socialContractRequest); + union ConnectToKey { struct diff --git a/src/server/game/Support/SupportMgr.cpp b/src/server/game/Support/SupportMgr.cpp index e72f9098ad0..eca5ee4da0c 100644 --- a/src/server/game/Support/SupportMgr.cpp +++ b/src/server/game/Support/SupportMgr.cpp @@ -175,14 +175,18 @@ std::string BugTicket::FormatViewMessageString(ChatHandler& handler, bool detail return ss.str(); } -ComplaintTicket::ComplaintTicket() : _complaintType(GMTICKET_SUPPORT_COMPLAINT_TYPE_NONE) { } +ComplaintTicket::ComplaintTicket() : _reportType(ReportType::Chat), _majorCategory(ReportMajorCategory::InappropriateCommunication), + _minorCategoryFlags(ReportMinorCategory::TextChat) +{ +} -ComplaintTicket::ComplaintTicket(Player* player) : Ticket(player), _complaintType(GMTICKET_SUPPORT_COMPLAINT_TYPE_NONE) +ComplaintTicket::ComplaintTicket(Player* player) : Ticket(player), _reportType(ReportType::Chat), _majorCategory(ReportMajorCategory::InappropriateCommunication), + _minorCategoryFlags(ReportMinorCategory::TextChat) { _id = sSupportMgr->GenerateComplaintId(); } -ComplaintTicket::~ComplaintTicket() { } +ComplaintTicket::~ComplaintTicket() = default; void ComplaintTicket::LoadFromDB(Field* fields) { @@ -197,7 +201,9 @@ void ComplaintTicket::LoadFromDB(Field* fields) _pos.m_positionZ = fields[++idx].GetFloat(); _pos.SetOrientation(fields[++idx].GetFloat()); _targetCharacterGuid = ObjectGuid::Create<HighGuid::Player>(fields[++idx].GetUInt64()); - _complaintType = GMSupportComplaintType(fields[++idx].GetUInt8()); + _reportType = ReportType(fields[++idx].GetInt32()); + _majorCategory = ReportMajorCategory(fields[++idx].GetInt32()); + _minorCategoryFlags = ReportMinorCategory(fields[++idx].GetInt32()); int32 reportLineIndex = fields[++idx].GetInt32(); if (reportLineIndex != -1) _chatLog.ReportLineIndex = reportLineIndex; @@ -240,7 +246,9 @@ void ComplaintTicket::SaveToDB() const stmt->setFloat(++idx, _pos.GetPositionZ()); stmt->setFloat(++idx, _pos.GetOrientation()); stmt->setUInt64(++idx, _targetCharacterGuid.GetCounter()); - stmt->setUInt8(++idx, _complaintType); + stmt->setInt32(++idx, AsUnderlyingType(_reportType)); + stmt->setInt32(++idx, AsUnderlyingType(_majorCategory)); + stmt->setInt32(++idx, AsUnderlyingType(_minorCategoryFlags)); if (_chatLog.ReportLineIndex) stmt->setInt32(++idx, *_chatLog.ReportLineIndex); else diff --git a/src/server/game/Support/SupportMgr.h b/src/server/game/Support/SupportMgr.h index f1a141c7474..f8582ebb6d0 100644 --- a/src/server/game/Support/SupportMgr.h +++ b/src/server/game/Support/SupportMgr.h @@ -25,6 +25,51 @@ class ChatHandler; class Field; class Player; +enum class ReportType : int32 +{ + Chat = 0, + InWorld = 1, + ClubFinderPosting = 2, + ClubFinderApplicant = 3, + GroupFinderPosting = 4, + GroupFinderApplicant = 5, + ClubMember = 6, + GroupMember = 7, + Friend = 8, + Pet = 9, + BattlePet = 10, + Calendar = 11, + Mail = 12, + PvP = 13, +}; + +enum class ReportMajorCategory : int32 +{ + InappropriateCommunication = 0, + GameplaySabotage = 1, + Cheating = 2, + InappropriateName = 3, +}; + +enum class ReportMinorCategory : int32 +{ + TextChat = 0x0001, + Boosting = 0x0002, + Spam = 0x0004, + Afk = 0x0008, + IntentionallyFeeding = 0x0010, + BlockingProgress = 0x0020, + Hacking = 0x0040, + Botting = 0x0080, + Advertisement = 0x0100, + BTag = 0x0200, + GroupName = 0x0400, + CharacterName = 0x0800, + GuildName = 0x1000, + Description = 0x2000, + Name = 0x4000, +}; + // from blizzard lua enum GMTicketSystemStatus { @@ -32,16 +77,6 @@ enum GMTicketSystemStatus GMTICKET_QUEUE_STATUS_ENABLED = 1 }; -enum GMSupportComplaintType -{ - GMTICKET_SUPPORT_COMPLAINT_TYPE_NONE = 0, - GMTICKET_SUPPORT_COMPLAINT_TYPE_LANGUAGE = 2, - GMTICKET_SUPPORT_COMPLAINT_TYPE_PLAYERNAME = 4, - GMTICKET_SUPPORT_COMPLAINT_TYPE_CHEAT = 15, - GMTICKET_SUPPORT_COMPLAINT_TYPE_GUILDNAME = 23, - GMTICKET_SUPPORT_COMPLAINT_TYPE_SPAMMING = 24 -}; - enum SupportSpamType { SUPPORT_SPAM_TYPE_MAIL = 0, @@ -134,14 +169,18 @@ public: ~ComplaintTicket(); ObjectGuid GetTargetCharacterGuid() const { return _targetCharacterGuid; } - GMSupportComplaintType GetComplaintType() const { return _complaintType; } + ReportType GetReportType() const { return _reportType; } + ReportMajorCategory GetMajorCategory() const { return _majorCategory; } + ReportMinorCategory GetMinorCategoryFlags() const { return _minorCategoryFlags; } std::string const& GetNote() const { return _note; } void SetTargetCharacterGuid(ObjectGuid targetCharacterGuid) { _targetCharacterGuid = targetCharacterGuid; } - void SetComplaintType(GMSupportComplaintType type) { _complaintType = type; } + void SetReportType(ReportType reportType) { _reportType = reportType; } + void SetMajorCategory(ReportMajorCategory majorCategory) { _majorCategory = majorCategory; } + void SetMinorCategoryFlags(ReportMinorCategory minorCategoryFlags) { _minorCategoryFlags = minorCategoryFlags; } void SetChatLog(ChatLog const& log) { _chatLog = log; } void SetNote(std::string const& note) { _note = note; } @@ -155,7 +194,9 @@ public: private: ObjectGuid _targetCharacterGuid; - GMSupportComplaintType _complaintType; + ReportType _reportType; + ReportMajorCategory _majorCategory; + ReportMinorCategory _minorCategoryFlags; ChatLog _chatLog; std::string _note; }; |