From 468a06baf046b716305ee665e3cfd93c80e99457 Mon Sep 17 00:00:00 2001 From: Shauren Date: Wed, 8 May 2024 20:55:51 +0200 Subject: Core: Update to 10.2.7 --- .../Database/Implementation/HotfixDatabase.cpp | 7 +- src/server/game/DataStores/DB2LoadInfo.h | 13 +- src/server/game/DataStores/DB2Metadata.h | 106 +- src/server/game/DataStores/DB2Structure.h | 5 +- src/server/game/DataStores/DBCEnums.h | 13 +- src/server/game/Entities/Item/ItemDefines.h | 1 + .../game/Entities/Object/Updates/UpdateFields.cpp | 470 ++-- .../game/Entities/Object/Updates/UpdateFields.h | 332 +-- src/server/game/Entities/Pet/PetDefines.h | 3 +- src/server/game/Entities/Player/Player.cpp | 86 +- src/server/game/Entities/Player/Player.h | 1 + src/server/game/Handlers/CharacterHandler.cpp | 6 + src/server/game/Handlers/ChatHandler.cpp | 66 +- src/server/game/Handlers/PetHandler.cpp | 13 + src/server/game/Handlers/TaxiHandler.cpp | 1 + src/server/game/Miscellaneous/SharedDefines.h | 2102 ++++++++--------- .../game/Server/Packets/BattlegroundPackets.cpp | 3 + .../game/Server/Packets/BattlegroundPackets.h | 3 + .../game/Server/Packets/CharacterPackets.cpp | 2 + src/server/game/Server/Packets/CharacterPackets.h | 2 + src/server/game/Server/Packets/ChatPackets.cpp | 48 +- src/server/game/Server/Packets/ChatPackets.h | 12 +- .../game/Server/Packets/CombatLogPacketsCommon.cpp | 15 +- src/server/game/Server/Packets/MiscPackets.cpp | 7 +- src/server/game/Server/Packets/MiscPackets.h | 3 +- src/server/game/Server/Packets/PacketUtilities.cpp | 3 +- src/server/game/Server/Packets/PetPackets.cpp | 5 + src/server/game/Server/Packets/PetPackets.h | 10 + src/server/game/Server/Packets/QueryPackets.cpp | 17 +- src/server/game/Server/Packets/QueryPackets.h | 8 +- src/server/game/Server/Packets/QuestPackets.cpp | 1 + src/server/game/Server/Packets/QuestPackets.h | 1 + src/server/game/Server/Packets/SystemPackets.cpp | 21 +- src/server/game/Server/Packets/SystemPackets.h | 14 + src/server/game/Server/Protocol/Opcodes.cpp | 6 +- src/server/game/Server/Protocol/Opcodes.h | 2450 ++++++++++---------- src/server/game/Server/WorldSession.h | 6 +- src/server/shared/Packets/ByteBuffer.cpp | 20 +- src/server/shared/Packets/ByteBuffer.h | 10 +- .../map_extractor/loadlib/DBFilesClientList.h | 6 + 40 files changed, 3149 insertions(+), 2749 deletions(-) (limited to 'src') diff --git a/src/server/database/Database/Implementation/HotfixDatabase.cpp b/src/server/database/Database/Implementation/HotfixDatabase.cpp index ed55602c4b7..63b3ab237de 100644 --- a/src/server/database/Database/Implementation/HotfixDatabase.cpp +++ b/src/server/database/Database/Implementation/HotfixDatabase.cpp @@ -454,8 +454,9 @@ void HotfixDatabaseConnection::DoPrepareStatements() PREPARE_MAX_ID_STMT(HOTFIX_SEL_CONDITIONAL_CONTENT_TUNING, "SELECT MAX(ID) + 1 FROM conditional_content_tuning", CONNECTION_SYNCH); // ContentTuning.db2 - PrepareStatement(HOTFIX_SEL_CONTENT_TUNING, "SELECT ID, Flags, ExpansionID, MinLevel, MaxLevel, MinLevelType, MaxLevelType, TargetLevelDelta, " - "TargetLevelMaxDelta, TargetLevelMin, TargetLevelMax, MinItemLevel, QuestXpMultiplier FROM content_tuning WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); + PrepareStatement(HOTFIX_SEL_CONTENT_TUNING, "SELECT ID, Flags, ExpansionID, HealthItemLevelCurveID, DamageItemLevelCurveID, MinLevel, MaxLevel, " + "MinLevelType, MaxLevelType, TargetLevelDelta, TargetLevelMaxDelta, TargetLevelMin, TargetLevelMax, MinItemLevel, QuestXpMultiplier" + " FROM content_tuning WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); PREPARE_MAX_ID_STMT(HOTFIX_SEL_CONTENT_TUNING, "SELECT MAX(ID) + 1 FROM content_tuning", CONNECTION_SYNCH); // ContentTuningXExpected.db2 @@ -962,7 +963,7 @@ void HotfixDatabaseConnection::DoPrepareStatements() // ItemModifiedAppearance.db2 PrepareStatement(HOTFIX_SEL_ITEM_MODIFIED_APPEARANCE, "SELECT ID, ItemID, ItemAppearanceModifierID, ItemAppearanceID, OrderIndex, " - "TransmogSourceTypeEnum FROM item_modified_appearance WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); + "TransmogSourceTypeEnum, Flags FROM item_modified_appearance WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); PREPARE_MAX_ID_STMT(HOTFIX_SEL_ITEM_MODIFIED_APPEARANCE, "SELECT MAX(ID) + 1 FROM item_modified_appearance", CONNECTION_SYNCH); // ItemModifiedAppearanceExtra.db2 diff --git a/src/server/game/DataStores/DB2LoadInfo.h b/src/server/game/DataStores/DB2LoadInfo.h index 614ac4f19f2..db8879fca37 100644 --- a/src/server/game/DataStores/DB2LoadInfo.h +++ b/src/server/game/DataStores/DB2LoadInfo.h @@ -34,7 +34,7 @@ struct AchievementLoadInfo { false, FT_INT, "ID" }, { true, FT_SHORT, "InstanceID" }, { true, FT_BYTE, "Faction" }, - { true, FT_SHORT, "Supercedes" }, + { true, FT_INT, "Supercedes" }, { true, FT_SHORT, "Category" }, { true, FT_BYTE, "MinimumCriteria" }, { true, FT_BYTE, "Points" }, @@ -1299,11 +1299,13 @@ struct ConditionalContentTuningLoadInfo struct ContentTuningLoadInfo { - static constexpr DB2FieldMeta Fields[13] = + static constexpr DB2FieldMeta Fields[15] = { { false, FT_INT, "ID" }, { true, FT_INT, "Flags" }, { true, FT_INT, "ExpansionID" }, + { true, FT_INT, "HealthItemLevelCurveID" }, + { true, FT_INT, "DamageItemLevelCurveID" }, { true, FT_INT, "MinLevel" }, { true, FT_INT, "MaxLevel" }, { true, FT_INT, "MinLevelType" }, @@ -1316,7 +1318,7 @@ struct ContentTuningLoadInfo { false, FT_FLOAT, "QuestXpMultiplier" }, }; - static constexpr DB2LoadInfo Instance{ Fields, 13, &ContentTuningMeta::Instance, HOTFIX_SEL_CONTENT_TUNING }; + static constexpr DB2LoadInfo Instance{ Fields, 15, &ContentTuningMeta::Instance, HOTFIX_SEL_CONTENT_TUNING }; }; struct ContentTuningXExpectedLoadInfo @@ -3026,7 +3028,7 @@ struct ItemLimitCategoryConditionLoadInfo struct ItemModifiedAppearanceLoadInfo { - static constexpr DB2FieldMeta Fields[6] = + static constexpr DB2FieldMeta Fields[7] = { { false, FT_INT, "ID" }, { true, FT_INT, "ItemID" }, @@ -3034,9 +3036,10 @@ struct ItemModifiedAppearanceLoadInfo { true, FT_INT, "ItemAppearanceID" }, { true, FT_INT, "OrderIndex" }, { false, FT_BYTE, "TransmogSourceTypeEnum" }, + { true, FT_INT, "Flags" }, }; - static constexpr DB2LoadInfo Instance{ Fields, 6, &ItemModifiedAppearanceMeta::Instance, HOTFIX_SEL_ITEM_MODIFIED_APPEARANCE }; + static constexpr DB2LoadInfo Instance{ Fields, 7, &ItemModifiedAppearanceMeta::Instance, HOTFIX_SEL_ITEM_MODIFIED_APPEARANCE }; }; struct ItemModifiedAppearanceExtraLoadInfo diff --git a/src/server/game/DataStores/DB2Metadata.h b/src/server/game/DataStores/DB2Metadata.h index 37da92ed3bb..1729fae6da2 100644 --- a/src/server/game/DataStores/DB2Metadata.h +++ b/src/server/game/DataStores/DB2Metadata.h @@ -30,7 +30,7 @@ struct AchievementMeta { FT_INT, 1, false }, { FT_SHORT, 1, true }, { FT_BYTE, 1, true }, - { FT_SHORT, 1, true }, + { FT_INT, 1, true }, { FT_SHORT, 1, true }, { FT_BYTE, 1, true }, { FT_BYTE, 1, true }, @@ -45,7 +45,7 @@ struct AchievementMeta { FT_INT, 1, true }, }; - static constexpr DB2Meta Instance{ 1260179, 3, 19, 19, 0x920E09CB, Fields, 11 }; + static constexpr DB2Meta Instance{ 1260179, 3, 19, 19, 0x145BE391, Fields, 11 }; }; struct Achievement_CategoryMeta @@ -2971,6 +2971,24 @@ struct ConfigurationWarningMeta static constexpr DB2Meta Instance{ 1709409, -1, 2, 2, 0x6E7F031C, Fields, -1 }; }; +struct ContentPushMeta +{ + static constexpr DB2MetaField Fields[9] = + { + { FT_INT, 1, true }, + { FT_INT, 1, false }, + { FT_INT, 1, false }, + { FT_INT, 1, false }, + { FT_INT, 1, true }, + { FT_INT, 1, true }, + { FT_INT, 1, true }, + { FT_INT, 1, true }, + { FT_INT, 1, true }, + }; + + static constexpr DB2Meta Instance{ 5742435, -1, 9, 9, 0xA22779BB, Fields, -1 }; +}; + struct ContentRestrictionRuleMeta { static constexpr DB2MetaField Fields[8] = @@ -3002,7 +3020,7 @@ struct ContentRestrictionRuleSetMeta struct ContentTuningMeta { - static constexpr DB2MetaField Fields[12] = + static constexpr DB2MetaField Fields[14] = { { FT_INT, 1, true }, { FT_INT, 1, true }, @@ -3015,10 +3033,12 @@ struct ContentTuningMeta { FT_INT, 1, true }, { FT_INT, 1, true }, { FT_INT, 1, true }, + { FT_INT, 1, true }, + { FT_INT, 1, true }, { FT_FLOAT, 1, true }, }; - static constexpr DB2Meta Instance{ 1962930, -1, 12, 12, 0x3E5D4B74, Fields, -1 }; + static constexpr DB2Meta Instance{ 1962930, -1, 14, 14, 0x7364682E, Fields, -1 }; }; struct ContentTuningXExpectedMeta @@ -3473,6 +3493,17 @@ struct CreatureDisplayInfoTrnMeta static constexpr DB2Meta Instance{ 1146698, -1, 6, 5, 0x7B61A667, Fields, 5 }; }; +struct CreatureDisplayXUIModelSceneMeta +{ + static constexpr DB2MetaField Fields[2] = + { + { FT_INT, 1, true }, + { FT_INT, 1, true }, + }; + + static constexpr DB2Meta Instance{ 5551196, -1, 2, 2, 0xF6F7B883, Fields, -1 }; +}; + struct CreatureFamilyMeta { static constexpr DB2MetaField Fields[9] = @@ -3491,6 +3522,17 @@ struct CreatureFamilyMeta static constexpr DB2Meta Instance{ 1351351, -1, 9, 9, 0x78019FD1, Fields, -1 }; }; +struct CreatureFamilyXUIModelSceneMeta +{ + static constexpr DB2MetaField Fields[2] = + { + { FT_INT, 1, true }, + { FT_INT, 1, true }, + }; + + static constexpr DB2Meta Instance{ 5551197, -1, 2, 2, 0x67A62BDD, Fields, -1 }; +}; + struct CreatureImmunitiesMeta { static constexpr DB2MetaField Fields[9] = @@ -3502,11 +3544,11 @@ struct CreatureImmunitiesMeta { FT_BYTE, 1, false }, { FT_BYTE, 1, false }, { FT_INT, 2, true }, - { FT_INT, 10, false }, + { FT_INT, 11, false }, { FT_INT, 20, false }, }; - static constexpr DB2Meta Instance{ 1131322, -1, 9, 9, 0x1B605529, Fields, -1 }; + static constexpr DB2Meta Instance{ 1131322, -1, 9, 9, 0x6103DDDA, Fields, -1 }; }; struct CreatureLabelMeta @@ -4496,6 +4538,21 @@ struct GameObjectDiffAnimMapMeta static constexpr DB2Meta Instance{ 1302847, -1, 4, 3, 0x7403DFA2, Fields, 3 }; }; +struct GameObjectDisplayConditionMeta +{ + static constexpr DB2MetaField Fields[6] = + { + { FT_INT, 1, false }, + { FT_INT, 1, true }, + { FT_INT, 1, true }, + { FT_INT, 1, true }, + { FT_FLOAT, 1, true }, + { FT_INT, 1, true }, + }; + + static constexpr DB2Meta Instance{ 5634246, 0, 6, 5, 0x676E8326, Fields, 5 }; +}; + struct GameObjectDisplayInfoMeta { static constexpr DB2MetaField Fields[8] = @@ -6751,7 +6808,7 @@ struct ItemLogicalCostGroupMeta struct ItemModifiedAppearanceMeta { - static constexpr DB2MetaField Fields[6] = + static constexpr DB2MetaField Fields[7] = { { FT_INT, 1, false }, { FT_INT, 1, true }, @@ -6759,9 +6816,10 @@ struct ItemModifiedAppearanceMeta { FT_INT, 1, true }, { FT_INT, 1, true }, { FT_BYTE, 1, false }, + { FT_INT, 1, true }, }; - static constexpr DB2Meta Instance{ 982457, 0, 6, 6, 0x0120090C, Fields, 1 }; + static constexpr DB2Meta Instance{ 982457, 0, 7, 7, 0xF881E7D5, Fields, 1 }; }; struct ItemModifiedAppearanceExtraMeta @@ -6850,6 +6908,20 @@ struct ItemRecraftMeta static constexpr DB2Meta Instance{ 5150118, 0, 5, 4, 0xE00E7F34, Fields, 4 }; }; +struct ItemReforgeMeta +{ + static constexpr DB2MetaField Fields[5] = + { + { FT_SHORT, 1, false }, + { FT_FLOAT, 1, true }, + { FT_SHORT, 1, false }, + { FT_FLOAT, 1, true }, + { FT_SHORT, 1, false }, + }; + + static constexpr DB2Meta Instance{ 5633983, -1, 5, 5, 0xE91C7760, Fields, -1 }; +}; + struct ItemSalvageMeta { static constexpr DB2MetaField Fields[3] = @@ -9821,16 +9893,17 @@ struct QuestLabelMeta struct QuestLineMeta { - static constexpr DB2MetaField Fields[5] = + static constexpr DB2MetaField Fields[6] = { { FT_STRING, 1, true }, { FT_STRING, 1, true }, { FT_INT, 1, true }, { FT_INT, 1, false }, { FT_INT, 1, true }, + { FT_INT, 1, true }, }; - static constexpr DB2Meta Instance{ 973430, -1, 5, 5, 0xA360A782, Fields, -1 }; + static constexpr DB2Meta Instance{ 973430, -1, 6, 6, 0x148A5F52, Fields, -1 }; }; struct QuestLineXQuestMeta @@ -13435,6 +13508,19 @@ struct UISplashScreenMeta static constexpr DB2Meta Instance{ 2960122, -1, 15, 15, 0x5C67BB80, Fields, -1 }; }; +struct UiCamFbackTalkingHeadChrRaceMeta +{ + static constexpr DB2MetaField Fields[4] = + { + { FT_INT, 1, true }, + { FT_INT, 1, true }, + { FT_INT, 1, true }, + { FT_INT, 1, true }, + }; + + static constexpr DB2Meta Instance{ 3055924, -1, 4, 3, 0xAABE2521, Fields, 3 }; +}; + struct UiCamFbackTransmogChrRaceMeta { static constexpr DB2MetaField Fields[5] = diff --git a/src/server/game/DataStores/DB2Structure.h b/src/server/game/DataStores/DB2Structure.h index 5f6bbd10933..6f60ab39414 100644 --- a/src/server/game/DataStores/DB2Structure.h +++ b/src/server/game/DataStores/DB2Structure.h @@ -33,7 +33,7 @@ struct AchievementEntry uint32 ID; int16 InstanceID; // -1 = none int8 Faction; // -1 = all, 0 = horde, 1 = alliance - int16 Supercedes; // its Achievement parent (can`t start while parent uncomplete, use its Criteria if don`t have own, use its progress on begin) + int32 Supercedes; // its Achievement parent (can`t start while parent uncomplete, use its Criteria if don`t have own, use its progress on begin) int16 Category; int8 MinimumCriteria; // need this count of completed criterias (own or referenced achievement criterias) int8 Points; @@ -927,6 +927,8 @@ struct ContentTuningEntry uint32 ID; int32 Flags; int32 ExpansionID; + int32 HealthItemLevelCurveID; + int32 DamageItemLevelCurveID; int32 MinLevel; int32 MaxLevel; int32 MinLevelType; @@ -2346,6 +2348,7 @@ struct ItemModifiedAppearanceEntry int32 ItemAppearanceID; int32 OrderIndex; uint8 TransmogSourceTypeEnum; + int32 Flags; }; struct ItemModifiedAppearanceExtraEntry diff --git a/src/server/game/DataStores/DBCEnums.h b/src/server/game/DataStores/DBCEnums.h index 0f6780d56d9..b65b0cf9a04 100644 --- a/src/server/game/DataStores/DBCEnums.h +++ b/src/server/game/DataStores/DBCEnums.h @@ -748,7 +748,13 @@ enum class CriteriaType : int16 CompleteTrackingQuest = 250, /*NYI*/ GainLevels = 253, // Gain levels - Count = 257 + + CompleteQuestsCountOnAccount = 257, /*NYI*/ + + WarbandBankTabPurchased = 260, /*NYI*/ + + LearnTaxiNode = 262, + Count = 263 }; enum class CriteriaTreeFlags : uint16 @@ -1162,6 +1168,11 @@ enum class ItemContext : uint8 Template_Character_2 = 98, Template_Character_3 = 99, Template_Character_4 = 100, + Dungeon_Normal_Jackpot = 101, + Dungeon_Heroic_Jackpot = 102, + Dungeon_Mythic_Jackpot = 103, + Delves = 104, + Timerunning = 105, Max }; diff --git a/src/server/game/Entities/Item/ItemDefines.h b/src/server/game/Entities/Item/ItemDefines.h index 7df3f83b9f7..0632c1e113d 100644 --- a/src/server/game/Entities/Item/ItemDefines.h +++ b/src/server/game/Entities/Item/ItemDefines.h @@ -266,6 +266,7 @@ enum ItemModifier : uint16 ITEM_MODIFIER_CRAFTING_REAGENT_SLOT_12 = 55, ITEM_MODIFIER_CRAFTING_REAGENT_SLOT_13 = 56, ITEM_MODIFIER_CRAFTING_REAGENT_SLOT_14 = 57, + ITEM_MODIFIER_REFORGE = 58, MAX_ITEM_MODIFIERS }; diff --git a/src/server/game/Entities/Object/Updates/UpdateFields.cpp b/src/server/game/Entities/Object/Updates/UpdateFields.cpp index e05e49e5903..924820bd8ce 100644 --- a/src/server/game/Entities/Object/Updates/UpdateFields.cpp +++ b/src/server/game/Entities/Object/Updates/UpdateFields.cpp @@ -989,8 +989,6 @@ void UnitData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisi data << int32(ScalingLevelMax); data << int32(ScalingLevelDelta); data << int32(ScalingFactionGroup); - data << int32(ScalingHealthItemLevelCurveID); - data << int32(ScalingDamageItemLevelCurveID); data << int32(ViewerDependentValue::GetValue(this, owner, receiver)); for (uint32 i = 0; i < 3; ++i) { @@ -1118,6 +1116,8 @@ void UnitData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisi data << uint32(ChannelObjects.size()); data << int32(FlightCapabilityID); data << float(GlideEventSpeedDivisor); + data << uint32(Field_308); + data << uint32(Field_30C); data << uint32(SilencedSchoolMask); data << uint32(CurrentAreaID); data << NameplateAttachToGUID; @@ -1137,7 +1137,7 @@ void UnitData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisi void UnitData::WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Unit const* owner, Player const* receiver) const { - Mask allowedMaskForTarget({ 0xFFFFDFFFu, 0xC3FEFFFFu, 0x003DFFFFu, 0xFFFFFC01u, 0x007FFFFFu, 0x0003F800u, 0x00000000u }); + Mask allowedMaskForTarget({ 0xFFFFDFFFu, 0xF0FFBFFFu, 0x000F7FFFu, 0xFFFFFF01u, 0x007FFFFFu, 0x0003F800u, 0x00000000u }); AppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags); WriteUpdate(data, _changesMask & allowedMaskForTarget, false, owner, receiver); } @@ -1145,16 +1145,16 @@ void UnitData::WriteUpdate(ByteBuffer& data, EnumFlag fieldVisi void UnitData::AppendAllowedFieldsMaskForFlag(Mask& allowedMaskForTarget, EnumFlag fieldVisibilityFlags) { if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag::Owner)) - allowedMaskForTarget |= { 0x00002000u, 0x3C010000u, 0xFFC20000u, 0x000003FEu, 0xFF800004u, 0xFFFC07FFu, 0x01FFFFFFu }; + allowedMaskForTarget |= { 0x00002000u, 0x0F004000u, 0xFFF08000u, 0x000000FEu, 0xFF800004u, 0xFFFC07FFu, 0x01FFFFFFu }; if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag::UnitAll)) allowedMaskForTarget |= { 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0xFF800004u, 0x000007FFu, 0x00000000u }; if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag::Empath)) - allowedMaskForTarget |= { 0x00000000u, 0x3C000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x000007F8u }; + allowedMaskForTarget |= { 0x00000000u, 0x0F000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x000007F8u }; } void UnitData::FilterDisallowedFieldsMaskForFlag(Mask& changesMask, EnumFlag fieldVisibilityFlags) { - Mask allowedMaskForTarget({ 0xFFFFDFFFu, 0xC3FEFFFFu, 0x003DFFFFu, 0xFFFFFC01u, 0x007FFFFFu, 0x0003F800u, 0x00000000u }); + Mask allowedMaskForTarget({ 0xFFFFDFFFu, 0xF0FFBFFFu, 0x000F7FFFu, 0xFFFFFF01u, 0x007FFFFFu, 0x0003F800u, 0x00000000u }); AppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags); changesMask &= allowedMaskForTarget; } @@ -1380,333 +1380,333 @@ void UnitData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignor } if (changesMask[41]) { - data << int32(ScalingHealthItemLevelCurveID); + data << int32(ViewerDependentValue::GetValue(this, owner, receiver)); } if (changesMask[42]) { - data << int32(ScalingDamageItemLevelCurveID); + data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); } if (changesMask[43]) { - data << int32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << uint32(Flags2); } if (changesMask[44]) { - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); } if (changesMask[45]) { - data << uint32(Flags2); + data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); } if (changesMask[46]) { - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << uint32(RangedAttackRoundBaseTime); } if (changesMask[47]) { - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << float(BoundingRadius); } if (changesMask[48]) { - data << uint32(RangedAttackRoundBaseTime); + data << float(CombatReach); } if (changesMask[49]) { - data << float(BoundingRadius); + data << float(DisplayScale); } if (changesMask[50]) { - data << float(CombatReach); + data << int32(CreatureFamily); } if (changesMask[51]) { - data << float(DisplayScale); + data << int32(CreatureType); } if (changesMask[52]) { - data << int32(CreatureFamily); + data << int32(NativeDisplayID); } if (changesMask[53]) { - data << int32(CreatureType); + data << float(NativeXDisplayScale); } if (changesMask[54]) { - data << int32(NativeDisplayID); + data << int32(MountDisplayID); } if (changesMask[55]) { - data << float(NativeXDisplayScale); + data << int32(CosmeticMountDisplayID); } if (changesMask[56]) { - data << int32(MountDisplayID); + data << float(MinDamage); } if (changesMask[57]) { - data << int32(CosmeticMountDisplayID); + data << float(MaxDamage); } if (changesMask[58]) { - data << float(MinDamage); + data << float(MinOffHandDamage); } if (changesMask[59]) { - data << float(MaxDamage); + data << float(MaxOffHandDamage); } if (changesMask[60]) { - data << float(MinOffHandDamage); + data << uint8(StandState); } if (changesMask[61]) { - data << float(MaxOffHandDamage); + data << uint8(PetTalentPoints); } if (changesMask[62]) { - data << uint8(StandState); + data << uint8(VisFlags); } if (changesMask[63]) { - data << uint8(PetTalentPoints); + data << uint8(AnimTier); } } if (changesMask[64]) { if (changesMask[65]) { - data << uint8(VisFlags); + data << uint32(PetNumber); } if (changesMask[66]) { - data << uint8(AnimTier); + data << uint32(PetNameTimestamp); } if (changesMask[67]) { - data << uint32(PetNumber); + data << uint32(PetExperience); } if (changesMask[68]) { - data << uint32(PetNameTimestamp); + data << uint32(PetNextLevelExperience); } if (changesMask[69]) { - data << uint32(PetExperience); + data << float(ModCastingSpeed); } if (changesMask[70]) { - data << uint32(PetNextLevelExperience); + data << float(ModCastingSpeedNeg); } if (changesMask[71]) { - data << float(ModCastingSpeed); + data << float(ModSpellHaste); } if (changesMask[72]) { - data << float(ModCastingSpeedNeg); + data << float(ModHaste); } if (changesMask[73]) { - data << float(ModSpellHaste); + data << float(ModRangedHaste); } if (changesMask[74]) { - data << float(ModHaste); + data << float(ModHasteRegen); } if (changesMask[75]) { - data << float(ModRangedHaste); + data << float(ModTimeRate); } if (changesMask[76]) { - data << float(ModHasteRegen); + data << int32(CreatedBySpell); } if (changesMask[77]) { - data << float(ModTimeRate); + data << int32(EmoteState); } if (changesMask[78]) { - data << int32(CreatedBySpell); + data << int32(BaseMana); } if (changesMask[79]) { - data << int32(EmoteState); + data << int32(BaseHealth); } if (changesMask[80]) { - data << int32(BaseMana); + data << uint8(SheatheState); } if (changesMask[81]) { - data << int32(BaseHealth); + data << uint8(ViewerDependentValue::GetValue(this, owner, receiver)); } if (changesMask[82]) { - data << uint8(SheatheState); + data << uint8(PetFlags); } if (changesMask[83]) { - data << uint8(ViewerDependentValue::GetValue(this, owner, receiver)); + data << uint8(ShapeshiftForm); } if (changesMask[84]) { - data << uint8(PetFlags); + data << int32(AttackPower); } if (changesMask[85]) { - data << uint8(ShapeshiftForm); + data << int32(AttackPowerModPos); } if (changesMask[86]) { - data << int32(AttackPower); + data << int32(AttackPowerModNeg); } if (changesMask[87]) { - data << int32(AttackPowerModPos); + data << float(AttackPowerMultiplier); } if (changesMask[88]) { - data << int32(AttackPowerModNeg); + data << int32(AttackPowerModSupport); } if (changesMask[89]) { - data << float(AttackPowerMultiplier); + data << int32(RangedAttackPower); } if (changesMask[90]) { - data << int32(AttackPowerModSupport); + data << int32(RangedAttackPowerModPos); } if (changesMask[91]) { - data << int32(RangedAttackPower); + data << int32(RangedAttackPowerModNeg); } if (changesMask[92]) { - data << int32(RangedAttackPowerModPos); + data << float(RangedAttackPowerMultiplier); } if (changesMask[93]) { - data << int32(RangedAttackPowerModNeg); + data << int32(RangedAttackPowerModSupport); } if (changesMask[94]) { - data << float(RangedAttackPowerMultiplier); + data << int32(MainHandWeaponAttackPower); } if (changesMask[95]) { - data << int32(RangedAttackPowerModSupport); + data << int32(OffHandWeaponAttackPower); } } if (changesMask[96]) { if (changesMask[97]) { - data << int32(MainHandWeaponAttackPower); + data << int32(RangedWeaponAttackPower); } if (changesMask[98]) { - data << int32(OffHandWeaponAttackPower); + data << int32(SetAttackSpeedAura); } if (changesMask[99]) { - data << int32(RangedWeaponAttackPower); + data << float(Lifesteal); } if (changesMask[100]) { - data << int32(SetAttackSpeedAura); + data << float(MinRangedDamage); } if (changesMask[101]) { - data << float(Lifesteal); + data << float(MaxRangedDamage); } if (changesMask[102]) { - data << float(MinRangedDamage); + data << float(ManaCostMultiplier); } if (changesMask[103]) { - data << float(MaxRangedDamage); + data << float(MaxHealthModifier); } if (changesMask[104]) { - data << float(ManaCostMultiplier); + data << float(HoverHeight); } if (changesMask[105]) { - data << float(MaxHealthModifier); + data << int32(MinItemLevelCutoff); } if (changesMask[106]) { - data << float(HoverHeight); + data << int32(MinItemLevel); } if (changesMask[107]) { - data << int32(MinItemLevelCutoff); + data << int32(MaxItemLevel); } if (changesMask[108]) { - data << int32(MinItemLevel); + data << int32(AzeriteItemLevel); } if (changesMask[109]) { - data << int32(MaxItemLevel); + data << int32(WildBattlePetLevel); } if (changesMask[110]) { - data << int32(AzeriteItemLevel); + data << int32(BattlePetCompanionExperience); } if (changesMask[111]) { - data << int32(WildBattlePetLevel); + data << uint32(BattlePetCompanionNameTimestamp); } if (changesMask[112]) { - data << int32(BattlePetCompanionExperience); + data << int32(ViewerDependentValue::GetValue(this, owner, receiver)); } if (changesMask[113]) { - data << uint32(BattlePetCompanionNameTimestamp); + data << int32(ScaleDuration); } if (changesMask[114]) { - data << int32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << int32(LooksLikeMountID); } if (changesMask[115]) { - data << int32(ScaleDuration); + data << int32(LooksLikeCreatureID); } if (changesMask[116]) { - data << int32(LooksLikeMountID); + data << int32(LookAtControllerID); } if (changesMask[117]) { - data << int32(LooksLikeCreatureID); + data << int32(PerksVendorItemID); } if (changesMask[118]) { - data << int32(LookAtControllerID); + data << int32(TaxiNodesID); } if (changesMask[119]) { - data << int32(PerksVendorItemID); + data << GuildGUID; } if (changesMask[120]) { - data << int32(TaxiNodesID); + data << int32(FlightCapabilityID); } if (changesMask[121]) { - data << GuildGUID; + data << float(GlideEventSpeedDivisor); } if (changesMask[122]) { - data << int32(FlightCapabilityID); + data << uint32(Field_308); } if (changesMask[123]) { - data << float(GlideEventSpeedDivisor); + data << uint32(Field_30C); } if (changesMask[124]) { @@ -1856,8 +1856,6 @@ void UnitData::ClearChangesMask() Base::ClearChangesMask(ScalingLevelMax); Base::ClearChangesMask(ScalingLevelDelta); Base::ClearChangesMask(ScalingFactionGroup); - Base::ClearChangesMask(ScalingHealthItemLevelCurveID); - Base::ClearChangesMask(ScalingDamageItemLevelCurveID); Base::ClearChangesMask(FactionTemplate); Base::ClearChangesMask(Flags); Base::ClearChangesMask(Flags2); @@ -1937,6 +1935,8 @@ void UnitData::ClearChangesMask() Base::ClearChangesMask(GuildGUID); Base::ClearChangesMask(FlightCapabilityID); Base::ClearChangesMask(GlideEventSpeedDivisor); + Base::ClearChangesMask(Field_308); + Base::ClearChangesMask(Field_30C); Base::ClearChangesMask(SilencedSchoolMask); Base::ClearChangesMask(CurrentAreaID); Base::ClearChangesMask(NameplateAttachToGUID); @@ -2104,6 +2104,45 @@ void ArenaCooldown::ClearChangesMask() _changesMask.ResetAll(); } +void PetCreatureName::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +{ + data << uint32(CreatureID); + data.WriteBits(Name->size(), 8); + data.WriteString(Name); + data.FlushBits(); +} + +void PetCreatureName::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +{ + Mask changesMask = _changesMask; + if (ignoreChangesMask) + changesMask.SetAll(); + + data.WriteBits(changesMask.GetBlock(0), 3); + + data.FlushBits(); + if (changesMask[0]) + { + if (changesMask[1]) + { + data << uint32(CreatureID); + } + if (changesMask[2]) + { + data.WriteBits(Name->size(), 8); + data.WriteString(Name); + } + } + data.FlushBits(); +} + +void PetCreatureName::ClearChangesMask() +{ + Base::ClearChangesMask(CreatureID); + Base::ClearChangesMask(Name); + _changesMask.ResetAll(); +} + void CTROptions::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const { data << int32(ContentTuningConditionMask); @@ -2285,6 +2324,7 @@ void PlayerData::WriteCreate(ByteBuffer& data, EnumFlag fieldVi data << int32(Field_1AC); data << int32(Field_1B0); data << int32(CurrentBattlePetSpeciesID); + data << uint32(PetNames.size()); CtrOptions->WriteCreate(data, owner, receiver); data << int32(CovenantID); data << int32(SoulbindID); @@ -2333,6 +2373,10 @@ void PlayerData::WriteCreate(ByteBuffer& data, EnumFlag fieldVi { data << VisibleEquipableSpells[i]; } + for (uint32 i = 0; i < PetNames.size(); ++i) + { + PetNames[i].WriteCreate(data, owner, receiver); + } if (DeclinedNames.has_value()) { DeclinedNames->WriteCreate(data, owner, receiver); @@ -2342,7 +2386,7 @@ void PlayerData::WriteCreate(ByteBuffer& data, EnumFlag fieldVi void PlayerData::WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Player const* owner, Player const* receiver) const { - Mask allowedMaskForTarget({ 0xFFFFFFDDu, 0x0000FFFFu, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0xFFFFFFFFu, 0xFFFFFFFFu }); + Mask allowedMaskForTarget({ 0xFFFFFFDDu, 0x0001FFFFu, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0xFFFFFFFEu, 0xFFFFFFFFu, 0x00000001u }); AppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags); WriteUpdate(data, _changesMask & allowedMaskForTarget, false, owner, receiver); } @@ -2350,20 +2394,20 @@ void PlayerData::WriteUpdate(ByteBuffer& data, EnumFlag fieldVi void PlayerData::AppendAllowedFieldsMaskForFlag(Mask& allowedMaskForTarget, EnumFlag fieldVisibilityFlags) { if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag::PartyMember)) - allowedMaskForTarget |= { 0x00000022u, 0xFFFF0000u, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0x00000000u, 0x00000000u }; + allowedMaskForTarget |= { 0x00000022u, 0xFFFE0000u, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0x00000001u, 0x00000000u, 0x00000000u }; } void PlayerData::FilterDisallowedFieldsMaskForFlag(Mask& changesMask, EnumFlag fieldVisibilityFlags) { - Mask allowedMaskForTarget({ 0xFFFFFFDDu, 0x0000FFFFu, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0xFFFFFFFFu, 0xFFFFFFFFu }); + Mask allowedMaskForTarget({ 0xFFFFFFDDu, 0x0001FFFFu, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0xFFFFFFFEu, 0xFFFFFFFFu, 0x00000001u }); AppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags); changesMask &= allowedMaskForTarget; } void PlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Player const* owner, Player const* receiver) const { - data.WriteBits(changesMask.GetBlocksMask(0), 9); - for (uint32 i = 0; i < 9; ++i) + data.WriteBits(changesMask.GetBlocksMask(0), 10); + for (uint32 i = 0; i < 10; ++i) if (changesMask.GetBlock(i)) data.WriteBits(changesMask.GetBlock(i), 32); @@ -2407,6 +2451,13 @@ void PlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ign WriteCompleteDynamicFieldUpdateMask(ArenaCooldowns.size(), data); } if (changesMask[7]) + { + if (!ignoreNestedChangesMask) + PetNames.WriteUpdateMask(data); + else + WriteCompleteDynamicFieldUpdateMask(PetNames.size(), data); + } + if (changesMask[8]) { if (!ignoreNestedChangesMask) VisualItemReplacements.WriteUpdateMask(data); @@ -2460,7 +2511,7 @@ void PlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ign } } } - if (changesMask[7]) + if (changesMask[8]) { for (uint32 i = 0; i < VisualItemReplacements.size(); ++i) { @@ -2470,156 +2521,166 @@ void PlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ign } } } - if (changesMask[8]) + if (changesMask[7]) { - data << DuelArbiter; + for (uint32 i = 0; i < PetNames.size(); ++i) + { + if (PetNames.HasChanged(i) || ignoreNestedChangesMask) + { + PetNames[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + } + } } if (changesMask[9]) { - data << WowAccount; + data << DuelArbiter; } if (changesMask[10]) { - data << BnetAccount; + data << WowAccount; } if (changesMask[11]) { - data << uint64(GuildClubMemberID); + data << BnetAccount; } if (changesMask[12]) { - data << LootTargetGUID; + data << uint64(GuildClubMemberID); } if (changesMask[13]) { - data << uint32(PlayerFlags); + data << LootTargetGUID; } if (changesMask[14]) { - data << uint32(PlayerFlagsEx); + data << uint32(PlayerFlags); } if (changesMask[15]) { - data << uint32(GuildRankID); + data << uint32(PlayerFlagsEx); } if (changesMask[16]) { - data << uint32(GuildDeleteDate); + data << uint32(GuildRankID); } if (changesMask[17]) { - data << int32(GuildLevel); + data << uint32(GuildDeleteDate); } if (changesMask[18]) { - data << uint8(NativeSex); + data << int32(GuildLevel); } if (changesMask[19]) { - data << uint8(Inebriation); + data << uint8(NativeSex); } if (changesMask[20]) { - data << uint8(PvpTitle); + data << uint8(Inebriation); } if (changesMask[21]) { - data << uint8(ArenaFaction); + data << uint8(PvpTitle); } if (changesMask[22]) { - data << uint32(DuelTeam); + data << uint8(ArenaFaction); } if (changesMask[23]) { - data << int32(GuildTimeStamp); + data << uint32(DuelTeam); } if (changesMask[24]) { - data << int32(PlayerTitle); + data << int32(GuildTimeStamp); } if (changesMask[25]) { - data << int32(FakeInebriation); + data << int32(PlayerTitle); } if (changesMask[26]) { - data << uint32(VirtualPlayerRealm); + data << int32(FakeInebriation); } if (changesMask[27]) { - data << uint32(CurrentSpecID); + data << uint32(VirtualPlayerRealm); } if (changesMask[28]) { - data << int32(TaxiMountAnimKitID); + data << uint32(CurrentSpecID); } if (changesMask[29]) { - data << uint8(CurrentBattlePetBreedQuality); + data << int32(TaxiMountAnimKitID); } if (changesMask[30]) { - data << int32(HonorLevel); + data << uint8(CurrentBattlePetBreedQuality); } if (changesMask[31]) { - data << int64(LogoutTime); + data << int32(HonorLevel); } } if (changesMask[32]) { - if (changesMask[34]) + if (changesMask[33]) { - data << int32(Field_1AC); + data << int64(LogoutTime); } if (changesMask[35]) { - data << int32(Field_1B0); + data << int32(Field_1AC); } if (changesMask[36]) { - data << int32(CurrentBattlePetSpeciesID); + data << int32(Field_1B0); } if (changesMask[37]) { - CtrOptions->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + data << int32(CurrentBattlePetSpeciesID); } if (changesMask[38]) { - data << int32(CovenantID); + CtrOptions->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); } if (changesMask[39]) + { + data << int32(CovenantID); + } + if (changesMask[40]) { data << int32(SoulbindID); } - if (changesMask[41]) + if (changesMask[42]) { data << SpectateTarget; } - if (changesMask[42]) + if (changesMask[43]) { data << int32(Field_200); } - if (changesMask[44]) + if (changesMask[45]) { PersonalTabard->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); } - if (changesMask[33]) + if (changesMask[34]) { data.WriteBits(Name->size(), 6); } data.WriteBits(DeclinedNames.has_value(), 1); data.FlushBits(); - if (changesMask[40]) + if (changesMask[41]) { data << DungeonScore; } - if (changesMask[33]) + if (changesMask[34]) { data.WriteString(Name); } - if (changesMask[43]) + if (changesMask[44]) { if (DeclinedNames.has_value()) { @@ -2627,21 +2688,21 @@ void PlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ign } } } - if (changesMask[45]) + if (changesMask[46]) { for (uint32 i = 0; i < 2; ++i) { - if (changesMask[46 + i]) + if (changesMask[47 + i]) { data << uint8(PartyType[i]); } } } - if (changesMask[48]) + if (changesMask[49]) { for (uint32 i = 0; i < 175; ++i) { - if (changesMask[49 + i]) + if (changesMask[50 + i]) { if (noQuestLogChangesMask) QuestLog[i].WriteCreate(data, owner, receiver); @@ -2650,41 +2711,41 @@ void PlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ign } } } - if (changesMask[224]) + if (changesMask[225]) { for (uint32 i = 0; i < 19; ++i) { - if (changesMask[225 + i]) + if (changesMask[226 + i]) { VisibleItems[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); } } } - if (changesMask[244]) + if (changesMask[245]) { for (uint32 i = 0; i < 6; ++i) { - if (changesMask[245 + i]) + if (changesMask[246 + i]) { data << float(AvgItemLevel[i]); } } } - if (changesMask[268]) + if (changesMask[269]) { for (uint32 i = 0; i < 19; ++i) { - if (changesMask[269 + i]) + if (changesMask[270 + i]) { data << uint32(Field_3120[i]); } } } - if (changesMask[251]) + if (changesMask[252]) { for (uint32 i = 0; i < 16; ++i) { - if (changesMask[252 + i]) + if (changesMask[253 + i]) { data << VisibleEquipableSpells[i]; } @@ -2702,6 +2763,7 @@ void PlayerData::ClearChangesMask() Base::ClearChangesMask(QuestSessionQuestLog); Base::ClearChangesMask(ArenaCooldowns); Base::ClearChangesMask(VisualItemReplacements); + Base::ClearChangesMask(PetNames); Base::ClearChangesMask(DuelArbiter); Base::ClearChangesMask(WowAccount); Base::ClearChangesMask(BnetAccount); @@ -3154,23 +3216,23 @@ void ResearchHistory::ClearChangesMask() void MawPower::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const { - data << int32(Field_0); - data << int32(Field_4); - data << int32(Field_8); + data << int32(SpellID); + data << int32(MawPowerID); + data << int32(Stacks); } void MawPower::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const { - data << int32(Field_0); - data << int32(Field_4); - data << int32(Field_8); + data << int32(SpellID); + data << int32(MawPowerID); + data << int32(Stacks); } bool MawPower::operator==(MawPower const& right) const { - return Field_0 == right.Field_0 - && Field_4 == right.Field_4 - && Field_8 == right.Field_8; + return SpellID == right.SpellID + && MawPowerID == right.MawPowerID + && Stacks == right.Stacks; } void MultiFloorExplore::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const @@ -4131,7 +4193,7 @@ void ActivePlayerData::WriteCreate(ByteBuffer& data, EnumFlag f data << float(VersatilityBonus); data << float(PvpPowerDamage); data << float(PvpPowerHealing); - for (uint32 i = 0; i < 8; ++i) + for (uint32 i = 0; i < 9; ++i) { data << uint32(DataFlags[i].size()); for (uint32 j = 0; j < DataFlags[i].size(); ++j) @@ -4263,6 +4325,7 @@ void ActivePlayerData::WriteCreate(ByteBuffer& data, EnumFlag f data << uint32(TaskQuests.size()); data << uint32(DisabledSpells.size()); data << int32(UiChromieTimeExpansionID); + data << int32(TimerunningSeasonID); data << int32(TransportServerTime); data << uint32(WeeklyRewardsPeriodSinceOrigin); data << int16(DEBUGSoulbindConduitRank); @@ -4471,7 +4534,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo } if (changesMask[36]) { - for (uint32 i = 0; i < 8; ++i) + for (uint32 i = 0; i < 9; ++i) { if (changesMask[37]) { @@ -4484,7 +4547,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo } if (changesMask[36]) { - for (uint32 i = 0; i < 8; ++i) + for (uint32 i = 0; i < 9; ++i) { if (changesMask[37]) { @@ -5376,48 +5439,58 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo } if (changesMask[123]) { - data << int32(TransportServerTime); + data << int32(TimerunningSeasonID); } if (changesMask[124]) { - data << uint32(WeeklyRewardsPeriodSinceOrigin); + data << int32(TransportServerTime); } if (changesMask[125]) + { + data << uint32(WeeklyRewardsPeriodSinceOrigin); + } + if (changesMask[126]) { data << int16(DEBUGSoulbindConduitRank); } - if (changesMask[127]) + if (changesMask[128]) { data << uint32(ActiveCombatTraitConfigID); } - if (changesMask[128]) + if (changesMask[129]) { data << int32(ItemUpgradeHighOnehandWeaponItemID); } - if (changesMask[129]) + if (changesMask[130]) { data << int32(ItemUpgradeHighFingerItemID); } - if (changesMask[130]) + if (changesMask[131]) { data << float(ItemUpgradeHighFingerWatermark); } - if (changesMask[131]) + if (changesMask[132]) { data << int32(ItemUpgradeHighTrinketItemID); } - if (changesMask[132]) + if (changesMask[133]) { data << float(ItemUpgradeHighTrinketWatermark); } - if (changesMask[133]) + if (changesMask[134]) { data << uint64(LootHistoryInstanceID); } - if (changesMask[135]) + } + if (changesMask[136]) + { + if (changesMask[137]) { data << uint8(RequiredMountCapabilityFlags); } + } + if (changesMask[104]) + { data.WriteBits(QuestSession.has_value(), 1); data.WriteBits(PetStable.has_value(), 1); } @@ -5443,11 +5516,11 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo { Field_1410->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); } - if (changesMask[126]) + if (changesMask[127]) { data << DungeonScore; } - if (changesMask[134]) + if (changesMask[135]) { if (PetStable.has_value()) { @@ -5455,141 +5528,141 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo } } } - if (changesMask[136]) + if (changesMask[138]) { for (uint32 i = 0; i < 227; ++i) { - if (changesMask[137 + i]) + if (changesMask[139 + i]) { data << InvSlots[i]; } } } - if (changesMask[364]) + if (changesMask[366]) { for (uint32 i = 0; i < 2; ++i) { - if (changesMask[365 + i]) + if (changesMask[367 + i]) { RestInfo[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); } } } - if (changesMask[367]) + if (changesMask[369]) { for (uint32 i = 0; i < 7; ++i) { - if (changesMask[368 + i]) + if (changesMask[370 + i]) { data << int32(ModDamageDonePos[i]); } - if (changesMask[375 + i]) + if (changesMask[377 + i]) { data << int32(ModDamageDoneNeg[i]); } - if (changesMask[382 + i]) + if (changesMask[384 + i]) { data << float(ModDamageDonePercent[i]); } - if (changesMask[389 + i]) + if (changesMask[391 + i]) { data << float(ModHealingDonePercent[i]); } } } - if (changesMask[396]) + if (changesMask[398]) { for (uint32 i = 0; i < 3; ++i) { - if (changesMask[397 + i]) + if (changesMask[399 + i]) { data << float(WeaponDmgMultipliers[i]); } - if (changesMask[400 + i]) + if (changesMask[402 + i]) { data << float(WeaponAtkSpeedMultipliers[i]); } } } - if (changesMask[403]) + if (changesMask[405]) { for (uint32 i = 0; i < 12; ++i) { - if (changesMask[404 + i]) + if (changesMask[406 + i]) { data << uint32(BuybackPrice[i]); } - if (changesMask[416 + i]) + if (changesMask[418 + i]) { data << int64(BuybackTimestamp[i]); } } } - if (changesMask[428]) + if (changesMask[430]) { for (uint32 i = 0; i < 32; ++i) { - if (changesMask[429 + i]) + if (changesMask[431 + i]) { data << int32(CombatRatings[i]); } } } - if (changesMask[461]) + if (changesMask[463]) { for (uint32 i = 0; i < 4; ++i) { - if (changesMask[462 + i]) + if (changesMask[464 + i]) { data << uint32(NoReagentCostMask[i]); } } } - if (changesMask[466]) + if (changesMask[468]) { for (uint32 i = 0; i < 2; ++i) { - if (changesMask[467 + i]) + if (changesMask[469 + i]) { data << int32(ProfessionSkillLine[i]); } } } - if (changesMask[469]) + if (changesMask[471]) { for (uint32 i = 0; i < 5; ++i) { - if (changesMask[470 + i]) + if (changesMask[472 + i]) { data << uint32(BagSlotFlags[i]); } } } - if (changesMask[475]) + if (changesMask[477]) { for (uint32 i = 0; i < 7; ++i) { - if (changesMask[476 + i]) + if (changesMask[478 + i]) { data << uint32(BankBagSlotFlags[i]); } } } - if (changesMask[483]) + if (changesMask[485]) { for (uint32 i = 0; i < 950; ++i) { - if (changesMask[484 + i]) + if (changesMask[486 + i]) { data << uint64(QuestCompleted[i]); } } } - if (changesMask[1434]) + if (changesMask[1436]) { for (uint32 i = 0; i < 17; ++i) { - if (changesMask[1435 + i]) + if (changesMask[1437 + i]) { data << float(ItemUpgradeHighWatermark[i]); } @@ -5715,6 +5788,7 @@ void ActivePlayerData::ClearChangesMask() Base::ClearChangesMask(Field_1410); Base::ClearChangesMask(QuestSession); Base::ClearChangesMask(UiChromieTimeExpansionID); + Base::ClearChangesMask(TimerunningSeasonID); Base::ClearChangesMask(TransportServerTime); Base::ClearChangesMask(WeeklyRewardsPeriodSinceOrigin); Base::ClearChangesMask(DEBUGSoulbindConduitRank); diff --git a/src/server/game/Entities/Object/Updates/UpdateFields.h b/src/server/game/Entities/Object/Updates/UpdateFields.h index 7132f4beaf6..4a09c05dd3b 100644 --- a/src/server/game/Entities/Object/Updates/UpdateFields.h +++ b/src/server/game/Entities/Object/Updates/UpdateFields.h @@ -299,93 +299,93 @@ struct UnitData : public IsUpdateFieldStructureTag, public HasChangesMask<217> UpdateField ScalingLevelMax; UpdateField ScalingLevelDelta; UpdateField ScalingFactionGroup; - UpdateField ScalingHealthItemLevelCurveID; - UpdateField ScalingDamageItemLevelCurveID; - UpdateField FactionTemplate; + UpdateField FactionTemplate; struct FactionTemplateTag : ViewerDependentValueTag {}; - UpdateField Flags; + UpdateField Flags; struct FlagsTag : ViewerDependentValueTag {}; - UpdateField Flags2; - UpdateField Flags3; + UpdateField Flags2; + UpdateField Flags3; struct Flags3Tag : ViewerDependentValueTag {}; - UpdateField AuraState; + UpdateField AuraState; struct AuraStateTag : ViewerDependentValueTag {}; - UpdateField RangedAttackRoundBaseTime; - UpdateField BoundingRadius; - UpdateField CombatReach; - UpdateField DisplayScale; - UpdateField CreatureFamily; - UpdateField CreatureType; - UpdateField NativeDisplayID; - UpdateField NativeXDisplayScale; - UpdateField MountDisplayID; - UpdateField CosmeticMountDisplayID; - UpdateField MinDamage; - UpdateField MaxDamage; - UpdateField MinOffHandDamage; - UpdateField MaxOffHandDamage; - UpdateField StandState; - UpdateField PetTalentPoints; - UpdateField VisFlags; - UpdateField AnimTier; - UpdateField PetNumber; - UpdateField PetNameTimestamp; - UpdateField PetExperience; - UpdateField PetNextLevelExperience; - UpdateField ModCastingSpeed; - UpdateField ModCastingSpeedNeg; - UpdateField ModSpellHaste; - UpdateField ModHaste; - UpdateField ModRangedHaste; - UpdateField ModHasteRegen; - UpdateField ModTimeRate; - UpdateField CreatedBySpell; - UpdateField EmoteState; - UpdateField BaseMana; - UpdateField BaseHealth; - UpdateField SheatheState; - UpdateField PvpFlags; + UpdateField RangedAttackRoundBaseTime; + UpdateField BoundingRadius; + UpdateField CombatReach; + UpdateField DisplayScale; + UpdateField CreatureFamily; + UpdateField CreatureType; + UpdateField NativeDisplayID; + UpdateField NativeXDisplayScale; + UpdateField MountDisplayID; + UpdateField CosmeticMountDisplayID; + UpdateField MinDamage; + UpdateField MaxDamage; + UpdateField MinOffHandDamage; + UpdateField MaxOffHandDamage; + UpdateField StandState; + UpdateField PetTalentPoints; + UpdateField VisFlags; + UpdateField AnimTier; + UpdateField PetNumber; + UpdateField PetNameTimestamp; + UpdateField PetExperience; + UpdateField PetNextLevelExperience; + UpdateField ModCastingSpeed; + UpdateField ModCastingSpeedNeg; + UpdateField ModSpellHaste; + UpdateField ModHaste; + UpdateField ModRangedHaste; + UpdateField ModHasteRegen; + UpdateField ModTimeRate; + UpdateField CreatedBySpell; + UpdateField EmoteState; + UpdateField BaseMana; + UpdateField BaseHealth; + UpdateField SheatheState; + UpdateField PvpFlags; struct PvpFlagsTag : ViewerDependentValueTag {}; - UpdateField PetFlags; - UpdateField ShapeshiftForm; - UpdateField AttackPower; - UpdateField AttackPowerModPos; - UpdateField AttackPowerModNeg; - UpdateField AttackPowerMultiplier; - UpdateField AttackPowerModSupport; - UpdateField RangedAttackPower; - UpdateField RangedAttackPowerModPos; - UpdateField RangedAttackPowerModNeg; - UpdateField RangedAttackPowerMultiplier; - UpdateField RangedAttackPowerModSupport; - UpdateField MainHandWeaponAttackPower; - UpdateField OffHandWeaponAttackPower; - UpdateField RangedWeaponAttackPower; - UpdateField SetAttackSpeedAura; - UpdateField Lifesteal; - UpdateField MinRangedDamage; - UpdateField MaxRangedDamage; - UpdateField ManaCostMultiplier; - UpdateField MaxHealthModifier; - UpdateField HoverHeight; - UpdateField MinItemLevelCutoff; - UpdateField MinItemLevel; - UpdateField MaxItemLevel; - UpdateField AzeriteItemLevel; - UpdateField WildBattlePetLevel; - UpdateField BattlePetCompanionExperience; - UpdateField BattlePetCompanionNameTimestamp; - UpdateField InteractSpellID; + UpdateField PetFlags; + UpdateField ShapeshiftForm; + UpdateField AttackPower; + UpdateField AttackPowerModPos; + UpdateField AttackPowerModNeg; + UpdateField AttackPowerMultiplier; + UpdateField AttackPowerModSupport; + UpdateField RangedAttackPower; + UpdateField RangedAttackPowerModPos; + UpdateField RangedAttackPowerModNeg; + UpdateField RangedAttackPowerMultiplier; + UpdateField RangedAttackPowerModSupport; + UpdateField MainHandWeaponAttackPower; + UpdateField OffHandWeaponAttackPower; + UpdateField RangedWeaponAttackPower; + UpdateField SetAttackSpeedAura; + UpdateField Lifesteal; + UpdateField MinRangedDamage; + UpdateField MaxRangedDamage; + UpdateField ManaCostMultiplier; + UpdateField MaxHealthModifier; + UpdateField HoverHeight; + UpdateField MinItemLevelCutoff; + UpdateField MinItemLevel; + UpdateField MaxItemLevel; + UpdateField AzeriteItemLevel; + UpdateField WildBattlePetLevel; + UpdateField BattlePetCompanionExperience; + UpdateField BattlePetCompanionNameTimestamp; + UpdateField InteractSpellID; struct InteractSpellIDTag : ViewerDependentValueTag {}; - UpdateField ScaleDuration; - UpdateField LooksLikeMountID; - UpdateField LooksLikeCreatureID; - UpdateField LookAtControllerID; - UpdateField PerksVendorItemID; - UpdateField TaxiNodesID; - UpdateField GuildGUID; - UpdateField FlightCapabilityID; - UpdateField GlideEventSpeedDivisor; // Movement speed gets divided by this value when evaluating what GlideEvents to use + UpdateField ScaleDuration; + UpdateField LooksLikeMountID; + UpdateField LooksLikeCreatureID; + UpdateField LookAtControllerID; + UpdateField PerksVendorItemID; + UpdateField TaxiNodesID; + UpdateField GuildGUID; + UpdateField FlightCapabilityID; + UpdateField GlideEventSpeedDivisor; // Movement speed gets divided by this value when evaluating what GlideEvents to use + UpdateField Field_308; + UpdateField Field_30C; UpdateField SilencedSchoolMask; UpdateField CurrentAreaID; UpdateField NameplateAttachToGUID; // When set, nameplate of this unit will instead appear on that object @@ -452,6 +452,16 @@ struct ArenaCooldown : public IsUpdateFieldStructureTag, public HasChangesMask<8 void ClearChangesMask(); }; +struct PetCreatureName : public IsUpdateFieldStructureTag, public HasChangesMask<3> +{ + UpdateField CreatureID; + UpdateField Name; + + void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; + void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + void ClearChangesMask(); +}; + struct CTROptions : public IsUpdateFieldStructureTag { int32 ContentTuningConditionMask; @@ -486,7 +496,7 @@ struct CustomTabardInfo : public IsUpdateFieldStructureTag, public HasChangesMas void ClearChangesMask(); }; -struct PlayerData : public IsUpdateFieldStructureTag, public HasChangesMask<288> +struct PlayerData : public IsUpdateFieldStructureTag, public HasChangesMask<289> { UpdateField HasQuestSession; UpdateField HasLevelLink; @@ -494,49 +504,50 @@ struct PlayerData : public IsUpdateFieldStructureTag, public HasChangesMask<288> DynamicUpdateField QaCustomizations; DynamicUpdateField QuestSessionQuestLog; DynamicUpdateField ArenaCooldowns; - DynamicUpdateField VisualItemReplacements; - UpdateField DuelArbiter; - UpdateField WowAccount; - UpdateField BnetAccount; - UpdateField GuildClubMemberID; - UpdateField LootTargetGUID; - UpdateField PlayerFlags; - UpdateField PlayerFlagsEx; - UpdateField GuildRankID; - UpdateField GuildDeleteDate; - UpdateField GuildLevel; - UpdateField NativeSex; - UpdateField Inebriation; - UpdateField PvpTitle; - UpdateField ArenaFaction; - UpdateField DuelTeam; - UpdateField GuildTimeStamp; - UpdateField PlayerTitle; - UpdateField FakeInebriation; - UpdateField VirtualPlayerRealm; - UpdateField CurrentSpecID; - UpdateField TaxiMountAnimKitID; - UpdateField CurrentBattlePetBreedQuality; - UpdateField HonorLevel; - UpdateField LogoutTime; - UpdateField Name; - UpdateField Field_1AC; - UpdateField Field_1B0; - UpdateField CurrentBattlePetSpeciesID; - UpdateField CtrOptions; - UpdateField CovenantID; - UpdateField SoulbindID; - UpdateField DungeonScore; - UpdateField SpectateTarget; - UpdateField Field_200; - OptionalUpdateField DeclinedNames; - UpdateField PersonalTabard; - UpdateFieldArray PartyType; - UpdateFieldArray QuestLog; - UpdateFieldArray VisibleItems; - UpdateFieldArray AvgItemLevel; - UpdateFieldArray VisibleEquipableSpells; - UpdateFieldArray Field_3120; + DynamicUpdateField VisualItemReplacements; + DynamicUpdateField PetNames; + UpdateField DuelArbiter; + UpdateField WowAccount; + UpdateField BnetAccount; + UpdateField GuildClubMemberID; + UpdateField LootTargetGUID; + UpdateField PlayerFlags; + UpdateField PlayerFlagsEx; + UpdateField GuildRankID; + UpdateField GuildDeleteDate; + UpdateField GuildLevel; + UpdateField NativeSex; + UpdateField Inebriation; + UpdateField PvpTitle; + UpdateField ArenaFaction; + UpdateField DuelTeam; + UpdateField GuildTimeStamp; + UpdateField PlayerTitle; + UpdateField FakeInebriation; + UpdateField VirtualPlayerRealm; + UpdateField CurrentSpecID; + UpdateField TaxiMountAnimKitID; + UpdateField CurrentBattlePetBreedQuality; + UpdateField HonorLevel; + UpdateField LogoutTime; + UpdateField Name; + UpdateField Field_1AC; + UpdateField Field_1B0; + UpdateField CurrentBattlePetSpeciesID; + UpdateField CtrOptions; + UpdateField CovenantID; + UpdateField SoulbindID; + UpdateField DungeonScore; + UpdateField SpectateTarget; + UpdateField Field_200; + OptionalUpdateField DeclinedNames; + UpdateField PersonalTabard; + UpdateFieldArray PartyType; + UpdateFieldArray QuestLog; + UpdateFieldArray VisibleItems; + UpdateFieldArray AvgItemLevel; + UpdateFieldArray VisibleEquipableSpells; + UpdateFieldArray Field_3120; void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Player const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Player const* owner, Player const* receiver) const; @@ -657,9 +668,9 @@ struct ResearchHistory : public IsUpdateFieldStructureTag, public HasChangesMask struct MawPower : public IsUpdateFieldStructureTag { - int32 Field_0; - int32 Field_4; - int32 Field_8; + int32 SpellID; + int32 MawPowerID; + int32 Stacks; void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; @@ -880,7 +891,7 @@ struct Research : public IsUpdateFieldStructureTag bool operator!=(Research const& right) const { return !(*this == right); } }; -struct ActivePlayerData : public IsUpdateFieldStructureTag, public HasChangesMask<1452> +struct ActivePlayerData : public IsUpdateFieldStructureTag, public HasChangesMask<1454> { UpdateField BackpackAutoSortDisabled; UpdateField BackpackSellJunkDisabled; @@ -888,7 +899,7 @@ struct ActivePlayerData : public IsUpdateFieldStructureTag, public HasChangesMas UpdateField SortBagsRightToLeft; UpdateField InsertItemsLeftToRight; UpdateField HasPerksProgramPendingReward; - UpdateFieldArray, 8, 36, 37> DataFlags; + UpdateFieldArray, 9, 36, 37> DataFlags; UpdateFieldArray, 1, 38, 39> ResearchSites; UpdateFieldArray, 1, 40, 41> ResearchSiteProgress; UpdateFieldArray, 1, 42, 43> Research; @@ -997,36 +1008,37 @@ struct ActivePlayerData : public IsUpdateFieldStructureTag, public HasChangesMas UpdateField Field_1410; OptionalUpdateField QuestSession; UpdateField UiChromieTimeExpansionID; - UpdateField TransportServerTime; - UpdateField WeeklyRewardsPeriodSinceOrigin; // week count since Cfg_RegionsEntry::ChallengeOrigin - UpdateField DEBUGSoulbindConduitRank; - UpdateField DungeonScore; - UpdateField ActiveCombatTraitConfigID; - UpdateField ItemUpgradeHighOnehandWeaponItemID; - UpdateField ItemUpgradeHighFingerItemID; - UpdateField ItemUpgradeHighFingerWatermark; - UpdateField ItemUpgradeHighTrinketItemID; - UpdateField ItemUpgradeHighTrinketWatermark; - UpdateField LootHistoryInstanceID; - OptionalUpdateField PetStable; - UpdateField RequiredMountCapabilityFlags; - UpdateFieldArray InvSlots; - UpdateFieldArray RestInfo; - UpdateFieldArray ModDamageDonePos; - UpdateFieldArray ModDamageDoneNeg; - UpdateFieldArray ModDamageDonePercent; - UpdateFieldArray ModHealingDonePercent; - UpdateFieldArray WeaponDmgMultipliers; - UpdateFieldArray WeaponAtkSpeedMultipliers; - UpdateFieldArray BuybackPrice; - UpdateFieldArray BuybackTimestamp; - UpdateFieldArray CombatRatings; - UpdateFieldArray NoReagentCostMask; - UpdateFieldArray ProfessionSkillLine; - UpdateFieldArray BagSlotFlags; - UpdateFieldArray BankBagSlotFlags; - UpdateFieldArray QuestCompleted; - UpdateFieldArray ItemUpgradeHighWatermark; + UpdateField TimerunningSeasonID; + UpdateField TransportServerTime; + UpdateField WeeklyRewardsPeriodSinceOrigin; // week count since Cfg_RegionsEntry::ChallengeOrigin + UpdateField DEBUGSoulbindConduitRank; + UpdateField DungeonScore; + UpdateField ActiveCombatTraitConfigID; + UpdateField ItemUpgradeHighOnehandWeaponItemID; + UpdateField ItemUpgradeHighFingerItemID; + UpdateField ItemUpgradeHighFingerWatermark; + UpdateField ItemUpgradeHighTrinketItemID; + UpdateField ItemUpgradeHighTrinketWatermark; + UpdateField LootHistoryInstanceID; + OptionalUpdateField PetStable; + UpdateField RequiredMountCapabilityFlags; + UpdateFieldArray InvSlots; + UpdateFieldArray RestInfo; + UpdateFieldArray ModDamageDonePos; + UpdateFieldArray ModDamageDoneNeg; + UpdateFieldArray ModDamageDonePercent; + UpdateFieldArray ModHealingDonePercent; + UpdateFieldArray WeaponDmgMultipliers; + UpdateFieldArray WeaponAtkSpeedMultipliers; + UpdateFieldArray BuybackPrice; + UpdateFieldArray BuybackTimestamp; + UpdateFieldArray CombatRatings; + UpdateFieldArray NoReagentCostMask; + UpdateFieldArray ProfessionSkillLine; + UpdateFieldArray BagSlotFlags; + UpdateFieldArray BankBagSlotFlags; + UpdateFieldArray QuestCompleted; + UpdateFieldArray ItemUpgradeHighWatermark; void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Player const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Player const* owner, Player const* receiver) const; diff --git a/src/server/game/Entities/Pet/PetDefines.h b/src/server/game/Entities/Pet/PetDefines.h index e926cf64966..936d68d71b2 100644 --- a/src/server/game/Entities/Pet/PetDefines.h +++ b/src/server/game/Entities/Pet/PetDefines.h @@ -61,7 +61,8 @@ constexpr bool IsStabledPetSlot(PetSaveMode slot) enum PetStableFlags : uint8 { PET_STABLE_ACTIVE = 0x1, - PET_STABLE_INACTIVE = 0x2 + PET_STABLE_INACTIVE = 0x2, + PET_STABLE_FAVORITE = 0x8 }; enum PetSpellState diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index ea0adbb522d..6383f9eb9d1 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -1244,6 +1244,8 @@ uint16 Player::GetChatFlags() const tag |= CHAT_FLAG_AFK; if (IsDeveloper()) tag |= CHAT_FLAG_DEV; + if (m_activePlayerData->TimerunningSeasonID) + tag |= CHAT_FLAG_TIMERUNNING; return tag; } @@ -21689,6 +21691,48 @@ void Player::RemovePet(Pet* pet, PetSaveMode mode, bool returnreagent) } } +void Player::DeletePetFromDB(uint32 petNumber) +{ + if (m_activePlayerData->PetStable.has_value()) + { + int32 ufIndex = m_activePlayerData->PetStable->Pets.FindIndexIf([petNumber](UF::StablePetInfo const& p) { return p.PetNumber == petNumber; }); + if (ufIndex >= 0) + RemoveDynamicUpdateFieldValue(m_values.ModifyValue(&Player::m_activePlayerData) + .ModifyValue(&UF::ActivePlayerData::PetStable, 0) + .ModifyValue(&UF::StableInfo::Pets), ufIndex); + } + + if (!m_petStable) + return; + + if (Optional petIndex = m_petStable->GetCurrentActivePetIndex()) + if (m_petStable->ActivePets[*petIndex] && m_petStable->ActivePets[*petIndex]->PetNumber == petNumber) + m_petStable->CurrentPetIndex.reset(); + + auto petNumberPred = [petNumber](Optional const& pet) + { + return pet && pet->PetNumber == petNumber && pet->Type == HUNTER_PET; + }; + + bool foundPet = false; + auto activeItr = std::ranges::find_if(m_petStable->ActivePets, petNumberPred); + if (activeItr != m_petStable->ActivePets.end()) + { + activeItr->reset(); + foundPet = true; + } + + auto stabledItr = std::ranges::find_if(m_petStable->StabledPets, petNumberPred); + if (stabledItr != m_petStable->StabledPets.end()) + { + stabledItr->reset(); + foundPet = true; + } + + if (foundPet) + Pet::DeleteFromDB(petNumber); +} + void Player::SendTameFailure(PetTameResult result) { WorldPackets::Pet::PetTameFailure petTameFailure; @@ -28871,18 +28915,48 @@ void Player::SetPetSlot(uint32 petNumber, PetSaveMode dstPetSlot) if (srcPetIndex >= 0) { - SetUpdateFieldValue(m_values.ModifyValue(&Player::m_activePlayerData) + PetStableFlags flagToAdd, flagToRemove; + if (IsActivePetSlot(dstPetSlot)) + { + flagToAdd = PET_STABLE_ACTIVE; + flagToRemove = PET_STABLE_INACTIVE; + } + else + { + flagToAdd = PET_STABLE_INACTIVE; + flagToRemove = PET_STABLE_ACTIVE; + } + + auto petSetter = m_values.ModifyValue(&Player::m_activePlayerData) .ModifyValue(&UF::ActivePlayerData::PetStable, 0) - .ModifyValue(&UF::StableInfo::Pets, srcPetIndex) - .ModifyValue(&UF::StablePetInfo::PetSlot), dstPetSlot); + .ModifyValue(&UF::StableInfo::Pets, srcPetIndex); + + SetUpdateFieldValue(petSetter.ModifyValue(&UF::StablePetInfo::PetSlot), dstPetSlot); + SetUpdateFieldFlagValue(petSetter.ModifyValue(&UF::StablePetInfo::PetFlags), flagToAdd); + RemoveUpdateFieldFlagValue(petSetter.ModifyValue(&UF::StablePetInfo::PetFlags), flagToRemove); } if (dstPetIndex >= 0) { - SetUpdateFieldValue(m_values.ModifyValue(&Player::m_activePlayerData) + PetStableFlags flagToAdd, flagToRemove; + if (IsActivePetSlot(srcPetSlot)) + { + flagToAdd = PET_STABLE_ACTIVE; + flagToRemove = PET_STABLE_INACTIVE; + } + else + { + flagToAdd = PET_STABLE_INACTIVE; + flagToRemove = PET_STABLE_ACTIVE; + } + + auto petSetter = m_values.ModifyValue(&Player::m_activePlayerData) .ModifyValue(&UF::ActivePlayerData::PetStable, 0) - .ModifyValue(&UF::StableInfo::Pets, dstPetIndex) - .ModifyValue(&UF::StablePetInfo::PetSlot), srcPetSlot); + .ModifyValue(&UF::StableInfo::Pets, dstPetIndex); + + SetUpdateFieldValue(petSetter.ModifyValue(&UF::StablePetInfo::PetSlot), srcPetSlot); + SetUpdateFieldFlagValue(petSetter.ModifyValue(&UF::StablePetInfo::PetFlags), flagToAdd); + RemoveUpdateFieldFlagValue(petSetter.ModifyValue(&UF::StablePetInfo::PetFlags), flagToRemove); } sess->SendPetStableResult(StableResult::StableSuccess); diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 988b2852022..95eaa6ac681 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -1250,6 +1250,7 @@ class TC_GAME_API Player final : public Unit, public GridObject Pet* GetPet() const; Pet* SummonPet(uint32 entry, Optional slot, float x, float y, float z, float ang, uint32 despwtime, bool* isNew = nullptr); void RemovePet(Pet* pet, PetSaveMode mode, bool returnreagent = false); + void DeletePetFromDB(uint32 petNumber); void SendTameFailure(PetTameResult result); // pet auras diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp index d2d7c36b606..2c182149d39 100644 --- a/src/server/game/Handlers/CharacterHandler.cpp +++ b/src/server/game/Handlers/CharacterHandler.cpp @@ -762,6 +762,12 @@ void WorldSession::HandleCharCreateOpcode(WorldPackets::Character::CreateCharact return; } + if (charCreate.CreateInfo->TimerunningSeasonID) + { + SendCharCreate(CHAR_CREATE_TIMERUNNING); + return; + } + std::shared_ptr createInfo = charCreate.CreateInfo; CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHECK_NAME); stmt->setString(0, charCreate.CreateInfo->Name); diff --git a/src/server/game/Handlers/ChatHandler.cpp b/src/server/game/Handlers/ChatHandler.cpp index e1c3b74622c..410eb8ec122 100644 --- a/src/server/game/Handlers/ChatHandler.cpp +++ b/src/server/game/Handlers/ChatHandler.cpp @@ -130,7 +130,7 @@ void WorldSession::HandleChatMessageOpcode(WorldPackets::Chat::ChatMessage& chat void WorldSession::HandleChatMessageWhisperOpcode(WorldPackets::Chat::ChatMessageWhisper& chatMessageWhisper) { - HandleChatMessage(CHAT_MSG_WHISPER, Language(chatMessageWhisper.Language), chatMessageWhisper.Text, chatMessageWhisper.Target); + HandleChatMessage(CHAT_MSG_WHISPER, Language(chatMessageWhisper.Language), chatMessageWhisper.Text, chatMessageWhisper.Target, chatMessageWhisper.TargetGUID); } void WorldSession::HandleChatMessageChannelOpcode(WorldPackets::Chat::ChatMessageChannel& chatMessageChannel) @@ -143,7 +143,7 @@ void WorldSession::HandleChatMessageEmoteOpcode(WorldPackets::Chat::ChatMessageE HandleChatMessage(CHAT_MSG_EMOTE, LANG_UNIVERSAL, chatMessageEmote.Text); } -ChatMessageResult WorldSession::HandleChatMessage(ChatMsg type, Language lang, std::string msg, std::string target /*= ""*/, Optional channelGuid /*= {}*/) +ChatMessageResult WorldSession::HandleChatMessage(ChatMsg type, Language lang, std::string msg, std::string target /*= ""*/, Optional targetGuid /*= {}*/) { Player* sender = GetPlayer(); @@ -292,15 +292,23 @@ ChatMessageResult WorldSession::HandleChatMessage(ChatMsg type, Language lang, s case CHAT_MSG_WHISPER: { /// @todo implement cross realm whispers (someday) - ExtendedPlayerName extName = ExtractExtendedPlayerName(target); - - if (!normalizePlayerName(extName.Name)) + Player* receiver = nullptr; + if (targetGuid && !targetGuid->IsEmpty()) { - SendChatPlayerNotfoundNotice(target); - break; + receiver = ObjectAccessor::FindConnectedPlayer(*targetGuid); } + else + { + ExtendedPlayerName extName = ExtractExtendedPlayerName(target); + + if (!normalizePlayerName(extName.Name)) + { + SendChatPlayerNotfoundNotice(target); + break; + } - Player* receiver = ObjectAccessor::FindConnectedPlayerByName(extName.Name); + receiver = ObjectAccessor::FindConnectedPlayerByName(extName.Name); + } if (!receiver || (lang != LANG_ADDON && !receiver->isAcceptWhispers() && receiver->GetSession()->HasPermission(rbac::RBAC_PERM_CAN_FILTER_WHISPERS) && !receiver->IsInWhisperWhiteList(sender->GetGUID()))) { SendChatPlayerNotfoundNotice(target); @@ -434,8 +442,8 @@ ChatMessageResult WorldSession::HandleChatMessage(ChatMsg type, Language lang, s } } - Channel* chn = channelGuid - ? ChannelMgr::GetChannelForPlayerByGuid(*channelGuid, sender) + Channel* chn = targetGuid + ? ChannelMgr::GetChannelForPlayerByGuid(*targetGuid, sender) : ChannelMgr::GetChannelForPlayerByNamePart(target, sender); if (chn) { @@ -479,11 +487,23 @@ void WorldSession::HandleChatAddonMessageOpcode(WorldPackets::Chat::ChatAddonMes void WorldSession::HandleChatAddonMessageTargetedOpcode(WorldPackets::Chat::ChatAddonMessageTargeted& chatAddonMessageTargeted) { - HandleChatAddonMessage(chatAddonMessageTargeted.Params.Type, chatAddonMessageTargeted.Params.Prefix, chatAddonMessageTargeted.Params.Text, - chatAddonMessageTargeted.Params.IsLogged, chatAddonMessageTargeted.Target, chatAddonMessageTargeted.ChannelGUID); + switch (chatAddonMessageTargeted.Params.Type) + { + case CHAT_MSG_WHISPER: + HandleChatAddonMessage(chatAddonMessageTargeted.Params.Type, chatAddonMessageTargeted.Params.Prefix, chatAddonMessageTargeted.Params.Text, + chatAddonMessageTargeted.Params.IsLogged, chatAddonMessageTargeted.PlayerName, chatAddonMessageTargeted.PlayerGUID); + break; + case CHAT_MSG_CHANNEL: + HandleChatAddonMessage(chatAddonMessageTargeted.Params.Type, chatAddonMessageTargeted.Params.Prefix, chatAddonMessageTargeted.Params.Text, + chatAddonMessageTargeted.Params.IsLogged, chatAddonMessageTargeted.ChannelName, chatAddonMessageTargeted.ChannelGUID); + break; + default: + TC_LOG_ERROR("misc", "HandleChatAddonMessageTargetedOpcode: unknown addon message type {}", chatAddonMessageTargeted.Params.Type); + break; + } } -void WorldSession::HandleChatAddonMessage(ChatMsg type, std::string prefix, std::string text, bool isLogged, std::string target /*= ""*/, Optional channelGuid /*= {}*/) +void WorldSession::HandleChatAddonMessage(ChatMsg type, std::string prefix, std::string text, bool isLogged, std::string target /*= ""*/, Optional targetGuid /*= {}*/) { Player* sender = GetPlayer(); @@ -525,12 +545,20 @@ void WorldSession::HandleChatAddonMessage(ChatMsg type, std::string prefix, std: case CHAT_MSG_WHISPER: { /// @todo implement cross realm whispers (someday) - ExtendedPlayerName extName = ExtractExtendedPlayerName(target); + Player* receiver = nullptr; + if (targetGuid && !targetGuid->IsEmpty()) + { + receiver = ObjectAccessor::FindConnectedPlayer(*targetGuid); + } + else + { + ExtendedPlayerName extName = ExtractExtendedPlayerName(target); - if (!normalizePlayerName(extName.Name)) - break; + if (!normalizePlayerName(extName.Name)) + break; - Player* receiver = ObjectAccessor::FindPlayerByName(extName.Name); + receiver = ObjectAccessor::FindConnectedPlayerByName(extName.Name); + } if (!receiver) break; @@ -564,8 +592,8 @@ void WorldSession::HandleChatAddonMessage(ChatMsg type, std::string prefix, std: } case CHAT_MSG_CHANNEL: { - Channel* chn = channelGuid - ? ChannelMgr::GetChannelForPlayerByGuid(*channelGuid, sender) + Channel* chn = targetGuid + ? ChannelMgr::GetChannelForPlayerByGuid(*targetGuid, sender) : ChannelMgr::GetChannelForPlayerByNamePart(target, sender); if (chn) chn->AddonSay(sender->GetGUID(), prefix, text.c_str(), isLogged); diff --git a/src/server/game/Handlers/PetHandler.cpp b/src/server/game/Handlers/PetHandler.cpp index cd680f4a973..48ad47cdb48 100644 --- a/src/server/game/Handlers/PetHandler.cpp +++ b/src/server/game/Handlers/PetHandler.cpp @@ -615,6 +615,19 @@ void WorldSession::HandlePetAbandon(WorldPackets::Pet::PetAbandon& packet) } } +void WorldSession::HandlePetAbandonByNumber(WorldPackets::Pet::PetAbandonByNumber const& petAbandonByNumber) +{ + if (Pet* pet = _player->GetPet()) + { + if (pet->IsHunterPet() && pet->m_unitData->PetNumber == petAbandonByNumber.PetNumber) + _player->RemovePet(pet, PET_SAVE_AS_DELETED); + } + else + { + _player->DeletePetFromDB(petAbandonByNumber.PetNumber); + } +} + void WorldSession::HandlePetSpellAutocastOpcode(WorldPackets::Pet::PetSpellAutocast& packet) { Creature* pet = ObjectAccessor::GetCreatureOrPetOrVehicle(*_player, packet.PetGUID); diff --git a/src/server/game/Handlers/TaxiHandler.cpp b/src/server/game/Handlers/TaxiHandler.cpp index 39f9a55f601..59dd291a7a1 100644 --- a/src/server/game/Handlers/TaxiHandler.cpp +++ b/src/server/game/Handlers/TaxiHandler.cpp @@ -140,6 +140,7 @@ bool WorldSession::SendLearnNewTaxiNode(Creature* unit) data.Status = TAXISTATUS_LEARNED; SendPacket(data.Write()); + GetPlayer()->UpdateCriteria(CriteriaType::LearnTaxiNode, curloc); return true; } else diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h index 55d257a4d3b..d2b9577d6c2 100644 --- a/src/server/game/Miscellaneous/SharedDefines.h +++ b/src/server/game/Miscellaneous/SharedDefines.h @@ -6010,7 +6010,8 @@ enum ChatFlags CHAT_FLAG_MOBILE = 0x0040, CHAT_FLAG_GUIDE = 0x1000, CHAT_FLAG_NEWCOMER = 0x2000, - CHAT_FLAG_CENSORED = 0x4000 + CHAT_FLAG_CENSORED = 0x4000, + CHAT_FLAG_TIMERUNNING= 0x8000 }; enum ChatLinkColors : uint32 @@ -6269,55 +6270,56 @@ enum ResponseCodes CHAR_CREATE_CLASS_TRIAL_THROTTLE_WEEK = 60, CHAR_CREATE_CLASS_TRIAL_THROTTLE_ACCOUNT = 61, CHAR_CREATE_FACTION_BALANCE = 62, - - CHAR_DELETE_IN_PROGRESS = 63, - CHAR_DELETE_SUCCESS = 64, - CHAR_DELETE_FAILED = 65, - CHAR_DELETE_FAILED_CHARACTER_SERVICE_PENDING = 66, - CHAR_DELETE_FAILED_GUILD_LEADER = 67, - CHAR_DELETE_FAILED_ARENA_CAPTAIN = 68, - CHAR_DELETE_FAILED_HAS_HEIRLOOM_OR_MAIL = 69, - CHAR_DELETE_FAILED_DEPRECATED1 = 70, - CHAR_DELETE_FAILED_HAS_WOW_TOKEN = 71, - CHAR_DELETE_FAILED_DEPRECATED2 = 72, - CHAR_DELETE_FAILED_COMMUNITY_OWNER = 73, - - CHAR_LOGIN_IN_PROGRESS = 74, - CHAR_LOGIN_SUCCESS = 75, - CHAR_LOGIN_NO_WORLD = 76, - CHAR_LOGIN_DUPLICATE_CHARACTER = 77, - CHAR_LOGIN_NO_INSTANCES = 78, - CHAR_LOGIN_FAILED = 79, - CHAR_LOGIN_DISABLED = 80, - CHAR_LOGIN_NO_CHARACTER = 81, - CHAR_LOGIN_LOCKED_FOR_TRANSFER = 82, - CHAR_LOGIN_LOCKED_BY_BILLING = 83, - CHAR_LOGIN_LOCKED_BY_MOBILE_AH = 84, - CHAR_LOGIN_TEMPORARY_GM_LOCK = 85, - CHAR_LOGIN_LOCKED_BY_CHARACTER_UPGRADE = 86, - CHAR_LOGIN_LOCKED_BY_REVOKED_CHARACTER_UPGRADE = 87, - CHAR_LOGIN_LOCKED_BY_REVOKED_VAS_TRANSACTION = 88, - CHAR_LOGIN_LOCKED_BY_RESTRICTION = 89, - CHAR_LOGIN_LOCKED_FOR_REALM_PLAYTYPE = 90, - - CHAR_NAME_SUCCESS = 91, - CHAR_NAME_FAILURE = 92, - CHAR_NAME_NO_NAME = 93, - CHAR_NAME_TOO_SHORT = 94, - CHAR_NAME_TOO_LONG = 95, - CHAR_NAME_INVALID_CHARACTER = 96, - CHAR_NAME_MIXED_LANGUAGES = 97, - CHAR_NAME_PROFANE = 98, - CHAR_NAME_RESERVED = 99, - CHAR_NAME_INVALID_APOSTROPHE = 100, - CHAR_NAME_MULTIPLE_APOSTROPHES = 101, - CHAR_NAME_THREE_CONSECUTIVE = 102, - CHAR_NAME_INVALID_SPACE = 103, - CHAR_NAME_CONSECUTIVE_SPACES = 104, - CHAR_NAME_RUSSIAN_CONSECUTIVE_SILENT_CHARACTERS = 105, - CHAR_NAME_RUSSIAN_SILENT_CHARACTER_AT_BEGINNING_OR_END = 106, - CHAR_NAME_DECLENSION_DOESNT_MATCH_BASE_NAME = 107, - CHAR_NAME_SPACES_DISALLOWED = 108, + CHAR_CREATE_TIMERUNNING = 63, + + CHAR_DELETE_IN_PROGRESS = 64, + CHAR_DELETE_SUCCESS = 65, + CHAR_DELETE_FAILED = 66, + CHAR_DELETE_FAILED_CHARACTER_SERVICE_PENDING = 67, + CHAR_DELETE_FAILED_GUILD_LEADER = 68, + CHAR_DELETE_FAILED_ARENA_CAPTAIN = 69, + CHAR_DELETE_FAILED_HAS_HEIRLOOM_OR_MAIL = 70, + CHAR_DELETE_FAILED_DEPRECATED1 = 71, + CHAR_DELETE_FAILED_HAS_WOW_TOKEN = 72, + CHAR_DELETE_FAILED_DEPRECATED2 = 73, + CHAR_DELETE_FAILED_COMMUNITY_OWNER = 74, + + CHAR_LOGIN_IN_PROGRESS = 75, + CHAR_LOGIN_SUCCESS = 76, + CHAR_LOGIN_NO_WORLD = 77, + CHAR_LOGIN_DUPLICATE_CHARACTER = 78, + CHAR_LOGIN_NO_INSTANCES = 79, + CHAR_LOGIN_FAILED = 80, + CHAR_LOGIN_DISABLED = 81, + CHAR_LOGIN_NO_CHARACTER = 82, + CHAR_LOGIN_LOCKED_FOR_TRANSFER = 83, + CHAR_LOGIN_LOCKED_BY_BILLING = 84, + CHAR_LOGIN_LOCKED_BY_MOBILE_AH = 85, + CHAR_LOGIN_TEMPORARY_GM_LOCK = 86, + CHAR_LOGIN_LOCKED_BY_CHARACTER_UPGRADE = 87, + CHAR_LOGIN_LOCKED_BY_REVOKED_CHARACTER_UPGRADE = 88, + CHAR_LOGIN_LOCKED_BY_REVOKED_VAS_TRANSACTION = 89, + CHAR_LOGIN_LOCKED_BY_RESTRICTION = 90, + CHAR_LOGIN_LOCKED_FOR_REALM_PLAYTYPE = 91, + + CHAR_NAME_SUCCESS = 92, + CHAR_NAME_FAILURE = 93, + CHAR_NAME_NO_NAME = 94, + CHAR_NAME_TOO_SHORT = 95, + CHAR_NAME_TOO_LONG = 96, + CHAR_NAME_INVALID_CHARACTER = 97, + CHAR_NAME_MIXED_LANGUAGES = 98, + CHAR_NAME_PROFANE = 99, + CHAR_NAME_RESERVED = 100, + CHAR_NAME_INVALID_APOSTROPHE = 101, + CHAR_NAME_MULTIPLE_APOSTROPHES = 102, + CHAR_NAME_THREE_CONSECUTIVE = 103, + CHAR_NAME_INVALID_SPACE = 104, + CHAR_NAME_CONSECUTIVE_SPACES = 105, + CHAR_NAME_RUSSIAN_CONSECUTIVE_SILENT_CHARACTERS = 106, + CHAR_NAME_RUSSIAN_SILENT_CHARACTER_AT_BEGINNING_OR_END = 107, + CHAR_NAME_DECLENSION_DOESNT_MATCH_BASE_NAME = 108, + CHAR_NAME_SPACES_DISALLOWED = 109, }; enum CharacterUndeleteResult @@ -7130,1005 +7132,1007 @@ enum class GameError : uint32 ERR_GUILD_PLAYER_NOT_FOUND_S = 135, ERR_GUILD_PLAYER_NOT_IN_GUILD_S = 136, ERR_GUILD_PLAYER_NOT_IN_GUILD = 137, - ERR_GUILD_CANT_PROMOTE_S = 138, - ERR_GUILD_CANT_DEMOTE_S = 139, - ERR_GUILD_NOT_IN_A_GUILD = 140, - ERR_GUILD_INTERNAL = 141, - ERR_GUILD_LEADER_IS_S = 142, - ERR_GUILD_LEADER_CHANGED_SS = 143, - ERR_GUILD_DISBANDED = 144, - ERR_GUILD_NOT_ALLIED = 145, - ERR_GUILD_NEW_LEADER_NOT_ALLIED = 146, - ERR_GUILD_LEADER_LEAVE = 147, - ERR_GUILD_RANKS_LOCKED = 148, - ERR_GUILD_RANK_IN_USE = 149, - ERR_GUILD_RANK_TOO_HIGH_S = 150, - ERR_GUILD_RANK_TOO_LOW_S = 151, - ERR_GUILD_NAME_EXISTS_S = 152, - ERR_GUILD_WITHDRAW_LIMIT = 153, - ERR_GUILD_NOT_ENOUGH_MONEY = 154, - ERR_GUILD_TOO_MUCH_MONEY = 155, - ERR_GUILD_BANK_CONJURED_ITEM = 156, - ERR_GUILD_BANK_EQUIPPED_ITEM = 157, - ERR_GUILD_BANK_BOUND_ITEM = 158, - ERR_GUILD_BANK_QUEST_ITEM = 159, - ERR_GUILD_BANK_WRAPPED_ITEM = 160, - ERR_GUILD_BANK_FULL = 161, - ERR_GUILD_BANK_WRONG_TAB = 162, - ERR_NO_GUILD_CHARTER = 163, - ERR_OUT_OF_RANGE = 164, - ERR_PLAYER_DEAD = 165, - ERR_CLIENT_LOCKED_OUT = 166, - ERR_CLIENT_ON_TRANSPORT = 167, - ERR_KILLED_BY_S = 168, - ERR_LOOT_LOCKED = 169, - ERR_LOOT_TOO_FAR = 170, - ERR_LOOT_DIDNT_KILL = 171, - ERR_LOOT_BAD_FACING = 172, - ERR_LOOT_NOTSTANDING = 173, - ERR_LOOT_STUNNED = 174, - ERR_LOOT_NO_UI = 175, - ERR_LOOT_WHILE_INVULNERABLE = 176, - ERR_NO_LOOT = 177, - ERR_QUEST_ACCEPTED_S = 178, - ERR_QUEST_COMPLETE_S = 179, - ERR_QUEST_FAILED_S = 180, - ERR_QUEST_FAILED_BAG_FULL_S = 181, - ERR_QUEST_FAILED_MAX_COUNT_S = 182, - ERR_QUEST_FAILED_LOW_LEVEL = 183, - ERR_QUEST_FAILED_MISSING_ITEMS = 184, - ERR_QUEST_FAILED_WRONG_RACE = 185, - ERR_QUEST_FAILED_NOT_ENOUGH_MONEY = 186, - ERR_QUEST_FAILED_EXPANSION = 187, - ERR_QUEST_ONLY_ONE_TIMED = 188, - ERR_QUEST_NEED_PREREQS = 189, - ERR_QUEST_NEED_PREREQS_CUSTOM = 190, - ERR_QUEST_ALREADY_ON = 191, - ERR_QUEST_ALREADY_DONE = 192, - ERR_QUEST_ALREADY_DONE_DAILY = 193, - ERR_QUEST_HAS_IN_PROGRESS = 194, - ERR_QUEST_REWARD_EXP_I = 195, - ERR_QUEST_REWARD_MONEY_S = 196, - ERR_QUEST_MUST_CHOOSE = 197, - ERR_QUEST_LOG_FULL = 198, - ERR_COMBAT_DAMAGE_SSI = 199, - ERR_INSPECT_S = 200, - ERR_CANT_USE_ITEM = 201, - ERR_CANT_USE_ITEM_IN_ARENA = 202, - ERR_CANT_USE_ITEM_IN_RATED_BATTLEGROUND = 203, - ERR_MUST_EQUIP_ITEM = 204, - ERR_PASSIVE_ABILITY = 205, - ERR_2HSKILLNOTFOUND = 206, - ERR_NO_ATTACK_TARGET = 207, - ERR_INVALID_ATTACK_TARGET = 208, - ERR_ATTACK_PVP_TARGET_WHILE_UNFLAGGED = 209, - ERR_ATTACK_STUNNED = 210, - ERR_ATTACK_PACIFIED = 211, - ERR_ATTACK_MOUNTED = 212, - ERR_ATTACK_FLEEING = 213, - ERR_ATTACK_CONFUSED = 214, - ERR_ATTACK_CHARMED = 215, - ERR_ATTACK_DEAD = 216, - ERR_ATTACK_PREVENTED_BY_MECHANIC_S = 217, - ERR_ATTACK_CHANNEL = 218, - ERR_TAXISAMENODE = 219, - ERR_TAXINOSUCHPATH = 220, - ERR_TAXIUNSPECIFIEDSERVERERROR = 221, - ERR_TAXINOTENOUGHMONEY = 222, - ERR_TAXITOOFARAWAY = 223, - ERR_TAXINOVENDORNEARBY = 224, - ERR_TAXINOTVISITED = 225, - ERR_TAXIPLAYERBUSY = 226, - ERR_TAXIPLAYERALREADYMOUNTED = 227, - ERR_TAXIPLAYERSHAPESHIFTED = 228, - ERR_TAXIPLAYERMOVING = 229, - ERR_TAXINOPATHS = 230, - ERR_TAXINOTELIGIBLE = 231, - ERR_TAXINOTSTANDING = 232, - ERR_TAXIINCOMBAT = 233, - ERR_NO_REPLY_TARGET = 234, - ERR_GENERIC_NO_TARGET = 235, - ERR_INITIATE_TRADE_S = 236, - ERR_TRADE_REQUEST_S = 237, - ERR_TRADE_BLOCKED_S = 238, - ERR_TRADE_TARGET_DEAD = 239, - ERR_TRADE_TOO_FAR = 240, - ERR_TRADE_CANCELLED = 241, - ERR_TRADE_COMPLETE = 242, - ERR_TRADE_BAG_FULL = 243, - ERR_TRADE_TARGET_BAG_FULL = 244, - ERR_TRADE_MAX_COUNT_EXCEEDED = 245, - ERR_TRADE_TARGET_MAX_COUNT_EXCEEDED = 246, - ERR_INVENTORY_TRADE_TOO_MANY_UNIQUE_ITEM = 247, - ERR_ALREADY_TRADING = 248, - ERR_MOUNT_INVALIDMOUNTEE = 249, - ERR_MOUNT_TOOFARAWAY = 250, - ERR_MOUNT_ALREADYMOUNTED = 251, - ERR_MOUNT_NOTMOUNTABLE = 252, - ERR_MOUNT_NOTYOURPET = 253, - ERR_MOUNT_OTHER = 254, - ERR_MOUNT_LOOTING = 255, - ERR_MOUNT_RACECANTMOUNT = 256, - ERR_MOUNT_SHAPESHIFTED = 257, - ERR_MOUNT_NO_FAVORITES = 258, - ERR_MOUNT_NO_MOUNTS = 259, - ERR_DISMOUNT_NOPET = 260, - ERR_DISMOUNT_NOTMOUNTED = 261, - ERR_DISMOUNT_NOTYOURPET = 262, - ERR_SPELL_FAILED_TOTEMS = 263, - ERR_SPELL_FAILED_REAGENTS = 264, - ERR_SPELL_FAILED_REAGENTS_GENERIC = 265, - ERR_SPELL_FAILED_OPTIONAL_REAGENTS = 266, - ERR_CANT_TRADE_GOLD = 267, - ERR_SPELL_FAILED_EQUIPPED_ITEM = 268, - ERR_SPELL_FAILED_EQUIPPED_ITEM_CLASS_S = 269, - ERR_SPELL_FAILED_SHAPESHIFT_FORM_S = 270, - ERR_SPELL_FAILED_ANOTHER_IN_PROGRESS = 271, - ERR_BADATTACKFACING = 272, - ERR_BADATTACKPOS = 273, - ERR_CHEST_IN_USE = 274, - ERR_USE_CANT_OPEN = 275, - ERR_USE_LOCKED = 276, - ERR_DOOR_LOCKED = 277, - ERR_BUTTON_LOCKED = 278, - ERR_USE_LOCKED_WITH_ITEM_S = 279, - ERR_USE_LOCKED_WITH_SPELL_S = 280, - ERR_USE_LOCKED_WITH_SPELL_KNOWN_SI = 281, - ERR_USE_TOO_FAR = 282, - ERR_USE_BAD_ANGLE = 283, - ERR_USE_OBJECT_MOVING = 284, - ERR_USE_SPELL_FOCUS = 285, - ERR_USE_DESTROYED = 286, - ERR_SET_LOOT_FREEFORALL = 287, - ERR_SET_LOOT_ROUNDROBIN = 288, - ERR_SET_LOOT_MASTER = 289, - ERR_SET_LOOT_GROUP = 290, - ERR_SET_LOOT_THRESHOLD_S = 291, - ERR_NEW_LOOT_MASTER_S = 292, - ERR_SPECIFY_MASTER_LOOTER = 293, - ERR_LOOT_SPEC_CHANGED_S = 294, - ERR_TAME_FAILED = 295, - ERR_CHAT_WHILE_DEAD = 296, - ERR_CHAT_PLAYER_NOT_FOUND_S = 297, - ERR_NEWTAXIPATH = 298, - ERR_NO_PET = 299, - ERR_NOTYOURPET = 300, - ERR_PET_NOT_RENAMEABLE = 301, - ERR_QUEST_OBJECTIVE_COMPLETE_S = 302, - ERR_QUEST_UNKNOWN_COMPLETE = 303, - ERR_QUEST_ADD_KILL_SII = 304, - ERR_QUEST_ADD_FOUND_SII = 305, - ERR_QUEST_ADD_ITEM_SII = 306, - ERR_QUEST_ADD_PLAYER_KILL_SII = 307, - ERR_CANNOTCREATEDIRECTORY = 308, - ERR_CANNOTCREATEFILE = 309, - ERR_PLAYER_WRONG_FACTION = 310, - ERR_PLAYER_IS_NEUTRAL = 311, - ERR_BANKSLOT_FAILED_TOO_MANY = 312, - ERR_BANKSLOT_INSUFFICIENT_FUNDS = 313, - ERR_BANKSLOT_NOTBANKER = 314, - ERR_FRIEND_DB_ERROR = 315, - ERR_FRIEND_LIST_FULL = 316, - ERR_FRIEND_ADDED_S = 317, - ERR_BATTLETAG_FRIEND_ADDED_S = 318, - ERR_FRIEND_ONLINE_SS = 319, - ERR_FRIEND_OFFLINE_S = 320, - ERR_FRIEND_NOT_FOUND = 321, - ERR_FRIEND_WRONG_FACTION = 322, - ERR_FRIEND_REMOVED_S = 323, - ERR_BATTLETAG_FRIEND_REMOVED_S = 324, - ERR_FRIEND_ERROR = 325, - ERR_FRIEND_ALREADY_S = 326, - ERR_FRIEND_SELF = 327, - ERR_FRIEND_DELETED = 328, - ERR_IGNORE_FULL = 329, - ERR_IGNORE_SELF = 330, - ERR_IGNORE_NOT_FOUND = 331, - ERR_IGNORE_ALREADY_S = 332, - ERR_IGNORE_ADDED_S = 333, - ERR_IGNORE_REMOVED_S = 334, - ERR_IGNORE_AMBIGUOUS = 335, - ERR_IGNORE_DELETED = 336, - ERR_ONLY_ONE_BOLT = 337, - ERR_ONLY_ONE_AMMO = 338, - ERR_SPELL_FAILED_EQUIPPED_SPECIFIC_ITEM = 339, - ERR_WRONG_BAG_TYPE_SUBCLASS = 340, - ERR_CANT_WRAP_STACKABLE = 341, - ERR_CANT_WRAP_EQUIPPED = 342, - ERR_CANT_WRAP_WRAPPED = 343, - ERR_CANT_WRAP_BOUND = 344, - ERR_CANT_WRAP_UNIQUE = 345, - ERR_CANT_WRAP_BAGS = 346, - ERR_OUT_OF_MANA = 347, - ERR_OUT_OF_RAGE = 348, - ERR_OUT_OF_FOCUS = 349, - ERR_OUT_OF_ENERGY = 350, - ERR_OUT_OF_CHI = 351, - ERR_OUT_OF_HEALTH = 352, - ERR_OUT_OF_RUNES = 353, - ERR_OUT_OF_RUNIC_POWER = 354, - ERR_OUT_OF_SOUL_SHARDS = 355, - ERR_OUT_OF_LUNAR_POWER = 356, - ERR_OUT_OF_HOLY_POWER = 357, - ERR_OUT_OF_MAELSTROM = 358, - ERR_OUT_OF_COMBO_POINTS = 359, - ERR_OUT_OF_INSANITY = 360, - ERR_OUT_OF_ESSENCE = 361, - ERR_OUT_OF_ARCANE_CHARGES = 362, - ERR_OUT_OF_FURY = 363, - ERR_OUT_OF_PAIN = 364, - ERR_OUT_OF_POWER_DISPLAY = 365, - ERR_LOOT_GONE = 366, - ERR_MOUNT_FORCEDDISMOUNT = 367, - ERR_AUTOFOLLOW_TOO_FAR = 368, - ERR_UNIT_NOT_FOUND = 369, - ERR_INVALID_FOLLOW_TARGET = 370, - ERR_INVALID_FOLLOW_PVP_COMBAT = 371, - ERR_INVALID_FOLLOW_TARGET_PVP_COMBAT = 372, - ERR_INVALID_INSPECT_TARGET = 373, - ERR_GUILDEMBLEM_SUCCESS = 374, - ERR_GUILDEMBLEM_INVALID_TABARD_COLORS = 375, - ERR_GUILDEMBLEM_NOGUILD = 376, - ERR_GUILDEMBLEM_NOTGUILDMASTER = 377, - ERR_GUILDEMBLEM_NOTENOUGHMONEY = 378, - ERR_GUILDEMBLEM_INVALIDVENDOR = 379, - ERR_EMBLEMERROR_NOTABARDGEOSET = 380, - ERR_SPELL_OUT_OF_RANGE = 381, - ERR_COMMAND_NEEDS_TARGET = 382, - ERR_NOAMMO_S = 383, - ERR_TOOBUSYTOFOLLOW = 384, - ERR_DUEL_REQUESTED = 385, - ERR_DUEL_CANCELLED = 386, - ERR_DEATHBINDALREADYBOUND = 387, - ERR_DEATHBIND_SUCCESS_S = 388, - ERR_NOEMOTEWHILERUNNING = 389, - ERR_ZONE_EXPLORED = 390, - ERR_ZONE_EXPLORED_XP = 391, - ERR_INVALID_ITEM_TARGET = 392, - ERR_INVALID_QUEST_TARGET = 393, - ERR_IGNORING_YOU_S = 394, - ERR_FISH_NOT_HOOKED = 395, - ERR_FISH_ESCAPED = 396, - ERR_SPELL_FAILED_NOTUNSHEATHED = 397, - ERR_PETITION_OFFERED_S = 398, - ERR_PETITION_SIGNED = 399, - ERR_PETITION_SIGNED_S = 400, - ERR_PETITION_DECLINED_S = 401, - ERR_PETITION_ALREADY_SIGNED = 402, - ERR_PETITION_RESTRICTED_ACCOUNT_TRIAL = 403, - ERR_PETITION_ALREADY_SIGNED_OTHER = 404, - ERR_PETITION_IN_GUILD = 405, - ERR_PETITION_CREATOR = 406, - ERR_PETITION_NOT_ENOUGH_SIGNATURES = 407, - ERR_PETITION_NOT_SAME_SERVER = 408, - ERR_PETITION_FULL = 409, - ERR_PETITION_ALREADY_SIGNED_BY_S = 410, - ERR_GUILD_NAME_INVALID = 411, - ERR_SPELL_UNLEARNED_S = 412, - ERR_PET_SPELL_ROOTED = 413, - ERR_PET_SPELL_AFFECTING_COMBAT = 414, - ERR_PET_SPELL_OUT_OF_RANGE = 415, - ERR_PET_SPELL_NOT_BEHIND = 416, - ERR_PET_SPELL_TARGETS_DEAD = 417, - ERR_PET_SPELL_DEAD = 418, - ERR_PET_SPELL_NOPATH = 419, - ERR_ITEM_CANT_BE_DESTROYED = 420, - ERR_TICKET_ALREADY_EXISTS = 421, - ERR_TICKET_CREATE_ERROR = 422, - ERR_TICKET_UPDATE_ERROR = 423, - ERR_TICKET_DB_ERROR = 424, - ERR_TICKET_NO_TEXT = 425, - ERR_TICKET_TEXT_TOO_LONG = 426, - ERR_OBJECT_IS_BUSY = 427, - ERR_EXHAUSTION_WELLRESTED = 428, - ERR_EXHAUSTION_RESTED = 429, - ERR_EXHAUSTION_NORMAL = 430, - ERR_EXHAUSTION_TIRED = 431, - ERR_EXHAUSTION_EXHAUSTED = 432, - ERR_NO_ITEMS_WHILE_SHAPESHIFTED = 433, - ERR_CANT_INTERACT_SHAPESHIFTED = 434, - ERR_REALM_NOT_FOUND = 435, - ERR_MAIL_QUEST_ITEM = 436, - ERR_MAIL_BOUND_ITEM = 437, - ERR_MAIL_CONJURED_ITEM = 438, - ERR_MAIL_BAG = 439, - ERR_MAIL_TO_SELF = 440, - ERR_MAIL_TARGET_NOT_FOUND = 441, - ERR_MAIL_DATABASE_ERROR = 442, - ERR_MAIL_DELETE_ITEM_ERROR = 443, - ERR_MAIL_WRAPPED_COD = 444, - ERR_MAIL_CANT_SEND_REALM = 445, - ERR_MAIL_TEMP_RETURN_OUTAGE = 446, - ERR_MAIL_RECEPIENT_CANT_RECEIVE_MAIL = 447, - ERR_MAIL_SENT = 448, - ERR_MAIL_TARGET_IS_TRIAL = 449, - ERR_NOT_HAPPY_ENOUGH = 450, - ERR_USE_CANT_IMMUNE = 451, - ERR_CANT_BE_DISENCHANTED = 452, - ERR_CANT_USE_DISARMED = 453, - ERR_AUCTION_DATABASE_ERROR = 454, - ERR_AUCTION_HIGHER_BID = 455, - ERR_AUCTION_ALREADY_BID = 456, - ERR_AUCTION_OUTBID_S = 457, - ERR_AUCTION_WON_S = 458, - ERR_AUCTION_REMOVED_S = 459, - ERR_AUCTION_BID_PLACED = 460, - ERR_LOGOUT_FAILED = 461, - ERR_QUEST_PUSH_SUCCESS_S = 462, - ERR_QUEST_PUSH_INVALID_S = 463, - ERR_QUEST_PUSH_INVALID_TO_RECIPIENT_S = 464, - ERR_QUEST_PUSH_ACCEPTED_S = 465, - ERR_QUEST_PUSH_DECLINED_S = 466, - ERR_QUEST_PUSH_BUSY_S = 467, - ERR_QUEST_PUSH_DEAD_S = 468, - ERR_QUEST_PUSH_DEAD_TO_RECIPIENT_S = 469, - ERR_QUEST_PUSH_LOG_FULL_S = 470, - ERR_QUEST_PUSH_LOG_FULL_TO_RECIPIENT_S = 471, - ERR_QUEST_PUSH_ONQUEST_S = 472, - ERR_QUEST_PUSH_ONQUEST_TO_RECIPIENT_S = 473, - ERR_QUEST_PUSH_ALREADY_DONE_S = 474, - ERR_QUEST_PUSH_ALREADY_DONE_TO_RECIPIENT_S = 475, - ERR_QUEST_PUSH_NOT_DAILY_S = 476, - ERR_QUEST_PUSH_TIMER_EXPIRED_S = 477, - ERR_QUEST_PUSH_NOT_IN_PARTY_S = 478, - ERR_QUEST_PUSH_DIFFERENT_SERVER_DAILY_S = 479, - ERR_QUEST_PUSH_DIFFERENT_SERVER_DAILY_TO_RECIPIENT_S = 480, - ERR_QUEST_PUSH_NOT_ALLOWED_S = 481, - ERR_QUEST_PUSH_PREREQUISITE_S = 482, - ERR_QUEST_PUSH_PREREQUISITE_TO_RECIPIENT_S = 483, - ERR_QUEST_PUSH_LOW_LEVEL_S = 484, - ERR_QUEST_PUSH_LOW_LEVEL_TO_RECIPIENT_S = 485, - ERR_QUEST_PUSH_HIGH_LEVEL_S = 486, - ERR_QUEST_PUSH_HIGH_LEVEL_TO_RECIPIENT_S = 487, - ERR_QUEST_PUSH_CLASS_S = 488, - ERR_QUEST_PUSH_CLASS_TO_RECIPIENT_S = 489, - ERR_QUEST_PUSH_RACE_S = 490, - ERR_QUEST_PUSH_RACE_TO_RECIPIENT_S = 491, - ERR_QUEST_PUSH_LOW_FACTION_S = 492, - ERR_QUEST_PUSH_LOW_FACTION_TO_RECIPIENT_S = 493, - ERR_QUEST_PUSH_HIGH_FACTION_S = 494, - ERR_QUEST_PUSH_HIGH_FACTION_TO_RECIPIENT_S = 495, - ERR_QUEST_PUSH_EXPANSION_S = 496, - ERR_QUEST_PUSH_EXPANSION_TO_RECIPIENT_S = 497, - ERR_QUEST_PUSH_NOT_GARRISON_OWNER_S = 498, - ERR_QUEST_PUSH_NOT_GARRISON_OWNER_TO_RECIPIENT_S = 499, - ERR_QUEST_PUSH_WRONG_COVENANT_S = 500, - ERR_QUEST_PUSH_WRONG_COVENANT_TO_RECIPIENT_S = 501, - ERR_QUEST_PUSH_NEW_PLAYER_EXPERIENCE_S = 502, - ERR_QUEST_PUSH_NEW_PLAYER_EXPERIENCE_TO_RECIPIENT_S = 503, - ERR_QUEST_PUSH_WRONG_FACTION_S = 504, - ERR_QUEST_PUSH_WRONG_FACTION_TO_RECIPIENT_S = 505, - ERR_QUEST_PUSH_CROSS_FACTION_RESTRICTED_S = 506, - ERR_RAID_GROUP_LOWLEVEL = 507, - ERR_RAID_GROUP_ONLY = 508, - ERR_RAID_GROUP_FULL = 509, - ERR_RAID_GROUP_REQUIREMENTS_UNMATCH = 510, - ERR_CORPSE_IS_NOT_IN_INSTANCE = 511, - ERR_PVP_KILL_HONORABLE = 512, - ERR_PVP_KILL_DISHONORABLE = 513, - ERR_SPELL_FAILED_ALREADY_AT_FULL_HEALTH = 514, - ERR_SPELL_FAILED_ALREADY_AT_FULL_MANA = 515, - ERR_SPELL_FAILED_ALREADY_AT_FULL_POWER_S = 516, - ERR_AUTOLOOT_MONEY_S = 517, - ERR_GENERIC_STUNNED = 518, - ERR_GENERIC_THROTTLE = 519, - ERR_CLUB_FINDER_SEARCHING_TOO_FAST = 520, - ERR_TARGET_STUNNED = 521, - ERR_MUST_REPAIR_DURABILITY = 522, - ERR_RAID_YOU_JOINED = 523, - ERR_RAID_YOU_LEFT = 524, - ERR_INSTANCE_GROUP_JOINED_WITH_PARTY = 525, - ERR_INSTANCE_GROUP_JOINED_WITH_RAID = 526, - ERR_RAID_MEMBER_ADDED_S = 527, - ERR_RAID_MEMBER_REMOVED_S = 528, - ERR_INSTANCE_GROUP_ADDED_S = 529, - ERR_INSTANCE_GROUP_REMOVED_S = 530, - ERR_CLICK_ON_ITEM_TO_FEED = 531, - ERR_TOO_MANY_CHAT_CHANNELS = 532, - ERR_LOOT_ROLL_PENDING = 533, - ERR_LOOT_PLAYER_NOT_FOUND = 534, - ERR_NOT_IN_RAID = 535, - ERR_LOGGING_OUT = 536, - ERR_TARGET_LOGGING_OUT = 537, - ERR_NOT_WHILE_MOUNTED = 538, - ERR_NOT_WHILE_SHAPESHIFTED = 539, - ERR_NOT_IN_COMBAT = 540, - ERR_NOT_WHILE_DISARMED = 541, - ERR_PET_BROKEN = 542, - ERR_TALENT_WIPE_ERROR = 543, - ERR_SPEC_WIPE_ERROR = 544, - ERR_GLYPH_WIPE_ERROR = 545, - ERR_PET_SPEC_WIPE_ERROR = 546, - ERR_FEIGN_DEATH_RESISTED = 547, - ERR_MEETING_STONE_IN_QUEUE_S = 548, - ERR_MEETING_STONE_LEFT_QUEUE_S = 549, - ERR_MEETING_STONE_OTHER_MEMBER_LEFT = 550, - ERR_MEETING_STONE_PARTY_KICKED_FROM_QUEUE = 551, - ERR_MEETING_STONE_MEMBER_STILL_IN_QUEUE = 552, - ERR_MEETING_STONE_SUCCESS = 553, - ERR_MEETING_STONE_IN_PROGRESS = 554, - ERR_MEETING_STONE_MEMBER_ADDED_S = 555, - ERR_MEETING_STONE_GROUP_FULL = 556, - ERR_MEETING_STONE_NOT_LEADER = 557, - ERR_MEETING_STONE_INVALID_LEVEL = 558, - ERR_MEETING_STONE_TARGET_NOT_IN_PARTY = 559, - ERR_MEETING_STONE_TARGET_INVALID_LEVEL = 560, - ERR_MEETING_STONE_MUST_BE_LEADER = 561, - ERR_MEETING_STONE_NO_RAID_GROUP = 562, - ERR_MEETING_STONE_NEED_PARTY = 563, - ERR_MEETING_STONE_NOT_FOUND = 564, - ERR_MEETING_STONE_TARGET_IN_VEHICLE = 565, - ERR_GUILDEMBLEM_SAME = 566, - ERR_EQUIP_TRADE_ITEM = 567, - ERR_PVP_TOGGLE_ON = 568, - ERR_PVP_TOGGLE_OFF = 569, - ERR_GROUP_JOIN_BATTLEGROUND_DESERTERS = 570, - ERR_GROUP_JOIN_BATTLEGROUND_DEAD = 571, - ERR_GROUP_JOIN_BATTLEGROUND_S = 572, - ERR_GROUP_JOIN_BATTLEGROUND_FAIL = 573, - ERR_GROUP_JOIN_BATTLEGROUND_TOO_MANY = 574, - ERR_SOLO_JOIN_BATTLEGROUND_S = 575, - ERR_JOIN_SINGLE_SCENARIO_S = 576, - ERR_BATTLEGROUND_TOO_MANY_QUEUES = 577, - ERR_BATTLEGROUND_CANNOT_QUEUE_FOR_RATED = 578, - ERR_BATTLEDGROUND_QUEUED_FOR_RATED = 579, - ERR_BATTLEGROUND_TEAM_LEFT_QUEUE = 580, - ERR_BATTLEGROUND_NOT_IN_BATTLEGROUND = 581, - ERR_ALREADY_IN_ARENA_TEAM_S = 582, - ERR_INVALID_PROMOTION_CODE = 583, - ERR_BG_PLAYER_JOINED_SS = 584, - ERR_BG_PLAYER_LEFT_S = 585, - ERR_RESTRICTED_ACCOUNT = 586, - ERR_RESTRICTED_ACCOUNT_TRIAL = 587, - ERR_PLAY_TIME_EXCEEDED = 588, - ERR_APPROACHING_PARTIAL_PLAY_TIME = 589, - ERR_APPROACHING_PARTIAL_PLAY_TIME_2 = 590, - ERR_APPROACHING_NO_PLAY_TIME = 591, - ERR_APPROACHING_NO_PLAY_TIME_2 = 592, - ERR_UNHEALTHY_TIME = 593, - ERR_CHAT_RESTRICTED_TRIAL = 594, - ERR_CHAT_THROTTLED = 595, - ERR_MAIL_REACHED_CAP = 596, - ERR_INVALID_RAID_TARGET = 597, - ERR_RAID_LEADER_READY_CHECK_START_S = 598, - ERR_READY_CHECK_IN_PROGRESS = 599, - ERR_READY_CHECK_THROTTLED = 600, - ERR_DUNGEON_DIFFICULTY_FAILED = 601, - ERR_DUNGEON_DIFFICULTY_CHANGED_S = 602, - ERR_TRADE_WRONG_REALM = 603, - ERR_TRADE_NOT_ON_TAPLIST = 604, - ERR_CHAT_PLAYER_AMBIGUOUS_S = 605, - ERR_LOOT_CANT_LOOT_THAT_NOW = 606, - ERR_LOOT_MASTER_INV_FULL = 607, - ERR_LOOT_MASTER_UNIQUE_ITEM = 608, - ERR_LOOT_MASTER_OTHER = 609, - ERR_FILTERING_YOU_S = 610, - ERR_USE_PREVENTED_BY_MECHANIC_S = 611, - ERR_ITEM_UNIQUE_EQUIPPABLE = 612, - ERR_LFG_LEADER_IS_LFM_S = 613, - ERR_LFG_PENDING = 614, - ERR_CANT_SPEAK_LANGAGE = 615, - ERR_VENDOR_MISSING_TURNINS = 616, - ERR_BATTLEGROUND_NOT_IN_TEAM = 617, - ERR_NOT_IN_BATTLEGROUND = 618, - ERR_NOT_ENOUGH_HONOR_POINTS = 619, - ERR_NOT_ENOUGH_ARENA_POINTS = 620, - ERR_SOCKETING_REQUIRES_META_GEM = 621, - ERR_SOCKETING_META_GEM_ONLY_IN_METASLOT = 622, - ERR_SOCKETING_REQUIRES_HYDRAULIC_GEM = 623, - ERR_SOCKETING_HYDRAULIC_GEM_ONLY_IN_HYDRAULICSLOT = 624, - ERR_SOCKETING_REQUIRES_COGWHEEL_GEM = 625, - ERR_SOCKETING_COGWHEEL_GEM_ONLY_IN_COGWHEELSLOT = 626, - ERR_SOCKETING_ITEM_TOO_LOW_LEVEL = 627, - ERR_ITEM_MAX_COUNT_SOCKETED = 628, - ERR_SYSTEM_DISABLED = 629, - ERR_QUEST_FAILED_TOO_MANY_DAILY_QUESTS_I = 630, - ERR_ITEM_MAX_COUNT_EQUIPPED_SOCKETED = 631, - ERR_ITEM_UNIQUE_EQUIPPABLE_SOCKETED = 632, - ERR_USER_SQUELCHED = 633, - ERR_ACCOUNT_SILENCED = 634, - ERR_PARTY_MEMBER_SILENCED = 635, - ERR_PARTY_MEMBER_SILENCED_LFG_DELIST = 636, - ERR_TOO_MUCH_GOLD = 637, - ERR_NOT_BARBER_SITTING = 638, - ERR_QUEST_FAILED_CAIS = 639, - ERR_INVITE_RESTRICTED_TRIAL = 640, - ERR_VOICE_IGNORE_FULL = 641, - ERR_VOICE_IGNORE_SELF = 642, - ERR_VOICE_IGNORE_NOT_FOUND = 643, - ERR_VOICE_IGNORE_ALREADY_S = 644, - ERR_VOICE_IGNORE_ADDED_S = 645, - ERR_VOICE_IGNORE_REMOVED_S = 646, - ERR_VOICE_IGNORE_AMBIGUOUS = 647, - ERR_VOICE_IGNORE_DELETED = 648, - ERR_UNKNOWN_MACRO_OPTION_S = 649, - ERR_NOT_DURING_ARENA_MATCH = 650, - ERR_NOT_IN_RATED_BATTLEGROUND = 651, - ERR_PLAYER_SILENCED = 652, - ERR_PLAYER_UNSILENCED = 653, - ERR_COMSAT_DISCONNECT = 654, - ERR_COMSAT_RECONNECT_ATTEMPT = 655, - ERR_COMSAT_CONNECT_FAIL = 656, - ERR_MAIL_INVALID_ATTACHMENT_SLOT = 657, - ERR_MAIL_TOO_MANY_ATTACHMENTS = 658, - ERR_MAIL_INVALID_ATTACHMENT = 659, - ERR_MAIL_ATTACHMENT_EXPIRED = 660, - ERR_VOICE_CHAT_PARENTAL_DISABLE_MIC = 661, - ERR_PROFANE_CHAT_NAME = 662, - ERR_PLAYER_SILENCED_ECHO = 663, - ERR_PLAYER_UNSILENCED_ECHO = 664, - ERR_LOOT_CANT_LOOT_THAT = 665, - ERR_ARENA_EXPIRED_CAIS = 666, - ERR_GROUP_ACTION_THROTTLED = 667, - ERR_ALREADY_PICKPOCKETED = 668, - ERR_NAME_INVALID = 669, - ERR_NAME_NO_NAME = 670, - ERR_NAME_TOO_SHORT = 671, - ERR_NAME_TOO_LONG = 672, - ERR_NAME_MIXED_LANGUAGES = 673, - ERR_NAME_PROFANE = 674, - ERR_NAME_RESERVED = 675, - ERR_NAME_THREE_CONSECUTIVE = 676, - ERR_NAME_INVALID_SPACE = 677, - ERR_NAME_CONSECUTIVE_SPACES = 678, - ERR_NAME_RUSSIAN_CONSECUTIVE_SILENT_CHARACTERS = 679, - ERR_NAME_RUSSIAN_SILENT_CHARACTER_AT_BEGINNING_OR_END = 680, - ERR_NAME_DECLENSION_DOESNT_MATCH_BASE_NAME = 681, - ERR_RECRUIT_A_FRIEND_NOT_LINKED = 682, - ERR_RECRUIT_A_FRIEND_NOT_NOW = 683, - ERR_RECRUIT_A_FRIEND_SUMMON_LEVEL_MAX = 684, - ERR_RECRUIT_A_FRIEND_SUMMON_COOLDOWN = 685, - ERR_RECRUIT_A_FRIEND_SUMMON_OFFLINE = 686, - ERR_RECRUIT_A_FRIEND_INSUF_EXPAN_LVL = 687, - ERR_RECRUIT_A_FRIEND_MAP_INCOMING_TRANSFER_NOT_ALLOWED = 688, - ERR_NOT_SAME_ACCOUNT = 689, - ERR_BAD_ON_USE_ENCHANT = 690, - ERR_TRADE_SELF = 691, - ERR_TOO_MANY_SOCKETS = 692, - ERR_ITEM_MAX_LIMIT_CATEGORY_COUNT_EXCEEDED_IS = 693, - ERR_TRADE_TARGET_MAX_LIMIT_CATEGORY_COUNT_EXCEEDED_IS = 694, - ERR_ITEM_MAX_LIMIT_CATEGORY_SOCKETED_EXCEEDED_IS = 695, - ERR_ITEM_MAX_LIMIT_CATEGORY_EQUIPPED_EXCEEDED_IS = 696, - ERR_SHAPESHIFT_FORM_CANNOT_EQUIP = 697, - ERR_ITEM_INVENTORY_FULL_SATCHEL = 698, - ERR_SCALING_STAT_ITEM_LEVEL_EXCEEDED = 699, - ERR_SCALING_STAT_ITEM_LEVEL_TOO_LOW = 700, - ERR_PURCHASE_LEVEL_TOO_LOW = 701, - ERR_GROUP_SWAP_FAILED = 702, - ERR_INVITE_IN_COMBAT = 703, - ERR_INVALID_GLYPH_SLOT = 704, - ERR_GENERIC_NO_VALID_TARGETS = 705, - ERR_CALENDAR_EVENT_ALERT_S = 706, - ERR_PET_LEARN_SPELL_S = 707, - ERR_PET_LEARN_ABILITY_S = 708, - ERR_PET_SPELL_UNLEARNED_S = 709, - ERR_INVITE_UNKNOWN_REALM = 710, - ERR_INVITE_NO_PARTY_SERVER = 711, - ERR_INVITE_PARTY_BUSY = 712, - ERR_INVITE_PARTY_BUSY_PENDING_REQUEST = 713, - ERR_INVITE_PARTY_BUSY_PENDING_SUGGEST = 714, - ERR_PARTY_TARGET_AMBIGUOUS = 715, - ERR_PARTY_LFG_INVITE_RAID_LOCKED = 716, - ERR_PARTY_LFG_BOOT_LIMIT = 717, - ERR_PARTY_LFG_BOOT_COOLDOWN_S = 718, - ERR_PARTY_LFG_BOOT_NOT_ELIGIBLE_S = 719, - ERR_PARTY_LFG_BOOT_INPATIENT_TIMER_S = 720, - ERR_PARTY_LFG_BOOT_IN_PROGRESS = 721, - ERR_PARTY_LFG_BOOT_TOO_FEW_PLAYERS = 722, - ERR_PARTY_LFG_BOOT_VOTE_SUCCEEDED = 723, - ERR_PARTY_LFG_BOOT_VOTE_FAILED = 724, - ERR_PARTY_LFG_BOOT_IN_COMBAT = 725, - ERR_PARTY_LFG_BOOT_DUNGEON_COMPLETE = 726, - ERR_PARTY_LFG_BOOT_LOOT_ROLLS = 727, - ERR_PARTY_LFG_BOOT_VOTE_REGISTERED = 728, - ERR_PARTY_PRIVATE_GROUP_ONLY = 729, - ERR_PARTY_LFG_TELEPORT_IN_COMBAT = 730, - ERR_RAID_DISALLOWED_BY_LEVEL = 731, - ERR_RAID_DISALLOWED_BY_CROSS_REALM = 732, - ERR_PARTY_ROLE_NOT_AVAILABLE = 733, - ERR_JOIN_LFG_OBJECT_FAILED = 734, - ERR_LFG_REMOVED_LEVELUP = 735, - ERR_LFG_REMOVED_XP_TOGGLE = 736, - ERR_LFG_REMOVED_FACTION_CHANGE = 737, - ERR_BATTLEGROUND_INFO_THROTTLED = 738, - ERR_BATTLEGROUND_ALREADY_IN = 739, - ERR_ARENA_TEAM_CHANGE_FAILED_QUEUED = 740, - ERR_ARENA_TEAM_PERMISSIONS = 741, - ERR_NOT_WHILE_FALLING = 742, - ERR_NOT_WHILE_MOVING = 743, - ERR_NOT_WHILE_FATIGUED = 744, - ERR_MAX_SOCKETS = 745, - ERR_MULTI_CAST_ACTION_TOTEM_S = 746, - ERR_BATTLEGROUND_JOIN_LEVELUP = 747, - ERR_REMOVE_FROM_PVP_QUEUE_XP_GAIN = 748, - ERR_BATTLEGROUND_JOIN_XP_GAIN = 749, - ERR_BATTLEGROUND_JOIN_MERCENARY = 750, - ERR_BATTLEGROUND_JOIN_TOO_MANY_HEALERS = 751, - ERR_BATTLEGROUND_JOIN_RATED_TOO_MANY_HEALERS = 752, - ERR_BATTLEGROUND_JOIN_TOO_MANY_TANKS = 753, - ERR_BATTLEGROUND_JOIN_TOO_MANY_DAMAGE = 754, - ERR_RAID_DIFFICULTY_FAILED = 755, - ERR_RAID_DIFFICULTY_CHANGED_S = 756, - ERR_LEGACY_RAID_DIFFICULTY_CHANGED_S = 757, - ERR_RAID_LOCKOUT_CHANGED_S = 758, - ERR_RAID_CONVERTED_TO_PARTY = 759, - ERR_PARTY_CONVERTED_TO_RAID = 760, - ERR_PLAYER_DIFFICULTY_CHANGED_S = 761, - ERR_GMRESPONSE_DB_ERROR = 762, - ERR_BATTLEGROUND_JOIN_RANGE_INDEX = 763, - ERR_ARENA_JOIN_RANGE_INDEX = 764, - ERR_REMOVE_FROM_PVP_QUEUE_FACTION_CHANGE = 765, - ERR_BATTLEGROUND_JOIN_FAILED = 766, - ERR_BATTLEGROUND_JOIN_NO_VALID_SPEC_FOR_ROLE = 767, - ERR_BATTLEGROUND_JOIN_RESPEC = 768, - ERR_BATTLEGROUND_INVITATION_DECLINED = 769, - ERR_BATTLEGROUND_INVITATION_DECLINED_BY = 770, - ERR_BATTLEGROUND_JOIN_TIMED_OUT = 771, - ERR_BATTLEGROUND_DUPE_QUEUE = 772, - ERR_BATTLEGROUND_JOIN_MUST_COMPLETE_QUEST = 773, - ERR_IN_BATTLEGROUND_RESPEC = 774, - ERR_MAIL_LIMITED_DURATION_ITEM = 775, - ERR_YELL_RESTRICTED_TRIAL = 776, - ERR_CHAT_RAID_RESTRICTED_TRIAL = 777, - ERR_LFG_ROLE_CHECK_FAILED = 778, - ERR_LFG_ROLE_CHECK_FAILED_TIMEOUT = 779, - ERR_LFG_ROLE_CHECK_FAILED_NOT_VIABLE = 780, - ERR_LFG_READY_CHECK_FAILED = 781, - ERR_LFG_READY_CHECK_FAILED_TIMEOUT = 782, - ERR_LFG_GROUP_FULL = 783, - ERR_LFG_NO_LFG_OBJECT = 784, - ERR_LFG_NO_SLOTS_PLAYER = 785, - ERR_LFG_NO_SLOTS_PARTY = 786, - ERR_LFG_NO_SPEC = 787, - ERR_LFG_MISMATCHED_SLOTS = 788, - ERR_LFG_MISMATCHED_SLOTS_LOCAL_XREALM = 789, - ERR_LFG_PARTY_PLAYERS_FROM_DIFFERENT_REALMS = 790, - ERR_LFG_MEMBERS_NOT_PRESENT = 791, - ERR_LFG_GET_INFO_TIMEOUT = 792, - ERR_LFG_INVALID_SLOT = 793, - ERR_LFG_DESERTER_PLAYER = 794, - ERR_LFG_DESERTER_PARTY = 795, - ERR_LFG_DEAD = 796, - ERR_LFG_RANDOM_COOLDOWN_PLAYER = 797, - ERR_LFG_RANDOM_COOLDOWN_PARTY = 798, - ERR_LFG_TOO_MANY_MEMBERS = 799, - ERR_LFG_TOO_FEW_MEMBERS = 800, - ERR_LFG_PROPOSAL_FAILED = 801, - ERR_LFG_PROPOSAL_DECLINED_SELF = 802, - ERR_LFG_PROPOSAL_DECLINED_PARTY = 803, - ERR_LFG_NO_SLOTS_SELECTED = 804, - ERR_LFG_NO_ROLES_SELECTED = 805, - ERR_LFG_ROLE_CHECK_INITIATED = 806, - ERR_LFG_READY_CHECK_INITIATED = 807, - ERR_LFG_PLAYER_DECLINED_ROLE_CHECK = 808, - ERR_LFG_PLAYER_DECLINED_READY_CHECK = 809, - ERR_LFG_JOINED_QUEUE = 810, - ERR_LFG_JOINED_FLEX_QUEUE = 811, - ERR_LFG_JOINED_RF_QUEUE = 812, - ERR_LFG_JOINED_SCENARIO_QUEUE = 813, - ERR_LFG_JOINED_WORLD_PVP_QUEUE = 814, - ERR_LFG_JOINED_BATTLEFIELD_QUEUE = 815, - ERR_LFG_JOINED_LIST = 816, - ERR_LFG_LEFT_QUEUE = 817, - ERR_LFG_LEFT_LIST = 818, - ERR_LFG_ROLE_CHECK_ABORTED = 819, - ERR_LFG_READY_CHECK_ABORTED = 820, - ERR_LFG_CANT_USE_BATTLEGROUND = 821, - ERR_LFG_CANT_USE_DUNGEONS = 822, - ERR_LFG_REASON_TOO_MANY_LFG = 823, - ERR_LFG_FARM_LIMIT = 824, - ERR_LFG_NO_CROSS_FACTION_PARTIES = 825, - ERR_INVALID_TELEPORT_LOCATION = 826, - ERR_TOO_FAR_TO_INTERACT = 827, - ERR_BATTLEGROUND_PLAYERS_FROM_DIFFERENT_REALMS = 828, - ERR_DIFFICULTY_CHANGE_COOLDOWN_S = 829, - ERR_DIFFICULTY_CHANGE_COMBAT_COOLDOWN_S = 830, - ERR_DIFFICULTY_CHANGE_WORLDSTATE = 831, - ERR_DIFFICULTY_CHANGE_ENCOUNTER = 832, - ERR_DIFFICULTY_CHANGE_COMBAT = 833, - ERR_DIFFICULTY_CHANGE_PLAYER_BUSY = 834, - ERR_DIFFICULTY_CHANGE_PLAYER_ON_VEHICLE = 835, - ERR_DIFFICULTY_CHANGE_ALREADY_STARTED = 836, - ERR_DIFFICULTY_CHANGE_OTHER_HEROIC_S = 837, - ERR_DIFFICULTY_CHANGE_HEROIC_INSTANCE_ALREADY_RUNNING = 838, - ERR_ARENA_TEAM_PARTY_SIZE = 839, - ERR_SOLO_SHUFFLE_WARGAME_GROUP_SIZE = 840, - ERR_SOLO_SHUFFLE_WARGAME_GROUP_COMP = 841, - ERR_SOLO_MIN_ITEM_LEVEL = 842, - ERR_PVP_PLAYER_ABANDONED = 843, - ERR_BATTLEGROUND_JOIN_GROUP_QUEUE_WITHOUT_HEALER = 844, - ERR_QUEST_FORCE_REMOVED_S = 845, - ERR_ATTACK_NO_ACTIONS = 846, - ERR_IN_RANDOM_BG = 847, - ERR_IN_NON_RANDOM_BG = 848, - ERR_BN_FRIEND_SELF = 849, - ERR_BN_FRIEND_ALREADY = 850, - ERR_BN_FRIEND_BLOCKED = 851, - ERR_BN_FRIEND_LIST_FULL = 852, - ERR_BN_FRIEND_REQUEST_SENT = 853, - ERR_BN_BROADCAST_THROTTLE = 854, - ERR_BG_DEVELOPER_ONLY = 855, - ERR_CURRENCY_SPELL_SLOT_MISMATCH = 856, - ERR_CURRENCY_NOT_TRADABLE = 857, - ERR_REQUIRES_EXPANSION_S = 858, - ERR_QUEST_FAILED_SPELL = 859, - ERR_TALENT_FAILED_UNSPENT_TALENT_POINTS = 860, - ERR_TALENT_FAILED_NOT_ENOUGH_TALENTS_IN_PRIMARY_TREE = 861, - ERR_TALENT_FAILED_NO_PRIMARY_TREE_SELECTED = 862, - ERR_TALENT_FAILED_CANT_REMOVE_TALENT = 863, - ERR_TALENT_FAILED_UNKNOWN = 864, - ERR_TALENT_FAILED_IN_COMBAT = 865, - ERR_TALENT_FAILED_IN_PVP_MATCH = 866, - ERR_TALENT_FAILED_IN_MYTHIC_PLUS = 867, - ERR_WARGAME_REQUEST_FAILURE = 868, - ERR_RANK_REQUIRES_AUTHENTICATOR = 869, - ERR_GUILD_BANK_VOUCHER_FAILED = 870, - ERR_WARGAME_REQUEST_SENT = 871, - ERR_REQUIRES_ACHIEVEMENT_I = 872, - ERR_REFUND_RESULT_EXCEED_MAX_CURRENCY = 873, - ERR_CANT_BUY_QUANTITY = 874, - ERR_ITEM_IS_BATTLE_PAY_LOCKED = 875, - ERR_PARTY_ALREADY_IN_BATTLEGROUND_QUEUE = 876, - ERR_PARTY_CONFIRMING_BATTLEGROUND_QUEUE = 877, - ERR_BATTLEFIELD_TEAM_PARTY_SIZE = 878, - ERR_INSUFF_TRACKED_CURRENCY_IS = 879, - ERR_NOT_ON_TOURNAMENT_REALM = 880, - ERR_GUILD_TRIAL_ACCOUNT_TRIAL = 881, - ERR_GUILD_TRIAL_ACCOUNT_VETERAN = 882, - ERR_GUILD_UNDELETABLE_DUE_TO_LEVEL = 883, - ERR_CANT_DO_THAT_IN_A_GROUP = 884, - ERR_GUILD_LEADER_REPLACED = 885, - ERR_TRANSMOGRIFY_CANT_EQUIP = 886, - ERR_TRANSMOGRIFY_INVALID_ITEM_TYPE = 887, - ERR_TRANSMOGRIFY_NOT_SOULBOUND = 888, - ERR_TRANSMOGRIFY_INVALID_SOURCE = 889, - ERR_TRANSMOGRIFY_INVALID_DESTINATION = 890, - ERR_TRANSMOGRIFY_MISMATCH = 891, - ERR_TRANSMOGRIFY_LEGENDARY = 892, - ERR_TRANSMOGRIFY_SAME_ITEM = 893, - ERR_TRANSMOGRIFY_SAME_APPEARANCE = 894, - ERR_TRANSMOGRIFY_NOT_EQUIPPED = 895, - ERR_VOID_DEPOSIT_FULL = 896, - ERR_VOID_WITHDRAW_FULL = 897, - ERR_VOID_STORAGE_WRAPPED = 898, - ERR_VOID_STORAGE_STACKABLE = 899, - ERR_VOID_STORAGE_UNBOUND = 900, - ERR_VOID_STORAGE_REPAIR = 901, - ERR_VOID_STORAGE_CHARGES = 902, - ERR_VOID_STORAGE_QUEST = 903, - ERR_VOID_STORAGE_CONJURED = 904, - ERR_VOID_STORAGE_MAIL = 905, - ERR_VOID_STORAGE_BAG = 906, - ERR_VOID_TRANSFER_STORAGE_FULL = 907, - ERR_VOID_TRANSFER_INV_FULL = 908, - ERR_VOID_TRANSFER_INTERNAL_ERROR = 909, - ERR_VOID_TRANSFER_ITEM_INVALID = 910, - ERR_DIFFICULTY_DISABLED_IN_LFG = 911, - ERR_VOID_STORAGE_UNIQUE = 912, - ERR_VOID_STORAGE_LOOT = 913, - ERR_VOID_STORAGE_HOLIDAY = 914, - ERR_VOID_STORAGE_DURATION = 915, - ERR_VOID_STORAGE_LOAD_FAILED = 916, - ERR_VOID_STORAGE_INVALID_ITEM = 917, - ERR_PARENTAL_CONTROLS_CHAT_MUTED = 918, - ERR_SOR_START_EXPERIENCE_INCOMPLETE = 919, - ERR_SOR_INVALID_EMAIL = 920, - ERR_SOR_INVALID_COMMENT = 921, - ERR_CHALLENGE_MODE_RESET_COOLDOWN_S = 922, - ERR_CHALLENGE_MODE_RESET_KEYSTONE = 923, - ERR_PET_JOURNAL_ALREADY_IN_LOADOUT = 924, - ERR_REPORT_SUBMITTED_SUCCESSFULLY = 925, - ERR_REPORT_SUBMISSION_FAILED = 926, - ERR_SUGGESTION_SUBMITTED_SUCCESSFULLY = 927, - ERR_BUG_SUBMITTED_SUCCESSFULLY = 928, - ERR_CHALLENGE_MODE_ENABLED = 929, - ERR_CHALLENGE_MODE_DISABLED = 930, - ERR_PETBATTLE_CREATE_FAILED = 931, - ERR_PETBATTLE_NOT_HERE = 932, - ERR_PETBATTLE_NOT_HERE_ON_TRANSPORT = 933, - ERR_PETBATTLE_NOT_HERE_UNEVEN_GROUND = 934, - ERR_PETBATTLE_NOT_HERE_OBSTRUCTED = 935, - ERR_PETBATTLE_NOT_WHILE_IN_COMBAT = 936, - ERR_PETBATTLE_NOT_WHILE_DEAD = 937, - ERR_PETBATTLE_NOT_WHILE_FLYING = 938, - ERR_PETBATTLE_TARGET_INVALID = 939, - ERR_PETBATTLE_TARGET_OUT_OF_RANGE = 940, - ERR_PETBATTLE_TARGET_NOT_CAPTURABLE = 941, - ERR_PETBATTLE_NOT_A_TRAINER = 942, - ERR_PETBATTLE_DECLINED = 943, - ERR_PETBATTLE_IN_BATTLE = 944, - ERR_PETBATTLE_INVALID_LOADOUT = 945, - ERR_PETBATTLE_ALL_PETS_DEAD = 946, - ERR_PETBATTLE_NO_PETS_IN_SLOTS = 947, - ERR_PETBATTLE_NO_ACCOUNT_LOCK = 948, - ERR_PETBATTLE_WILD_PET_TAPPED = 949, - ERR_PETBATTLE_RESTRICTED_ACCOUNT = 950, - ERR_PETBATTLE_OPPONENT_NOT_AVAILABLE = 951, - ERR_PETBATTLE_NOT_WHILE_IN_MATCHED_BATTLE = 952, - ERR_CANT_HAVE_MORE_PETS_OF_THAT_TYPE = 953, - ERR_CANT_HAVE_MORE_PETS = 954, - ERR_PVP_MAP_NOT_FOUND = 955, - ERR_PVP_MAP_NOT_SET = 956, - ERR_PETBATTLE_QUEUE_QUEUED = 957, - ERR_PETBATTLE_QUEUE_ALREADY_QUEUED = 958, - ERR_PETBATTLE_QUEUE_JOIN_FAILED = 959, - ERR_PETBATTLE_QUEUE_JOURNAL_LOCK = 960, - ERR_PETBATTLE_QUEUE_REMOVED = 961, - ERR_PETBATTLE_QUEUE_PROPOSAL_DECLINED = 962, - ERR_PETBATTLE_QUEUE_PROPOSAL_TIMEOUT = 963, - ERR_PETBATTLE_QUEUE_OPPONENT_DECLINED = 964, - ERR_PETBATTLE_QUEUE_REQUEUED_INTERNAL = 965, - ERR_PETBATTLE_QUEUE_REQUEUED_REMOVED = 966, - ERR_PETBATTLE_QUEUE_SLOT_LOCKED = 967, - ERR_PETBATTLE_QUEUE_SLOT_EMPTY = 968, - ERR_PETBATTLE_QUEUE_SLOT_NO_TRACKER = 969, - ERR_PETBATTLE_QUEUE_SLOT_NO_SPECIES = 970, - ERR_PETBATTLE_QUEUE_SLOT_CANT_BATTLE = 971, - ERR_PETBATTLE_QUEUE_SLOT_REVOKED = 972, - ERR_PETBATTLE_QUEUE_SLOT_DEAD = 973, - ERR_PETBATTLE_QUEUE_SLOT_NO_PET = 974, - ERR_PETBATTLE_QUEUE_NOT_WHILE_NEUTRAL = 975, - ERR_PETBATTLE_GAME_TIME_LIMIT_WARNING = 976, - ERR_PETBATTLE_GAME_ROUNDS_LIMIT_WARNING = 977, - ERR_HAS_RESTRICTION = 978, - ERR_ITEM_UPGRADE_ITEM_TOO_LOW_LEVEL = 979, - ERR_ITEM_UPGRADE_NO_PATH = 980, - ERR_ITEM_UPGRADE_NO_MORE_UPGRADES = 981, - ERR_BONUS_ROLL_EMPTY = 982, - ERR_CHALLENGE_MODE_FULL = 983, - ERR_CHALLENGE_MODE_IN_PROGRESS = 984, - ERR_CHALLENGE_MODE_INCORRECT_KEYSTONE = 985, - ERR_BATTLETAG_FRIEND_NOT_FOUND = 986, - ERR_BATTLETAG_FRIEND_NOT_VALID = 987, - ERR_BATTLETAG_FRIEND_NOT_ALLOWED = 988, - ERR_BATTLETAG_FRIEND_THROTTLED = 989, - ERR_BATTLETAG_FRIEND_SUCCESS = 990, - ERR_PET_TOO_HIGH_LEVEL_TO_UNCAGE = 991, - ERR_PETBATTLE_INTERNAL = 992, - ERR_CANT_CAGE_PET_YET = 993, - ERR_NO_LOOT_IN_CHALLENGE_MODE = 994, - ERR_QUEST_PET_BATTLE_VICTORIES_PVP_II = 995, - ERR_ROLE_CHECK_ALREADY_IN_PROGRESS = 996, - ERR_RECRUIT_A_FRIEND_ACCOUNT_LIMIT = 997, - ERR_RECRUIT_A_FRIEND_FAILED = 998, - ERR_SET_LOOT_PERSONAL = 999, - ERR_SET_LOOT_METHOD_FAILED_COMBAT = 1000, - ERR_REAGENT_BANK_FULL = 1001, - ERR_REAGENT_BANK_LOCKED = 1002, - ERR_GARRISON_BUILDING_EXISTS = 1003, - ERR_GARRISON_INVALID_PLOT = 1004, - ERR_GARRISON_INVALID_BUILDINGID = 1005, - ERR_GARRISON_INVALID_PLOT_BUILDING = 1006, - ERR_GARRISON_REQUIRES_BLUEPRINT = 1007, - ERR_GARRISON_NOT_ENOUGH_CURRENCY = 1008, - ERR_GARRISON_NOT_ENOUGH_GOLD = 1009, - ERR_GARRISON_COMPLETE_MISSION_WRONG_FOLLOWER_TYPE = 1010, - ERR_ALREADY_USING_LFG_LIST = 1011, - ERR_RESTRICTED_ACCOUNT_LFG_LIST_TRIAL = 1012, - ERR_TOY_USE_LIMIT_REACHED = 1013, - ERR_TOY_ALREADY_KNOWN = 1014, - ERR_TRANSMOG_SET_ALREADY_KNOWN = 1015, - ERR_NOT_ENOUGH_CURRENCY = 1016, - ERR_SPEC_IS_DISABLED = 1017, - ERR_FEATURE_RESTRICTED_TRIAL = 1018, - ERR_CANT_BE_OBLITERATED = 1019, - ERR_CANT_BE_SCRAPPED = 1020, - ERR_CANT_BE_RECRAFTED = 1021, - ERR_ARTIFACT_RELIC_DOES_NOT_MATCH_ARTIFACT = 1022, - ERR_MUST_EQUIP_ARTIFACT = 1023, - ERR_CANT_DO_THAT_RIGHT_NOW = 1024, - ERR_AFFECTING_COMBAT = 1025, - ERR_EQUIPMENT_MANAGER_COMBAT_SWAP_S = 1026, - ERR_EQUIPMENT_MANAGER_BAGS_FULL = 1027, - ERR_EQUIPMENT_MANAGER_MISSING_ITEM_S = 1028, - ERR_MOVIE_RECORDING_WARNING_PERF = 1029, - ERR_MOVIE_RECORDING_WARNING_DISK_FULL = 1030, - ERR_MOVIE_RECORDING_WARNING_NO_MOVIE = 1031, - ERR_MOVIE_RECORDING_WARNING_REQUIREMENTS = 1032, - ERR_MOVIE_RECORDING_WARNING_COMPRESSING = 1033, - ERR_NO_CHALLENGE_MODE_REWARD = 1034, - ERR_CLAIMED_CHALLENGE_MODE_REWARD = 1035, - ERR_CHALLENGE_MODE_PERIOD_RESET_SS = 1036, - ERR_CANT_DO_THAT_CHALLENGE_MODE_ACTIVE = 1037, - ERR_TALENT_FAILED_REST_AREA = 1038, - ERR_CANNOT_ABANDON_LAST_PET = 1039, - ERR_TEST_CVAR_SET_SSS = 1040, - ERR_QUEST_TURN_IN_FAIL_REASON = 1041, - ERR_CLAIMED_CHALLENGE_MODE_REWARD_OLD = 1042, - ERR_TALENT_GRANTED_BY_AURA = 1043, - ERR_CHALLENGE_MODE_ALREADY_COMPLETE = 1044, - ERR_GLYPH_TARGET_NOT_AVAILABLE = 1045, - ERR_PVP_WARMODE_TOGGLE_ON = 1046, - ERR_PVP_WARMODE_TOGGLE_OFF = 1047, - ERR_SPELL_FAILED_LEVEL_REQUIREMENT = 1048, - ERR_SPELL_FAILED_CANT_FLY_HERE = 1049, - ERR_BATTLEGROUND_JOIN_REQUIRES_LEVEL = 1050, - ERR_BATTLEGROUND_JOIN_DISQUALIFIED = 1051, - ERR_BATTLEGROUND_JOIN_DISQUALIFIED_NO_NAME = 1052, - ERR_VOICE_CHAT_GENERIC_UNABLE_TO_CONNECT = 1053, - ERR_VOICE_CHAT_SERVICE_LOST = 1054, - ERR_VOICE_CHAT_CHANNEL_NAME_TOO_SHORT = 1055, - ERR_VOICE_CHAT_CHANNEL_NAME_TOO_LONG = 1056, - ERR_VOICE_CHAT_CHANNEL_ALREADY_EXISTS = 1057, - ERR_VOICE_CHAT_TARGET_NOT_FOUND = 1058, - ERR_VOICE_CHAT_TOO_MANY_REQUESTS = 1059, - ERR_VOICE_CHAT_PLAYER_SILENCED = 1060, - ERR_VOICE_CHAT_PARENTAL_DISABLE_ALL = 1061, - ERR_VOICE_CHAT_DISABLED = 1062, - ERR_NO_PVP_REWARD = 1063, - ERR_CLAIMED_PVP_REWARD = 1064, - ERR_AZERITE_ESSENCE_SELECTION_FAILED_ESSENCE_NOT_UNLOCKED = 1065, - ERR_AZERITE_ESSENCE_SELECTION_FAILED_CANT_REMOVE_ESSENCE = 1066, - ERR_AZERITE_ESSENCE_SELECTION_FAILED_CONDITION_FAILED = 1067, - ERR_AZERITE_ESSENCE_SELECTION_FAILED_REST_AREA = 1068, - ERR_AZERITE_ESSENCE_SELECTION_FAILED_SLOT_LOCKED = 1069, - ERR_AZERITE_ESSENCE_SELECTION_FAILED_NOT_AT_FORGE = 1070, - ERR_AZERITE_ESSENCE_SELECTION_FAILED_HEART_LEVEL_TOO_LOW = 1071, - ERR_AZERITE_ESSENCE_SELECTION_FAILED_NOT_EQUIPPED = 1072, - ERR_SOCKETING_REQUIRES_PUNCHCARDRED_GEM = 1073, - ERR_SOCKETING_PUNCHCARDRED_GEM_ONLY_IN_PUNCHCARDREDSLOT = 1074, - ERR_SOCKETING_REQUIRES_PUNCHCARDYELLOW_GEM = 1075, - ERR_SOCKETING_PUNCHCARDYELLOW_GEM_ONLY_IN_PUNCHCARDYELLOWSLOT = 1076, - ERR_SOCKETING_REQUIRES_PUNCHCARDBLUE_GEM = 1077, - ERR_SOCKETING_PUNCHCARDBLUE_GEM_ONLY_IN_PUNCHCARDBLUESLOT = 1078, - ERR_SOCKETING_REQUIRES_DOMINATION_SHARD = 1079, - ERR_SOCKETING_DOMINATION_SHARD_ONLY_IN_DOMINATIONSLOT = 1080, - ERR_SOCKETING_REQUIRES_CYPHER_GEM = 1081, - ERR_SOCKETING_CYPHER_GEM_ONLY_IN_CYPHERSLOT = 1082, - ERR_SOCKETING_REQUIRES_TINKER_GEM = 1083, - ERR_SOCKETING_TINKER_GEM_ONLY_IN_TINKERSLOT = 1084, - ERR_SOCKETING_REQUIRES_PRIMORDIAL_GEM = 1085, - ERR_SOCKETING_PRIMORDIAL_GEM_ONLY_IN_PRIMORDIALSLOT = 1086, - ERR_LEVEL_LINKING_RESULT_LINKED = 1087, - ERR_LEVEL_LINKING_RESULT_UNLINKED = 1088, - ERR_CLUB_FINDER_ERROR_POST_CLUB = 1089, - ERR_CLUB_FINDER_ERROR_APPLY_CLUB = 1090, - ERR_CLUB_FINDER_ERROR_RESPOND_APPLICANT = 1091, - ERR_CLUB_FINDER_ERROR_CANCEL_APPLICATION = 1092, - ERR_CLUB_FINDER_ERROR_TYPE_ACCEPT_APPLICATION = 1093, - ERR_CLUB_FINDER_ERROR_TYPE_NO_INVITE_PERMISSIONS = 1094, - ERR_CLUB_FINDER_ERROR_TYPE_NO_POSTING_PERMISSIONS = 1095, - ERR_CLUB_FINDER_ERROR_TYPE_APPLICANT_LIST = 1096, - ERR_CLUB_FINDER_ERROR_TYPE_APPLICANT_LIST_NO_PERM = 1097, - ERR_CLUB_FINDER_ERROR_TYPE_FINDER_NOT_AVAILABLE = 1098, - ERR_CLUB_FINDER_ERROR_TYPE_GET_POSTING_IDS = 1099, - ERR_CLUB_FINDER_ERROR_TYPE_JOIN_APPLICATION = 1100, - ERR_CLUB_FINDER_ERROR_TYPE_REALM_NOT_ELIGIBLE = 1101, - ERR_CLUB_FINDER_ERROR_TYPE_FLAGGED_RENAME = 1102, - ERR_CLUB_FINDER_ERROR_TYPE_FLAGGED_DESCRIPTION_CHANGE = 1103, - ERR_ITEM_INTERACTION_NOT_ENOUGH_GOLD = 1104, - ERR_ITEM_INTERACTION_NOT_ENOUGH_CURRENCY = 1105, - ERR_ITEM_INTERACTION_NO_CONVERSION_OUTPUT = 1106, - ERR_PLAYER_CHOICE_ERROR_PENDING_CHOICE = 1107, - ERR_SOULBIND_INVALID_CONDUIT = 1108, - ERR_SOULBIND_INVALID_CONDUIT_ITEM = 1109, - ERR_SOULBIND_INVALID_TALENT = 1110, - ERR_SOULBIND_DUPLICATE_CONDUIT = 1111, - ERR_ACTIVATE_SOULBIND_S = 1112, - ERR_ACTIVATE_SOULBIND_FAILED_REST_AREA = 1113, - ERR_CANT_USE_PROFANITY = 1114, - ERR_NOT_IN_PET_BATTLE = 1115, - ERR_NOT_IN_NPE = 1116, - ERR_NO_SPEC = 1117, - ERR_NO_DOMINATIONSHARD_OVERWRITE = 1118, - ERR_USE_WEEKLY_REWARDS_DISABLED = 1119, - ERR_CROSS_FACTION_GROUP_JOINED = 1120, - ERR_CANT_TARGET_UNFRIENDLY_IN_OVERWORLD = 1121, - ERR_EQUIPABLESPELLS_SLOTS_FULL = 1122, - ERR_ITEM_MOD_APPEARANCE_GROUP_ALREADY_KNOWN = 1123, - ERR_CANT_BULK_SELL_ITEM_WITH_REFUND = 1124, - ERR_WOW_LABS_PARTY_ERROR_TYPE_PARTY_IS_FULL = 1125, - ERR_WOW_LABS_PARTY_ERROR_TYPE_MAX_INVITE_SENT = 1126, - ERR_WOW_LABS_PARTY_ERROR_TYPE_PLAYER_ALREADY_INVITED = 1127, - ERR_WOW_LABS_PARTY_ERROR_TYPE_PARTY_INVITE_INVALID = 1128, - ERR_WOW_LABS_LOBBY_MATCHMAKER_ERROR_ENTER_QUEUE_FAILED = 1129, - ERR_WOW_LABS_LOBBY_MATCHMAKER_ERROR_LEAVE_QUEUE_FAILED = 1130, - ERR_TARGET_IS_SELF_FOUND_CANNOT_TRADE = 1131, - ERR_PLAYER_IS_SELF_FOUND_CANNOT_TRADE = 1132, - ERR_MAIL_RECEPIENT_IS_SELF_FOUND_CANNOT_RECEIVE_MAIL = 1133, - ERR_PLAYER_IS_SELF_FOUND_CANNOT_SEND_MAIL = 1134, - ERR_PLAYER_IS_SELF_FOUND_CANNOT_USE_AUCTION_HOUSE = 1135, - ERR_MAIL_TARGET_CANNOT_RECEIVE_MAIL = 1136, + ERR_GUILD_BANK_NOT_AVAILABLE = 138, + ERR_GUILD_CANT_PROMOTE_S = 139, + ERR_GUILD_CANT_DEMOTE_S = 140, + ERR_GUILD_NOT_IN_A_GUILD = 141, + ERR_GUILD_INTERNAL = 142, + ERR_GUILD_LEADER_IS_S = 143, + ERR_GUILD_LEADER_CHANGED_SS = 144, + ERR_GUILD_DISBANDED = 145, + ERR_GUILD_NOT_ALLIED = 146, + ERR_GUILD_NEW_LEADER_NOT_ALLIED = 147, + ERR_GUILD_LEADER_LEAVE = 148, + ERR_GUILD_RANKS_LOCKED = 149, + ERR_GUILD_RANK_IN_USE = 150, + ERR_GUILD_RANK_TOO_HIGH_S = 151, + ERR_GUILD_RANK_TOO_LOW_S = 152, + ERR_GUILD_NAME_EXISTS_S = 153, + ERR_GUILD_WITHDRAW_LIMIT = 154, + ERR_GUILD_NOT_ENOUGH_MONEY = 155, + ERR_GUILD_TOO_MUCH_MONEY = 156, + ERR_GUILD_BANK_CONJURED_ITEM = 157, + ERR_GUILD_BANK_EQUIPPED_ITEM = 158, + ERR_GUILD_BANK_BOUND_ITEM = 159, + ERR_GUILD_BANK_QUEST_ITEM = 160, + ERR_GUILD_BANK_WRAPPED_ITEM = 161, + ERR_GUILD_BANK_FULL = 162, + ERR_GUILD_BANK_WRONG_TAB = 163, + ERR_NO_GUILD_CHARTER = 164, + ERR_OUT_OF_RANGE = 165, + ERR_PLAYER_DEAD = 166, + ERR_CLIENT_LOCKED_OUT = 167, + ERR_CLIENT_ON_TRANSPORT = 168, + ERR_KILLED_BY_S = 169, + ERR_LOOT_LOCKED = 170, + ERR_LOOT_TOO_FAR = 171, + ERR_LOOT_DIDNT_KILL = 172, + ERR_LOOT_BAD_FACING = 173, + ERR_LOOT_NOTSTANDING = 174, + ERR_LOOT_STUNNED = 175, + ERR_LOOT_NO_UI = 176, + ERR_LOOT_WHILE_INVULNERABLE = 177, + ERR_NO_LOOT = 178, + ERR_QUEST_ACCEPTED_S = 179, + ERR_QUEST_COMPLETE_S = 180, + ERR_QUEST_FAILED_S = 181, + ERR_QUEST_FAILED_BAG_FULL_S = 182, + ERR_QUEST_FAILED_MAX_COUNT_S = 183, + ERR_QUEST_FAILED_LOW_LEVEL = 184, + ERR_QUEST_FAILED_MISSING_ITEMS = 185, + ERR_QUEST_FAILED_WRONG_RACE = 186, + ERR_QUEST_FAILED_NOT_ENOUGH_MONEY = 187, + ERR_QUEST_FAILED_EXPANSION = 188, + ERR_QUEST_ONLY_ONE_TIMED = 189, + ERR_QUEST_NEED_PREREQS = 190, + ERR_QUEST_NEED_PREREQS_CUSTOM = 191, + ERR_QUEST_ALREADY_ON = 192, + ERR_QUEST_ALREADY_DONE = 193, + ERR_QUEST_ALREADY_DONE_DAILY = 194, + ERR_QUEST_HAS_IN_PROGRESS = 195, + ERR_QUEST_REWARD_EXP_I = 196, + ERR_QUEST_REWARD_MONEY_S = 197, + ERR_QUEST_MUST_CHOOSE = 198, + ERR_QUEST_LOG_FULL = 199, + ERR_COMBAT_DAMAGE_SSI = 200, + ERR_INSPECT_S = 201, + ERR_CANT_USE_ITEM = 202, + ERR_CANT_USE_ITEM_IN_ARENA = 203, + ERR_CANT_USE_ITEM_IN_RATED_BATTLEGROUND = 204, + ERR_MUST_EQUIP_ITEM = 205, + ERR_PASSIVE_ABILITY = 206, + ERR_2HSKILLNOTFOUND = 207, + ERR_NO_ATTACK_TARGET = 208, + ERR_INVALID_ATTACK_TARGET = 209, + ERR_ATTACK_PVP_TARGET_WHILE_UNFLAGGED = 210, + ERR_ATTACK_STUNNED = 211, + ERR_ATTACK_PACIFIED = 212, + ERR_ATTACK_MOUNTED = 213, + ERR_ATTACK_FLEEING = 214, + ERR_ATTACK_CONFUSED = 215, + ERR_ATTACK_CHARMED = 216, + ERR_ATTACK_DEAD = 217, + ERR_ATTACK_PREVENTED_BY_MECHANIC_S = 218, + ERR_ATTACK_CHANNEL = 219, + ERR_TAXISAMENODE = 220, + ERR_TAXINOSUCHPATH = 221, + ERR_TAXIUNSPECIFIEDSERVERERROR = 222, + ERR_TAXINOTENOUGHMONEY = 223, + ERR_TAXITOOFARAWAY = 224, + ERR_TAXINOVENDORNEARBY = 225, + ERR_TAXINOTVISITED = 226, + ERR_TAXIPLAYERBUSY = 227, + ERR_TAXIPLAYERALREADYMOUNTED = 228, + ERR_TAXIPLAYERSHAPESHIFTED = 229, + ERR_TAXIPLAYERMOVING = 230, + ERR_TAXINOPATHS = 231, + ERR_TAXINOTELIGIBLE = 232, + ERR_TAXINOTSTANDING = 233, + ERR_TAXIINCOMBAT = 234, + ERR_NO_REPLY_TARGET = 235, + ERR_GENERIC_NO_TARGET = 236, + ERR_INITIATE_TRADE_S = 237, + ERR_TRADE_REQUEST_S = 238, + ERR_TRADE_BLOCKED_S = 239, + ERR_TRADE_TARGET_DEAD = 240, + ERR_TRADE_TOO_FAR = 241, + ERR_TRADE_CANCELLED = 242, + ERR_TRADE_COMPLETE = 243, + ERR_TRADE_BAG_FULL = 244, + ERR_TRADE_TARGET_BAG_FULL = 245, + ERR_TRADE_MAX_COUNT_EXCEEDED = 246, + ERR_TRADE_TARGET_MAX_COUNT_EXCEEDED = 247, + ERR_INVENTORY_TRADE_TOO_MANY_UNIQUE_ITEM = 248, + ERR_ALREADY_TRADING = 249, + ERR_MOUNT_INVALIDMOUNTEE = 250, + ERR_MOUNT_TOOFARAWAY = 251, + ERR_MOUNT_ALREADYMOUNTED = 252, + ERR_MOUNT_NOTMOUNTABLE = 253, + ERR_MOUNT_NOTYOURPET = 254, + ERR_MOUNT_OTHER = 255, + ERR_MOUNT_LOOTING = 256, + ERR_MOUNT_RACECANTMOUNT = 257, + ERR_MOUNT_SHAPESHIFTED = 258, + ERR_MOUNT_NO_FAVORITES = 259, + ERR_MOUNT_NO_MOUNTS = 260, + ERR_DISMOUNT_NOPET = 261, + ERR_DISMOUNT_NOTMOUNTED = 262, + ERR_DISMOUNT_NOTYOURPET = 263, + ERR_SPELL_FAILED_TOTEMS = 264, + ERR_SPELL_FAILED_REAGENTS = 265, + ERR_SPELL_FAILED_REAGENTS_GENERIC = 266, + ERR_SPELL_FAILED_OPTIONAL_REAGENTS = 267, + ERR_CANT_TRADE_GOLD = 268, + ERR_SPELL_FAILED_EQUIPPED_ITEM = 269, + ERR_SPELL_FAILED_EQUIPPED_ITEM_CLASS_S = 270, + ERR_SPELL_FAILED_SHAPESHIFT_FORM_S = 271, + ERR_SPELL_FAILED_ANOTHER_IN_PROGRESS = 272, + ERR_BADATTACKFACING = 273, + ERR_BADATTACKPOS = 274, + ERR_CHEST_IN_USE = 275, + ERR_USE_CANT_OPEN = 276, + ERR_USE_LOCKED = 277, + ERR_DOOR_LOCKED = 278, + ERR_BUTTON_LOCKED = 279, + ERR_USE_LOCKED_WITH_ITEM_S = 280, + ERR_USE_LOCKED_WITH_SPELL_S = 281, + ERR_USE_LOCKED_WITH_SPELL_KNOWN_SI = 282, + ERR_USE_TOO_FAR = 283, + ERR_USE_BAD_ANGLE = 284, + ERR_USE_OBJECT_MOVING = 285, + ERR_USE_SPELL_FOCUS = 286, + ERR_USE_DESTROYED = 287, + ERR_SET_LOOT_FREEFORALL = 288, + ERR_SET_LOOT_ROUNDROBIN = 289, + ERR_SET_LOOT_MASTER = 290, + ERR_SET_LOOT_GROUP = 291, + ERR_SET_LOOT_THRESHOLD_S = 292, + ERR_NEW_LOOT_MASTER_S = 293, + ERR_SPECIFY_MASTER_LOOTER = 294, + ERR_LOOT_SPEC_CHANGED_S = 295, + ERR_TAME_FAILED = 296, + ERR_CHAT_WHILE_DEAD = 297, + ERR_CHAT_PLAYER_NOT_FOUND_S = 298, + ERR_NEWTAXIPATH = 299, + ERR_NO_PET = 300, + ERR_NOTYOURPET = 301, + ERR_PET_NOT_RENAMEABLE = 302, + ERR_QUEST_OBJECTIVE_COMPLETE_S = 303, + ERR_QUEST_UNKNOWN_COMPLETE = 304, + ERR_QUEST_ADD_KILL_SII = 305, + ERR_QUEST_ADD_FOUND_SII = 306, + ERR_QUEST_ADD_ITEM_SII = 307, + ERR_QUEST_ADD_PLAYER_KILL_SII = 308, + ERR_CANNOTCREATEDIRECTORY = 309, + ERR_CANNOTCREATEFILE = 310, + ERR_PLAYER_WRONG_FACTION = 311, + ERR_PLAYER_IS_NEUTRAL = 312, + ERR_BANKSLOT_FAILED_TOO_MANY = 313, + ERR_BANKSLOT_INSUFFICIENT_FUNDS = 314, + ERR_BANKSLOT_NOTBANKER = 315, + ERR_FRIEND_DB_ERROR = 316, + ERR_FRIEND_LIST_FULL = 317, + ERR_FRIEND_ADDED_S = 318, + ERR_BATTLETAG_FRIEND_ADDED_S = 319, + ERR_FRIEND_ONLINE_SS = 320, + ERR_FRIEND_OFFLINE_S = 321, + ERR_FRIEND_NOT_FOUND = 322, + ERR_FRIEND_WRONG_FACTION = 323, + ERR_FRIEND_REMOVED_S = 324, + ERR_BATTLETAG_FRIEND_REMOVED_S = 325, + ERR_FRIEND_ERROR = 326, + ERR_FRIEND_ALREADY_S = 327, + ERR_FRIEND_SELF = 328, + ERR_FRIEND_DELETED = 329, + ERR_IGNORE_FULL = 330, + ERR_IGNORE_SELF = 331, + ERR_IGNORE_NOT_FOUND = 332, + ERR_IGNORE_ALREADY_S = 333, + ERR_IGNORE_ADDED_S = 334, + ERR_IGNORE_REMOVED_S = 335, + ERR_IGNORE_AMBIGUOUS = 336, + ERR_IGNORE_DELETED = 337, + ERR_ONLY_ONE_BOLT = 338, + ERR_ONLY_ONE_AMMO = 339, + ERR_SPELL_FAILED_EQUIPPED_SPECIFIC_ITEM = 340, + ERR_WRONG_BAG_TYPE_SUBCLASS = 341, + ERR_CANT_WRAP_STACKABLE = 342, + ERR_CANT_WRAP_EQUIPPED = 343, + ERR_CANT_WRAP_WRAPPED = 344, + ERR_CANT_WRAP_BOUND = 345, + ERR_CANT_WRAP_UNIQUE = 346, + ERR_CANT_WRAP_BAGS = 347, + ERR_OUT_OF_MANA = 348, + ERR_OUT_OF_RAGE = 349, + ERR_OUT_OF_FOCUS = 350, + ERR_OUT_OF_ENERGY = 351, + ERR_OUT_OF_CHI = 352, + ERR_OUT_OF_HEALTH = 353, + ERR_OUT_OF_RUNES = 354, + ERR_OUT_OF_RUNIC_POWER = 355, + ERR_OUT_OF_SOUL_SHARDS = 356, + ERR_OUT_OF_LUNAR_POWER = 357, + ERR_OUT_OF_HOLY_POWER = 358, + ERR_OUT_OF_MAELSTROM = 359, + ERR_OUT_OF_COMBO_POINTS = 360, + ERR_OUT_OF_INSANITY = 361, + ERR_OUT_OF_ESSENCE = 362, + ERR_OUT_OF_ARCANE_CHARGES = 363, + ERR_OUT_OF_FURY = 364, + ERR_OUT_OF_PAIN = 365, + ERR_OUT_OF_POWER_DISPLAY = 366, + ERR_LOOT_GONE = 367, + ERR_MOUNT_FORCEDDISMOUNT = 368, + ERR_AUTOFOLLOW_TOO_FAR = 369, + ERR_UNIT_NOT_FOUND = 370, + ERR_INVALID_FOLLOW_TARGET = 371, + ERR_INVALID_FOLLOW_PVP_COMBAT = 372, + ERR_INVALID_FOLLOW_TARGET_PVP_COMBAT = 373, + ERR_INVALID_INSPECT_TARGET = 374, + ERR_GUILDEMBLEM_SUCCESS = 375, + ERR_GUILDEMBLEM_INVALID_TABARD_COLORS = 376, + ERR_GUILDEMBLEM_NOGUILD = 377, + ERR_GUILDEMBLEM_NOTGUILDMASTER = 378, + ERR_GUILDEMBLEM_NOTENOUGHMONEY = 379, + ERR_GUILDEMBLEM_INVALIDVENDOR = 380, + ERR_EMBLEMERROR_NOTABARDGEOSET = 381, + ERR_SPELL_OUT_OF_RANGE = 382, + ERR_COMMAND_NEEDS_TARGET = 383, + ERR_NOAMMO_S = 384, + ERR_TOOBUSYTOFOLLOW = 385, + ERR_DUEL_REQUESTED = 386, + ERR_DUEL_CANCELLED = 387, + ERR_DEATHBINDALREADYBOUND = 388, + ERR_DEATHBIND_SUCCESS_S = 389, + ERR_NOEMOTEWHILERUNNING = 390, + ERR_ZONE_EXPLORED = 391, + ERR_ZONE_EXPLORED_XP = 392, + ERR_INVALID_ITEM_TARGET = 393, + ERR_INVALID_QUEST_TARGET = 394, + ERR_IGNORING_YOU_S = 395, + ERR_FISH_NOT_HOOKED = 396, + ERR_FISH_ESCAPED = 397, + ERR_SPELL_FAILED_NOTUNSHEATHED = 398, + ERR_PETITION_OFFERED_S = 399, + ERR_PETITION_SIGNED = 400, + ERR_PETITION_SIGNED_S = 401, + ERR_PETITION_DECLINED_S = 402, + ERR_PETITION_ALREADY_SIGNED = 403, + ERR_PETITION_RESTRICTED_ACCOUNT_TRIAL = 404, + ERR_PETITION_ALREADY_SIGNED_OTHER = 405, + ERR_PETITION_IN_GUILD = 406, + ERR_PETITION_CREATOR = 407, + ERR_PETITION_NOT_ENOUGH_SIGNATURES = 408, + ERR_PETITION_NOT_SAME_SERVER = 409, + ERR_PETITION_FULL = 410, + ERR_PETITION_ALREADY_SIGNED_BY_S = 411, + ERR_GUILD_NAME_INVALID = 412, + ERR_SPELL_UNLEARNED_S = 413, + ERR_PET_SPELL_ROOTED = 414, + ERR_PET_SPELL_AFFECTING_COMBAT = 415, + ERR_PET_SPELL_OUT_OF_RANGE = 416, + ERR_PET_SPELL_NOT_BEHIND = 417, + ERR_PET_SPELL_TARGETS_DEAD = 418, + ERR_PET_SPELL_DEAD = 419, + ERR_PET_SPELL_NOPATH = 420, + ERR_ITEM_CANT_BE_DESTROYED = 421, + ERR_TICKET_ALREADY_EXISTS = 422, + ERR_TICKET_CREATE_ERROR = 423, + ERR_TICKET_UPDATE_ERROR = 424, + ERR_TICKET_DB_ERROR = 425, + ERR_TICKET_NO_TEXT = 426, + ERR_TICKET_TEXT_TOO_LONG = 427, + ERR_OBJECT_IS_BUSY = 428, + ERR_EXHAUSTION_WELLRESTED = 429, + ERR_EXHAUSTION_RESTED = 430, + ERR_EXHAUSTION_NORMAL = 431, + ERR_EXHAUSTION_TIRED = 432, + ERR_EXHAUSTION_EXHAUSTED = 433, + ERR_NO_ITEMS_WHILE_SHAPESHIFTED = 434, + ERR_CANT_INTERACT_SHAPESHIFTED = 435, + ERR_REALM_NOT_FOUND = 436, + ERR_MAIL_QUEST_ITEM = 437, + ERR_MAIL_BOUND_ITEM = 438, + ERR_MAIL_CONJURED_ITEM = 439, + ERR_MAIL_BAG = 440, + ERR_MAIL_TO_SELF = 441, + ERR_MAIL_TARGET_NOT_FOUND = 442, + ERR_MAIL_DATABASE_ERROR = 443, + ERR_MAIL_DELETE_ITEM_ERROR = 444, + ERR_MAIL_WRAPPED_COD = 445, + ERR_MAIL_CANT_SEND_REALM = 446, + ERR_MAIL_TEMP_RETURN_OUTAGE = 447, + ERR_MAIL_RECEPIENT_CANT_RECEIVE_MAIL = 448, + ERR_MAIL_SENT = 449, + ERR_MAIL_TARGET_IS_TRIAL = 450, + ERR_NOT_HAPPY_ENOUGH = 451, + ERR_USE_CANT_IMMUNE = 452, + ERR_CANT_BE_DISENCHANTED = 453, + ERR_CANT_USE_DISARMED = 454, + ERR_AUCTION_DATABASE_ERROR = 455, + ERR_AUCTION_HIGHER_BID = 456, + ERR_AUCTION_ALREADY_BID = 457, + ERR_AUCTION_OUTBID_S = 458, + ERR_AUCTION_WON_S = 459, + ERR_AUCTION_REMOVED_S = 460, + ERR_AUCTION_BID_PLACED = 461, + ERR_LOGOUT_FAILED = 462, + ERR_QUEST_PUSH_SUCCESS_S = 463, + ERR_QUEST_PUSH_INVALID_S = 464, + ERR_QUEST_PUSH_INVALID_TO_RECIPIENT_S = 465, + ERR_QUEST_PUSH_ACCEPTED_S = 466, + ERR_QUEST_PUSH_DECLINED_S = 467, + ERR_QUEST_PUSH_BUSY_S = 468, + ERR_QUEST_PUSH_DEAD_S = 469, + ERR_QUEST_PUSH_DEAD_TO_RECIPIENT_S = 470, + ERR_QUEST_PUSH_LOG_FULL_S = 471, + ERR_QUEST_PUSH_LOG_FULL_TO_RECIPIENT_S = 472, + ERR_QUEST_PUSH_ONQUEST_S = 473, + ERR_QUEST_PUSH_ONQUEST_TO_RECIPIENT_S = 474, + ERR_QUEST_PUSH_ALREADY_DONE_S = 475, + ERR_QUEST_PUSH_ALREADY_DONE_TO_RECIPIENT_S = 476, + ERR_QUEST_PUSH_NOT_DAILY_S = 477, + ERR_QUEST_PUSH_TIMER_EXPIRED_S = 478, + ERR_QUEST_PUSH_NOT_IN_PARTY_S = 479, + ERR_QUEST_PUSH_DIFFERENT_SERVER_DAILY_S = 480, + ERR_QUEST_PUSH_DIFFERENT_SERVER_DAILY_TO_RECIPIENT_S = 481, + ERR_QUEST_PUSH_NOT_ALLOWED_S = 482, + ERR_QUEST_PUSH_PREREQUISITE_S = 483, + ERR_QUEST_PUSH_PREREQUISITE_TO_RECIPIENT_S = 484, + ERR_QUEST_PUSH_LOW_LEVEL_S = 485, + ERR_QUEST_PUSH_LOW_LEVEL_TO_RECIPIENT_S = 486, + ERR_QUEST_PUSH_HIGH_LEVEL_S = 487, + ERR_QUEST_PUSH_HIGH_LEVEL_TO_RECIPIENT_S = 488, + ERR_QUEST_PUSH_CLASS_S = 489, + ERR_QUEST_PUSH_CLASS_TO_RECIPIENT_S = 490, + ERR_QUEST_PUSH_RACE_S = 491, + ERR_QUEST_PUSH_RACE_TO_RECIPIENT_S = 492, + ERR_QUEST_PUSH_LOW_FACTION_S = 493, + ERR_QUEST_PUSH_LOW_FACTION_TO_RECIPIENT_S = 494, + ERR_QUEST_PUSH_HIGH_FACTION_S = 495, + ERR_QUEST_PUSH_HIGH_FACTION_TO_RECIPIENT_S = 496, + ERR_QUEST_PUSH_EXPANSION_S = 497, + ERR_QUEST_PUSH_EXPANSION_TO_RECIPIENT_S = 498, + ERR_QUEST_PUSH_NOT_GARRISON_OWNER_S = 499, + ERR_QUEST_PUSH_NOT_GARRISON_OWNER_TO_RECIPIENT_S = 500, + ERR_QUEST_PUSH_WRONG_COVENANT_S = 501, + ERR_QUEST_PUSH_WRONG_COVENANT_TO_RECIPIENT_S = 502, + ERR_QUEST_PUSH_NEW_PLAYER_EXPERIENCE_S = 503, + ERR_QUEST_PUSH_NEW_PLAYER_EXPERIENCE_TO_RECIPIENT_S = 504, + ERR_QUEST_PUSH_WRONG_FACTION_S = 505, + ERR_QUEST_PUSH_WRONG_FACTION_TO_RECIPIENT_S = 506, + ERR_QUEST_PUSH_CROSS_FACTION_RESTRICTED_S = 507, + ERR_RAID_GROUP_LOWLEVEL = 508, + ERR_RAID_GROUP_ONLY = 509, + ERR_RAID_GROUP_FULL = 510, + ERR_RAID_GROUP_REQUIREMENTS_UNMATCH = 511, + ERR_CORPSE_IS_NOT_IN_INSTANCE = 512, + ERR_PVP_KILL_HONORABLE = 513, + ERR_PVP_KILL_DISHONORABLE = 514, + ERR_SPELL_FAILED_ALREADY_AT_FULL_HEALTH = 515, + ERR_SPELL_FAILED_ALREADY_AT_FULL_MANA = 516, + ERR_SPELL_FAILED_ALREADY_AT_FULL_POWER_S = 517, + ERR_AUTOLOOT_MONEY_S = 518, + ERR_GENERIC_STUNNED = 519, + ERR_GENERIC_THROTTLE = 520, + ERR_CLUB_FINDER_SEARCHING_TOO_FAST = 521, + ERR_TARGET_STUNNED = 522, + ERR_MUST_REPAIR_DURABILITY = 523, + ERR_RAID_YOU_JOINED = 524, + ERR_RAID_YOU_LEFT = 525, + ERR_INSTANCE_GROUP_JOINED_WITH_PARTY = 526, + ERR_INSTANCE_GROUP_JOINED_WITH_RAID = 527, + ERR_RAID_MEMBER_ADDED_S = 528, + ERR_RAID_MEMBER_REMOVED_S = 529, + ERR_INSTANCE_GROUP_ADDED_S = 530, + ERR_INSTANCE_GROUP_REMOVED_S = 531, + ERR_CLICK_ON_ITEM_TO_FEED = 532, + ERR_TOO_MANY_CHAT_CHANNELS = 533, + ERR_LOOT_ROLL_PENDING = 534, + ERR_LOOT_PLAYER_NOT_FOUND = 535, + ERR_NOT_IN_RAID = 536, + ERR_LOGGING_OUT = 537, + ERR_TARGET_LOGGING_OUT = 538, + ERR_NOT_WHILE_MOUNTED = 539, + ERR_NOT_WHILE_SHAPESHIFTED = 540, + ERR_NOT_IN_COMBAT = 541, + ERR_NOT_WHILE_DISARMED = 542, + ERR_PET_BROKEN = 543, + ERR_TALENT_WIPE_ERROR = 544, + ERR_SPEC_WIPE_ERROR = 545, + ERR_GLYPH_WIPE_ERROR = 546, + ERR_PET_SPEC_WIPE_ERROR = 547, + ERR_FEIGN_DEATH_RESISTED = 548, + ERR_MEETING_STONE_IN_QUEUE_S = 549, + ERR_MEETING_STONE_LEFT_QUEUE_S = 550, + ERR_MEETING_STONE_OTHER_MEMBER_LEFT = 551, + ERR_MEETING_STONE_PARTY_KICKED_FROM_QUEUE = 552, + ERR_MEETING_STONE_MEMBER_STILL_IN_QUEUE = 553, + ERR_MEETING_STONE_SUCCESS = 554, + ERR_MEETING_STONE_IN_PROGRESS = 555, + ERR_MEETING_STONE_MEMBER_ADDED_S = 556, + ERR_MEETING_STONE_GROUP_FULL = 557, + ERR_MEETING_STONE_NOT_LEADER = 558, + ERR_MEETING_STONE_INVALID_LEVEL = 559, + ERR_MEETING_STONE_TARGET_NOT_IN_PARTY = 560, + ERR_MEETING_STONE_TARGET_INVALID_LEVEL = 561, + ERR_MEETING_STONE_MUST_BE_LEADER = 562, + ERR_MEETING_STONE_NO_RAID_GROUP = 563, + ERR_MEETING_STONE_NEED_PARTY = 564, + ERR_MEETING_STONE_NOT_FOUND = 565, + ERR_MEETING_STONE_TARGET_IN_VEHICLE = 566, + ERR_GUILDEMBLEM_SAME = 567, + ERR_EQUIP_TRADE_ITEM = 568, + ERR_PVP_TOGGLE_ON = 569, + ERR_PVP_TOGGLE_OFF = 570, + ERR_GROUP_JOIN_BATTLEGROUND_DESERTERS = 571, + ERR_GROUP_JOIN_BATTLEGROUND_DEAD = 572, + ERR_GROUP_JOIN_BATTLEGROUND_S = 573, + ERR_GROUP_JOIN_BATTLEGROUND_FAIL = 574, + ERR_GROUP_JOIN_BATTLEGROUND_TOO_MANY = 575, + ERR_SOLO_JOIN_BATTLEGROUND_S = 576, + ERR_JOIN_SINGLE_SCENARIO_S = 577, + ERR_BATTLEGROUND_TOO_MANY_QUEUES = 578, + ERR_BATTLEGROUND_CANNOT_QUEUE_FOR_RATED = 579, + ERR_BATTLEDGROUND_QUEUED_FOR_RATED = 580, + ERR_BATTLEGROUND_TEAM_LEFT_QUEUE = 581, + ERR_BATTLEGROUND_NOT_IN_BATTLEGROUND = 582, + ERR_ALREADY_IN_ARENA_TEAM_S = 583, + ERR_INVALID_PROMOTION_CODE = 584, + ERR_BG_PLAYER_JOINED_SS = 585, + ERR_BG_PLAYER_LEFT_S = 586, + ERR_RESTRICTED_ACCOUNT = 587, + ERR_RESTRICTED_ACCOUNT_TRIAL = 588, + ERR_PLAY_TIME_EXCEEDED = 589, + ERR_APPROACHING_PARTIAL_PLAY_TIME = 590, + ERR_APPROACHING_PARTIAL_PLAY_TIME_2 = 591, + ERR_APPROACHING_NO_PLAY_TIME = 592, + ERR_APPROACHING_NO_PLAY_TIME_2 = 593, + ERR_UNHEALTHY_TIME = 594, + ERR_CHAT_RESTRICTED_TRIAL = 595, + ERR_CHAT_THROTTLED = 596, + ERR_MAIL_REACHED_CAP = 597, + ERR_INVALID_RAID_TARGET = 598, + ERR_RAID_LEADER_READY_CHECK_START_S = 599, + ERR_READY_CHECK_IN_PROGRESS = 600, + ERR_READY_CHECK_THROTTLED = 601, + ERR_DUNGEON_DIFFICULTY_FAILED = 602, + ERR_DUNGEON_DIFFICULTY_CHANGED_S = 603, + ERR_TRADE_WRONG_REALM = 604, + ERR_TRADE_NOT_ON_TAPLIST = 605, + ERR_CHAT_PLAYER_AMBIGUOUS_S = 606, + ERR_LOOT_CANT_LOOT_THAT_NOW = 607, + ERR_LOOT_MASTER_INV_FULL = 608, + ERR_LOOT_MASTER_UNIQUE_ITEM = 609, + ERR_LOOT_MASTER_OTHER = 610, + ERR_FILTERING_YOU_S = 611, + ERR_USE_PREVENTED_BY_MECHANIC_S = 612, + ERR_ITEM_UNIQUE_EQUIPPABLE = 613, + ERR_LFG_LEADER_IS_LFM_S = 614, + ERR_LFG_PENDING = 615, + ERR_CANT_SPEAK_LANGAGE = 616, + ERR_VENDOR_MISSING_TURNINS = 617, + ERR_BATTLEGROUND_NOT_IN_TEAM = 618, + ERR_NOT_IN_BATTLEGROUND = 619, + ERR_NOT_ENOUGH_HONOR_POINTS = 620, + ERR_NOT_ENOUGH_ARENA_POINTS = 621, + ERR_SOCKETING_REQUIRES_META_GEM = 622, + ERR_SOCKETING_META_GEM_ONLY_IN_METASLOT = 623, + ERR_SOCKETING_REQUIRES_HYDRAULIC_GEM = 624, + ERR_SOCKETING_HYDRAULIC_GEM_ONLY_IN_HYDRAULICSLOT = 625, + ERR_SOCKETING_REQUIRES_COGWHEEL_GEM = 626, + ERR_SOCKETING_COGWHEEL_GEM_ONLY_IN_COGWHEELSLOT = 627, + ERR_SOCKETING_ITEM_TOO_LOW_LEVEL = 628, + ERR_ITEM_MAX_COUNT_SOCKETED = 629, + ERR_SYSTEM_DISABLED = 630, + ERR_QUEST_FAILED_TOO_MANY_DAILY_QUESTS_I = 631, + ERR_ITEM_MAX_COUNT_EQUIPPED_SOCKETED = 632, + ERR_ITEM_UNIQUE_EQUIPPABLE_SOCKETED = 633, + ERR_USER_SQUELCHED = 634, + ERR_ACCOUNT_SILENCED = 635, + ERR_PARTY_MEMBER_SILENCED = 636, + ERR_PARTY_MEMBER_SILENCED_LFG_DELIST = 637, + ERR_TOO_MUCH_GOLD = 638, + ERR_NOT_BARBER_SITTING = 639, + ERR_QUEST_FAILED_CAIS = 640, + ERR_INVITE_RESTRICTED_TRIAL = 641, + ERR_VOICE_IGNORE_FULL = 642, + ERR_VOICE_IGNORE_SELF = 643, + ERR_VOICE_IGNORE_NOT_FOUND = 644, + ERR_VOICE_IGNORE_ALREADY_S = 645, + ERR_VOICE_IGNORE_ADDED_S = 646, + ERR_VOICE_IGNORE_REMOVED_S = 647, + ERR_VOICE_IGNORE_AMBIGUOUS = 648, + ERR_VOICE_IGNORE_DELETED = 649, + ERR_UNKNOWN_MACRO_OPTION_S = 650, + ERR_NOT_DURING_ARENA_MATCH = 651, + ERR_NOT_IN_RATED_BATTLEGROUND = 652, + ERR_PLAYER_SILENCED = 653, + ERR_PLAYER_UNSILENCED = 654, + ERR_COMSAT_DISCONNECT = 655, + ERR_COMSAT_RECONNECT_ATTEMPT = 656, + ERR_COMSAT_CONNECT_FAIL = 657, + ERR_MAIL_INVALID_ATTACHMENT_SLOT = 658, + ERR_MAIL_TOO_MANY_ATTACHMENTS = 659, + ERR_MAIL_INVALID_ATTACHMENT = 660, + ERR_MAIL_ATTACHMENT_EXPIRED = 661, + ERR_VOICE_CHAT_PARENTAL_DISABLE_MIC = 662, + ERR_PROFANE_CHAT_NAME = 663, + ERR_PLAYER_SILENCED_ECHO = 664, + ERR_PLAYER_UNSILENCED_ECHO = 665, + ERR_LOOT_CANT_LOOT_THAT = 666, + ERR_ARENA_EXPIRED_CAIS = 667, + ERR_GROUP_ACTION_THROTTLED = 668, + ERR_ALREADY_PICKPOCKETED = 669, + ERR_NAME_INVALID = 670, + ERR_NAME_NO_NAME = 671, + ERR_NAME_TOO_SHORT = 672, + ERR_NAME_TOO_LONG = 673, + ERR_NAME_MIXED_LANGUAGES = 674, + ERR_NAME_PROFANE = 675, + ERR_NAME_RESERVED = 676, + ERR_NAME_THREE_CONSECUTIVE = 677, + ERR_NAME_INVALID_SPACE = 678, + ERR_NAME_CONSECUTIVE_SPACES = 679, + ERR_NAME_RUSSIAN_CONSECUTIVE_SILENT_CHARACTERS = 680, + ERR_NAME_RUSSIAN_SILENT_CHARACTER_AT_BEGINNING_OR_END = 681, + ERR_NAME_DECLENSION_DOESNT_MATCH_BASE_NAME = 682, + ERR_RECRUIT_A_FRIEND_NOT_LINKED = 683, + ERR_RECRUIT_A_FRIEND_NOT_NOW = 684, + ERR_RECRUIT_A_FRIEND_SUMMON_LEVEL_MAX = 685, + ERR_RECRUIT_A_FRIEND_SUMMON_COOLDOWN = 686, + ERR_RECRUIT_A_FRIEND_SUMMON_OFFLINE = 687, + ERR_RECRUIT_A_FRIEND_INSUF_EXPAN_LVL = 688, + ERR_RECRUIT_A_FRIEND_MAP_INCOMING_TRANSFER_NOT_ALLOWED = 689, + ERR_NOT_SAME_ACCOUNT = 690, + ERR_BAD_ON_USE_ENCHANT = 691, + ERR_TRADE_SELF = 692, + ERR_TOO_MANY_SOCKETS = 693, + ERR_ITEM_MAX_LIMIT_CATEGORY_COUNT_EXCEEDED_IS = 694, + ERR_TRADE_TARGET_MAX_LIMIT_CATEGORY_COUNT_EXCEEDED_IS = 695, + ERR_ITEM_MAX_LIMIT_CATEGORY_SOCKETED_EXCEEDED_IS = 696, + ERR_ITEM_MAX_LIMIT_CATEGORY_EQUIPPED_EXCEEDED_IS = 697, + ERR_SHAPESHIFT_FORM_CANNOT_EQUIP = 698, + ERR_ITEM_INVENTORY_FULL_SATCHEL = 699, + ERR_SCALING_STAT_ITEM_LEVEL_EXCEEDED = 700, + ERR_SCALING_STAT_ITEM_LEVEL_TOO_LOW = 701, + ERR_PURCHASE_LEVEL_TOO_LOW = 702, + ERR_GROUP_SWAP_FAILED = 703, + ERR_INVITE_IN_COMBAT = 704, + ERR_INVALID_GLYPH_SLOT = 705, + ERR_GENERIC_NO_VALID_TARGETS = 706, + ERR_CALENDAR_EVENT_ALERT_S = 707, + ERR_PET_LEARN_SPELL_S = 708, + ERR_PET_LEARN_ABILITY_S = 709, + ERR_PET_SPELL_UNLEARNED_S = 710, + ERR_INVITE_UNKNOWN_REALM = 711, + ERR_INVITE_NO_PARTY_SERVER = 712, + ERR_INVITE_PARTY_BUSY = 713, + ERR_INVITE_PARTY_BUSY_PENDING_REQUEST = 714, + ERR_INVITE_PARTY_BUSY_PENDING_SUGGEST = 715, + ERR_PARTY_TARGET_AMBIGUOUS = 716, + ERR_PARTY_LFG_INVITE_RAID_LOCKED = 717, + ERR_PARTY_LFG_BOOT_LIMIT = 718, + ERR_PARTY_LFG_BOOT_COOLDOWN_S = 719, + ERR_PARTY_LFG_BOOT_NOT_ELIGIBLE_S = 720, + ERR_PARTY_LFG_BOOT_INPATIENT_TIMER_S = 721, + ERR_PARTY_LFG_BOOT_IN_PROGRESS = 722, + ERR_PARTY_LFG_BOOT_TOO_FEW_PLAYERS = 723, + ERR_PARTY_LFG_BOOT_VOTE_SUCCEEDED = 724, + ERR_PARTY_LFG_BOOT_VOTE_FAILED = 725, + ERR_PARTY_LFG_BOOT_DISALLOWED_BY_MAP = 726, + ERR_PARTY_LFG_BOOT_DUNGEON_COMPLETE = 727, + ERR_PARTY_LFG_BOOT_LOOT_ROLLS = 728, + ERR_PARTY_LFG_BOOT_VOTE_REGISTERED = 729, + ERR_PARTY_PRIVATE_GROUP_ONLY = 730, + ERR_PARTY_LFG_TELEPORT_IN_COMBAT = 731, + ERR_PARTY_TIME_RUNNING_SEASON_ID_MUST_MATCH = 732, + ERR_RAID_DISALLOWED_BY_LEVEL = 733, + ERR_RAID_DISALLOWED_BY_CROSS_REALM = 734, + ERR_PARTY_ROLE_NOT_AVAILABLE = 735, + ERR_JOIN_LFG_OBJECT_FAILED = 736, + ERR_LFG_REMOVED_LEVELUP = 737, + ERR_LFG_REMOVED_XP_TOGGLE = 738, + ERR_LFG_REMOVED_FACTION_CHANGE = 739, + ERR_BATTLEGROUND_INFO_THROTTLED = 740, + ERR_BATTLEGROUND_ALREADY_IN = 741, + ERR_ARENA_TEAM_CHANGE_FAILED_QUEUED = 742, + ERR_ARENA_TEAM_PERMISSIONS = 743, + ERR_NOT_WHILE_FALLING = 744, + ERR_NOT_WHILE_MOVING = 745, + ERR_NOT_WHILE_FATIGUED = 746, + ERR_MAX_SOCKETS = 747, + ERR_MULTI_CAST_ACTION_TOTEM_S = 748, + ERR_BATTLEGROUND_JOIN_LEVELUP = 749, + ERR_REMOVE_FROM_PVP_QUEUE_XP_GAIN = 750, + ERR_BATTLEGROUND_JOIN_XP_GAIN = 751, + ERR_BATTLEGROUND_JOIN_MERCENARY = 752, + ERR_BATTLEGROUND_JOIN_TOO_MANY_HEALERS = 753, + ERR_BATTLEGROUND_JOIN_RATED_TOO_MANY_HEALERS = 754, + ERR_BATTLEGROUND_JOIN_TOO_MANY_TANKS = 755, + ERR_BATTLEGROUND_JOIN_TOO_MANY_DAMAGE = 756, + ERR_RAID_DIFFICULTY_FAILED = 757, + ERR_RAID_DIFFICULTY_CHANGED_S = 758, + ERR_LEGACY_RAID_DIFFICULTY_CHANGED_S = 759, + ERR_RAID_LOCKOUT_CHANGED_S = 760, + ERR_RAID_CONVERTED_TO_PARTY = 761, + ERR_PARTY_CONVERTED_TO_RAID = 762, + ERR_PLAYER_DIFFICULTY_CHANGED_S = 763, + ERR_GMRESPONSE_DB_ERROR = 764, + ERR_BATTLEGROUND_JOIN_RANGE_INDEX = 765, + ERR_ARENA_JOIN_RANGE_INDEX = 766, + ERR_REMOVE_FROM_PVP_QUEUE_FACTION_CHANGE = 767, + ERR_BATTLEGROUND_JOIN_FAILED = 768, + ERR_BATTLEGROUND_JOIN_NO_VALID_SPEC_FOR_ROLE = 769, + ERR_BATTLEGROUND_JOIN_RESPEC = 770, + ERR_BATTLEGROUND_INVITATION_DECLINED = 771, + ERR_BATTLEGROUND_INVITATION_DECLINED_BY = 772, + ERR_BATTLEGROUND_JOIN_TIMED_OUT = 773, + ERR_BATTLEGROUND_DUPE_QUEUE = 774, + ERR_BATTLEGROUND_JOIN_MUST_COMPLETE_QUEST = 775, + ERR_IN_BATTLEGROUND_RESPEC = 776, + ERR_MAIL_LIMITED_DURATION_ITEM = 777, + ERR_YELL_RESTRICTED_TRIAL = 778, + ERR_CHAT_RAID_RESTRICTED_TRIAL = 779, + ERR_LFG_ROLE_CHECK_FAILED = 780, + ERR_LFG_ROLE_CHECK_FAILED_TIMEOUT = 781, + ERR_LFG_ROLE_CHECK_FAILED_NOT_VIABLE = 782, + ERR_LFG_READY_CHECK_FAILED = 783, + ERR_LFG_READY_CHECK_FAILED_TIMEOUT = 784, + ERR_LFG_GROUP_FULL = 785, + ERR_LFG_NO_LFG_OBJECT = 786, + ERR_LFG_NO_SLOTS_PLAYER = 787, + ERR_LFG_NO_SLOTS_PARTY = 788, + ERR_LFG_NO_SPEC = 789, + ERR_LFG_MISMATCHED_SLOTS = 790, + ERR_LFG_MISMATCHED_SLOTS_LOCAL_XREALM = 791, + ERR_LFG_PARTY_PLAYERS_FROM_DIFFERENT_REALMS = 792, + ERR_LFG_MEMBERS_NOT_PRESENT = 793, + ERR_LFG_GET_INFO_TIMEOUT = 794, + ERR_LFG_INVALID_SLOT = 795, + ERR_LFG_DESERTER_PLAYER = 796, + ERR_LFG_DESERTER_PARTY = 797, + ERR_LFG_DEAD = 798, + ERR_LFG_RANDOM_COOLDOWN_PLAYER = 799, + ERR_LFG_RANDOM_COOLDOWN_PARTY = 800, + ERR_LFG_TOO_MANY_MEMBERS = 801, + ERR_LFG_TOO_FEW_MEMBERS = 802, + ERR_LFG_PROPOSAL_FAILED = 803, + ERR_LFG_PROPOSAL_DECLINED_SELF = 804, + ERR_LFG_PROPOSAL_DECLINED_PARTY = 805, + ERR_LFG_NO_SLOTS_SELECTED = 806, + ERR_LFG_NO_ROLES_SELECTED = 807, + ERR_LFG_ROLE_CHECK_INITIATED = 808, + ERR_LFG_READY_CHECK_INITIATED = 809, + ERR_LFG_PLAYER_DECLINED_ROLE_CHECK = 810, + ERR_LFG_PLAYER_DECLINED_READY_CHECK = 811, + ERR_LFG_JOINED_QUEUE = 812, + ERR_LFG_JOINED_FLEX_QUEUE = 813, + ERR_LFG_JOINED_RF_QUEUE = 814, + ERR_LFG_JOINED_SCENARIO_QUEUE = 815, + ERR_LFG_JOINED_WORLD_PVP_QUEUE = 816, + ERR_LFG_JOINED_BATTLEFIELD_QUEUE = 817, + ERR_LFG_JOINED_LIST = 818, + ERR_LFG_LEFT_QUEUE = 819, + ERR_LFG_LEFT_LIST = 820, + ERR_LFG_ROLE_CHECK_ABORTED = 821, + ERR_LFG_READY_CHECK_ABORTED = 822, + ERR_LFG_CANT_USE_BATTLEGROUND = 823, + ERR_LFG_CANT_USE_DUNGEONS = 824, + ERR_LFG_REASON_TOO_MANY_LFG = 825, + ERR_LFG_FARM_LIMIT = 826, + ERR_LFG_NO_CROSS_FACTION_PARTIES = 827, + ERR_INVALID_TELEPORT_LOCATION = 828, + ERR_TOO_FAR_TO_INTERACT = 829, + ERR_BATTLEGROUND_PLAYERS_FROM_DIFFERENT_REALMS = 830, + ERR_DIFFICULTY_CHANGE_COOLDOWN_S = 831, + ERR_DIFFICULTY_CHANGE_COMBAT_COOLDOWN_S = 832, + ERR_DIFFICULTY_CHANGE_WORLDSTATE = 833, + ERR_DIFFICULTY_CHANGE_ENCOUNTER = 834, + ERR_DIFFICULTY_CHANGE_COMBAT = 835, + ERR_DIFFICULTY_CHANGE_PLAYER_BUSY = 836, + ERR_DIFFICULTY_CHANGE_PLAYER_ON_VEHICLE = 837, + ERR_DIFFICULTY_CHANGE_ALREADY_STARTED = 838, + ERR_DIFFICULTY_CHANGE_OTHER_HEROIC_S = 839, + ERR_DIFFICULTY_CHANGE_HEROIC_INSTANCE_ALREADY_RUNNING = 840, + ERR_ARENA_TEAM_PARTY_SIZE = 841, + ERR_SOLO_SHUFFLE_WARGAME_GROUP_SIZE = 842, + ERR_SOLO_SHUFFLE_WARGAME_GROUP_COMP = 843, + ERR_SOLO_MIN_ITEM_LEVEL = 844, + ERR_PVP_PLAYER_ABANDONED = 845, + ERR_BATTLEGROUND_JOIN_GROUP_QUEUE_WITHOUT_HEALER = 846, + ERR_QUEST_FORCE_REMOVED_S = 847, + ERR_ATTACK_NO_ACTIONS = 848, + ERR_IN_RANDOM_BG = 849, + ERR_IN_NON_RANDOM_BG = 850, + ERR_BN_FRIEND_SELF = 851, + ERR_BN_FRIEND_ALREADY = 852, + ERR_BN_FRIEND_BLOCKED = 853, + ERR_BN_FRIEND_LIST_FULL = 854, + ERR_BN_FRIEND_REQUEST_SENT = 855, + ERR_BN_BROADCAST_THROTTLE = 856, + ERR_BG_DEVELOPER_ONLY = 857, + ERR_CURRENCY_SPELL_SLOT_MISMATCH = 858, + ERR_CURRENCY_NOT_TRADABLE = 859, + ERR_REQUIRES_EXPANSION_S = 860, + ERR_QUEST_FAILED_SPELL = 861, + ERR_TALENT_FAILED_UNSPENT_TALENT_POINTS = 862, + ERR_TALENT_FAILED_NOT_ENOUGH_TALENTS_IN_PRIMARY_TREE = 863, + ERR_TALENT_FAILED_NO_PRIMARY_TREE_SELECTED = 864, + ERR_TALENT_FAILED_CANT_REMOVE_TALENT = 865, + ERR_TALENT_FAILED_UNKNOWN = 866, + ERR_TALENT_FAILED_IN_COMBAT = 867, + ERR_TALENT_FAILED_IN_PVP_MATCH = 868, + ERR_TALENT_FAILED_IN_MYTHIC_PLUS = 869, + ERR_WARGAME_REQUEST_FAILURE = 870, + ERR_RANK_REQUIRES_AUTHENTICATOR = 871, + ERR_GUILD_BANK_VOUCHER_FAILED = 872, + ERR_WARGAME_REQUEST_SENT = 873, + ERR_REQUIRES_ACHIEVEMENT_I = 874, + ERR_REFUND_RESULT_EXCEED_MAX_CURRENCY = 875, + ERR_CANT_BUY_QUANTITY = 876, + ERR_ITEM_IS_BATTLE_PAY_LOCKED = 877, + ERR_PARTY_ALREADY_IN_BATTLEGROUND_QUEUE = 878, + ERR_PARTY_CONFIRMING_BATTLEGROUND_QUEUE = 879, + ERR_BATTLEFIELD_TEAM_PARTY_SIZE = 880, + ERR_INSUFF_TRACKED_CURRENCY_IS = 881, + ERR_NOT_ON_TOURNAMENT_REALM = 882, + ERR_GUILD_TRIAL_ACCOUNT_TRIAL = 883, + ERR_GUILD_TRIAL_ACCOUNT_VETERAN = 884, + ERR_GUILD_UNDELETABLE_DUE_TO_LEVEL = 885, + ERR_CANT_DO_THAT_IN_A_GROUP = 886, + ERR_GUILD_LEADER_REPLACED = 887, + ERR_TRANSMOGRIFY_CANT_EQUIP = 888, + ERR_TRANSMOGRIFY_INVALID_ITEM_TYPE = 889, + ERR_TRANSMOGRIFY_NOT_SOULBOUND = 890, + ERR_TRANSMOGRIFY_INVALID_SOURCE = 891, + ERR_TRANSMOGRIFY_INVALID_DESTINATION = 892, + ERR_TRANSMOGRIFY_MISMATCH = 893, + ERR_TRANSMOGRIFY_LEGENDARY = 894, + ERR_TRANSMOGRIFY_SAME_ITEM = 895, + ERR_TRANSMOGRIFY_SAME_APPEARANCE = 896, + ERR_TRANSMOGRIFY_NOT_EQUIPPED = 897, + ERR_VOID_DEPOSIT_FULL = 898, + ERR_VOID_WITHDRAW_FULL = 899, + ERR_VOID_STORAGE_WRAPPED = 900, + ERR_VOID_STORAGE_STACKABLE = 901, + ERR_VOID_STORAGE_UNBOUND = 902, + ERR_VOID_STORAGE_REPAIR = 903, + ERR_VOID_STORAGE_CHARGES = 904, + ERR_VOID_STORAGE_QUEST = 905, + ERR_VOID_STORAGE_CONJURED = 906, + ERR_VOID_STORAGE_MAIL = 907, + ERR_VOID_STORAGE_BAG = 908, + ERR_VOID_TRANSFER_STORAGE_FULL = 909, + ERR_VOID_TRANSFER_INV_FULL = 910, + ERR_VOID_TRANSFER_INTERNAL_ERROR = 911, + ERR_VOID_TRANSFER_ITEM_INVALID = 912, + ERR_DIFFICULTY_DISABLED_IN_LFG = 913, + ERR_VOID_STORAGE_UNIQUE = 914, + ERR_VOID_STORAGE_LOOT = 915, + ERR_VOID_STORAGE_HOLIDAY = 916, + ERR_VOID_STORAGE_DURATION = 917, + ERR_VOID_STORAGE_LOAD_FAILED = 918, + ERR_VOID_STORAGE_INVALID_ITEM = 919, + ERR_PARENTAL_CONTROLS_CHAT_MUTED = 920, + ERR_SOR_START_EXPERIENCE_INCOMPLETE = 921, + ERR_SOR_INVALID_EMAIL = 922, + ERR_SOR_INVALID_COMMENT = 923, + ERR_CHALLENGE_MODE_RESET_COOLDOWN_S = 924, + ERR_CHALLENGE_MODE_RESET_KEYSTONE = 925, + ERR_PET_JOURNAL_ALREADY_IN_LOADOUT = 926, + ERR_REPORT_SUBMITTED_SUCCESSFULLY = 927, + ERR_REPORT_SUBMISSION_FAILED = 928, + ERR_SUGGESTION_SUBMITTED_SUCCESSFULLY = 929, + ERR_BUG_SUBMITTED_SUCCESSFULLY = 930, + ERR_CHALLENGE_MODE_ENABLED = 931, + ERR_CHALLENGE_MODE_DISABLED = 932, + ERR_PETBATTLE_CREATE_FAILED = 933, + ERR_PETBATTLE_NOT_HERE = 934, + ERR_PETBATTLE_NOT_HERE_ON_TRANSPORT = 935, + ERR_PETBATTLE_NOT_HERE_UNEVEN_GROUND = 936, + ERR_PETBATTLE_NOT_HERE_OBSTRUCTED = 937, + ERR_PETBATTLE_NOT_WHILE_IN_COMBAT = 938, + ERR_PETBATTLE_NOT_WHILE_DEAD = 939, + ERR_PETBATTLE_NOT_WHILE_FLYING = 940, + ERR_PETBATTLE_TARGET_INVALID = 941, + ERR_PETBATTLE_TARGET_OUT_OF_RANGE = 942, + ERR_PETBATTLE_TARGET_NOT_CAPTURABLE = 943, + ERR_PETBATTLE_NOT_A_TRAINER = 944, + ERR_PETBATTLE_DECLINED = 945, + ERR_PETBATTLE_IN_BATTLE = 946, + ERR_PETBATTLE_INVALID_LOADOUT = 947, + ERR_PETBATTLE_ALL_PETS_DEAD = 948, + ERR_PETBATTLE_NO_PETS_IN_SLOTS = 949, + ERR_PETBATTLE_NO_ACCOUNT_LOCK = 950, + ERR_PETBATTLE_WILD_PET_TAPPED = 951, + ERR_PETBATTLE_RESTRICTED_ACCOUNT = 952, + ERR_PETBATTLE_OPPONENT_NOT_AVAILABLE = 953, + ERR_PETBATTLE_NOT_WHILE_IN_MATCHED_BATTLE = 954, + ERR_CANT_HAVE_MORE_PETS_OF_THAT_TYPE = 955, + ERR_CANT_HAVE_MORE_PETS = 956, + ERR_PVP_MAP_NOT_FOUND = 957, + ERR_PVP_MAP_NOT_SET = 958, + ERR_PETBATTLE_QUEUE_QUEUED = 959, + ERR_PETBATTLE_QUEUE_ALREADY_QUEUED = 960, + ERR_PETBATTLE_QUEUE_JOIN_FAILED = 961, + ERR_PETBATTLE_QUEUE_JOURNAL_LOCK = 962, + ERR_PETBATTLE_QUEUE_REMOVED = 963, + ERR_PETBATTLE_QUEUE_PROPOSAL_DECLINED = 964, + ERR_PETBATTLE_QUEUE_PROPOSAL_TIMEOUT = 965, + ERR_PETBATTLE_QUEUE_OPPONENT_DECLINED = 966, + ERR_PETBATTLE_QUEUE_REQUEUED_INTERNAL = 967, + ERR_PETBATTLE_QUEUE_REQUEUED_REMOVED = 968, + ERR_PETBATTLE_QUEUE_SLOT_LOCKED = 969, + ERR_PETBATTLE_QUEUE_SLOT_EMPTY = 970, + ERR_PETBATTLE_QUEUE_SLOT_NO_TRACKER = 971, + ERR_PETBATTLE_QUEUE_SLOT_NO_SPECIES = 972, + ERR_PETBATTLE_QUEUE_SLOT_CANT_BATTLE = 973, + ERR_PETBATTLE_QUEUE_SLOT_REVOKED = 974, + ERR_PETBATTLE_QUEUE_SLOT_DEAD = 975, + ERR_PETBATTLE_QUEUE_SLOT_NO_PET = 976, + ERR_PETBATTLE_QUEUE_NOT_WHILE_NEUTRAL = 977, + ERR_PETBATTLE_GAME_TIME_LIMIT_WARNING = 978, + ERR_PETBATTLE_GAME_ROUNDS_LIMIT_WARNING = 979, + ERR_HAS_RESTRICTION = 980, + ERR_ITEM_UPGRADE_ITEM_TOO_LOW_LEVEL = 981, + ERR_ITEM_UPGRADE_NO_PATH = 982, + ERR_ITEM_UPGRADE_NO_MORE_UPGRADES = 983, + ERR_BONUS_ROLL_EMPTY = 984, + ERR_CHALLENGE_MODE_FULL = 985, + ERR_CHALLENGE_MODE_IN_PROGRESS = 986, + ERR_CHALLENGE_MODE_INCORRECT_KEYSTONE = 987, + ERR_BATTLETAG_FRIEND_NOT_FOUND = 988, + ERR_BATTLETAG_FRIEND_NOT_VALID = 989, + ERR_BATTLETAG_FRIEND_NOT_ALLOWED = 990, + ERR_BATTLETAG_FRIEND_THROTTLED = 991, + ERR_BATTLETAG_FRIEND_SUCCESS = 992, + ERR_PET_TOO_HIGH_LEVEL_TO_UNCAGE = 993, + ERR_PETBATTLE_INTERNAL = 994, + ERR_CANT_CAGE_PET_YET = 995, + ERR_NO_LOOT_IN_CHALLENGE_MODE = 996, + ERR_QUEST_PET_BATTLE_VICTORIES_PVP_II = 997, + ERR_ROLE_CHECK_ALREADY_IN_PROGRESS = 998, + ERR_RECRUIT_A_FRIEND_ACCOUNT_LIMIT = 999, + ERR_RECRUIT_A_FRIEND_FAILED = 1000, + ERR_SET_LOOT_PERSONAL = 1001, + ERR_SET_LOOT_METHOD_FAILED_COMBAT = 1002, + ERR_REAGENT_BANK_FULL = 1003, + ERR_REAGENT_BANK_LOCKED = 1004, + ERR_GARRISON_BUILDING_EXISTS = 1005, + ERR_GARRISON_INVALID_PLOT = 1006, + ERR_GARRISON_INVALID_BUILDINGID = 1007, + ERR_GARRISON_INVALID_PLOT_BUILDING = 1008, + ERR_GARRISON_REQUIRES_BLUEPRINT = 1009, + ERR_GARRISON_NOT_ENOUGH_CURRENCY = 1010, + ERR_GARRISON_NOT_ENOUGH_GOLD = 1011, + ERR_GARRISON_COMPLETE_MISSION_WRONG_FOLLOWER_TYPE = 1012, + ERR_ALREADY_USING_LFG_LIST = 1013, + ERR_RESTRICTED_ACCOUNT_LFG_LIST_TRIAL = 1014, + ERR_TOY_USE_LIMIT_REACHED = 1015, + ERR_TOY_ALREADY_KNOWN = 1016, + ERR_TRANSMOG_SET_ALREADY_KNOWN = 1017, + ERR_NOT_ENOUGH_CURRENCY = 1018, + ERR_SPEC_IS_DISABLED = 1019, + ERR_FEATURE_RESTRICTED_TRIAL = 1020, + ERR_CANT_BE_OBLITERATED = 1021, + ERR_CANT_BE_SCRAPPED = 1022, + ERR_CANT_BE_RECRAFTED = 1023, + ERR_ARTIFACT_RELIC_DOES_NOT_MATCH_ARTIFACT = 1024, + ERR_MUST_EQUIP_ARTIFACT = 1025, + ERR_CANT_DO_THAT_RIGHT_NOW = 1026, + ERR_AFFECTING_COMBAT = 1027, + ERR_EQUIPMENT_MANAGER_COMBAT_SWAP_S = 1028, + ERR_EQUIPMENT_MANAGER_BAGS_FULL = 1029, + ERR_EQUIPMENT_MANAGER_MISSING_ITEM_S = 1030, + ERR_MOVIE_RECORDING_WARNING_PERF = 1031, + ERR_MOVIE_RECORDING_WARNING_DISK_FULL = 1032, + ERR_MOVIE_RECORDING_WARNING_NO_MOVIE = 1033, + ERR_MOVIE_RECORDING_WARNING_REQUIREMENTS = 1034, + ERR_MOVIE_RECORDING_WARNING_COMPRESSING = 1035, + ERR_NO_CHALLENGE_MODE_REWARD = 1036, + ERR_CLAIMED_CHALLENGE_MODE_REWARD = 1037, + ERR_CHALLENGE_MODE_PERIOD_RESET_SS = 1038, + ERR_CANT_DO_THAT_CHALLENGE_MODE_ACTIVE = 1039, + ERR_TALENT_FAILED_REST_AREA = 1040, + ERR_CANNOT_ABANDON_LAST_PET = 1041, + ERR_TEST_CVAR_SET_SSS = 1042, + ERR_QUEST_TURN_IN_FAIL_REASON = 1043, + ERR_CLAIMED_CHALLENGE_MODE_REWARD_OLD = 1044, + ERR_TALENT_GRANTED_BY_AURA = 1045, + ERR_CHALLENGE_MODE_ALREADY_COMPLETE = 1046, + ERR_GLYPH_TARGET_NOT_AVAILABLE = 1047, + ERR_PVP_WARMODE_TOGGLE_ON = 1048, + ERR_PVP_WARMODE_TOGGLE_OFF = 1049, + ERR_SPELL_FAILED_LEVEL_REQUIREMENT = 1050, + ERR_SPELL_FAILED_CANT_FLY_HERE = 1051, + ERR_BATTLEGROUND_JOIN_REQUIRES_LEVEL = 1052, + ERR_BATTLEGROUND_JOIN_DISQUALIFIED = 1053, + ERR_BATTLEGROUND_JOIN_DISQUALIFIED_NO_NAME = 1054, + ERR_VOICE_CHAT_GENERIC_UNABLE_TO_CONNECT = 1055, + ERR_VOICE_CHAT_SERVICE_LOST = 1056, + ERR_VOICE_CHAT_CHANNEL_NAME_TOO_SHORT = 1057, + ERR_VOICE_CHAT_CHANNEL_NAME_TOO_LONG = 1058, + ERR_VOICE_CHAT_CHANNEL_ALREADY_EXISTS = 1059, + ERR_VOICE_CHAT_TARGET_NOT_FOUND = 1060, + ERR_VOICE_CHAT_TOO_MANY_REQUESTS = 1061, + ERR_VOICE_CHAT_PLAYER_SILENCED = 1062, + ERR_VOICE_CHAT_PARENTAL_DISABLE_ALL = 1063, + ERR_VOICE_CHAT_DISABLED = 1064, + ERR_NO_PVP_REWARD = 1065, + ERR_CLAIMED_PVP_REWARD = 1066, + ERR_AZERITE_ESSENCE_SELECTION_FAILED_ESSENCE_NOT_UNLOCKED = 1067, + ERR_AZERITE_ESSENCE_SELECTION_FAILED_CANT_REMOVE_ESSENCE = 1068, + ERR_AZERITE_ESSENCE_SELECTION_FAILED_CONDITION_FAILED = 1069, + ERR_AZERITE_ESSENCE_SELECTION_FAILED_REST_AREA = 1070, + ERR_AZERITE_ESSENCE_SELECTION_FAILED_SLOT_LOCKED = 1071, + ERR_AZERITE_ESSENCE_SELECTION_FAILED_NOT_AT_FORGE = 1072, + ERR_AZERITE_ESSENCE_SELECTION_FAILED_HEART_LEVEL_TOO_LOW = 1073, + ERR_AZERITE_ESSENCE_SELECTION_FAILED_NOT_EQUIPPED = 1074, + ERR_SOCKETING_REQUIRES_PUNCHCARDRED_GEM = 1075, + ERR_SOCKETING_PUNCHCARDRED_GEM_ONLY_IN_PUNCHCARDREDSLOT = 1076, + ERR_SOCKETING_REQUIRES_PUNCHCARDYELLOW_GEM = 1077, + ERR_SOCKETING_PUNCHCARDYELLOW_GEM_ONLY_IN_PUNCHCARDYELLOWSLOT = 1078, + ERR_SOCKETING_REQUIRES_PUNCHCARDBLUE_GEM = 1079, + ERR_SOCKETING_PUNCHCARDBLUE_GEM_ONLY_IN_PUNCHCARDBLUESLOT = 1080, + ERR_SOCKETING_REQUIRES_DOMINATION_SHARD = 1081, + ERR_SOCKETING_DOMINATION_SHARD_ONLY_IN_DOMINATIONSLOT = 1082, + ERR_SOCKETING_REQUIRES_CYPHER_GEM = 1083, + ERR_SOCKETING_CYPHER_GEM_ONLY_IN_CYPHERSLOT = 1084, + ERR_SOCKETING_REQUIRES_TINKER_GEM = 1085, + ERR_SOCKETING_TINKER_GEM_ONLY_IN_TINKERSLOT = 1086, + ERR_SOCKETING_REQUIRES_PRIMORDIAL_GEM = 1087, + ERR_SOCKETING_PRIMORDIAL_GEM_ONLY_IN_PRIMORDIALSLOT = 1088, + ERR_LEVEL_LINKING_RESULT_LINKED = 1089, + ERR_LEVEL_LINKING_RESULT_UNLINKED = 1090, + ERR_CLUB_FINDER_ERROR_POST_CLUB = 1091, + ERR_CLUB_FINDER_ERROR_APPLY_CLUB = 1092, + ERR_CLUB_FINDER_ERROR_RESPOND_APPLICANT = 1093, + ERR_CLUB_FINDER_ERROR_CANCEL_APPLICATION = 1094, + ERR_CLUB_FINDER_ERROR_TYPE_ACCEPT_APPLICATION = 1095, + ERR_CLUB_FINDER_ERROR_TYPE_NO_INVITE_PERMISSIONS = 1096, + ERR_CLUB_FINDER_ERROR_TYPE_NO_POSTING_PERMISSIONS = 1097, + ERR_CLUB_FINDER_ERROR_TYPE_APPLICANT_LIST = 1098, + ERR_CLUB_FINDER_ERROR_TYPE_APPLICANT_LIST_NO_PERM = 1099, + ERR_CLUB_FINDER_ERROR_TYPE_FINDER_NOT_AVAILABLE = 1100, + ERR_CLUB_FINDER_ERROR_TYPE_GET_POSTING_IDS = 1101, + ERR_CLUB_FINDER_ERROR_TYPE_JOIN_APPLICATION = 1102, + ERR_CLUB_FINDER_ERROR_TYPE_REALM_NOT_ELIGIBLE = 1103, + ERR_CLUB_FINDER_ERROR_TYPE_FLAGGED_RENAME = 1104, + ERR_CLUB_FINDER_ERROR_TYPE_FLAGGED_DESCRIPTION_CHANGE = 1105, + ERR_ITEM_INTERACTION_NOT_ENOUGH_GOLD = 1106, + ERR_ITEM_INTERACTION_NOT_ENOUGH_CURRENCY = 1107, + ERR_ITEM_INTERACTION_NO_CONVERSION_OUTPUT = 1108, + ERR_PLAYER_CHOICE_ERROR_PENDING_CHOICE = 1109, + ERR_SOULBIND_INVALID_CONDUIT = 1110, + ERR_SOULBIND_INVALID_CONDUIT_ITEM = 1111, + ERR_SOULBIND_INVALID_TALENT = 1112, + ERR_SOULBIND_DUPLICATE_CONDUIT = 1113, + ERR_ACTIVATE_SOULBIND_S = 1114, + ERR_ACTIVATE_SOULBIND_FAILED_REST_AREA = 1115, + ERR_CANT_USE_PROFANITY = 1116, + ERR_NOT_IN_PET_BATTLE = 1117, + ERR_NOT_IN_NPE = 1118, + ERR_NO_SPEC = 1119, + ERR_NO_DOMINATIONSHARD_OVERWRITE = 1120, + ERR_USE_WEEKLY_REWARDS_DISABLED = 1121, + ERR_CROSS_FACTION_GROUP_JOINED = 1122, + ERR_CANT_TARGET_UNFRIENDLY_IN_OVERWORLD = 1123, + ERR_EQUIPABLESPELLS_SLOTS_FULL = 1124, + ERR_ITEM_MOD_APPEARANCE_GROUP_ALREADY_KNOWN = 1125, + ERR_CANT_BULK_SELL_ITEM_WITH_REFUND = 1126, + ERR_WOW_LABS_PARTY_ERROR_TYPE_PARTY_IS_FULL = 1127, + ERR_WOW_LABS_PARTY_ERROR_TYPE_MAX_INVITE_SENT = 1128, + ERR_WOW_LABS_PARTY_ERROR_TYPE_PLAYER_ALREADY_INVITED = 1129, + ERR_WOW_LABS_PARTY_ERROR_TYPE_PARTY_INVITE_INVALID = 1130, + ERR_WOW_LABS_LOBBY_MATCHMAKER_ERROR_ENTER_QUEUE_FAILED = 1131, + ERR_WOW_LABS_LOBBY_MATCHMAKER_ERROR_LEAVE_QUEUE_FAILED = 1132, + ERR_TARGET_IS_SELF_FOUND_CANNOT_TRADE = 1133, + ERR_PLAYER_IS_SELF_FOUND_CANNOT_TRADE = 1134, + ERR_MAIL_RECEPIENT_IS_SELF_FOUND_CANNOT_RECEIVE_MAIL = 1135, + ERR_PLAYER_IS_SELF_FOUND_CANNOT_SEND_MAIL = 1136, + ERR_PLAYER_IS_SELF_FOUND_CANNOT_USE_AUCTION_HOUSE = 1137, + ERR_MAIL_TARGET_CANNOT_RECEIVE_MAIL = 1138, }; enum class MountResult : uint32 diff --git a/src/server/game/Server/Packets/BattlegroundPackets.cpp b/src/server/game/Server/Packets/BattlegroundPackets.cpp index 5b583ee11f7..820e2933f88 100644 --- a/src/server/game/Server/Packets/BattlegroundPackets.cpp +++ b/src/server/game/Server/Packets/BattlegroundPackets.cpp @@ -25,7 +25,10 @@ WorldPacket const* WorldPackets::Battleground::SeasonInfo::Write() _worldPacket << int32(PreviousArenaSeason); _worldPacket << int32(ConquestWeeklyProgressCurrencyID); _worldPacket << int32(PvpSeasonID); + _worldPacket << int32(Unknown1027_1); _worldPacket.WriteBit(WeeklyRewardChestsEnabled); + _worldPacket.WriteBit(Unknown1027_2); + _worldPacket.WriteBit(Unknown1027_3); _worldPacket.FlushBits(); return &_worldPacket; diff --git a/src/server/game/Server/Packets/BattlegroundPackets.h b/src/server/game/Server/Packets/BattlegroundPackets.h index a320ca96399..cbe23709b0e 100644 --- a/src/server/game/Server/Packets/BattlegroundPackets.h +++ b/src/server/game/Server/Packets/BattlegroundPackets.h @@ -43,7 +43,10 @@ namespace WorldPackets int32 CurrentArenaSeason = 0; int32 PvpSeasonID = 0; int32 ConquestWeeklyProgressCurrencyID = 0; + int32 Unknown1027_1 = 0; bool WeeklyRewardChestsEnabled = false; + bool Unknown1027_2 = false; + bool Unknown1027_3 = false; }; class AreaSpiritHealerQuery final : public ClientPacket diff --git a/src/server/game/Server/Packets/CharacterPackets.cpp b/src/server/game/Server/Packets/CharacterPackets.cpp index 2d0982f902f..ea5025336f2 100644 --- a/src/server/game/Server/Packets/CharacterPackets.cpp +++ b/src/server/game/Server/Packets/CharacterPackets.cpp @@ -240,6 +240,7 @@ ByteBuffer& operator<<(ByteBuffer& data, EnumCharactersResult::CharacterInfo con data << uint32(charInfo.MailSenderTypes.size()); data << uint32(charInfo.OverrideSelectScreenFileDataID); data << charInfo.PersonalTabard; + data << int32(charInfo.TimerunningSeasonID); for (ChrCustomizationChoice const& customization : charInfo.Customizations) data << customization; @@ -358,6 +359,7 @@ void CreateCharacter::Read() _worldPacket >> CreateInfo->Class; _worldPacket >> CreateInfo->Sex; CreateInfo->Customizations.resize(_worldPacket.read()); + _worldPacket >> CreateInfo->TimerunningSeasonID; CreateInfo->Name = _worldPacket.ReadString(nameLength); if (hasTemplateSet) CreateInfo->TemplateSet = _worldPacket.read(); diff --git a/src/server/game/Server/Packets/CharacterPackets.h b/src/server/game/Server/Packets/CharacterPackets.h index df64374efc4..6936a924d12 100644 --- a/src/server/game/Server/Packets/CharacterPackets.h +++ b/src/server/game/Server/Packets/CharacterPackets.h @@ -62,6 +62,7 @@ namespace WorldPackets uint8 Sex = GENDER_NONE; Array Customizations; Optional TemplateSet; + int32 TimerunningSeasonID = 0; bool IsTrialBoost = false; bool UseNPE = false; bool Unused1026 = false; @@ -153,6 +154,7 @@ namespace WorldPackets uint32 Unknown703 = 0; uint32 LastLoginVersion = 0; uint32 OverrideSelectScreenFileDataID = 0; + int32 TimerunningSeasonID = 0; uint32 PetCreatureDisplayID = 0; uint32 PetExperienceLevel = 0; diff --git a/src/server/game/Server/Packets/ChatPackets.cpp b/src/server/game/Server/Packets/ChatPackets.cpp index e347f3bc150..985effdc993 100644 --- a/src/server/game/Server/Packets/ChatPackets.cpp +++ b/src/server/game/Server/Packets/ChatPackets.cpp @@ -44,10 +44,23 @@ void WorldPackets::Chat::ChatMessage::Read() void WorldPackets::Chat::ChatMessageWhisper::Read() { _worldPacket >> Language; - uint32 targetLen = _worldPacket.ReadBits(9); + _worldPacket >> TargetGUID; + _worldPacket >> TargetVirtualRealmAddress; + + uint32 targetLen = _worldPacket.ReadBits(6); uint32 textLen = _worldPacket.ReadBits(11); - Target = _worldPacket.ReadString(targetLen); - Text = _worldPacket.ReadString(textLen); + + if (targetLen > 1) + { + Target = _worldPacket.ReadString(targetLen - 1); + _worldPacket.read_skip(); // null terminator + } + + if (textLen > 1) + { + Text = _worldPacket.ReadString(textLen - 1); + _worldPacket.read_skip(); // null terminator + } } void WorldPackets::Chat::ChatMessageChannel::Read() @@ -82,12 +95,25 @@ void WorldPackets::Chat::ChatAddonMessage::Read() void WorldPackets::Chat::ChatAddonMessageTargeted::Read() { - uint32 targetLen = _worldPacket.ReadBits(9); - _worldPacket.ResetBitPos(); - _worldPacket >> Params; - _worldPacket >> *ChannelGUID; - Target = _worldPacket.ReadString(targetLen); + _worldPacket >> ChannelGUID; + _worldPacket >> PlayerGUID; + _worldPacket >> PlayerVirtualRealmAddress; + + uint32 playerNameLength = _worldPacket.ReadBits(6); + uint32 channelNameLength = _worldPacket.ReadBits(6); + + if (playerNameLength > 1) + { + PlayerName = _worldPacket.ReadString(playerNameLength - 1); + _worldPacket.read_skip(); // null terminator + } + + if (channelNameLength > 1) + { + ChannelName = _worldPacket.ReadString(channelNameLength - 1); + _worldPacket.read_skip(); // null terminator + } } void WorldPackets::Chat::ChatMessageDND::Read() @@ -143,8 +169,8 @@ void WorldPackets::Chat::Chat::Initialize(ChatMsg chatType, Language language, W SenderVirtualAddress = GetVirtualRealmAddress(); TargetVirtualAddress = GetVirtualRealmAddress(); AchievementID = achievementId; - _Channel = std::move(channelName); - Prefix = std::move(addonPrefix); + _Channel = channelName; + Prefix = addonPrefix; ChatText = message; } @@ -182,6 +208,7 @@ WorldPacket const* WorldPackets::Chat::Chat::Write() _worldPacket << uint32(TargetVirtualAddress); _worldPacket << uint32(SenderVirtualAddress); _worldPacket << int32(AchievementID); + _worldPacket << uint16(_ChatFlags); _worldPacket << float(DisplayTime); _worldPacket << int32(SpellID); _worldPacket.WriteBits(SenderName.length(), 11); @@ -189,7 +216,6 @@ WorldPacket const* WorldPackets::Chat::Chat::Write() _worldPacket.WriteBits(Prefix.length(), 5); _worldPacket.WriteBits(_Channel.length(), 7); _worldPacket.WriteBits(ChatText.length(), 12); - _worldPacket.WriteBits(_ChatFlags, 15); _worldPacket.WriteBit(HideChatLog); _worldPacket.WriteBit(FakeSenderName); _worldPacket.WriteBit(Unused_801.has_value()); diff --git a/src/server/game/Server/Packets/ChatPackets.h b/src/server/game/Server/Packets/ChatPackets.h index ca54636921d..dc61634eb3c 100644 --- a/src/server/game/Server/Packets/ChatPackets.h +++ b/src/server/game/Server/Packets/ChatPackets.h @@ -61,8 +61,10 @@ namespace WorldPackets void Read() override; int32 Language = LANG_UNIVERSAL; - std::string Text; + ObjectGuid TargetGUID; + uint32 TargetVirtualRealmAddress = 0; std::string Target; + std::string Text; }; // CMSG_CHAT_MESSAGE_CHANNEL @@ -105,14 +107,16 @@ namespace WorldPackets public: ChatAddonMessageTargeted(WorldPacket&& packet) : ClientPacket(CMSG_CHAT_ADDON_MESSAGE_TARGETED, std::move(packet)) { - ChannelGUID.emplace(); } void Read() override; - std::string Target; ChatAddonMessageParams Params; - Optional ChannelGUID; // not optional in the packet. Optional for api reasons + std::string PlayerName; + ObjectGuid PlayerGUID; + uint32 PlayerVirtualRealmAddress = 0; + std::string ChannelName; + ObjectGuid ChannelGUID; }; class ChatMessageDND final : public ClientPacket diff --git a/src/server/game/Server/Packets/CombatLogPacketsCommon.cpp b/src/server/game/Server/Packets/CombatLogPacketsCommon.cpp index e2435ae0660..a19ec0502f8 100644 --- a/src/server/game/Server/Packets/CombatLogPacketsCommon.cpp +++ b/src/server/game/Server/Packets/CombatLogPacketsCommon.cpp @@ -17,6 +17,7 @@ #include "CombatLogPacketsCommon.h" #include "Creature.h" +#include "DB2Stores.h" #include "Map.h" #include "Player.h" #include "Spell.h" @@ -74,11 +75,14 @@ bool ContentTuningParams::GenerateDataForUnits(Creature* attac PlayerLevelDelta = target->m_activePlayerData->ScalingPlayerLevelDelta; PlayerItemLevel = target->GetAverageItemLevel(); TargetItemLevel = 0; - ScalingHealthItemLevelCurveID = target->m_unitData->ScalingHealthItemLevelCurveID; + if (ContentTuningEntry const* contentTuning = sContentTuningStore.LookupEntry(creatureDifficulty->ContentTuningID)) + { + ScalingHealthItemLevelCurveID = contentTuning->HealthItemLevelCurveID; + TargetContentTuningID = contentTuning->ID; + } TargetLevel = target->GetLevel(); Expansion = creatureDifficulty->HealthScalingExpansion; TargetScalingLevelDelta = int8(attacker->m_unitData->ScalingLevelDelta); - TargetContentTuningID = creatureDifficulty->ContentTuningID; return true; } @@ -92,11 +96,14 @@ bool ContentTuningParams::GenerateDataForUnits(Player* attacke PlayerLevelDelta = attacker->m_activePlayerData->ScalingPlayerLevelDelta; PlayerItemLevel = attacker->GetAverageItemLevel(); TargetItemLevel = 0; - ScalingHealthItemLevelCurveID = target->m_unitData->ScalingHealthItemLevelCurveID; + if (ContentTuningEntry const* contentTuning = sContentTuningStore.LookupEntry(creatureDifficulty->ContentTuningID)) + { + ScalingHealthItemLevelCurveID = contentTuning->HealthItemLevelCurveID; + TargetContentTuningID = contentTuning->ID; + } TargetLevel = target->GetLevel(); Expansion = creatureDifficulty->HealthScalingExpansion; TargetScalingLevelDelta = int8(target->m_unitData->ScalingLevelDelta); - TargetContentTuningID = creatureDifficulty->ContentTuningID; return true; } diff --git a/src/server/game/Server/Packets/MiscPackets.cpp b/src/server/game/Server/Packets/MiscPackets.cpp index 5e7c646d529..730ff5624cc 100644 --- a/src/server/game/Server/Packets/MiscPackets.cpp +++ b/src/server/game/Server/Packets/MiscPackets.cpp @@ -761,8 +761,13 @@ void WorldPackets::Misc::CloseInteraction::Read() WorldPacket const* WorldPackets::Misc::StartTimer::Write() { _worldPacket << TotalTime; - _worldPacket << TimeLeft; _worldPacket << int32(Type); + _worldPacket << TimeLeft; + _worldPacket.WriteBit(PlayerGuid.has_value()); + _worldPacket.FlushBits(); + + if (PlayerGuid) + _worldPacket << *PlayerGuid; return &_worldPacket; } diff --git a/src/server/game/Server/Packets/MiscPackets.h b/src/server/game/Server/Packets/MiscPackets.h index 10aeacead81..7106cfeb7d0 100644 --- a/src/server/game/Server/Packets/MiscPackets.h +++ b/src/server/game/Server/Packets/MiscPackets.h @@ -940,13 +940,14 @@ namespace WorldPackets class StartTimer final : public ServerPacket { public: - StartTimer() : ServerPacket(SMSG_START_TIMER, 12) { } + StartTimer() : ServerPacket(SMSG_START_TIMER, 8 + 4 + 8 + 1 + 16) { } WorldPacket const* Write() override; Duration TotalTime; Duration TimeLeft; CountdownTimerType Type = {}; + Optional PlayerGuid; }; class QueryCountdownTimer final : public ClientPacket diff --git a/src/server/game/Server/Packets/PacketUtilities.cpp b/src/server/game/Server/Packets/PacketUtilities.cpp index fe7487daaee..2175ed46b29 100644 --- a/src/server/game/Server/Packets/PacketUtilities.cpp +++ b/src/server/game/Server/Packets/PacketUtilities.cpp @@ -17,6 +17,7 @@ #include "PacketUtilities.h" #include "Hyperlinks.h" +#include "StringFormat.h" #include WorldPackets::InvalidStringValueException::InvalidStringValueException(std::string const& value) : ByteBufferInvalidValueException("string", value.c_str()) @@ -57,6 +58,6 @@ bool WorldPackets::Strings::NoHyperlinks::Validate(std::string const& value) } WorldPackets::PacketArrayMaxCapacityException::PacketArrayMaxCapacityException(std::size_t requestedSize, std::size_t sizeLimit) + : ByteBufferException(Trinity::StringFormat("Attempted to read more array elements from packet {} than allowed {}", requestedSize, sizeLimit)) { - message().assign("Attempted to read more array elements from packet " + Trinity::ToString(requestedSize) + " than allowed " + Trinity::ToString(sizeLimit)); } diff --git a/src/server/game/Server/Packets/PetPackets.cpp b/src/server/game/Server/Packets/PetPackets.cpp index 089db0e4daa..1ef27cd7555 100644 --- a/src/server/game/Server/Packets/PetPackets.cpp +++ b/src/server/game/Server/Packets/PetPackets.cpp @@ -148,6 +148,11 @@ void WorldPackets::Pet::PetAbandon::Read() _worldPacket >> Pet; } +void WorldPackets::Pet::PetAbandonByNumber::Read() +{ + _worldPacket >> PetNumber; +} + void WorldPackets::Pet::PetSpellAutocast::Read() { _worldPacket >> PetGUID; diff --git a/src/server/game/Server/Packets/PetPackets.h b/src/server/game/Server/Packets/PetPackets.h index 5acb43ee839..9f3bf86eab5 100644 --- a/src/server/game/Server/Packets/PetPackets.h +++ b/src/server/game/Server/Packets/PetPackets.h @@ -58,6 +58,16 @@ namespace WorldPackets ObjectGuid Pet; }; + class PetAbandonByNumber final : public ClientPacket + { + public: + PetAbandonByNumber(WorldPacket&& packet) : ClientPacket(CMSG_PET_ABANDON_BY_NUMBER, std::move(packet)) { } + + void Read() override; + + uint32 PetNumber = 0; + }; + class PetStopAttack final : public ClientPacket { public: diff --git a/src/server/game/Server/Packets/QueryPackets.cpp b/src/server/game/Server/Packets/QueryPackets.cpp index 10a1b336a5f..cf826d3eeea 100644 --- a/src/server/game/Server/Packets/QueryPackets.cpp +++ b/src/server/game/Server/Packets/QueryPackets.cpp @@ -149,21 +149,6 @@ void QueryPlayerNames::Read() _worldPacket >> player; } -ByteBuffer& operator<<(ByteBuffer& data, PlayerGuidLookupHint const& lookupHint) -{ - data.WriteBit(lookupHint.VirtualRealmAddress.has_value()); - data.WriteBit(lookupHint.NativeRealmAddress.has_value()); - data.FlushBits(); - - if (lookupHint.VirtualRealmAddress) - data << uint32(*lookupHint.VirtualRealmAddress); - - if (lookupHint.NativeRealmAddress) - data << uint32(*lookupHint.NativeRealmAddress); - - return data; -} - bool PlayerGuidLookupData::Initialize(ObjectGuid const& guid, Player const* player /*= nullptr*/) { CharacterCacheEntry const* characterInfo = sCharacterCache->GetCharacterCacheByGuid(guid); @@ -181,6 +166,7 @@ bool PlayerGuidLookupData::Initialize(ObjectGuid const& guid, Player const* play Sex = player->GetNativeGender(); ClassID = player->GetClass(); Level = player->GetLevel(); + TimerunningSeasonID = player->m_activePlayerData->TimerunningSeasonID; if (UF::DeclinedNames const* names = player->GetDeclinedNames()) DeclinedNames = *names; @@ -228,6 +214,7 @@ ByteBuffer& operator<<(ByteBuffer& data, PlayerGuidLookupData const& lookupData) data << uint8(lookupData.ClassID); data << uint8(lookupData.Level); data << uint8(lookupData.Unused915); + data << int32(lookupData.TimerunningSeasonID); data.WriteString(lookupData.Name); return data; diff --git a/src/server/game/Server/Packets/QueryPackets.h b/src/server/game/Server/Packets/QueryPackets.h index d9c482e9b9e..d551566f883 100644 --- a/src/server/game/Server/Packets/QueryPackets.h +++ b/src/server/game/Server/Packets/QueryPackets.h @@ -99,12 +99,6 @@ namespace WorldPackets uint32 CreatureID = 0; }; - struct PlayerGuidLookupHint - { - Optional VirtualRealmAddress; ///< current realm (?) (identifier made from the Index, BattleGroup and Region) - Optional NativeRealmAddress; ///< original realm (?) (identifier made from the Index, BattleGroup and Region) - }; - class QueryPlayerNames final : public ClientPacket { public: @@ -131,6 +125,7 @@ namespace WorldPackets uint8 ClassID = CLASS_NONE; uint8 Level = 0; uint8 Unused915 = 0; + int32 TimerunningSeasonID = 0; DeclinedName DeclinedNames; }; @@ -441,7 +436,6 @@ namespace WorldPackets WorldPackets::Auth::VirtualRealmNameInfo NameInfo; }; - ByteBuffer& operator<<(ByteBuffer& data, PlayerGuidLookupHint const& lookupHint); ByteBuffer& operator<<(ByteBuffer& data, PlayerGuidLookupData const& lookupData); } } diff --git a/src/server/game/Server/Packets/QuestPackets.cpp b/src/server/game/Server/Packets/QuestPackets.cpp index cefc2959e07..9eae0a7c3b0 100644 --- a/src/server/game/Server/Packets/QuestPackets.cpp +++ b/src/server/game/Server/Packets/QuestPackets.cpp @@ -485,6 +485,7 @@ WorldPacket const* QuestGiverQuestDetails::Write() _worldPacket.WriteBits(PortraitTurnInText.size(), 10); _worldPacket.WriteBits(PortraitTurnInName.size(), 8); _worldPacket.WriteBit(AutoLaunched); + _worldPacket.WriteBit(FromContentPush); _worldPacket.WriteBit(false); // unused in client _worldPacket.WriteBit(StartCheat); _worldPacket.WriteBit(DisplayPopup); diff --git a/src/server/game/Server/Packets/QuestPackets.h b/src/server/game/Server/Packets/QuestPackets.h index 582144adcb2..ad8d8f957e2 100644 --- a/src/server/game/Server/Packets/QuestPackets.h +++ b/src/server/game/Server/Packets/QuestPackets.h @@ -430,6 +430,7 @@ namespace WorldPackets bool DisplayPopup = false; bool StartCheat = false; bool AutoLaunched = false; + bool FromContentPush = false; }; struct QuestObjectiveCollect diff --git a/src/server/game/Server/Packets/SystemPackets.cpp b/src/server/game/Server/Packets/SystemPackets.cpp index db076443f06..c3cb9594973 100644 --- a/src/server/game/Server/Packets/SystemPackets.cpp +++ b/src/server/game/Server/Packets/SystemPackets.cpp @@ -87,6 +87,10 @@ WorldPacket const* FeatureSystemStatus::Write() _worldPacket << int16(PlayerNameQueryTelemetryInterval); _worldPacket << PlayerNameQueryInterval; + _worldPacket << int32(AddonChatThrottle.MaxTries); + _worldPacket << int32(AddonChatThrottle.TriesRestoredPerSecond); + _worldPacket << int32(AddonChatThrottle.UsedTriesPerMessage); + for (GameRuleValuePair const& gameRuleValue : GameRuleValues) _worldPacket << gameRuleValue; @@ -122,10 +126,11 @@ WorldPacket const* FeatureSystemStatus::Write() _worldPacket.WriteBit(QuestSessionEnabled); _worldPacket.WriteBit(IsMuted); _worldPacket.WriteBit(ClubFinderEnabled); + _worldPacket.WriteBit(CommunityFinderEnabled); _worldPacket.WriteBit(Unknown901CheckoutRelated); _worldPacket.WriteBit(TextToSpeechFeatureEnabled); - _worldPacket.WriteBit(ChatDisabledByDefault); + _worldPacket.WriteBit(ChatDisabledByDefault); _worldPacket.WriteBit(ChatDisabledByPlayer); _worldPacket.WriteBit(LFGListCustomRequiresAuthenticator); _worldPacket.WriteBit(AddonsDisabled); @@ -133,10 +138,15 @@ WorldPacket const* FeatureSystemStatus::Write() _worldPacket.WriteBit(ContentTrackingEnabled); _worldPacket.WriteBit(IsSellAllJunkEnabled); _worldPacket.WriteBit(IsGroupFinderEnabled); - _worldPacket.WriteBit(IsLFDEnabled); + _worldPacket.WriteBit(IsLFDEnabled); _worldPacket.WriteBit(IsLFREnabled); _worldPacket.WriteBit(IsPremadeGroupEnabled); + _worldPacket.WriteBit(CanShowSetRoleButton); + _worldPacket.WriteBit(false); // unused 10.2.7 + _worldPacket.WriteBit(false); // unused 10.2.7 + + _worldPacket.WriteBits(Unknown1027.length(), 7); _worldPacket.FlushBits(); @@ -173,6 +183,8 @@ WorldPacket const* FeatureSystemStatus::Write() _worldPacket << int32(SessionAlert->DisplayTime); } + _worldPacket.WriteString(Unknown1027); + { _worldPacket.WriteBit(Squelch.IsSquelched); _worldPacket << Squelch.BnetAccountGuid; @@ -211,9 +223,10 @@ WorldPacket const* FeatureSystemStatusGlueScreen::Write() _worldPacket.WriteBit(EuropaTicketSystemStatus.has_value()); _worldPacket.WriteBit(IsNameReservationEnabled); _worldPacket.WriteBit(LaunchETA.has_value()); + _worldPacket.WriteBit(TimerunningEnabled); _worldPacket.WriteBit(AddonsDisabled); - _worldPacket.WriteBit(Unused1000); + _worldPacket.WriteBit(Unused1000); _worldPacket.WriteBit(AccountSaveDataExportEnabled); _worldPacket.WriteBit(AccountLockedByExport); _worldPacket.WriteBit(RealmHiddenAlert.has_value()); @@ -238,6 +251,8 @@ WorldPacket const* FeatureSystemStatusGlueScreen::Write() _worldPacket << int32(MaximumExpansionLevel); _worldPacket << int32(ActiveSeason); _worldPacket << uint32(GameRuleValues.size()); + _worldPacket << int32(ActiveTimerunningSeasonID); + _worldPacket << int32(RemainingTimerunningSeasonSeconds); _worldPacket << int16(MaxPlayerNameQueriesPerPacket); _worldPacket << int16(PlayerNameQueryTelemetryInterval); _worldPacket << PlayerNameQueryInterval; diff --git a/src/server/game/Server/Packets/SystemPackets.h b/src/server/game/Server/Packets/SystemPackets.h index 249cb171a51..d130efbdef6 100644 --- a/src/server/game/Server/Packets/SystemPackets.h +++ b/src/server/game/Server/Packets/SystemPackets.h @@ -106,6 +106,13 @@ namespace WorldPackets uint32 Unknown1007 = 0; }; + struct AddonChatThrottleParams + { + int32 MaxTries = 0; + int32 TriesRestoredPerSecond = 0; + int32 UsedTriesPerMessage = 0; + }; + FeatureSystemStatus() : ServerPacket(SMSG_FEATURE_SYSTEM_STATUS, 200) { } WorldPacket const* Write() override; @@ -151,6 +158,7 @@ namespace WorldPackets bool QuestSessionEnabled = false; bool IsMuted = false; bool ClubFinderEnabled = false; + bool CommunityFinderEnabled = false; bool Unknown901CheckoutRelated = false; bool TextToSpeechFeatureEnabled = false; bool ChatDisabledByDefault = false; @@ -164,11 +172,14 @@ namespace WorldPackets bool IsLFDEnabled = true; // classic only bool IsLFREnabled = true; // classic only bool IsPremadeGroupEnabled = true; // classic only + bool CanShowSetRoleButton = true; SocialQueueConfig QuickJoinConfig; SquelchInfo Squelch; RafSystemFeatureInfo RAFSystem; std::vector GameRuleValues; + std::string Unknown1027; // related to movement lua functions used by keybinds + AddonChatThrottleParams AddonChatThrottle; }; struct DebugTimeEventInfo @@ -203,6 +214,7 @@ namespace WorldPackets bool LiveRegionKeyBindingsCopyEnabled = false; bool Unknown901CheckoutRelated = false; // NYI bool IsNameReservationEnabled = false; // classic only + bool TimerunningEnabled = false; // NYI bool AddonsDisabled = false; bool Unused1000 = false; bool AccountSaveDataExportEnabled = false; @@ -220,6 +232,8 @@ namespace WorldPackets uint32 KioskSessionMinutes = 0; int32 ActiveSeason = 0; // Currently active Classic season std::vector GameRuleValues; + int32 ActiveTimerunningSeasonID = 0; + int32 RemainingTimerunningSeasonSeconds = 0; int16 MaxPlayerNameQueriesPerPacket = 50; int16 PlayerNameQueryTelemetryInterval = 600; Duration PlayerNameQueryInterval = 10s; diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 10c07c3a7ec..0196dfa94e9 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -710,6 +710,7 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_PARTY_INVITE_RESPONSE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePartyInviteResponseOpcode); DEFINE_HANDLER(CMSG_PARTY_UNINVITE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePartyUninviteOpcode); DEFINE_HANDLER(CMSG_PERFORM_ITEM_INTERACTION, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_PERKS_PROGRAM_ITEMS_REFRESHED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_PERKS_PROGRAM_REQUEST_PENDING_REWARDS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_PERKS_PROGRAM_REQUEST_PURCHASE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_PERKS_PROGRAM_REQUEST_REFUND, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); @@ -720,6 +721,7 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_PETITION_SHOW_LIST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetitionShowList); DEFINE_HANDLER(CMSG_PETITION_SHOW_SIGNATURES, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetitionShowSignatures); DEFINE_HANDLER(CMSG_PET_ABANDON, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetAbandon); + DEFINE_HANDLER(CMSG_PET_ABANDON_BY_NUMBER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetAbandonByNumber); DEFINE_HANDLER(CMSG_PET_ACTION, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetAction); DEFINE_HANDLER(CMSG_PET_BATTLE_FINAL_NOTIFY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_PET_BATTLE_INPUT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); @@ -815,7 +817,6 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_REQUEST_BATTLEFIELD_STATUS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestBattlefieldStatusOpcode); DEFINE_HANDLER(CMSG_REQUEST_CEMETERY_LIST, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleRequestCemeteryList); DEFINE_HANDLER(CMSG_REQUEST_CHARACTER_GUILD_FOLLOW_INFO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_REQUEST_CONQUEST_FORMULA_CONSTANTS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_REQUEST_COVENANT_CALLINGS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_REQUEST_CROWD_CONTROL_SPELL, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_REQUEST_FORCED_REACTIONS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestForcedReactionsOpcode); @@ -892,6 +893,7 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_SET_LOOT_SPECIALIZATION, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetLootSpecialization); DEFINE_HANDLER(CMSG_SET_PARTY_ASSIGNMENT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetPartyAssignment); DEFINE_HANDLER(CMSG_SET_PARTY_LEADER, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSetPartyLeaderOpcode); + DEFINE_HANDLER(CMSG_SET_PET_FAVORITE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_SET_PET_SLOT, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSetPetSlot); DEFINE_HANDLER(CMSG_SET_PLAYER_DECLINED_NAMES, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetPlayerDeclinedNames); DEFINE_HANDLER(CMSG_SET_PREFERRED_CEMETERY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); @@ -1267,7 +1269,6 @@ void OpcodeTable::InitializeServerOpcodes() DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMPLETE_SHIPMENT_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONFIRM_PARTY_INVITE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONNECT_TO, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONQUEST_FORMULA_CONSTANTS, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONSOLE_WRITE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONSUMABLE_TOKEN_BUY_AT_MARKET_PRICE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONSUMABLE_TOKEN_BUY_CHOICE_REQUIRED, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); @@ -1355,6 +1356,7 @@ void OpcodeTable::InitializeServerOpcodes() DEFINE_SERVER_OPCODE_HANDLER(SMSG_FAILED_PLAYER_CONDITION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_FAILED_QUEST_TURN_IN, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_FEATURE_SYSTEM_STATUS, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_FEATURE_SYSTEM_STATUS2, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_FEATURE_SYSTEM_STATUS_GLUE_SCREEN, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_FEIGN_DEATH_RESISTED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_FISH_ESCAPED, STATUS_NEVER, CONNECTION_TYPE_REALM); diff --git a/src/server/game/Server/Protocol/Opcodes.h b/src/server/game/Server/Protocol/Opcodes.h index 84b20b9e458..ff4ecf3df72 100644 --- a/src/server/game/Server/Protocol/Opcodes.h +++ b/src/server/game/Server/Protocol/Opcodes.h @@ -37,7 +37,7 @@ enum ConnectionType : int8 }; constexpr std::size_t MIN_CMSG_OPCODE_NUMBER = 0x305C; -constexpr std::size_t MAX_CMSG_OPCODE_NUMBER = 0x3A63; +constexpr std::size_t MAX_CMSG_OPCODE_NUMBER = 0x5040; constexpr std::size_t NUM_CMSG_OPCODES = MAX_CMSG_OPCODE_NUMBER - MIN_CMSG_OPCODE_NUMBER + 1; constexpr std::size_t MIN_SMSG_OPCODE_NUMBER = 0x256C; @@ -51,49 +51,49 @@ enum OpcodeClient : uint16 CMSG_ABANDON_NPE_RESPONSE = 0x33F2, CMSG_ACCEPT_GUILD_INVITE = 0x35FD, CMSG_ACCEPT_RETURNING_PLAYER_PROMPT = 0x339D, - CMSG_ACCEPT_SOCIAL_CONTRACT = 0x3745, + CMSG_ACCEPT_SOCIAL_CONTRACT = 0x3742, CMSG_ACCEPT_TRADE = 0x315A, CMSG_ACCEPT_WARGAME_INVITE = 0x35E0, - CMSG_ACCOUNT_NOTIFICATION_ACKNOWLEDGED = 0x3734, + CMSG_ACCOUNT_NOTIFICATION_ACKNOWLEDGED = 0x3731, CMSG_ACTIVATE_SOULBIND = 0x33E1, - CMSG_ACTIVATE_TAXI = 0x34B2, + CMSG_ACTIVATE_TAXI = 0x34B3, CMSG_ADDON_LIST = 0x35D8, - CMSG_ADD_ACCOUNT_COSMETIC = 0x32B6, - CMSG_ADD_BATTLENET_FRIEND = 0x365A, - CMSG_ADD_FRIEND = 0x36CE, - CMSG_ADD_IGNORE = 0x36D2, - CMSG_ADD_TOY = 0x32B5, - CMSG_ADVENTURE_JOURNAL_OPEN_QUEST = 0x3202, + CMSG_ADD_ACCOUNT_COSMETIC = 0x32B7, + CMSG_ADD_BATTLENET_FRIEND = 0x3657, + CMSG_ADD_FRIEND = 0x36CB, + CMSG_ADD_IGNORE = 0x36CF, + CMSG_ADD_TOY = 0x32B6, + CMSG_ADVENTURE_JOURNAL_OPEN_QUEST = 0x3203, CMSG_ADVENTURE_JOURNAL_UPDATE_SUGGESTIONS = 0x33E4, CMSG_ADVENTURE_MAP_START_QUEST = 0x3370, - CMSG_ALTER_APPEARANCE = 0x3504, - CMSG_AREA_SPIRIT_HEALER_QUERY = 0x34B7, - CMSG_AREA_SPIRIT_HEALER_QUEUE = 0x34B8, - CMSG_AREA_TRIGGER = 0x31D6, - CMSG_ARTIFACT_ADD_POWER = 0x31A9, - CMSG_ARTIFACT_SET_APPEARANCE = 0x31AB, - CMSG_ASSIGN_EQUIPMENT_SET_SPEC = 0x320E, - CMSG_ATTACK_STOP = 0x3267, - CMSG_ATTACK_SWING = 0x3266, - CMSG_AUCTIONABLE_TOKEN_SELL = 0x36E4, - CMSG_AUCTIONABLE_TOKEN_SELL_AT_MARKET_PRICE = 0x36E5, - CMSG_AUCTION_BROWSE_QUERY = 0x34D7, - CMSG_AUCTION_CANCEL_COMMODITIES_PURCHASE = 0x34DF, - CMSG_AUCTION_CONFIRM_COMMODITIES_PURCHASE = 0x34DE, - CMSG_AUCTION_GET_COMMODITY_QUOTE = 0x34DD, - CMSG_AUCTION_HELLO_REQUEST = 0x34D2, - CMSG_AUCTION_LIST_BIDDED_ITEMS = 0x34DB, - CMSG_AUCTION_LIST_BUCKETS_BY_BUCKET_KEYS = 0x34DC, - CMSG_AUCTION_LIST_ITEMS_BY_BUCKET_KEY = 0x34D8, - CMSG_AUCTION_LIST_ITEMS_BY_ITEM_ID = 0x34D9, - CMSG_AUCTION_LIST_OWNED_ITEMS = 0x34DA, - CMSG_AUCTION_PLACE_BID = 0x34D6, - CMSG_AUCTION_REMOVE_ITEM = 0x34D4, - CMSG_AUCTION_REPLICATE_ITEMS = 0x34D5, - CMSG_AUCTION_REQUEST_FAVORITE_LIST = 0x3736, - CMSG_AUCTION_SELL_COMMODITY = 0x34E0, - CMSG_AUCTION_SELL_ITEM = 0x34D3, - CMSG_AUCTION_SET_FAVORITE_ITEM = 0x3735, + CMSG_ALTER_APPEARANCE = 0x3505, + CMSG_AREA_SPIRIT_HEALER_QUERY = 0x34B8, + CMSG_AREA_SPIRIT_HEALER_QUEUE = 0x34B9, + CMSG_AREA_TRIGGER = 0x31D7, + CMSG_ARTIFACT_ADD_POWER = 0x31AA, + CMSG_ARTIFACT_SET_APPEARANCE = 0x31AC, + CMSG_ASSIGN_EQUIPMENT_SET_SPEC = 0x320F, + CMSG_ATTACK_STOP = 0x3268, + CMSG_ATTACK_SWING = 0x3267, + CMSG_AUCTIONABLE_TOKEN_SELL = 0x36E1, + CMSG_AUCTIONABLE_TOKEN_SELL_AT_MARKET_PRICE = 0x36E2, + CMSG_AUCTION_BROWSE_QUERY = 0x34D8, + CMSG_AUCTION_CANCEL_COMMODITIES_PURCHASE = 0x34E0, + CMSG_AUCTION_CONFIRM_COMMODITIES_PURCHASE = 0x34DF, + CMSG_AUCTION_GET_COMMODITY_QUOTE = 0x34DE, + CMSG_AUCTION_HELLO_REQUEST = 0x34D3, + CMSG_AUCTION_LIST_BIDDED_ITEMS = 0x34DC, + CMSG_AUCTION_LIST_BUCKETS_BY_BUCKET_KEYS = 0x34DD, + CMSG_AUCTION_LIST_ITEMS_BY_BUCKET_KEY = 0x34D9, + CMSG_AUCTION_LIST_ITEMS_BY_ITEM_ID = 0x34DA, + CMSG_AUCTION_LIST_OWNED_ITEMS = 0x34DB, + CMSG_AUCTION_PLACE_BID = 0x34D7, + CMSG_AUCTION_REMOVE_ITEM = 0x34D5, + CMSG_AUCTION_REPLICATE_ITEMS = 0x34D6, + CMSG_AUCTION_REQUEST_FAVORITE_LIST = 0x3733, + CMSG_AUCTION_SELL_COMMODITY = 0x34E1, + CMSG_AUCTION_SELL_ITEM = 0x34D4, + CMSG_AUCTION_SET_FAVORITE_ITEM = 0x3732, CMSG_AUTH_CONTINUED_SESSION = 0x377A, CMSG_AUTH_SESSION = 0x3779, CMSG_AUTOBANK_ITEM = 0x3997, @@ -102,102 +102,102 @@ enum OpcodeClient : uint16 CMSG_AUTOSTORE_BANK_REAGENT = 0x3998, CMSG_AUTO_EQUIP_ITEM = 0x399A, CMSG_AUTO_EQUIP_ITEM_SLOT = 0x399F, - CMSG_AUTO_GUILD_BANK_ITEM = 0x34BE, + CMSG_AUTO_GUILD_BANK_ITEM = 0x34BF, CMSG_AUTO_STORE_BAG_ITEM = 0x399B, - CMSG_AUTO_STORE_GUILD_BANK_ITEM = 0x34C7, + CMSG_AUTO_STORE_GUILD_BANK_ITEM = 0x34C8, CMSG_AZERITE_EMPOWERED_ITEM_SELECT_POWER = 0x3399, CMSG_AZERITE_EMPOWERED_ITEM_VIEWED = 0x337B, CMSG_AZERITE_ESSENCE_ACTIVATE_ESSENCE = 0x339B, CMSG_AZERITE_ESSENCE_UNLOCK_MILESTONE = 0x339A, - CMSG_BANKER_ACTIVATE = 0x34BA, - CMSG_BATTLEFIELD_LEAVE = 0x3172, - CMSG_BATTLEFIELD_LIST = 0x317D, - CMSG_BATTLEFIELD_PORT = 0x3539, - CMSG_BATTLEMASTER_HELLO = 0x32D3, - CMSG_BATTLEMASTER_JOIN = 0x3531, - CMSG_BATTLEMASTER_JOIN_ARENA = 0x3532, - CMSG_BATTLEMASTER_JOIN_BRAWL = 0x3537, - CMSG_BATTLEMASTER_JOIN_RATED_SOLO_SHUFFLE = 0x3533, - CMSG_BATTLEMASTER_JOIN_SKIRMISH = 0x3534, - CMSG_BATTLENET_CHALLENGE_RESPONSE = 0x36D1, - CMSG_BATTLENET_REQUEST = 0x36F3, - CMSG_BATTLE_PAY_ACK_FAILED_RESPONSE = 0x36CB, - CMSG_BATTLE_PAY_CANCEL_OPEN_CHECKOUT = 0x3712, - CMSG_BATTLE_PAY_CONFIRM_PURCHASE_RESPONSE = 0x36CA, - CMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_TO_TARGET = 0x36C1, - CMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_VAS = 0x3739, - CMSG_BATTLE_PAY_GET_PRODUCT_LIST = 0x36B9, - CMSG_BATTLE_PAY_GET_PURCHASE_LIST = 0x36BA, - CMSG_BATTLE_PAY_OPEN_CHECKOUT = 0x370B, - CMSG_BATTLE_PAY_REQUEST_PRICE_INFO = 0x3707, - CMSG_BATTLE_PAY_START_PURCHASE = 0x36C9, - CMSG_BATTLE_PAY_START_VAS_PURCHASE = 0x36F0, + CMSG_BANKER_ACTIVATE = 0x34BB, + CMSG_BATTLEFIELD_LEAVE = 0x3173, + CMSG_BATTLEFIELD_LIST = 0x317E, + CMSG_BATTLEFIELD_PORT = 0x353A, + CMSG_BATTLEMASTER_HELLO = 0x32D4, + CMSG_BATTLEMASTER_JOIN = 0x3532, + CMSG_BATTLEMASTER_JOIN_ARENA = 0x3533, + CMSG_BATTLEMASTER_JOIN_BRAWL = 0x3538, + CMSG_BATTLEMASTER_JOIN_RATED_SOLO_SHUFFLE = 0x3534, + CMSG_BATTLEMASTER_JOIN_SKIRMISH = 0x3535, + CMSG_BATTLENET_CHALLENGE_RESPONSE = 0x36CE, + CMSG_BATTLENET_REQUEST = 0x36F0, + CMSG_BATTLE_PAY_ACK_FAILED_RESPONSE = 0x36C8, + CMSG_BATTLE_PAY_CANCEL_OPEN_CHECKOUT = 0x370F, + CMSG_BATTLE_PAY_CONFIRM_PURCHASE_RESPONSE = 0x36C7, + CMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_TO_TARGET = 0x36BE, + CMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_VAS = 0x3736, + CMSG_BATTLE_PAY_GET_PRODUCT_LIST = 0x36B6, + CMSG_BATTLE_PAY_GET_PURCHASE_LIST = 0x36B7, + CMSG_BATTLE_PAY_OPEN_CHECKOUT = 0x3708, + CMSG_BATTLE_PAY_REQUEST_PRICE_INFO = 0x3704, + CMSG_BATTLE_PAY_START_PURCHASE = 0x36C6, + CMSG_BATTLE_PAY_START_VAS_PURCHASE = 0x36ED, CMSG_BATTLE_PET_CLEAR_FANFARE = 0x3126, - CMSG_BATTLE_PET_DELETE_PET = 0x3625, - CMSG_BATTLE_PET_DELETE_PET_CHEAT = 0x3626, - CMSG_BATTLE_PET_MODIFY_NAME = 0x3628, - CMSG_BATTLE_PET_REQUEST_JOURNAL = 0x3624, - CMSG_BATTLE_PET_REQUEST_JOURNAL_LOCK = 0x3623, - CMSG_BATTLE_PET_SET_BATTLE_SLOT = 0x362D, - CMSG_BATTLE_PET_SET_FLAGS = 0x3630, - CMSG_BATTLE_PET_SUMMON = 0x3629, - CMSG_BATTLE_PET_UPDATE_DISPLAY_NOTIFY = 0x31E0, - CMSG_BATTLE_PET_UPDATE_NOTIFY = 0x31DF, + CMSG_BATTLE_PET_DELETE_PET = 0x3622, + CMSG_BATTLE_PET_DELETE_PET_CHEAT = 0x3623, + CMSG_BATTLE_PET_MODIFY_NAME = 0x3625, + CMSG_BATTLE_PET_REQUEST_JOURNAL = 0x3621, + CMSG_BATTLE_PET_REQUEST_JOURNAL_LOCK = 0x3620, + CMSG_BATTLE_PET_SET_BATTLE_SLOT = 0x362A, + CMSG_BATTLE_PET_SET_FLAGS = 0x362D, + CMSG_BATTLE_PET_SUMMON = 0x3626, + CMSG_BATTLE_PET_UPDATE_DISPLAY_NOTIFY = 0x31E1, + CMSG_BATTLE_PET_UPDATE_NOTIFY = 0x31E0, CMSG_BEGIN_TRADE = 0x3157, - CMSG_BINDER_ACTIVATE = 0x34B9, - CMSG_BLACK_MARKET_BID_ON_ITEM = 0x3541, - CMSG_BLACK_MARKET_OPEN = 0x353F, - CMSG_BLACK_MARKET_REQUEST_ITEMS = 0x3540, + CMSG_BINDER_ACTIVATE = 0x34BA, + CMSG_BLACK_MARKET_BID_ON_ITEM = 0x3542, + CMSG_BLACK_MARKET_OPEN = 0x3540, + CMSG_BLACK_MARKET_REQUEST_ITEMS = 0x3541, CMSG_BONUS_ROLL = 0x339C, - CMSG_BUG_REPORT = 0x3685, + CMSG_BUG_REPORT = 0x3682, CMSG_BUSY_TRADE = 0x3158, - CMSG_BUY_BACK_ITEM = 0x34AB, - CMSG_BUY_BANK_SLOT = 0x34BB, - CMSG_BUY_ITEM = 0x34AA, - CMSG_BUY_REAGENT_BANK = 0x34BC, - CMSG_CAGE_BATTLE_PET = 0x31F2, - CMSG_CALENDAR_ADD_EVENT = 0x367D, - CMSG_CALENDAR_COMMUNITY_INVITE = 0x3671, - CMSG_CALENDAR_COMPLAIN = 0x3679, - CMSG_CALENDAR_COPY_EVENT = 0x3678, - CMSG_CALENDAR_EVENT_SIGN_UP = 0x367B, - CMSG_CALENDAR_GET = 0x366F, - CMSG_CALENDAR_GET_EVENT = 0x3670, - CMSG_CALENDAR_GET_NUM_PENDING = 0x367A, - CMSG_CALENDAR_INVITE = 0x3672, - CMSG_CALENDAR_MODERATOR_STATUS = 0x3676, - CMSG_CALENDAR_REMOVE_EVENT = 0x3677, - CMSG_CALENDAR_REMOVE_INVITE = 0x3673, - CMSG_CALENDAR_RSVP = 0x3674, - CMSG_CALENDAR_STATUS = 0x3675, - CMSG_CALENDAR_UPDATE_EVENT = 0x367E, - CMSG_CANCEL_AURA = 0x31AD, - CMSG_CANCEL_AUTO_REPEAT_SPELL = 0x34F6, - CMSG_CANCEL_CAST = 0x32BC, - CMSG_CANCEL_CHANNELLING = 0x327F, - CMSG_CANCEL_GROWTH_AURA = 0x3287, - CMSG_CANCEL_MASTER_LOOT_ROLL = 0x321A, - CMSG_CANCEL_MOD_SPEED_NO_CONTROL_AURAS = 0x31AC, - CMSG_CANCEL_MOUNT_AURA = 0x329A, - CMSG_CANCEL_QUEUED_SPELL = 0x317E, - CMSG_CANCEL_TEMP_ENCHANTMENT = 0x3501, + CMSG_BUY_BACK_ITEM = 0x34AC, + CMSG_BUY_BANK_SLOT = 0x34BC, + CMSG_BUY_ITEM = 0x34AB, + CMSG_BUY_REAGENT_BANK = 0x34BD, + CMSG_CAGE_BATTLE_PET = 0x31F3, + CMSG_CALENDAR_ADD_EVENT = 0x367A, + CMSG_CALENDAR_COMMUNITY_INVITE = 0x366E, + CMSG_CALENDAR_COMPLAIN = 0x3676, + CMSG_CALENDAR_COPY_EVENT = 0x3675, + CMSG_CALENDAR_EVENT_SIGN_UP = 0x3678, + CMSG_CALENDAR_GET = 0x366C, + CMSG_CALENDAR_GET_EVENT = 0x366D, + CMSG_CALENDAR_GET_NUM_PENDING = 0x3677, + CMSG_CALENDAR_INVITE = 0x366F, + CMSG_CALENDAR_MODERATOR_STATUS = 0x3673, + CMSG_CALENDAR_REMOVE_EVENT = 0x3674, + CMSG_CALENDAR_REMOVE_INVITE = 0x3670, + CMSG_CALENDAR_RSVP = 0x3671, + CMSG_CALENDAR_STATUS = 0x3672, + CMSG_CALENDAR_UPDATE_EVENT = 0x367B, + CMSG_CANCEL_AURA = 0x31AE, + CMSG_CANCEL_AUTO_REPEAT_SPELL = 0x34F7, + CMSG_CANCEL_CAST = 0x32BD, + CMSG_CANCEL_CHANNELLING = 0x3280, + CMSG_CANCEL_GROWTH_AURA = 0x3288, + CMSG_CANCEL_MASTER_LOOT_ROLL = 0x321B, + CMSG_CANCEL_MOD_SPEED_NO_CONTROL_AURAS = 0x31AD, + CMSG_CANCEL_MOUNT_AURA = 0x329B, + CMSG_CANCEL_QUEUED_SPELL = 0x317F, + CMSG_CANCEL_TEMP_ENCHANTMENT = 0x3502, CMSG_CANCEL_TRADE = 0x315C, - CMSG_CAN_DUEL = 0x3662, - CMSG_CAN_REDEEM_TOKEN_FOR_BALANCE = 0x3706, - CMSG_CAST_SPELL = 0x32B9, - CMSG_CHALLENGE_MODE_REQUEST_LEADERS = 0x308F, + CMSG_CAN_DUEL = 0x365F, + CMSG_CAN_REDEEM_TOKEN_FOR_BALANCE = 0x3703, + CMSG_CAST_SPELL = 0x32BA, + CMSG_CHALLENGE_MODE_REQUEST_LEADERS = 0x305E, CMSG_CHANGE_BAG_SLOT_FLAG = 0x3354, CMSG_CHANGE_BANK_BAG_SLOT_FLAG = 0x3355, CMSG_CHANGE_MONUMENT_APPEARANCE = 0x3335, - CMSG_CHANGE_REALM_TICKET = 0x36F8, - CMSG_CHANGE_SUB_GROUP = 0x364C, - CMSG_CHARACTER_CHECK_UPGRADE = 0x36C4, - CMSG_CHARACTER_RENAME_REQUEST = 0x36BF, - CMSG_CHARACTER_UPGRADE_MANUAL_UNREVOKE_REQUEST = 0x36C2, - CMSG_CHARACTER_UPGRADE_START = 0x36C3, - CMSG_CHAR_CUSTOMIZE = 0x368C, - CMSG_CHAR_DELETE = 0x369C, - CMSG_CHAR_RACE_OR_FACTION_CHANGE = 0x3692, + CMSG_CHANGE_REALM_TICKET = 0x36F5, + CMSG_CHANGE_SUB_GROUP = 0x3649, + CMSG_CHARACTER_CHECK_UPGRADE = 0x36C1, + CMSG_CHARACTER_RENAME_REQUEST = 0x36BC, + CMSG_CHARACTER_UPGRADE_MANUAL_UNREVOKE_REQUEST = 0x36BF, + CMSG_CHARACTER_UPGRADE_START = 0x36C0, + CMSG_CHAR_CUSTOMIZE = 0x3689, + CMSG_CHAR_DELETE = 0x3699, + CMSG_CHAR_RACE_OR_FACTION_CHANGE = 0x368F, CMSG_CHAT_ADDON_MESSAGE = 0x3802, CMSG_CHAT_ADDON_MESSAGE_TARGETED = 0x3803, CMSG_CHAT_CAN_LOCAL_WHISPER_TARGET_REQUEST = 0x380A, @@ -237,88 +237,88 @@ enum OpcodeClient : uint16 CMSG_CHAT_REPORT_FILTERED = 0x37E0, CMSG_CHAT_REPORT_IGNORED = 0x37DF, CMSG_CHAT_UNREGISTER_ALL_ADDON_PREFIXES = 0x37E2, - CMSG_CHECK_CHARACTER_NAME_AVAILABILITY = 0x3645, - CMSG_CHECK_IS_ADVENTURE_MAP_POI_VALID = 0x3258, - CMSG_CHOICE_RESPONSE = 0x32C1, + CMSG_CHECK_CHARACTER_NAME_AVAILABILITY = 0x3642, + CMSG_CHECK_IS_ADVENTURE_MAP_POI_VALID = 0x3259, + CMSG_CHOICE_RESPONSE = 0x32C2, CMSG_CHROMIE_TIME_SELECT_EXPANSION = 0x33E0, CMSG_CLAIM_WEEKLY_REWARD = 0x33BC, - CMSG_CLASS_TALENTS_DELETE_CONFIG = 0x341A, - CMSG_CLASS_TALENTS_NOTIFY_EMPTY_CONFIG = 0x3212, - CMSG_CLASS_TALENTS_NOTIFY_VALIDATION_FAILED = 0x341C, - CMSG_CLASS_TALENTS_RENAME_CONFIG = 0x3419, - CMSG_CLASS_TALENTS_REQUEST_NEW_CONFIG = 0x3418, - CMSG_CLASS_TALENTS_SET_STARTER_BUILD_ACTIVE = 0x341D, - CMSG_CLASS_TALENTS_SET_USES_SHARED_ACTION_BARS = 0x3211, + CMSG_CLASS_TALENTS_DELETE_CONFIG = 0x341B, + CMSG_CLASS_TALENTS_NOTIFY_EMPTY_CONFIG = 0x3213, + CMSG_CLASS_TALENTS_NOTIFY_VALIDATION_FAILED = 0x341D, + CMSG_CLASS_TALENTS_RENAME_CONFIG = 0x341A, + CMSG_CLASS_TALENTS_REQUEST_NEW_CONFIG = 0x3419, + CMSG_CLASS_TALENTS_SET_STARTER_BUILD_ACTIVE = 0x341E, + CMSG_CLASS_TALENTS_SET_USES_SHARED_ACTION_BARS = 0x3212, CMSG_CLEAR_NEW_APPEARANCE = 0x3129, - CMSG_CLEAR_RAID_MARKER = 0x31A5, + CMSG_CLEAR_RAID_MARKER = 0x31A6, CMSG_CLEAR_TRADE_ITEM = 0x315E, - CMSG_CLIENT_PORT_GRAVEYARD = 0x353B, - CMSG_CLOSE_INTERACTION = 0x3499, - CMSG_CLOSE_QUEST_CHOICE = 0x32C2, + CMSG_CLIENT_PORT_GRAVEYARD = 0x353C, + CMSG_CLOSE_INTERACTION = 0x349A, + CMSG_CLOSE_QUEST_CHOICE = 0x32C3, CMSG_CLOSE_RUNEFORGE_INTERACTION = 0x33E8, - CMSG_CLOSE_TRAIT_SYSTEM_INTERACTION = 0x341E, - CMSG_CLUB_FINDER_APPLICATION_RESPONSE = 0x371D, - CMSG_CLUB_FINDER_GET_APPLICANTS_LIST = 0x371B, - CMSG_CLUB_FINDER_POST = 0x3718, - CMSG_CLUB_FINDER_REQUEST_CLUBS_DATA = 0x371F, - CMSG_CLUB_FINDER_REQUEST_CLUBS_LIST = 0x3719, - CMSG_CLUB_FINDER_REQUEST_MEMBERSHIP_TO_CLUB = 0x371A, - CMSG_CLUB_FINDER_REQUEST_PENDING_CLUBS_LIST = 0x371E, - CMSG_CLUB_FINDER_REQUEST_SUBSCRIBED_CLUB_POSTING_IDS = 0x3720, - CMSG_CLUB_FINDER_RESPOND_TO_APPLICANT = 0x371C, - CMSG_CLUB_FINDER_WHISPER_APPLICANT_REQUEST = 0x373C, - CMSG_CLUB_PRESENCE_SUBSCRIBE = 0x36F5, - CMSG_COLLECTION_ITEM_SET_FAVORITE = 0x3633, + CMSG_CLOSE_TRAIT_SYSTEM_INTERACTION = 0x341F, + CMSG_CLUB_FINDER_APPLICATION_RESPONSE = 0x371A, + CMSG_CLUB_FINDER_GET_APPLICANTS_LIST = 0x3718, + CMSG_CLUB_FINDER_POST = 0x3715, + CMSG_CLUB_FINDER_REQUEST_CLUBS_DATA = 0x371C, + CMSG_CLUB_FINDER_REQUEST_CLUBS_LIST = 0x3716, + CMSG_CLUB_FINDER_REQUEST_MEMBERSHIP_TO_CLUB = 0x3717, + CMSG_CLUB_FINDER_REQUEST_PENDING_CLUBS_LIST = 0x371B, + CMSG_CLUB_FINDER_REQUEST_SUBSCRIBED_CLUB_POSTING_IDS = 0x371D, + CMSG_CLUB_FINDER_RESPOND_TO_APPLICANT = 0x3719, + CMSG_CLUB_FINDER_WHISPER_APPLICANT_REQUEST = 0x3739, + CMSG_CLUB_PRESENCE_SUBSCRIBE = 0x36F2, + CMSG_COLLECTION_ITEM_SET_FAVORITE = 0x3630, CMSG_COMMENTATOR_ENABLE = 0x35F0, CMSG_COMMENTATOR_ENTER_INSTANCE = 0x35F4, CMSG_COMMENTATOR_EXIT_INSTANCE = 0x35F5, CMSG_COMMENTATOR_GET_MAP_INFO = 0x35F1, CMSG_COMMENTATOR_GET_PLAYER_COOLDOWNS = 0x35F3, CMSG_COMMENTATOR_GET_PLAYER_INFO = 0x35F2, - CMSG_COMMENTATOR_SPECTATE = 0x373A, + CMSG_COMMENTATOR_SPECTATE = 0x3737, CMSG_COMMENTATOR_START_WARGAME = 0x35EF, - CMSG_COMMERCE_TOKEN_GET_COUNT = 0x36E2, - CMSG_COMMERCE_TOKEN_GET_LOG = 0x36EC, - CMSG_COMMERCE_TOKEN_GET_MARKET_PRICE = 0x36E3, - CMSG_COMPLAINT = 0x366C, - CMSG_COMPLETE_CINEMATIC = 0x3559, - CMSG_COMPLETE_MOVIE = 0x34EC, - CMSG_CONFIRM_ARTIFACT_RESPEC = 0x31AA, - CMSG_CONFIRM_RESPEC_WIPE = 0x3214, + CMSG_COMMERCE_TOKEN_GET_COUNT = 0x36DF, + CMSG_COMMERCE_TOKEN_GET_LOG = 0x36E9, + CMSG_COMMERCE_TOKEN_GET_MARKET_PRICE = 0x36E0, + CMSG_COMPLAINT = 0x3669, + CMSG_COMPLETE_CINEMATIC = 0x355A, + CMSG_COMPLETE_MOVIE = 0x34ED, + CMSG_CONFIRM_ARTIFACT_RESPEC = 0x31AB, + CMSG_CONFIRM_RESPEC_WIPE = 0x3215, CMSG_CONNECT_TO_FAILED = 0x35D4, - CMSG_CONSUMABLE_TOKEN_BUY = 0x36E7, - CMSG_CONSUMABLE_TOKEN_BUY_AT_MARKET_PRICE = 0x36E8, - CMSG_CONSUMABLE_TOKEN_CAN_VETERAN_BUY = 0x36E6, - CMSG_CONSUMABLE_TOKEN_REDEEM = 0x36EA, - CMSG_CONSUMABLE_TOKEN_REDEEM_CONFIRMATION = 0x36EB, - CMSG_CONTENT_TRACKING_START_TRACKING = 0x342E, - CMSG_CONTENT_TRACKING_STOP_TRACKING = 0x342F, - CMSG_CONTRIBUTION_CONTRIBUTE = 0x356E, - CMSG_CONTRIBUTION_LAST_UPDATE_REQUEST = 0x356F, - CMSG_CONVERSATION_CINEMATIC_READY = 0x355B, - CMSG_CONVERSATION_LINE_STARTED = 0x355A, - CMSG_CONVERT_RAID = 0x364E, - CMSG_COVENANT_RENOWN_REQUEST_CATCHUP_STATE = 0x3582, - CMSG_CRAFTING_ORDER_CANCEL = 0x358D, - CMSG_CRAFTING_ORDER_CLAIM = 0x358A, - CMSG_CRAFTING_ORDER_CREATE = 0x3587, - CMSG_CRAFTING_ORDER_FULFILL = 0x358C, - CMSG_CRAFTING_ORDER_LIST_CRAFTER_ORDERS = 0x3589, - CMSG_CRAFTING_ORDER_LIST_MY_ORDERS = 0x3588, - CMSG_CRAFTING_ORDER_REJECT = 0x358E, - CMSG_CRAFTING_ORDER_RELEASE = 0x358B, - CMSG_CRAFTING_ORDER_REPORT_PLAYER = 0x358F, - CMSG_CRAFTING_ORDER_UPDATE_IGNORE_LIST = 0x3590, - CMSG_CREATE_CHARACTER = 0x3644, + CMSG_CONSUMABLE_TOKEN_BUY = 0x36E4, + CMSG_CONSUMABLE_TOKEN_BUY_AT_MARKET_PRICE = 0x36E5, + CMSG_CONSUMABLE_TOKEN_CAN_VETERAN_BUY = 0x36E3, + CMSG_CONSUMABLE_TOKEN_REDEEM = 0x36E7, + CMSG_CONSUMABLE_TOKEN_REDEEM_CONFIRMATION = 0x36E8, + CMSG_CONTENT_TRACKING_START_TRACKING = 0x342F, + CMSG_CONTENT_TRACKING_STOP_TRACKING = 0x3430, + CMSG_CONTRIBUTION_CONTRIBUTE = 0x356F, + CMSG_CONTRIBUTION_LAST_UPDATE_REQUEST = 0x3570, + CMSG_CONVERSATION_CINEMATIC_READY = 0x355C, + CMSG_CONVERSATION_LINE_STARTED = 0x355B, + CMSG_CONVERT_RAID = 0x364B, + CMSG_COVENANT_RENOWN_REQUEST_CATCHUP_STATE = 0x3583, + CMSG_CRAFTING_ORDER_CANCEL = 0x358E, + CMSG_CRAFTING_ORDER_CLAIM = 0x358B, + CMSG_CRAFTING_ORDER_CREATE = 0x3588, + CMSG_CRAFTING_ORDER_FULFILL = 0x358D, + CMSG_CRAFTING_ORDER_LIST_CRAFTER_ORDERS = 0x358A, + CMSG_CRAFTING_ORDER_LIST_MY_ORDERS = 0x3589, + CMSG_CRAFTING_ORDER_REJECT = 0x358F, + CMSG_CRAFTING_ORDER_RELEASE = 0x358C, + CMSG_CRAFTING_ORDER_REPORT_PLAYER = 0x3590, + CMSG_CRAFTING_ORDER_UPDATE_IGNORE_LIST = 0x3591, + CMSG_CREATE_CHARACTER = 0x3641, CMSG_CREATE_SHIPMENT = 0x3320, CMSG_DB_QUERY_BULK = 0x35E4, - CMSG_DECLINE_GUILD_INVITES = 0x352E, - CMSG_DECLINE_PETITION = 0x3548, - CMSG_DELETE_EQUIPMENT_SET = 0x351A, - CMSG_DEL_FRIEND = 0x36CF, - CMSG_DEL_IGNORE = 0x36D3, + CMSG_DECLINE_GUILD_INVITES = 0x352F, + CMSG_DECLINE_PETITION = 0x3549, + CMSG_DELETE_EQUIPMENT_SET = 0x351B, + CMSG_DEL_FRIEND = 0x36CC, + CMSG_DEL_IGNORE = 0x36D0, CMSG_DEPOSIT_REAGENT_BANK = 0x335E, - CMSG_DESTROY_ITEM = 0x32AF, + CMSG_DESTROY_ITEM = 0x32B0, CMSG_DF_BOOT_PLAYER_VOTE = 0x3617, CMSG_DF_CONFIRM_EXPAND_SEARCH = 0x3609, CMSG_DF_GET_JOIN_STATUS = 0x3615, @@ -330,24 +330,24 @@ enum OpcodeClient : uint16 CMSG_DF_SET_ROLES = 0x3616, CMSG_DF_TELEPORT = 0x3618, CMSG_DISCARDED_TIME_SYNC_ACKS = 0x3A41, - CMSG_DISMISS_CRITTER = 0x3508, - CMSG_DO_COUNTDOWN = 0x3717, - CMSG_DO_MASTER_LOOT_ROLL = 0x3219, - CMSG_DO_READY_CHECK = 0x3634, - CMSG_DUEL_RESPONSE = 0x34F1, - CMSG_EJECT_PASSENGER = 0x324D, - CMSG_EMOTE = 0x3555, + CMSG_DISMISS_CRITTER = 0x3509, + CMSG_DO_COUNTDOWN = 0x3714, + CMSG_DO_MASTER_LOOT_ROLL = 0x321A, + CMSG_DO_READY_CHECK = 0x3631, + CMSG_DUEL_RESPONSE = 0x34F2, + CMSG_EJECT_PASSENGER = 0x324E, + CMSG_EMOTE = 0x3556, CMSG_ENABLE_NAGLE = 0x377F, - CMSG_ENABLE_TAXI_NODE = 0x34B0, - CMSG_ENGINE_SURVEY = 0x36E1, + CMSG_ENABLE_TAXI_NODE = 0x34B1, + CMSG_ENGINE_SURVEY = 0x36DE, CMSG_ENTER_ENCRYPTED_MODE_ACK = 0x377B, CMSG_ENUM_CHARACTERS = 0x35E8, - CMSG_ENUM_CHARACTERS_DELETED_BY_CLIENT = 0x36DB, - CMSG_FAR_SIGHT = 0x34F7, - CMSG_GAME_EVENT_DEBUG_DISABLE = 0x31B1, - CMSG_GAME_EVENT_DEBUG_ENABLE = 0x31B0, - CMSG_GAME_OBJ_REPORT_USE = 0x34FE, - CMSG_GAME_OBJ_USE = 0x34FD, + CMSG_ENUM_CHARACTERS_DELETED_BY_CLIENT = 0x36D8, + CMSG_FAR_SIGHT = 0x34F8, + CMSG_GAME_EVENT_DEBUG_DISABLE = 0x31B2, + CMSG_GAME_EVENT_DEBUG_ENABLE = 0x31B1, + CMSG_GAME_OBJ_REPORT_USE = 0x34FF, + CMSG_GAME_OBJ_USE = 0x34FE, CMSG_GARRISON_ADD_FOLLOWER_HEALTH = 0x331B, CMSG_GARRISON_ASSIGN_FOLLOWER_TO_BUILDING = 0x3301, CMSG_GARRISON_CANCEL_CONSTRUCTION = 0x32EE, @@ -376,87 +376,87 @@ enum OpcodeClient : uint16 CMSG_GARRISON_START_MISSION = 0x3341, CMSG_GARRISON_SWAP_BUILDINGS = 0x32EF, CMSG_GENERATE_RANDOM_CHARACTER_NAME = 0x35E7, - CMSG_GET_ACCOUNT_CHARACTER_LIST = 0x36B4, - CMSG_GET_ACCOUNT_NOTIFICATIONS = 0x3733, + CMSG_GET_ACCOUNT_CHARACTER_LIST = 0x36B1, + CMSG_GET_ACCOUNT_NOTIFICATIONS = 0x3730, CMSG_GET_GARRISON_INFO = 0x32E4, - CMSG_GET_ITEM_PURCHASE_DATA = 0x3543, + CMSG_GET_ITEM_PURCHASE_DATA = 0x3544, CMSG_GET_LANDING_PAGE_SHIPMENTS = 0x331F, - CMSG_GET_MIRROR_IMAGE_DATA = 0x32B3, + CMSG_GET_MIRROR_IMAGE_DATA = 0x32B4, CMSG_GET_PVP_OPTIONS_ENABLED = 0x35EE, - CMSG_GET_RAF_ACCOUNT_INFO = 0x3721, - CMSG_GET_REMAINING_GAME_TIME = 0x36E9, + CMSG_GET_RAF_ACCOUNT_INFO = 0x371E, + CMSG_GET_REMAINING_GAME_TIME = 0x36E6, CMSG_GET_TROPHY_LIST = 0x3332, - CMSG_GET_UNDELETE_CHARACTER_COOLDOWN_STATUS = 0x36DD, - CMSG_GET_VAS_ACCOUNT_CHARACTER_LIST = 0x36EE, - CMSG_GET_VAS_TRANSFER_TARGET_REALM_LIST = 0x36EF, - CMSG_GM_TICKET_ACKNOWLEDGE_SURVEY = 0x3690, - CMSG_GM_TICKET_GET_CASE_STATUS = 0x368F, - CMSG_GM_TICKET_GET_SYSTEM_STATUS = 0x368E, - CMSG_GOSSIP_REFRESH_OPTIONS = 0x3581, - CMSG_GOSSIP_SELECT_OPTION = 0x349A, - CMSG_GUILD_ADD_BATTLENET_FRIEND = 0x308D, - CMSG_GUILD_ADD_RANK = 0x3065, - CMSG_GUILD_ASSIGN_MEMBER_RANK = 0x3060, - CMSG_GUILD_AUTO_DECLINE_INVITATION = 0x3062, - CMSG_GUILD_BANK_ACTIVATE = 0x34BD, - CMSG_GUILD_BANK_BUY_TAB = 0x34CB, - CMSG_GUILD_BANK_DEPOSIT_MONEY = 0x34CD, - CMSG_GUILD_BANK_LOG_QUERY = 0x3083, - CMSG_GUILD_BANK_QUERY_TAB = 0x34CA, - CMSG_GUILD_BANK_REMAINING_WITHDRAW_MONEY_QUERY = 0x3084, - CMSG_GUILD_BANK_SET_TAB_TEXT = 0x3087, - CMSG_GUILD_BANK_TEXT_QUERY = 0x3088, - CMSG_GUILD_BANK_UPDATE_TAB = 0x34CC, - CMSG_GUILD_BANK_WITHDRAW_MONEY = 0x34CE, - CMSG_GUILD_CHALLENGE_UPDATE_REQUEST = 0x307C, - CMSG_GUILD_CHANGE_NAME_REQUEST = 0x307F, - CMSG_GUILD_DECLINE_INVITATION = 0x3061, - CMSG_GUILD_DELETE = 0x3069, - CMSG_GUILD_DELETE_RANK = 0x3066, - CMSG_GUILD_DEMOTE_MEMBER = 0x305F, - CMSG_GUILD_EVENT_LOG_QUERY = 0x3086, - CMSG_GUILD_GET_ACHIEVEMENT_MEMBERS = 0x3072, - CMSG_GUILD_GET_RANKS = 0x306E, - CMSG_GUILD_GET_ROSTER = 0x3074, + CMSG_GET_UNDELETE_CHARACTER_COOLDOWN_STATUS = 0x36DA, + CMSG_GET_VAS_ACCOUNT_CHARACTER_LIST = 0x36EB, + CMSG_GET_VAS_TRANSFER_TARGET_REALM_LIST = 0x36EC, + CMSG_GM_TICKET_ACKNOWLEDGE_SURVEY = 0x368D, + CMSG_GM_TICKET_GET_CASE_STATUS = 0x368C, + CMSG_GM_TICKET_GET_SYSTEM_STATUS = 0x368B, + CMSG_GOSSIP_REFRESH_OPTIONS = 0x3582, + CMSG_GOSSIP_SELECT_OPTION = 0x349B, + CMSG_GUILD_ADD_BATTLENET_FRIEND = 0x5036, + CMSG_GUILD_ADD_RANK = 0x501B, + CMSG_GUILD_ASSIGN_MEMBER_RANK = 0x5016, + CMSG_GUILD_AUTO_DECLINE_INVITATION = 0x5018, + CMSG_GUILD_BANK_ACTIVATE = 0x34BE, + CMSG_GUILD_BANK_BUY_TAB = 0x34CC, + CMSG_GUILD_BANK_DEPOSIT_MONEY = 0x34CE, + CMSG_GUILD_BANK_LOG_QUERY = 0x502F, + CMSG_GUILD_BANK_QUERY_TAB = 0x34CB, + CMSG_GUILD_BANK_REMAINING_WITHDRAW_MONEY_QUERY = 0x5030, + CMSG_GUILD_BANK_SET_TAB_TEXT = 0x5033, + CMSG_GUILD_BANK_TEXT_QUERY = 0x5034, + CMSG_GUILD_BANK_UPDATE_TAB = 0x34CD, + CMSG_GUILD_BANK_WITHDRAW_MONEY = 0x34CF, + CMSG_GUILD_CHALLENGE_UPDATE_REQUEST = 0x502D, + CMSG_GUILD_CHANGE_NAME_REQUEST = 0x502E, + CMSG_GUILD_DECLINE_INVITATION = 0x5017, + CMSG_GUILD_DELETE = 0x501F, + CMSG_GUILD_DELETE_RANK = 0x501C, + CMSG_GUILD_DEMOTE_MEMBER = 0x5015, + CMSG_GUILD_EVENT_LOG_QUERY = 0x5032, + CMSG_GUILD_GET_ACHIEVEMENT_MEMBERS = 0x5028, + CMSG_GUILD_GET_RANKS = 0x5024, + CMSG_GUILD_GET_ROSTER = 0x502A, CMSG_GUILD_INVITE_BY_NAME = 0x3607, - CMSG_GUILD_LEAVE = 0x3063, - CMSG_GUILD_NEWS_UPDATE_STICKY = 0x306F, - CMSG_GUILD_OFFICER_REMOVE_MEMBER = 0x3064, - CMSG_GUILD_PERMISSIONS_QUERY = 0x3085, - CMSG_GUILD_PROMOTE_MEMBER = 0x305E, - CMSG_GUILD_QUERY_MEMBERS_FOR_RECIPE = 0x306C, - CMSG_GUILD_QUERY_MEMBER_RECIPES = 0x306A, - CMSG_GUILD_QUERY_NEWS = 0x306D, - CMSG_GUILD_QUERY_RECIPES = 0x306B, - CMSG_GUILD_REPLACE_GUILD_MASTER = 0x3089, - CMSG_GUILD_SET_ACHIEVEMENT_TRACKING = 0x3070, - CMSG_GUILD_SET_FOCUSED_ACHIEVEMENT = 0x3071, - CMSG_GUILD_SET_GUILD_MASTER = 0x36C6, - CMSG_GUILD_SET_MEMBER_NOTE = 0x3073, - CMSG_GUILD_SET_RANK_PERMISSIONS = 0x3068, - CMSG_GUILD_SHIFT_RANK = 0x3067, - CMSG_GUILD_UPDATE_INFO_TEXT = 0x3076, - CMSG_GUILD_UPDATE_MOTD_TEXT = 0x3075, - CMSG_HEARTH_AND_RESURRECT = 0x3516, - CMSG_HIDE_QUEST_CHOICE = 0x32C3, + CMSG_GUILD_LEAVE = 0x5019, + CMSG_GUILD_NEWS_UPDATE_STICKY = 0x5025, + CMSG_GUILD_OFFICER_REMOVE_MEMBER = 0x501A, + CMSG_GUILD_PERMISSIONS_QUERY = 0x5031, + CMSG_GUILD_PROMOTE_MEMBER = 0x5014, + CMSG_GUILD_QUERY_MEMBERS_FOR_RECIPE = 0x5022, + CMSG_GUILD_QUERY_MEMBER_RECIPES = 0x5020, + CMSG_GUILD_QUERY_NEWS = 0x5023, + CMSG_GUILD_QUERY_RECIPES = 0x5021, + CMSG_GUILD_REPLACE_GUILD_MASTER = 0x5035, + CMSG_GUILD_SET_ACHIEVEMENT_TRACKING = 0x5026, + CMSG_GUILD_SET_FOCUSED_ACHIEVEMENT = 0x5027, + CMSG_GUILD_SET_GUILD_MASTER = 0x36C3, + CMSG_GUILD_SET_MEMBER_NOTE = 0x5029, + CMSG_GUILD_SET_RANK_PERMISSIONS = 0x501E, + CMSG_GUILD_SHIFT_RANK = 0x501D, + CMSG_GUILD_UPDATE_INFO_TEXT = 0x502C, + CMSG_GUILD_UPDATE_MOTD_TEXT = 0x502B, + CMSG_HEARTH_AND_RESURRECT = 0x3517, + CMSG_HIDE_QUEST_CHOICE = 0x32C4, CMSG_HOTFIX_REQUEST = 0x35E5, CMSG_IGNORE_TRADE = 0x3159, CMSG_INITIATE_ROLE_POLL = 0x35DA, CMSG_INITIATE_TRADE = 0x3156, - CMSG_INSPECT = 0x353D, - CMSG_INSTANCE_LOCK_RESPONSE = 0x351B, + CMSG_INSPECT = 0x353E, + CMSG_INSTANCE_LOCK_RESPONSE = 0x351C, CMSG_ISLAND_QUEUE = 0x33B8, - CMSG_ITEM_PURCHASE_REFUND = 0x3544, + CMSG_ITEM_PURCHASE_REFUND = 0x3545, CMSG_ITEM_TEXT_QUERY = 0x3351, - CMSG_JOIN_PET_BATTLE_QUEUE = 0x31DD, - CMSG_JOIN_RATED_BATTLEGROUND = 0x3178, - CMSG_KEEP_ALIVE = 0x367F, - CMSG_KEYBOUND_OVERRIDE = 0x322F, + CMSG_JOIN_PET_BATTLE_QUEUE = 0x31DE, + CMSG_JOIN_RATED_BATTLEGROUND = 0x3179, + CMSG_KEEP_ALIVE = 0x367C, + CMSG_KEYBOUND_OVERRIDE = 0x3230, CMSG_LATENCY_REPORT = 0x3785, - CMSG_LEARN_PVP_TALENTS = 0x356D, - CMSG_LEARN_TALENTS = 0x356B, - CMSG_LEAVE_GROUP = 0x3649, - CMSG_LEAVE_PET_BATTLE_QUEUE = 0x31DE, + CMSG_LEARN_PVP_TALENTS = 0x356E, + CMSG_LEARN_TALENTS = 0x356C, + CMSG_LEAVE_GROUP = 0x3646, + CMSG_LEAVE_PET_BATTLE_QUEUE = 0x31DF, CMSG_LFG_LIST_APPLY_TO_GROUP = 0x360E, CMSG_LFG_LIST_CANCEL_APPLICATION = 0x360F, CMSG_LFG_LIST_DECLINE_APPLICANT = 0x3610, @@ -467,51 +467,51 @@ enum OpcodeClient : uint16 CMSG_LFG_LIST_LEAVE = 0x360B, CMSG_LFG_LIST_SEARCH = 0x360D, CMSG_LFG_LIST_UPDATE_REQUEST = 0x3398, - CMSG_LIST_INVENTORY = 0x34A7, - CMSG_LIVE_REGION_ACCOUNT_RESTORE = 0x36B7, - CMSG_LIVE_REGION_CHARACTER_COPY = 0x36B6, - CMSG_LIVE_REGION_GET_ACCOUNT_CHARACTER_LIST = 0x36B5, - CMSG_LIVE_REGION_KEY_BINDINGS_COPY = 0x36B8, + CMSG_LIST_INVENTORY = 0x34A8, + CMSG_LIVE_REGION_ACCOUNT_RESTORE = 0x36B4, + CMSG_LIVE_REGION_CHARACTER_COPY = 0x36B3, + CMSG_LIVE_REGION_GET_ACCOUNT_CHARACTER_LIST = 0x36B2, + CMSG_LIVE_REGION_KEY_BINDINGS_COPY = 0x36B5, CMSG_LOADING_SCREEN_NOTIFY = 0x35F8, CMSG_LOAD_SELECTED_TROPHY = 0x3333, - CMSG_LOBBY_MATCHMAKER_ACCEPT_PARTY_INVITE = 0x373E, - CMSG_LOBBY_MATCHMAKER_CREATE_CHARACTER = 0x374C, - CMSG_LOBBY_MATCHMAKER_LEAVE_PARTY = 0x3741, - CMSG_LOBBY_MATCHMAKER_PARTY_INVITE = 0x373D, - CMSG_LOBBY_MATCHMAKER_PARTY_UNINVITE = 0x3740, - CMSG_LOBBY_MATCHMAKER_REJECT_PARTY_INVITE = 0x373F, - CMSG_LOBBY_MATCHMAKER_SET_PARTY_PLAYLIST_ENTRY = 0x3742, - CMSG_LOBBY_MATCHMAKER_SET_PLAYER_READY = 0x3743, - CMSG_LOGOUT_CANCEL = 0x34E7, - CMSG_LOGOUT_INSTANT = 0x34E8, - CMSG_LOGOUT_LOBBY_MATCHMAKER = 0x3594, - CMSG_LOGOUT_REQUEST = 0x34E5, + CMSG_LOBBY_MATCHMAKER_ACCEPT_PARTY_INVITE = 0x373B, + CMSG_LOBBY_MATCHMAKER_CREATE_CHARACTER = 0x3749, + CMSG_LOBBY_MATCHMAKER_LEAVE_PARTY = 0x373E, + CMSG_LOBBY_MATCHMAKER_PARTY_INVITE = 0x373A, + CMSG_LOBBY_MATCHMAKER_PARTY_UNINVITE = 0x373D, + CMSG_LOBBY_MATCHMAKER_REJECT_PARTY_INVITE = 0x373C, + CMSG_LOBBY_MATCHMAKER_SET_PARTY_PLAYLIST_ENTRY = 0x373F, + CMSG_LOBBY_MATCHMAKER_SET_PLAYER_READY = 0x3740, + CMSG_LOGOUT_CANCEL = 0x34E8, + CMSG_LOGOUT_INSTANT = 0x34E9, + CMSG_LOGOUT_LOBBY_MATCHMAKER = 0x3595, + CMSG_LOGOUT_REQUEST = 0x34E6, CMSG_LOG_DISCONNECT = 0x377D, CMSG_LOG_STREAMING_ERROR = 0x3781, - CMSG_LOOT_ITEM = 0x3217, - CMSG_LOOT_MONEY = 0x3216, - CMSG_LOOT_RELEASE = 0x321B, - CMSG_LOOT_ROLL = 0x321C, - CMSG_LOOT_UNIT = 0x3215, - CMSG_LOW_LEVEL_RAID1 = 0x36A0, - CMSG_LOW_LEVEL_RAID2 = 0x3522, - CMSG_MAIL_CREATE_TEXT_ITEM = 0x354F, - CMSG_MAIL_DELETE = 0x3231, - CMSG_MAIL_GET_LIST = 0x354A, - CMSG_MAIL_MARK_AS_READ = 0x354E, - CMSG_MAIL_RETURN_TO_SENDER = 0x3655, - CMSG_MAIL_TAKE_ITEM = 0x354C, - CMSG_MAIL_TAKE_MONEY = 0x354B, - CMSG_MAKE_CONTITIONAL_APPEARANCE_PERMANENT = 0x3233, - CMSG_MASTER_LOOT_ITEM = 0x3218, - CMSG_MERGE_GUILD_BANK_ITEM_WITH_GUILD_BANK_ITEM = 0x34C8, - CMSG_MERGE_GUILD_BANK_ITEM_WITH_ITEM = 0x34C5, - CMSG_MERGE_ITEM_WITH_GUILD_BANK_ITEM = 0x34C3, - CMSG_MINIMAP_PING = 0x364B, - CMSG_MISSILE_TRAJECTORY_COLLISION = 0x3189, + CMSG_LOOT_ITEM = 0x3218, + CMSG_LOOT_MONEY = 0x3217, + CMSG_LOOT_RELEASE = 0x321C, + CMSG_LOOT_ROLL = 0x321D, + CMSG_LOOT_UNIT = 0x3216, + CMSG_LOW_LEVEL_RAID1 = 0x369D, + CMSG_LOW_LEVEL_RAID2 = 0x3523, + CMSG_MAIL_CREATE_TEXT_ITEM = 0x3550, + CMSG_MAIL_DELETE = 0x3232, + CMSG_MAIL_GET_LIST = 0x354B, + CMSG_MAIL_MARK_AS_READ = 0x354F, + CMSG_MAIL_RETURN_TO_SENDER = 0x3652, + CMSG_MAIL_TAKE_ITEM = 0x354D, + CMSG_MAIL_TAKE_MONEY = 0x354C, + CMSG_MAKE_CONTITIONAL_APPEARANCE_PERMANENT = 0x3234, + CMSG_MASTER_LOOT_ITEM = 0x3219, + CMSG_MERGE_GUILD_BANK_ITEM_WITH_GUILD_BANK_ITEM = 0x34C9, + CMSG_MERGE_GUILD_BANK_ITEM_WITH_ITEM = 0x34C6, + CMSG_MERGE_ITEM_WITH_GUILD_BANK_ITEM = 0x34C4, + CMSG_MINIMAP_PING = 0x3648, + CMSG_MISSILE_TRAJECTORY_COLLISION = 0x318A, CMSG_MOUNT_CLEAR_FANFARE = 0x3127, - CMSG_MOUNT_SET_FAVORITE = 0x3632, - CMSG_MOUNT_SPECIAL_ANIM = 0x329B, + CMSG_MOUNT_SET_FAVORITE = 0x362F, + CMSG_MOUNT_SPECIAL_ANIM = 0x329C, CMSG_MOVE_ADD_IMPULSE_ACK = 0x3A50, CMSG_MOVE_APPLY_INERTIA_ACK = 0x3A4E, CMSG_MOVE_APPLY_MOVEMENT_FORCE_ACK = 0x3A15, @@ -539,7 +539,7 @@ enum OpcodeClient : uint16 CMSG_MOVE_FORCE_WALK_SPEED_CHANGE_ACK = 0x3A21, CMSG_MOVE_GRAVITY_DISABLE_ACK = 0x3A35, CMSG_MOVE_GRAVITY_ENABLE_ACK = 0x3A36, - CMSG_MOVE_GUILD_BANK_ITEM = 0x34C2, + CMSG_MOVE_GUILD_BANK_ITEM = 0x34C3, CMSG_MOVE_HEARTBEAT = 0x3A10, CMSG_MOVE_HOVER_ACK = 0x3A13, CMSG_MOVE_INERTIA_DISABLE_ACK = 0x3A37, @@ -601,405 +601,407 @@ enum OpcodeClient : uint16 CMSG_MOVE_TIME_SKIPPED = 0x3A1B, CMSG_MOVE_UPDATE_FALL_SPEED = 0x3A1A, CMSG_MOVE_WATER_WALK_ACK = 0x3A1D, - CMSG_MYTHIC_PLUS_REQUEST_MAP_STATS = 0x308E, - CMSG_NEUTRAL_PLAYER_SELECT_FACTION = 0x31D3, - CMSG_NEXT_CINEMATIC_CAMERA = 0x3558, - CMSG_OBJECT_UPDATE_FAILED = 0x317F, - CMSG_OBJECT_UPDATE_RESCUED = 0x3180, + CMSG_MYTHIC_PLUS_REQUEST_MAP_STATS = 0x305D, + CMSG_NEUTRAL_PLAYER_SELECT_FACTION = 0x31D4, + CMSG_NEXT_CINEMATIC_CAMERA = 0x3559, + CMSG_OBJECT_UPDATE_FAILED = 0x3180, + CMSG_OBJECT_UPDATE_RESCUED = 0x3181, CMSG_OFFER_PETITION = 0x33DF, - CMSG_OPENING_CINEMATIC = 0x3557, + CMSG_OPENING_CINEMATIC = 0x3558, CMSG_OPEN_ITEM = 0x3352, CMSG_OPEN_MISSION_NPC = 0x3315, CMSG_OPEN_SHIPMENT_NPC = 0x331D, CMSG_OPEN_TRADESKILL_NPC = 0x3328, - CMSG_OPT_OUT_OF_LOOT = 0x3505, - CMSG_OVERRIDE_SCREEN_FLASH = 0x352F, + CMSG_OPT_OUT_OF_LOOT = 0x3506, + CMSG_OVERRIDE_SCREEN_FLASH = 0x3530, CMSG_PARTY_INVITE = 0x3603, CMSG_PARTY_INVITE_RESPONSE = 0x3605, - CMSG_PARTY_UNINVITE = 0x3647, - CMSG_PERFORM_ITEM_INTERACTION = 0x323B, + CMSG_PARTY_UNINVITE = 0x3644, + CMSG_PERFORM_ITEM_INTERACTION = 0x323C, + CMSG_PERKS_PROGRAM_ITEMS_REFRESHED = 0x3408, CMSG_PERKS_PROGRAM_REQUEST_PENDING_REWARDS = 0x3135, - CMSG_PERKS_PROGRAM_REQUEST_PURCHASE = 0x3409, - CMSG_PERKS_PROGRAM_REQUEST_REFUND = 0x340A, - CMSG_PERKS_PROGRAM_SET_FROZEN_VENDOR_ITEM = 0x340B, - CMSG_PERKS_PROGRAM_STATUS_REQUEST = 0x3408, - CMSG_PETITION_BUY = 0x34D0, - CMSG_PETITION_RENAME_GUILD = 0x36C7, - CMSG_PETITION_SHOW_LIST = 0x34CF, - CMSG_PETITION_SHOW_SIGNATURES = 0x34D1, + CMSG_PERKS_PROGRAM_REQUEST_PURCHASE = 0x340A, + CMSG_PERKS_PROGRAM_REQUEST_REFUND = 0x340B, + CMSG_PERKS_PROGRAM_SET_FROZEN_VENDOR_ITEM = 0x340C, + CMSG_PERKS_PROGRAM_STATUS_REQUEST = 0x3409, + CMSG_PETITION_BUY = 0x34D1, + CMSG_PETITION_RENAME_GUILD = 0x36C4, + CMSG_PETITION_SHOW_LIST = 0x34D0, + CMSG_PETITION_SHOW_SIGNATURES = 0x34D2, CMSG_PET_ABANDON = 0x3493, + CMSG_PET_ABANDON_BY_NUMBER = 0x3494, CMSG_PET_ACTION = 0x3491, - CMSG_PET_BATTLE_FINAL_NOTIFY = 0x31E2, - CMSG_PET_BATTLE_INPUT = 0x3641, - CMSG_PET_BATTLE_QUEUE_PROPOSE_MATCH_RESULT = 0x3230, - CMSG_PET_BATTLE_QUIT_NOTIFY = 0x31E1, - CMSG_PET_BATTLE_REPLACE_FRONT_PET = 0x3642, - CMSG_PET_BATTLE_REQUEST_PVP = 0x31DB, - CMSG_PET_BATTLE_REQUEST_UPDATE = 0x31DC, - CMSG_PET_BATTLE_REQUEST_WILD = 0x31D9, - CMSG_PET_BATTLE_SCRIPT_ERROR_NOTIFY = 0x31E3, - CMSG_PET_BATTLE_WILD_LOCATION_FAIL = 0x31DA, - CMSG_PET_CANCEL_AURA = 0x3494, - CMSG_PET_CAST_SPELL = 0x32B8, - CMSG_PET_RENAME = 0x3684, + CMSG_PET_BATTLE_FINAL_NOTIFY = 0x31E3, + CMSG_PET_BATTLE_INPUT = 0x363E, + CMSG_PET_BATTLE_QUEUE_PROPOSE_MATCH_RESULT = 0x3231, + CMSG_PET_BATTLE_QUIT_NOTIFY = 0x31E2, + CMSG_PET_BATTLE_REPLACE_FRONT_PET = 0x363F, + CMSG_PET_BATTLE_REQUEST_PVP = 0x31DC, + CMSG_PET_BATTLE_REQUEST_UPDATE = 0x31DD, + CMSG_PET_BATTLE_REQUEST_WILD = 0x31DA, + CMSG_PET_BATTLE_SCRIPT_ERROR_NOTIFY = 0x31E4, + CMSG_PET_BATTLE_WILD_LOCATION_FAIL = 0x31DB, + CMSG_PET_CANCEL_AURA = 0x3495, + CMSG_PET_CAST_SPELL = 0x32B9, + CMSG_PET_RENAME = 0x3681, CMSG_PET_SET_ACTION = 0x3490, - CMSG_PET_SPELL_AUTOCAST = 0x3495, + CMSG_PET_SPELL_AUTOCAST = 0x3496, CMSG_PET_STOP_ATTACK = 0x3492, CMSG_PING = 0x377C, CMSG_PLAYER_LOGIN = 0x35EA, - CMSG_PUSH_QUEST_TO_PARTY = 0x34A5, - CMSG_PVP_LOG_DATA = 0x317B, - CMSG_QUERY_BATTLE_PET_NAME = 0x328E, - CMSG_QUERY_CORPSE_LOCATION_FROM_CLIENT = 0x3660, - CMSG_QUERY_CORPSE_TRANSPORT = 0x3661, - CMSG_QUERY_COUNTDOWN_TIMER = 0x31A8, - CMSG_QUERY_CREATURE = 0x3288, - CMSG_QUERY_GAME_OBJECT = 0x3289, - CMSG_QUERY_GARRISON_PET_NAME = 0x328F, - CMSG_QUERY_GUILD_INFO = 0x368A, - CMSG_QUERY_INSPECT_ACHIEVEMENTS = 0x350F, - CMSG_QUERY_NEXT_MAIL_TIME = 0x354D, - CMSG_QUERY_NPC_TEXT = 0x328A, - CMSG_QUERY_PAGE_TEXT = 0x328C, - CMSG_QUERY_PETITION = 0x3290, - CMSG_QUERY_PET_NAME = 0x328D, + CMSG_PUSH_QUEST_TO_PARTY = 0x34A6, + CMSG_PVP_LOG_DATA = 0x317C, + CMSG_QUERY_BATTLE_PET_NAME = 0x328F, + CMSG_QUERY_CORPSE_LOCATION_FROM_CLIENT = 0x365D, + CMSG_QUERY_CORPSE_TRANSPORT = 0x365E, + CMSG_QUERY_COUNTDOWN_TIMER = 0x31A9, + CMSG_QUERY_CREATURE = 0x3289, + CMSG_QUERY_GAME_OBJECT = 0x328A, + CMSG_QUERY_GARRISON_PET_NAME = 0x3290, + CMSG_QUERY_GUILD_INFO = 0x3687, + CMSG_QUERY_INSPECT_ACHIEVEMENTS = 0x3510, + CMSG_QUERY_NEXT_MAIL_TIME = 0x354E, + CMSG_QUERY_NPC_TEXT = 0x328B, + CMSG_QUERY_PAGE_TEXT = 0x328D, + CMSG_QUERY_PETITION = 0x3291, + CMSG_QUERY_PET_NAME = 0x328E, CMSG_QUERY_PLAYER_NAMES = 0x3786, CMSG_QUERY_PLAYER_NAMES_FOR_COMMUNITY = 0x3784, CMSG_QUERY_PLAYER_NAME_BY_COMMUNITY_ID = 0x3783, - CMSG_QUERY_QUEST_COMPLETION_NPCS = 0x3174, - CMSG_QUERY_QUEST_INFO = 0x328B, - CMSG_QUERY_QUEST_ITEM_USABILITY = 0x3175, - CMSG_QUERY_REALM_NAME = 0x3689, - CMSG_QUERY_SCENARIO_POI = 0x3656, - CMSG_QUERY_TIME = 0x34E4, + CMSG_QUERY_QUEST_COMPLETION_NPCS = 0x3175, + CMSG_QUERY_QUEST_INFO = 0x328C, + CMSG_QUERY_QUEST_ITEM_USABILITY = 0x3176, + CMSG_QUERY_REALM_NAME = 0x3686, + CMSG_QUERY_SCENARIO_POI = 0x3653, + CMSG_QUERY_TIME = 0x34E5, CMSG_QUERY_TREASURE_PICKER = 0x3377, - CMSG_QUERY_VOID_STORAGE = 0x31A1, - CMSG_QUEST_CONFIRM_ACCEPT = 0x34A4, - CMSG_QUEST_GIVER_ACCEPT_QUEST = 0x349E, - CMSG_QUEST_GIVER_CHOOSE_REWARD = 0x34A0, - CMSG_QUEST_GIVER_CLOSE_QUEST = 0x355E, - CMSG_QUEST_GIVER_COMPLETE_QUEST = 0x349F, - CMSG_QUEST_GIVER_HELLO = 0x349C, - CMSG_QUEST_GIVER_QUERY_QUEST = 0x349D, - CMSG_QUEST_GIVER_REQUEST_REWARD = 0x34A1, - CMSG_QUEST_GIVER_STATUS_MULTIPLE_QUERY = 0x34A3, - CMSG_QUEST_GIVER_STATUS_QUERY = 0x34A2, - CMSG_QUEST_GIVER_STATUS_TRACKED_QUERY = 0x3592, - CMSG_QUEST_LOG_REMOVE_QUEST = 0x3542, - CMSG_QUEST_POI_QUERY = 0x36AE, - CMSG_QUEST_PUSH_RESULT = 0x34A6, + CMSG_QUERY_VOID_STORAGE = 0x31A2, + CMSG_QUEST_CONFIRM_ACCEPT = 0x34A5, + CMSG_QUEST_GIVER_ACCEPT_QUEST = 0x349F, + CMSG_QUEST_GIVER_CHOOSE_REWARD = 0x34A1, + CMSG_QUEST_GIVER_CLOSE_QUEST = 0x355F, + CMSG_QUEST_GIVER_COMPLETE_QUEST = 0x34A0, + CMSG_QUEST_GIVER_HELLO = 0x349D, + CMSG_QUEST_GIVER_QUERY_QUEST = 0x349E, + CMSG_QUEST_GIVER_REQUEST_REWARD = 0x34A2, + CMSG_QUEST_GIVER_STATUS_MULTIPLE_QUERY = 0x34A4, + CMSG_QUEST_GIVER_STATUS_QUERY = 0x34A3, + CMSG_QUEST_GIVER_STATUS_TRACKED_QUERY = 0x3593, + CMSG_QUEST_LOG_REMOVE_QUEST = 0x3543, + CMSG_QUEST_POI_QUERY = 0x36AB, + CMSG_QUEST_PUSH_RESULT = 0x34A7, CMSG_QUEST_SESSION_BEGIN_RESPONSE = 0x33D0, CMSG_QUEST_SESSION_REQUEST_START = 0x33CF, - CMSG_QUEST_SESSION_REQUEST_STOP = 0x372C, + CMSG_QUEST_SESSION_REQUEST_STOP = 0x3729, CMSG_QUEUED_MESSAGES_END = 0x3780, - CMSG_QUICK_JOIN_AUTO_ACCEPT_REQUESTS = 0x3704, - CMSG_QUICK_JOIN_REQUEST_INVITE = 0x3703, - CMSG_QUICK_JOIN_REQUEST_INVITE_WITH_CONFIRMATION = 0x3731, - CMSG_QUICK_JOIN_RESPOND_TO_INVITE = 0x3702, - CMSG_QUICK_JOIN_SIGNAL_TOAST_DISPLAYED = 0x3701, - CMSG_RAF_CLAIM_ACTIVITY_REWARD = 0x3513, - CMSG_RAF_CLAIM_NEXT_REWARD = 0x3722, - CMSG_RAF_GENERATE_RECRUITMENT_LINK = 0x3724, - CMSG_RAF_UPDATE_RECRUITMENT_INFO = 0x3723, - CMSG_RANDOM_ROLL = 0x3654, - CMSG_READY_CHECK_RESPONSE = 0x3635, + CMSG_QUICK_JOIN_AUTO_ACCEPT_REQUESTS = 0x3701, + CMSG_QUICK_JOIN_REQUEST_INVITE = 0x3700, + CMSG_QUICK_JOIN_REQUEST_INVITE_WITH_CONFIRMATION = 0x372E, + CMSG_QUICK_JOIN_RESPOND_TO_INVITE = 0x36FF, + CMSG_QUICK_JOIN_SIGNAL_TOAST_DISPLAYED = 0x36FE, + CMSG_RAF_CLAIM_ACTIVITY_REWARD = 0x3514, + CMSG_RAF_CLAIM_NEXT_REWARD = 0x371F, + CMSG_RAF_GENERATE_RECRUITMENT_LINK = 0x3721, + CMSG_RAF_UPDATE_RECRUITMENT_INFO = 0x3720, + CMSG_RANDOM_ROLL = 0x3651, + CMSG_READY_CHECK_RESPONSE = 0x3632, CMSG_READ_ITEM = 0x3353, - CMSG_RECLAIM_CORPSE = 0x34EA, + CMSG_RECLAIM_CORPSE = 0x34EB, CMSG_REMOVE_NEW_ITEM = 0x337A, - CMSG_REMOVE_RAF_RECRUIT = 0x3725, + CMSG_REMOVE_RAF_RECRUIT = 0x3722, CMSG_REORDER_CHARACTERS = 0x35E9, - CMSG_REPAIR_ITEM = 0x34FB, + CMSG_REPAIR_ITEM = 0x34FC, CMSG_REPLACE_TROPHY = 0x3334, - CMSG_REPOP_REQUEST = 0x353A, - CMSG_REPORT_CLIENT_VARIABLES = 0x36FE, - CMSG_REPORT_ENABLED_ADDONS = 0x36FD, - CMSG_REPORT_FROZEN_WHILE_LOADING_MAP = 0x36A6, - CMSG_REPORT_KEYBINDING_EXECUTION_COUNTS = 0x36FF, - CMSG_REPORT_PVP_PLAYER_AFK = 0x3503, + CMSG_REPOP_REQUEST = 0x353B, + CMSG_REPORT_CLIENT_VARIABLES = 0x36FB, + CMSG_REPORT_ENABLED_ADDONS = 0x36FA, + CMSG_REPORT_FROZEN_WHILE_LOADING_MAP = 0x36A3, + CMSG_REPORT_KEYBINDING_EXECUTION_COUNTS = 0x36FC, + CMSG_REPORT_PVP_PLAYER_AFK = 0x3504, CMSG_REPORT_SERVER_LAG = 0x33C8, CMSG_REPORT_STUCK_IN_COMBAT = 0x33C9, - CMSG_REQUEST_ACCOUNT_DATA = 0x3694, + CMSG_REQUEST_ACCOUNT_DATA = 0x3691, CMSG_REQUEST_AREA_POI_UPDATE = 0x3379, CMSG_REQUEST_BATTLEFIELD_STATUS = 0x35DC, - CMSG_REQUEST_CEMETERY_LIST = 0x3176, - CMSG_REQUEST_CHARACTER_GUILD_FOLLOW_INFO = 0x368B, - CMSG_REQUEST_CONQUEST_FORMULA_CONSTANTS = 0x32D6, + CMSG_REQUEST_CEMETERY_LIST = 0x3177, + CMSG_REQUEST_CHARACTER_GUILD_FOLLOW_INFO = 0x3688, CMSG_REQUEST_COVENANT_CALLINGS = 0x33BA, - CMSG_REQUEST_CROWD_CONTROL_SPELL = 0x353E, - CMSG_REQUEST_FORCED_REACTIONS = 0x320C, + CMSG_REQUEST_CROWD_CONTROL_SPELL = 0x353F, + CMSG_REQUEST_FORCED_REACTIONS = 0x320D, CMSG_REQUEST_GARRISON_TALENT_WORLD_QUEST_UNLOCKS = 0x33F4, - CMSG_REQUEST_GUILD_PARTY_STATE = 0x31A7, - CMSG_REQUEST_GUILD_REWARDS_LIST = 0x31A6, + CMSG_REQUEST_GUILD_PARTY_STATE = 0x31A8, + CMSG_REQUEST_GUILD_REWARDS_LIST = 0x31A7, CMSG_REQUEST_LATEST_SPLASH_SCREEN = 0x33CA, - CMSG_REQUEST_LFG_LIST_BLACKLIST = 0x32C4, - CMSG_REQUEST_MYTHIC_PLUS_AFFIXES = 0x3206, - CMSG_REQUEST_MYTHIC_PLUS_SEASON_DATA = 0x3207, + CMSG_REQUEST_LFG_LIST_BLACKLIST = 0x32C5, + CMSG_REQUEST_MYTHIC_PLUS_AFFIXES = 0x3207, + CMSG_REQUEST_MYTHIC_PLUS_SEASON_DATA = 0x3208, CMSG_REQUEST_PARTY_JOIN_UPDATES = 0x35F7, - CMSG_REQUEST_PARTY_MEMBER_STATS = 0x3653, - CMSG_REQUEST_PET_INFO = 0x3496, - CMSG_REQUEST_PLAYED_TIME = 0x3293, - CMSG_REQUEST_PVP_REWARDS = 0x3194, - CMSG_REQUEST_RAID_INFO = 0x36C8, + CMSG_REQUEST_PARTY_MEMBER_STATS = 0x3650, + CMSG_REQUEST_PET_INFO = 0x3497, + CMSG_REQUEST_PLAYED_TIME = 0x3294, + CMSG_REQUEST_PVP_REWARDS = 0x3195, + CMSG_REQUEST_RAID_INFO = 0x36C5, CMSG_REQUEST_RATED_PVP_INFO = 0x35E3, - CMSG_REQUEST_REALM_GUILD_MASTER_INFO = 0x309A, - CMSG_REQUEST_SCHEDULED_PVP_INFO = 0x3195, - CMSG_REQUEST_STABLED_PETS = 0x3497, - CMSG_REQUEST_VEHICLE_EXIT = 0x3248, - CMSG_REQUEST_VEHICLE_NEXT_SEAT = 0x324A, - CMSG_REQUEST_VEHICLE_PREV_SEAT = 0x3249, - CMSG_REQUEST_VEHICLE_SWITCH_SEAT = 0x324B, + CMSG_REQUEST_REALM_GUILD_MASTER_INFO = 0x5037, + CMSG_REQUEST_SCHEDULED_PVP_INFO = 0x3196, + CMSG_REQUEST_STABLED_PETS = 0x3498, + CMSG_REQUEST_VEHICLE_EXIT = 0x3249, + CMSG_REQUEST_VEHICLE_NEXT_SEAT = 0x324B, + CMSG_REQUEST_VEHICLE_PREV_SEAT = 0x324A, + CMSG_REQUEST_VEHICLE_SWITCH_SEAT = 0x324C, CMSG_REQUEST_WEEKLY_REWARDS = 0x33BD, CMSG_REQUEST_WORLD_QUEST_UPDATE = 0x3378, - CMSG_RESET_CHALLENGE_MODE = 0x3204, - CMSG_RESET_CHALLENGE_MODE_CHEAT = 0x3205, - CMSG_RESET_INSTANCES = 0x3668, - CMSG_RESURRECT_RESPONSE = 0x3683, + CMSG_RESET_CHALLENGE_MODE = 0x3205, + CMSG_RESET_CHALLENGE_MODE_CHEAT = 0x3206, + CMSG_RESET_INSTANCES = 0x3665, + CMSG_RESURRECT_RESPONSE = 0x3680, CMSG_REVERT_MONUMENT_APPEARANCE = 0x3336, - CMSG_RIDE_VEHICLE_INTERACT = 0x324C, - CMSG_RPE_RESET_CHARACTER = 0x374F, - CMSG_SAVE_ACCOUNT_DATA_EXPORT = 0x3749, - CMSG_SAVE_CUF_PROFILES = 0x318A, - CMSG_SAVE_EQUIPMENT_SET = 0x3519, - CMSG_SAVE_GUILD_EMBLEM = 0x32C8, - CMSG_SAVE_PERSONAL_EMBLEM = 0x32C9, - CMSG_SCENE_PLAYBACK_CANCELED = 0x322C, - CMSG_SCENE_PLAYBACK_COMPLETE = 0x322B, - CMSG_SCENE_TRIGGER_EVENT = 0x322D, - CMSG_SELF_RES = 0x3545, - CMSG_SELL_ALL_JUNK_ITEMS = 0x34A9, - CMSG_SELL_ITEM = 0x34A8, - CMSG_SEND_CHARACTER_CLUB_INVITATION = 0x36F7, - CMSG_SEND_CONTACT_LIST = 0x36CD, + CMSG_RIDE_VEHICLE_INTERACT = 0x324D, + CMSG_RPE_RESET_CHARACTER = 0x374C, + CMSG_SAVE_ACCOUNT_DATA_EXPORT = 0x3746, + CMSG_SAVE_CUF_PROFILES = 0x318B, + CMSG_SAVE_EQUIPMENT_SET = 0x351A, + CMSG_SAVE_GUILD_EMBLEM = 0x32C9, + CMSG_SAVE_PERSONAL_EMBLEM = 0x32CA, + CMSG_SCENE_PLAYBACK_CANCELED = 0x322D, + CMSG_SCENE_PLAYBACK_COMPLETE = 0x322C, + CMSG_SCENE_TRIGGER_EVENT = 0x322E, + CMSG_SELF_RES = 0x3546, + CMSG_SELL_ALL_JUNK_ITEMS = 0x34AA, + CMSG_SELL_ITEM = 0x34A9, + CMSG_SEND_CHARACTER_CLUB_INVITATION = 0x36F4, + CMSG_SEND_CONTACT_LIST = 0x36CA, CMSG_SEND_MAIL = 0x35FA, - CMSG_SEND_PING_UNIT = 0x3432, - CMSG_SEND_PING_WORLD_POINT = 0x3433, + CMSG_SEND_PING_UNIT = 0x3433, + CMSG_SEND_PING_WORLD_POINT = 0x3434, CMSG_SEND_TEXT_EMOTE = 0x348E, - CMSG_SERVER_TIME_OFFSET_REQUEST = 0x369B, - CMSG_SET_ACHIEVEMENTS_HIDDEN = 0x3232, - CMSG_SET_ACTION_BAR_TOGGLES = 0x3546, - CMSG_SET_ACTION_BUTTON = 0x3636, + CMSG_SERVER_TIME_OFFSET_REQUEST = 0x3698, + CMSG_SET_ACHIEVEMENTS_HIDDEN = 0x3233, + CMSG_SET_ACTION_BAR_TOGGLES = 0x3547, + CMSG_SET_ACTION_BUTTON = 0x3633, CMSG_SET_ACTIVE_MOVER = 0x3A3C, CMSG_SET_ADVANCED_COMBAT_LOGGING = 0x32D7, - CMSG_SET_ASSISTANT_LEADER = 0x364F, + CMSG_SET_ASSISTANT_LEADER = 0x364C, CMSG_SET_BACKPACK_AUTOSORT_DISABLED = 0x3356, CMSG_SET_BACKPACK_SELL_JUNK_DISABLED = 0x3357, CMSG_SET_BANK_AUTOSORT_DISABLED = 0x3358, - CMSG_SET_CONTACT_NOTES = 0x36D0, - CMSG_SET_CURRENCY_FLAGS = 0x3168, - CMSG_SET_DIFFICULTY_ID = 0x322E, - CMSG_SET_DUNGEON_DIFFICULTY = 0x3682, - CMSG_SET_EMPOWER_MIN_HOLD_STAGE_PERCENT = 0x3282, + CMSG_SET_CONTACT_NOTES = 0x36CD, + CMSG_SET_CURRENCY_FLAGS = 0x3169, + CMSG_SET_DIFFICULTY_ID = 0x322F, + CMSG_SET_DUNGEON_DIFFICULTY = 0x367F, + CMSG_SET_EMPOWER_MIN_HOLD_STAGE_PERCENT = 0x3283, CMSG_SET_EVERYONE_IS_ASSISTANT = 0x3619, - CMSG_SET_EXCLUDED_CHAT_CENSOR_SOURCES = 0x3705, - CMSG_SET_FACTION_AT_WAR = 0x34ED, - CMSG_SET_FACTION_INACTIVE = 0x34EF, - CMSG_SET_FACTION_NOT_AT_WAR = 0x34EE, - CMSG_SET_GAME_EVENT_DEBUG_VIEW_STATE = 0x31B8, + CMSG_SET_EXCLUDED_CHAT_CENSOR_SOURCES = 0x3702, + CMSG_SET_FACTION_AT_WAR = 0x34EE, + CMSG_SET_FACTION_INACTIVE = 0x34F0, + CMSG_SET_FACTION_NOT_AT_WAR = 0x34EF, + CMSG_SET_GAME_EVENT_DEBUG_VIEW_STATE = 0x31B9, CMSG_SET_INSERT_ITEMS_LEFT_TO_RIGHT = 0x335A, - CMSG_SET_LOOT_METHOD = 0x3648, - CMSG_SET_LOOT_SPECIALIZATION = 0x3553, - CMSG_SET_PARTY_ASSIGNMENT = 0x3651, - CMSG_SET_PARTY_LEADER = 0x364A, + CMSG_SET_LOOT_METHOD = 0x3645, + CMSG_SET_LOOT_SPECIALIZATION = 0x3554, + CMSG_SET_PARTY_ASSIGNMENT = 0x364E, + CMSG_SET_PARTY_LEADER = 0x3647, + CMSG_SET_PET_FAVORITE = 0x3168, CMSG_SET_PET_SLOT = 0x3167, - CMSG_SET_PLAYER_DECLINED_NAMES = 0x3688, - CMSG_SET_PREFERRED_CEMETERY = 0x3177, - CMSG_SET_PVP = 0x32CD, - CMSG_SET_RAID_DIFFICULTY = 0x36D9, + CMSG_SET_PLAYER_DECLINED_NAMES = 0x3685, + CMSG_SET_PREFERRED_CEMETERY = 0x3178, + CMSG_SET_PVP = 0x32CE, + CMSG_SET_RAID_DIFFICULTY = 0x36D6, CMSG_SET_RESTRICT_PINGS_TO_ASSISTANTS = 0x361A, CMSG_SET_ROLE = 0x35D9, - CMSG_SET_SAVED_INSTANCE_EXTEND = 0x3686, - CMSG_SET_SELECTION = 0x353C, + CMSG_SET_SAVED_INSTANCE_EXTEND = 0x3683, + CMSG_SET_SELECTION = 0x353D, CMSG_SET_SHEATHED = 0x348F, CMSG_SET_SORT_BAGS_RIGHT_TO_LEFT = 0x3359, - CMSG_SET_TAXI_BENCHMARK_MODE = 0x3502, - CMSG_SET_TITLE = 0x3299, + CMSG_SET_TAXI_BENCHMARK_MODE = 0x3503, + CMSG_SET_TITLE = 0x329A, CMSG_SET_TRADE_CURRENCY = 0x3160, CMSG_SET_TRADE_GOLD = 0x315F, CMSG_SET_TRADE_ITEM = 0x315D, CMSG_SET_USING_PARTY_GARRISON = 0x3317, - CMSG_SET_WAR_MODE = 0x32CE, - CMSG_SET_WATCHED_FACTION = 0x34F0, - CMSG_SHOW_TRADE_SKILL = 0x36C0, - CMSG_SIGN_PETITION = 0x3547, - CMSG_SILENCE_PARTY_TALKER = 0x3652, - CMSG_SOCIAL_CONTRACT_REQUEST = 0x3744, - CMSG_SOCKET_GEMS = 0x34FA, + CMSG_SET_WAR_MODE = 0x32CF, + CMSG_SET_WATCHED_FACTION = 0x34F1, + CMSG_SHOW_TRADE_SKILL = 0x36BD, + CMSG_SIGN_PETITION = 0x3548, + CMSG_SILENCE_PARTY_TALKER = 0x364F, + CMSG_SOCIAL_CONTRACT_REQUEST = 0x3741, + CMSG_SOCKET_GEMS = 0x34FB, CMSG_SORT_BAGS = 0x335B, CMSG_SORT_BANK_BAGS = 0x335C, CMSG_SORT_REAGENT_BANK_BAGS = 0x335D, - CMSG_SPAWN_TRACKING_UPDATE = 0x32AE, - CMSG_SPECTATE_CHANGE = 0x342A, - CMSG_SPELL_CLICK = 0x349B, - CMSG_SPELL_EMPOWER_RELEASE = 0x3280, - CMSG_SPELL_EMPOWER_RESTART = 0x3281, - CMSG_SPIRIT_HEALER_ACTIVATE = 0x34B6, - CMSG_SPLIT_GUILD_BANK_ITEM = 0x34C9, - CMSG_SPLIT_GUILD_BANK_ITEM_TO_INVENTORY = 0x34C6, + CMSG_SPAWN_TRACKING_UPDATE = 0x32AF, + CMSG_SPECTATE_CHANGE = 0x342B, + CMSG_SPELL_CLICK = 0x349C, + CMSG_SPELL_EMPOWER_RELEASE = 0x3281, + CMSG_SPELL_EMPOWER_RESTART = 0x3282, + CMSG_SPIRIT_HEALER_ACTIVATE = 0x34B7, + CMSG_SPLIT_GUILD_BANK_ITEM = 0x34CA, + CMSG_SPLIT_GUILD_BANK_ITEM_TO_INVENTORY = 0x34C7, CMSG_SPLIT_ITEM = 0x399E, - CMSG_SPLIT_ITEM_TO_GUILD_BANK = 0x34C4, - CMSG_STAND_STATE_CHANGE = 0x3188, - CMSG_START_CHALLENGE_MODE = 0x355F, + CMSG_SPLIT_ITEM_TO_GUILD_BANK = 0x34C5, + CMSG_STAND_STATE_CHANGE = 0x3189, + CMSG_START_CHALLENGE_MODE = 0x3560, CMSG_START_SPECTATOR_WAR_GAME = 0x35DF, CMSG_START_WAR_GAME = 0x35DE, - CMSG_STORE_GUILD_BANK_ITEM = 0x34BF, - CMSG_SUBMIT_USER_FEEDBACK = 0x3693, + CMSG_STORE_GUILD_BANK_ITEM = 0x34C0, + CMSG_SUBMIT_USER_FEEDBACK = 0x3690, CMSG_SUBSCRIPTION_INTERSTITIAL_RESPONSE = 0x33E9, - CMSG_SUMMON_RESPONSE = 0x366A, - CMSG_SUPPORT_TICKET_SUBMIT_COMPLAINT = 0x3646, - CMSG_SURRENDER_ARENA = 0x3173, + CMSG_SUMMON_RESPONSE = 0x3667, + CMSG_SUPPORT_TICKET_SUBMIT_COMPLAINT = 0x3643, + CMSG_SURRENDER_ARENA = 0x3174, CMSG_SUSPEND_COMMS_ACK = 0x3778, CMSG_SUSPEND_TOKEN_RESPONSE = 0x377E, - CMSG_SWAP_GUILD_BANK_ITEM_WITH_GUILD_BANK_ITEM = 0x34C1, + CMSG_SWAP_GUILD_BANK_ITEM_WITH_GUILD_BANK_ITEM = 0x34C2, CMSG_SWAP_INV_ITEM = 0x399D, CMSG_SWAP_ITEM = 0x399C, - CMSG_SWAP_ITEM_WITH_GUILD_BANK_ITEM = 0x34C0, - CMSG_SWAP_SUB_GROUPS = 0x364D, - CMSG_SWAP_VOID_ITEM = 0x31A3, - CMSG_TABARD_VENDOR_ACTIVATE = 0x32CA, - CMSG_TALK_TO_GOSSIP = 0x3498, - CMSG_TAXI_NODE_STATUS_QUERY = 0x34AF, - CMSG_TAXI_QUERY_AVAILABLE_NODES = 0x34B1, - CMSG_TAXI_REQUEST_EARLY_LANDING = 0x34B3, + CMSG_SWAP_ITEM_WITH_GUILD_BANK_ITEM = 0x34C1, + CMSG_SWAP_SUB_GROUPS = 0x364A, + CMSG_SWAP_VOID_ITEM = 0x31A4, + CMSG_TABARD_VENDOR_ACTIVATE = 0x32CB, + CMSG_TALK_TO_GOSSIP = 0x3499, + CMSG_TAXI_NODE_STATUS_QUERY = 0x34B0, + CMSG_TAXI_QUERY_AVAILABLE_NODES = 0x34B2, + CMSG_TAXI_REQUEST_EARLY_LANDING = 0x34B4, CMSG_TIME_ADJUSTMENT_RESPONSE = 0x3A40, CMSG_TIME_SYNC_RESPONSE = 0x3A3D, CMSG_TIME_SYNC_RESPONSE_DROPPED = 0x3A3F, CMSG_TIME_SYNC_RESPONSE_FAILED = 0x3A3E, - CMSG_TOGGLE_DIFFICULTY = 0x3657, - CMSG_TOGGLE_PVP = 0x32CC, - CMSG_TOTEM_DESTROYED = 0x3507, + CMSG_TOGGLE_DIFFICULTY = 0x3654, + CMSG_TOGGLE_PVP = 0x32CD, + CMSG_TOTEM_DESTROYED = 0x3508, CMSG_TOY_CLEAR_FANFARE = 0x3128, CMSG_TRADE_SKILL_SET_FAVORITE = 0x3376, - CMSG_TRAINER_BUY_SPELL = 0x34B5, - CMSG_TRAINER_LIST = 0x34B4, - CMSG_TRAITS_COMMIT_CONFIG = 0x3412, - CMSG_TRAITS_TALENT_TEST_UNLEARN_SPELLS = 0x3410, - CMSG_TRANSMOGRIFY_ITEMS = 0x3196, - CMSG_TURN_IN_PETITION = 0x3549, - CMSG_TUTORIAL = 0x36DA, + CMSG_TRAINER_BUY_SPELL = 0x34B6, + CMSG_TRAINER_LIST = 0x34B5, + CMSG_TRAITS_COMMIT_CONFIG = 0x3413, + CMSG_TRAITS_TALENT_TEST_UNLEARN_SPELLS = 0x3411, + CMSG_TRANSMOGRIFY_ITEMS = 0x3197, + CMSG_TURN_IN_PETITION = 0x354A, + CMSG_TUTORIAL = 0x36D7, CMSG_UI_MAP_QUEST_LINES_REQUEST = 0x33B9, CMSG_UNACCEPT_TRADE = 0x315B, - CMSG_UNDELETE_CHARACTER = 0x36DC, - CMSG_UNLEARN_SKILL = 0x34F4, - CMSG_UNLEARN_SPECIALIZATION = 0x31A4, - CMSG_UNLOCK_VOID_STORAGE = 0x31A0, - CMSG_UPDATE_AADC_STATUS = 0x3738, - CMSG_UPDATE_ACCOUNT_DATA = 0x3695, - CMSG_UPDATE_AREA_TRIGGER_VISUAL = 0x32BB, - CMSG_UPDATE_CLIENT_SETTINGS = 0x3664, + CMSG_UNDELETE_CHARACTER = 0x36D9, + CMSG_UNLEARN_SKILL = 0x34F5, + CMSG_UNLEARN_SPECIALIZATION = 0x31A5, + CMSG_UNLOCK_VOID_STORAGE = 0x31A1, + CMSG_UPDATE_AADC_STATUS = 0x3735, + CMSG_UPDATE_ACCOUNT_DATA = 0x3692, + CMSG_UPDATE_AREA_TRIGGER_VISUAL = 0x32BC, + CMSG_UPDATE_CLIENT_SETTINGS = 0x3661, CMSG_UPDATE_CRAFTING_NPC_RECIPES = 0x3329, CMSG_UPDATE_MISSILE_TRAJECTORY = 0x3A43, - CMSG_UPDATE_RAID_TARGET = 0x3650, - CMSG_UPDATE_SPELL_VISUAL = 0x32BA, - CMSG_UPDATE_VAS_PURCHASE_STATES = 0x36F1, + CMSG_UPDATE_RAID_TARGET = 0x364D, + CMSG_UPDATE_SPELL_VISUAL = 0x32BB, + CMSG_UPDATE_VAS_PURCHASE_STATES = 0x36EE, CMSG_UPGRADE_GARRISON = 0x32DF, CMSG_UPGRADE_RUNEFORGE_LEGENDARY = 0x33E7, - CMSG_USED_FOLLOW = 0x3185, - CMSG_USE_CRITTER_ITEM = 0x3252, + CMSG_USED_FOLLOW = 0x3186, + CMSG_USE_CRITTER_ITEM = 0x3253, CMSG_USE_EQUIPMENT_SET = 0x3995, - CMSG_USE_ITEM = 0x32B4, - CMSG_USE_TOY = 0x32B7, - CMSG_VAS_CHECK_TRANSFER_OK = 0x370A, - CMSG_VAS_GET_QUEUE_MINUTES = 0x3709, - CMSG_VAS_GET_SERVICE_STATUS = 0x3708, - CMSG_VIOLENCE_LEVEL = 0x3183, - CMSG_VOICE_CHANNEL_STT_TOKEN_REQUEST = 0x370E, - CMSG_VOICE_CHAT_JOIN_CHANNEL = 0x370F, - CMSG_VOICE_CHAT_LOGIN = 0x370D, - CMSG_VOID_STORAGE_TRANSFER = 0x31A2, + CMSG_USE_ITEM = 0x32B5, + CMSG_USE_TOY = 0x32B8, + CMSG_VAS_CHECK_TRANSFER_OK = 0x3707, + CMSG_VAS_GET_QUEUE_MINUTES = 0x3706, + CMSG_VAS_GET_SERVICE_STATUS = 0x3705, + CMSG_VIOLENCE_LEVEL = 0x3184, + CMSG_VOICE_CHANNEL_STT_TOKEN_REQUEST = 0x370B, + CMSG_VOICE_CHAT_JOIN_CHANNEL = 0x370C, + CMSG_VOICE_CHAT_LOGIN = 0x370A, + CMSG_VOID_STORAGE_TRANSFER = 0x31A3, CMSG_WARDEN3_DATA = 0x35EC, - CMSG_WHO = 0x3681, - CMSG_WHO_IS = 0x3680, - CMSG_WORLD_LOOT_OBJECT_CLICK = 0x342D, + CMSG_WHO = 0x367E, + CMSG_WHO_IS = 0x367D, + CMSG_WORLD_LOOT_OBJECT_CLICK = 0x342E, CMSG_WORLD_PORT_RESPONSE = 0x35F9, CMSG_WRAP_ITEM = 0x3994, }; enum OpcodeServer : uint16 { - SMSG_ABORT_NEW_WORLD = 0x2597, - SMSG_ACCOUNT_COSMETIC_ADDED = 0x2878, - SMSG_ACCOUNT_CRITERIA_UPDATE = 0x285E, - SMSG_ACCOUNT_DATA_TIMES = 0x2707, - SMSG_ACCOUNT_EXPORT_RESPONSE = 0x28B5, - SMSG_ACCOUNT_MOUNT_REMOVED = 0x25AE, - SMSG_ACCOUNT_MOUNT_UPDATE = 0x25AD, - SMSG_ACCOUNT_NOTIFICATIONS_RESPONSE = 0x2877, - SMSG_ACCOUNT_TOY_UPDATE = 0x25AF, - SMSG_ACCOUNT_TRANSMOG_SET_FAVORITES_UPDATE = 0x25B3, - SMSG_ACCOUNT_TRANSMOG_UPDATE = 0x25B2, - SMSG_ACHIEVEMENT_DELETED = 0x26E5, - SMSG_ACHIEVEMENT_EARNED = 0x2640, + SMSG_ABORT_NEW_WORLD = 0x2599, + SMSG_ACCOUNT_COSMETIC_ADDED = 0x2879, + SMSG_ACCOUNT_CRITERIA_UPDATE = 0x285F, + SMSG_ACCOUNT_DATA_TIMES = 0x2709, + SMSG_ACCOUNT_EXPORT_RESPONSE = 0x28B6, + SMSG_ACCOUNT_MOUNT_REMOVED = 0x25B0, + SMSG_ACCOUNT_MOUNT_UPDATE = 0x25AF, + SMSG_ACCOUNT_NOTIFICATIONS_RESPONSE = 0x2878, + SMSG_ACCOUNT_TOY_UPDATE = 0x25B1, + SMSG_ACCOUNT_TRANSMOG_SET_FAVORITES_UPDATE = 0x25B5, + SMSG_ACCOUNT_TRANSMOG_UPDATE = 0x25B4, + SMSG_ACHIEVEMENT_DELETED = 0x26E7, + SMSG_ACHIEVEMENT_EARNED = 0x2642, SMSG_ACTIVATE_ESSENCE_FAILED = 0x3015, SMSG_ACTIVATE_SOULBIND_FAILED = 0x3017, - SMSG_ACTIVATE_TAXI_REPLY = 0x267C, + SMSG_ACTIVATE_TAXI_REPLY = 0x267E, SMSG_ACTIVE_GLYPHS = 0x2C56, - SMSG_ACTIVE_SCHEDULED_WORLD_STATE_INFO = 0x2743, - SMSG_ADDON_LIST_REQUEST = 0x263F, - SMSG_ADD_BATTLENET_FRIEND_RESPONSE = 0x263A, - SMSG_ADD_ITEM_PASSIVE = 0x25A9, - SMSG_ADD_LOSS_OF_CONTROL = 0x2670, - SMSG_ADD_RUNE_POWER = 0x26B6, - SMSG_ADJUST_SPLINE_DURATION = 0x25CF, - SMSG_ADVANCED_COMBAT_LOG = 0x2874, - SMSG_ADVENTURE_JOURNAL_DATA_RESPONSE = 0x286E, - SMSG_AE_LOOT_TARGETS = 0x2615, - SMSG_AE_LOOT_TARGET_ACK = 0x2616, - SMSG_AI_REACTION = 0x26B3, - SMSG_ALLIED_RACE_DETAILS = 0x27F2, + SMSG_ACTIVE_SCHEDULED_WORLD_STATE_INFO = 0x2745, + SMSG_ADDON_LIST_REQUEST = 0x2641, + SMSG_ADD_BATTLENET_FRIEND_RESPONSE = 0x263C, + SMSG_ADD_ITEM_PASSIVE = 0x25AB, + SMSG_ADD_LOSS_OF_CONTROL = 0x2672, + SMSG_ADD_RUNE_POWER = 0x26B8, + SMSG_ADJUST_SPLINE_DURATION = 0x25D1, + SMSG_ADVANCED_COMBAT_LOG = 0x2875, + SMSG_ADVENTURE_JOURNAL_DATA_RESPONSE = 0x286F, + SMSG_AE_LOOT_TARGETS = 0x2617, + SMSG_AE_LOOT_TARGET_ACK = 0x2618, + SMSG_AI_REACTION = 0x26B5, + SMSG_ALLIED_RACE_DETAILS = 0x27F3, SMSG_ALL_ACCOUNT_CRITERIA = 0x2571, SMSG_ALL_ACHIEVEMENT_DATA = 0x2570, SMSG_ALL_GUILD_ACHIEVEMENTS = 0x29B8, - SMSG_APPLY_MOUNT_EQUIPMENT_RESULT = 0x284B, - SMSG_ARCHAEOLOGY_SURVERY_CAST = 0x2586, + SMSG_APPLY_MOUNT_EQUIPMENT_RESULT = 0x284C, + SMSG_ARCHAEOLOGY_SURVERY_CAST = 0x2587, SMSG_AREA_POI_UPDATE_RESPONSE = 0x3010, - SMSG_AREA_SPIRIT_HEALER_TIME = 0x273C, + SMSG_AREA_SPIRIT_HEALER_TIME = 0x273E, SMSG_AREA_TRIGGER_DENIED = 0x2903, SMSG_AREA_TRIGGER_FORCE_SET_POSITION_AND_FACING = 0x2900, - SMSG_AREA_TRIGGER_NO_CORPSE = 0x2713, + SMSG_AREA_TRIGGER_NO_CORPSE = 0x2715, SMSG_AREA_TRIGGER_PLAY_SPELL_VISUAL = 0x28FE, SMSG_AREA_TRIGGER_RE_PATH = 0x28FD, SMSG_AREA_TRIGGER_RE_SHAPE = 0x2902, SMSG_AREA_TRIGGER_UNATTACH = 0x2901, SMSG_AREA_TRIGGER_UPDATE_DECAL_PROPERTIES = 0x28FF, - SMSG_ARENA_CLEAR_OPPONENTS = 0x2646, - SMSG_ARENA_CROWD_CONTROL_SPELL_RESULT = 0x262F, - SMSG_ARENA_PREP_OPPONENT_SPECIALIZATIONS = 0x2645, - SMSG_ARTIFACT_ENDGAME_POWERS_REFUNDED = 0x279E, - SMSG_ARTIFACT_FORGE_ERROR = 0x279C, - SMSG_ARTIFACT_RESPEC_PROMPT = 0x279D, - SMSG_ARTIFACT_XP_GAIN = 0x27E5, + SMSG_ARENA_CLEAR_OPPONENTS = 0x2648, + SMSG_ARENA_CROWD_CONTROL_SPELL_RESULT = 0x2631, + SMSG_ARENA_PREP_OPPONENT_SPECIALIZATIONS = 0x2647, + SMSG_ARTIFACT_ENDGAME_POWERS_REFUNDED = 0x279F, + SMSG_ARTIFACT_FORGE_ERROR = 0x279D, + SMSG_ARTIFACT_RESPEC_PROMPT = 0x279E, + SMSG_ARTIFACT_XP_GAIN = 0x27E6, SMSG_ATTACKER_STATE_UPDATE = 0x294E, SMSG_ATTACK_START = 0x2939, SMSG_ATTACK_STOP = 0x293A, SMSG_ATTACK_SWING_ERROR = 0x2948, SMSG_ATTACK_SWING_LANDED_LOG = 0x2949, - SMSG_AUCTIONABLE_TOKEN_AUCTION_SOLD = 0x27CE, - SMSG_AUCTIONABLE_TOKEN_SELL_AT_MARKET_PRICE_RESPONSE = 0x27CD, - SMSG_AUCTIONABLE_TOKEN_SELL_CONFIRM_REQUIRED = 0x27CC, - SMSG_AUCTION_CLOSED_NOTIFICATION = 0x26F0, - SMSG_AUCTION_COMMAND_RESULT = 0x26ED, - SMSG_AUCTION_DISABLE_NEW_POSTINGS = 0x2895, - SMSG_AUCTION_FAVORITE_LIST = 0x2865, - SMSG_AUCTION_GET_COMMODITY_QUOTE_RESULT = 0x285C, - SMSG_AUCTION_HELLO_RESPONSE = 0x26EB, - SMSG_AUCTION_LIST_BIDDED_ITEMS_RESULT = 0x285B, - SMSG_AUCTION_LIST_BUCKETS_RESULT = 0x2858, - SMSG_AUCTION_LIST_ITEMS_RESULT = 0x2859, - SMSG_AUCTION_LIST_OWNED_ITEMS_RESULT = 0x285A, - SMSG_AUCTION_OUTBID_NOTIFICATION = 0x26EF, - SMSG_AUCTION_OWNER_BID_NOTIFICATION = 0x26F1, - SMSG_AUCTION_REPLICATE_RESPONSE = 0x26EC, - SMSG_AUCTION_WON_NOTIFICATION = 0x26EE, + SMSG_AUCTIONABLE_TOKEN_AUCTION_SOLD = 0x27CF, + SMSG_AUCTIONABLE_TOKEN_SELL_AT_MARKET_PRICE_RESPONSE = 0x27CE, + SMSG_AUCTIONABLE_TOKEN_SELL_CONFIRM_REQUIRED = 0x27CD, + SMSG_AUCTION_CLOSED_NOTIFICATION = 0x26F2, + SMSG_AUCTION_COMMAND_RESULT = 0x26EF, + SMSG_AUCTION_DISABLE_NEW_POSTINGS = 0x2896, + SMSG_AUCTION_FAVORITE_LIST = 0x2866, + SMSG_AUCTION_GET_COMMODITY_QUOTE_RESULT = 0x285D, + SMSG_AUCTION_HELLO_RESPONSE = 0x26ED, + SMSG_AUCTION_LIST_BIDDED_ITEMS_RESULT = 0x285C, + SMSG_AUCTION_LIST_BUCKETS_RESULT = 0x2859, + SMSG_AUCTION_LIST_ITEMS_RESULT = 0x285A, + SMSG_AUCTION_LIST_OWNED_ITEMS_RESULT = 0x285B, + SMSG_AUCTION_OUTBID_NOTIFICATION = 0x26F1, + SMSG_AUCTION_OWNER_BID_NOTIFICATION = 0x26F3, + SMSG_AUCTION_REPLICATE_RESPONSE = 0x26EE, + SMSG_AUCTION_WON_NOTIFICATION = 0x26F0, SMSG_AURA_POINTS_DEPLETED = 0x2C22, SMSG_AURA_UPDATE = 0x2C21, SMSG_AUTH_CHALLENGE = 0x3048, SMSG_AUTH_FAILED = 0x256C, SMSG_AUTH_RESPONSE = 0x256D, SMSG_AVAILABLE_HOTFIXES = 0x290F, - SMSG_BACKPACK_DEFAULT_SIZE_CHANGED = 0x289A, + SMSG_BACKPACK_DEFAULT_SIZE_CHANGED = 0x289B, SMSG_BAG_CLEANUP_FINISHED = 0x2DA7, - SMSG_BARBER_SHOP_RESULT = 0x26BB, - SMSG_BATCH_PRESENCE_SUBSCRIPTION = 0x283C, + SMSG_BARBER_SHOP_RESULT = 0x26BD, + SMSG_BATCH_PRESENCE_SUBSCRIPTION = 0x283D, SMSG_BATTLEFIELD_LIST = 0x2927, SMSG_BATTLEFIELD_PORT_DENIED = 0x292D, SMSG_BATTLEFIELD_STATUS_ACTIVE = 0x2923, @@ -1015,111 +1017,111 @@ enum OpcodeServer : uint16 SMSG_BATTLEGROUND_PLAYER_LEFT = 0x292C, SMSG_BATTLEGROUND_PLAYER_POSITIONS = 0x2928, SMSG_BATTLEGROUND_POINTS = 0x294A, - SMSG_BATTLENET_CHALLENGE_ABORT = 0x2786, - SMSG_BATTLENET_CHALLENGE_START = 0x2785, - SMSG_BATTLENET_NOTIFICATION = 0x27FE, - SMSG_BATTLENET_RESPONSE = 0x27FD, - SMSG_BATTLE_NET_CONNECTION_STATUS = 0x27FF, - SMSG_BATTLE_PAY_ACK_FAILED = 0x2780, - SMSG_BATTLE_PAY_BATTLE_PET_DELIVERED = 0x2775, - SMSG_BATTLE_PAY_COLLECTION_ITEM_DELIVERED = 0x2776, - SMSG_BATTLE_PAY_CONFIRM_PURCHASE = 0x277F, - SMSG_BATTLE_PAY_DELIVERY_ENDED = 0x2773, - SMSG_BATTLE_PAY_DELIVERY_STARTED = 0x2772, - SMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_VAS_RESPONSE = 0x287D, - SMSG_BATTLE_PAY_DISTRIBUTION_UNREVOKED = 0x2770, - SMSG_BATTLE_PAY_DISTRIBUTION_UPDATE = 0x2771, - SMSG_BATTLE_PAY_GET_DISTRIBUTION_LIST_RESPONSE = 0x276F, - SMSG_BATTLE_PAY_GET_PRODUCT_LIST_RESPONSE = 0x276D, - SMSG_BATTLE_PAY_GET_PURCHASE_LIST_RESPONSE = 0x276E, - SMSG_BATTLE_PAY_MOUNT_DELIVERED = 0x2774, - SMSG_BATTLE_PAY_PURCHASE_UPDATE = 0x277E, - SMSG_BATTLE_PAY_START_CHECKOUT = 0x281A, - SMSG_BATTLE_PAY_START_DISTRIBUTION_ASSIGN_TO_TARGET_RESPONSE = 0x277C, - SMSG_BATTLE_PAY_START_PURCHASE_RESPONSE = 0x277B, - SMSG_BATTLE_PAY_VALIDATE_PURCHASE_RESPONSE = 0x280E, - SMSG_BATTLE_PETS_HEALED = 0x25F1, - SMSG_BATTLE_PET_CAGE_DATE_ERROR = 0x2677, - SMSG_BATTLE_PET_DELETED = 0x25EE, - SMSG_BATTLE_PET_ERROR = 0x2635, - SMSG_BATTLE_PET_JOURNAL = 0x25ED, - SMSG_BATTLE_PET_JOURNAL_LOCK_ACQUIRED = 0x25EB, - SMSG_BATTLE_PET_JOURNAL_LOCK_DENIED = 0x25EC, - SMSG_BATTLE_PET_RESTORED = 0x25F0, - SMSG_BATTLE_PET_REVOKED = 0x25EF, - SMSG_BATTLE_PET_TRAP_LEVEL = 0x25E9, - SMSG_BATTLE_PET_UPDATES = 0x25E8, + SMSG_BATTLENET_CHALLENGE_ABORT = 0x2787, + SMSG_BATTLENET_CHALLENGE_START = 0x2786, + SMSG_BATTLENET_NOTIFICATION = 0x27FF, + SMSG_BATTLENET_RESPONSE = 0x27FE, + SMSG_BATTLE_NET_CONNECTION_STATUS = 0x2800, + SMSG_BATTLE_PAY_ACK_FAILED = 0x2782, + SMSG_BATTLE_PAY_BATTLE_PET_DELIVERED = 0x2777, + SMSG_BATTLE_PAY_COLLECTION_ITEM_DELIVERED = 0x2778, + SMSG_BATTLE_PAY_CONFIRM_PURCHASE = 0x2781, + SMSG_BATTLE_PAY_DELIVERY_ENDED = 0x2775, + SMSG_BATTLE_PAY_DELIVERY_STARTED = 0x2774, + SMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_VAS_RESPONSE = 0x287E, + SMSG_BATTLE_PAY_DISTRIBUTION_UNREVOKED = 0x2772, + SMSG_BATTLE_PAY_DISTRIBUTION_UPDATE = 0x2773, + SMSG_BATTLE_PAY_GET_DISTRIBUTION_LIST_RESPONSE = 0x2771, + SMSG_BATTLE_PAY_GET_PRODUCT_LIST_RESPONSE = 0x276F, + SMSG_BATTLE_PAY_GET_PURCHASE_LIST_RESPONSE = 0x2770, + SMSG_BATTLE_PAY_MOUNT_DELIVERED = 0x2776, + SMSG_BATTLE_PAY_PURCHASE_UPDATE = 0x2780, + SMSG_BATTLE_PAY_START_CHECKOUT = 0x281B, + SMSG_BATTLE_PAY_START_DISTRIBUTION_ASSIGN_TO_TARGET_RESPONSE = 0x277E, + SMSG_BATTLE_PAY_START_PURCHASE_RESPONSE = 0x277D, + SMSG_BATTLE_PAY_VALIDATE_PURCHASE_RESPONSE = 0x280F, + SMSG_BATTLE_PETS_HEALED = 0x25F3, + SMSG_BATTLE_PET_CAGE_DATE_ERROR = 0x2679, + SMSG_BATTLE_PET_DELETED = 0x25F0, + SMSG_BATTLE_PET_ERROR = 0x2637, + SMSG_BATTLE_PET_JOURNAL = 0x25EF, + SMSG_BATTLE_PET_JOURNAL_LOCK_ACQUIRED = 0x25ED, + SMSG_BATTLE_PET_JOURNAL_LOCK_DENIED = 0x25EE, + SMSG_BATTLE_PET_RESTORED = 0x25F2, + SMSG_BATTLE_PET_REVOKED = 0x25F1, + SMSG_BATTLE_PET_TRAP_LEVEL = 0x25EB, + SMSG_BATTLE_PET_UPDATES = 0x25EA, SMSG_BIND_POINT_UPDATE = 0x257D, - SMSG_BLACK_MARKET_BID_ON_ITEM_RESULT = 0x2625, - SMSG_BLACK_MARKET_OUTBID = 0x2626, - SMSG_BLACK_MARKET_REQUEST_ITEMS_RESULT = 0x2624, - SMSG_BLACK_MARKET_WON = 0x2627, - SMSG_BONUS_ROLL_EMPTY = 0x2642, + SMSG_BLACK_MARKET_BID_ON_ITEM_RESULT = 0x2627, + SMSG_BLACK_MARKET_OUTBID = 0x2628, + SMSG_BLACK_MARKET_REQUEST_ITEMS_RESULT = 0x2626, + SMSG_BLACK_MARKET_WON = 0x2629, + SMSG_BONUS_ROLL_EMPTY = 0x2644, SMSG_BOSS_KILL = 0x294D, SMSG_BREAK_TARGET = 0x2938, SMSG_BROADCAST_ACHIEVEMENT = 0x2BBC, - SMSG_BROADCAST_SUMMON_CAST = 0x283E, - SMSG_BROADCAST_SUMMON_RESPONSE = 0x283F, - SMSG_BUY_FAILED = 0x26C4, - SMSG_BUY_SUCCEEDED = 0x26C3, + SMSG_BROADCAST_SUMMON_CAST = 0x283F, + SMSG_BROADCAST_SUMMON_RESPONSE = 0x2840, + SMSG_BUY_FAILED = 0x26C6, + SMSG_BUY_SUCCEEDED = 0x26C5, SMSG_CACHE_INFO = 0x291D, SMSG_CACHE_VERSION = 0x291C, - SMSG_CALENDAR_CLEAR_PENDING_ACTION = 0x269C, - SMSG_CALENDAR_COMMAND_RESULT = 0x269D, - SMSG_CALENDAR_COMMUNITY_INVITE = 0x268C, - SMSG_CALENDAR_EVENT_REMOVED_ALERT = 0x2694, - SMSG_CALENDAR_EVENT_UPDATED_ALERT = 0x2695, - SMSG_CALENDAR_INVITE_ADDED = 0x268D, - SMSG_CALENDAR_INVITE_ALERT = 0x2691, - SMSG_CALENDAR_INVITE_NOTES = 0x2696, - SMSG_CALENDAR_INVITE_NOTES_ALERT = 0x2697, - SMSG_CALENDAR_INVITE_REMOVED = 0x268E, - SMSG_CALENDAR_INVITE_REMOVED_ALERT = 0x2693, - SMSG_CALENDAR_INVITE_STATUS = 0x268F, - SMSG_CALENDAR_INVITE_STATUS_ALERT = 0x2692, - SMSG_CALENDAR_MODERATOR_STATUS = 0x2690, - SMSG_CALENDAR_RAID_LOCKOUT_ADDED = 0x2698, - SMSG_CALENDAR_RAID_LOCKOUT_REMOVED = 0x2699, - SMSG_CALENDAR_RAID_LOCKOUT_UPDATED = 0x269A, - SMSG_CALENDAR_SEND_CALENDAR = 0x268A, - SMSG_CALENDAR_SEND_EVENT = 0x268B, - SMSG_CALENDAR_SEND_NUM_PENDING = 0x269B, - SMSG_CAMERA_EFFECT = 0x2722, - SMSG_CANCEL_AUTO_REPEAT = 0x26DB, + SMSG_CALENDAR_CLEAR_PENDING_ACTION = 0x269E, + SMSG_CALENDAR_COMMAND_RESULT = 0x269F, + SMSG_CALENDAR_COMMUNITY_INVITE = 0x268E, + SMSG_CALENDAR_EVENT_REMOVED_ALERT = 0x2696, + SMSG_CALENDAR_EVENT_UPDATED_ALERT = 0x2697, + SMSG_CALENDAR_INVITE_ADDED = 0x268F, + SMSG_CALENDAR_INVITE_ALERT = 0x2693, + SMSG_CALENDAR_INVITE_NOTES = 0x2698, + SMSG_CALENDAR_INVITE_NOTES_ALERT = 0x2699, + SMSG_CALENDAR_INVITE_REMOVED = 0x2690, + SMSG_CALENDAR_INVITE_REMOVED_ALERT = 0x2695, + SMSG_CALENDAR_INVITE_STATUS = 0x2691, + SMSG_CALENDAR_INVITE_STATUS_ALERT = 0x2694, + SMSG_CALENDAR_MODERATOR_STATUS = 0x2692, + SMSG_CALENDAR_RAID_LOCKOUT_ADDED = 0x269A, + SMSG_CALENDAR_RAID_LOCKOUT_REMOVED = 0x269B, + SMSG_CALENDAR_RAID_LOCKOUT_UPDATED = 0x269C, + SMSG_CALENDAR_SEND_CALENDAR = 0x268C, + SMSG_CALENDAR_SEND_EVENT = 0x268D, + SMSG_CALENDAR_SEND_NUM_PENDING = 0x269D, + SMSG_CAMERA_EFFECT = 0x2724, + SMSG_CANCEL_AUTO_REPEAT = 0x26DD, SMSG_CANCEL_COMBAT = 0x2947, SMSG_CANCEL_ORPHAN_SPELL_VISUAL = 0x2C48, - SMSG_CANCEL_PING_PIN = 0x25A2, - SMSG_CANCEL_PRELOAD_WORLD = 0x2595, - SMSG_CANCEL_SCENE = 0x2634, + SMSG_CANCEL_PING_PIN = 0x25A4, + SMSG_CANCEL_PRELOAD_WORLD = 0x2597, + SMSG_CANCEL_SCENE = 0x2636, SMSG_CANCEL_SPELL_VISUAL = 0x2C46, SMSG_CANCEL_SPELL_VISUAL_KIT = 0x2C4A, SMSG_CAN_DUEL_RESULT = 0x2943, - SMSG_CAN_REDEEM_TOKEN_FOR_BALANCE_RESPONSE = 0x280D, + SMSG_CAN_REDEEM_TOKEN_FOR_BALANCE_RESPONSE = 0x280E, SMSG_CAPTURE_POINT_REMOVED = 0x292A, SMSG_CAST_FAILED = 0x2C59, - SMSG_CHAIN_MISSILE_BOUNCE = 0x25C7, - SMSG_CHALLENGE_MODE_COMPLETE = 0x2608, - SMSG_CHALLENGE_MODE_REQUEST_LEADERS_RESULT = 0x260D, - SMSG_CHALLENGE_MODE_RESET = 0x2607, - SMSG_CHALLENGE_MODE_START = 0x2605, - SMSG_CHALLENGE_MODE_UPDATE_DEATH_COUNT = 0x2606, + SMSG_CHAIN_MISSILE_BOUNCE = 0x25C9, + SMSG_CHALLENGE_MODE_COMPLETE = 0x260A, + SMSG_CHALLENGE_MODE_REQUEST_LEADERS_RESULT = 0x260F, + SMSG_CHALLENGE_MODE_RESET = 0x2609, + SMSG_CHALLENGE_MODE_START = 0x2607, + SMSG_CHALLENGE_MODE_UPDATE_DEATH_COUNT = 0x2608, SMSG_CHANGE_PLAYER_DIFFICULTY_RESULT = 0x3004, - SMSG_CHANGE_REALM_TICKET_RESPONSE = 0x2800, + SMSG_CHANGE_REALM_TICKET_RESPONSE = 0x2801, SMSG_CHANNEL_LIST = 0x2BC4, SMSG_CHANNEL_NOTIFY = 0x2BC1, SMSG_CHANNEL_NOTIFY_JOINED = 0x2BC2, SMSG_CHANNEL_NOTIFY_LEFT = 0x2BC3, - SMSG_CHARACTER_CHECK_UPGRADE_RESULT = 0x27B9, - SMSG_CHARACTER_LOGIN_FAILED = 0x2702, - SMSG_CHARACTER_OBJECT_TEST_RESPONSE = 0x2784, - SMSG_CHARACTER_RENAME_RESULT = 0x275F, - SMSG_CHARACTER_UPGRADE_ABORTED = 0x27B8, - SMSG_CHARACTER_UPGRADE_COMPLETE = 0x27B7, - SMSG_CHARACTER_UPGRADE_MANUAL_UNREVOKE_RESULT = 0x27BA, - SMSG_CHARACTER_UPGRADE_STARTED = 0x27B6, - SMSG_CHAR_CUSTOMIZE_FAILURE = 0x26DF, - SMSG_CHAR_CUSTOMIZE_SUCCESS = 0x26E0, - SMSG_CHAR_FACTION_CHANGE_RESULT = 0x27A3, + SMSG_CHARACTER_CHECK_UPGRADE_RESULT = 0x27BA, + SMSG_CHARACTER_LOGIN_FAILED = 0x2704, + SMSG_CHARACTER_OBJECT_TEST_RESPONSE = 0x2785, + SMSG_CHARACTER_RENAME_RESULT = 0x2761, + SMSG_CHARACTER_UPGRADE_ABORTED = 0x27B9, + SMSG_CHARACTER_UPGRADE_COMPLETE = 0x27B8, + SMSG_CHARACTER_UPGRADE_MANUAL_UNREVOKE_RESULT = 0x27BB, + SMSG_CHARACTER_UPGRADE_STARTED = 0x27B7, + SMSG_CHAR_CUSTOMIZE_FAILURE = 0x26E1, + SMSG_CHAR_CUSTOMIZE_SUCCESS = 0x26E2, + SMSG_CHAR_FACTION_CHANGE_RESULT = 0x27A4, SMSG_CHAT = 0x2BAD, SMSG_CHAT_AUTO_RESPONDED = 0x2BB8, SMSG_CHAT_CAN_LOCAL_WHISPER_TARGET_RESPONSE = 0x2BCB, @@ -1135,99 +1137,98 @@ enum OpcodeServer : uint16 SMSG_CHAT_SERVER_MESSAGE = 0x2BC5, SMSG_CHEAT_IGNORE_DIMISHING_RETURNS = 0x2C12, SMSG_CHECK_ABANDON_NPE = 0x3018, - SMSG_CHECK_CHARACTER_NAME_AVAILABILITY_RESULT = 0x2584, - SMSG_CHECK_WARGAME_ENTRY = 0x258F, - SMSG_CHROMIE_TIME_SELECT_EXPANSION_SUCCESS = 0x2868, - SMSG_CLAIM_RAF_REWARD_RESPONSE = 0x284F, + SMSG_CHECK_CHARACTER_NAME_AVAILABILITY_RESULT = 0x2585, + SMSG_CHECK_WARGAME_ENTRY = 0x2591, + SMSG_CHROMIE_TIME_SELECT_EXPANSION_SUCCESS = 0x2869, + SMSG_CLAIM_RAF_REWARD_RESPONSE = 0x2850, SMSG_CLEAR_ALL_SPELL_CHARGES = 0x2C26, - SMSG_CLEAR_BOSS_EMOTES = 0x25BA, - SMSG_CLEAR_COOLDOWN = 0x26B8, + SMSG_CLEAR_BOSS_EMOTES = 0x25BC, + SMSG_CLEAR_COOLDOWN = 0x26BA, SMSG_CLEAR_COOLDOWNS = 0x2C25, SMSG_CLEAR_RESURRECT = 0x257F, SMSG_CLEAR_SPELL_CHARGES = 0x2C27, SMSG_CLEAR_TARGET = 0x2944, SMSG_CLEAR_TREASURE_PICKER_CACHE = 0x2AA1, - SMSG_CLOSE_ARTIFACT_FORGE = 0x279B, - SMSG_CLUB_FINDER_ERROR_MESSAGE = 0x2847, - SMSG_CLUB_FINDER_GET_CLUB_POSTING_IDS_RESPONSE = 0x284A, - SMSG_CLUB_FINDER_LOOKUP_CLUB_POSTINGS_LIST = 0x2848, - SMSG_CLUB_FINDER_RESPONSE_CHARACTER_APPLICATION_LIST = 0x2845, - SMSG_CLUB_FINDER_RESPONSE_POST_RECRUITMENT_MESSAGE = 0x2849, - SMSG_CLUB_FINDER_UPDATE_APPLICATIONS = 0x2846, - SMSG_CLUB_FINDER_WHISPER_APPLICANT_RESPONSE = 0x288B, - SMSG_COIN_REMOVED = 0x2614, + SMSG_CLOSE_ARTIFACT_FORGE = 0x279C, + SMSG_CLUB_FINDER_ERROR_MESSAGE = 0x2848, + SMSG_CLUB_FINDER_GET_CLUB_POSTING_IDS_RESPONSE = 0x284B, + SMSG_CLUB_FINDER_LOOKUP_CLUB_POSTINGS_LIST = 0x2849, + SMSG_CLUB_FINDER_RESPONSE_CHARACTER_APPLICATION_LIST = 0x2846, + SMSG_CLUB_FINDER_RESPONSE_POST_RECRUITMENT_MESSAGE = 0x284A, + SMSG_CLUB_FINDER_UPDATE_APPLICATIONS = 0x2847, + SMSG_CLUB_FINDER_WHISPER_APPLICANT_RESPONSE = 0x288C, + SMSG_COIN_REMOVED = 0x2616, SMSG_COMBAT_EVENT_FAILED = 0x293B, - SMSG_COMMENTATOR_MAP_INFO = 0x2704, - SMSG_COMMENTATOR_PLAYER_INFO = 0x2705, - SMSG_COMMENTATOR_STATE_CHANGED = 0x2703, - SMSG_COMMERCE_TOKEN_GET_COUNT_RESPONSE = 0x27C9, - SMSG_COMMERCE_TOKEN_GET_LOG_RESPONSE = 0x27D5, - SMSG_COMMERCE_TOKEN_GET_MARKET_PRICE_RESPONSE = 0x27CB, - SMSG_COMMERCE_TOKEN_UPDATE = 0x27CA, - SMSG_COMPLAINT_RESULT = 0x26AA, - SMSG_COMPLETE_SHIPMENT_RESPONSE = 0x2794, - SMSG_CONFIRM_PARTY_INVITE = 0x280C, + SMSG_COMMENTATOR_MAP_INFO = 0x2706, + SMSG_COMMENTATOR_PLAYER_INFO = 0x2707, + SMSG_COMMENTATOR_STATE_CHANGED = 0x2705, + SMSG_COMMERCE_TOKEN_GET_COUNT_RESPONSE = 0x27CA, + SMSG_COMMERCE_TOKEN_GET_LOG_RESPONSE = 0x27D6, + SMSG_COMMERCE_TOKEN_GET_MARKET_PRICE_RESPONSE = 0x27CC, + SMSG_COMMERCE_TOKEN_UPDATE = 0x27CB, + SMSG_COMPLAINT_RESULT = 0x26AC, + SMSG_COMPLETE_SHIPMENT_RESPONSE = 0x2795, + SMSG_CONFIRM_PARTY_INVITE = 0x280D, SMSG_CONNECT_TO = 0x304D, - SMSG_CONQUEST_FORMULA_CONSTANTS = 0x2781, - SMSG_CONSOLE_WRITE = 0x2632, - SMSG_CONSUMABLE_TOKEN_BUY_AT_MARKET_PRICE_RESPONSE = 0x27D1, - SMSG_CONSUMABLE_TOKEN_BUY_CHOICE_REQUIRED = 0x27D0, - SMSG_CONSUMABLE_TOKEN_CAN_VETERAN_BUY_RESPONSE = 0x27CF, - SMSG_CONSUMABLE_TOKEN_REDEEM_CONFIRM_REQUIRED = 0x27D3, - SMSG_CONSUMABLE_TOKEN_REDEEM_RESPONSE = 0x27D4, - SMSG_CONTACT_LIST = 0x2782, - SMSG_CONTRIBUTION_LAST_UPDATE_RESPONSE = 0x2813, - SMSG_CONTROL_UPDATE = 0x2644, - SMSG_CONVERT_ITEMS_TO_CURRENCY_VALUE = 0x2871, - SMSG_COOLDOWN_CHEAT = 0x2735, - SMSG_COOLDOWN_EVENT = 0x26B7, - SMSG_CORPSE_LOCATION = 0x264C, - SMSG_CORPSE_RECLAIM_DELAY = 0x2746, - SMSG_CORPSE_TRANSPORT_QUERY = 0x270F, + SMSG_CONSOLE_WRITE = 0x2634, + SMSG_CONSUMABLE_TOKEN_BUY_AT_MARKET_PRICE_RESPONSE = 0x27D2, + SMSG_CONSUMABLE_TOKEN_BUY_CHOICE_REQUIRED = 0x27D1, + SMSG_CONSUMABLE_TOKEN_CAN_VETERAN_BUY_RESPONSE = 0x27D0, + SMSG_CONSUMABLE_TOKEN_REDEEM_CONFIRM_REQUIRED = 0x27D4, + SMSG_CONSUMABLE_TOKEN_REDEEM_RESPONSE = 0x27D5, + SMSG_CONTACT_LIST = 0x2783, + SMSG_CONTRIBUTION_LAST_UPDATE_RESPONSE = 0x2814, + SMSG_CONTROL_UPDATE = 0x2646, + SMSG_CONVERT_ITEMS_TO_CURRENCY_VALUE = 0x2872, + SMSG_COOLDOWN_CHEAT = 0x2737, + SMSG_COOLDOWN_EVENT = 0x26B9, + SMSG_CORPSE_LOCATION = 0x264E, + SMSG_CORPSE_RECLAIM_DELAY = 0x2748, + SMSG_CORPSE_TRANSPORT_QUERY = 0x2711, SMSG_COVENANT_CALLINGS_AVAILABILITY_RESPONSE = 0x2AA3, - SMSG_COVENANT_PREVIEW_OPEN_NPC = 0x27F5, - SMSG_COVENANT_RENOWN_SEND_CATCHUP_STATE = 0x2872, - SMSG_CRAFTING_HOUSE_HELLO_RESPONSE = 0x28A8, - SMSG_CRAFTING_ORDER_CANCEL_RESULT = 0x28A4, - SMSG_CRAFTING_ORDER_CLAIM_RESULT = 0x28A0, - SMSG_CRAFTING_ORDER_CRAFT_RESULT = 0x28A2, - SMSG_CRAFTING_ORDER_CREATE_RESULT = 0x289E, - SMSG_CRAFTING_ORDER_FULFILL_RESULT = 0x28A3, - SMSG_CRAFTING_ORDER_LIST_ORDERS_RESPONSE = 0x289F, - SMSG_CRAFTING_ORDER_REJECT_RESULT = 0x28A6, - SMSG_CRAFTING_ORDER_RELEASE_RESULT = 0x28A1, - SMSG_CRAFTING_ORDER_UPDATE_STATE = 0x28A9, - SMSG_CRAFT_ENCHANT_RESULT = 0x28A7, - SMSG_CREATE_CHAR = 0x26FE, - SMSG_CREATE_SHIPMENT_RESPONSE = 0x2793, - SMSG_CREATOR_VISUALS_OVERRIDE = 0x28AC, - SMSG_CRITERIA_DELETED = 0x26E4, - SMSG_CRITERIA_UPDATE = 0x26DE, - SMSG_CROSSED_INEBRIATION_THRESHOLD = 0x26BF, - SMSG_CUSTOM_LOAD_SCREEN = 0x25CA, + SMSG_COVENANT_PREVIEW_OPEN_NPC = 0x27F6, + SMSG_COVENANT_RENOWN_SEND_CATCHUP_STATE = 0x2873, + SMSG_CRAFTING_HOUSE_HELLO_RESPONSE = 0x28A9, + SMSG_CRAFTING_ORDER_CANCEL_RESULT = 0x28A5, + SMSG_CRAFTING_ORDER_CLAIM_RESULT = 0x28A1, + SMSG_CRAFTING_ORDER_CRAFT_RESULT = 0x28A3, + SMSG_CRAFTING_ORDER_CREATE_RESULT = 0x289F, + SMSG_CRAFTING_ORDER_FULFILL_RESULT = 0x28A4, + SMSG_CRAFTING_ORDER_LIST_ORDERS_RESPONSE = 0x28A0, + SMSG_CRAFTING_ORDER_REJECT_RESULT = 0x28A7, + SMSG_CRAFTING_ORDER_RELEASE_RESULT = 0x28A2, + SMSG_CRAFTING_ORDER_UPDATE_STATE = 0x28AA, + SMSG_CRAFT_ENCHANT_RESULT = 0x28A8, + SMSG_CREATE_CHAR = 0x2700, + SMSG_CREATE_SHIPMENT_RESPONSE = 0x2794, + SMSG_CREATOR_VISUALS_OVERRIDE = 0x28AD, + SMSG_CRITERIA_DELETED = 0x26E6, + SMSG_CRITERIA_UPDATE = 0x26E0, + SMSG_CROSSED_INEBRIATION_THRESHOLD = 0x26C1, + SMSG_CUSTOM_LOAD_SCREEN = 0x25CC, SMSG_DAILY_QUESTS_RESET = 0x2A80, SMSG_DAMAGE_CALC_LOG = 0x2C65, SMSG_DB_REPLY = 0x290E, - SMSG_DEATH_RELEASE_LOC = 0x26D1, - SMSG_DEBUG_MENU_MANAGER_FULL_UPDATE = 0x2654, + SMSG_DEATH_RELEASE_LOC = 0x26D3, + SMSG_DEBUG_MENU_MANAGER_FULL_UPDATE = 0x2656, SMSG_DEFENSE_MESSAGE = 0x2BB6, - SMSG_DELETE_CHAR = 0x26FF, + SMSG_DELETE_CHAR = 0x2701, SMSG_DELETE_EXPIRED_MISSIONS_RESULT = 0x2980, - SMSG_DESTROY_ARENA_UNIT = 0x273E, - SMSG_DESTRUCTIBLE_BUILDING_DAMAGE = 0x26F6, - SMSG_DIFFERENT_INSTANCE_FROM_PARTY = 0x2589, - SMSG_DISENCHANT_CREDIT = 0x25A6, + SMSG_DESTROY_ARENA_UNIT = 0x2740, + SMSG_DESTRUCTIBLE_BUILDING_DAMAGE = 0x26F8, + SMSG_DIFFERENT_INSTANCE_FROM_PARTY = 0x258A, + SMSG_DISENCHANT_CREDIT = 0x25A8, SMSG_DISMOUNT_RESULT = 0x257C, SMSG_DISPEL_FAILED = 0x2C2F, - SMSG_DISPLAY_GAME_ERROR = 0x259C, + SMSG_DISPLAY_GAME_ERROR = 0x259E, SMSG_DISPLAY_PLAYER_CHOICE = 0x2FFC, - SMSG_DISPLAY_PROMOTION = 0x2649, + SMSG_DISPLAY_PROMOTION = 0x264B, SMSG_DISPLAY_QUEST_POPUP = 0x2A9E, - SMSG_DISPLAY_SOULBIND_UPDATE_MESSAGE = 0x2876, - SMSG_DISPLAY_TOAST = 0x2621, - SMSG_DISPLAY_WORLD_TEXT = 0x27E6, + SMSG_DISPLAY_SOULBIND_UPDATE_MESSAGE = 0x2877, + SMSG_DISPLAY_TOAST = 0x2623, + SMSG_DISPLAY_WORLD_TEXT = 0x27E7, SMSG_DISPLAY_WORLD_TEXT_ON_TARGET = 0x2C64, - SMSG_DONT_AUTO_PUSH_SPELLS_TO_ACTION_BAR = 0x25DF, + SMSG_DONT_AUTO_PUSH_SPELLS_TO_ACTION_BAR = 0x25E1, SMSG_DROP_NEW_CONNECTION = 0x304C, SMSG_DUEL_ARRANGED = 0x293D, SMSG_DUEL_COMPLETE = 0x2941, @@ -1236,52 +1237,53 @@ enum OpcodeServer : uint16 SMSG_DUEL_OUT_OF_BOUNDS = 0x293E, SMSG_DUEL_REQUESTED = 0x293C, SMSG_DUEL_WINNER = 0x2942, - SMSG_DURABILITY_DAMAGE_DEATH = 0x2741, - SMSG_EMOTE = 0x27C0, - SMSG_ENABLE_BARBER_SHOP = 0x26BA, - SMSG_ENCHANTMENT_LOG = 0x2710, - SMSG_ENCOUNTER_END = 0x277A, - SMSG_ENCOUNTER_START = 0x2779, - SMSG_END_LIGHTNING_STORM = 0x26A7, - SMSG_ENSURE_WORLD_LOADED = 0x2885, + SMSG_DURABILITY_DAMAGE_DEATH = 0x2743, + SMSG_EMOTE = 0x27C1, + SMSG_ENABLE_BARBER_SHOP = 0x26BC, + SMSG_ENCHANTMENT_LOG = 0x2712, + SMSG_ENCOUNTER_END = 0x277C, + SMSG_ENCOUNTER_START = 0x277B, + SMSG_END_LIGHTNING_STORM = 0x26A9, + SMSG_ENSURE_WORLD_LOADED = 0x2886, SMSG_ENTER_ENCRYPTED_MODE = 0x3049, - SMSG_ENUM_CHARACTERS_RESULT = 0x2583, - SMSG_ENUM_VAS_PURCHASE_STATES_RESPONSE = 0x27EB, + SMSG_ENUM_CHARACTERS_RESULT = 0x2584, + SMSG_ENUM_VAS_PURCHASE_STATES_RESPONSE = 0x27EC, SMSG_ENVIRONMENTAL_DAMAGE_LOG = 0x2C1E, - SMSG_EQUIPMENT_SET_ID = 0x26B0, + SMSG_EQUIPMENT_SET_ID = 0x26B2, SMSG_EXPECTED_SPAM_RECORDS = 0x2BB1, - SMSG_EXPLORATION_EXPERIENCE = 0x275B, - SMSG_EXTERNAL_TRANSACTION_ID_GENERATED = 0x286F, - SMSG_FACTION_BONUS_INFO = 0x2721, + SMSG_EXPLORATION_EXPERIENCE = 0x275D, + SMSG_EXTERNAL_TRANSACTION_ID_GENERATED = 0x2870, + SMSG_FACTION_BONUS_INFO = 0x2723, SMSG_FAILED_PLAYER_CONDITION = 0x2FFA, - SMSG_FAILED_QUEST_TURN_IN = 0x2809, - SMSG_FEATURE_SYSTEM_STATUS = 0x25BE, - SMSG_FEATURE_SYSTEM_STATUS_GLUE_SCREEN = 0x25BF, - SMSG_FEIGN_DEATH_RESISTED = 0x2740, - SMSG_FISH_ESCAPED = 0x26CE, - SMSG_FISH_NOT_HOOKED = 0x26CD, + SMSG_FAILED_QUEST_TURN_IN = 0x280A, + SMSG_FEATURE_SYSTEM_STATUS = 0x25C0, + SMSG_FEATURE_SYSTEM_STATUS2 = 0x28C1, + SMSG_FEATURE_SYSTEM_STATUS_GLUE_SCREEN = 0x25C1, + SMSG_FEIGN_DEATH_RESISTED = 0x2742, + SMSG_FISH_ESCAPED = 0x26D0, + SMSG_FISH_NOT_HOOKED = 0x26CF, SMSG_FLIGHT_SPLINE_SYNC = 0x2E2B, SMSG_FLUSH_COMBAT_LOG_FILE = 0x2C20, - SMSG_FORCED_DEATH_UPDATE = 0x26D2, - SMSG_FORCE_ANIM = 0x274D, - SMSG_FORCE_ANIMATIONS = 0x274E, - SMSG_FORCE_OBJECT_RELINK = 0x2648, - SMSG_FORCE_RANDOM_TRANSMOG_TOAST = 0x25B1, - SMSG_FRIEND_STATUS = 0x2783, - SMSG_GAIN_MAW_POWER = 0x27DA, - SMSG_GAME_OBJECT_ACTIVATE_ANIM_KIT = 0x25C2, - SMSG_GAME_OBJECT_BASE = 0x2820, - SMSG_GAME_OBJECT_CLOSE_INTERACTION = 0x2889, - SMSG_GAME_OBJECT_CUSTOM_ANIM = 0x25C3, - SMSG_GAME_OBJECT_DESPAWN = 0x25C4, - SMSG_GAME_OBJECT_INTERACTION = 0x2888, + SMSG_FORCED_DEATH_UPDATE = 0x26D4, + SMSG_FORCE_ANIM = 0x274F, + SMSG_FORCE_ANIMATIONS = 0x2750, + SMSG_FORCE_OBJECT_RELINK = 0x264A, + SMSG_FORCE_RANDOM_TRANSMOG_TOAST = 0x25B3, + SMSG_FRIEND_STATUS = 0x2784, + SMSG_GAIN_MAW_POWER = 0x27DB, + SMSG_GAME_OBJECT_ACTIVATE_ANIM_KIT = 0x25C4, + SMSG_GAME_OBJECT_BASE = 0x2821, + SMSG_GAME_OBJECT_CLOSE_INTERACTION = 0x288A, + SMSG_GAME_OBJECT_CUSTOM_ANIM = 0x25C5, + SMSG_GAME_OBJECT_DESPAWN = 0x25C6, + SMSG_GAME_OBJECT_INTERACTION = 0x2889, SMSG_GAME_OBJECT_PLAY_SPELL_VISUAL = 0x2C4D, SMSG_GAME_OBJECT_PLAY_SPELL_VISUAL_KIT = 0x2C4C, - SMSG_GAME_OBJECT_RESET_STATE = 0x271B, - SMSG_GAME_OBJECT_SET_STATE_LOCAL = 0x27FC, - SMSG_GAME_SPEED_SET = 0x2680, - SMSG_GAME_TIME_SET = 0x2709, - SMSG_GAME_TIME_UPDATE = 0x2708, + SMSG_GAME_OBJECT_RESET_STATE = 0x271D, + SMSG_GAME_OBJECT_SET_STATE_LOCAL = 0x27FD, + SMSG_GAME_SPEED_SET = 0x2682, + SMSG_GAME_TIME_SET = 0x270B, + SMSG_GAME_TIME_UPDATE = 0x270A, SMSG_GARRISON_ACTIVATE_MISSION_BONUS_ABILITY = 0x2982, SMSG_GARRISON_ADD_EVENT = 0x29A6, SMSG_GARRISON_ADD_FOLLOWER_RESULT = 0x2974, @@ -1352,143 +1354,143 @@ enum OpcodeServer : uint16 SMSG_GARRISON_UPDATE_MISSION_CHEAT_RESULT = 0x29AE, SMSG_GARRISON_UPGRADE_RESULT = 0x296B, SMSG_GARRISON_USE_RECALL_PORTAL_RESULT = 0x297D, - SMSG_GENERATE_RANDOM_CHARACTER_NAME_RESULT = 0x2585, - SMSG_GENERATE_SSO_TOKEN_RESPONSE = 0x2814, - SMSG_GET_ACCOUNT_CHARACTER_LIST_RESULT = 0x275D, + SMSG_GENERATE_RANDOM_CHARACTER_NAME_RESULT = 0x2586, + SMSG_GENERATE_SSO_TOKEN_RESPONSE = 0x2815, + SMSG_GET_ACCOUNT_CHARACTER_LIST_RESULT = 0x275F, SMSG_GET_GARRISON_INFO_RESULT = 0x295E, - SMSG_GET_LANDING_PAGE_SHIPMENTS_RESPONSE = 0x2796, - SMSG_GET_REALM_HIDDEN_RESULT = 0x28BA, - SMSG_GET_REMAINING_GAME_TIME_RESPONSE = 0x27D2, - SMSG_GET_SELECTED_TROPHY_ID_RESPONSE = 0x27BE, - SMSG_GET_SHIPMENTS_OF_TYPE_RESPONSE = 0x2795, - SMSG_GET_SHIPMENT_INFO_RESPONSE = 0x2791, - SMSG_GET_TROPHY_LIST_RESPONSE = 0x27BD, - SMSG_GET_VAS_ACCOUNT_CHARACTER_LIST_RESULT = 0x27E7, - SMSG_GET_VAS_TRANSFER_TARGET_REALM_LIST_RESULT = 0x27E8, + SMSG_GET_LANDING_PAGE_SHIPMENTS_RESPONSE = 0x2797, + SMSG_GET_REALM_HIDDEN_RESULT = 0x28BB, + SMSG_GET_REMAINING_GAME_TIME_RESPONSE = 0x27D3, + SMSG_GET_SELECTED_TROPHY_ID_RESPONSE = 0x27BF, + SMSG_GET_SHIPMENTS_OF_TYPE_RESPONSE = 0x2796, + SMSG_GET_SHIPMENT_INFO_RESPONSE = 0x2792, + SMSG_GET_TROPHY_LIST_RESPONSE = 0x27BE, + SMSG_GET_VAS_ACCOUNT_CHARACTER_LIST_RESULT = 0x27E8, + SMSG_GET_VAS_TRANSFER_TARGET_REALM_LIST_RESULT = 0x27E9, SMSG_GM_PLAYER_INFO = 0x3005, SMSG_GM_REQUEST_PLAYER_INFO = 0x2FFB, - SMSG_GM_TICKET_CASE_STATUS = 0x26A2, - SMSG_GM_TICKET_SYSTEM_STATUS = 0x26A1, - SMSG_GOD_MODE = 0x26F9, + SMSG_GM_TICKET_CASE_STATUS = 0x26A4, + SMSG_GM_TICKET_SYSTEM_STATUS = 0x26A3, + SMSG_GOD_MODE = 0x26FB, SMSG_GOSSIP_COMPLETE = 0x2A97, SMSG_GOSSIP_MESSAGE = 0x2A98, SMSG_GOSSIP_OPTION_NPC_INTERACTION = 0x2AA7, - SMSG_GOSSIP_POI = 0x278E, + SMSG_GOSSIP_POI = 0x278F, SMSG_GOSSIP_QUEST_UPDATE = 0x2A99, SMSG_GOSSIP_REFRESH_OPTIONS = 0x2AA6, - SMSG_GROUP_ACTION_THROTTLED = 0x258D, - SMSG_GROUP_AUTO_KICK = 0x278B, - SMSG_GROUP_DECLINE = 0x2787, - SMSG_GROUP_DESTROYED = 0x278A, - SMSG_GROUP_NEW_LEADER = 0x262A, - SMSG_GROUP_REQUEST_DECLINE = 0x2788, - SMSG_GROUP_UNINVITE = 0x2789, - SMSG_GUILD_ACHIEVEMENT_DELETED = 0x29C5, - SMSG_GUILD_ACHIEVEMENT_EARNED = 0x29C4, - SMSG_GUILD_ACHIEVEMENT_MEMBERS = 0x29C7, - SMSG_GUILD_BANK_LOG_QUERY_RESULTS = 0x29DF, - SMSG_GUILD_BANK_QUERY_RESULTS = 0x29DE, - SMSG_GUILD_BANK_REMAINING_WITHDRAW_MONEY = 0x29E0, - SMSG_GUILD_BANK_TEXT_QUERY_RESULT = 0x29E3, - SMSG_GUILD_CHALLENGE_COMPLETED = 0x29D3, - SMSG_GUILD_CHALLENGE_UPDATE = 0x29D2, - SMSG_GUILD_CHANGE_NAME_RESULT = 0x29DD, + SMSG_GROUP_ACTION_THROTTLED = 0x258E, + SMSG_GROUP_AUTO_KICK = 0x278C, + SMSG_GROUP_DECLINE = 0x2788, + SMSG_GROUP_DESTROYED = 0x278B, + SMSG_GROUP_NEW_LEADER = 0x262C, + SMSG_GROUP_REQUEST_DECLINE = 0x2789, + SMSG_GROUP_UNINVITE = 0x278A, + SMSG_GUILD_ACHIEVEMENT_DELETED = 0x29C6, + SMSG_GUILD_ACHIEVEMENT_EARNED = 0x29C5, + SMSG_GUILD_ACHIEVEMENT_MEMBERS = 0x29C8, + SMSG_GUILD_BANK_LOG_QUERY_RESULTS = 0x29E0, + SMSG_GUILD_BANK_QUERY_RESULTS = 0x29DF, + SMSG_GUILD_BANK_REMAINING_WITHDRAW_MONEY = 0x29E1, + SMSG_GUILD_BANK_TEXT_QUERY_RESULT = 0x29E4, + SMSG_GUILD_CHALLENGE_COMPLETED = 0x29D4, + SMSG_GUILD_CHALLENGE_UPDATE = 0x29D3, + SMSG_GUILD_CHANGE_NAME_RESULT = 0x29DE, SMSG_GUILD_COMMAND_RESULT = 0x29BA, - SMSG_GUILD_CRITERIA_DELETED = 0x29C6, - SMSG_GUILD_CRITERIA_UPDATE = 0x29C3, - SMSG_GUILD_EVENT_BANK_CONTENTS_CHANGED = 0x29F8, - SMSG_GUILD_EVENT_BANK_MONEY_CHANGED = 0x29F7, - SMSG_GUILD_EVENT_DISBANDED = 0x29ED, - SMSG_GUILD_EVENT_LOG_QUERY_RESULTS = 0x29E2, - SMSG_GUILD_EVENT_MOTD = 0x29EE, - SMSG_GUILD_EVENT_NEW_LEADER = 0x29EC, - SMSG_GUILD_EVENT_PLAYER_JOINED = 0x29EA, - SMSG_GUILD_EVENT_PLAYER_LEFT = 0x29EB, - SMSG_GUILD_EVENT_PRESENCE_CHANGE = 0x29EF, - SMSG_GUILD_EVENT_RANKS_UPDATED = 0x29F1, - SMSG_GUILD_EVENT_RANK_CHANGED = 0x29F2, - SMSG_GUILD_EVENT_STATUS_CHANGE = 0x29F0, - SMSG_GUILD_EVENT_TAB_ADDED = 0x29F3, - SMSG_GUILD_EVENT_TAB_DELETED = 0x29F4, - SMSG_GUILD_EVENT_TAB_MODIFIED = 0x29F5, - SMSG_GUILD_EVENT_TAB_TEXT_CHANGED = 0x29F6, - SMSG_GUILD_FLAGGED_FOR_RENAME = 0x29DC, - SMSG_GUILD_INVITE = 0x29CA, - SMSG_GUILD_INVITE_DECLINED = 0x29E8, - SMSG_GUILD_INVITE_EXPIRED = 0x29E9, - SMSG_GUILD_ITEM_LOOTED_NOTIFY = 0x29D4, - SMSG_GUILD_KNOWN_RECIPES = 0x29BE, - SMSG_GUILD_MEMBERS_WITH_RECIPE = 0x29BF, - SMSG_GUILD_MEMBER_DAILY_RESET = 0x29E4, - SMSG_GUILD_MEMBER_RECIPES = 0x29BD, - SMSG_GUILD_MEMBER_UPDATE_NOTE = 0x29C9, - SMSG_GUILD_MOVED = 0x29DA, - SMSG_GUILD_MOVE_STARTING = 0x29D9, - SMSG_GUILD_NAME_CHANGED = 0x29DB, - SMSG_GUILD_NEWS = 0x29C1, - SMSG_GUILD_NEWS_DELETED = 0x29C2, - SMSG_GUILD_PARTY_STATE = 0x29CB, - SMSG_GUILD_PERMISSIONS_QUERY_RESULTS = 0x29E1, - SMSG_GUILD_RANKS = 0x29C8, - SMSG_GUILD_REPUTATION_REACTION_CHANGED = 0x29CC, - SMSG_GUILD_RESET = 0x29D8, - SMSG_GUILD_REWARD_LIST = 0x29C0, + SMSG_GUILD_CRITERIA_DELETED = 0x29C7, + SMSG_GUILD_CRITERIA_UPDATE = 0x29C4, + SMSG_GUILD_EVENT_BANK_CONTENTS_CHANGED = 0x29F9, + SMSG_GUILD_EVENT_BANK_MONEY_CHANGED = 0x29F8, + SMSG_GUILD_EVENT_DISBANDED = 0x29EE, + SMSG_GUILD_EVENT_LOG_QUERY_RESULTS = 0x29E3, + SMSG_GUILD_EVENT_MOTD = 0x29EF, + SMSG_GUILD_EVENT_NEW_LEADER = 0x29ED, + SMSG_GUILD_EVENT_PLAYER_JOINED = 0x29EB, + SMSG_GUILD_EVENT_PLAYER_LEFT = 0x29EC, + SMSG_GUILD_EVENT_PRESENCE_CHANGE = 0x29F0, + SMSG_GUILD_EVENT_RANKS_UPDATED = 0x29F2, + SMSG_GUILD_EVENT_RANK_CHANGED = 0x29F3, + SMSG_GUILD_EVENT_STATUS_CHANGE = 0x29F1, + SMSG_GUILD_EVENT_TAB_ADDED = 0x29F4, + SMSG_GUILD_EVENT_TAB_DELETED = 0x29F5, + SMSG_GUILD_EVENT_TAB_MODIFIED = 0x29F6, + SMSG_GUILD_EVENT_TAB_TEXT_CHANGED = 0x29F7, + SMSG_GUILD_FLAGGED_FOR_RENAME = 0x29DD, + SMSG_GUILD_INVITE = 0x29CB, + SMSG_GUILD_INVITE_DECLINED = 0x29E9, + SMSG_GUILD_INVITE_EXPIRED = 0x29EA, + SMSG_GUILD_ITEM_LOOTED_NOTIFY = 0x29D5, + SMSG_GUILD_KNOWN_RECIPES = 0x29BF, + SMSG_GUILD_MEMBERS_WITH_RECIPE = 0x29C0, + SMSG_GUILD_MEMBER_DAILY_RESET = 0x29E5, + SMSG_GUILD_MEMBER_RECIPES = 0x29BE, + SMSG_GUILD_MEMBER_UPDATE_NOTE = 0x29CA, + SMSG_GUILD_MOVED = 0x29DB, + SMSG_GUILD_MOVE_STARTING = 0x29DA, + SMSG_GUILD_NAME_CHANGED = 0x29DC, + SMSG_GUILD_NEWS = 0x29C2, + SMSG_GUILD_NEWS_DELETED = 0x29C3, + SMSG_GUILD_PARTY_STATE = 0x29CC, + SMSG_GUILD_PERMISSIONS_QUERY_RESULTS = 0x29E2, + SMSG_GUILD_RANKS = 0x29C9, + SMSG_GUILD_REPUTATION_REACTION_CHANGED = 0x29CD, + SMSG_GUILD_RESET = 0x29D9, + SMSG_GUILD_REWARD_LIST = 0x29C1, SMSG_GUILD_ROSTER = 0x29BB, SMSG_GUILD_ROSTER_UPDATE = 0x29BC, SMSG_GUILD_SEND_RANK_CHANGE = 0x29B9, - SMSG_HEALTH_UPDATE = 0x26CF, - SMSG_HIGHEST_THREAT_UPDATE = 0x26D7, + SMSG_HEALTH_UPDATE = 0x26D1, + SMSG_HIGHEST_THREAT_UPDATE = 0x26D9, SMSG_HOTFIX_CONNECT = 0x2911, SMSG_HOTFIX_MESSAGE = 0x2910, - SMSG_INITIALIZE_FACTIONS = 0x2720, + SMSG_INITIALIZE_FACTIONS = 0x2722, SMSG_INITIAL_SETUP = 0x2580, - SMSG_INIT_WORLD_STATES = 0x2742, - SMSG_INSPECT_RESULT = 0x262E, - SMSG_INSTANCE_ENCOUNTER_CHANGE_PRIORITY = 0x27A9, - SMSG_INSTANCE_ENCOUNTER_DISENGAGE_UNIT = 0x27A8, - SMSG_INSTANCE_ENCOUNTER_END = 0x27B1, - SMSG_INSTANCE_ENCOUNTER_ENGAGE_UNIT = 0x27A7, - SMSG_INSTANCE_ENCOUNTER_GAIN_COMBAT_RESURRECTION_CHARGE = 0x27B3, - SMSG_INSTANCE_ENCOUNTER_IN_COMBAT_RESURRECTION = 0x27B2, - SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_COMPLETE = 0x27AC, - SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_START = 0x27AB, - SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_UPDATE = 0x27B0, - SMSG_INSTANCE_ENCOUNTER_PHASE_SHIFT_CHANGED = 0x27B4, - SMSG_INSTANCE_ENCOUNTER_START = 0x27AD, - SMSG_INSTANCE_ENCOUNTER_TIMER_START = 0x27AA, - SMSG_INSTANCE_ENCOUNTER_UPDATE_ALLOW_RELEASE_IN_PROGRESS = 0x27AF, - SMSG_INSTANCE_ENCOUNTER_UPDATE_SUPPRESS_RELEASE = 0x27AE, - SMSG_INSTANCE_GROUP_SIZE_CHANGED = 0x26F7, - SMSG_INSTANCE_INFO = 0x2631, - SMSG_INSTANCE_RESET = 0x2685, - SMSG_INSTANCE_RESET_FAILED = 0x2686, - SMSG_INSTANCE_SAVE_CREATED = 0x2778, + SMSG_INIT_WORLD_STATES = 0x2744, + SMSG_INSPECT_RESULT = 0x2630, + SMSG_INSTANCE_ENCOUNTER_CHANGE_PRIORITY = 0x27AA, + SMSG_INSTANCE_ENCOUNTER_DISENGAGE_UNIT = 0x27A9, + SMSG_INSTANCE_ENCOUNTER_END = 0x27B2, + SMSG_INSTANCE_ENCOUNTER_ENGAGE_UNIT = 0x27A8, + SMSG_INSTANCE_ENCOUNTER_GAIN_COMBAT_RESURRECTION_CHARGE = 0x27B4, + SMSG_INSTANCE_ENCOUNTER_IN_COMBAT_RESURRECTION = 0x27B3, + SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_COMPLETE = 0x27AD, + SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_START = 0x27AC, + SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_UPDATE = 0x27B1, + SMSG_INSTANCE_ENCOUNTER_PHASE_SHIFT_CHANGED = 0x27B5, + SMSG_INSTANCE_ENCOUNTER_START = 0x27AE, + SMSG_INSTANCE_ENCOUNTER_TIMER_START = 0x27AB, + SMSG_INSTANCE_ENCOUNTER_UPDATE_ALLOW_RELEASE_IN_PROGRESS = 0x27B0, + SMSG_INSTANCE_ENCOUNTER_UPDATE_SUPPRESS_RELEASE = 0x27AF, + SMSG_INSTANCE_GROUP_SIZE_CHANGED = 0x26F9, + SMSG_INSTANCE_INFO = 0x2633, + SMSG_INSTANCE_RESET = 0x2687, + SMSG_INSTANCE_RESET_FAILED = 0x2688, + SMSG_INSTANCE_SAVE_CREATED = 0x277A, SMSG_INTERRUPT_POWER_REGEN = 0x2C5B, SMSG_INVALIDATE_PAGE_TEXT = 0x2918, SMSG_INVALIDATE_PLAYER = 0x2FFF, - SMSG_INVALID_PROMOTION_CODE = 0x274F, + SMSG_INVALID_PROMOTION_CODE = 0x2751, SMSG_INVENTORY_CHANGE_FAILURE = 0x2DA5, - SMSG_INVENTORY_FIXUP_COMPLETE = 0x280B, - SMSG_INVENTORY_FULL_OVERFLOW = 0x281C, - SMSG_ISLAND_AZERITE_GAIN = 0x2758, - SMSG_ISLAND_COMPLETE = 0x2759, + SMSG_INVENTORY_FIXUP_COMPLETE = 0x280C, + SMSG_INVENTORY_FULL_OVERFLOW = 0x281D, + SMSG_ISLAND_AZERITE_GAIN = 0x275A, + SMSG_ISLAND_COMPLETE = 0x275B, SMSG_IS_QUEST_COMPLETE_RESPONSE = 0x2A84, - SMSG_ITEM_CHANGED = 0x26E8, - SMSG_ITEM_COOLDOWN = 0x27BF, - SMSG_ITEM_ENCHANT_TIME_UPDATE = 0x2751, - SMSG_ITEM_EXPIRE_PURCHASE_REFUND = 0x259B, - SMSG_ITEM_INTERACTION_COMPLETE = 0x2867, - SMSG_ITEM_PURCHASE_REFUND_RESULT = 0x2599, - SMSG_ITEM_PUSH_RESULT = 0x2620, - SMSG_ITEM_TIME_UPDATE = 0x2750, - SMSG_KICK_REASON = 0x2688, - SMSG_LATENCY_REPORT_PING = 0x2879, + SMSG_ITEM_CHANGED = 0x26EA, + SMSG_ITEM_COOLDOWN = 0x27C0, + SMSG_ITEM_ENCHANT_TIME_UPDATE = 0x2753, + SMSG_ITEM_EXPIRE_PURCHASE_REFUND = 0x259D, + SMSG_ITEM_INTERACTION_COMPLETE = 0x2868, + SMSG_ITEM_PURCHASE_REFUND_RESULT = 0x259B, + SMSG_ITEM_PUSH_RESULT = 0x2622, + SMSG_ITEM_TIME_UPDATE = 0x2752, + SMSG_KICK_REASON = 0x268A, + SMSG_LATENCY_REPORT_PING = 0x287A, SMSG_LEARNED_SPELLS = 0x2C4F, - SMSG_LEARN_PVP_TALENT_FAILED = 0x25D3, - SMSG_LEARN_TALENT_FAILED = 0x25D2, - SMSG_LEGACY_LOOT_RULES = 0x2821, - SMSG_LEVEL_LINKING_RESULT = 0x284D, - SMSG_LEVEL_UP_INFO = 0x26E6, + SMSG_LEARN_PVP_TALENT_FAILED = 0x25D5, + SMSG_LEARN_TALENT_FAILED = 0x25D4, + SMSG_LEGACY_LOOT_RULES = 0x2822, + SMSG_LEVEL_LINKING_RESULT = 0x284E, + SMSG_LEVEL_UP_INFO = 0x26E8, SMSG_LFG_BOOT_PLAYER = 0x2A35, SMSG_LFG_DISABLED = 0x2A33, SMSG_LFG_EXPAND_SEARCH_PROMPT = 0x2A3B, @@ -1516,48 +1518,48 @@ enum OpcodeServer : uint16 SMSG_LFG_SLOT_INVALID = 0x2A30, SMSG_LFG_TELEPORT_DENIED = 0x2A32, SMSG_LFG_UPDATE_STATUS = 0x2A24, - SMSG_LIVE_REGION_ACCOUNT_RESTORE_RESULT = 0x276A, - SMSG_LIVE_REGION_CHARACTER_COPY_RESULT = 0x2769, - SMSG_LIVE_REGION_GET_ACCOUNT_CHARACTER_LIST_RESULT = 0x275E, - SMSG_LIVE_REGION_KEY_BINDINGS_COPY_RESULT = 0x276B, - SMSG_LOAD_CUF_PROFILES = 0x25BB, - SMSG_LOAD_EQUIPMENT_SET = 0x270B, - SMSG_LOBBY_MATCHMAKER_LOBBY_ACQUIRED_SERVER = 0x288C, - SMSG_LOBBY_MATCHMAKER_PARTY_INFO = 0x288D, - SMSG_LOBBY_MATCHMAKER_PARTY_INVITE_REJECTED = 0x288E, - SMSG_LOBBY_MATCHMAKER_RECEIVE_INVITE = 0x288F, - SMSG_LOGIN_SET_TIME_SPEED = 0x270A, - SMSG_LOGIN_VERIFY_WORLD = 0x2596, - SMSG_LOGOUT_CANCEL_ACK = 0x2684, - SMSG_LOGOUT_COMPLETE = 0x2683, - SMSG_LOGOUT_RESPONSE = 0x2682, - SMSG_LOG_XP_GAIN = 0x26E2, - SMSG_LOOT_ALL_PASSED = 0x261E, - SMSG_LOOT_LIST = 0x273D, - SMSG_LOOT_MONEY_NOTIFY = 0x2619, - SMSG_LOOT_RELEASE = 0x2618, - SMSG_LOOT_RELEASE_ALL = 0x2617, - SMSG_LOOT_REMOVED = 0x2613, - SMSG_LOOT_RESPONSE = 0x2612, - SMSG_LOOT_ROLL = 0x261B, - SMSG_LOOT_ROLLS_COMPLETE = 0x261D, - SMSG_LOOT_ROLL_WON = 0x261F, - SMSG_LOSS_OF_CONTROL_AURA_UPDATE = 0x266F, - SMSG_MAIL_COMMAND_RESULT = 0x2638, - SMSG_MAIL_LIST_RESULT = 0x2752, - SMSG_MAIL_QUERY_NEXT_TIME_RESULT = 0x2753, + SMSG_LIVE_REGION_ACCOUNT_RESTORE_RESULT = 0x276C, + SMSG_LIVE_REGION_CHARACTER_COPY_RESULT = 0x276B, + SMSG_LIVE_REGION_GET_ACCOUNT_CHARACTER_LIST_RESULT = 0x2760, + SMSG_LIVE_REGION_KEY_BINDINGS_COPY_RESULT = 0x276D, + SMSG_LOAD_CUF_PROFILES = 0x25BD, + SMSG_LOAD_EQUIPMENT_SET = 0x270D, + SMSG_LOBBY_MATCHMAKER_LOBBY_ACQUIRED_SERVER = 0x288D, + SMSG_LOBBY_MATCHMAKER_PARTY_INFO = 0x288E, + SMSG_LOBBY_MATCHMAKER_PARTY_INVITE_REJECTED = 0x288F, + SMSG_LOBBY_MATCHMAKER_RECEIVE_INVITE = 0x2890, + SMSG_LOGIN_SET_TIME_SPEED = 0x270C, + SMSG_LOGIN_VERIFY_WORLD = 0x2598, + SMSG_LOGOUT_CANCEL_ACK = 0x2686, + SMSG_LOGOUT_COMPLETE = 0x2685, + SMSG_LOGOUT_RESPONSE = 0x2684, + SMSG_LOG_XP_GAIN = 0x26E4, + SMSG_LOOT_ALL_PASSED = 0x2620, + SMSG_LOOT_LIST = 0x273F, + SMSG_LOOT_MONEY_NOTIFY = 0x261B, + SMSG_LOOT_RELEASE = 0x261A, + SMSG_LOOT_RELEASE_ALL = 0x2619, + SMSG_LOOT_REMOVED = 0x2615, + SMSG_LOOT_RESPONSE = 0x2614, + SMSG_LOOT_ROLL = 0x261D, + SMSG_LOOT_ROLLS_COMPLETE = 0x261F, + SMSG_LOOT_ROLL_WON = 0x2621, + SMSG_LOSS_OF_CONTROL_AURA_UPDATE = 0x2671, + SMSG_MAIL_COMMAND_RESULT = 0x263A, + SMSG_MAIL_LIST_RESULT = 0x2754, + SMSG_MAIL_QUERY_NEXT_TIME_RESULT = 0x2755, SMSG_MAP_OBJECTIVES_INIT = 0x294C, - SMSG_MAP_OBJ_EVENTS = 0x25C5, - SMSG_MASTER_LOOT_CANDIDATE_LIST = 0x261C, - SMSG_MEETING_STONE_FAILED = 0x2890, + SMSG_MAP_OBJ_EVENTS = 0x25C7, + SMSG_MASTER_LOOT_CANDIDATE_LIST = 0x261E, + SMSG_MEETING_STONE_FAILED = 0x2891, SMSG_MESSAGE_BOX = 0x2576, - SMSG_MINIMAP_PING = 0x26CC, + SMSG_MINIMAP_PING = 0x26CE, SMSG_MIRROR_IMAGE_COMPONENTED_DATA = 0x2C14, SMSG_MIRROR_IMAGE_CREATURE_DATA = 0x2C13, - SMSG_MISSILE_CANCEL = 0x25C6, - SMSG_MODIFY_COOLDOWN = 0x2760, + SMSG_MISSILE_CANCEL = 0x25C8, + SMSG_MODIFY_COOLDOWN = 0x2762, SMSG_MOUNT_RESULT = 0x257B, - SMSG_MOVEMENT_ENFORCEMENT_ALERT = 0x283D, + SMSG_MOVEMENT_ENFORCEMENT_ALERT = 0x283E, SMSG_MOVE_ADD_IMPULSE = 0x2E32, SMSG_MOVE_APPLY_INERTIA = 0x2E2E, SMSG_MOVE_APPLY_MOVEMENT_FORCE = 0x2E15, @@ -1665,82 +1667,82 @@ enum OpcodeServer : uint16 SMSG_MOVE_UPDATE_TELEPORT = 0x2DE1, SMSG_MOVE_UPDATE_TURN_RATE = 0x2DDD, SMSG_MOVE_UPDATE_WALK_SPEED = 0x2DD8, - SMSG_MULTI_FLOOR_LEAVE_FLOOR = 0x27D7, - SMSG_MULTI_FLOOR_NEW_FLOOR = 0x27D6, - SMSG_MYTHIC_PLUS_ALL_MAP_STATS = 0x2609, - SMSG_MYTHIC_PLUS_CURRENT_AFFIXES = 0x260B, - SMSG_MYTHIC_PLUS_NEW_WEEK_RECORD = 0x260F, - SMSG_MYTHIC_PLUS_SEASON_DATA = 0x260A, - SMSG_NEUTRAL_PLAYER_FACTION_SELECT_RESULT = 0x25DA, - SMSG_NEW_DATA_BUILD = 0x28B9, - SMSG_NEW_TAXI_PATH = 0x267D, - SMSG_NEW_WORLD = 0x2593, + SMSG_MULTI_FLOOR_LEAVE_FLOOR = 0x27D8, + SMSG_MULTI_FLOOR_NEW_FLOOR = 0x27D7, + SMSG_MYTHIC_PLUS_ALL_MAP_STATS = 0x260B, + SMSG_MYTHIC_PLUS_CURRENT_AFFIXES = 0x260D, + SMSG_MYTHIC_PLUS_NEW_WEEK_RECORD = 0x2611, + SMSG_MYTHIC_PLUS_SEASON_DATA = 0x260C, + SMSG_NEUTRAL_PLAYER_FACTION_SELECT_RESULT = 0x25DC, + SMSG_NEW_DATA_BUILD = 0x28BA, + SMSG_NEW_TAXI_PATH = 0x267F, + SMSG_NEW_WORLD = 0x2595, SMSG_NOTIFY_DEST_LOC_SPELL_CAST = 0x2C45, - SMSG_NOTIFY_MISSILE_TRAJECTORY_COLLISION = 0x26A9, - SMSG_NOTIFY_MONEY = 0x2598, - SMSG_NOTIFY_RECEIVED_MAIL = 0x2639, - SMSG_NPC_INTERACTION_OPEN_RESULT = 0x2887, - SMSG_OFFER_PETITION_ERROR = 0x26B4, - SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA = 0x26E3, + SMSG_NOTIFY_MISSILE_TRAJECTORY_COLLISION = 0x26AB, + SMSG_NOTIFY_MONEY = 0x259A, + SMSG_NOTIFY_RECEIVED_MAIL = 0x263B, + SMSG_NPC_INTERACTION_OPEN_RESULT = 0x2888, + SMSG_OFFER_PETITION_ERROR = 0x26B6, + SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA = 0x26E5, SMSG_ON_MONSTER_MOVE = 0x2DD4, - SMSG_OPEN_ARTIFACT_FORGE = 0x279A, + SMSG_OPEN_ARTIFACT_FORGE = 0x279B, SMSG_OPEN_CONTAINER = 0x2DA6, SMSG_OPEN_LFG_DUNGEON_FINDER = 0x2A31, - SMSG_OPEN_SHIPMENT_NPC_RESULT = 0x2792, - SMSG_OVERRIDE_LIGHT = 0x26B9, - SMSG_PAGE_TEXT = 0x2716, - SMSG_PARTY_COMMAND_RESULT = 0x278C, - SMSG_PARTY_INVITE = 0x25BC, - SMSG_PARTY_KILL_LOG = 0x2756, - SMSG_PARTY_MEMBER_FULL_STATE = 0x2755, - SMSG_PARTY_MEMBER_PARTIAL_STATE = 0x2754, - SMSG_PARTY_NOTIFY_LFG_LEADER_CHANGE = 0x286D, - SMSG_PARTY_UPDATE = 0x25F2, - SMSG_PAST_TIME_EVENTS = 0x25C1, - SMSG_PAUSE_MIRROR_TIMER = 0x270D, - SMSG_PENDING_RAID_LOCK = 0x26F5, - SMSG_PERKS_PROGRAM_ACTIVITY_COMPLETE = 0x2883, - SMSG_PERKS_PROGRAM_ACTIVITY_UPDATE = 0x287F, - SMSG_PERKS_PROGRAM_DISABLED = 0x2884, - SMSG_PERKS_PROGRAM_RESULT = 0x2880, - SMSG_PERKS_PROGRAM_VENDOR_UPDATE = 0x287E, - SMSG_PETITION_ALREADY_SIGNED = 0x259E, - SMSG_PETITION_RENAME_GUILD_RESPONSE = 0x29FA, - SMSG_PETITION_SHOW_LIST = 0x26BC, - SMSG_PETITION_SHOW_SIGNATURES = 0x26BD, - SMSG_PETITION_SIGN_RESULTS = 0x2748, - SMSG_PET_ACTION_FEEDBACK = 0x2745, - SMSG_PET_ACTION_SOUND = 0x269F, - SMSG_PET_BATTLE_CHAT_RESTRICTED = 0x2600, - SMSG_PET_BATTLE_DEBUG_QUEUE_DUMP_RESPONSE = 0x2674, - SMSG_PET_BATTLE_FINALIZE_LOCATION = 0x25F9, - SMSG_PET_BATTLE_FINAL_ROUND = 0x25FE, - SMSG_PET_BATTLE_FINISHED = 0x25FF, - SMSG_PET_BATTLE_FIRST_ROUND = 0x25FB, - SMSG_PET_BATTLE_INITIAL_UPDATE = 0x25FA, - SMSG_PET_BATTLE_MAX_GAME_LENGTH_WARNING = 0x2601, - SMSG_PET_BATTLE_PVP_CHALLENGE = 0x25F8, - SMSG_PET_BATTLE_QUEUE_PROPOSE_MATCH = 0x2636, - SMSG_PET_BATTLE_QUEUE_STATUS = 0x2637, - SMSG_PET_BATTLE_REPLACEMENTS_MADE = 0x25FD, - SMSG_PET_BATTLE_REQUEST_FAILED = 0x25F7, - SMSG_PET_BATTLE_ROUND_RESULT = 0x25FC, - SMSG_PET_BATTLE_SLOT_UPDATES = 0x25EA, + SMSG_OPEN_SHIPMENT_NPC_RESULT = 0x2793, + SMSG_OVERRIDE_LIGHT = 0x26BB, + SMSG_PAGE_TEXT = 0x2718, + SMSG_PARTY_COMMAND_RESULT = 0x278D, + SMSG_PARTY_INVITE = 0x25BE, + SMSG_PARTY_KILL_LOG = 0x2758, + SMSG_PARTY_MEMBER_FULL_STATE = 0x2757, + SMSG_PARTY_MEMBER_PARTIAL_STATE = 0x2756, + SMSG_PARTY_NOTIFY_LFG_LEADER_CHANGE = 0x286E, + SMSG_PARTY_UPDATE = 0x25F4, + SMSG_PAST_TIME_EVENTS = 0x25C3, + SMSG_PAUSE_MIRROR_TIMER = 0x270F, + SMSG_PENDING_RAID_LOCK = 0x26F7, + SMSG_PERKS_PROGRAM_ACTIVITY_COMPLETE = 0x2884, + SMSG_PERKS_PROGRAM_ACTIVITY_UPDATE = 0x2880, + SMSG_PERKS_PROGRAM_DISABLED = 0x2885, + SMSG_PERKS_PROGRAM_RESULT = 0x2881, + SMSG_PERKS_PROGRAM_VENDOR_UPDATE = 0x287F, + SMSG_PETITION_ALREADY_SIGNED = 0x25A0, + SMSG_PETITION_RENAME_GUILD_RESPONSE = 0x29FB, + SMSG_PETITION_SHOW_LIST = 0x26BE, + SMSG_PETITION_SHOW_SIGNATURES = 0x26BF, + SMSG_PETITION_SIGN_RESULTS = 0x274A, + SMSG_PET_ACTION_FEEDBACK = 0x2747, + SMSG_PET_ACTION_SOUND = 0x26A1, + SMSG_PET_BATTLE_CHAT_RESTRICTED = 0x2602, + SMSG_PET_BATTLE_DEBUG_QUEUE_DUMP_RESPONSE = 0x2676, + SMSG_PET_BATTLE_FINALIZE_LOCATION = 0x25FB, + SMSG_PET_BATTLE_FINAL_ROUND = 0x2600, + SMSG_PET_BATTLE_FINISHED = 0x2601, + SMSG_PET_BATTLE_FIRST_ROUND = 0x25FD, + SMSG_PET_BATTLE_INITIAL_UPDATE = 0x25FC, + SMSG_PET_BATTLE_MAX_GAME_LENGTH_WARNING = 0x2603, + SMSG_PET_BATTLE_PVP_CHALLENGE = 0x25FA, + SMSG_PET_BATTLE_QUEUE_PROPOSE_MATCH = 0x2638, + SMSG_PET_BATTLE_QUEUE_STATUS = 0x2639, + SMSG_PET_BATTLE_REPLACEMENTS_MADE = 0x25FF, + SMSG_PET_BATTLE_REQUEST_FAILED = 0x25F9, + SMSG_PET_BATTLE_ROUND_RESULT = 0x25FE, + SMSG_PET_BATTLE_SLOT_UPDATES = 0x25EC, SMSG_PET_CAST_FAILED = 0x2C5A, SMSG_PET_CLEAR_SPELLS = 0x2C23, - SMSG_PET_DISMISS_SOUND = 0x26A0, - SMSG_PET_GOD_MODE = 0x267A, - SMSG_PET_GUIDS = 0x2701, + SMSG_PET_DISMISS_SOUND = 0x26A2, + SMSG_PET_GOD_MODE = 0x267C, + SMSG_PET_GUIDS = 0x2703, SMSG_PET_LEARNED_SPELLS = 0x2C51, - SMSG_PET_MODE = 0x2588, - SMSG_PET_NAME_INVALID = 0x26C1, - SMSG_PET_NEWLY_TAMED = 0x2587, + SMSG_PET_MODE = 0x2589, + SMSG_PET_NAME_INVALID = 0x26C3, + SMSG_PET_NEWLY_TAMED = 0x2588, SMSG_PET_SPELLS_MESSAGE = 0x2C24, - SMSG_PET_STABLE_RESULT = 0x2592, - SMSG_PET_TAME_FAILURE = 0x26B1, + SMSG_PET_STABLE_RESULT = 0x2594, + SMSG_PET_TAME_FAILURE = 0x26B3, SMSG_PET_UNLEARNED_SPELLS = 0x2C52, SMSG_PHASE_SHIFT_CHANGE = 0x2578, - SMSG_PLAYED_TIME = 0x26D3, + SMSG_PLAYED_TIME = 0x26D5, SMSG_PLAYER_ACKOWLEDGE_ARROW_CALLOUT = 0x3022, SMSG_PLAYER_AZERITE_ITEM_EQUIPPED_STATUS_CHANGED = 0x3014, SMSG_PLAYER_AZERITE_ITEM_GAINS = 0x3013, @@ -1752,7 +1754,7 @@ enum OpcodeServer : uint16 SMSG_PLAYER_HIDE_ARROW_CALLOUT = 0x3021, SMSG_PLAYER_IS_ADVENTURE_MAP_POI_VALID = 0x3009, SMSG_PLAYER_OPEN_SUBSCRIPTION_INTERSTITIAL = 0x300E, - SMSG_PLAYER_SAVE_GUILD_EMBLEM = 0x29F9, + SMSG_PLAYER_SAVE_GUILD_EMBLEM = 0x29FA, SMSG_PLAYER_SAVE_PERSONAL_EMBLEM = 0x3023, SMSG_PLAYER_SHOW_ARROW_CALLOUT = 0x3020, SMSG_PLAYER_SHOW_GENERIC_WIDGET_DISPLAY = 0x301E, @@ -1761,25 +1763,25 @@ enum OpcodeServer : uint16 SMSG_PLAYER_SKINNED = 0x3006, SMSG_PLAYER_TUTORIAL_HIGHLIGHT_SPELL = 0x300D, SMSG_PLAYER_TUTORIAL_UNHIGHLIGHT_SPELL = 0x300C, - SMSG_PLAY_MUSIC = 0x2765, - SMSG_PLAY_OBJECT_SOUND = 0x2766, - SMSG_PLAY_ONE_SHOT_ANIM_KIT = 0x272D, + SMSG_PLAY_MUSIC = 0x2767, + SMSG_PLAY_OBJECT_SOUND = 0x2768, + SMSG_PLAY_ONE_SHOT_ANIM_KIT = 0x272F, SMSG_PLAY_ORPHAN_SPELL_VISUAL = 0x2C49, - SMSG_PLAY_SCENE = 0x2633, - SMSG_PLAY_SOUND = 0x2764, - SMSG_PLAY_SPEAKERBOT_SOUND = 0x2767, + SMSG_PLAY_SCENE = 0x2635, + SMSG_PLAY_SOUND = 0x2766, + SMSG_PLAY_SPEAKERBOT_SOUND = 0x2769, SMSG_PLAY_SPELL_VISUAL = 0x2C47, SMSG_PLAY_SPELL_VISUAL_KIT = 0x2C4B, - SMSG_PLAY_TIME_WARNING = 0x26FB, + SMSG_PLAY_TIME_WARNING = 0x26FD, SMSG_PONG = 0x304E, - SMSG_POWER_UPDATE = 0x26D0, + SMSG_POWER_UPDATE = 0x26D2, SMSG_PRELOAD_CHILD_MAP = 0x2579, - SMSG_PRELOAD_WORLD = 0x2594, - SMSG_PREPOPULATE_NAME_CACHE = 0x2840, - SMSG_PRE_RESSURECT = 0x2763, - SMSG_PRINT_NOTIFICATION = 0x25C9, - SMSG_PROC_RESIST = 0x2757, - SMSG_PROFESSION_GOSSIP = 0x27F7, + SMSG_PRELOAD_WORLD = 0x2596, + SMSG_PREPOPULATE_NAME_CACHE = 0x2841, + SMSG_PRE_RESSURECT = 0x2765, + SMSG_PRINT_NOTIFICATION = 0x25CB, + SMSG_PROC_RESIST = 0x2759, + SMSG_PROFESSION_GOSSIP = 0x27F8, SMSG_PUSH_SPELL_TO_ACTION_BAR = 0x2C53, SMSG_PVP_CREDIT = 0x2946, SMSG_PVP_MATCH_COMPLETE = 0x2951, @@ -1788,13 +1790,13 @@ enum OpcodeServer : uint16 SMSG_PVP_MATCH_START = 0x294F, SMSG_PVP_MATCH_STATISTICS = 0x2932, SMSG_PVP_OPTIONS_ENABLED = 0x2935, - SMSG_PVP_TIER_RECORD = 0x287A, + SMSG_PVP_TIER_RECORD = 0x287B, SMSG_QUERY_BATTLE_PET_NAME_RESPONSE = 0x291A, SMSG_QUERY_CREATURE_RESPONSE = 0x2914, SMSG_QUERY_GAME_OBJECT_RESPONSE = 0x2915, SMSG_QUERY_GARRISON_PET_NAME_RESPONSE = 0x299F, - SMSG_QUERY_GUILD_FOLLOW_INFO_RESPONSE = 0x29E7, - SMSG_QUERY_GUILD_INFO_RESPONSE = 0x29E5, + SMSG_QUERY_GUILD_FOLLOW_INFO_RESPONSE = 0x29E8, + SMSG_QUERY_GUILD_INFO_RESPONSE = 0x29E6, SMSG_QUERY_ITEM_TEXT_RESPONSE = 0x291E, SMSG_QUERY_NPC_TEXT_RESPONSE = 0x2916, SMSG_QUERY_PAGE_TEXT_RESPONSE = 0x2917, @@ -1803,8 +1805,8 @@ enum OpcodeServer : uint16 SMSG_QUERY_PLAYER_NAMES_RESPONSE = 0x301B, SMSG_QUERY_PLAYER_NAME_BY_COMMUNITY_ID_RESPONSE = 0x3002, SMSG_QUERY_QUEST_INFO_RESPONSE = 0x2A96, - SMSG_QUERY_REALM_GUILD_MASTER_INFO_RESPONSE = 0x29E6, - SMSG_QUERY_TIME_RESPONSE = 0x26E1, + SMSG_QUERY_REALM_GUILD_MASTER_INFO_RESPONSE = 0x29E7, + SMSG_QUERY_TIME_RESPONSE = 0x26E3, SMSG_QUEST_COMPLETION_NPC_RESPONSE = 0x2A81, SMSG_QUEST_CONFIRM_ACCEPT = 0x2A8F, SMSG_QUEST_FORCE_REMOVED = 0x2A9C, @@ -1823,141 +1825,141 @@ enum OpcodeServer : uint16 SMSG_QUEST_POI_QUERY_RESPONSE = 0x2A9D, SMSG_QUEST_POI_UPDATE_RESPONSE = 0x2A9F, SMSG_QUEST_PUSH_RESULT = 0x2A90, - SMSG_QUEST_SESSION_INFO_RESPONSE = 0x2863, - SMSG_QUEST_SESSION_READY_CHECK = 0x2851, - SMSG_QUEST_SESSION_READY_CHECK_RESPONSE = 0x2852, - SMSG_QUEST_SESSION_RESULT = 0x2850, + SMSG_QUEST_SESSION_INFO_RESPONSE = 0x2864, + SMSG_QUEST_SESSION_READY_CHECK = 0x2852, + SMSG_QUEST_SESSION_READY_CHECK_RESPONSE = 0x2853, + SMSG_QUEST_SESSION_RESULT = 0x2851, SMSG_QUEST_UPDATE_ADD_CREDIT = 0x2A8C, SMSG_QUEST_UPDATE_ADD_CREDIT_SIMPLE = 0x2A8D, SMSG_QUEST_UPDATE_ADD_PVP_CREDIT = 0x2A8E, SMSG_QUEST_UPDATE_COMPLETE = 0x2A89, SMSG_QUEST_UPDATE_FAILED = 0x2A8A, SMSG_QUEST_UPDATE_FAILED_TIMER = 0x2A8B, - SMSG_QUEUE_SUMMARY_UPDATE = 0x280A, - SMSG_RAF_ACCOUNT_INFO = 0x284E, - SMSG_RAF_ACTIVITY_STATE_CHANGED = 0x285F, - SMSG_RAF_DEBUG_FRIEND_MONTHS = 0x28B6, - SMSG_RAID_DIFFICULTY_SET = 0x27A4, - SMSG_RAID_GROUP_ONLY = 0x27A6, + SMSG_QUEUE_SUMMARY_UPDATE = 0x280B, + SMSG_RAF_ACCOUNT_INFO = 0x284F, + SMSG_RAF_ACTIVITY_STATE_CHANGED = 0x2860, + SMSG_RAF_DEBUG_FRIEND_MONTHS = 0x28B7, + SMSG_RAID_DIFFICULTY_SET = 0x27A5, + SMSG_RAID_GROUP_ONLY = 0x27A7, SMSG_RAID_INSTANCE_MESSAGE = 0x2BB4, - SMSG_RAID_MARKERS_CHANGED = 0x259F, - SMSG_RANDOM_ROLL = 0x262D, + SMSG_RAID_MARKERS_CHANGED = 0x25A1, + SMSG_RANDOM_ROLL = 0x262F, SMSG_RATED_PVP_INFO = 0x2931, - SMSG_READY_CHECK_COMPLETED = 0x25F6, - SMSG_READY_CHECK_RESPONSE = 0x25F5, - SMSG_READY_CHECK_STARTED = 0x25F4, - SMSG_READ_ITEM_RESULT_FAILED = 0x27A0, - SMSG_READ_ITEM_RESULT_OK = 0x2797, + SMSG_READY_CHECK_COMPLETED = 0x25F8, + SMSG_READY_CHECK_RESPONSE = 0x25F7, + SMSG_READY_CHECK_STARTED = 0x25F6, + SMSG_READ_ITEM_RESULT_FAILED = 0x27A1, + SMSG_READ_ITEM_RESULT_OK = 0x2798, SMSG_REALM_QUERY_RESPONSE = 0x2913, - SMSG_REATTACH_RESURRECT = 0x2747, - SMSG_RECEIVE_PING_UNIT = 0x25A0, - SMSG_RECEIVE_PING_WORLD_POINT = 0x25A1, - SMSG_RECRAFT_ITEM_RESULT = 0x28A5, - SMSG_RECRUIT_A_FRIEND_FAILURE = 0x26BE, - SMSG_REFRESH_COMPONENT = 0x264E, + SMSG_REATTACH_RESURRECT = 0x2749, + SMSG_RECEIVE_PING_UNIT = 0x25A2, + SMSG_RECEIVE_PING_WORLD_POINT = 0x25A3, + SMSG_RECRAFT_ITEM_RESULT = 0x28A6, + SMSG_RECRUIT_A_FRIEND_FAILURE = 0x26C0, + SMSG_REFRESH_COMPONENT = 0x2650, SMSG_REFRESH_SPELL_HISTORY = 0x2C2B, - SMSG_REMOVE_ITEM_PASSIVE = 0x25AA, + SMSG_REMOVE_ITEM_PASSIVE = 0x25AC, SMSG_REMOVE_SPELL_FROM_ACTION_BAR = 0x2C54, - SMSG_REPLACE_TROPHY_RESPONSE = 0x27BC, + SMSG_REPLACE_TROPHY_RESPONSE = 0x27BD, SMSG_REPORT_PVP_PLAYER_AFK_RESULT = 0x3001, - SMSG_REQUEST_CEMETERY_LIST_RESPONSE = 0x258E, + SMSG_REQUEST_CEMETERY_LIST_RESPONSE = 0x258F, SMSG_REQUEST_PVP_REWARDS_RESPONSE = 0x2936, SMSG_REQUEST_SCHEDULED_PVP_INFO_RESPONSE = 0x2937, SMSG_RESET_COMPRESSION_CONTEXT = 0x304F, - SMSG_RESET_FAILED_NOTIFY = 0x26B5, - SMSG_RESET_LAST_LOADED_CONFIG_CVARS = 0x28AB, + SMSG_RESET_FAILED_NOTIFY = 0x26B7, + SMSG_RESET_LAST_LOADED_CONFIG_CVARS = 0x28AC, SMSG_RESET_QUEST_POI = 0x2AA0, SMSG_RESET_RANGED_COMBAT_TIMER = 0x2945, SMSG_RESET_WEEKLY_CURRENCY = 0x2575, - SMSG_RESPEC_WIPE_CONFIRM = 0x2610, + SMSG_RESPEC_WIPE_CONFIRM = 0x2612, SMSG_RESPOND_INSPECT_ACHIEVEMENTS = 0x2572, - SMSG_RESPONSE_PERK_PENDING_REWARDS = 0x2881, - SMSG_RESPONSE_PERK_RECENT_PURCHASES = 0x2882, + SMSG_RESPONSE_PERK_PENDING_REWARDS = 0x2882, + SMSG_RESPONSE_PERK_RECENT_PURCHASES = 0x2883, SMSG_RESTART_GLOBAL_COOLDOWN = 0x2C63, - SMSG_RESTRICTED_ACCOUNT_WARNING = 0x25B8, + SMSG_RESTRICTED_ACCOUNT_WARNING = 0x25BA, SMSG_RESUME_CAST = 0x2C3D, SMSG_RESUME_CAST_BAR = 0x2C40, SMSG_RESUME_COMMS = 0x304B, - SMSG_RESUME_TOKEN = 0x25A8, + SMSG_RESUME_TOKEN = 0x25AA, SMSG_RESURRECT_REQUEST = 0x257E, SMSG_RESYNC_RUNES = 0x2C61, - SMSG_RETURNING_PLAYER_PROMPT = 0x279F, - SMSG_RETURN_APPLICANT_LIST = 0x2844, - SMSG_RETURN_RECRUITING_CLUBS = 0x2843, - SMSG_ROLE_CHANGED_INFORM = 0x258A, + SMSG_RETURNING_PLAYER_PROMPT = 0x27A0, + SMSG_RETURN_APPLICANT_LIST = 0x2845, + SMSG_RETURN_RECRUITING_CLUBS = 0x2844, + SMSG_ROLE_CHANGED_INFORM = 0x258B, SMSG_ROLE_CHOSEN = 0x2A39, - SMSG_ROLE_POLL_INFORM = 0x258B, - SMSG_RUNEFORGE_LEGENDARY_CRAFTING_OPEN_NPC = 0x27F6, - SMSG_RUNE_REGEN_DEBUG = 0x25B5, - SMSG_SCENARIO_COMPLETED = 0x27E4, - SMSG_SCENARIO_POIS = 0x2630, - SMSG_SCENARIO_PROGRESS_UPDATE = 0x2629, - SMSG_SCENARIO_SHOW_CRITERIA = 0x27FA, - SMSG_SCENARIO_STATE = 0x2628, - SMSG_SCENARIO_UI_UPDATE = 0x27F9, - SMSG_SCENARIO_VACATE = 0x27A1, - SMSG_SCENE_OBJECT_EVENT = 0x25E0, - SMSG_SCENE_OBJECT_PET_BATTLE_FINAL_ROUND = 0x25E5, - SMSG_SCENE_OBJECT_PET_BATTLE_FINISHED = 0x25E6, - SMSG_SCENE_OBJECT_PET_BATTLE_FIRST_ROUND = 0x25E2, - SMSG_SCENE_OBJECT_PET_BATTLE_INITIAL_UPDATE = 0x25E1, - SMSG_SCENE_OBJECT_PET_BATTLE_REPLACEMENTS_MADE = 0x25E4, - SMSG_SCENE_OBJECT_PET_BATTLE_ROUND_RESULT = 0x25E3, + SMSG_ROLE_POLL_INFORM = 0x258C, + SMSG_RUNEFORGE_LEGENDARY_CRAFTING_OPEN_NPC = 0x27F7, + SMSG_RUNE_REGEN_DEBUG = 0x25B7, + SMSG_SCENARIO_COMPLETED = 0x27E5, + SMSG_SCENARIO_POIS = 0x2632, + SMSG_SCENARIO_PROGRESS_UPDATE = 0x262B, + SMSG_SCENARIO_SHOW_CRITERIA = 0x27FB, + SMSG_SCENARIO_STATE = 0x262A, + SMSG_SCENARIO_UI_UPDATE = 0x27FA, + SMSG_SCENARIO_VACATE = 0x27A2, + SMSG_SCENE_OBJECT_EVENT = 0x25E2, + SMSG_SCENE_OBJECT_PET_BATTLE_FINAL_ROUND = 0x25E7, + SMSG_SCENE_OBJECT_PET_BATTLE_FINISHED = 0x25E8, + SMSG_SCENE_OBJECT_PET_BATTLE_FIRST_ROUND = 0x25E4, + SMSG_SCENE_OBJECT_PET_BATTLE_INITIAL_UPDATE = 0x25E3, + SMSG_SCENE_OBJECT_PET_BATTLE_REPLACEMENTS_MADE = 0x25E6, + SMSG_SCENE_OBJECT_PET_BATTLE_ROUND_RESULT = 0x25E5, SMSG_SCRIPT_CAST = 0x2C58, - SMSG_SEASON_INFO = 0x25C0, - SMSG_SELL_RESPONSE = 0x26C2, - SMSG_SEND_ITEM_PASSIVES = 0x25AB, + SMSG_SEASON_INFO = 0x25C2, + SMSG_SELL_RESPONSE = 0x26C4, + SMSG_SEND_ITEM_PASSIVES = 0x25AD, SMSG_SEND_KNOWN_SPELLS = 0x2C29, - SMSG_SEND_RAID_TARGET_UPDATE_ALL = 0x262B, - SMSG_SEND_RAID_TARGET_UPDATE_SINGLE = 0x262C, + SMSG_SEND_RAID_TARGET_UPDATE_ALL = 0x262D, + SMSG_SEND_RAID_TARGET_UPDATE_SINGLE = 0x262E, SMSG_SEND_SPELL_CHARGES = 0x2C2C, SMSG_SEND_SPELL_HISTORY = 0x2C2A, SMSG_SEND_UNLEARN_SPELLS = 0x2C2D, - SMSG_SERVER_FIRST_ACHIEVEMENTS = 0x264B, - SMSG_SERVER_TIME = 0x2681, - SMSG_SERVER_TIME_OFFSET = 0x2711, + SMSG_SERVER_FIRST_ACHIEVEMENTS = 0x264D, + SMSG_SERVER_TIME = 0x2683, + SMSG_SERVER_TIME_OFFSET = 0x2713, SMSG_SETUP_COMBAT_LOG_FILE_FLUSH = 0x2C1F, SMSG_SETUP_CURRENCY = 0x2573, - SMSG_SET_AI_ANIM_KIT = 0x272C, - SMSG_SET_ANIM_TIER = 0x2730, - SMSG_SET_CHR_UPGRADE_TIER = 0x25DD, + SMSG_SET_AI_ANIM_KIT = 0x272E, + SMSG_SET_ANIM_TIER = 0x2732, + SMSG_SET_CHR_UPGRADE_TIER = 0x25DF, SMSG_SET_CURRENCY = 0x2574, SMSG_SET_DF_FAST_LAUNCH_RESULT = 0x2A2E, - SMSG_SET_DUNGEON_DIFFICULTY = 0x26A3, - SMSG_SET_FACTION_AT_WAR = 0x26FD, - SMSG_SET_FACTION_NOT_VISIBLE = 0x2727, - SMSG_SET_FACTION_STANDING = 0x2728, - SMSG_SET_FACTION_VISIBLE = 0x2726, + SMSG_SET_DUNGEON_DIFFICULTY = 0x26A5, + SMSG_SET_FACTION_AT_WAR = 0x26FF, + SMSG_SET_FACTION_NOT_VISIBLE = 0x2729, + SMSG_SET_FACTION_STANDING = 0x272A, + SMSG_SET_FACTION_VISIBLE = 0x2728, SMSG_SET_FLAT_SPELL_MODIFIER = 0x2C38, - SMSG_SET_FORCED_REACTIONS = 0x271A, - SMSG_SET_ITEM_PURCHASE_DATA = 0x259A, - SMSG_SET_LOOT_METHOD_FAILED = 0x27C8, - SMSG_SET_MAX_WEEKLY_QUANTITY = 0x259D, - SMSG_SET_MELEE_ANIM_KIT = 0x272F, - SMSG_SET_MOVEMENT_ANIM_KIT = 0x272E, + SMSG_SET_FORCED_REACTIONS = 0x271C, + SMSG_SET_ITEM_PURCHASE_DATA = 0x259C, + SMSG_SET_LOOT_METHOD_FAILED = 0x27C9, + SMSG_SET_MAX_WEEKLY_QUANTITY = 0x259F, + SMSG_SET_MELEE_ANIM_KIT = 0x2731, + SMSG_SET_MOVEMENT_ANIM_KIT = 0x2730, SMSG_SET_PCT_SPELL_MODIFIER = 0x2C39, - SMSG_SET_PET_SPECIALIZATION = 0x2622, + SMSG_SET_PET_SPECIALIZATION = 0x2624, SMSG_SET_PLAYER_DECLINED_NAMES_RESULT = 0x3003, - SMSG_SET_PLAY_HOVER_ANIM = 0x25B9, - SMSG_SET_PROFICIENCY = 0x2731, - SMSG_SET_QUEST_REPLAY_COOLDOWN_OVERRIDE = 0x2857, + SMSG_SET_PLAY_HOVER_ANIM = 0x25BB, + SMSG_SET_PROFICIENCY = 0x2733, + SMSG_SET_QUEST_REPLAY_COOLDOWN_OVERRIDE = 0x2858, SMSG_SET_SHIPMENT_READY_RESPONSE = 0x2998, SMSG_SET_SPELL_CHARGES = 0x2C28, - SMSG_SET_TIME_ZONE_INFORMATION = 0x2676, - SMSG_SET_VEHICLE_REC_ID = 0x26F4, - SMSG_SHADOWLANDS_CAPACITANCE_UPDATE = 0x2886, + SMSG_SET_TIME_ZONE_INFORMATION = 0x2678, + SMSG_SET_VEHICLE_REC_ID = 0x26F6, + SMSG_SHADOWLANDS_CAPACITANCE_UPDATE = 0x2887, SMSG_SHIPMENT_FACTION_UPDATE_RESULT = 0x2999, - SMSG_SHOW_NEUTRAL_PLAYER_FACTION_SELECT_UI = 0x25D9, + SMSG_SHOW_NEUTRAL_PLAYER_FACTION_SELECT_UI = 0x25DB, SMSG_SHOW_QUEST_COMPLETION_TEXT = 0x2A95, - SMSG_SHOW_TAXI_NODES = 0x26CB, - SMSG_SHOW_TRADE_SKILL_RESPONSE = 0x276C, - SMSG_SOCIAL_CONTRACT_REQUEST_RESPONSE = 0x2891, - SMSG_SOCKET_GEMS_FAILURE = 0x2724, - SMSG_SOCKET_GEMS_SUCCESS = 0x2723, - SMSG_SPECIAL_MOUNT_ANIM = 0x269E, - SMSG_SPECTATE_END = 0x28B8, - SMSG_SPECTATE_PLAYER = 0x28B7, - SMSG_SPEC_INVOLUNTARILY_CHANGED = 0x2715, + SMSG_SHOW_TAXI_NODES = 0x26CD, + SMSG_SHOW_TRADE_SKILL_RESPONSE = 0x276E, + SMSG_SOCIAL_CONTRACT_REQUEST_RESPONSE = 0x2892, + SMSG_SOCKET_GEMS_FAILURE = 0x2726, + SMSG_SOCKET_GEMS_SUCCESS = 0x2725, + SMSG_SPECIAL_MOUNT_ANIM = 0x26A0, + SMSG_SPECTATE_END = 0x28B9, + SMSG_SPECTATE_PLAYER = 0x28B8, + SMSG_SPEC_INVOLUNTARILY_CHANGED = 0x2717, SMSG_SPELL_ABSORB_LOG = 0x2C1C, SMSG_SPELL_CATEGORY_COOLDOWN = 0x2C16, SMSG_SPELL_CHANNEL_START = 0x2C33, @@ -1985,94 +1987,94 @@ enum OpcodeServer : uint16 SMSG_SPELL_PERIODIC_AURA_LOG = 0x2C18, SMSG_SPELL_PREPARE = 0x2C3A, SMSG_SPELL_START = 0x2C3C, - SMSG_SPELL_VISUAL_LOAD_SCREEN = 0x25CB, - SMSG_SPLASH_SCREEN_SHOW_LATEST = 0x2869, - SMSG_STAND_STATE_UPDATE = 0x2719, - SMSG_STARTER_BUILD_ACTIVATE_FAILED = 0x25D1, - SMSG_START_ELAPSED_TIMER = 0x2602, - SMSG_START_ELAPSED_TIMERS = 0x2604, - SMSG_START_LIGHTNING_STORM = 0x26A6, - SMSG_START_LOOT_ROLL = 0x261A, - SMSG_START_MIRROR_TIMER = 0x270C, - SMSG_START_TIMER = 0x25A4, - SMSG_STOP_ELAPSED_TIMER = 0x2603, - SMSG_STOP_MIRROR_TIMER = 0x270E, - SMSG_STOP_SPEAKERBOT_SOUND = 0x2768, - SMSG_STOP_TIMER = 0x25A5, - SMSG_STREAMING_MOVIES = 0x25A3, - SMSG_SUGGEST_INVITE_INFORM = 0x278D, - SMSG_SUMMON_CANCEL = 0x26AF, - SMSG_SUMMON_RAID_MEMBER_VALIDATE_FAILED = 0x258C, - SMSG_SUMMON_REQUEST = 0x271E, + SMSG_SPELL_VISUAL_LOAD_SCREEN = 0x25CD, + SMSG_SPLASH_SCREEN_SHOW_LATEST = 0x286A, + SMSG_STAND_STATE_UPDATE = 0x271B, + SMSG_STARTER_BUILD_ACTIVATE_FAILED = 0x25D3, + SMSG_START_ELAPSED_TIMER = 0x2604, + SMSG_START_ELAPSED_TIMERS = 0x2606, + SMSG_START_LIGHTNING_STORM = 0x26A8, + SMSG_START_LOOT_ROLL = 0x261C, + SMSG_START_MIRROR_TIMER = 0x270E, + SMSG_START_TIMER = 0x25A6, + SMSG_STOP_ELAPSED_TIMER = 0x2605, + SMSG_STOP_MIRROR_TIMER = 0x2710, + SMSG_STOP_SPEAKERBOT_SOUND = 0x276A, + SMSG_STOP_TIMER = 0x25A7, + SMSG_STREAMING_MOVIES = 0x25A5, + SMSG_SUGGEST_INVITE_INFORM = 0x278E, + SMSG_SUMMON_CANCEL = 0x26B1, + SMSG_SUMMON_RAID_MEMBER_VALIDATE_FAILED = 0x258D, + SMSG_SUMMON_REQUEST = 0x2720, SMSG_SUPERCEDED_SPELLS = 0x2C4E, SMSG_SUSPEND_COMMS = 0x304A, - SMSG_SUSPEND_TOKEN = 0x25A7, - SMSG_SYNC_WOW_ENTITLEMENTS = 0x2861, - SMSG_TALENTS_INVOLUNTARILY_RESET = 0x2714, - SMSG_TAXI_NODE_STATUS = 0x267B, - SMSG_TEXT_EMOTE = 0x2679, - SMSG_THREAT_CLEAR = 0x26DA, - SMSG_THREAT_REMOVE = 0x26D9, - SMSG_THREAT_UPDATE = 0x26D8, + SMSG_SUSPEND_TOKEN = 0x25A9, + SMSG_SYNC_WOW_ENTITLEMENTS = 0x2862, + SMSG_TALENTS_INVOLUNTARILY_RESET = 0x2716, + SMSG_TAXI_NODE_STATUS = 0x267D, + SMSG_TEXT_EMOTE = 0x267B, + SMSG_THREAT_CLEAR = 0x26DC, + SMSG_THREAT_REMOVE = 0x26DB, + SMSG_THREAT_UPDATE = 0x26DA, SMSG_TIME_ADJUSTMENT = 0x2DD3, SMSG_TIME_SYNC_REQUEST = 0x2DD2, - SMSG_TITLE_EARNED = 0x26D5, - SMSG_TITLE_LOST = 0x26D6, - SMSG_TOTEM_CREATED = 0x26C5, - SMSG_TOTEM_DURATION_CHANGED = 0x26C7, - SMSG_TOTEM_MOVED = 0x26C8, - SMSG_TOTEM_REMOVED = 0x26C6, - SMSG_TRADE_STATUS = 0x2582, - SMSG_TRADE_UPDATED = 0x2581, - SMSG_TRAINER_BUY_FAILED = 0x26DD, - SMSG_TRAINER_LIST = 0x26DC, - SMSG_TRAIT_CONFIG_COMMIT_FAILED = 0x25D0, - SMSG_TRANSFER_ABORTED = 0x2700, - SMSG_TRANSFER_PENDING = 0x25CC, + SMSG_TITLE_EARNED = 0x26D7, + SMSG_TITLE_LOST = 0x26D8, + SMSG_TOTEM_CREATED = 0x26C7, + SMSG_TOTEM_DURATION_CHANGED = 0x26C9, + SMSG_TOTEM_MOVED = 0x26CA, + SMSG_TOTEM_REMOVED = 0x26C8, + SMSG_TRADE_STATUS = 0x2583, + SMSG_TRADE_UPDATED = 0x2582, + SMSG_TRAINER_BUY_FAILED = 0x26DF, + SMSG_TRAINER_LIST = 0x26DE, + SMSG_TRAIT_CONFIG_COMMIT_FAILED = 0x25D2, + SMSG_TRANSFER_ABORTED = 0x2702, + SMSG_TRANSFER_PENDING = 0x25CE, SMSG_TREASURE_PICKER_RESPONSE = 0x291F, - SMSG_TRIGGER_CINEMATIC = 0x27C1, - SMSG_TRIGGER_MOVIE = 0x26C9, - SMSG_TURN_IN_PETITION_RESULT = 0x274A, - SMSG_TUTORIAL_FLAGS = 0x27B5, + SMSG_TRIGGER_CINEMATIC = 0x27C2, + SMSG_TRIGGER_MOVIE = 0x26CB, + SMSG_TURN_IN_PETITION_RESULT = 0x274C, + SMSG_TUTORIAL_FLAGS = 0x27B6, SMSG_UI_MAP_QUEST_LINES_RESPONSE = 0x2AA2, - SMSG_UNDELETE_CHARACTER_RESPONSE = 0x27C3, - SMSG_UNDELETE_COOLDOWN_STATUS_RESPONSE = 0x27C4, + SMSG_UNDELETE_CHARACTER_RESPONSE = 0x27C4, + SMSG_UNDELETE_COOLDOWN_STATUS_RESPONSE = 0x27C5, SMSG_UNLEARNED_SPELLS = 0x2C50, SMSG_UNLOAD_CHILD_MAP = 0x257A, - SMSG_UPDATE_AADC_STATUS_RESPONSE = 0x287B, - SMSG_UPDATE_ACCOUNT_DATA = 0x2706, - SMSG_UPDATE_ACTION_BUTTONS = 0x25DE, - SMSG_UPDATE_BNET_SESSION_KEY = 0x281B, + SMSG_UPDATE_AADC_STATUS_RESPONSE = 0x287C, + SMSG_UPDATE_ACCOUNT_DATA = 0x2708, + SMSG_UPDATE_ACTION_BUTTONS = 0x25E0, + SMSG_UPDATE_BNET_SESSION_KEY = 0x281C, SMSG_UPDATE_CAPTURE_POINT = 0x2929, - SMSG_UPDATE_CELESTIAL_BODY = 0x2817, - SMSG_UPDATE_CHARACTER_FLAGS = 0x27BB, - SMSG_UPDATE_CHARGE_CATEGORY_COOLDOWN = 0x2762, - SMSG_UPDATE_COOLDOWN = 0x2761, + SMSG_UPDATE_CELESTIAL_BODY = 0x2818, + SMSG_UPDATE_CHARACTER_FLAGS = 0x27BC, + SMSG_UPDATE_CHARGE_CATEGORY_COOLDOWN = 0x2764, + SMSG_UPDATE_COOLDOWN = 0x2763, SMSG_UPDATE_CRAFTING_NPC_RECIPES = 0x2996, SMSG_UPDATE_DAILY_MISSION_COUNTER = 0x297F, - SMSG_UPDATE_EXPANSION_LEVEL = 0x2643, - SMSG_UPDATE_GAME_TIME_STATE = 0x281E, - SMSG_UPDATE_INSTANCE_OWNERSHIP = 0x26A8, - SMSG_UPDATE_LAST_INSTANCE = 0x2687, - SMSG_UPDATE_OBJECT = 0x27C2, - SMSG_UPDATE_PRIMARY_SPEC = 0x25D6, - SMSG_UPDATE_RECENT_PLAYER_GUIDS = 0x25F3, - SMSG_UPDATE_TALENT_DATA = 0x25D5, - SMSG_UPDATE_WORLD_STATE = 0x2744, + SMSG_UPDATE_EXPANSION_LEVEL = 0x2645, + SMSG_UPDATE_GAME_TIME_STATE = 0x281F, + SMSG_UPDATE_INSTANCE_OWNERSHIP = 0x26AA, + SMSG_UPDATE_LAST_INSTANCE = 0x2689, + SMSG_UPDATE_OBJECT = 0x27C3, + SMSG_UPDATE_PRIMARY_SPEC = 0x25D8, + SMSG_UPDATE_RECENT_PLAYER_GUIDS = 0x25F5, + SMSG_UPDATE_TALENT_DATA = 0x25D7, + SMSG_UPDATE_WORLD_STATE = 0x2746, SMSG_USERLIST_ADD = 0x2BB9, SMSG_USERLIST_REMOVE = 0x2BBA, SMSG_USERLIST_UPDATE = 0x2BBB, - SMSG_USE_EQUIPMENT_SET_RESULT = 0x274B, - SMSG_VAS_CHECK_TRANSFER_OK_RESPONSE = 0x2812, - SMSG_VAS_GET_QUEUE_MINUTES_RESPONSE = 0x2810, - SMSG_VAS_GET_SERVICE_STATUS_RESPONSE = 0x280F, - SMSG_VAS_PURCHASE_COMPLETE = 0x27EA, - SMSG_VAS_PURCHASE_STATE_UPDATE = 0x27E9, - SMSG_VENDOR_INVENTORY = 0x25B7, + SMSG_USE_EQUIPMENT_SET_RESULT = 0x274D, + SMSG_VAS_CHECK_TRANSFER_OK_RESPONSE = 0x2813, + SMSG_VAS_GET_QUEUE_MINUTES_RESPONSE = 0x2811, + SMSG_VAS_GET_SERVICE_STATUS_RESPONSE = 0x2810, + SMSG_VAS_PURCHASE_COMPLETE = 0x27EB, + SMSG_VAS_PURCHASE_STATE_UPDATE = 0x27EA, + SMSG_VENDOR_INVENTORY = 0x25B9, SMSG_VIGNETTE_UPDATE = 0x3008, - SMSG_VOICE_CHANNEL_INFO_RESPONSE = 0x2816, - SMSG_VOICE_CHANNEL_STT_TOKEN_RESPONSE = 0x2875, - SMSG_VOICE_LOGIN_RESPONSE = 0x2815, + SMSG_VOICE_CHANNEL_INFO_RESPONSE = 0x2817, + SMSG_VOICE_CHANNEL_STT_TOKEN_RESPONSE = 0x2876, + SMSG_VOICE_LOGIN_RESPONSE = 0x2816, SMSG_VOID_ITEM_SWAP_RESPONSE = 0x2DA4, SMSG_VOID_STORAGE_CONTENTS = 0x2DA1, SMSG_VOID_STORAGE_FAILED = 0x2DA0, @@ -2081,32 +2083,32 @@ enum OpcodeServer : uint16 SMSG_WAIT_QUEUE_FINISH = 0x256F, SMSG_WAIT_QUEUE_UPDATE = 0x256E, SMSG_WARDEN3_DATA = 0x2577, - SMSG_WARDEN3_DISABLED = 0x2819, - SMSG_WARDEN3_ENABLED = 0x2818, - SMSG_WARFRONT_COMPLETE = 0x275A, + SMSG_WARDEN3_DISABLED = 0x281A, + SMSG_WARDEN3_ENABLED = 0x2819, + SMSG_WARFRONT_COMPLETE = 0x275C, SMSG_WARGAME_REQUEST_OPPONENT_RESPONSE = 0x2934, SMSG_WARGAME_REQUEST_SUCCESSFULLY_SENT_TO_OPPONENT = 0x2933, - SMSG_WEATHER = 0x26A5, - SMSG_WEEKLY_REWARDS_PROGRESS_RESULT = 0x286C, - SMSG_WEEKLY_REWARDS_RESULT = 0x286A, - SMSG_WEEKLY_REWARD_CLAIM_RESULT = 0x286B, + SMSG_WEATHER = 0x26A7, + SMSG_WEEKLY_REWARDS_PROGRESS_RESULT = 0x286D, + SMSG_WEEKLY_REWARDS_RESULT = 0x286B, + SMSG_WEEKLY_REWARD_CLAIM_RESULT = 0x286C, SMSG_WHO = 0x2BAE, - SMSG_WHO_IS = 0x26A4, - SMSG_WILL_BE_KICKED_FOR_ADDED_SUBSCRIPTION_TIME = 0x281D, + SMSG_WHO_IS = 0x26A6, + SMSG_WILL_BE_KICKED_FOR_ADDED_SUBSCRIPTION_TIME = 0x281E, SMSG_WORLD_QUEST_UPDATE_RESPONSE = 0x300F, - SMSG_WORLD_SERVER_INFO = 0x25AC, - SMSG_WOW_ENTITLEMENT_NOTIFICATION = 0x2862, - SMSG_WOW_LABS_NOTIFY_PLAYERS_MATCH_END = 0x2892, - SMSG_WOW_LABS_NOTIFY_PLAYERS_MATCH_STATE_CHANGED = 0x2893, - SMSG_WOW_LABS_PARTY_ERROR = 0x289B, - SMSG_WOW_LABS_SET_PREDICTION_CIRCLE = 0x2894, - SMSG_XP_AWARDED_FROM_CURRENCY = 0x28AA, - SMSG_XP_GAIN_ABORTED = 0x25C8, - SMSG_XP_GAIN_ENABLED = 0x27A5, + SMSG_WORLD_SERVER_INFO = 0x25AE, + SMSG_WOW_ENTITLEMENT_NOTIFICATION = 0x2863, + SMSG_WOW_LABS_NOTIFY_PLAYERS_MATCH_END = 0x2893, + SMSG_WOW_LABS_NOTIFY_PLAYERS_MATCH_STATE_CHANGED = 0x2894, + SMSG_WOW_LABS_PARTY_ERROR = 0x289C, + SMSG_WOW_LABS_SET_PREDICTION_CIRCLE = 0x2895, + SMSG_XP_AWARDED_FROM_CURRENCY = 0x28AB, + SMSG_XP_GAIN_ABORTED = 0x25CA, + SMSG_XP_GAIN_ENABLED = 0x27A6, SMSG_ZONE_UNDER_ATTACK = 0x2BB5, // Opcodes that are not generated automatically - SMSG_ACCOUNT_HEIRLOOM_UPDATE = 0x25B0, // no client handler + SMSG_ACCOUNT_HEIRLOOM_UPDATE = SMSG_ACCOUNT_TOY_UPDATE + 1, // no client handler SMSG_COMPRESSED_PACKET = 0x3052, SMSG_MULTIPLE_PACKETS = 0x3051, @@ -2155,7 +2157,7 @@ enum PacketProcessing class WorldPacket; class WorldSession; -struct ClientOpcodeHandler final +struct ClientOpcodeHandler { using HandlerFunction = void (*)(WorldSession* session, WorldPacket& packet); @@ -2165,7 +2167,7 @@ struct ClientOpcodeHandler final PacketProcessing ProcessingPlace; }; -struct ServerOpcodeHandler final +struct ServerOpcodeHandler { char const* Name; SessionStatus Status; diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index 214a04d4714..4c148b32055 100644 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -611,6 +611,7 @@ namespace WorldPackets class DismissCritter; class RequestPetInfo; class PetAbandon; + class PetAbandonByNumber; class PetStopAttack; class PetSpellAutocast; class PetRename; @@ -1568,10 +1569,10 @@ class TC_GAME_API WorldSession void HandleChatMessageOpcode(WorldPackets::Chat::ChatMessage& chatMessage); void HandleChatMessageWhisperOpcode(WorldPackets::Chat::ChatMessageWhisper& chatMessageWhisper); void HandleChatMessageChannelOpcode(WorldPackets::Chat::ChatMessageChannel& chatMessageChannel); - ChatMessageResult HandleChatMessage(ChatMsg type, Language lang, std::string msg, std::string target = "", Optional channelGuid = {}); + ChatMessageResult HandleChatMessage(ChatMsg type, Language lang, std::string msg, std::string target = "", Optional targetGuid = {}); void HandleChatAddonMessageOpcode(WorldPackets::Chat::ChatAddonMessage& chatAddonMessage); void HandleChatAddonMessageTargetedOpcode(WorldPackets::Chat::ChatAddonMessageTargeted& chatAddonMessageTargeted); - void HandleChatAddonMessage(ChatMsg type, std::string prefix, std::string text, bool isLogged, std::string target = "", Optional channelGuid = {}); + void HandleChatAddonMessage(ChatMsg type, std::string prefix, std::string text, bool isLogged, std::string target = "", Optional targetGuid = {}); void HandleChatMessageAFKOpcode(WorldPackets::Chat::ChatMessageAFK& chatMessageAFK); void HandleChatMessageDNDOpcode(WorldPackets::Chat::ChatMessageDND& chatMessageDND); void HandleChatMessageEmoteOpcode(WorldPackets::Chat::ChatMessageEmote& chatMessageEmote); @@ -1613,6 +1614,7 @@ class TC_GAME_API WorldSession void HandleQueryPetName(WorldPackets::Query::QueryPetName& packet); void HandlePetSetAction(WorldPackets::Pet::PetSetAction& packet); void HandlePetAbandon(WorldPackets::Pet::PetAbandon& packet); + void HandlePetAbandonByNumber(WorldPackets::Pet::PetAbandonByNumber const& petAbandonByNumber); void HandlePetRename(WorldPackets::Pet::PetRename& packet); void HandlePetCancelAuraOpcode(WorldPackets::Spells::PetCancelAura& packet); void HandlePetSpellAutocastOpcode(WorldPackets::Pet::PetSpellAutocast& packet); diff --git a/src/server/shared/Packets/ByteBuffer.cpp b/src/server/shared/Packets/ByteBuffer.cpp index 104ba96d9d0..510b4babbca 100644 --- a/src/server/shared/Packets/ByteBuffer.cpp +++ b/src/server/shared/Packets/ByteBuffer.cpp @@ -29,19 +29,13 @@ ByteBuffer::ByteBuffer(MessageBuffer&& buffer) : _rpos(0), _wpos(0), _bitpos(Ini } ByteBufferPositionException::ByteBufferPositionException(size_t pos, size_t size, size_t valueSize) + : ByteBufferException(Trinity::StringFormat("Attempted to get value with size: {} in ByteBuffer (pos: {} size: {})", valueSize, pos, size)) { - std::ostringstream ss; - - ss << "Attempted to get value with size: " - << valueSize << " in ByteBuffer (pos: " << pos << " size: " << size - << ")"; - - message().assign(ss.str()); } ByteBufferInvalidValueException::ByteBufferInvalidValueException(char const* type, char const* value) + : ByteBufferException(Trinity::StringFormat("Invalid {} value ({}) found in ByteBuffer", type, value)) { - message().assign(Trinity::StringFormat("Invalid {} value ({}) found in ByteBuffer", type, value)); } ByteBuffer& ByteBuffer::operator>>(float& value) @@ -152,7 +146,7 @@ void ByteBuffer::print_storage() const o << "STORAGE_SIZE: " << size(); for (uint32 i = 0; i < size(); ++i) o << read(i) << " - "; - o << " "; + o << ' '; TC_LOG_TRACE("network", "{}", o.str()); } @@ -170,7 +164,7 @@ void ByteBuffer::textlike() const snprintf(buf, 2, "%c", read(i)); o << buf; } - o << " "; + o << ' '; TC_LOG_TRACE("network", "{}", o.str()); } @@ -187,7 +181,7 @@ void ByteBuffer::hexlike() const for (uint32 i = 0; i < size(); ++i) { char buf[4]; - snprintf(buf, 4, "%2X", read(i)); + snprintf(buf, 4, "%02X", read(i)); if ((i == (j * 8)) && ((i != (k * 16)))) { o << "| "; @@ -195,13 +189,13 @@ void ByteBuffer::hexlike() const } else if (i == (k * 16)) { - o << "\n"; + o << '\n'; ++k; ++j; } o << buf; } - o << " "; + o << ' '; TC_LOG_TRACE("network", "{}", o.str()); } diff --git a/src/server/shared/Packets/ByteBuffer.h b/src/server/shared/Packets/ByteBuffer.h index de0adf54341..7de0dde99e7 100644 --- a/src/server/shared/Packets/ByteBuffer.h +++ b/src/server/shared/Packets/ByteBuffer.h @@ -31,14 +31,12 @@ class MessageBuffer; class TC_SHARED_API ByteBufferException : public std::exception { public: - ~ByteBufferException() noexcept = default; + explicit ByteBufferException() = default; + explicit ByteBufferException(std::string&& message) noexcept : msg_(std::move(message)) { } char const* what() const noexcept override { return msg_.c_str(); } protected: - std::string & message() noexcept { return msg_; } - -private: std::string msg_; }; @@ -46,16 +44,12 @@ class TC_SHARED_API ByteBufferPositionException : public ByteBufferException { public: ByteBufferPositionException(size_t pos, size_t size, size_t valueSize); - - ~ByteBufferPositionException() noexcept = default; }; class TC_SHARED_API ByteBufferInvalidValueException : public ByteBufferException { public: ByteBufferInvalidValueException(char const* type, char const* value); - - ~ByteBufferInvalidValueException() noexcept = default; }; class TC_SHARED_API ByteBuffer diff --git a/src/tools/map_extractor/loadlib/DBFilesClientList.h b/src/tools/map_extractor/loadlib/DBFilesClientList.h index 3b95d9104e8..6312cee7da3 100644 --- a/src/tools/map_extractor/loadlib/DBFilesClientList.h +++ b/src/tools/map_extractor/loadlib/DBFilesClientList.h @@ -220,6 +220,7 @@ DB2FileInfo const DBFilesClientList[] = { 3501965, "ConditionalContentTuning.db2" }, { 5345180, "ConditionalItemAppearance.db2" }, { 1709409, "ConfigurationWarning.db2" }, + { 5742435, "ContentPush.db2" }, { 4668112, "ContentRestrictionRule.db2" }, { 4281307, "ContentRestrictionRuleSet.db2" }, { 1962930, "ContentTuning.db2" }, @@ -254,7 +255,9 @@ DB2FileInfo const DBFilesClientList[] = { 1720141, "CreatureDisplayInfoGeosetData.db2" }, { 3692043, "CreatureDisplayInfoOption.db2" }, { 1146698, "CreatureDisplayInfoTrn.db2" }, + { 5551196, "CreatureDisplayXUIModelScene.db2" }, { 1351351, "CreatureFamily.db2" }, + { 5551197, "CreatureFamilyXUIModelScene.db2" }, { 1131322, "CreatureImmunities.db2" }, { 3055733, "CreatureLabel.db2" }, { 1365368, "CreatureModelData.db2" }, @@ -315,6 +318,7 @@ DB2FileInfo const DBFilesClientList[] = { 3565753, "GameObjectAnimGroupMember.db2" }, { 1266737, "GameObjectArtKit.db2" }, { 1302847, "GameObjectDiffAnimMap.db2" }, + { 5634246, "GameObjectDisplayCondition.db2" }, { 1266277, "GameObjectDisplayInfo.db2" }, { 1345272, "GameObjectDisplayInfoXSoundKit.db2" }, { 4621877, "GameObjectLabel.db2" }, @@ -482,6 +486,7 @@ DB2FileInfo const DBFilesClientList[] = { 1121231, "ItemPriceBase.db2" }, { 1270315, "ItemRangedDisplayInfo.db2" }, { 5150118, "ItemRecraft.db2" }, + { 5633983, "ItemReforge.db2" }, { 4548446, "ItemSalvage.db2" }, { 4549058, "ItemSalvageLoot.db2" }, { 1273408, "ItemSearchName.db2" }, @@ -920,6 +925,7 @@ DB2FileInfo const DBFilesClientList[] = { 4530951, "UIModifiedInstance.db2" }, { 3556601, "UIScriptedAnimationEffect.db2" }, { 2960122, "UISplashScreen.db2" }, + { 3055924, "UiCamFbackTalkingHeadChrRace.db2" }, { 1261406, "UiCamFbackTransmogChrRace.db2" }, { 1261407, "UiCamFbackTransmogWeapon.db2" }, { 1120287, "UiCamera.db2" }, -- cgit v1.2.3