diff options
| author | Shauren <shauren.trinity@gmail.com> | 2018-02-10 01:24:00 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2018-02-18 16:33:49 +0100 |
| commit | 4af15915bc8b780ef854c2e58d7ab5bb38f56758 (patch) | |
| tree | fbbc2706ca6385e153a3b648b91c5a701d2bc271 /src/server/game/Server | |
| parent | c9465979c6002ae43bb8e536e3ad0f6d1be36b98 (diff) | |
Core/PacketIO: Updated opcodes and packet structures to 7.3.5
Diffstat (limited to 'src/server/game/Server')
24 files changed, 909 insertions, 857 deletions
diff --git a/src/server/game/Server/Packets/AuthenticationPackets.cpp b/src/server/game/Server/Packets/AuthenticationPackets.cpp index 3953a856b60..31a3b2d6ee2 100644 --- a/src/server/game/Server/Packets/AuthenticationPackets.cpp +++ b/src/server/game/Server/Packets/AuthenticationPackets.cpp @@ -130,18 +130,11 @@ WorldPacket const* WorldPackets::Auth::AuthResponse::Write() _worldPacket << uint8(SuccessInfo->ActiveExpansionLevel); _worldPacket << uint8(SuccessInfo->AccountExpansionLevel); _worldPacket << uint32(SuccessInfo->TimeSecondsUntilPCKick); - _worldPacket << uint32(SuccessInfo->AvailableRaces->size()); _worldPacket << uint32(SuccessInfo->AvailableClasses->size()); _worldPacket << uint32(SuccessInfo->Templates.size()); _worldPacket << uint32(SuccessInfo->CurrencyID); _worldPacket << int32(SuccessInfo->Time); - for (auto const& race : *SuccessInfo->AvailableRaces) - { - _worldPacket << uint8(race.first); /// the current race - _worldPacket << uint8(race.second); /// the required Expansion - } - for (auto const& klass : *SuccessInfo->AvailableClasses) { _worldPacket << uint8(klass.first); /// the current class diff --git a/src/server/game/Server/Packets/AuthenticationPackets.h b/src/server/game/Server/Packets/AuthenticationPackets.h index 7e244df991b..fbc0c6bb256 100644 --- a/src/server/game/Server/Packets/AuthenticationPackets.h +++ b/src/server/game/Server/Packets/AuthenticationPackets.h @@ -153,7 +153,6 @@ namespace WorldPackets std::vector<CharacterTemplate const*> Templates; ///< list of pre-made character templates. std::unordered_map<uint8, uint8> const* AvailableClasses = nullptr; ///< the minimum AccountExpansion required to select the classes - std::unordered_map<uint8, uint8> const* AvailableRaces = nullptr; ///< the minimum AccountExpansion required to select the races bool IsExpansionTrial = false; bool ForceCharacterTemplate = false; ///< forces the client to always use a character template when creating a new character. @see Templates. @todo implement diff --git a/src/server/game/Server/Packets/CharacterPackets.cpp b/src/server/game/Server/Packets/CharacterPackets.cpp index fd88684bab6..538a2c7e1d5 100644 --- a/src/server/game/Server/Packets/CharacterPackets.cpp +++ b/src/server/game/Server/Packets/CharacterPackets.cpp @@ -37,8 +37,8 @@ WorldPackets::Character::EnumCharactersResult::CharacterInfo::CharacterInfo(Fiel // "characters.zone, characters.map, characters.position_x, characters.position_y, characters.position_z, " // 19 20 21 22 23 24 25 // "guild_member.guildid, characters.playerFlags, characters.at_login, character_pet.entry, character_pet.modelid, character_pet.level, characters.equipmentCache, " - // 26 27 28 29 30 - // "character_banned.guid, characters.slot, characters.logout_time, characters.activeTalentGroup, character_declinedname.genitive" + // 26 27 28 29 30 31 + // "character_banned.guid, characters.slot, characters.logout_time, characters.activeTalentGroup, characters.lastLoginBuild, character_declinedname.genitive" Guid = ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt64()); Name = fields[1].GetString(); @@ -82,7 +82,7 @@ WorldPackets::Character::EnumCharactersResult::CharacterInfo::CharacterInfo(Fiel if (fields[26].GetUInt64()) Flags |= CHARACTER_FLAG_LOCKED_BY_BILLING; - if (sWorld->getBoolConfig(CONFIG_DECLINED_NAMES_USED) && !fields[30].GetString().empty()) + if (sWorld->getBoolConfig(CONFIG_DECLINED_NAMES_USED) && !fields[31].GetString().empty()) Flags |= CHARACTER_FLAG_DECLINED; if (atLoginFlags & AT_LOGIN_CUSTOMIZE) @@ -117,6 +117,8 @@ WorldPackets::Character::EnumCharactersResult::CharacterInfo::CharacterInfo(Fiel if (ChrSpecializationEntry const* spec = sDB2Manager.GetChrSpecializationByIndex(Class, fields[29].GetUInt8())) SpecID = spec->ID; + LastLoginBuild = fields[30].GetUInt32(); + for (uint8 slot = 0; slot < INVENTORY_SLOT_BAG_END; ++slot) { uint32 visualBase = slot * 3; @@ -126,76 +128,96 @@ WorldPackets::Character::EnumCharactersResult::CharacterInfo::CharacterInfo(Fiel } } +ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Character::EnumCharactersResult::CharacterInfo::VisualItemInfo const& visualItem) +{ + data << uint32(visualItem.DisplayId); + data << uint32(visualItem.DisplayEnchantId); + data << uint8(visualItem.InventoryType); + + return data; +} + +ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Character::EnumCharactersResult::CharacterInfo const& charInfo) +{ + data << charInfo.Guid; + data << uint8(charInfo.ListPosition); + data << uint8(charInfo.Race); + data << uint8(charInfo.Class); + data << uint8(charInfo.Sex); + data << uint8(charInfo.Skin); + data << uint8(charInfo.Face); + data << uint8(charInfo.HairStyle); + data << uint8(charInfo.HairColor); + data << uint8(charInfo.FacialHair); + data.append(charInfo.CustomDisplay.data(), charInfo.CustomDisplay.size()); + data << uint8(charInfo.Level); + data << int32(charInfo.ZoneId); + data << int32(charInfo.MapId); + data << charInfo.PreLoadPosition; + data << charInfo.GuildGuid; + data << uint32(charInfo.Flags); + data << uint32(charInfo.CustomizationFlag); + data << uint32(charInfo.Flags3); + data << uint32(charInfo.Pet.CreatureDisplayId); + data << uint32(charInfo.Pet.Level); + data << uint32(charInfo.Pet.CreatureFamily); + + data << uint32(charInfo.ProfessionIds[0]); + data << uint32(charInfo.ProfessionIds[1]); + + for (WorldPackets::Character::EnumCharactersResult::CharacterInfo::VisualItemInfo const& visualItem : charInfo.VisualItems) + data << visualItem; + + data << uint32(charInfo.LastPlayedTime); + data << uint16(charInfo.SpecID); + data << uint32(charInfo.Unknown703); + data << uint32(charInfo.LastLoginBuild); + data << uint32(charInfo.Flags4); + data.WriteBits(charInfo.Name.length(), 6); + data.WriteBit(charInfo.FirstLogin); + data.WriteBit(charInfo.BoostInProgress); + data.WriteBits(charInfo.unkWod61x, 5); + data.FlushBits(); + + data.WriteString(charInfo.Name); + + return data; +} + +ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Character::EnumCharactersResult::RaceUnlock const& raceUnlock) +{ + data << int32(raceUnlock.RaceID); + data.WriteBit(raceUnlock.HasExpansion); + data.WriteBit(raceUnlock.HasAchievement); + data.WriteBit(raceUnlock.HasHeritageArmor); + data.FlushBits(); + + return data; +} + WorldPacket const* WorldPackets::Character::EnumCharactersResult::Write() { - _worldPacket.reserve(9 + Characters.size() * sizeof(CharacterInfo) + FactionChangeRestrictions.size() * sizeof(RestrictedFactionChangeRuleInfo)); + _worldPacket.reserve(9 + Characters.size() * sizeof(CharacterInfo) + RaceUnlockData.size() * sizeof(RaceUnlock)); _worldPacket.WriteBit(Success); _worldPacket.WriteBit(IsDeletedCharacters); _worldPacket.WriteBit(IsDemonHunterCreationAllowed); _worldPacket.WriteBit(HasDemonHunterOnRealm); - _worldPacket.WriteBit(HasLevel70OnRealm); _worldPacket.WriteBit(Unknown7x); _worldPacket.WriteBit(DisabledClassesMask.is_initialized()); + _worldPacket.WriteBit(IsAlliedRacesCreationAllowed); _worldPacket << uint32(Characters.size()); - _worldPacket << uint32(FactionChangeRestrictions.size()); + _worldPacket << int32(MaxCharacterLevel); + _worldPacket << uint32(RaceUnlockData.size()); if (DisabledClassesMask) _worldPacket << uint32(*DisabledClassesMask); - for (RestrictedFactionChangeRuleInfo const& rule : FactionChangeRestrictions) - { - _worldPacket << int32(rule.Mask); - _worldPacket << uint8(rule.Race); - } - for (CharacterInfo const& charInfo : Characters) - { - _worldPacket << charInfo.Guid; - _worldPacket << uint8(charInfo.ListPosition); - _worldPacket << uint8(charInfo.Race); - _worldPacket << uint8(charInfo.Class); - _worldPacket << uint8(charInfo.Sex); - _worldPacket << uint8(charInfo.Skin); - _worldPacket << uint8(charInfo.Face); - _worldPacket << uint8(charInfo.HairStyle); - _worldPacket << uint8(charInfo.HairColor); - _worldPacket << uint8(charInfo.FacialHair); - _worldPacket.append(charInfo.CustomDisplay.data(), charInfo.CustomDisplay.size()); - _worldPacket << uint8(charInfo.Level); - _worldPacket << int32(charInfo.ZoneId); - _worldPacket << int32(charInfo.MapId); - _worldPacket << charInfo.PreLoadPosition; - _worldPacket << charInfo.GuildGuid; - _worldPacket << uint32(charInfo.Flags); - _worldPacket << uint32(charInfo.CustomizationFlag); - _worldPacket << uint32(charInfo.Flags3); - _worldPacket << uint32(charInfo.Pet.CreatureDisplayId); - _worldPacket << uint32(charInfo.Pet.Level); - _worldPacket << uint32(charInfo.Pet.CreatureFamily); - - _worldPacket << uint32(charInfo.ProfessionIds[0]); - _worldPacket << uint32(charInfo.ProfessionIds[1]); - - for (CharacterInfo::VisualItemInfo const& visualItem : charInfo.VisualItems) - { - _worldPacket << uint32(visualItem.DisplayId); - _worldPacket << uint32(visualItem.DisplayEnchantId); - _worldPacket << uint8(visualItem.InventoryType); - } + _worldPacket << charInfo; - _worldPacket << uint32(charInfo.LastPlayedTime); - _worldPacket << uint16(charInfo.SpecID); - _worldPacket << uint32(charInfo.Unknown703); - _worldPacket << uint32(charInfo.Flags4); - _worldPacket.WriteBits(charInfo.Name.length(), 6); - _worldPacket.WriteBit(charInfo.FirstLogin); - _worldPacket.WriteBit(charInfo.BoostInProgress); - _worldPacket.WriteBits(charInfo.unkWod61x, 5); - _worldPacket.FlushBits(); - - _worldPacket.WriteString(charInfo.Name); - } + for (RaceUnlock const& raceUnlock : RaceUnlockData) + _worldPacket << raceUnlock; return &_worldPacket; } @@ -469,9 +491,7 @@ WorldPacket const* WorldPackets::Character::LogXPGain::Write() _worldPacket << uint8(Reason); _worldPacket << int32(Amount); _worldPacket << float(GroupBonus); - _worldPacket.WriteBit(ReferAFriend); - - _worldPacket.FlushBits(); + _worldPacket << uint8(ReferAFriendBonusType); return &_worldPacket; } diff --git a/src/server/game/Server/Packets/CharacterPackets.h b/src/server/game/Server/Packets/CharacterPackets.h index ed325e4e896..1f4ce11621a 100644 --- a/src/server/game/Server/Packets/CharacterPackets.h +++ b/src/server/game/Server/Packets/CharacterPackets.h @@ -146,6 +146,7 @@ namespace WorldPackets uint32 LastPlayedTime = 0; uint16 SpecID = 0; uint32 Unknown703 = 0; + uint32 LastLoginBuild = 0; struct PetInfo { @@ -167,13 +168,12 @@ namespace WorldPackets std::array<VisualItemInfo, 23> VisualItems = { }; }; - struct RestrictedFactionChangeRuleInfo + struct RaceUnlock { - RestrictedFactionChangeRuleInfo(int32 mask, uint8 race) - : Mask(mask), Race(race) { } - - int32 Mask = 0; - uint8 Race = 0; + int32 RaceID; + bool HasExpansion; + bool HasAchievement; + bool HasHeritageArmor; }; EnumCharactersResult() : ServerPacket(SMSG_ENUM_CHARACTERS_RESULT) { } @@ -184,13 +184,14 @@ namespace WorldPackets bool IsDeletedCharacters = false; ///< used for character undelete list bool IsDemonHunterCreationAllowed = false; ///< used for demon hunter early access bool HasDemonHunterOnRealm = false; - bool HasLevel70OnRealm = false; bool Unknown7x = false; + bool IsAlliedRacesCreationAllowed = false; + int32 MaxCharacterLevel = 1; Optional<uint32> DisabledClassesMask; std::vector<CharacterInfo> Characters; ///< all characters on the list - std::vector<RestrictedFactionChangeRuleInfo> FactionChangeRestrictions; ///< @todo: research + std::vector<RaceUnlock> RaceUnlockData; ///< }; class CreateCharacter final : public ClientPacket @@ -631,7 +632,7 @@ namespace WorldPackets uint8 Reason = 0; int32 Amount = 0; float GroupBonus = 0; - bool ReferAFriend = false; + uint8 ReferAFriendBonusType = 0; // 1 - 300% of normal XP; 2 - 150% of normal XP }; class TitleEarned final : public ServerPacket diff --git a/src/server/game/Server/Packets/CombatLogPacketsCommon.cpp b/src/server/game/Server/Packets/CombatLogPacketsCommon.cpp index 6afac0117c9..ff378e680e0 100644 --- a/src/server/game/Server/Packets/CombatLogPacketsCommon.cpp +++ b/src/server/game/Server/Packets/CombatLogPacketsCommon.cpp @@ -166,7 +166,7 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Spells::SpellCastLogData ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Spells::SandboxScalingData const& sandboxScalingData) { - data.WriteBits(sandboxScalingData.Type, 3); + data.WriteBits(sandboxScalingData.Type, 4); data << int16(sandboxScalingData.PlayerLevelDelta); data << uint16(sandboxScalingData.PlayerItemLevel); data << uint8(sandboxScalingData.TargetLevel); diff --git a/src/server/game/Server/Packets/GuildPackets.cpp b/src/server/game/Server/Packets/GuildPackets.cpp index 5f5ecdea9fa..367021001c2 100644 --- a/src/server/game/Server/Packets/GuildPackets.cpp +++ b/src/server/game/Server/Packets/GuildPackets.cpp @@ -511,7 +511,7 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Guild::GuildRewardItem co data << rewardItem.ItemID; data << rewardItem.Unk4; data << uint32(rewardItem.AchievementsRequired.size()); - data << rewardItem.RaceMask; + data << uint64(rewardItem.RaceMask); data << rewardItem.MinGuildLevel; data << rewardItem.MinGuildRep; data << rewardItem.Cost; diff --git a/src/server/game/Server/Packets/GuildPackets.h b/src/server/game/Server/Packets/GuildPackets.h index 06e07665afe..f781e81b868 100644 --- a/src/server/game/Server/Packets/GuildPackets.h +++ b/src/server/game/Server/Packets/GuildPackets.h @@ -673,7 +673,7 @@ namespace WorldPackets uint32 ItemID = 0; uint32 Unk4 = 0; std::vector<uint32> AchievementsRequired; - uint32 RaceMask = 0; + uint64 RaceMask = 0; int32 MinGuildLevel = 0; int32 MinGuildRep = 0; uint64 Cost = 0; diff --git a/src/server/game/Server/Packets/InstancePackets.cpp b/src/server/game/Server/Packets/InstancePackets.cpp index 6851bcea921..0a6e29e6838 100644 --- a/src/server/game/Server/Packets/InstancePackets.cpp +++ b/src/server/game/Server/Packets/InstancePackets.cpp @@ -146,6 +146,8 @@ WorldPacket const* WorldPackets::Instance::InstanceEncounterStart::Write() _worldPacket << uint32(MaxInCombatResCount); _worldPacket << uint32(CombatResChargeRecovery); _worldPacket << uint32(NextCombatResChargeTime); + _worldPacket.WriteBit(InProgress); + _worldPacket.FlushBits(); return &_worldPacket; } diff --git a/src/server/game/Server/Packets/InstancePackets.h b/src/server/game/Server/Packets/InstancePackets.h index c01262cfa1f..f13e046906e 100644 --- a/src/server/game/Server/Packets/InstancePackets.h +++ b/src/server/game/Server/Packets/InstancePackets.h @@ -207,6 +207,7 @@ namespace WorldPackets uint32 MaxInCombatResCount = 0; uint32 CombatResChargeRecovery = 0; uint32 NextCombatResChargeTime = 0; + bool InProgress = true; }; class InstanceEncounterEnd final : public ServerPacket diff --git a/src/server/game/Server/Packets/ItemPackets.h b/src/server/game/Server/Packets/ItemPackets.h index d1558755fc2..e985f1366de 100644 --- a/src/server/game/Server/Packets/ItemPackets.h +++ b/src/server/game/Server/Packets/ItemPackets.h @@ -533,6 +533,14 @@ namespace WorldPackets ObjectGuid ItemGuid; }; + + class CharacterInventoryOverflowWarning final : public ServerPacket + { + public: + CharacterInventoryOverflowWarning() : ServerPacket(SMSG_CHARACTER_INVENTORY_OVERFLOW_WARNING, 0) { } + + WorldPacket const* Write() override { return &_worldPacket; } + }; } } diff --git a/src/server/game/Server/Packets/NPCPackets.cpp b/src/server/game/Server/Packets/NPCPackets.cpp index 28e72b7e6cd..2b7f9ab7d18 100644 --- a/src/server/game/Server/Packets/NPCPackets.cpp +++ b/src/server/game/Server/Packets/NPCPackets.cpp @@ -50,6 +50,7 @@ WorldPacket const* WorldPackets::NPC::GossipMessage::Write() _worldPacket << int32(text.QuestID); _worldPacket << int32(text.QuestType); _worldPacket << int32(text.QuestLevel); + _worldPacket << int32(text.QuestMaxScalingLevel); _worldPacket << int32(text.QuestFlags[0]); _worldPacket << int32(text.QuestFlags[1]); diff --git a/src/server/game/Server/Packets/NPCPackets.h b/src/server/game/Server/Packets/NPCPackets.h index a522084ab26..a094f25dc22 100644 --- a/src/server/game/Server/Packets/NPCPackets.h +++ b/src/server/game/Server/Packets/NPCPackets.h @@ -60,6 +60,7 @@ namespace WorldPackets int32 QuestID = 0; int32 QuestType = 0; int32 QuestLevel = 0; + int32 QuestMaxScalingLevel = 0; bool Repeatable = false; std::string QuestTitle; int32 QuestFlags[2] = { }; diff --git a/src/server/game/Server/Packets/QueryPackets.cpp b/src/server/game/Server/Packets/QueryPackets.cpp index 0f4b9daf6b5..c640394be93 100644 --- a/src/server/game/Server/Packets/QueryPackets.cpp +++ b/src/server/game/Server/Packets/QueryPackets.cpp @@ -370,6 +370,9 @@ WorldPacket const* WorldPackets::Query::QuestPOIQueryResponse::Write() _worldPacket << int32(questPOIBlobPoint.X); _worldPacket << int32(questPOIBlobPoint.Y); } + + _worldPacket.WriteBit(questPOIBlobData.AlwaysAllowMergingBlobs); + _worldPacket.FlushBits(); } } diff --git a/src/server/game/Server/Packets/QueryPackets.h b/src/server/game/Server/Packets/QueryPackets.h index c98c7809be5..7639f165dae 100644 --- a/src/server/game/Server/Packets/QueryPackets.h +++ b/src/server/game/Server/Packets/QueryPackets.h @@ -321,6 +321,7 @@ namespace WorldPackets int32 PlayerConditionID = 0; int32 UnkWoD1 = 0; std::vector<QuestPOIBlobPoint> QuestPOIBlobPointStats; + bool AlwaysAllowMergingBlobs = false; }; struct QuestPOIData diff --git a/src/server/game/Server/Packets/QuestPackets.cpp b/src/server/game/Server/Packets/QuestPackets.cpp index 3b07f68943e..20a6539ae1d 100644 --- a/src/server/game/Server/Packets/QuestPackets.cpp +++ b/src/server/game/Server/Packets/QuestPackets.cpp @@ -65,6 +65,7 @@ WorldPacket const* WorldPackets::Quest::QueryQuestInfoResponse::Write() _worldPacket << int32(Info.QuestID); _worldPacket << int32(Info.QuestType); _worldPacket << int32(Info.QuestLevel); + _worldPacket << int32(Info.QuestMaxScalingLevel); _worldPacket << int32(Info.QuestPackageID); _worldPacket << int32(Info.QuestMinLevel); _worldPacket << int32(Info.QuestSortID); @@ -139,7 +140,7 @@ WorldPacket const* WorldPackets::Quest::QueryQuestInfoResponse::Write() _worldPacket << int32(Info.TimeAllowed); _worldPacket << uint32(Info.Objectives.size()); - _worldPacket << int32(Info.AllowableRaces); + _worldPacket << uint64(Info.AllowableRaces); _worldPacket << int32(Info.QuestRewardID); _worldPacket << int32(Info.Expansion); @@ -489,6 +490,7 @@ WorldPacket const* WorldPackets::Quest::QuestGiverQuestListMessage::Write() _worldPacket << uint32(gossip.QuestID); _worldPacket << uint32(gossip.QuestType); _worldPacket << int32(gossip.QuestLevel); + _worldPacket << int32(gossip.QuestMaxScalingLevel); _worldPacket << uint32(gossip.QuestFlags); _worldPacket << uint32(gossip.QuestFlagsEx); _worldPacket.WriteBit(gossip.Repeatable); @@ -664,8 +666,10 @@ WorldPacket const* WorldPackets::Quest::DisplayPlayerChoice::Write() _worldPacket << int32(ChoiceID); _worldPacket << uint32(Responses.size()); _worldPacket << SenderGUID; + _worldPacket << int32(UiTextureKitID); _worldPacket.WriteBits(Question.length(), 8); _worldPacket.WriteBit(CloseChoiceFrame); + _worldPacket.WriteBit(HideWarboardHeader); _worldPacket.FlushBits(); for (PlayerChoiceResponse const& response : Responses) diff --git a/src/server/game/Server/Packets/QuestPackets.h b/src/server/game/Server/Packets/QuestPackets.h index 88f72c99271..1dd40e1ccc2 100644 --- a/src/server/game/Server/Packets/QuestPackets.h +++ b/src/server/game/Server/Packets/QuestPackets.h @@ -109,6 +109,7 @@ namespace WorldPackets int32 QuestID = 0; int32 QuestType = 0; // Accepted values: 0, 1 or 2. 0 == IsAutoComplete() (skip objectives/details) int32 QuestLevel = 0; // may be -1, static data, in other cases must be used dynamic level: Player::GetQuestLevel (0 is not known, but assuming this is no longer valid for quest intended for client) + int32 QuestMaxScalingLevel = 255; int32 QuestPackageID = 0; int32 QuestMinLevel = 0; int32 QuestSortID = 0; // zone or sort to display in quest log @@ -135,7 +136,7 @@ namespace WorldPackets float POIx = 0.0f; float POIy = 0.0f; int32 POIPriority = 0; - int32 AllowableRaces = -1; + uint64 AllowableRaces = UI64LIT(0xFFFFFFFFFFFFFFFF); std::string LogTitle; std::string LogDescription; std::string QuestDescription; @@ -462,11 +463,13 @@ namespace WorldPackets struct GossipText { - GossipText(uint32 questID, uint32 questType, int32 questLevel, uint32 questFlags, uint32 questFlagsEx, bool repeatable, std::string questTitle) : - QuestID(questID), QuestType(questType), QuestLevel(questLevel), QuestFlags(questFlags), QuestFlagsEx(questFlagsEx), Repeatable(repeatable), QuestTitle(questTitle) { } + GossipText(uint32 questID, uint32 questType, int32 questLevel, int32 questMaxScalingLevel, uint32 questFlags, uint32 questFlagsEx, bool repeatable, std::string questTitle) : + QuestID(questID), QuestType(questType), QuestLevel(questLevel), QuestMaxScalingLevel(questMaxScalingLevel), QuestFlags(questFlags), + QuestFlagsEx(questFlagsEx), Repeatable(repeatable), QuestTitle(std::move(questTitle)) { } uint32 QuestID; uint32 QuestType; int32 QuestLevel; + int32 QuestMaxScalingLevel; uint32 QuestFlags; uint32 QuestFlagsEx; bool Repeatable; @@ -676,9 +679,11 @@ namespace WorldPackets ObjectGuid SenderGUID; int32 ChoiceID = 0; + int32 UiTextureKitID = 0; std::string Question; std::vector<PlayerChoiceResponse> Responses; bool CloseChoiceFrame = false; + bool HideWarboardHeader = false; }; class ChoiceResponse final : public ClientPacket diff --git a/src/server/game/Server/Packets/TicketPackets.cpp b/src/server/game/Server/Packets/TicketPackets.cpp index 931376f48ac..cafb723c062 100644 --- a/src/server/game/Server/Packets/TicketPackets.cpp +++ b/src/server/game/Server/Packets/TicketPackets.cpp @@ -163,6 +163,8 @@ ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Ticket::SupportT data >> lfgListSearchResult->LastTitleAuthorGuid; data >> lfgListSearchResult->LastDescriptionAuthorGuid; data >> lfgListSearchResult->LastVoiceChatAuthorGuid; + data >> lfgListSearchResult->ListingCreatorGuid; + data >> lfgListSearchResult->Unknown735; uint32 titleLength = data.ReadBits(8); uint32 descriptionLength = data.ReadBits(11); diff --git a/src/server/game/Server/Packets/TicketPackets.h b/src/server/game/Server/Packets/TicketPackets.h index b94386a2ed6..6e25f3da4a9 100644 --- a/src/server/game/Server/Packets/TicketPackets.h +++ b/src/server/game/Server/Packets/TicketPackets.h @@ -165,6 +165,8 @@ namespace WorldPackets ObjectGuid LastTitleAuthorGuid; ObjectGuid LastDescriptionAuthorGuid; ObjectGuid LastVoiceChatAuthorGuid; + ObjectGuid ListingCreatorGuid; + ObjectGuid Unknown735; std::string Title; std::string Description; std::string VoiceChat; diff --git a/src/server/game/Server/Packets/WhoPackets.h b/src/server/game/Server/Packets/WhoPackets.h index 7dc9c33dab5..b84cf096345 100644 --- a/src/server/game/Server/Packets/WhoPackets.h +++ b/src/server/game/Server/Packets/WhoPackets.h @@ -66,7 +66,7 @@ namespace WorldPackets std::string VirtualRealmName; std::string Guild; std::string GuildVirtualRealmName; - int32 RaceFilter = -1; + uint64 RaceFilter = UI64LIT(0); int32 ClassFilter = -1; std::vector<WhoWord> Words; bool ShowEnemies = false; diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 301be77e6c3..28bd8c80701 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -220,6 +220,7 @@ void OpcodeTable::Initialize() DEFINE_HANDLER(CMSG_BATTLE_PET_SET_BATTLE_SLOT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlePetSetBattleSlot); DEFINE_HANDLER(CMSG_BATTLE_PET_SET_FLAGS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlePetSetFlags); DEFINE_HANDLER(CMSG_BATTLE_PET_SUMMON, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleBattlePetSummon); + DEFINE_HANDLER(CMSG_BATTLE_PET_UPDATE_DISPLAY_NOTIFY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_BATTLE_PET_UPDATE_NOTIFY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_BEGIN_TRADE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBeginTradeOpcode); //DEFINE_HANDLER(CMSG_BF_MGR_ENTRY_INVITE_RESPONSE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBfEntryInviteResponse); @@ -953,6 +954,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_PURCHASE_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_START_DISTRIBUTION_ASSIGN_TO_TARGET_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_START_PURCHASE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_SUBSCRIPTION_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_VAS_BNET_TRANSFER_VALIDATION_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_VAS_BOOST_CONSUMED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_VAS_CHARACTER_LIST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); @@ -1039,6 +1041,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANNEL_NOTIFY_JOINED, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANNEL_NOTIFY_LEFT, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHARACTER_CLASS_TRIAL_CREATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHARACTER_INVENTORY_OVERFLOW_WARNING, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHARACTER_ITEM_FIXUP, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHARACTER_LOGIN_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHARACTER_OBJECT_TEST_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); @@ -1358,7 +1361,6 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOGOUT_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOG_XP_GAIN, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOOT_ALL_PASSED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOOT_ITEM_LIST, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOOT_LIST, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOOT_MONEY_NOTIFY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOOT_RELEASE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); @@ -1478,6 +1480,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_OFFER_PETITION_ERROR, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_ON_MONSTER_MOVE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_OPEN_ALLIED_RACE_DETAILS_GIVER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_OPEN_CONTAINER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_OPEN_LFG_DUNGEON_FINDER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_OPEN_SHIPMENT_NPC_FROM_GOSSIP, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); @@ -1609,6 +1612,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_READY_CHECK_STARTED, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_READ_ITEM_RESULT_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_READ_ITEM_RESULT_OK, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_REALM_LOOKUP_INFORMATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_REALM_QUERY_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_RECRUIT_A_FRIEND_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_REFER_A_FRIEND_EXPIRED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); @@ -1779,9 +1783,10 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_UNLEARNED_SPELLS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_ACCOUNT_DATA, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_ACTION_BUTTONS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_CELESTIAL_BODY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_CHARACTER_FLAGS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_DUNGEON_ENCOUNTER_FOR_LOOT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_EXPANSION_LEVEL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_GAME_TIME_STATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_INSTANCE_OWNERSHIP, STATUS_NEVER, CONNECTION_TYPE_REALM); 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); diff --git a/src/server/game/Server/Protocol/Opcodes.h b/src/server/game/Server/Protocol/Opcodes.h index 9dac3a3ecac..49ca92b7004 100644 --- a/src/server/game/Server/Protocol/Opcodes.h +++ b/src/server/game/Server/Protocol/Opcodes.h @@ -51,24 +51,24 @@ enum OpcodeClient : uint16 CMSG_ACCEPT_WARGAME_INVITE = 0x35E0, CMSG_ACTIVATE_TAXI = 0x34AE, CMSG_ADDON_LIST = 0x35D8, - CMSG_ADD_BATTLENET_FRIEND = 0x365C, - CMSG_ADD_FRIEND = 0x36D1, - CMSG_ADD_IGNORE = 0x36D5, - CMSG_ADD_TOY = 0x3287, - CMSG_ADVENTURE_JOURNAL_OPEN_QUEST = 0x31F7, - CMSG_ADVENTURE_JOURNAL_START_QUEST = 0x332B, + CMSG_ADD_BATTLENET_FRIEND = 0x365A, + CMSG_ADD_FRIEND = 0x36CF, + CMSG_ADD_IGNORE = 0x36D3, + CMSG_ADD_TOY = 0x328B, + CMSG_ADVENTURE_JOURNAL_OPEN_QUEST = 0x31F9, + CMSG_ADVENTURE_JOURNAL_START_QUEST = 0x332E, CMSG_ALTER_APPEARANCE = 0x34F9, CMSG_AREA_SPIRIT_HEALER_QUERY = 0x34B3, CMSG_AREA_SPIRIT_HEALER_QUEUE = 0x34B4, - CMSG_AREA_TRIGGER = 0x31CC, + CMSG_AREA_TRIGGER = 0x31CD, CMSG_ARTIFACT_ADD_POWER = 0x31A5, CMSG_ARTIFACT_ADD_RELIC_TALENT = 0x31A8, CMSG_ARTIFACT_ATTUNE_PREVIEW_RELIC = 0x31A9, CMSG_ARTIFACT_ATTUNE_SOCKETED_RELIC = 0x31AA, CMSG_ARTIFACT_SET_APPEARANCE = 0x31A7, - CMSG_ASSIGN_EQUIPMENT_SET_SPEC = 0x31FE, - CMSG_ATTACK_STOP = 0x3249, - CMSG_ATTACK_SWING = 0x3248, + CMSG_ASSIGN_EQUIPMENT_SET_SPEC = 0x3200, + CMSG_ATTACK_STOP = 0x324D, + CMSG_ATTACK_SWING = 0x324C, CMSG_AUCTION_HELLO_REQUEST = 0x34CF, CMSG_AUCTION_LIST_BIDDER_ITEMS = 0x34D5, CMSG_AUCTION_LIST_ITEMS = 0x34D2, @@ -91,90 +91,91 @@ enum OpcodeClient : uint16 CMSG_BATTLEFIELD_LEAVE = 0x3171, CMSG_BATTLEFIELD_LIST = 0x317D, CMSG_BATTLEFIELD_PORT = 0x3529, - CMSG_BATTLEMASTER_HELLO = 0x329D, + CMSG_BATTLEMASTER_HELLO = 0x32A1, CMSG_BATTLEMASTER_JOIN = 0x3524, CMSG_BATTLEMASTER_JOIN_ARENA = 0x3525, CMSG_BATTLEMASTER_JOIN_BRAWL = 0x3527, CMSG_BATTLEMASTER_JOIN_SKIRMISH = 0x3526, - CMSG_BATTLENET_CHALLENGE_RESPONSE = 0x36D4, - CMSG_BATTLENET_REQUEST = 0x36F8, - CMSG_BATTLENET_REQUEST_REALM_LIST_TICKET = 0x36F9, - CMSG_BATTLE_PAY_ACK_FAILED_RESPONSE = 0x36CC, - CMSG_BATTLE_PAY_CONFIRM_PURCHASE_RESPONSE = 0x36CB, - CMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_TO_TARGET = 0x36C2, - CMSG_BATTLE_PAY_GET_PRODUCT_LIST = 0x36BC, - CMSG_BATTLE_PAY_GET_PURCHASE_LIST = 0x36BD, - CMSG_BATTLE_PAY_QUERY_CLASS_TRIAL_BOOST_RESULT = 0x36C5, - CMSG_BATTLE_PAY_REQUEST_CHARACTER_BOOST_UNREVOKE = 0x36C3, - CMSG_BATTLE_PAY_REQUEST_CURRENT_VAS_TRANSFER_QUEUES = 0x370A, - CMSG_BATTLE_PAY_REQUEST_PRICE_INFO = 0x3709, - CMSG_BATTLE_PAY_REQUEST_VAS_CHARACTER_QUEUE_TIME = 0x370B, - CMSG_BATTLE_PAY_START_PURCHASE = 0x36F4, - CMSG_BATTLE_PAY_START_VAS_PURCHASE = 0x36F5, - CMSG_BATTLE_PAY_TRIAL_BOOST_CHARACTER = 0x36C4, - CMSG_BATTLE_PAY_VALIDATE_BNET_VAS_TRANSFER = 0x370C, + CMSG_BATTLENET_CHALLENGE_RESPONSE = 0x36D2, + CMSG_BATTLENET_REQUEST = 0x36F6, + CMSG_BATTLENET_REQUEST_REALM_LIST_TICKET = 0x36F7, + CMSG_BATTLE_PAY_ACK_FAILED_RESPONSE = 0x36CA, + CMSG_BATTLE_PAY_CONFIRM_PURCHASE_RESPONSE = 0x36C9, + CMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_TO_TARGET = 0x36C0, + CMSG_BATTLE_PAY_GET_PRODUCT_LIST = 0x36BA, + CMSG_BATTLE_PAY_GET_PURCHASE_LIST = 0x36BB, + CMSG_BATTLE_PAY_QUERY_CLASS_TRIAL_BOOST_RESULT = 0x36C3, + CMSG_BATTLE_PAY_REQUEST_CHARACTER_BOOST_UNREVOKE = 0x36C1, + CMSG_BATTLE_PAY_REQUEST_CURRENT_VAS_TRANSFER_QUEUES = 0x3708, + CMSG_BATTLE_PAY_REQUEST_PRICE_INFO = 0x3707, + CMSG_BATTLE_PAY_REQUEST_VAS_CHARACTER_QUEUE_TIME = 0x3709, + CMSG_BATTLE_PAY_START_PURCHASE = 0x36F2, + CMSG_BATTLE_PAY_START_VAS_PURCHASE = 0x36F3, + CMSG_BATTLE_PAY_TRIAL_BOOST_CHARACTER = 0x36C2, + CMSG_BATTLE_PAY_VALIDATE_BNET_VAS_TRANSFER = 0x370A, CMSG_BATTLE_PET_CLEAR_FANFARE = 0x312C, - CMSG_BATTLE_PET_DELETE_PET = 0x3626, - CMSG_BATTLE_PET_DELETE_PET_CHEAT = 0x3627, - CMSG_BATTLE_PET_MODIFY_NAME = 0x3629, - CMSG_BATTLE_PET_REQUEST_JOURNAL = 0x3625, - CMSG_BATTLE_PET_REQUEST_JOURNAL_LOCK = 0x3624, - CMSG_BATTLE_PET_SET_BATTLE_SLOT = 0x362D, - CMSG_BATTLE_PET_SET_FLAGS = 0x3631, - CMSG_BATTLE_PET_SUMMON = 0x362A, - CMSG_BATTLE_PET_UPDATE_NOTIFY = 0x31D5, + CMSG_BATTLE_PET_DELETE_PET = 0x3624, + CMSG_BATTLE_PET_DELETE_PET_CHEAT = 0x3625, + CMSG_BATTLE_PET_MODIFY_NAME = 0x3627, + CMSG_BATTLE_PET_REQUEST_JOURNAL = 0x3623, + CMSG_BATTLE_PET_REQUEST_JOURNAL_LOCK = 0x3622, + CMSG_BATTLE_PET_SET_BATTLE_SLOT = 0x362B, + CMSG_BATTLE_PET_SET_FLAGS = 0x362F, + CMSG_BATTLE_PET_SUMMON = 0x3628, + CMSG_BATTLE_PET_UPDATE_DISPLAY_NOTIFY = 0x31D7, + CMSG_BATTLE_PET_UPDATE_NOTIFY = 0x31D6, CMSG_BEGIN_TRADE = 0x3157, CMSG_BINDER_ACTIVATE = 0x34B5, CMSG_BLACK_MARKET_BID_ON_ITEM = 0x3531, CMSG_BLACK_MARKET_OPEN = 0x352F, CMSG_BLACK_MARKET_REQUEST_ITEMS = 0x3530, - CMSG_BUG_REPORT = 0x3688, + CMSG_BUG_REPORT = 0x3686, CMSG_BUSY_TRADE = 0x3158, CMSG_BUY_BACK_ITEM = 0x34A7, CMSG_BUY_BANK_SLOT = 0x34B7, CMSG_BUY_ITEM = 0x34A6, CMSG_BUY_REAGENT_BANK = 0x34B8, - CMSG_BUY_WOW_TOKEN_CONFIRM = 0x36ED, - CMSG_BUY_WOW_TOKEN_START = 0x36EC, - CMSG_CAGE_BATTLE_PET = 0x31E6, - CMSG_CALENDAR_ADD_EVENT = 0x367F, - CMSG_CALENDAR_COMPLAIN = 0x367B, - CMSG_CALENDAR_COPY_EVENT = 0x367A, - CMSG_CALENDAR_EVENT_INVITE = 0x3674, - CMSG_CALENDAR_EVENT_MODERATOR_STATUS = 0x3678, - CMSG_CALENDAR_EVENT_RSVP = 0x3676, - CMSG_CALENDAR_EVENT_SIGN_UP = 0x367D, - CMSG_CALENDAR_EVENT_STATUS = 0x3677, - CMSG_CALENDAR_GET = 0x3671, - CMSG_CALENDAR_GET_EVENT = 0x3672, - CMSG_CALENDAR_GET_NUM_PENDING = 0x367C, - CMSG_CALENDAR_GUILD_FILTER = 0x3673, - CMSG_CALENDAR_REMOVE_EVENT = 0x3679, - CMSG_CALENDAR_REMOVE_INVITE = 0x3675, - CMSG_CALENDAR_UPDATE_EVENT = 0x3680, + CMSG_BUY_WOW_TOKEN_CONFIRM = 0x36EB, + CMSG_BUY_WOW_TOKEN_START = 0x36EA, + CMSG_CAGE_BATTLE_PET = 0x31E8, + CMSG_CALENDAR_ADD_EVENT = 0x367D, + CMSG_CALENDAR_COMPLAIN = 0x3679, + CMSG_CALENDAR_COPY_EVENT = 0x3678, + CMSG_CALENDAR_EVENT_INVITE = 0x3672, + CMSG_CALENDAR_EVENT_MODERATOR_STATUS = 0x3676, + CMSG_CALENDAR_EVENT_RSVP = 0x3674, + CMSG_CALENDAR_EVENT_SIGN_UP = 0x367B, + CMSG_CALENDAR_EVENT_STATUS = 0x3675, + CMSG_CALENDAR_GET = 0x366F, + CMSG_CALENDAR_GET_EVENT = 0x3670, + CMSG_CALENDAR_GET_NUM_PENDING = 0x367A, + CMSG_CALENDAR_GUILD_FILTER = 0x3671, + CMSG_CALENDAR_REMOVE_EVENT = 0x3677, + CMSG_CALENDAR_REMOVE_INVITE = 0x3673, + CMSG_CALENDAR_UPDATE_EVENT = 0x367E, CMSG_CANCEL_AURA = 0x31AC, CMSG_CANCEL_AUTO_REPEAT_SPELL = 0x34EB, - CMSG_CANCEL_CAST = 0x328D, - CMSG_CANCEL_CHANNELLING = 0x3258, - CMSG_CANCEL_GROWTH_AURA = 0x325D, - CMSG_CANCEL_MASTER_LOOT_ROLL = 0x3206, + CMSG_CANCEL_CAST = 0x3291, + CMSG_CANCEL_CHANNELLING = 0x325C, + CMSG_CANCEL_GROWTH_AURA = 0x3261, + CMSG_CANCEL_MASTER_LOOT_ROLL = 0x3208, CMSG_CANCEL_MOD_SPEED_NO_CONTROL_AURAS = 0x31AB, - CMSG_CANCEL_MOUNT_AURA = 0x326E, + CMSG_CANCEL_MOUNT_AURA = 0x3272, CMSG_CANCEL_QUEUED_SPELL = 0x317E, CMSG_CANCEL_TEMP_ENCHANTMENT = 0x34F6, CMSG_CANCEL_TRADE = 0x315C, - CMSG_CAN_DUEL = 0x3664, - CMSG_CAN_REDEEM_WOW_TOKEN_FOR_BALANCE = 0x3708, - CMSG_CAST_SPELL = 0x328A, + CMSG_CAN_DUEL = 0x3662, + CMSG_CAN_REDEEM_WOW_TOKEN_FOR_BALANCE = 0x3706, + CMSG_CAST_SPELL = 0x328E, CMSG_CHALLENGE_MODE_REQUEST_LEADERS = 0x308F, CMSG_CHALLENGE_MODE_REQUEST_MAP_STATS = 0x308E, - CMSG_CHANGE_BAG_SLOT_FLAG = 0x330E, - CMSG_CHANGE_MONUMENT_APPEARANCE = 0x32F0, - CMSG_CHANGE_SUB_GROUP = 0x364E, - CMSG_CHARACTER_RENAME_REQUEST = 0x36C0, - CMSG_CHAR_CUSTOMIZE = 0x3690, - CMSG_CHAR_DELETE = 0x369D, - CMSG_CHAR_RACE_OR_FACTION_CHANGE = 0x3696, + CMSG_CHANGE_BAG_SLOT_FLAG = 0x3312, + CMSG_CHANGE_MONUMENT_APPEARANCE = 0x32F4, + CMSG_CHANGE_SUB_GROUP = 0x364C, + CMSG_CHARACTER_RENAME_REQUEST = 0x36BE, + CMSG_CHAR_CUSTOMIZE = 0x368E, + CMSG_CHAR_DELETE = 0x369B, + CMSG_CHAR_RACE_OR_FACTION_CHANGE = 0x3694, CMSG_CHAT_ADDON_MESSAGE_CHANNEL = 0x37D0, CMSG_CHAT_ADDON_MESSAGE_GUILD = 0x37D4, CMSG_CHAT_ADDON_MESSAGE_INSTANCE_CHAT = 0x37F3, @@ -219,14 +220,14 @@ enum OpcodeClient : uint16 CMSG_CHAT_REPORT_FILTERED = 0x37CC, CMSG_CHAT_REPORT_IGNORED = 0x37CB, CMSG_CHAT_UNREGISTER_ALL_ADDON_PREFIXES = 0x37CE, - CMSG_CHECK_RAF_EMAIL_ENABLED = 0x36CD, - CMSG_CHECK_WOW_TOKEN_VETERAN_ELIGIBILITY = 0x36EB, - CMSG_CHOICE_RESPONSE = 0x328F, + CMSG_CHECK_RAF_EMAIL_ENABLED = 0x36CB, + CMSG_CHECK_WOW_TOKEN_VETERAN_ELIGIBILITY = 0x36E9, + CMSG_CHOICE_RESPONSE = 0x3293, CMSG_CLEAR_RAID_MARKER = 0x31A1, CMSG_CLEAR_TRADE_ITEM = 0x315E, CMSG_CLIENT_PORT_GRAVEYARD = 0x352B, CMSG_CLOSE_INTERACTION = 0x3496, - CMSG_COLLECTION_ITEM_SET_FAVORITE = 0x3634, + CMSG_COLLECTION_ITEM_SET_FAVORITE = 0x3632, CMSG_COMMENTATOR_ENABLE = 0x35F0, CMSG_COMMENTATOR_ENTER_INSTANCE = 0x35F4, CMSG_COMMENTATOR_EXIT_INSTANCE = 0x35F5, @@ -234,87 +235,87 @@ enum OpcodeClient : uint16 CMSG_COMMENTATOR_GET_PLAYER_COOLDOWNS = 0x35F3, CMSG_COMMENTATOR_GET_PLAYER_INFO = 0x35F2, CMSG_COMMENTATOR_START_WARGAME = 0x35EF, - CMSG_COMPLAINT = 0x366E, + CMSG_COMPLAINT = 0x366C, CMSG_COMPLETE_CINEMATIC = 0x3549, CMSG_COMPLETE_MOVIE = 0x34E1, CMSG_CONFIRM_ARTIFACT_RESPEC = 0x31A6, - CMSG_CONFIRM_RESPEC_WIPE = 0x3200, + CMSG_CONFIRM_RESPEC_WIPE = 0x3202, CMSG_CONNECT_TO_FAILED = 0x35D4, CMSG_CONTRIBUTION_CONTRIBUTE = 0x3558, CMSG_CONTRIBUTION_GET_STATE = 0x3559, - CMSG_CONVERT_CONSUMPTION_TIME = 0x36FB, - CMSG_CONVERT_RAID = 0x3650, - CMSG_CREATE_CHARACTER = 0x3645, - CMSG_CREATE_SHIPMENT = 0x32DC, + CMSG_CONVERT_CONSUMPTION_TIME = 0x36F9, + CMSG_CONVERT_RAID = 0x364E, + CMSG_CREATE_CHARACTER = 0x3643, + CMSG_CREATE_SHIPMENT = 0x32E0, CMSG_DB_QUERY_BULK = 0x35E4, CMSG_DECLINE_GUILD_INVITES = 0x3522, CMSG_DECLINE_PETITION = 0x3538, CMSG_DELETE_EQUIPMENT_SET = 0x3510, - CMSG_DEL_FRIEND = 0x36D2, - CMSG_DEL_IGNORE = 0x36D6, - CMSG_DEPOSIT_REAGENT_BANK = 0x3317, - CMSG_DESTROY_ITEM = 0x3281, - CMSG_DF_BOOT_PLAYER_VOTE = 0x3617, - CMSG_DF_GET_JOIN_STATUS = 0x3615, - CMSG_DF_GET_SYSTEM_INFO = 0x3614, + CMSG_DEL_FRIEND = 0x36D0, + CMSG_DEL_IGNORE = 0x36D4, + CMSG_DEPOSIT_REAGENT_BANK = 0x331B, + CMSG_DESTROY_ITEM = 0x3285, + CMSG_DF_BOOT_PLAYER_VOTE = 0x3615, + CMSG_DF_GET_JOIN_STATUS = 0x3613, + CMSG_DF_GET_SYSTEM_INFO = 0x3612, CMSG_DF_JOIN = 0x3608, - CMSG_DF_LEAVE = 0x3613, + CMSG_DF_LEAVE = 0x3611, CMSG_DF_PROPOSAL_RESPONSE = 0x3607, - CMSG_DF_READY_CHECK_RESPONSE = 0x361A, - CMSG_DF_SET_ROLES = 0x3616, - CMSG_DF_TELEPORT = 0x3618, + CMSG_DF_READY_CHECK_RESPONSE = 0x3618, + CMSG_DF_SET_ROLES = 0x3614, + CMSG_DF_TELEPORT = 0x3616, CMSG_DISCARDED_TIME_SYNC_ACKS = 0x3A3C, CMSG_DISMISS_CRITTER = 0x34FF, - CMSG_DO_MASTER_LOOT_ROLL = 0x3205, - CMSG_DO_READY_CHECK = 0x3635, + CMSG_DO_MASTER_LOOT_ROLL = 0x3207, + CMSG_DO_READY_CHECK = 0x3633, CMSG_DUEL_RESPONSE = 0x34E6, - CMSG_EJECT_PASSENGER = 0x322E, + CMSG_EJECT_PASSENGER = 0x3230, CMSG_EMOTE = 0x3545, CMSG_ENABLE_ENCRYPTION_ACK = 0x3767, CMSG_ENABLE_NAGLE = 0x376B, CMSG_ENABLE_TAXI_NODE = 0x34AC, - CMSG_ENGINE_SURVEY = 0x36E5, + CMSG_ENGINE_SURVEY = 0x36E3, CMSG_ENUM_CHARACTERS = 0x35E8, - CMSG_ENUM_CHARACTERS_DELETED_BY_CLIENT = 0x36DF, + CMSG_ENUM_CHARACTERS_DELETED_BY_CLIENT = 0x36DD, CMSG_FAR_SIGHT = 0x34EC, CMSG_GAME_OBJ_REPORT_USE = 0x34F3, CMSG_GAME_OBJ_USE = 0x34F2, - CMSG_GARRISON_ASSIGN_FOLLOWER_TO_BUILDING = 0x32C7, - CMSG_GARRISON_CANCEL_CONSTRUCTION = 0x32B8, - CMSG_GARRISON_CHECK_UPGRADEABLE = 0x330A, - CMSG_GARRISON_COMPLETE_MISSION = 0x32FD, - CMSG_GARRISON_GENERATE_RECRUITS = 0x32CA, - CMSG_GARRISON_GET_BUILDING_LANDMARKS = 0x32D8, - CMSG_GARRISON_GET_MISSION_REWARD = 0x3331, - CMSG_GARRISON_MISSION_BONUS_ROLL = 0x32FF, - CMSG_GARRISON_PURCHASE_BUILDING = 0x32B4, - CMSG_GARRISON_RECRUIT_FOLLOWER = 0x32CC, - CMSG_GARRISON_REMOVE_FOLLOWER = 0x32F4, - CMSG_GARRISON_REMOVE_FOLLOWER_FROM_BUILDING = 0x32C8, - CMSG_GARRISON_RENAME_FOLLOWER = 0x32C9, - CMSG_GARRISON_REQUEST_BLUEPRINT_AND_SPECIALIZATION_DATA = 0x32B3, - CMSG_GARRISON_REQUEST_CLASS_SPEC_CATEGORY_INFO = 0x32D1, - CMSG_GARRISON_REQUEST_LANDING_PAGE_SHIPMENT_INFO = 0x32DB, - CMSG_GARRISON_REQUEST_SHIPMENT_INFO = 0x32DA, - CMSG_GARRISON_RESEARCH_TALENT = 0x32CD, - CMSG_GARRISON_SET_BUILDING_ACTIVE = 0x32B5, - CMSG_GARRISON_SET_FOLLOWER_FAVORITE = 0x32C5, - CMSG_GARRISON_SET_FOLLOWER_INACTIVE = 0x32C1, - CMSG_GARRISON_SET_RECRUITMENT_PREFERENCES = 0x32CB, - CMSG_GARRISON_START_MISSION = 0x32FC, - CMSG_GARRISON_SWAP_BUILDINGS = 0x32B9, + CMSG_GARRISON_ASSIGN_FOLLOWER_TO_BUILDING = 0x32CB, + CMSG_GARRISON_CANCEL_CONSTRUCTION = 0x32BC, + CMSG_GARRISON_CHECK_UPGRADEABLE = 0x330E, + CMSG_GARRISON_COMPLETE_MISSION = 0x3301, + CMSG_GARRISON_GENERATE_RECRUITS = 0x32CE, + CMSG_GARRISON_GET_BUILDING_LANDMARKS = 0x32DC, + CMSG_GARRISON_GET_MISSION_REWARD = 0x3334, + CMSG_GARRISON_MISSION_BONUS_ROLL = 0x3303, + CMSG_GARRISON_PURCHASE_BUILDING = 0x32B8, + CMSG_GARRISON_RECRUIT_FOLLOWER = 0x32D0, + CMSG_GARRISON_REMOVE_FOLLOWER = 0x32F8, + CMSG_GARRISON_REMOVE_FOLLOWER_FROM_BUILDING = 0x32CC, + CMSG_GARRISON_RENAME_FOLLOWER = 0x32CD, + CMSG_GARRISON_REQUEST_BLUEPRINT_AND_SPECIALIZATION_DATA = 0x32B7, + CMSG_GARRISON_REQUEST_CLASS_SPEC_CATEGORY_INFO = 0x32D5, + CMSG_GARRISON_REQUEST_LANDING_PAGE_SHIPMENT_INFO = 0x32DF, + CMSG_GARRISON_REQUEST_SHIPMENT_INFO = 0x32DE, + CMSG_GARRISON_RESEARCH_TALENT = 0x32D1, + CMSG_GARRISON_SET_BUILDING_ACTIVE = 0x32B9, + CMSG_GARRISON_SET_FOLLOWER_FAVORITE = 0x32C9, + CMSG_GARRISON_SET_FOLLOWER_INACTIVE = 0x32C5, + CMSG_GARRISON_SET_RECRUITMENT_PREFERENCES = 0x32CF, + CMSG_GARRISON_START_MISSION = 0x3300, + CMSG_GARRISON_SWAP_BUILDINGS = 0x32BD, CMSG_GENERATE_RANDOM_CHARACTER_NAME = 0x35E7, - CMSG_GET_CHALLENGE_MODE_REWARDS = 0x3685, - CMSG_GET_GARRISON_INFO = 0x32AE, + CMSG_GET_CHALLENGE_MODE_REWARDS = 0x3683, + CMSG_GET_GARRISON_INFO = 0x32B2, CMSG_GET_ITEM_PURCHASE_DATA = 0x3533, - CMSG_GET_MIRROR_IMAGE_DATA = 0x3285, + CMSG_GET_MIRROR_IMAGE_DATA = 0x3289, CMSG_GET_PVP_OPTIONS_ENABLED = 0x35EE, - CMSG_GET_REMAINING_GAME_TIME = 0x36EE, - CMSG_GET_TROPHY_LIST = 0x32ED, - CMSG_GET_UNDELETE_CHARACTER_COOLDOWN_STATUS = 0x36E1, - CMSG_GM_TICKET_ACKNOWLEDGE_SURVEY = 0x3694, - CMSG_GM_TICKET_GET_CASE_STATUS = 0x3693, - CMSG_GM_TICKET_GET_SYSTEM_STATUS = 0x3692, + CMSG_GET_REMAINING_GAME_TIME = 0x36EC, + CMSG_GET_TROPHY_LIST = 0x32F1, + CMSG_GET_UNDELETE_CHARACTER_COOLDOWN_STATUS = 0x36DF, + CMSG_GM_TICKET_ACKNOWLEDGE_SURVEY = 0x3692, + CMSG_GM_TICKET_GET_CASE_STATUS = 0x3691, + CMSG_GM_TICKET_GET_SYSTEM_STATUS = 0x3690, CMSG_GOSSIP_SELECT_OPTION = 0x3497, CMSG_GRANT_LEVEL = 0x34FB, CMSG_GUILD_ADD_BATTLENET_FRIEND = 0x308D, @@ -356,7 +357,7 @@ enum OpcodeClient : uint16 CMSG_GUILD_REPLACE_GUILD_MASTER = 0x3088, CMSG_GUILD_SET_ACHIEVEMENT_TRACKING = 0x306F, CMSG_GUILD_SET_FOCUSED_ACHIEVEMENT = 0x3070, - CMSG_GUILD_SET_GUILD_MASTER = 0x36C7, + CMSG_GUILD_SET_GUILD_MASTER = 0x36C5, CMSG_GUILD_SET_MEMBER_NOTE = 0x3072, CMSG_GUILD_SET_RANK_PERMISSIONS = 0x3067, CMSG_GUILD_SHIFT_RANK = 0x3066, @@ -368,67 +369,67 @@ enum OpcodeClient : uint16 CMSG_INITIATE_ROLE_POLL = 0x35DA, CMSG_INITIATE_TRADE = 0x3156, CMSG_INSPECT = 0x352D, - CMSG_INSPECT_PVP = 0x36A3, + CMSG_INSPECT_PVP = 0x36A1, CMSG_INSTANCE_LOCK_RESPONSE = 0x3511, CMSG_ITEM_PURCHASE_REFUND = 0x3534, - CMSG_ITEM_TEXT_QUERY = 0x330B, - CMSG_JOIN_PET_BATTLE_QUEUE = 0x31D3, + CMSG_ITEM_TEXT_QUERY = 0x330F, + CMSG_JOIN_PET_BATTLE_QUEUE = 0x31D4, CMSG_JOIN_RATED_BATTLEGROUND = 0x3176, - CMSG_KEEP_ALIVE = 0x3681, - CMSG_KEYBOUND_OVERRIDE = 0x3217, + CMSG_KEEP_ALIVE = 0x367F, + CMSG_KEYBOUND_OVERRIDE = 0x3219, CMSG_LEARN_PVP_TALENTS = 0x3557, CMSG_LEARN_TALENTS = 0x3556, - CMSG_LEAVE_GROUP = 0x364B, - CMSG_LEAVE_PET_BATTLE_QUEUE = 0x31D4, - CMSG_LFG_LIST_APPLY_TO_GROUP = 0x360E, - CMSG_LFG_LIST_CANCEL_APPLICATION = 0x360F, - CMSG_LFG_LIST_DECLINE_APPLICANT = 0x3610, - CMSG_LFG_LIST_GET_STATUS = 0x360C, - CMSG_LFG_LIST_INVITE_APPLICANT = 0x3611, - CMSG_LFG_LIST_INVITE_RESPONSE = 0x3612, - CMSG_LFG_LIST_JOIN = 0x3609, - CMSG_LFG_LIST_LEAVE = 0x360B, - CMSG_LFG_LIST_SEARCH = 0x360D, - CMSG_LFG_LIST_UPDATE_REQUEST = 0x360A, - CMSG_LF_GUILD_ADD_RECRUIT = 0x361D, - CMSG_LF_GUILD_BROWSE = 0x361F, + CMSG_LEAVE_GROUP = 0x3649, + CMSG_LEAVE_PET_BATTLE_QUEUE = 0x31D5, + CMSG_LFG_LIST_APPLY_TO_GROUP = 0x360C, + CMSG_LFG_LIST_CANCEL_APPLICATION = 0x360D, + CMSG_LFG_LIST_DECLINE_APPLICANT = 0x360E, + CMSG_LFG_LIST_GET_STATUS = 0x360A, + CMSG_LFG_LIST_INVITE_APPLICANT = 0x360F, + CMSG_LFG_LIST_INVITE_RESPONSE = 0x3610, + CMSG_LFG_LIST_JOIN = 0x3345, + CMSG_LFG_LIST_LEAVE = 0x3609, + CMSG_LFG_LIST_SEARCH = 0x360B, + CMSG_LFG_LIST_UPDATE_REQUEST = 0x3346, + CMSG_LF_GUILD_ADD_RECRUIT = 0x361B, + CMSG_LF_GUILD_BROWSE = 0x361D, CMSG_LF_GUILD_DECLINE_RECRUIT = 0x3078, CMSG_LF_GUILD_GET_APPLICATIONS = 0x3079, CMSG_LF_GUILD_GET_GUILD_POST = 0x3076, CMSG_LF_GUILD_GET_RECRUITS = 0x3077, CMSG_LF_GUILD_REMOVE_RECRUIT = 0x307A, - CMSG_LF_GUILD_SET_GUILD_POST = 0x361E, + CMSG_LF_GUILD_SET_GUILD_POST = 0x361C, CMSG_LIST_INVENTORY = 0x34A4, - CMSG_LIVE_REGION_ACCOUNT_RESTORE = 0x36BB, - CMSG_LIVE_REGION_CHARACTER_COPY = 0x36BA, - CMSG_LIVE_REGION_GET_ACCOUNT_CHARACTER_LIST = 0x36B9, + CMSG_LIVE_REGION_ACCOUNT_RESTORE = 0x36B9, + CMSG_LIVE_REGION_CHARACTER_COPY = 0x36B8, + CMSG_LIVE_REGION_GET_ACCOUNT_CHARACTER_LIST = 0x36B7, CMSG_LOADING_SCREEN_NOTIFY = 0x35F8, - CMSG_LOAD_SELECTED_TROPHY = 0x32EE, + CMSG_LOAD_SELECTED_TROPHY = 0x32F2, CMSG_LOGOUT_CANCEL = 0x34DC, CMSG_LOGOUT_INSTANT = 0x34DD, CMSG_LOGOUT_REQUEST = 0x34DB, CMSG_LOG_DISCONNECT = 0x3769, CMSG_LOG_STREAMING_ERROR = 0x376D, - CMSG_LOOT_ITEM = 0x3203, - CMSG_LOOT_MONEY = 0x3202, - CMSG_LOOT_RELEASE = 0x3207, - CMSG_LOOT_ROLL = 0x3208, - CMSG_LOOT_UNIT = 0x3201, - CMSG_LOW_LEVEL_RAID1 = 0x36A1, + CMSG_LOOT_ITEM = 0x3205, + CMSG_LOOT_MONEY = 0x3204, + CMSG_LOOT_RELEASE = 0x3209, + CMSG_LOOT_ROLL = 0x320A, + CMSG_LOOT_UNIT = 0x3203, + CMSG_LOW_LEVEL_RAID1 = 0x369F, CMSG_LOW_LEVEL_RAID2 = 0x3518, CMSG_MAIL_CREATE_TEXT_ITEM = 0x353F, - CMSG_MAIL_DELETE = 0x3219, + CMSG_MAIL_DELETE = 0x321B, CMSG_MAIL_GET_LIST = 0x353A, CMSG_MAIL_MARK_AS_READ = 0x353E, - CMSG_MAIL_RETURN_TO_SENDER = 0x3657, + CMSG_MAIL_RETURN_TO_SENDER = 0x3655, CMSG_MAIL_TAKE_ITEM = 0x353C, CMSG_MAIL_TAKE_MONEY = 0x353B, - CMSG_MASTER_LOOT_ITEM = 0x3204, - CMSG_MINIMAP_PING = 0x364D, + CMSG_MASTER_LOOT_ITEM = 0x3206, + CMSG_MINIMAP_PING = 0x364B, CMSG_MISSILE_TRAJECTORY_COLLISION = 0x3189, CMSG_MOUNT_CLEAR_FANFARE = 0x312D, - CMSG_MOUNT_SET_FAVORITE = 0x3633, - CMSG_MOUNT_SPECIAL_ANIM = 0x326F, + CMSG_MOUNT_SET_FAVORITE = 0x3631, + CMSG_MOUNT_SPECIAL_ANIM = 0x3273, CMSG_MOVE_APPLY_MOVEMENT_FORCE_ACK = 0x3A12, CMSG_MOVE_CHANGE_TRANSPORT = 0x3A2C, CMSG_MOVE_CHANGE_VEHICLE_SEATS = 0x3A31, @@ -490,39 +491,39 @@ enum OpcodeClient : uint16 CMSG_MOVE_TIME_SKIPPED = 0x3A18, CMSG_MOVE_TOGGLE_COLLISION_CHEAT = 0x3A05, CMSG_MOVE_WATER_WALK_ACK = 0x3A1A, - CMSG_NEUTRAL_PLAYER_SELECT_FACTION = 0x31C9, + CMSG_NEUTRAL_PLAYER_SELECT_FACTION = 0x31CA, CMSG_NEXT_CINEMATIC_CAMERA = 0x3548, CMSG_OBJECT_UPDATE_FAILED = 0x317F, CMSG_OBJECT_UPDATE_RESCUED = 0x3180, - CMSG_OFFER_PETITION = 0x36B1, + CMSG_OFFER_PETITION = 0x36AF, CMSG_OPENING_CINEMATIC = 0x3547, - CMSG_OPEN_ITEM = 0x330C, - CMSG_OPEN_MISSION_NPC = 0x32D3, - CMSG_OPEN_SHIPMENT_NPC = 0x32D9, - CMSG_OPEN_TRADESKILL_NPC = 0x32E4, + CMSG_OPEN_ITEM = 0x3310, + CMSG_OPEN_MISSION_NPC = 0x32D7, + CMSG_OPEN_SHIPMENT_NPC = 0x32DD, + CMSG_OPEN_TRADESKILL_NPC = 0x32E8, CMSG_OPT_OUT_OF_LOOT = 0x34FA, CMSG_PARTY_INVITE = 0x3602, CMSG_PARTY_INVITE_RESPONSE = 0x3603, - CMSG_PARTY_UNINVITE = 0x3649, + CMSG_PARTY_UNINVITE = 0x3647, CMSG_PETITION_BUY = 0x34CD, - CMSG_PETITION_RENAME_GUILD = 0x36C8, + CMSG_PETITION_RENAME_GUILD = 0x36C6, CMSG_PETITION_SHOW_LIST = 0x34CC, CMSG_PETITION_SHOW_SIGNATURES = 0x34CE, CMSG_PET_ABANDON = 0x3490, CMSG_PET_ACTION = 0x348E, - CMSG_PET_BATTLE_FINAL_NOTIFY = 0x31D7, - CMSG_PET_BATTLE_INPUT = 0x3642, - CMSG_PET_BATTLE_QUEUE_PROPOSE_MATCH_RESULT = 0x3218, - CMSG_PET_BATTLE_QUIT_NOTIFY = 0x31D6, - CMSG_PET_BATTLE_REPLACE_FRONT_PET = 0x3643, - CMSG_PET_BATTLE_REQUEST_PVP = 0x31D1, - CMSG_PET_BATTLE_REQUEST_UPDATE = 0x31D2, - CMSG_PET_BATTLE_REQUEST_WILD = 0x31CF, - CMSG_PET_BATTLE_SCRIPT_ERROR_NOTIFY = 0x31D8, - CMSG_PET_BATTLE_WILD_LOCATION_FAIL = 0x31D0, + CMSG_PET_BATTLE_FINAL_NOTIFY = 0x31D9, + CMSG_PET_BATTLE_INPUT = 0x3640, + CMSG_PET_BATTLE_QUEUE_PROPOSE_MATCH_RESULT = 0x321A, + CMSG_PET_BATTLE_QUIT_NOTIFY = 0x31D8, + CMSG_PET_BATTLE_REPLACE_FRONT_PET = 0x3641, + CMSG_PET_BATTLE_REQUEST_PVP = 0x31D2, + CMSG_PET_BATTLE_REQUEST_UPDATE = 0x31D3, + CMSG_PET_BATTLE_REQUEST_WILD = 0x31D0, + CMSG_PET_BATTLE_SCRIPT_ERROR_NOTIFY = 0x31DA, + CMSG_PET_BATTLE_WILD_LOCATION_FAIL = 0x31D1, CMSG_PET_CANCEL_AURA = 0x3491, - CMSG_PET_CAST_SPELL = 0x3289, - CMSG_PET_RENAME = 0x3687, + CMSG_PET_CAST_SPELL = 0x328D, + CMSG_PET_RENAME = 0x3685, CMSG_PET_SET_ACTION = 0x348D, CMSG_PET_SPELL_AUTOCAST = 0x3492, CMSG_PET_STOP_ATTACK = 0x348F, @@ -531,27 +532,27 @@ enum OpcodeClient : uint16 CMSG_PROTOCOL_MISMATCH = 0x376E, CMSG_PUSH_QUEST_TO_PARTY = 0x34A2, CMSG_PVP_LOG_DATA = 0x317A, - CMSG_PVP_PRESTIGE_RANK_UP = 0x332F, - CMSG_QUERY_BATTLE_PET_NAME = 0x3264, - CMSG_QUERY_CORPSE_LOCATION_FROM_CLIENT = 0x3662, - CMSG_QUERY_CORPSE_TRANSPORT = 0x3663, + CMSG_PVP_PRESTIGE_RANK_UP = 0x3332, + CMSG_QUERY_BATTLE_PET_NAME = 0x3268, + CMSG_QUERY_CORPSE_LOCATION_FROM_CLIENT = 0x3660, + CMSG_QUERY_CORPSE_TRANSPORT = 0x3661, CMSG_QUERY_COUNTDOWN_TIMER = 0x31A4, - CMSG_QUERY_CREATURE = 0x325E, - CMSG_QUERY_GAME_OBJECT = 0x325F, - CMSG_QUERY_GARRISON_CREATURE_NAME = 0x3265, - CMSG_QUERY_GUILD_INFO = 0x368F, + CMSG_QUERY_CREATURE = 0x3262, + CMSG_QUERY_GAME_OBJECT = 0x3263, + CMSG_QUERY_GARRISON_CREATURE_NAME = 0x3269, + CMSG_QUERY_GUILD_INFO = 0x368D, CMSG_QUERY_INSPECT_ACHIEVEMENTS = 0x3506, CMSG_QUERY_NEXT_MAIL_TIME = 0x353D, - CMSG_QUERY_NPC_TEXT = 0x3260, - CMSG_QUERY_PAGE_TEXT = 0x3262, - CMSG_QUERY_PETITION = 0x3266, - CMSG_QUERY_PET_NAME = 0x3263, - CMSG_QUERY_PLAYER_NAME = 0x368D, + CMSG_QUERY_NPC_TEXT = 0x3264, + CMSG_QUERY_PAGE_TEXT = 0x3266, + CMSG_QUERY_PETITION = 0x326A, + CMSG_QUERY_PET_NAME = 0x3267, + CMSG_QUERY_PLAYER_NAME = 0x368B, CMSG_QUERY_QUEST_COMPLETION_NPCS = 0x3173, - CMSG_QUERY_QUEST_INFO = 0x3261, - CMSG_QUERY_QUEST_REWARDS = 0x3333, - CMSG_QUERY_REALM_NAME = 0x368E, - CMSG_QUERY_SCENARIO_POI = 0x3658, + CMSG_QUERY_QUEST_INFO = 0x3265, + CMSG_QUERY_QUEST_REWARDS = 0x3336, + CMSG_QUERY_REALM_NAME = 0x368C, + CMSG_QUERY_SCENARIO_POI = 0x3656, CMSG_QUERY_TIME = 0x34DA, CMSG_QUERY_VOID_STORAGE = 0x319D, CMSG_QUEST_CONFIRM_ACCEPT = 0x34A1, @@ -564,126 +565,126 @@ enum OpcodeClient : uint16 CMSG_QUEST_GIVER_STATUS_MULTIPLE_QUERY = 0x34A0, CMSG_QUEST_GIVER_STATUS_QUERY = 0x349F, CMSG_QUEST_LOG_REMOVE_QUEST = 0x3532, - CMSG_QUEST_POI_QUERY = 0x36B2, + CMSG_QUEST_POI_QUERY = 0x36B0, CMSG_QUEST_PUSH_RESULT = 0x34A3, CMSG_QUEUED_MESSAGES_END = 0x376C, - CMSG_QUICK_JOIN_AUTO_ACCEPT_REQUESTS = 0x3707, - CMSG_QUICK_JOIN_REQUEST_INVITE = 0x3706, - CMSG_QUICK_JOIN_RESPOND_TO_INVITE = 0x3705, - CMSG_QUICK_JOIN_SIGNAL_TOAST_DISPLAYED = 0x3704, - CMSG_RAID_OR_BATTLEGROUND_ENGINE_SURVEY = 0x36E6, - CMSG_RANDOM_ROLL = 0x3656, - CMSG_READY_CHECK_RESPONSE = 0x3636, - CMSG_READ_ITEM = 0x330D, + CMSG_QUICK_JOIN_AUTO_ACCEPT_REQUESTS = 0x3705, + CMSG_QUICK_JOIN_REQUEST_INVITE = 0x3704, + CMSG_QUICK_JOIN_RESPOND_TO_INVITE = 0x3703, + CMSG_QUICK_JOIN_SIGNAL_TOAST_DISPLAYED = 0x3702, + CMSG_RAID_OR_BATTLEGROUND_ENGINE_SURVEY = 0x36E4, + CMSG_RANDOM_ROLL = 0x3654, + CMSG_READY_CHECK_RESPONSE = 0x3634, + CMSG_READ_ITEM = 0x3311, CMSG_RECLAIM_CORPSE = 0x34DF, - CMSG_RECRUIT_A_FRIEND = 0x36CE, - CMSG_REDEEM_WOW_TOKEN_CONFIRM = 0x36F0, - CMSG_REDEEM_WOW_TOKEN_START = 0x36EF, - CMSG_REMOVE_NEW_ITEM = 0x3336, + CMSG_RECRUIT_A_FRIEND = 0x36CC, + CMSG_REDEEM_WOW_TOKEN_CONFIRM = 0x36EE, + CMSG_REDEEM_WOW_TOKEN_START = 0x36ED, + CMSG_REMOVE_NEW_ITEM = 0x3339, CMSG_REORDER_CHARACTERS = 0x35E9, CMSG_REPAIR_ITEM = 0x34F0, - CMSG_REPLACE_TROPHY = 0x32EF, + CMSG_REPLACE_TROPHY = 0x32F3, CMSG_REPOP_REQUEST = 0x352A, - CMSG_REPORT_CLIENT_VARIABLES = 0x3701, - CMSG_REPORT_ENABLED_ADDONS = 0x3700, - CMSG_REPORT_KEYBINDING_EXECUTION_COUNTS = 0x3702, + CMSG_REPORT_CLIENT_VARIABLES = 0x36FF, + CMSG_REPORT_ENABLED_ADDONS = 0x36FE, + CMSG_REPORT_KEYBINDING_EXECUTION_COUNTS = 0x3700, CMSG_REPORT_PVP_PLAYER_AFK = 0x34F8, - CMSG_REQUEST_ACCOUNT_DATA = 0x3697, - CMSG_REQUEST_AREA_POI_UPDATE = 0x3335, + CMSG_REQUEST_ACCOUNT_DATA = 0x3695, + CMSG_REQUEST_AREA_POI_UPDATE = 0x3338, CMSG_REQUEST_BATTLEFIELD_STATUS = 0x35DC, CMSG_REQUEST_CATEGORY_COOLDOWNS = 0x317C, CMSG_REQUEST_CEMETERY_LIST = 0x3174, - CMSG_REQUEST_CONQUEST_FORMULA_CONSTANTS = 0x32A0, - CMSG_REQUEST_CONSUMPTION_CONVERSION_INFO = 0x36FA, + CMSG_REQUEST_CONQUEST_FORMULA_CONSTANTS = 0x32A4, + CMSG_REQUEST_CONSUMPTION_CONVERSION_INFO = 0x36F8, CMSG_REQUEST_CROWD_CONTROL_SPELL = 0x352E, - CMSG_REQUEST_FORCED_REACTIONS = 0x31FC, + CMSG_REQUEST_FORCED_REACTIONS = 0x31FE, CMSG_REQUEST_GUILD_PARTY_STATE = 0x31A3, CMSG_REQUEST_GUILD_REWARDS_LIST = 0x31A2, CMSG_REQUEST_HONOR_STATS = 0x3179, - CMSG_REQUEST_LFG_LIST_BLACKLIST = 0x3291, + CMSG_REQUEST_LFG_LIST_BLACKLIST = 0x3295, CMSG_REQUEST_PARTY_JOIN_UPDATES = 0x35F7, - CMSG_REQUEST_PARTY_MEMBER_STATS = 0x3655, + CMSG_REQUEST_PARTY_MEMBER_STATS = 0x3653, CMSG_REQUEST_PET_INFO = 0x3493, - CMSG_REQUEST_PLAYED_TIME = 0x3269, + CMSG_REQUEST_PLAYED_TIME = 0x326D, CMSG_REQUEST_PVP_BRAWL_INFO = 0x3191, CMSG_REQUEST_PVP_REWARDS = 0x3190, - CMSG_REQUEST_RAID_INFO = 0x36C9, + CMSG_REQUEST_RAID_INFO = 0x36C7, CMSG_REQUEST_RATED_BATTLEFIELD_INFO = 0x35E3, CMSG_REQUEST_RESEARCH_HISTORY = 0x3167, CMSG_REQUEST_STABLED_PETS = 0x3494, - CMSG_REQUEST_VEHICLE_EXIT = 0x3229, - CMSG_REQUEST_VEHICLE_NEXT_SEAT = 0x322B, - CMSG_REQUEST_VEHICLE_PREV_SEAT = 0x322A, - CMSG_REQUEST_VEHICLE_SWITCH_SEAT = 0x322C, - CMSG_REQUEST_WORLD_QUEST_UPDATE = 0x3334, - CMSG_REQUEST_WOW_TOKEN_MARKET_PRICE = 0x36E8, - CMSG_RESET_CHALLENGE_MODE = 0x31F9, - CMSG_RESET_CHALLENGE_MODE_CHEAT = 0x31FA, - CMSG_RESET_INSTANCES = 0x366A, - CMSG_RESURRECT_RESPONSE = 0x3686, - CMSG_REVERT_MONUMENT_APPEARANCE = 0x32F1, - CMSG_RIDE_VEHICLE_INTERACT = 0x322D, + CMSG_REQUEST_VEHICLE_EXIT = 0x322B, + CMSG_REQUEST_VEHICLE_NEXT_SEAT = 0x322D, + CMSG_REQUEST_VEHICLE_PREV_SEAT = 0x322C, + CMSG_REQUEST_VEHICLE_SWITCH_SEAT = 0x322E, + CMSG_REQUEST_WORLD_QUEST_UPDATE = 0x3337, + CMSG_REQUEST_WOW_TOKEN_MARKET_PRICE = 0x36E6, + CMSG_RESET_CHALLENGE_MODE = 0x31FB, + CMSG_RESET_CHALLENGE_MODE_CHEAT = 0x31FC, + CMSG_RESET_INSTANCES = 0x3668, + CMSG_RESURRECT_RESPONSE = 0x3684, + CMSG_REVERT_MONUMENT_APPEARANCE = 0x32F5, + CMSG_RIDE_VEHICLE_INTERACT = 0x322F, CMSG_SAVE_CUF_PROFILES = 0x318A, CMSG_SAVE_EQUIPMENT_SET = 0x350F, - CMSG_SAVE_GUILD_EMBLEM = 0x3295, - CMSG_SCENE_PLAYBACK_CANCELED = 0x3214, - CMSG_SCENE_PLAYBACK_COMPLETE = 0x3213, - CMSG_SCENE_TRIGGER_EVENT = 0x3215, + CMSG_SAVE_GUILD_EMBLEM = 0x3299, + CMSG_SCENE_PLAYBACK_CANCELED = 0x3216, + CMSG_SCENE_PLAYBACK_COMPLETE = 0x3215, + CMSG_SCENE_TRIGGER_EVENT = 0x3217, CMSG_SELF_RES = 0x3535, CMSG_SELL_ITEM = 0x34A5, - CMSG_SELL_WOW_TOKEN_CONFIRM = 0x36EA, - CMSG_SELL_WOW_TOKEN_START = 0x36E9, - CMSG_SEND_CONTACT_LIST = 0x36D0, + CMSG_SELL_WOW_TOKEN_CONFIRM = 0x36E8, + CMSG_SELL_WOW_TOKEN_START = 0x36E7, + CMSG_SEND_CONTACT_LIST = 0x36CE, CMSG_SEND_MAIL = 0x35FA, - CMSG_SEND_SOR_REQUEST_VIA_ADDRESS = 0x3622, + CMSG_SEND_SOR_REQUEST_VIA_ADDRESS = 0x3620, CMSG_SEND_TEXT_EMOTE = 0x348A, - CMSG_SET_ACHIEVEMENTS_HIDDEN = 0x321A, + CMSG_SET_ACHIEVEMENTS_HIDDEN = 0x321C, CMSG_SET_ACTION_BAR_TOGGLES = 0x3536, - CMSG_SET_ACTION_BUTTON = 0x3637, + CMSG_SET_ACTION_BUTTON = 0x3635, CMSG_SET_ACTIVE_MOVER = 0x3A37, - CMSG_SET_ADVANCED_COMBAT_LOGGING = 0x32A1, - CMSG_SET_ASSISTANT_LEADER = 0x3651, - CMSG_SET_BACKPACK_AUTOSORT_DISABLED = 0x3310, - CMSG_SET_BANK_AUTOSORT_DISABLED = 0x3311, - CMSG_SET_BANK_BAG_SLOT_FLAG = 0x330F, - CMSG_SET_CONTACT_NOTES = 0x36D3, + CMSG_SET_ADVANCED_COMBAT_LOGGING = 0x32A5, + CMSG_SET_ASSISTANT_LEADER = 0x364F, + CMSG_SET_BACKPACK_AUTOSORT_DISABLED = 0x3314, + CMSG_SET_BANK_AUTOSORT_DISABLED = 0x3315, + CMSG_SET_BANK_BAG_SLOT_FLAG = 0x3313, + CMSG_SET_CONTACT_NOTES = 0x36D1, CMSG_SET_CURRENCY_FLAGS = 0x3169, - CMSG_SET_DIFFICULTY_ID = 0x3216, - CMSG_SET_DUNGEON_DIFFICULTY = 0x3684, - CMSG_SET_EVERYONE_IS_ASSISTANT = 0x3619, + CMSG_SET_DIFFICULTY_ID = 0x3218, + CMSG_SET_DUNGEON_DIFFICULTY = 0x3682, + CMSG_SET_EVERYONE_IS_ASSISTANT = 0x3617, CMSG_SET_FACTION_AT_WAR = 0x34E2, CMSG_SET_FACTION_INACTIVE = 0x34E4, CMSG_SET_FACTION_NOT_AT_WAR = 0x34E3, - CMSG_SET_INSERT_ITEMS_LEFT_TO_RIGHT = 0x3313, - CMSG_SET_LFG_BONUS_FACTION_ID = 0x3290, - CMSG_SET_LOOT_METHOD = 0x364A, + CMSG_SET_INSERT_ITEMS_LEFT_TO_RIGHT = 0x3317, + CMSG_SET_LFG_BONUS_FACTION_ID = 0x3294, + CMSG_SET_LOOT_METHOD = 0x3648, CMSG_SET_LOOT_SPECIALIZATION = 0x3543, - CMSG_SET_PARTY_ASSIGNMENT = 0x3653, - CMSG_SET_PARTY_LEADER = 0x364C, + CMSG_SET_PARTY_ASSIGNMENT = 0x3651, + CMSG_SET_PARTY_LEADER = 0x364A, CMSG_SET_PET_SLOT = 0x3168, - CMSG_SET_PLAYER_DECLINED_NAMES = 0x368C, + CMSG_SET_PLAYER_DECLINED_NAMES = 0x368A, CMSG_SET_PREFERRED_CEMETERY = 0x3175, - CMSG_SET_PVP = 0x3299, - CMSG_SET_RAID_DIFFICULTY = 0x36DD, + CMSG_SET_PVP = 0x329D, + CMSG_SET_RAID_DIFFICULTY = 0x36DB, CMSG_SET_ROLE = 0x35D9, - CMSG_SET_SAVED_INSTANCE_EXTEND = 0x368A, + CMSG_SET_SAVED_INSTANCE_EXTEND = 0x3688, CMSG_SET_SELECTION = 0x352C, CMSG_SET_SHEATHED = 0x348B, - CMSG_SET_SORT_BAGS_RIGHT_TO_LEFT = 0x3312, + CMSG_SET_SORT_BAGS_RIGHT_TO_LEFT = 0x3316, CMSG_SET_TAXI_BENCHMARK_MODE = 0x34F7, - CMSG_SET_TITLE = 0x326D, + CMSG_SET_TITLE = 0x3271, CMSG_SET_TRADE_CURRENCY = 0x3160, CMSG_SET_TRADE_GOLD = 0x315F, CMSG_SET_TRADE_ITEM = 0x315D, - CMSG_SET_USING_PARTY_GARRISON = 0x32D5, + CMSG_SET_USING_PARTY_GARRISON = 0x32D9, CMSG_SET_WATCHED_FACTION = 0x34E5, - CMSG_SHOW_TRADE_SKILL = 0x36C1, + CMSG_SHOW_TRADE_SKILL = 0x36BF, CMSG_SIGN_PETITION = 0x3537, - CMSG_SILENCE_PARTY_TALKER = 0x3654, + CMSG_SILENCE_PARTY_TALKER = 0x3652, CMSG_SOCKET_GEMS = 0x34EF, - CMSG_SORT_BAGS = 0x3314, - CMSG_SORT_BANK_BAGS = 0x3315, - CMSG_SORT_REAGENT_BANK_BAGS = 0x3316, + CMSG_SORT_BAGS = 0x3318, + CMSG_SORT_BANK_BAGS = 0x3319, + CMSG_SORT_REAGENT_BANK_BAGS = 0x331A, CMSG_SPELL_CLICK = 0x3498, CMSG_SPIRIT_HEALER_ACTIVATE = 0x34B2, CMSG_SPLIT_ITEM = 0x399E, @@ -691,18 +692,18 @@ enum OpcodeClient : uint16 CMSG_START_CHALLENGE_MODE = 0x354E, CMSG_START_SPECTATOR_WAR_GAME = 0x35DF, CMSG_START_WAR_GAME = 0x35DE, - CMSG_SUMMON_RESPONSE = 0x366C, - CMSG_SUPPORT_TICKET_SUBMIT_BUG = 0x3647, - CMSG_SUPPORT_TICKET_SUBMIT_COMPLAINT = 0x3646, - CMSG_SUPPORT_TICKET_SUBMIT_SUGGESTION = 0x3648, + CMSG_SUMMON_RESPONSE = 0x366A, + CMSG_SUPPORT_TICKET_SUBMIT_BUG = 0x3645, + CMSG_SUPPORT_TICKET_SUBMIT_COMPLAINT = 0x3644, + CMSG_SUPPORT_TICKET_SUBMIT_SUGGESTION = 0x3646, CMSG_SURRENDER_ARENA = 0x3172, CMSG_SUSPEND_COMMS_ACK = 0x3764, CMSG_SUSPEND_TOKEN_RESPONSE = 0x376A, CMSG_SWAP_INV_ITEM = 0x399D, CMSG_SWAP_ITEM = 0x399C, - CMSG_SWAP_SUB_GROUPS = 0x364F, + CMSG_SWAP_SUB_GROUPS = 0x364D, CMSG_SWAP_VOID_ITEM = 0x319F, - CMSG_TABARD_VENDOR_ACTIVATE = 0x3296, + CMSG_TABARD_VENDOR_ACTIVATE = 0x329A, CMSG_TALK_TO_GOSSIP = 0x3495, CMSG_TAXI_NODE_STATUS_QUERY = 0x34AB, CMSG_TAXI_QUERY_AVAILABLE_NODES = 0x34AD, @@ -711,46 +712,46 @@ enum OpcodeClient : uint16 CMSG_TIME_SYNC_RESPONSE = 0x3A38, CMSG_TIME_SYNC_RESPONSE_DROPPED = 0x3A3A, CMSG_TIME_SYNC_RESPONSE_FAILED = 0x3A39, - CMSG_TOGGLE_DIFFICULTY = 0x3659, - CMSG_TOGGLE_PVP = 0x3298, + CMSG_TOGGLE_DIFFICULTY = 0x3657, + CMSG_TOGGLE_PVP = 0x329C, CMSG_TOTEM_DESTROYED = 0x34FE, - CMSG_TRADE_SKILL_SET_FAVORITE = 0x3332, + CMSG_TRADE_SKILL_SET_FAVORITE = 0x3335, CMSG_TRAINER_BUY_SPELL = 0x34B1, CMSG_TRAINER_LIST = 0x34B0, CMSG_TRANSMOGRIFY_ITEMS = 0x3192, CMSG_TURN_IN_PETITION = 0x3539, - CMSG_TUTORIAL = 0x36DE, + CMSG_TUTORIAL = 0x36DC, CMSG_TWITTER_CHECK_STATUS = 0x312A, CMSG_TWITTER_CONNECT = 0x3127, CMSG_TWITTER_DISCONNECT = 0x312B, - CMSG_TWITTER_POST = 0x3318, - CMSG_UI_TIME_REQUEST = 0x369C, + CMSG_TWITTER_POST = 0x331C, + CMSG_UI_TIME_REQUEST = 0x369A, CMSG_UNACCEPT_TRADE = 0x315B, - CMSG_UNDELETE_CHARACTER = 0x36E0, + CMSG_UNDELETE_CHARACTER = 0x36DE, CMSG_UNLEARN_SKILL = 0x34E9, CMSG_UNLEARN_SPECIALIZATION = 0x31A0, CMSG_UNLOCK_VOID_STORAGE = 0x319C, - CMSG_UPDATE_ACCOUNT_DATA = 0x3698, - CMSG_UPDATE_AREA_TRIGGER_VISUAL = 0x328C, - CMSG_UPDATE_CLIENT_SETTINGS = 0x3666, + CMSG_UPDATE_ACCOUNT_DATA = 0x3696, + CMSG_UPDATE_AREA_TRIGGER_VISUAL = 0x3290, + CMSG_UPDATE_CLIENT_SETTINGS = 0x3664, CMSG_UPDATE_MISSILE_TRAJECTORY = 0x3A3E, - CMSG_UPDATE_RAID_TARGET = 0x3652, - CMSG_UPDATE_SPELL_VISUAL = 0x328B, - CMSG_UPDATE_VAS_PURCHASE_STATES = 0x36F6, - CMSG_UPDATE_WOW_TOKEN_AUCTIONABLE_LIST = 0x36F1, - CMSG_UPDATE_WOW_TOKEN_COUNT = 0x36E7, - CMSG_UPGRADE_GARRISON = 0x32A9, - CMSG_UPGRADE_ITEM = 0x321B, + CMSG_UPDATE_RAID_TARGET = 0x3650, + CMSG_UPDATE_SPELL_VISUAL = 0x328F, + CMSG_UPDATE_VAS_PURCHASE_STATES = 0x36F4, + CMSG_UPDATE_WOW_TOKEN_AUCTIONABLE_LIST = 0x36EF, + CMSG_UPDATE_WOW_TOKEN_COUNT = 0x36E5, + CMSG_UPGRADE_GARRISON = 0x32AD, + CMSG_UPGRADE_ITEM = 0x321D, CMSG_USED_FOLLOW = 0x3185, - CMSG_USE_CRITTER_ITEM = 0x3234, + CMSG_USE_CRITTER_ITEM = 0x3235, CMSG_USE_EQUIPMENT_SET = 0x3995, - CMSG_USE_ITEM = 0x3286, - CMSG_USE_TOY = 0x3288, + CMSG_USE_ITEM = 0x328A, + CMSG_USE_TOY = 0x328C, CMSG_VIOLENCE_LEVEL = 0x3183, CMSG_VOID_STORAGE_TRANSFER = 0x319E, CMSG_WARDEN_DATA = 0x35EC, - CMSG_WHO = 0x3683, - CMSG_WHO_IS = 0x3682, + CMSG_WHO = 0x3681, + CMSG_WHO_IS = 0x3680, CMSG_WORLD_PORT_RESPONSE = 0x35F9, CMSG_WRAP_ITEM = 0x3994, @@ -762,63 +763,63 @@ enum OpcodeClient : uint16 enum OpcodeServer : uint16 { SMSG_ABORT_NEW_WORLD = 0x25AD, - SMSG_ACCOUNT_CRITERIA_UPDATE = 0x2653, - SMSG_ACCOUNT_DATA_TIMES = 0x274A, + SMSG_ACCOUNT_CRITERIA_UPDATE = 0x2652, + SMSG_ACCOUNT_DATA_TIMES = 0x2749, SMSG_ACCOUNT_MOUNT_UPDATE = 0x25C3, SMSG_ACCOUNT_TOYS_UPDATE = 0x25C4, - SMSG_ACHIEVEMENT_DELETED = 0x271F, - SMSG_ACHIEVEMENT_EARNED = 0x2661, - SMSG_ACTIVATE_TAXI_REPLY = 0x26A7, - SMSG_ACTIVE_GLYPHS = 0x2C52, - SMSG_ADD_BATTLENET_FRIEND_RESPONSE = 0x265B, + SMSG_ACHIEVEMENT_DELETED = 0x271E, + SMSG_ACHIEVEMENT_EARNED = 0x2660, + SMSG_ACTIVATE_TAXI_REPLY = 0x26A6, + SMSG_ACTIVE_GLYPHS = 0x2C53, + SMSG_ADD_BATTLENET_FRIEND_RESPONSE = 0x265A, SMSG_ADD_ITEM_PASSIVE = 0x25BF, - SMSG_ADD_LOSS_OF_CONTROL = 0x2697, - SMSG_ADD_RUNE_POWER = 0x26E3, + SMSG_ADD_LOSS_OF_CONTROL = 0x2696, + SMSG_ADD_RUNE_POWER = 0x26E2, SMSG_ADJUST_SPLINE_DURATION = 0x25E8, SMSG_AE_LOOT_TARGETS = 0x262C, SMSG_AE_LOOT_TARGET_ACK = 0x262D, - SMSG_AI_REACTION = 0x26E0, + SMSG_AI_REACTION = 0x26DF, SMSG_ALL_ACCOUNT_CRITERIA = 0x2570, SMSG_ALL_ACHIEVEMENT_DATA = 0x256F, SMSG_ALL_GUILD_ACHIEVEMENTS = 0x29B8, SMSG_ARCHAEOLOGY_SURVERY_CAST = 0x2586, SMSG_AREA_POI_UPDATE = 0x2848, - SMSG_AREA_SPIRIT_HEALER_TIME = 0x2783, - SMSG_AREA_TRIGGER_DENIED = 0x269E, - SMSG_AREA_TRIGGER_NO_CORPSE = 0x2756, - SMSG_AREA_TRIGGER_RE_PATH = 0x2640, - SMSG_AREA_TRIGGER_RE_SHAPE = 0x263D, - SMSG_ARENA_CROWD_CONTROL_SPELLS = 0x264F, - SMSG_ARENA_ERROR = 0x2712, - SMSG_ARENA_PREP_OPPONENT_SPECIALIZATIONS = 0x2666, - SMSG_ARTIFACT_FORGE_OPENED = 0x27E3, - SMSG_ARTIFACT_KNOWLEDGE = 0x27EB, - SMSG_ARTIFACT_RESPEC_CONFIRM = 0x27E6, - SMSG_ARTIFACT_TRAITS_REFUNDED = 0x27E7, - SMSG_ARTIFACT_XP_GAIN = 0x282E, - SMSG_ATTACKER_STATE_UPDATE = 0x27D0, - SMSG_ATTACK_START = 0x266E, - SMSG_ATTACK_STOP = 0x266F, - SMSG_ATTACK_SWING_ERROR = 0x2734, - SMSG_ATTACK_SWING_LANDED_LOG = 0x2735, - SMSG_AUCTION_CLOSED_NOTIFICATION = 0x2729, - SMSG_AUCTION_COMMAND_RESULT = 0x2726, - SMSG_AUCTION_HELLO_RESPONSE = 0x2724, - SMSG_AUCTION_LIST_BIDDER_ITEMS_RESULT = 0x272D, - SMSG_AUCTION_LIST_ITEMS_RESULT = 0x272B, - SMSG_AUCTION_LIST_OWNER_ITEMS_RESULT = 0x272C, - SMSG_AUCTION_LIST_PENDING_SALES_RESULT = 0x272E, - SMSG_AUCTION_OUTBID_NOTIFICATION = 0x2728, - SMSG_AUCTION_OWNER_BID_NOTIFICATION = 0x272A, - SMSG_AUCTION_REPLICATE_RESPONSE = 0x2725, - SMSG_AUCTION_WON_NOTIFICATION = 0x2727, + SMSG_AREA_SPIRIT_HEALER_TIME = 0x2782, + SMSG_AREA_TRIGGER_DENIED = 0x269D, + SMSG_AREA_TRIGGER_NO_CORPSE = 0x2755, + SMSG_AREA_TRIGGER_RE_PATH = 0x263F, + SMSG_AREA_TRIGGER_RE_SHAPE = 0x263C, + SMSG_ARENA_CROWD_CONTROL_SPELLS = 0x264E, + SMSG_ARENA_ERROR = 0x2711, + SMSG_ARENA_PREP_OPPONENT_SPECIALIZATIONS = 0x2665, + SMSG_ARTIFACT_FORGE_OPENED = 0x27E2, + SMSG_ARTIFACT_KNOWLEDGE = 0x27EA, + SMSG_ARTIFACT_RESPEC_CONFIRM = 0x27E5, + SMSG_ARTIFACT_TRAITS_REFUNDED = 0x27E6, + SMSG_ARTIFACT_XP_GAIN = 0x282D, + SMSG_ATTACKER_STATE_UPDATE = 0x27CF, + SMSG_ATTACK_START = 0x266D, + SMSG_ATTACK_STOP = 0x266E, + SMSG_ATTACK_SWING_ERROR = 0x2733, + SMSG_ATTACK_SWING_LANDED_LOG = 0x2734, + SMSG_AUCTION_CLOSED_NOTIFICATION = 0x2728, + SMSG_AUCTION_COMMAND_RESULT = 0x2725, + SMSG_AUCTION_HELLO_RESPONSE = 0x2723, + SMSG_AUCTION_LIST_BIDDER_ITEMS_RESULT = 0x272C, + SMSG_AUCTION_LIST_ITEMS_RESULT = 0x272A, + SMSG_AUCTION_LIST_OWNER_ITEMS_RESULT = 0x272B, + SMSG_AUCTION_LIST_PENDING_SALES_RESULT = 0x272D, + SMSG_AUCTION_OUTBID_NOTIFICATION = 0x2727, + SMSG_AUCTION_OWNER_BID_NOTIFICATION = 0x2729, + SMSG_AUCTION_REPLICATE_RESPONSE = 0x2724, + SMSG_AUCTION_WON_NOTIFICATION = 0x2726, SMSG_AURA_POINTS_DEPLETED = 0x2C23, SMSG_AURA_UPDATE = 0x2C22, SMSG_AUTH_CHALLENGE = 0x3048, SMSG_AUTH_RESPONSE = 0x256C, SMSG_AVAILABLE_HOTFIXES = 0x25A1, - SMSG_BAN_REASON = 0x26B3, - SMSG_BARBER_SHOP_RESULT = 0x26E9, + SMSG_BAN_REASON = 0x26B2, + SMSG_BARBER_SHOP_RESULT = 0x26E8, SMSG_BATTLEFIELD_LIST = 0x2594, SMSG_BATTLEFIELD_PORT_DENIED = 0x259A, SMSG_BATTLEFIELD_STATUS_ACTIVE = 0x2590, @@ -828,43 +829,44 @@ enum OpcodeServer : uint16 SMSG_BATTLEFIELD_STATUS_QUEUED = 0x2591, SMSG_BATTLEFIELD_STATUS_WAIT_FOR_GROUPS = 0x25A5, SMSG_BATTLEGROUND_INFO_THROTTLED = 0x259B, - SMSG_BATTLEGROUND_INIT = 0x27A1, + SMSG_BATTLEGROUND_INIT = 0x27A0, SMSG_BATTLEGROUND_PLAYER_JOINED = 0x2598, SMSG_BATTLEGROUND_PLAYER_LEFT = 0x2599, SMSG_BATTLEGROUND_PLAYER_POSITIONS = 0x2595, - SMSG_BATTLEGROUND_POINTS = 0x27A0, - SMSG_BATTLENET_CHALLENGE_ABORT = 0x27CF, - SMSG_BATTLENET_CHALLENGE_START = 0x27CE, + SMSG_BATTLEGROUND_POINTS = 0x279F, + SMSG_BATTLENET_CHALLENGE_ABORT = 0x27CE, + SMSG_BATTLENET_CHALLENGE_START = 0x27CD, SMSG_BATTLENET_NOTIFICATION = 0x2843, SMSG_BATTLENET_REALM_LIST_TICKET = 0x2845, SMSG_BATTLENET_RESPONSE = 0x2842, SMSG_BATTLENET_SET_SESSION_STATE = 0x2844, - SMSG_BATTLE_PAY_ACK_FAILED = 0x27C7, - SMSG_BATTLE_PAY_BATTLE_PET_DELIVERED = 0x27BC, - SMSG_BATTLE_PAY_CONFIRM_PURCHASE = 0x27C6, - SMSG_BATTLE_PAY_DELIVERY_ENDED = 0x27BA, - SMSG_BATTLE_PAY_DELIVERY_STARTED = 0x27B9, - SMSG_BATTLE_PAY_DISTRIBUTION_UPDATE = 0x27B8, - SMSG_BATTLE_PAY_GET_DISTRIBUTION_LIST_RESPONSE = 0x27B6, - SMSG_BATTLE_PAY_GET_PRODUCT_LIST_RESPONSE = 0x27B4, - SMSG_BATTLE_PAY_GET_PURCHASE_LIST_RESPONSE = 0x27B5, - SMSG_BATTLE_PAY_MOUNT_DELIVERED = 0x27BB, - SMSG_BATTLE_PAY_PURCHASE_UPDATE = 0x27C5, - SMSG_BATTLE_PAY_START_DISTRIBUTION_ASSIGN_TO_TARGET_RESPONSE = 0x27C3, - SMSG_BATTLE_PAY_START_PURCHASE_RESPONSE = 0x27C2, + SMSG_BATTLE_PAY_ACK_FAILED = 0x27C6, + SMSG_BATTLE_PAY_BATTLE_PET_DELIVERED = 0x27BB, + SMSG_BATTLE_PAY_CONFIRM_PURCHASE = 0x27C5, + SMSG_BATTLE_PAY_DELIVERY_ENDED = 0x27B9, + SMSG_BATTLE_PAY_DELIVERY_STARTED = 0x27B8, + SMSG_BATTLE_PAY_DISTRIBUTION_UPDATE = 0x27B7, + SMSG_BATTLE_PAY_GET_DISTRIBUTION_LIST_RESPONSE = 0x27B5, + SMSG_BATTLE_PAY_GET_PRODUCT_LIST_RESPONSE = 0x27B3, + SMSG_BATTLE_PAY_GET_PURCHASE_LIST_RESPONSE = 0x27B4, + SMSG_BATTLE_PAY_MOUNT_DELIVERED = 0x27BA, + SMSG_BATTLE_PAY_PURCHASE_UPDATE = 0x27C4, + SMSG_BATTLE_PAY_START_DISTRIBUTION_ASSIGN_TO_TARGET_RESPONSE = 0x27C2, + SMSG_BATTLE_PAY_START_PURCHASE_RESPONSE = 0x27C1, + SMSG_BATTLE_PAY_SUBSCRIPTION_CHANGED = 0x2864, SMSG_BATTLE_PAY_VAS_BNET_TRANSFER_VALIDATION_RESULT = 0x285B, - SMSG_BATTLE_PAY_VAS_BOOST_CONSUMED = 0x27B7, - SMSG_BATTLE_PAY_VAS_CHARACTER_LIST = 0x2831, + SMSG_BATTLE_PAY_VAS_BOOST_CONSUMED = 0x27B6, + SMSG_BATTLE_PAY_VAS_CHARACTER_LIST = 0x2830, SMSG_BATTLE_PAY_VAS_CHARACTER_QUEUE_STATUS = 0x2859, - SMSG_BATTLE_PAY_VAS_PURCHASE_COMPLETE = 0x2834, - SMSG_BATTLE_PAY_VAS_PURCHASE_LIST = 0x2835, - SMSG_BATTLE_PAY_VAS_PURCHASE_STARTED = 0x2833, - SMSG_BATTLE_PAY_VAS_REALM_LIST = 0x2832, + SMSG_BATTLE_PAY_VAS_PURCHASE_COMPLETE = 0x2833, + SMSG_BATTLE_PAY_VAS_PURCHASE_LIST = 0x2834, + SMSG_BATTLE_PAY_VAS_PURCHASE_STARTED = 0x2832, + SMSG_BATTLE_PAY_VAS_REALM_LIST = 0x2831, SMSG_BATTLE_PAY_VAS_TRANSFER_QUEUE_STATUS = 0x2858, SMSG_BATTLE_PETS_HEALED = 0x2609, - SMSG_BATTLE_PET_CAGE_DATE_ERROR = 0x26A1, + SMSG_BATTLE_PET_CAGE_DATE_ERROR = 0x26A0, SMSG_BATTLE_PET_DELETED = 0x2606, - SMSG_BATTLE_PET_ERROR = 0x2656, + SMSG_BATTLE_PET_ERROR = 0x2655, SMSG_BATTLE_PET_JOURNAL = 0x2605, SMSG_BATTLE_PET_JOURNAL_LOCK_ACQUIRED = 0x2603, SMSG_BATTLE_PET_JOURNAL_LOCK_DENIED = 0x2604, @@ -874,49 +876,49 @@ enum OpcodeServer : uint16 SMSG_BATTLE_PET_REVOKED = 0x2607, SMSG_BATTLE_PET_TRAP_LEVEL = 0x2600, SMSG_BATTLE_PET_UPDATES = 0x25FF, - SMSG_BINDER_CONFIRM = 0x273A, + SMSG_BINDER_CONFIRM = 0x2739, SMSG_BIND_POINT_UPDATE = 0x257C, - SMSG_BLACK_MARKET_BID_ON_ITEM_RESULT = 0x2645, - SMSG_BLACK_MARKET_OPEN_RESULT = 0x2643, - SMSG_BLACK_MARKET_OUTBID = 0x2646, - SMSG_BLACK_MARKET_REQUEST_ITEMS_RESULT = 0x2644, - SMSG_BLACK_MARKET_WON = 0x2647, - SMSG_BONUS_ROLL_EMPTY = 0x2663, - SMSG_BOSS_KILL_CREDIT = 0x27C1, - SMSG_BREAK_TARGET = 0x266D, - SMSG_BUY_FAILED = 0x26F2, - SMSG_BUY_SUCCEEDED = 0x26F1, - SMSG_CACHE_INFO = 0x2744, - SMSG_CACHE_VERSION = 0x2743, - SMSG_CALENDAR_CLEAR_PENDING_ACTION = 0x26C7, - SMSG_CALENDAR_COMMAND_RESULT = 0x26C8, - SMSG_CALENDAR_EVENT_INITIAL_INVITES = 0x26B7, - SMSG_CALENDAR_EVENT_INVITE = 0x26B8, - SMSG_CALENDAR_EVENT_INVITE_ALERT = 0x26B9, - SMSG_CALENDAR_EVENT_INVITE_MODERATOR_STATUS = 0x26BC, - SMSG_CALENDAR_EVENT_INVITE_NOTES = 0x26C1, - SMSG_CALENDAR_EVENT_INVITE_NOTES_ALERT = 0x26C2, - SMSG_CALENDAR_EVENT_INVITE_REMOVED = 0x26BD, - SMSG_CALENDAR_EVENT_INVITE_REMOVED_ALERT = 0x26BE, - SMSG_CALENDAR_EVENT_INVITE_STATUS = 0x26BA, - SMSG_CALENDAR_EVENT_INVITE_STATUS_ALERT = 0x26BB, - SMSG_CALENDAR_EVENT_REMOVED_ALERT = 0x26BF, - SMSG_CALENDAR_EVENT_UPDATED_ALERT = 0x26C0, - SMSG_CALENDAR_RAID_LOCKOUT_ADDED = 0x26C3, - SMSG_CALENDAR_RAID_LOCKOUT_REMOVED = 0x26C4, - SMSG_CALENDAR_RAID_LOCKOUT_UPDATED = 0x26C5, - SMSG_CALENDAR_SEND_CALENDAR = 0x26B5, - SMSG_CALENDAR_SEND_EVENT = 0x26B6, - SMSG_CALENDAR_SEND_NUM_PENDING = 0x26C6, - SMSG_CAMERA_EFFECT = 0x2768, - SMSG_CANCEL_AUTO_REPEAT = 0x2713, - SMSG_CANCEL_COMBAT = 0x2732, - SMSG_CANCEL_ORPHAN_SPELL_VISUAL = 0x2C45, - SMSG_CANCEL_SCENE = 0x2655, - SMSG_CANCEL_SPELL_VISUAL = 0x2C43, - SMSG_CANCEL_SPELL_VISUAL_KIT = 0x2C47, - SMSG_CAN_DUEL_RESULT = 0x2677, - SMSG_CAST_FAILED = 0x2C55, + SMSG_BLACK_MARKET_BID_ON_ITEM_RESULT = 0x2644, + SMSG_BLACK_MARKET_OPEN_RESULT = 0x2642, + SMSG_BLACK_MARKET_OUTBID = 0x2645, + SMSG_BLACK_MARKET_REQUEST_ITEMS_RESULT = 0x2643, + SMSG_BLACK_MARKET_WON = 0x2646, + SMSG_BONUS_ROLL_EMPTY = 0x2662, + SMSG_BOSS_KILL_CREDIT = 0x27C0, + SMSG_BREAK_TARGET = 0x266C, + SMSG_BUY_FAILED = 0x26F1, + SMSG_BUY_SUCCEEDED = 0x26F0, + SMSG_CACHE_INFO = 0x2743, + SMSG_CACHE_VERSION = 0x2742, + SMSG_CALENDAR_CLEAR_PENDING_ACTION = 0x26C6, + SMSG_CALENDAR_COMMAND_RESULT = 0x26C7, + SMSG_CALENDAR_EVENT_INITIAL_INVITES = 0x26B6, + SMSG_CALENDAR_EVENT_INVITE = 0x26B7, + SMSG_CALENDAR_EVENT_INVITE_ALERT = 0x26B8, + SMSG_CALENDAR_EVENT_INVITE_MODERATOR_STATUS = 0x26BB, + SMSG_CALENDAR_EVENT_INVITE_NOTES = 0x26C0, + SMSG_CALENDAR_EVENT_INVITE_NOTES_ALERT = 0x26C1, + SMSG_CALENDAR_EVENT_INVITE_REMOVED = 0x26BC, + SMSG_CALENDAR_EVENT_INVITE_REMOVED_ALERT = 0x26BD, + SMSG_CALENDAR_EVENT_INVITE_STATUS = 0x26B9, + SMSG_CALENDAR_EVENT_INVITE_STATUS_ALERT = 0x26BA, + SMSG_CALENDAR_EVENT_REMOVED_ALERT = 0x26BE, + SMSG_CALENDAR_EVENT_UPDATED_ALERT = 0x26BF, + SMSG_CALENDAR_RAID_LOCKOUT_ADDED = 0x26C2, + SMSG_CALENDAR_RAID_LOCKOUT_REMOVED = 0x26C3, + SMSG_CALENDAR_RAID_LOCKOUT_UPDATED = 0x26C4, + SMSG_CALENDAR_SEND_CALENDAR = 0x26B4, + SMSG_CALENDAR_SEND_EVENT = 0x26B5, + SMSG_CALENDAR_SEND_NUM_PENDING = 0x26C5, + SMSG_CAMERA_EFFECT = 0x2767, + SMSG_CANCEL_AUTO_REPEAT = 0x2712, + SMSG_CANCEL_COMBAT = 0x2731, + SMSG_CANCEL_ORPHAN_SPELL_VISUAL = 0x2C46, + SMSG_CANCEL_SCENE = 0x2654, + SMSG_CANCEL_SPELL_VISUAL = 0x2C44, + SMSG_CANCEL_SPELL_VISUAL_KIT = 0x2C48, + SMSG_CAN_DUEL_RESULT = 0x2676, + SMSG_CAST_FAILED = 0x2C56, SMSG_CATEGORY_COOLDOWN = 0x2C16, SMSG_CHALLENGE_MODE_ALL_MAP_STATS = 0x2622, SMSG_CHALLENGE_MODE_COMPLETE = 0x2620, @@ -927,24 +929,25 @@ enum OpcodeServer : uint16 SMSG_CHALLENGE_MODE_REWARDS = 0x2621, SMSG_CHALLENGE_MODE_START = 0x261D, SMSG_CHALLENGE_MODE_UPDATE_DEATH_COUNT = 0x261E, - SMSG_CHANGE_PLAYER_DIFFICULTY_RESULT = 0x2736, + SMSG_CHANGE_PLAYER_DIFFICULTY_RESULT = 0x2735, SMSG_CHANNEL_LIST = 0x2BC3, SMSG_CHANNEL_NOTIFY = 0x2BC0, SMSG_CHANNEL_NOTIFY_JOINED = 0x2BC1, SMSG_CHANNEL_NOTIFY_LEFT = 0x2BC2, - SMSG_CHARACTER_CLASS_TRIAL_CREATE = 0x2805, + SMSG_CHARACTER_CLASS_TRIAL_CREATE = 0x2804, + SMSG_CHARACTER_INVENTORY_OVERFLOW_WARNING = 0x2863, SMSG_CHARACTER_ITEM_FIXUP = 0x2854, - SMSG_CHARACTER_LOGIN_FAILED = 0x2745, - SMSG_CHARACTER_OBJECT_TEST_RESPONSE = 0x27CD, - SMSG_CHARACTER_RENAME_RESULT = 0x27A6, - SMSG_CHARACTER_UPGRADE_COMPLETE = 0x2804, - SMSG_CHARACTER_UPGRADE_QUEUED = 0x2803, + SMSG_CHARACTER_LOGIN_FAILED = 0x2744, + SMSG_CHARACTER_OBJECT_TEST_RESPONSE = 0x27CC, + SMSG_CHARACTER_RENAME_RESULT = 0x27A5, + SMSG_CHARACTER_UPGRADE_COMPLETE = 0x2803, + SMSG_CHARACTER_UPGRADE_QUEUED = 0x2802, SMSG_CHARACTER_UPGRADE_SPELL_TIER_SET = 0x25F4, - SMSG_CHARACTER_UPGRADE_STARTED = 0x2802, - SMSG_CHARACTER_UPGRADE_UNREVOKE_RESULT = 0x2806, - SMSG_CHAR_CUSTOMIZE = 0x271A, - SMSG_CHAR_CUSTOMIZE_FAILED = 0x2719, - SMSG_CHAR_FACTION_CHANGE_RESULT = 0x27EF, + SMSG_CHARACTER_UPGRADE_STARTED = 0x2801, + SMSG_CHARACTER_UPGRADE_UNREVOKE_RESULT = 0x2805, + SMSG_CHAR_CUSTOMIZE = 0x2719, + SMSG_CHAR_CUSTOMIZE_FAILED = 0x2718, + SMSG_CHAR_FACTION_CHANGE_RESULT = 0x27EE, SMSG_CHAT = 0x2BAD, SMSG_CHAT_AUTO_RESPONDED = 0x2BB8, SMSG_CHAT_DOWN = 0x2BBD, @@ -960,97 +963,97 @@ enum OpcodeServer : uint16 SMSG_CHECK_WARGAME_ENTRY = 0x259E, SMSG_CLEAR_ALL_SPELL_CHARGES = 0x2C27, SMSG_CLEAR_BOSS_EMOTES = 0x25CD, - SMSG_CLEAR_COOLDOWN = 0x26E5, + SMSG_CLEAR_COOLDOWN = 0x26E4, SMSG_CLEAR_COOLDOWNS = 0x2C26, - SMSG_CLEAR_LOSS_OF_CONTROL = 0x2699, + SMSG_CLEAR_LOSS_OF_CONTROL = 0x2698, SMSG_CLEAR_SPELL_CHARGES = 0x2C28, - SMSG_CLEAR_TARGET = 0x26DC, + SMSG_CLEAR_TARGET = 0x26DB, SMSG_COIN_REMOVED = 0x262B, - SMSG_COMBAT_EVENT_FAILED = 0x2670, - SMSG_COMMENTATOR_MAP_INFO = 0x2747, - SMSG_COMMENTATOR_PLAYER_INFO = 0x2748, - SMSG_COMMENTATOR_STATE_CHANGED = 0x2746, - SMSG_COMPLAINT_RESULT = 0x26D4, - SMSG_COMPLETE_SHIPMENT_RESPONSE = 0x27DF, + SMSG_COMBAT_EVENT_FAILED = 0x266F, + SMSG_COMMENTATOR_MAP_INFO = 0x2746, + SMSG_COMMENTATOR_PLAYER_INFO = 0x2747, + SMSG_COMMENTATOR_STATE_CHANGED = 0x2745, + SMSG_COMPLAINT_RESULT = 0x26D3, + SMSG_COMPLETE_SHIPMENT_RESPONSE = 0x27DE, SMSG_CONNECT_TO = 0x304D, - SMSG_CONQUEST_FORMULA_CONSTANTS = 0x27C8, - SMSG_CONSOLE_WRITE = 0x2652, + SMSG_CONQUEST_FORMULA_CONSTANTS = 0x27C7, + SMSG_CONSOLE_WRITE = 0x2651, SMSG_CONSUMPTION_CONVERSION_INFO_RESPONSE = 0x2849, SMSG_CONSUMPTION_CONVERSION_RESULT = 0x284A, - SMSG_CONTACT_LIST = 0x27CB, - SMSG_CONTROL_UPDATE = 0x2665, - SMSG_COOLDOWN_CHEAT = 0x277C, - SMSG_COOLDOWN_EVENT = 0x26E4, - SMSG_CORPSE_LOCATION = 0x266C, - SMSG_CORPSE_RECLAIM_DELAY = 0x278F, - SMSG_CORPSE_TRANSPORT_QUERY = 0x2752, - SMSG_CREATE_CHAR = 0x273F, - SMSG_CREATE_SHIPMENT_RESPONSE = 0x27DE, - SMSG_CRITERIA_DELETED = 0x271E, - SMSG_CRITERIA_UPDATE = 0x2718, - SMSG_CROSSED_INEBRIATION_THRESHOLD = 0x26ED, + SMSG_CONTACT_LIST = 0x27CA, + SMSG_CONTROL_UPDATE = 0x2664, + SMSG_COOLDOWN_CHEAT = 0x277B, + SMSG_COOLDOWN_EVENT = 0x26E3, + SMSG_CORPSE_LOCATION = 0x266B, + SMSG_CORPSE_RECLAIM_DELAY = 0x278E, + SMSG_CORPSE_TRANSPORT_QUERY = 0x2751, + SMSG_CREATE_CHAR = 0x273E, + SMSG_CREATE_SHIPMENT_RESPONSE = 0x27DD, + SMSG_CRITERIA_DELETED = 0x271D, + SMSG_CRITERIA_UPDATE = 0x2717, + SMSG_CROSSED_INEBRIATION_THRESHOLD = 0x26EC, SMSG_CUSTOM_LOAD_SCREEN = 0x25E3, SMSG_DAILY_QUESTS_RESET = 0x2A80, - SMSG_DAMAGE_CALC_LOG = 0x280D, + SMSG_DAMAGE_CALC_LOG = 0x280C, SMSG_DB_REPLY = 0x25A0, - SMSG_DEATH_RELEASE_LOC = 0x2706, + SMSG_DEATH_RELEASE_LOC = 0x2705, SMSG_DEFENSE_MESSAGE = 0x2BB6, - SMSG_DELETE_CHAR = 0x2740, - SMSG_DESTROY_ARENA_UNIT = 0x2785, - SMSG_DESTRUCTIBLE_BUILDING_DAMAGE = 0x2733, + SMSG_DELETE_CHAR = 0x273F, + SMSG_DESTROY_ARENA_UNIT = 0x2784, + SMSG_DESTRUCTIBLE_BUILDING_DAMAGE = 0x2732, SMSG_DIFFERENT_INSTANCE_FROM_PARTY = 0x258A, SMSG_DISENCHANT_CREDIT = 0x25BC, - SMSG_DISMOUNT = 0x26DB, + SMSG_DISMOUNT = 0x26DA, SMSG_DISMOUNT_RESULT = 0x257B, SMSG_DISPEL_FAILED = 0x2C30, SMSG_DISPLAY_GAME_ERROR = 0x25B5, - SMSG_DISPLAY_PLAYER_CHOICE = 0x26A2, - SMSG_DISPLAY_PROMOTION = 0x2669, + SMSG_DISPLAY_PLAYER_CHOICE = 0x26A1, + SMSG_DISPLAY_PROMOTION = 0x2668, SMSG_DISPLAY_QUEST_POPUP = 0x2A9D, - SMSG_DISPLAY_TOAST = 0x2639, + SMSG_DISPLAY_TOAST = 0x2638, SMSG_DONT_AUTO_PUSH_SPELLS_TO_ACTION_BAR = 0x25F6, SMSG_DROP_NEW_CONNECTION = 0x304C, - SMSG_DUEL_COMPLETE = 0x2675, - SMSG_DUEL_COUNTDOWN = 0x2674, - SMSG_DUEL_IN_BOUNDS = 0x2673, - SMSG_DUEL_OUT_OF_BOUNDS = 0x2672, - SMSG_DUEL_REQUESTED = 0x2671, - SMSG_DUEL_WINNER = 0x2676, - SMSG_DURABILITY_DAMAGE_DEATH = 0x278B, - SMSG_EMOTE = 0x280E, - SMSG_ENABLE_BARBER_SHOP = 0x26E8, + SMSG_DUEL_COMPLETE = 0x2674, + SMSG_DUEL_COUNTDOWN = 0x2673, + SMSG_DUEL_IN_BOUNDS = 0x2672, + SMSG_DUEL_OUT_OF_BOUNDS = 0x2671, + SMSG_DUEL_REQUESTED = 0x2670, + SMSG_DUEL_WINNER = 0x2675, + SMSG_DURABILITY_DAMAGE_DEATH = 0x278A, + SMSG_EMOTE = 0x280D, + SMSG_ENABLE_BARBER_SHOP = 0x26E7, SMSG_ENABLE_ENCRYPTION = 0x3049, - SMSG_ENCHANTMENT_LOG = 0x2753, - SMSG_ENCOUNTER_END = 0x27C0, - SMSG_ENCOUNTER_START = 0x27BF, + SMSG_ENCHANTMENT_LOG = 0x2752, + SMSG_ENCOUNTER_END = 0x27BF, + SMSG_ENCOUNTER_START = 0x27BE, SMSG_ENUM_CHARACTERS_RESULT = 0x2582, SMSG_ENVIRONMENTAL_DAMAGE_LOG = 0x2C21, - SMSG_EQUIPMENT_SET_ID = 0x26DD, + SMSG_EQUIPMENT_SET_ID = 0x26DC, SMSG_EXPECTED_SPAM_RECORDS = 0x2BB1, - SMSG_EXPLORATION_EXPERIENCE = 0x27A3, - SMSG_FACTION_BONUS_INFO = 0x2767, + SMSG_EXPLORATION_EXPERIENCE = 0x27A2, + SMSG_FACTION_BONUS_INFO = 0x2766, SMSG_FAILED_PLAYER_CONDITION = 0x25E2, SMSG_FEATURE_SYSTEM_STATUS = 0x25D1, SMSG_FEATURE_SYSTEM_STATUS_GLUE_SCREEN = 0x25D2, - SMSG_FEIGN_DEATH_RESISTED = 0x2788, - SMSG_FISH_ESCAPED = 0x26FA, - SMSG_FISH_NOT_HOOKED = 0x26F9, + SMSG_FEIGN_DEATH_RESISTED = 0x2787, + SMSG_FISH_ESCAPED = 0x26F9, + SMSG_FISH_NOT_HOOKED = 0x26F8, SMSG_FLIGHT_SPLINE_SYNC = 0x2DF7, - SMSG_FORCED_DEATH_UPDATE = 0x2707, - SMSG_FORCE_ANIM = 0x2795, - SMSG_FORCE_OBJECT_RELINK = 0x2668, - SMSG_FRIEND_STATUS = 0x27CC, + SMSG_FORCED_DEATH_UPDATE = 0x2706, + SMSG_FORCE_ANIM = 0x2794, + SMSG_FORCE_OBJECT_RELINK = 0x2667, + SMSG_FRIEND_STATUS = 0x27CB, SMSG_GAME_OBJECT_ACTIVATE_ANIM_KIT = 0x25D6, SMSG_GAME_OBJECT_CUSTOM_ANIM = 0x25D7, SMSG_GAME_OBJECT_DESPAWN = 0x25D8, - SMSG_GAME_OBJECT_PLAY_SPELL_VISUAL = 0x2C4A, - SMSG_GAME_OBJECT_PLAY_SPELL_VISUAL_KIT = 0x2C49, - SMSG_GAME_OBJECT_RESET_STATE = 0x275E, + SMSG_GAME_OBJECT_PLAY_SPELL_VISUAL = 0x2C4B, + SMSG_GAME_OBJECT_PLAY_SPELL_VISUAL_KIT = 0x2C4A, + SMSG_GAME_OBJECT_RESET_STATE = 0x275D, SMSG_GAME_OBJECT_SET_STATE = 0x2841, - SMSG_GAME_OBJECT_UI_ACTION = 0x275B, - SMSG_GAME_SPEED_SET = 0x26AB, - SMSG_GAME_TIME_SET = 0x274C, - SMSG_GAME_TIME_UPDATE = 0x274B, + SMSG_GAME_OBJECT_UI_ACTION = 0x275A, + SMSG_GAME_SPEED_SET = 0x26AA, + SMSG_GAME_TIME_SET = 0x274B, + SMSG_GAME_TIME_UPDATE = 0x274A, SMSG_GARRISON_ADD_FOLLOWER_RESULT = 0x2902, SMSG_GARRISON_ADD_MISSION_RESULT = 0x2906, SMSG_GARRISON_ASSIGN_FOLLOWER_TO_BUILDING_RESULT = 0x2918, @@ -1068,7 +1071,7 @@ enum OpcodeServer : uint16 SMSG_GARRISON_FOLLOWER_CHANGED_STATUS = 0x2915, SMSG_GARRISON_FOLLOWER_CHANGED_XP = 0x2912, SMSG_GARRISON_IS_UPGRADEABLE_RESULT = 0x2929, - SMSG_GARRISON_LANDING_PAGE_SHIPMENT_INFO = 0x27E1, + SMSG_GARRISON_LANDING_PAGE_SHIPMENT_INFO = 0x27E0, SMSG_GARRISON_LEARN_BLUEPRINT_RESULT = 0x28F7, SMSG_GARRISON_LEARN_SPECIALIZATION_RESULT = 0x28F5, SMSG_GARRISON_LIST_FOLLOWERS_CHEAT_RESULT = 0x2905, @@ -1098,26 +1101,26 @@ enum OpcodeServer : uint16 SMSG_GARRISON_UNLEARN_BLUEPRINT_RESULT = 0x28F8, SMSG_GARRISON_UPGRADE_RESULT = 0x28FD, SMSG_GENERATE_RANDOM_CHARACTER_NAME_RESULT = 0x2583, - SMSG_GET_ACCOUNT_CHARACTER_LIST_RESULT = 0x27A4, + SMSG_GET_ACCOUNT_CHARACTER_LIST_RESULT = 0x27A3, SMSG_GET_DISPLAYED_TROPHY_LIST_RESPONSE = 0x2928, SMSG_GET_GARRISON_INFO_RESULT = 0x28F0, - SMSG_GET_SHIPMENTS_OF_TYPE_RESPONSE = 0x27E0, - SMSG_GET_SHIPMENT_INFO_RESPONSE = 0x27DC, - SMSG_GET_TROPHY_LIST_RESPONSE = 0x2809, - SMSG_GM_PLAYER_INFO = 0x277B, + SMSG_GET_SHIPMENTS_OF_TYPE_RESPONSE = 0x27DF, + SMSG_GET_SHIPMENT_INFO_RESPONSE = 0x27DB, + SMSG_GET_TROPHY_LIST_RESPONSE = 0x2808, + SMSG_GM_PLAYER_INFO = 0x277A, SMSG_GM_REQUEST_PLAYER_INFO = 0x25ED, - SMSG_GM_TICKET_CASE_STATUS = 0x26CD, - SMSG_GM_TICKET_SYSTEM_STATUS = 0x26CC, - SMSG_GOD_MODE = 0x2739, + SMSG_GM_TICKET_CASE_STATUS = 0x26CC, + SMSG_GM_TICKET_SYSTEM_STATUS = 0x26CB, + SMSG_GOD_MODE = 0x2738, SMSG_GOSSIP_COMPLETE = 0x2A96, SMSG_GOSSIP_MESSAGE = 0x2A97, - SMSG_GOSSIP_POI = 0x27D9, + SMSG_GOSSIP_POI = 0x27D8, SMSG_GROUP_ACTION_THROTTLED = 0x259C, - SMSG_GROUP_DECLINE = 0x27D4, - SMSG_GROUP_DESTROYED = 0x27D6, + SMSG_GROUP_DECLINE = 0x27D3, + SMSG_GROUP_DESTROYED = 0x27D5, SMSG_GROUP_INVITE_CONFIRMATION = 0x2855, - SMSG_GROUP_NEW_LEADER = 0x264A, - SMSG_GROUP_UNINVITE = 0x27D5, + SMSG_GROUP_NEW_LEADER = 0x2649, + SMSG_GROUP_UNINVITE = 0x27D4, SMSG_GUILD_ACHIEVEMENT_DELETED = 0x29C5, SMSG_GUILD_ACHIEVEMENT_EARNED = 0x29C4, SMSG_GUILD_ACHIEVEMENT_MEMBERS = 0x29C7, @@ -1170,55 +1173,55 @@ enum OpcodeServer : uint16 SMSG_GUILD_ROSTER = 0x29BB, SMSG_GUILD_ROSTER_UPDATE = 0x29BC, SMSG_GUILD_SEND_RANK_CHANGE = 0x29B9, - SMSG_HEALTH_UPDATE = 0x26FD, - SMSG_HIGHEST_THREAT_UPDATE = 0x270D, + SMSG_HEALTH_UPDATE = 0x26FC, + SMSG_HIGHEST_THREAT_UPDATE = 0x270C, SMSG_HOTFIX_MESSAGE = 0x25A2, SMSG_HOTFIX_RESPONSE = 0x25A3, - SMSG_INITIALIZE_FACTIONS = 0x2766, + SMSG_INITIALIZE_FACTIONS = 0x2765, SMSG_INITIAL_SETUP = 0x257F, - SMSG_INIT_WORLD_STATES = 0x278C, + SMSG_INIT_WORLD_STATES = 0x278B, SMSG_INSPECT_HONOR_STATS = 0x25B2, - SMSG_INSPECT_PVP = 0x2762, - SMSG_INSPECT_RESULT = 0x264E, - SMSG_INSTANCE_ENCOUNTER_CHANGE_PRIORITY = 0x27F5, - SMSG_INSTANCE_ENCOUNTER_DISENGAGE_UNIT = 0x27F4, - SMSG_INSTANCE_ENCOUNTER_END = 0x27FD, - SMSG_INSTANCE_ENCOUNTER_ENGAGE_UNIT = 0x27F3, - SMSG_INSTANCE_ENCOUNTER_GAIN_COMBAT_RESURRECTION_CHARGE = 0x27FF, - SMSG_INSTANCE_ENCOUNTER_IN_COMBAT_RESURRECTION = 0x27FE, - SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_COMPLETE = 0x27F8, - SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_START = 0x27F7, - SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_UPDATE = 0x27FC, - SMSG_INSTANCE_ENCOUNTER_PHASE_SHIFT_CHANGED = 0x2800, - SMSG_INSTANCE_ENCOUNTER_SET_ALLOWING_RELEASE = 0x27FB, - SMSG_INSTANCE_ENCOUNTER_SET_SUPPRESSING_RELEASE = 0x27FA, - SMSG_INSTANCE_ENCOUNTER_START = 0x27F9, - SMSG_INSTANCE_ENCOUNTER_TIMER_START = 0x27F6, - SMSG_INSTANCE_GROUP_SIZE_CHANGED = 0x2737, - SMSG_INSTANCE_INFO = 0x2651, - SMSG_INSTANCE_RESET = 0x26B0, - SMSG_INSTANCE_RESET_FAILED = 0x26B1, - SMSG_INSTANCE_SAVE_CREATED = 0x27BE, - SMSG_INVALIDATE_PAGE_TEXT = 0x2702, - SMSG_INVALIDATE_PLAYER = 0x26D3, - SMSG_INVALID_PROMOTION_CODE = 0x2796, - SMSG_INVENTORY_CHANGE_FAILURE = 0x2764, + SMSG_INSPECT_PVP = 0x2761, + SMSG_INSPECT_RESULT = 0x264D, + SMSG_INSTANCE_ENCOUNTER_CHANGE_PRIORITY = 0x27F4, + SMSG_INSTANCE_ENCOUNTER_DISENGAGE_UNIT = 0x27F3, + SMSG_INSTANCE_ENCOUNTER_END = 0x27FC, + SMSG_INSTANCE_ENCOUNTER_ENGAGE_UNIT = 0x27F2, + SMSG_INSTANCE_ENCOUNTER_GAIN_COMBAT_RESURRECTION_CHARGE = 0x27FE, + SMSG_INSTANCE_ENCOUNTER_IN_COMBAT_RESURRECTION = 0x27FD, + SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_COMPLETE = 0x27F7, + SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_START = 0x27F6, + SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_UPDATE = 0x27FB, + SMSG_INSTANCE_ENCOUNTER_PHASE_SHIFT_CHANGED = 0x27FF, + SMSG_INSTANCE_ENCOUNTER_SET_ALLOWING_RELEASE = 0x27FA, + SMSG_INSTANCE_ENCOUNTER_SET_SUPPRESSING_RELEASE = 0x27F9, + SMSG_INSTANCE_ENCOUNTER_START = 0x27F8, + SMSG_INSTANCE_ENCOUNTER_TIMER_START = 0x27F5, + SMSG_INSTANCE_GROUP_SIZE_CHANGED = 0x2736, + SMSG_INSTANCE_INFO = 0x2650, + SMSG_INSTANCE_RESET = 0x26AF, + SMSG_INSTANCE_RESET_FAILED = 0x26B0, + SMSG_INSTANCE_SAVE_CREATED = 0x27BD, + SMSG_INVALIDATE_PAGE_TEXT = 0x2701, + SMSG_INVALIDATE_PLAYER = 0x26D2, + SMSG_INVALID_PROMOTION_CODE = 0x2795, + SMSG_INVENTORY_CHANGE_FAILURE = 0x2763, SMSG_IS_QUEST_COMPLETE_RESPONSE = 0x2A83, - SMSG_ITEM_CHANGED = 0x2721, - SMSG_ITEM_COOLDOWN = 0x280C, - SMSG_ITEM_ENCHANT_TIME_UPDATE = 0x2798, + SMSG_ITEM_CHANGED = 0x2720, + SMSG_ITEM_COOLDOWN = 0x280B, + SMSG_ITEM_ENCHANT_TIME_UPDATE = 0x2797, SMSG_ITEM_EXPIRE_PURCHASE_REFUND = 0x25B1, SMSG_ITEM_PURCHASE_REFUND_RESULT = 0x25AF, - SMSG_ITEM_PUSH_RESULT = 0x2638, - SMSG_ITEM_TIME_UPDATE = 0x2797, - SMSG_KICK_REASON = 0x2830, - SMSG_LEARNED_SPELLS = 0x2C4C, + SMSG_ITEM_PUSH_RESULT = 0x2637, + SMSG_ITEM_TIME_UPDATE = 0x2796, + SMSG_KICK_REASON = 0x282F, + SMSG_LEARNED_SPELLS = 0x2C4D, SMSG_LEARN_PVP_TALENTS_FAILED = 0x25EA, SMSG_LEARN_TALENTS_FAILED = 0x25E9, SMSG_LEVEL_UPDATE = 0x2587, - SMSG_LEVEL_UP_INFO = 0x2720, - SMSG_LFG_BOOT_PLAYER = 0x2A36, - SMSG_LFG_DISABLED = 0x2A34, + SMSG_LEVEL_UP_INFO = 0x271F, + SMSG_LFG_BOOT_PLAYER = 0x2A35, + SMSG_LFG_DISABLED = 0x2A33, SMSG_LFG_INSTANCE_SHUTDOWN_COUNTDOWN = 0x2A25, SMSG_LFG_JOIN_RESULT = 0x2A1C, SMSG_LFG_LIST_JOIN_RESULT = 0x2A1D, @@ -1226,17 +1229,17 @@ enum OpcodeServer : uint16 SMSG_LFG_LIST_SEARCH_STATUS = 0x2A1F, SMSG_LFG_LIST_UPDATE_BLACKLIST = 0x2A2A, SMSG_LFG_LIST_UPDATE_STATUS = 0x2A26, - SMSG_LFG_OFFER_CONTINUE = 0x2A35, - SMSG_LFG_PARTY_INFO = 0x2A37, - SMSG_LFG_PLAYER_INFO = 0x2A38, - SMSG_LFG_PLAYER_REWARD = 0x2A39, + SMSG_LFG_OFFER_CONTINUE = 0x2A34, + SMSG_LFG_PARTY_INFO = 0x2A36, + SMSG_LFG_PLAYER_INFO = 0x2A37, + SMSG_LFG_PLAYER_REWARD = 0x2A38, SMSG_LFG_PROPOSAL_UPDATE = 0x2A2D, SMSG_LFG_QUEUE_STATUS = 0x2A20, - SMSG_LFG_READY_CHECK_RESULT = 0x2A3B, + SMSG_LFG_READY_CHECK_RESULT = 0x2A3A, SMSG_LFG_READY_CHECK_UPDATE = 0x2A22, SMSG_LFG_ROLE_CHECK_UPDATE = 0x2A21, SMSG_LFG_SLOT_INVALID = 0x2A30, - SMSG_LFG_TELEPORT_DENIED = 0x2A33, + SMSG_LFG_TELEPORT_DENIED = 0x2A32, SMSG_LFG_UPDATE_STATUS = 0x2A24, SMSG_LF_GUILD_APPLICANT_LIST_CHANGED = 0x29D5, SMSG_LF_GUILD_APPLICATIONS = 0x29D1, @@ -1245,45 +1248,44 @@ enum OpcodeServer : uint16 SMSG_LF_GUILD_COMMAND_RESULT = 0x29D0, SMSG_LF_GUILD_POST = 0x29CD, SMSG_LF_GUILD_RECRUITS = 0x29CF, - SMSG_LIVE_REGION_ACCOUNT_RESTORE_RESULT = 0x27B2, - SMSG_LIVE_REGION_CHARACTER_COPY_RESULT = 0x27B0, - SMSG_LIVE_REGION_GET_ACCOUNT_CHARACTER_LIST_RESULT = 0x27A5, + SMSG_LIVE_REGION_ACCOUNT_RESTORE_RESULT = 0x27B1, + SMSG_LIVE_REGION_CHARACTER_COPY_RESULT = 0x27AF, + SMSG_LIVE_REGION_GET_ACCOUNT_CHARACTER_LIST_RESULT = 0x27A4, SMSG_LOAD_CUF_PROFILES = 0x25CE, - SMSG_LOAD_EQUIPMENT_SET = 0x274E, - SMSG_LOAD_SELECTED_TROPHY_RESULT = 0x280A, - SMSG_LOGIN_SET_TIME_SPEED = 0x274D, + SMSG_LOAD_EQUIPMENT_SET = 0x274D, + SMSG_LOAD_SELECTED_TROPHY_RESULT = 0x2809, + SMSG_LOGIN_SET_TIME_SPEED = 0x274C, SMSG_LOGIN_VERIFY_WORLD = 0x25AC, - SMSG_LOGOUT_CANCEL_ACK = 0x26AF, - SMSG_LOGOUT_COMPLETE = 0x26AE, - SMSG_LOGOUT_RESPONSE = 0x26AD, - SMSG_LOG_XP_GAIN = 0x271C, - SMSG_LOOT_ALL_PASSED = 0x2636, - SMSG_LOOT_ITEM_LIST = 0x2634, - SMSG_LOOT_LIST = 0x2784, + SMSG_LOGOUT_CANCEL_ACK = 0x26AE, + SMSG_LOGOUT_COMPLETE = 0x26AD, + SMSG_LOGOUT_RESPONSE = 0x26AC, + SMSG_LOG_XP_GAIN = 0x271B, + SMSG_LOOT_ALL_PASSED = 0x2635, + SMSG_LOOT_LIST = 0x2783, SMSG_LOOT_MONEY_NOTIFY = 0x2630, SMSG_LOOT_RELEASE = 0x262F, SMSG_LOOT_RELEASE_ALL = 0x262E, SMSG_LOOT_REMOVED = 0x2629, SMSG_LOOT_RESPONSE = 0x2628, SMSG_LOOT_ROLL = 0x2632, - SMSG_LOOT_ROLLS_COMPLETE = 0x2635, - SMSG_LOOT_ROLL_WON = 0x2637, - SMSG_LOSS_OF_CONTROL_AURA_UPDATE = 0x2696, - SMSG_MAIL_COMMAND_RESULT = 0x2659, - SMSG_MAIL_LIST_RESULT = 0x2799, - SMSG_MAIL_QUERY_NEXT_TIME_RESULT = 0x279A, - SMSG_MAP_OBJECTIVES_INIT = 0x27A2, + SMSG_LOOT_ROLLS_COMPLETE = 0x2634, + SMSG_LOOT_ROLL_WON = 0x2636, + SMSG_LOSS_OF_CONTROL_AURA_UPDATE = 0x2695, + SMSG_MAIL_COMMAND_RESULT = 0x2658, + SMSG_MAIL_LIST_RESULT = 0x2798, + SMSG_MAIL_QUERY_NEXT_TIME_RESULT = 0x2799, + SMSG_MAP_OBJECTIVES_INIT = 0x27A1, SMSG_MAP_OBJ_EVENTS = 0x25D9, SMSG_MASTER_LOOT_CANDIDATE_LIST = 0x2633, SMSG_MESSAGE_BOX = 0x2575, - SMSG_MINIMAP_PING = 0x26F8, + SMSG_MINIMAP_PING = 0x26F7, SMSG_MIRROR_IMAGE_COMPONENTED_DATA = 0x2C14, SMSG_MIRROR_IMAGE_CREATURE_DATA = 0x2C13, SMSG_MISSILE_CANCEL = 0x25DA, - SMSG_MODIFY_CHARGE_RECOVERY_SPEED = 0x27A9, - SMSG_MODIFY_COOLDOWN = 0x27A7, - SMSG_MODIFY_COOLDOWN_RECOVERY_SPEED = 0x27A8, - SMSG_MODIFY_PARTY_RANGE = 0x2787, + SMSG_MODIFY_CHARGE_RECOVERY_SPEED = 0x27A8, + SMSG_MODIFY_COOLDOWN = 0x27A6, + SMSG_MODIFY_COOLDOWN_RECOVERY_SPEED = 0x27A7, + SMSG_MODIFY_PARTY_RANGE = 0x2786, SMSG_MOTD = 0x2BAF, SMSG_MOUNT_RESULT = 0x257A, SMSG_MOVE_APPLY_MOVEMENT_FORCE = 0x2DE1, @@ -1369,40 +1371,41 @@ enum OpcodeServer : uint16 SMSG_MOVE_UPDATE_TURN_RATE = 0x2DAB, SMSG_MOVE_UPDATE_WALK_SPEED = 0x2DA6, SMSG_NEUTRAL_PLAYER_FACTION_SELECT_RESULT = 0x25F1, - SMSG_NEW_TAXI_PATH = 0x26A8, + SMSG_NEW_TAXI_PATH = 0x26A7, SMSG_NEW_WORLD = 0x25AB, - SMSG_NOTIFY_DEST_LOC_SPELL_CAST = 0x2C42, - SMSG_NOTIFY_MISSILE_TRAJECTORY_COLLISION = 0x26D2, + SMSG_NOTIFY_DEST_LOC_SPELL_CAST = 0x2C43, + SMSG_NOTIFY_MISSILE_TRAJECTORY_COLLISION = 0x26D1, SMSG_NOTIFY_MONEY = 0x25AE, - SMSG_NOTIFY_RECEIVED_MAIL = 0x265A, - SMSG_OFFER_PETITION_ERROR = 0x26E1, - SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA = 0x271D, + SMSG_NOTIFY_RECEIVED_MAIL = 0x2659, + SMSG_OFFER_PETITION_ERROR = 0x26E0, + SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA = 0x271C, SMSG_ON_MONSTER_MOVE = 0x2DA2, - SMSG_OPEN_CONTAINER = 0x2765, - SMSG_OPEN_LFG_DUNGEON_FINDER = 0x2A32, - SMSG_OPEN_SHIPMENT_NPC_FROM_GOSSIP = 0x27DB, - SMSG_OPEN_SHIPMENT_NPC_RESULT = 0x27DD, - SMSG_OPEN_TRANSMOGRIFIER = 0x2837, - SMSG_OVERRIDE_LIGHT = 0x26E7, - SMSG_PAGE_TEXT = 0x275A, - SMSG_PARTY_COMMAND_RESULT = 0x27D8, + SMSG_OPEN_ALLIED_RACE_DETAILS_GIVER = 0x2837, + SMSG_OPEN_CONTAINER = 0x2764, + SMSG_OPEN_LFG_DUNGEON_FINDER = 0x2A31, + SMSG_OPEN_SHIPMENT_NPC_FROM_GOSSIP = 0x27DA, + SMSG_OPEN_SHIPMENT_NPC_RESULT = 0x27DC, + SMSG_OPEN_TRANSMOGRIFIER = 0x2836, + SMSG_OVERRIDE_LIGHT = 0x26E6, + SMSG_PAGE_TEXT = 0x2759, + SMSG_PARTY_COMMAND_RESULT = 0x27D7, SMSG_PARTY_INVITE = 0x25CF, - SMSG_PARTY_KILL_LOG = 0x279E, - SMSG_PARTY_MEMBER_STATE = 0x279C, - SMSG_PARTY_MEMBER_STATE_UPDATE = 0x279B, + SMSG_PARTY_KILL_LOG = 0x279D, + SMSG_PARTY_MEMBER_STATE = 0x279B, + SMSG_PARTY_MEMBER_STATE_UPDATE = 0x279A, SMSG_PARTY_UPDATE = 0x260B, - SMSG_PAUSE_MIRROR_TIMER = 0x2750, - SMSG_PENDING_RAID_LOCK = 0x2731, + SMSG_PAUSE_MIRROR_TIMER = 0x274F, + SMSG_PENDING_RAID_LOCK = 0x2730, SMSG_PETITION_ALREADY_SIGNED = 0x25B8, SMSG_PETITION_RENAME_GUILD_RESPONSE = 0x29F7, - SMSG_PETITION_SHOW_LIST = 0x26EA, - SMSG_PETITION_SHOW_SIGNATURES = 0x26EB, - SMSG_PETITION_SIGN_RESULTS = 0x2790, - SMSG_PET_ACTION_FEEDBACK = 0x278E, - SMSG_PET_ACTION_SOUND = 0x26CA, + SMSG_PETITION_SHOW_LIST = 0x26E9, + SMSG_PETITION_SHOW_SIGNATURES = 0x26EA, + SMSG_PETITION_SIGN_RESULTS = 0x278F, + SMSG_PET_ACTION_FEEDBACK = 0x278D, + SMSG_PET_ACTION_SOUND = 0x26C9, SMSG_PET_ADDED = 0x25A8, SMSG_PET_BATTLE_CHAT_RESTRICTED = 0x2618, - SMSG_PET_BATTLE_DEBUG_QUEUE_DUMP_RESPONSE = 0x269D, + SMSG_PET_BATTLE_DEBUG_QUEUE_DUMP_RESPONSE = 0x269C, SMSG_PET_BATTLE_FINALIZE_LOCATION = 0x2611, SMSG_PET_BATTLE_FINAL_ROUND = 0x2616, SMSG_PET_BATTLE_FINISHED = 0x2617, @@ -1410,68 +1413,68 @@ enum OpcodeServer : uint16 SMSG_PET_BATTLE_INITIAL_UPDATE = 0x2612, SMSG_PET_BATTLE_MAX_GAME_LENGTH_WARNING = 0x2619, SMSG_PET_BATTLE_PVP_CHALLENGE = 0x2610, - SMSG_PET_BATTLE_QUEUE_PROPOSE_MATCH = 0x2657, - SMSG_PET_BATTLE_QUEUE_STATUS = 0x2658, + SMSG_PET_BATTLE_QUEUE_PROPOSE_MATCH = 0x2656, + SMSG_PET_BATTLE_QUEUE_STATUS = 0x2657, SMSG_PET_BATTLE_REPLACEMENTS_MADE = 0x2615, SMSG_PET_BATTLE_REQUEST_FAILED = 0x260F, SMSG_PET_BATTLE_ROUND_RESULT = 0x2614, SMSG_PET_BATTLE_SLOT_UPDATES = 0x2602, - SMSG_PET_CAST_FAILED = 0x2C56, + SMSG_PET_CAST_FAILED = 0x2C57, SMSG_PET_CLEAR_SPELLS = 0x2C24, - SMSG_PET_DISMISS_SOUND = 0x26CB, - SMSG_PET_GOD_MODE = 0x26A5, - SMSG_PET_GUIDS = 0x2742, - SMSG_PET_LEARNED_SPELLS = 0x2C4E, + SMSG_PET_DISMISS_SOUND = 0x26CA, + SMSG_PET_GOD_MODE = 0x26A4, + SMSG_PET_GUIDS = 0x2741, + SMSG_PET_LEARNED_SPELLS = 0x2C4F, SMSG_PET_MODE = 0x2589, - SMSG_PET_NAME_INVALID = 0x26EF, + SMSG_PET_NAME_INVALID = 0x26EE, SMSG_PET_SLOT_UPDATED = 0x2588, SMSG_PET_SPELLS_MESSAGE = 0x2C25, SMSG_PET_STABLE_LIST = 0x25A9, SMSG_PET_STABLE_RESULT = 0x25AA, - SMSG_PET_TAME_FAILURE = 0x26DE, - SMSG_PET_UNLEARNED_SPELLS = 0x2C4F, + SMSG_PET_TAME_FAILURE = 0x26DD, + SMSG_PET_UNLEARNED_SPELLS = 0x2C50, SMSG_PHASE_SHIFT_CHANGE = 0x2577, - SMSG_PLAYED_TIME = 0x2709, + SMSG_PLAYED_TIME = 0x2708, SMSG_PLAYER_BOUND = 0x257D, SMSG_PLAYER_SAVE_GUILD_EMBLEM = 0x29F6, - SMSG_PLAYER_SKINNED = 0x2789, - SMSG_PLAYER_TABARD_VENDOR_ACTIVATE = 0x279D, - SMSG_PLAY_MUSIC = 0x27AC, - SMSG_PLAY_OBJECT_SOUND = 0x27AD, - SMSG_PLAY_ONE_SHOT_ANIM_KIT = 0x2773, - SMSG_PLAY_ORPHAN_SPELL_VISUAL = 0x2C46, - SMSG_PLAY_SCENE = 0x2654, - SMSG_PLAY_SOUND = 0x27AB, - SMSG_PLAY_SPEAKERBOT_SOUND = 0x27AE, - SMSG_PLAY_SPELL_VISUAL = 0x2C44, - SMSG_PLAY_SPELL_VISUAL_KIT = 0x2C48, - SMSG_PLAY_TIME_WARNING = 0x273B, + SMSG_PLAYER_SKINNED = 0x2788, + SMSG_PLAYER_TABARD_VENDOR_ACTIVATE = 0x279C, + SMSG_PLAY_MUSIC = 0x27AB, + SMSG_PLAY_OBJECT_SOUND = 0x27AC, + SMSG_PLAY_ONE_SHOT_ANIM_KIT = 0x2772, + SMSG_PLAY_ORPHAN_SPELL_VISUAL = 0x2C47, + SMSG_PLAY_SCENE = 0x2653, + SMSG_PLAY_SOUND = 0x27AA, + SMSG_PLAY_SPEAKERBOT_SOUND = 0x27AD, + SMSG_PLAY_SPELL_VISUAL = 0x2C45, + SMSG_PLAY_SPELL_VISUAL_KIT = 0x2C49, + SMSG_PLAY_TIME_WARNING = 0x273A, SMSG_PONG = 0x304E, - SMSG_POWER_UPDATE = 0x26FE, - SMSG_PRESTIGE_AND_HONOR_INVOLUNTARILY_CHANGED = 0x2759, - SMSG_PRE_RESSURECT = 0x27AA, + SMSG_POWER_UPDATE = 0x26FD, + SMSG_PRESTIGE_AND_HONOR_INVOLUNTARILY_CHANGED = 0x2758, + SMSG_PRE_RESSURECT = 0x27A9, SMSG_PRINT_NOTIFICATION = 0x25E1, - SMSG_PROC_RESIST = 0x279F, - SMSG_PROPOSE_LEVEL_GRANT = 0x2711, - SMSG_PUSH_SPELL_TO_ACTION_BAR = 0x2C50, - SMSG_PVP_CREDIT = 0x2717, + SMSG_PROC_RESIST = 0x279E, + SMSG_PROPOSE_LEVEL_GRANT = 0x2710, + SMSG_PUSH_SPELL_TO_ACTION_BAR = 0x2C51, + SMSG_PVP_CREDIT = 0x2716, SMSG_PVP_LOG_DATA = 0x25B3, SMSG_PVP_OPTIONS_ENABLED = 0x25B6, SMSG_PVP_SEASON = 0x25D3, - SMSG_QUERY_BATTLE_PET_NAME_RESPONSE = 0x2704, - SMSG_QUERY_CREATURE_RESPONSE = 0x26FB, - SMSG_QUERY_GAME_OBJECT_RESPONSE = 0x26FC, + SMSG_QUERY_BATTLE_PET_NAME_RESPONSE = 0x2703, + SMSG_QUERY_CREATURE_RESPONSE = 0x26FA, + SMSG_QUERY_GAME_OBJECT_RESPONSE = 0x26FB, SMSG_QUERY_GARRISON_CREATURE_NAME_RESPONSE = 0x292B, SMSG_QUERY_GUILD_INFO_RESPONSE = 0x29E5, - SMSG_QUERY_ITEM_TEXT_RESPONSE = 0x280B, - SMSG_QUERY_NPC_TEXT_RESPONSE = 0x26FF, - SMSG_QUERY_PAGE_TEXT_RESPONSE = 0x2701, - SMSG_QUERY_PETITION_RESPONSE = 0x2705, - SMSG_QUERY_PET_NAME_RESPONSE = 0x2703, - SMSG_QUERY_PLAYER_NAME_RESPONSE = 0x2700, + SMSG_QUERY_ITEM_TEXT_RESPONSE = 0x280A, + SMSG_QUERY_NPC_TEXT_RESPONSE = 0x26FE, + SMSG_QUERY_PAGE_TEXT_RESPONSE = 0x2700, + SMSG_QUERY_PETITION_RESPONSE = 0x2704, + SMSG_QUERY_PET_NAME_RESPONSE = 0x2702, + SMSG_QUERY_PLAYER_NAME_RESPONSE = 0x26FF, SMSG_QUERY_QUEST_INFO_RESPONSE = 0x2A95, SMSG_QUERY_QUEST_REWARD_RESPONSE = 0x2846, - SMSG_QUERY_TIME_RESPONSE = 0x271B, + SMSG_QUERY_TIME_RESPONSE = 0x271A, SMSG_QUEST_COMPLETION_NPC_RESPONSE = 0x2A81, SMSG_QUEST_CONFIRM_ACCEPT = 0x2A8E, SMSG_QUEST_FORCE_REMOVED = 0x2A9B, @@ -1497,56 +1500,57 @@ enum OpcodeServer : uint16 SMSG_QUEST_UPDATE_COMPLETE_BY_SPELL = 0x2A87, SMSG_QUEST_UPDATE_FAILED = 0x2A89, SMSG_QUEST_UPDATE_FAILED_TIMER = 0x2A8A, - SMSG_RAF_EMAIL_ENABLED_RESPONSE = 0x27C9, - SMSG_RAID_DIFFICULTY_SET = 0x27F0, - SMSG_RAID_GROUP_ONLY = 0x27F2, + SMSG_RAF_EMAIL_ENABLED_RESPONSE = 0x27C8, + SMSG_RAID_DIFFICULTY_SET = 0x27EF, + SMSG_RAID_GROUP_ONLY = 0x27F1, SMSG_RAID_INSTANCE_MESSAGE = 0x2BB4, SMSG_RAID_MARKERS_CHANGED = 0x25B9, - SMSG_RANDOM_ROLL = 0x264D, + SMSG_RANDOM_ROLL = 0x264C, SMSG_RATED_BATTLEFIELD_INFO = 0x25A6, SMSG_READY_CHECK_COMPLETED = 0x260E, SMSG_READY_CHECK_RESPONSE = 0x260D, SMSG_READY_CHECK_STARTED = 0x260C, - SMSG_READ_ITEM_RESULT_FAILED = 0x27EC, - SMSG_READ_ITEM_RESULT_OK = 0x27E2, - SMSG_REALM_QUERY_RESPONSE = 0x26E6, - SMSG_RECRUIT_A_FRIEND_RESPONSE = 0x27CA, - SMSG_REFER_A_FRIEND_EXPIRED = 0x2763, - SMSG_REFER_A_FRIEND_FAILURE = 0x26EC, - SMSG_REFRESH_COMPONENT = 0x2679, + SMSG_READ_ITEM_RESULT_FAILED = 0x27EB, + SMSG_READ_ITEM_RESULT_OK = 0x27E1, + SMSG_REALM_LOOKUP_INFORMATION = 0x2810, + SMSG_REALM_QUERY_RESPONSE = 0x26E5, + SMSG_RECRUIT_A_FRIEND_RESPONSE = 0x27C9, + SMSG_REFER_A_FRIEND_EXPIRED = 0x2762, + SMSG_REFER_A_FRIEND_FAILURE = 0x26EB, + SMSG_REFRESH_COMPONENT = 0x2678, SMSG_REFRESH_SPELL_HISTORY = 0x2C2C, SMSG_REMOVE_ITEM_PASSIVE = 0x25C0, - SMSG_REMOVE_LOSS_OF_CONTROL = 0x2698, - SMSG_REPLACE_TROPHY_RESPONSE = 0x2808, - SMSG_REPORT_PVP_PLAYER_AFK_RESULT = 0x26DA, - SMSG_REQUEST_ADDON_LIST = 0x2660, + SMSG_REMOVE_LOSS_OF_CONTROL = 0x2697, + SMSG_REPLACE_TROPHY_RESPONSE = 0x2807, + SMSG_REPORT_PVP_PLAYER_AFK_RESULT = 0x26D9, + SMSG_REQUEST_ADDON_LIST = 0x265F, SMSG_REQUEST_CEMETERY_LIST_RESPONSE = 0x259D, SMSG_REQUEST_PVP_BRAWL_INFO_RESPONSE = 0x25D5, SMSG_REQUEST_PVP_REWARDS_RESPONSE = 0x25D4, SMSG_RESEARCH_COMPLETE = 0x2585, - SMSG_RESET_AREA_TRIGGER = 0x2641, + SMSG_RESET_AREA_TRIGGER = 0x2640, SMSG_RESET_COMPRESSION_CONTEXT = 0x304F, - SMSG_RESET_FAILED_NOTIFY = 0x26E2, - SMSG_RESET_RANGED_COMBAT_TIMER = 0x2714, + SMSG_RESET_FAILED_NOTIFY = 0x26E1, + SMSG_RESET_RANGED_COMBAT_TIMER = 0x2713, SMSG_RESET_WEEKLY_CURRENCY = 0x2574, SMSG_RESPEC_WIPE_CONFIRM = 0x2626, SMSG_RESPOND_INSPECT_ACHIEVEMENTS = 0x2571, - SMSG_RESUME_CAST_BAR = 0x2C3D, + SMSG_RESUME_CAST_BAR = 0x2C3E, SMSG_RESUME_COMMS = 0x304B, SMSG_RESUME_TOKEN = 0x25BE, SMSG_RESURRECT_REQUEST = 0x257E, - SMSG_RESYNC_RUNES = 0x273E, + SMSG_RESYNC_RUNES = 0x273D, SMSG_ROLE_CHANGED_INFORM = 0x258C, - SMSG_ROLE_CHOSEN = 0x2A3A, + SMSG_ROLE_CHOSEN = 0x2A39, SMSG_ROLE_POLL_INFORM = 0x258D, SMSG_RUNE_REGEN_DEBUG = 0x25C8, - SMSG_SCENARIO_BOOT = 0x27ED, - SMSG_SCENARIO_COMPLETED = 0x282D, - SMSG_SCENARIO_POIS = 0x2650, - SMSG_SCENARIO_PROGRESS_UPDATE = 0x2649, + SMSG_SCENARIO_BOOT = 0x27EC, + SMSG_SCENARIO_COMPLETED = 0x282C, + SMSG_SCENARIO_POIS = 0x264F, + SMSG_SCENARIO_PROGRESS_UPDATE = 0x2648, SMSG_SCENARIO_SET_SHOULD_SHOW_CRITERIA = 0x283A, SMSG_SCENARIO_SPELL_UPDATE = 0x2839, - SMSG_SCENARIO_STATE = 0x2648, + SMSG_SCENARIO_STATE = 0x2647, SMSG_SCENE_OBJECT_EVENT = 0x25F7, SMSG_SCENE_OBJECT_PET_BATTLE_FINAL_ROUND = 0x25FC, SMSG_SCENE_OBJECT_PET_BATTLE_FINISHED = 0x25FD, @@ -1554,149 +1558,150 @@ enum OpcodeServer : uint16 SMSG_SCENE_OBJECT_PET_BATTLE_INITIAL_UPDATE = 0x25F8, SMSG_SCENE_OBJECT_PET_BATTLE_REPLACEMENTS_MADE = 0x25FB, SMSG_SCENE_OBJECT_PET_BATTLE_ROUND_RESULT = 0x25FA, - SMSG_SCRIPT_CAST = 0x2C54, - SMSG_SELL_RESPONSE = 0x26F0, + SMSG_SCRIPT_CAST = 0x2C55, + SMSG_SELL_RESPONSE = 0x26EF, SMSG_SEND_ITEM_PASSIVES = 0x25C1, SMSG_SEND_KNOWN_SPELLS = 0x2C2A, - SMSG_SEND_RAID_TARGET_UPDATE_ALL = 0x264B, - SMSG_SEND_RAID_TARGET_UPDATE_SINGLE = 0x264C, + SMSG_SEND_RAID_TARGET_UPDATE_ALL = 0x264A, + SMSG_SEND_RAID_TARGET_UPDATE_SINGLE = 0x264B, SMSG_SEND_SPELL_CHARGES = 0x2C2D, SMSG_SEND_SPELL_HISTORY = 0x2C2B, SMSG_SEND_UNLEARN_SPELLS = 0x2C2E, SMSG_SERVER_FIRST_ACHIEVEMENT = 0x2BBC, - SMSG_SERVER_FIRST_ACHIEVEMENTS = 0x266B, - SMSG_SERVER_TIME = 0x26AC, + SMSG_SERVER_FIRST_ACHIEVEMENTS = 0x266A, + SMSG_SERVER_TIME = 0x26AB, SMSG_SETUP_CURRENCY = 0x2572, SMSG_SETUP_RESEARCH_HISTORY = 0x2584, - SMSG_SET_AI_ANIM_KIT = 0x2772, - SMSG_SET_ALL_TASK_PROGRESS = 0x27D2, - SMSG_SET_ANIM_TIER = 0x2776, + SMSG_SET_AI_ANIM_KIT = 0x2771, + SMSG_SET_ALL_TASK_PROGRESS = 0x27D1, + SMSG_SET_ANIM_TIER = 0x2775, SMSG_SET_CURRENCY = 0x2573, SMSG_SET_DF_FAST_LAUNCH_RESULT = 0x2A2E, - SMSG_SET_DUNGEON_DIFFICULTY = 0x26CE, - SMSG_SET_FACTION_AT_WAR = 0x273D, - SMSG_SET_FACTION_NOT_VISIBLE = 0x276D, - SMSG_SET_FACTION_STANDING = 0x276E, - SMSG_SET_FACTION_VISIBLE = 0x276C, + SMSG_SET_DUNGEON_DIFFICULTY = 0x26CD, + SMSG_SET_FACTION_AT_WAR = 0x273C, + SMSG_SET_FACTION_NOT_VISIBLE = 0x276C, + SMSG_SET_FACTION_STANDING = 0x276D, + SMSG_SET_FACTION_VISIBLE = 0x276B, SMSG_SET_FLAT_SPELL_MODIFIER = 0x2C36, - SMSG_SET_FORCED_REACTIONS = 0x275D, + SMSG_SET_FORCED_REACTIONS = 0x275C, SMSG_SET_ITEM_PURCHASE_DATA = 0x25B0, - SMSG_SET_LOOT_METHOD_FAILED = 0x2817, + SMSG_SET_LOOT_METHOD_FAILED = 0x2816, SMSG_SET_MAX_WEEKLY_QUANTITY = 0x25B7, - SMSG_SET_MELEE_ANIM_KIT = 0x2775, - SMSG_SET_MOVEMENT_ANIM_KIT = 0x2774, + SMSG_SET_MELEE_ANIM_KIT = 0x2774, + SMSG_SET_MOVEMENT_ANIM_KIT = 0x2773, SMSG_SET_PCT_SPELL_MODIFIER = 0x2C37, - SMSG_SET_PET_SPECIALIZATION = 0x2642, - SMSG_SET_PLAYER_DECLINED_NAMES_RESULT = 0x2708, + SMSG_SET_PET_SPECIALIZATION = 0x2641, + SMSG_SET_PLAYER_DECLINED_NAMES_RESULT = 0x2707, SMSG_SET_PLAY_HOVER_ANIM = 0x25CC, - SMSG_SET_PROFICIENCY = 0x2777, + SMSG_SET_PROFICIENCY = 0x2776, SMSG_SET_SPELL_CHARGES = 0x2C29, - SMSG_SET_TASK_COMPLETE = 0x27D3, - SMSG_SET_TIME_ZONE_INFORMATION = 0x26A0, - SMSG_SET_VEHICLE_REC_ID = 0x2730, - SMSG_SHOW_ADVENTURE_MAP = 0x2836, - SMSG_SHOW_BANK = 0x26A9, - SMSG_SHOW_MAILBOX = 0x27EE, + SMSG_SET_TASK_COMPLETE = 0x27D2, + SMSG_SET_TIME_ZONE_INFORMATION = 0x269F, + SMSG_SET_VEHICLE_REC_ID = 0x272F, + SMSG_SHOW_ADVENTURE_MAP = 0x2835, + SMSG_SHOW_BANK = 0x26A8, + SMSG_SHOW_MAILBOX = 0x27ED, SMSG_SHOW_NEUTRAL_PLAYER_FACTION_SELECT_UI = 0x25F0, - SMSG_SHOW_TAXI_NODES = 0x26F7, - SMSG_SHOW_TRADE_SKILL_RESPONSE = 0x27B3, - SMSG_SOCKET_GEMS = 0x2769, - SMSG_SOCKET_GEMS_FAILURE = 0x276A, - SMSG_SORT_BAGS_RESULT = 0x2825, + SMSG_SHOW_TAXI_NODES = 0x26F6, + SMSG_SHOW_TRADE_SKILL_RESPONSE = 0x27B2, + SMSG_SOCKET_GEMS = 0x2768, + SMSG_SOCKET_GEMS_FAILURE = 0x2769, + SMSG_SORT_BAGS_RESULT = 0x2824, SMSG_SOR_START_EXPERIENCE_INCOMPLETE = 0x25F2, SMSG_SPECIALIZATION_CHANGED = 0x25EC, - SMSG_SPECIAL_MOUNT_ANIM = 0x26C9, - SMSG_SPEC_INVOLUNTARILY_CHANGED = 0x2758, + SMSG_SPECIAL_MOUNT_ANIM = 0x26C8, + SMSG_SPEC_INVOLUNTARILY_CHANGED = 0x2757, SMSG_SPELL_ABSORB_LOG = 0x2C1F, SMSG_SPELL_CATEGORY_COOLDOWN = 0x2C17, SMSG_SPELL_CHANNEL_START = 0x2C34, SMSG_SPELL_CHANNEL_UPDATE = 0x2C35, SMSG_SPELL_COOLDOWN = 0x2C15, SMSG_SPELL_DAMAGE_SHIELD = 0x2C31, - SMSG_SPELL_DELAYED = 0x2C3E, + SMSG_SPELL_DELAYED = 0x2C3F, SMSG_SPELL_DISPELL_LOG = 0x2C1A, SMSG_SPELL_ENERGIZE_LOG = 0x2C1C, - SMSG_SPELL_EXECUTE_LOG = 0x2C3F, - SMSG_SPELL_FAILED_OTHER = 0x2C53, - SMSG_SPELL_FAILURE = 0x2C51, - SMSG_SPELL_FAILURE_MESSAGE = 0x2C58, + SMSG_SPELL_EXECUTE_LOG = 0x2C40, + SMSG_SPELL_FAILED_OTHER = 0x2C54, + SMSG_SPELL_FAILURE = 0x2C52, + SMSG_SPELL_FAILURE_MESSAGE = 0x2C59, SMSG_SPELL_GO = 0x2C39, SMSG_SPELL_HEAL_ABSORB_LOG = 0x2C1E, SMSG_SPELL_HEAL_LOG = 0x2C1D, SMSG_SPELL_INSTAKILL_LOG = 0x2C33, SMSG_SPELL_INTERRUPT_LOG = 0x2C20, - SMSG_SPELL_MISS_LOG = 0x2C40, + SMSG_SPELL_MISS_LOG = 0x2C41, SMSG_SPELL_NON_MELEE_DAMAGE_LOG = 0x2C32, SMSG_SPELL_OR_DAMAGE_IMMUNE = 0x2C2F, SMSG_SPELL_PERIODIC_AURA_LOG = 0x2C1B, SMSG_SPELL_PREPARE = 0x2C38, SMSG_SPELL_START = 0x2C3A, - SMSG_SPIRIT_HEALER_CONFIRM = 0x2755, - SMSG_STAND_STATE_UPDATE = 0x275C, + SMSG_SPIRIT_HEALER_CONFIRM = 0x2754, + SMSG_STAND_STATE_UPDATE = 0x275B, SMSG_START_ELAPSED_TIMER = 0x261A, SMSG_START_ELAPSED_TIMERS = 0x261C, SMSG_START_LOOT_ROLL = 0x2631, - SMSG_START_MIRROR_TIMER = 0x274F, + SMSG_START_MIRROR_TIMER = 0x274E, SMSG_START_TIMER = 0x25BB, SMSG_STOP_ELAPSED_TIMER = 0x261B, - SMSG_STOP_MIRROR_TIMER = 0x2751, - SMSG_STOP_SPEAKERBOT_SOUND = 0x27AF, + SMSG_STOP_MIRROR_TIMER = 0x2750, + SMSG_STOP_SPEAKERBOT_SOUND = 0x27AE, SMSG_STREAMING_MOVIES = 0x25BA, - SMSG_SUMMON_CANCEL = 0x26D9, + SMSG_SUMMON_CANCEL = 0x26D8, SMSG_SUMMON_RAID_MEMBER_VALIDATE_FAILED = 0x258E, - SMSG_SUMMON_REQUEST = 0x2761, - SMSG_SUPERCEDED_SPELLS = 0x2C4B, + SMSG_SUMMON_REQUEST = 0x2760, + SMSG_SUPERCEDED_SPELLS = 0x2C4C, SMSG_SUSPEND_COMMS = 0x304A, SMSG_SUSPEND_TOKEN = 0x25BD, - SMSG_TALENTS_INVOLUNTARILY_RESET = 0x2757, - SMSG_TAXI_NODE_STATUS = 0x26A6, - SMSG_TEXT_EMOTE = 0x26A4, - SMSG_THREAT_CLEAR = 0x2710, - SMSG_THREAT_REMOVE = 0x270F, - SMSG_THREAT_UPDATE = 0x270E, + SMSG_TALENTS_INVOLUNTARILY_RESET = 0x2756, + SMSG_TAXI_NODE_STATUS = 0x26A5, + SMSG_TEXT_EMOTE = 0x26A3, + SMSG_THREAT_CLEAR = 0x270F, + SMSG_THREAT_REMOVE = 0x270E, + SMSG_THREAT_UPDATE = 0x270D, SMSG_TIME_ADJUSTMENT = 0x2DA1, SMSG_TIME_SYNC_REQUEST = 0x2DA0, - SMSG_TITLE_EARNED = 0x270B, - SMSG_TITLE_LOST = 0x270C, - SMSG_TOTEM_CREATED = 0x26F3, - SMSG_TOTEM_MOVED = 0x26F4, + SMSG_TITLE_EARNED = 0x270A, + SMSG_TITLE_LOST = 0x270B, + SMSG_TOTEM_CREATED = 0x26F2, + SMSG_TOTEM_MOVED = 0x26F3, SMSG_TRADE_STATUS = 0x2581, SMSG_TRADE_UPDATED = 0x2580, - SMSG_TRAINER_BUY_FAILED = 0x2716, - SMSG_TRAINER_LIST = 0x2715, - SMSG_TRANSFER_ABORTED = 0x2741, + SMSG_TRAINER_BUY_FAILED = 0x2715, + SMSG_TRAINER_LIST = 0x2714, + SMSG_TRANSFER_ABORTED = 0x2740, SMSG_TRANSFER_PENDING = 0x25E5, SMSG_TRANSMOG_COLLECTION_UPDATE = 0x25C6, SMSG_TRANSMOG_SET_COLLECTION_UPDATE = 0x25C7, - SMSG_TRIGGER_CINEMATIC = 0x280F, - SMSG_TRIGGER_MOVIE = 0x26F5, - SMSG_TURN_IN_PETITION_RESULT = 0x2792, - SMSG_TUTORIAL_FLAGS = 0x2801, + SMSG_TRIGGER_CINEMATIC = 0x280E, + SMSG_TRIGGER_MOVIE = 0x26F4, + SMSG_TURN_IN_PETITION_RESULT = 0x2791, + SMSG_TUTORIAL_FLAGS = 0x2800, SMSG_TUTORIAL_HIGHLIGHT_SPELL = 0x2840, SMSG_TUTORIAL_UNHIGHLIGHT_SPELL = 0x283F, SMSG_TWITTER_STATUS = 0x2FFD, - SMSG_UI_TIME = 0x2754, - SMSG_UNDELETE_CHARACTER_RESPONSE = 0x2812, - SMSG_UNDELETE_COOLDOWN_STATUS_RESPONSE = 0x2813, - SMSG_UNLEARNED_SPELLS = 0x2C4D, - SMSG_UPDATE_ACCOUNT_DATA = 0x2749, + SMSG_UI_TIME = 0x2753, + SMSG_UNDELETE_CHARACTER_RESPONSE = 0x2811, + SMSG_UNDELETE_COOLDOWN_STATUS_RESPONSE = 0x2812, + SMSG_UNLEARNED_SPELLS = 0x2C4E, + SMSG_UPDATE_ACCOUNT_DATA = 0x2748, SMSG_UPDATE_ACTION_BUTTONS = 0x25F5, - SMSG_UPDATE_CHARACTER_FLAGS = 0x2807, - SMSG_UPDATE_DUNGEON_ENCOUNTER_FOR_LOOT = 0x2A31, - SMSG_UPDATE_EXPANSION_LEVEL = 0x2664, - SMSG_UPDATE_INSTANCE_OWNERSHIP = 0x26D1, - SMSG_UPDATE_LAST_INSTANCE = 0x26B2, - SMSG_UPDATE_OBJECT = 0x2810, + SMSG_UPDATE_CELESTIAL_BODY = 0x285E, + SMSG_UPDATE_CHARACTER_FLAGS = 0x2806, + SMSG_UPDATE_EXPANSION_LEVEL = 0x2663, + SMSG_UPDATE_GAME_TIME_STATE = 0x2865, + SMSG_UPDATE_INSTANCE_OWNERSHIP = 0x26D0, + SMSG_UPDATE_LAST_INSTANCE = 0x26B1, + SMSG_UPDATE_OBJECT = 0x280F, SMSG_UPDATE_TALENT_DATA = 0x25EB, - SMSG_UPDATE_TASK_PROGRESS = 0x27D1, + SMSG_UPDATE_TASK_PROGRESS = 0x27D0, SMSG_UPDATE_WEEKLY_SPELL_USAGE = 0x2C19, - SMSG_UPDATE_WORLD_STATE = 0x278D, + SMSG_UPDATE_WORLD_STATE = 0x278C, SMSG_USERLIST_ADD = 0x2BB9, SMSG_USERLIST_REMOVE = 0x2BBA, SMSG_USERLIST_UPDATE = 0x2BBB, - SMSG_USE_EQUIPMENT_SET_RESULT = 0x2793, + SMSG_USE_EQUIPMENT_SET_RESULT = 0x2792, SMSG_VENDOR_INVENTORY = 0x25CA, - SMSG_VIGNETTE_UPDATE = 0x27B1, + SMSG_VIGNETTE_UPDATE = 0x27B0, SMSG_VOID_ITEM_SWAP_RESPONSE = 0x25DF, SMSG_VOID_STORAGE_CONTENTS = 0x25DC, SMSG_VOID_STORAGE_FAILED = 0x25DB, @@ -1706,29 +1711,29 @@ enum OpcodeServer : uint16 SMSG_WAIT_QUEUE_UPDATE = 0x256D, SMSG_WARDEN_DATA = 0x2576, SMSG_WARGAME_REQUEST_SUCCESSFULLY_SENT_TO_OPPONENT = 0x25B4, - SMSG_WEATHER = 0x26D0, + SMSG_WEATHER = 0x26CF, SMSG_WEEKLY_SPELL_USAGE = 0x2C18, SMSG_WHO = 0x2BAE, - SMSG_WHO_IS = 0x26CF, + SMSG_WHO_IS = 0x26CE, SMSG_WORLD_QUEST_UPDATE = 0x2847, SMSG_WORLD_SERVER_INFO = 0x25C2, - SMSG_WORLD_TEXT = 0x282F, - SMSG_WOW_TOKEN_AUCTION_SOLD = 0x281D, - SMSG_WOW_TOKEN_BUY_REQUEST_CONFIRMATION = 0x281F, - SMSG_WOW_TOKEN_BUY_RESULT_CONFIRMATION = 0x2820, + SMSG_WORLD_TEXT = 0x282E, + SMSG_WOW_TOKEN_AUCTION_SOLD = 0x281C, + SMSG_WOW_TOKEN_BUY_REQUEST_CONFIRMATION = 0x281E, + SMSG_WOW_TOKEN_BUY_RESULT_CONFIRMATION = 0x281F, SMSG_WOW_TOKEN_CAN_REDEEM_FOR_BALANCE_RESULT = 0x2856, - SMSG_WOW_TOKEN_CAN_VETERAN_BUY_RESULT = 0x281E, - SMSG_WOW_TOKEN_DISTRIBUTION_GLUE_UPDATE = 0x2818, - SMSG_WOW_TOKEN_DISTRIBUTION_UPDATE = 0x2819, - SMSG_WOW_TOKEN_MARKET_PRICE_RESPONSE = 0x281A, - SMSG_WOW_TOKEN_REDEEM_GAME_TIME_UPDATED = 0x2821, - SMSG_WOW_TOKEN_REDEEM_REQUEST_CONFIRMATION = 0x2822, - SMSG_WOW_TOKEN_REDEEM_RESULT = 0x2823, - SMSG_WOW_TOKEN_SELL_REQUEST_CONFIRMATION = 0x281B, - SMSG_WOW_TOKEN_SELL_RESULT_CONFIRMATION = 0x281C, - SMSG_WOW_TOKEN_UPDATE_AUCTIONABLE_LIST_RESPONSE = 0x2824, + SMSG_WOW_TOKEN_CAN_VETERAN_BUY_RESULT = 0x281D, + SMSG_WOW_TOKEN_DISTRIBUTION_GLUE_UPDATE = 0x2817, + SMSG_WOW_TOKEN_DISTRIBUTION_UPDATE = 0x2818, + SMSG_WOW_TOKEN_MARKET_PRICE_RESPONSE = 0x2819, + SMSG_WOW_TOKEN_REDEEM_GAME_TIME_UPDATED = 0x2820, + SMSG_WOW_TOKEN_REDEEM_REQUEST_CONFIRMATION = 0x2821, + SMSG_WOW_TOKEN_REDEEM_RESULT = 0x2822, + SMSG_WOW_TOKEN_SELL_REQUEST_CONFIRMATION = 0x281A, + SMSG_WOW_TOKEN_SELL_RESULT_CONFIRMATION = 0x281B, + SMSG_WOW_TOKEN_UPDATE_AUCTIONABLE_LIST_RESPONSE = 0x2823, SMSG_XP_GAIN_ABORTED = 0x25E0, - SMSG_XP_GAIN_ENABLED = 0x27F1, + SMSG_XP_GAIN_ENABLED = 0x27F0, SMSG_ZONE_UNDER_ATTACK = 0x2BB5, // Opcodes that are not generated automatically diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp index 08357f8bc4d..acadaf0d64a 100644 --- a/src/server/game/Server/WorldSession.cpp +++ b/src/server/game/Server/WorldSession.cpp @@ -112,7 +112,8 @@ WorldSession::WorldSession(uint32 id, std::string&& name, uint32 battlenetAccoun _accountId(id), _accountName(std::move(name)), _battlenetAccountId(battlenetAccountId), - m_expansion(expansion), + m_accountExpansion(expansion), + m_expansion(std::min<uint8>(expansion, sWorld->getIntConfig(CONFIG_EXPANSION))), _os(os), _battlenetRequestToken(0), _warden(NULL), diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index 8e9ecabfded..8d8f00483c7 100644 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -936,6 +936,7 @@ class TC_GAME_API WorldSession void SetSecurity(AccountTypes security) { _security = security; } std::string const& GetRemoteAddress() const { return m_Address; } void SetPlayer(Player* player); + uint8 GetAccountExpansion() const { return m_accountExpansion; } uint8 GetExpansion() const { return m_expansion; } std::string const& GetOS() const { return _os; } @@ -1797,6 +1798,7 @@ class TC_GAME_API WorldSession uint32 _accountId; std::string _accountName; uint32 _battlenetAccountId; + uint8 m_accountExpansion; uint8 m_expansion; std::string _os; diff --git a/src/server/game/Server/WorldSocket.cpp b/src/server/game/Server/WorldSocket.cpp index b83742a3346..ff5a587a5be 100644 --- a/src/server/game/Server/WorldSocket.cpp +++ b/src/server/game/Server/WorldSocket.cpp @@ -70,9 +70,9 @@ uint8 const WorldSocket::AuthCheckSeed[16] = { 0xC5, 0xC6, 0x98, 0x95, 0x76, 0x3 uint8 const WorldSocket::SessionKeySeed[16] = { 0x58, 0xCB, 0xCF, 0x40, 0xFE, 0x2E, 0xCE, 0xA6, 0x5A, 0x90, 0xB8, 0x01, 0x68, 0x6C, 0x28, 0x0B }; uint8 const WorldSocket::ContinuedSessionSeed[16] = { 0x16, 0xAD, 0x0C, 0xD4, 0x46, 0xF9, 0x4F, 0xB2, 0xEF, 0x7D, 0xEA, 0x2A, 0x17, 0x66, 0x4D, 0x2F }; -uint32 const ClientTypeSeed_Win[4] = { 0xC34F59FE, 0xFF9A7F5E, 0x8A9DD986, 0x97B24A36 }; -uint32 const ClientTypeSeed_Wn64[4] = { 0x4E625212, 0xFAD6CBD8, 0x5D3FD3C7, 0xF335A567 }; -uint32 const ClientTypeSeed_Mc64[4] = { 0x95EFC66, 0x266170B8, 0x3145F79, 0xD8C1C808 }; +uint8 const ClientTypeSeed_Win[16] = { 0x23, 0xC5, 0x9C, 0x59, 0x63, 0xCB, 0xEF, 0x5B, 0x72, 0x8D, 0x13, 0xA5, 0x08, 0x78, 0xDF, 0xCB }; +uint8 const ClientTypeSeed_Wn64[16] = { 0xC7, 0xFF, 0x93, 0x2D, 0x6A, 0x21, 0x74, 0xA3, 0xD5, 0x38, 0xCA, 0x72, 0x12, 0x13, 0x6D, 0x2B }; +uint8 const ClientTypeSeed_Mc64[16] = { 0x21, 0x0B, 0x97, 0x01, 0x49, 0xD6, 0xF5, 0x6C, 0xAC, 0x9B, 0xAD, 0xF2, 0xAA, 0xC9, 0x1E, 0x8E }; WorldSocket::WorldSocket(tcp::socket&& socket) : Socket(std::move(socket)), _type(CONNECTION_TYPE_REALM), _key(0), _OverSpeedPings(0), @@ -637,10 +637,6 @@ struct AccountInfo Game.IsBanned = fields[13].GetUInt64() != 0; Game.IsRectuiter = fields[14].GetUInt32() != 0; - uint32 world_expansion = sWorld->getIntConfig(CONFIG_EXPANSION); - if (Game.Expansion > world_expansion) - Game.Expansion = world_expansion; - if (BattleNet.Locale >= TOTAL_LOCALES) BattleNet.Locale = LOCALE_enUS; } @@ -675,11 +671,11 @@ void WorldSocket::HandleAuthSessionCallback(std::shared_ptr<WorldPackets::Auth:: SHA256Hash digestKeyHash; digestKeyHash.UpdateData(account.Game.KeyData.data(), account.Game.KeyData.size()); if (account.Game.OS == "Win") - digestKeyHash.UpdateData(reinterpret_cast<uint8 const*>(ClientTypeSeed_Win), 16); + digestKeyHash.UpdateData(ClientTypeSeed_Win, 16); else if (account.Game.OS == "Wn64") - digestKeyHash.UpdateData(reinterpret_cast<uint8 const*>(ClientTypeSeed_Wn64), 16); + digestKeyHash.UpdateData(ClientTypeSeed_Wn64, 16); else if (account.Game.OS == "Mc64") - digestKeyHash.UpdateData(reinterpret_cast<uint8 const*>(ClientTypeSeed_Mc64), 16); + digestKeyHash.UpdateData(ClientTypeSeed_Mc64, 16); digestKeyHash.Finalize(); |
