aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2023-01-28 01:53:26 +0100
committerShauren <shauren.trinity@gmail.com>2023-01-28 01:53:26 +0100
commit4bec7233badf9d3ab71dbdde8b24f66f7c4eedfb (patch)
treeb0d28e475ba99293fd0ca531a82a3446a027078f /src/server
parent1bb9ba457418889d848998ccf6d412b1b369a5d3 (diff)
Core: Updated to 10.0.5
Diffstat (limited to 'src/server')
-rw-r--r--src/server/game/Achievements/CriteriaHandler.cpp27
-rw-r--r--src/server/game/DataStores/DB2Metadata.h160
-rw-r--r--src/server/game/DataStores/DB2Structure.h2
-rw-r--r--src/server/game/DataStores/DBCEnums.h6
-rw-r--r--src/server/game/Entities/GameObject/GameObjectData.h24
-rw-r--r--src/server/game/Entities/Object/Updates/UpdateFields.cpp457
-rw-r--r--src/server/game/Entities/Object/Updates/UpdateFields.h305
-rw-r--r--src/server/game/Entities/Player/Player.cpp43
-rw-r--r--src/server/game/Entities/Player/Player.h9
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp16
-rw-r--r--src/server/game/Globals/ObjectMgr.h4
-rw-r--r--src/server/game/Handlers/CharacterHandler.cpp2
-rw-r--r--src/server/game/Handlers/MailHandler.cpp10
-rw-r--r--src/server/game/Handlers/QuestHandler.cpp5
-rw-r--r--src/server/game/Mails/Mail.cpp6
-rw-r--r--src/server/game/Mails/Mail.h2
-rw-r--r--src/server/game/Miscellaneous/SharedDefines.h573
-rw-r--r--src/server/game/Server/Packets/BattlegroundPackets.cpp12
-rw-r--r--src/server/game/Server/Packets/BattlegroundPackets.h8
-rw-r--r--src/server/game/Server/Packets/CraftingPacketsCommon.cpp9
-rw-r--r--src/server/game/Server/Packets/CraftingPacketsCommon.h9
-rw-r--r--src/server/game/Server/Packets/MailPackets.cpp16
-rw-r--r--src/server/game/Server/Packets/MailPackets.h32
-rw-r--r--src/server/game/Server/Packets/PerksProgramPacketsCommon.cpp38
-rw-r--r--src/server/game/Server/Packets/PerksProgramPacketsCommon.h42
-rw-r--r--src/server/game/Server/Packets/QuestPackets.cpp16
-rw-r--r--src/server/game/Server/Packets/QuestPackets.h10
-rw-r--r--src/server/game/Server/Packets/SpellPackets.cpp1
-rw-r--r--src/server/game/Server/Packets/SpellPackets.h1
-rw-r--r--src/server/game/Server/Packets/SystemPackets.cpp12
-rw-r--r--src/server/game/Server/Packets/SystemPackets.h3
-rw-r--r--src/server/game/Server/Packets/TicketPackets.h4
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp16
-rw-r--r--src/server/game/Server/Protocol/Opcodes.h1538
-rw-r--r--src/server/game/Server/WorldSession.h2
-rw-r--r--src/server/game/Tools/PlayerDump.cpp4
36 files changed, 1924 insertions, 1500 deletions
diff --git a/src/server/game/Achievements/CriteriaHandler.cpp b/src/server/game/Achievements/CriteriaHandler.cpp
index 992b4e72393..812cddfe1d9 100644
--- a/src/server/game/Achievements/CriteriaHandler.cpp
+++ b/src/server/game/Achievements/CriteriaHandler.cpp
@@ -3858,6 +3858,10 @@ bool CriteriaHandler::ModifierSatisfied(ModifierTreeEntry const* modifier, uint6
if (GameTime::GetGameTime() - referencePlayer->m_playerData->LogoutTime < int64(reqValue) * DAY)
return false;
break;
+ case ModifierTreeType::PlayerHasPerksProgramPendingReward: // 350
+ if (!referencePlayer->m_activePlayerData->HasPerksProgramPendingReward)
+ return false;
+ break;
case ModifierTreeType::PlayerCanUseItem: // 351
{
ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(reqValue);
@@ -3865,6 +3869,29 @@ bool CriteriaHandler::ModifierSatisfied(ModifierTreeEntry const* modifier, uint6
return false;
break;
}
+ case ModifierTreeType::PlayerHasAtLeastProfPathRanks: // 355
+ {
+ auto traitNodeEntryRankCount = [referencePlayer, secondaryAsset]()
+ {
+ uint32 ranks = 0;
+ for (UF::TraitConfig const& traitConfig : referencePlayer->m_activePlayerData->TraitConfigs)
+ {
+ if (TraitConfigType(*traitConfig.Type) != TraitConfigType::Profession)
+ continue;
+
+ if (*traitConfig.SkillLineID != int32(secondaryAsset))
+ continue;
+
+ for (UF::TraitEntry const& traitEntry : traitConfig.Entries)
+ if (sTraitNodeEntryStore.AssertEntry(traitEntry.TraitNodeEntryID)->GetNodeEntryType() == TraitNodeEntryType::ProfPath)
+ ranks += traitEntry.Rank + traitEntry.GrantedRanks;
+ }
+ return ranks;
+ }();
+ if (traitNodeEntryRankCount < reqValue)
+ return false;
+ break;
+ }
default:
return false;
}
diff --git a/src/server/game/DataStores/DB2Metadata.h b/src/server/game/DataStores/DB2Metadata.h
index 94edeac3806..3713c5c6b1d 100644
--- a/src/server/game/DataStores/DB2Metadata.h
+++ b/src/server/game/DataStores/DB2Metadata.h
@@ -2581,15 +2581,17 @@ struct CommentatorStartLocationMeta
struct CommentatorTrackedCooldownMeta
{
- static constexpr DB2MetaField Fields[4] =
+ static constexpr DB2MetaField Fields[6] =
{
{ FT_INT, 1, true },
{ FT_BYTE, 1, false },
{ FT_BYTE, 1, true },
{ FT_INT, 1, true },
+ { FT_INT, 1, true },
+ { FT_INT, 1, true },
};
- static constexpr DB2Meta Instance{ 1661584, -1, 4, 3, 0xDF3511FC, Fields, 3 };
+ static constexpr DB2Meta Instance{ 1661584, -1, 6, 5, 0x43CD7801, Fields, 5 };
};
struct CommunityIconMeta
@@ -5323,7 +5325,7 @@ struct GossipXUIDisplayInfoMeta
struct GradientEffectMeta
{
- static constexpr DB2MetaField Fields[16] =
+ static constexpr DB2MetaField Fields[18] =
{
{ FT_FLOAT, 1, true },
{ FT_FLOAT, 1, true },
@@ -5341,9 +5343,11 @@ struct GradientEffectMeta
{ FT_FLOAT, 1, true },
{ FT_INT, 1, true },
{ FT_INT, 1, true },
+ { FT_FLOAT, 1, true },
+ { FT_FLOAT, 1, true },
};
- static constexpr DB2Meta Instance{ 2433582, -1, 16, 16, 0x1E246107, Fields, -1 };
+ static constexpr DB2Meta Instance{ 2433582, -1, 18, 18, 0xA5B6854E, Fields, -1 };
};
struct GroundEffectDoodadMeta
@@ -6109,10 +6113,11 @@ struct ItemDisenchantLootMeta
struct ItemDisplayInfoMeta
{
- static constexpr DB2MetaField Fields[15] =
+ static constexpr DB2MetaField Fields[16] =
{
{ FT_INT, 1, true },
{ FT_INT, 1, true },
+ { FT_INT, 1, true },
{ FT_INT, 1, false },
{ FT_INT, 1, false },
{ FT_INT, 1, true },
@@ -6128,7 +6133,7 @@ struct ItemDisplayInfoMeta
{ FT_INT, 2, true },
};
- static constexpr DB2Meta Instance{ 1266429, -1, 15, 15, 0xF2D99687, Fields, -1 };
+ static constexpr DB2Meta Instance{ 1266429, -1, 16, 16, 0xD922B51F, Fields, -1 };
};
struct ItemDisplayInfoMaterialResMeta
@@ -8403,6 +8408,134 @@ struct PathPropertyMeta
static constexpr DB2Meta Instance{ 801735, -1, 3, 3, 0x635DCADD, Fields, -1 };
};
+struct PerksActivityMeta
+{
+ static constexpr DB2MetaField Fields[5] =
+ {
+ { FT_STRING, 1, true },
+ { FT_STRING, 1, true },
+ { FT_INT, 1, false },
+ { FT_INT, 1, true },
+ { FT_INT, 1, true },
+ };
+
+ static constexpr DB2Meta Instance{ 4519766, 2, 5, 5, 0x6FD48C11, Fields, -1 };
+};
+
+struct PerksActivityTagMeta
+{
+ static constexpr DB2MetaField Fields[2] =
+ {
+ { FT_STRING, 1, true },
+ { FT_INT, 1, false },
+ };
+
+ static constexpr DB2Meta Instance{ 4694317, 1, 2, 2, 0x0FBA68B8, Fields, -1 };
+};
+
+struct PerksActivityThresholdMeta
+{
+ static constexpr DB2MetaField Fields[5] =
+ {
+ { FT_INT, 1, false },
+ { FT_INT, 1, true },
+ { FT_INT, 1, true },
+ { FT_INT, 1, true },
+ { FT_INT, 1, true },
+ };
+
+ static constexpr DB2Meta Instance{ 4519767, 0, 5, 4, 0xF25916E9, Fields, 4 };
+};
+
+struct PerksActivityThresholdGroupMeta
+{
+ static constexpr DB2MetaField Fields[3] =
+ {
+ { FT_STRING, 1, true },
+ { FT_INT, 1, false },
+ { FT_INT, 1, true },
+ };
+
+ static constexpr DB2Meta Instance{ 4519768, 1, 3, 3, 0x780A31D9, Fields, -1 };
+};
+
+struct PerksActivityXIntervalMeta
+{
+ static constexpr DB2MetaField Fields[3] =
+ {
+ { FT_INT, 1, false },
+ { FT_INT, 1, true },
+ { FT_INT, 1, true },
+ };
+
+ static constexpr DB2Meta Instance{ 4519781, 0, 3, 2, 0xA0A40503, Fields, 2 };
+};
+
+struct PerksActivityXTagMeta
+{
+ static constexpr DB2MetaField Fields[3] =
+ {
+ { FT_INT, 1, false },
+ { FT_INT, 1, true },
+ { FT_INT, 1, true },
+ };
+
+ static constexpr DB2Meta Instance{ 4694318, 0, 3, 2, 0x5254EC49, Fields, 2 };
+};
+
+struct PerksVendorCategoryMeta
+{
+ static constexpr DB2MetaField Fields[4] =
+ {
+ { FT_STRING, 1, true },
+ { FT_INT, 1, false },
+ { FT_INT, 1, true },
+ { FT_INT, 1, true },
+ };
+
+ static constexpr DB2Meta Instance{ 4281310, 1, 4, 4, 0x94980739, Fields, -1 };
+};
+
+struct PerksVendorItemMeta
+{
+ static constexpr DB2MetaField Fields[8] =
+ {
+ { FT_INT, 1, false },
+ { FT_INT, 1, true },
+ { FT_INT, 1, true },
+ { FT_INT, 1, true },
+ { FT_INT, 1, true },
+ { FT_INT, 1, true },
+ { FT_INT, 1, true },
+ { FT_INT, 1, true },
+ };
+
+ static constexpr DB2Meta Instance{ 4281311, 0, 8, 8, 0x451B856E, Fields, -1 };
+};
+
+struct PerksVendorItemUIInfoMeta
+{
+ static constexpr DB2MetaField Fields[3] =
+ {
+ { FT_INT, 1, false },
+ { FT_INT, 1, true },
+ { FT_INT, 1, true },
+ };
+
+ static constexpr DB2Meta Instance{ 4281312, 0, 3, 3, 0xD787F0DD, Fields, -1 };
+};
+
+struct PerksVendorItemXIntervalMeta
+{
+ static constexpr DB2MetaField Fields[2] =
+ {
+ { FT_INT, 1, true },
+ { FT_INT, 1, true },
+ };
+
+ static constexpr DB2Meta Instance{ 4872513, -1, 2, 2, 0xD8D92220, Fields, -1 };
+};
+
struct PhaseMeta
{
static constexpr DB2MetaField Fields[1] =
@@ -12808,14 +12941,15 @@ struct UiMapXMapArtMeta
struct UiModelSceneMeta
{
- static constexpr DB2MetaField Fields[3] =
+ static constexpr DB2MetaField Fields[4] =
{
{ FT_INT, 1, false },
{ FT_BYTE, 1, true },
- { FT_BYTE, 1, false },
+ { FT_BYTE, 1, true },
+ { FT_INT, 1, true },
};
- static constexpr DB2Meta Instance{ 1548215, 0, 3, 3, 0x97CD29E5, Fields, -1 };
+ static constexpr DB2Meta Instance{ 1548215, 0, 4, 4, 0xD6CFDD08, Fields, -1 };
};
struct UiModelSceneActorMeta
@@ -12825,16 +12959,16 @@ struct UiModelSceneActorMeta
{ FT_STRING_NOT_LOCALIZED, 1, true },
{ FT_FLOAT, 3, true },
{ FT_INT, 1, false },
+ { FT_INT, 1, true },
{ FT_BYTE, 1, false },
{ FT_INT, 1, true },
{ FT_FLOAT, 1, true },
{ FT_FLOAT, 1, true },
{ FT_FLOAT, 1, true },
{ FT_FLOAT, 1, true },
- { FT_INT, 1, true },
};
- static constexpr DB2Meta Instance{ 1548214, 2, 10, 9, 0xA3270DEE, Fields, 9 };
+ static constexpr DB2Meta Instance{ 1548214, 2, 10, 10, 0x6B7EE2AC, Fields, 3 };
};
struct UiModelSceneActorDisplayMeta
@@ -12861,6 +12995,7 @@ struct UiModelSceneCameraMeta
{ FT_FLOAT, 3, true },
{ FT_FLOAT, 3, true },
{ FT_INT, 1, false },
+ { FT_INT, 1, true },
{ FT_BYTE, 1, false },
{ FT_BYTE, 1, false },
{ FT_FLOAT, 1, true },
@@ -12872,10 +13007,9 @@ struct UiModelSceneCameraMeta
{ FT_FLOAT, 1, true },
{ FT_FLOAT, 1, true },
{ FT_FLOAT, 1, true },
- { FT_INT, 1, true },
};
- static constexpr DB2Meta Instance{ 1548213, 3, 16, 15, 0x10F8A956, Fields, 15 };
+ static constexpr DB2Meta Instance{ 1548213, 3, 16, 16, 0x1C131B80, Fields, 4 };
};
struct UiPartyPoseMeta
diff --git a/src/server/game/DataStores/DB2Structure.h b/src/server/game/DataStores/DB2Structure.h
index 47b91ff31f0..9511f1e0596 100644
--- a/src/server/game/DataStores/DB2Structure.h
+++ b/src/server/game/DataStores/DB2Structure.h
@@ -3966,6 +3966,8 @@ struct TraitNodeEntryEntry
int32 TraitDefinitionID;
int32 MaxRanks;
uint8 NodeEntryType;
+
+ TraitNodeEntryType GetNodeEntryType() const { return static_cast<TraitNodeEntryType>(NodeEntryType); }
};
struct TraitNodeEntryXTraitCondEntry
diff --git a/src/server/game/DataStores/DBCEnums.h b/src/server/game/DataStores/DBCEnums.h
index a73502f9780..d211af84e69 100644
--- a/src/server/game/DataStores/DBCEnums.h
+++ b/src/server/game/DataStores/DBCEnums.h
@@ -616,6 +616,8 @@ enum class CriteriaType : uint8
FulfillAnyCraftingOrder = 245, /*NYI*/
FulfillCraftingOrderType = 246, /*NYI*/ // {CraftingOrderType}
+
+ PerksProgramMonthComplete = 249, /*NYI*/
Count
};
@@ -1466,7 +1468,11 @@ enum class ModifierTreeType : int32
CraftingOrderSkillLineAbility = 347, /*NYI*/
CraftingOrderProfession = 348, /*NYI*/ // ProfessionEnum
+ PlayerHasPerksProgramPendingReward = 350,
PlayerCanUseItem = 351, // Player can use item {#Item}
+
+ PlayerHasAtLeastProfPathRanks = 355, // Player has purchased or granted at least {#Count} ranks in {SkillLine} config
+ PlayerHasAtLeastMissingProfPathRanks = 356, /*NYI*/ // Player is missing least {#Count} ranks in {SkillLine} config
};
enum class ModifierTreeOperator : int8
diff --git a/src/server/game/Entities/GameObject/GameObjectData.h b/src/server/game/Entities/GameObject/GameObjectData.h
index 1012000322c..91b95eb0888 100644
--- a/src/server/game/Entities/GameObject/GameObjectData.h
+++ b/src/server/game/Entities/GameObject/GameObjectData.h
@@ -40,7 +40,7 @@ struct GameObjectTemplate
int32 ContentTuningId;
union
{
- // 0 GAMEOBJECT_TYPE_DOOR
+ // 0 GAMEOBJECT_TYPE_DOOR
struct
{
uint32 startOpen; // 0 startOpen, enum { false, true, }; Default: false
@@ -512,6 +512,7 @@ struct GameObjectTemplate
uint32 SitAnimKit; // 2 Sit Anim Kit, References: AnimKit, NoValue = 0
uint32 InteractRadiusOverride; // 3 Interact Radius Override (in hundredths), int, Min value: 0, Max value: 2147483647, Default value: 0
uint32 CustomizationScope; // 4 Customization Scope, int, Min value: 0, Max value: 2147483647, Default value: 0
+ uint32 Preventteleportingtheplayeroutofthebarbershopchair;// 5 Prevent teleporting the player out of the barbershop chair, enum { false, true, }; Default: false
} barberChair;
// 33 GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING
struct
@@ -818,6 +819,12 @@ struct GameObjectTemplate
{
uint32 Profession; // 0 Profession, enum { First Aid, Blacksmithing, Leatherworking, Alchemy, Herbalism, Cooking, Mining, Tailoring, Engineering, Enchanting, Fishing, Skinning, Jewelcrafting, Inscription, Archaeology, }; Default: Blacksmithing
} craftingTable;
+ // 62 GAMEOBJECT_TYPE_PERKS_PROGRAM_CHEST
+ struct
+ {
+ uint32 Script; // 0 Script, References: SpellScript, NoValue = 0
+ uint32 autoClose; // 1 autoClose (ms), int, Min value: 0, Max value: 2147483647, Default value: 3000
+ } PerksProgramChest;
struct
{
uint32 data[MAX_GAMEOBJECT_DATA];
@@ -1052,13 +1059,14 @@ struct GameObjectTemplate
{
switch (type)
{
- case GAMEOBJECT_TYPE_DOOR: return door.autoClose;
- case GAMEOBJECT_TYPE_BUTTON: return button.autoClose;
- case GAMEOBJECT_TYPE_TRAP: return trap.autoClose;
- case GAMEOBJECT_TYPE_GOOBER: return goober.autoClose;
- case GAMEOBJECT_TYPE_TRANSPORT: return transport.autoClose;
- case GAMEOBJECT_TYPE_AREADAMAGE: return areaDamage.autoClose;
- case GAMEOBJECT_TYPE_TRAPDOOR: return trapdoor.autoClose;
+ case GAMEOBJECT_TYPE_DOOR: return door.autoClose;
+ case GAMEOBJECT_TYPE_BUTTON: return button.autoClose;
+ case GAMEOBJECT_TYPE_TRAP: return trap.autoClose;
+ case GAMEOBJECT_TYPE_GOOBER: return goober.autoClose;
+ case GAMEOBJECT_TYPE_TRANSPORT: return transport.autoClose;
+ case GAMEOBJECT_TYPE_AREADAMAGE: return areaDamage.autoClose;
+ case GAMEOBJECT_TYPE_TRAPDOOR: return trapdoor.autoClose;
+ case GAMEOBJECT_TYPE_PERKS_PROGRAM_CHEST: return PerksProgramChest.autoClose;
default: return 0;
}
}
diff --git a/src/server/game/Entities/Object/Updates/UpdateFields.cpp b/src/server/game/Entities/Object/Updates/UpdateFields.cpp
index 1b7632da868..1cb77b9afe2 100644
--- a/src/server/game/Entities/Object/Updates/UpdateFields.cpp
+++ b/src/server/game/Entities/Object/Updates/UpdateFields.cpp
@@ -1107,6 +1107,7 @@ void UnitData::WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisi
data << int32(LooksLikeMountID);
data << int32(LooksLikeCreatureID);
data << int32(LookAtControllerID);
+ data << int32(PerksVendorItemID);
data << int32(TaxiNodesID);
data << GuildGUID;
data << uint32(PassiveSpells.size());
@@ -1131,7 +1132,7 @@ void UnitData::WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisi
void UnitData::WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Unit const* owner, Player const* receiver) const
{
- Mask allowedMaskForTarget({ 0xFFFFDFFFu, 0xC3FEFFFFu, 0x003DFFFFu, 0xFFFFFF01u, 0xFC000FFFu, 0x00000001u, 0x00000000u });
+ Mask allowedMaskForTarget({ 0xFFFFDFFFu, 0xC3FEFFFFu, 0x003DFFFFu, 0xFFFFFF01u, 0xF8001FFFu, 0x00000003u, 0x00000000u });
AppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags);
WriteUpdate(data, _changesMask & allowedMaskForTarget, false, owner, receiver);
}
@@ -1139,16 +1140,16 @@ void UnitData::WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisi
void UnitData::AppendAllowedFieldsMaskForFlag(Mask& allowedMaskForTarget, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags)
{
if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag::Owner))
- allowedMaskForTarget |= { 0x00002000u, 0x3C010000u, 0xFFC20000u, 0x200000FEu, 0x03FFF000u, 0xFFFFFFFEu, 0x0000000Fu };
+ allowedMaskForTarget |= { 0x00002000u, 0x3C010000u, 0xFFC20000u, 0x400000FEu, 0x07FFE000u, 0xFFFFFFFCu, 0x0000001Fu };
if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag::UnitAll))
- allowedMaskForTarget |= { 0x00000000u, 0x00000000u, 0x00000000u, 0x20000000u, 0x03FFF000u, 0x00000000u, 0x00000000u };
+ allowedMaskForTarget |= { 0x00000000u, 0x00000000u, 0x00000000u, 0x40000000u, 0x07FFE000u, 0x00000000u, 0x00000000u };
if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag::Empath))
- allowedMaskForTarget |= { 0x00000000u, 0x3C000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x003FC000u, 0x00000000u };
+ allowedMaskForTarget |= { 0x00000000u, 0x3C000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x007F8000u, 0x00000000u };
}
void UnitData::FilterDisallowedFieldsMaskForFlag(Mask& changesMask, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags)
{
- Mask allowedMaskForTarget({ 0xFFFFDFFFu, 0xC3FEFFFFu, 0x003DFFFFu, 0xFFFFFF01u, 0xFC000FFFu, 0x00000001u, 0x00000000u });
+ Mask allowedMaskForTarget({ 0xFFFFDFFFu, 0xC3FEFFFFu, 0x003DFFFFu, 0xFFFFFF01u, 0xF8001FFFu, 0x00000003u, 0x00000000u });
AppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags);
changesMask &= allowedMaskForTarget;
}
@@ -1676,108 +1677,112 @@ void UnitData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignor
}
if (changesMask[117])
{
- data << int32(TaxiNodesID);
+ data << int32(PerksVendorItemID);
}
if (changesMask[118])
{
- data << GuildGUID;
+ data << int32(TaxiNodesID);
}
if (changesMask[119])
{
- data << int32(FlightCapabilityID);
+ data << GuildGUID;
}
if (changesMask[120])
{
- data << uint32(SilencedSchoolMask);
+ data << int32(FlightCapabilityID);
}
if (changesMask[121])
{
+ data << uint32(SilencedSchoolMask);
+ }
+ if (changesMask[122])
+ {
data << NameplateAttachToGUID;
}
}
- if (changesMask[122])
+ if (changesMask[123])
{
for (uint32 i = 0; i < 2; ++i)
{
- if (changesMask[123 + i])
+ if (changesMask[124 + i])
{
data << uint32(ViewerDependentValue<NpcFlagsTag>::GetValue(this, i, owner, receiver));
}
}
}
- if (changesMask[125])
+ if (changesMask[126])
{
for (uint32 i = 0; i < 7; ++i)
{
- if (changesMask[126 + i])
+ if (changesMask[127 + i])
{
data << int32(Power[i]);
}
- if (changesMask[133 + i])
+ if (changesMask[134 + i])
{
data << int32(MaxPower[i]);
}
- if (changesMask[140 + i])
+ if (changesMask[141 + i])
{
data << float(PowerRegenFlatModifier[i]);
}
- if (changesMask[147 + i])
+ if (changesMask[148 + i])
{
data << float(PowerRegenInterruptedFlatModifier[i]);
}
}
}
- if (changesMask[154])
+ if (changesMask[155])
{
for (uint32 i = 0; i < 3; ++i)
{
- if (changesMask[155 + i])
+ if (changesMask[156 + i])
{
VirtualItems[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver);
}
}
}
- if (changesMask[158])
+ if (changesMask[159])
{
for (uint32 i = 0; i < 2; ++i)
{
- if (changesMask[159 + i])
+ if (changesMask[160 + i])
{
data << uint32(AttackRoundBaseTime[i]);
}
}
}
- if (changesMask[161])
+ if (changesMask[162])
{
for (uint32 i = 0; i < 4; ++i)
{
- if (changesMask[162 + i])
+ if (changesMask[163 + i])
{
data << int32(Stats[i]);
}
- if (changesMask[166 + i])
+ if (changesMask[167 + i])
{
data << int32(StatPosBuff[i]);
}
- if (changesMask[170 + i])
+ if (changesMask[171 + i])
{
data << int32(StatNegBuff[i]);
}
}
}
- if (changesMask[174])
+ if (changesMask[175])
{
for (uint32 i = 0; i < 7; ++i)
{
- if (changesMask[175 + i])
+ if (changesMask[176 + i])
{
data << int32(Resistances[i]);
}
- if (changesMask[182 + i])
+ if (changesMask[183 + i])
{
data << int32(BonusResistanceMods[i]);
}
- if (changesMask[189 + i])
+ if (changesMask[190 + i])
{
data << int32(ManaCostModifier[i]);
}
@@ -1900,6 +1905,7 @@ void UnitData::ClearChangesMask()
Base::ClearChangesMask(LooksLikeMountID);
Base::ClearChangesMask(LooksLikeCreatureID);
Base::ClearChangesMask(LookAtControllerID);
+ Base::ClearChangesMask(PerksVendorItemID);
Base::ClearChangesMask(TaxiNodesID);
Base::ClearChangesMask(GuildGUID);
Base::ClearChangesMask(FlightCapabilityID);
@@ -3499,6 +3505,24 @@ void CraftingOrder::ClearChangesMask()
_changesMask.ResetAll();
}
+void PersonalCraftingOrderCount::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const
+{
+ data << int32(ProfessionID);
+ data << uint32(Count);
+}
+
+void PersonalCraftingOrderCount::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const
+{
+ data << int32(ProfessionID);
+ data << uint32(Count);
+}
+
+bool PersonalCraftingOrderCount::operator==(PersonalCraftingOrderCount const& right) const
+{
+ return ProfessionID == right.ProfessionID
+ && Count == right.Count;
+}
+
void ActivePlayerData::WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Player const* owner, Player const* receiver) const
{
for (uint32 i = 0; i < 218; ++i)
@@ -3628,6 +3652,7 @@ void ActivePlayerData::WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> f
}
data << int32(Honor);
data << int32(HonorNextLevel);
+ data << int32(PerksProgramCurrency);
data << uint8(NumBankSlots);
data << uint32(ResearchSites.size());
data << uint32(ResearchSiteProgress.size());
@@ -3665,6 +3690,7 @@ void ActivePlayerData::WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> f
data << uint32(TraitConfigs.size());
data << uint32(ActiveCombatTraitConfigID);
data << uint32(CraftingOrders.size());
+ data << uint32(PersonalCraftingOrderCounts.size());
for (uint32 i = 0; i < KnownTitles.size(); ++i)
{
data << uint64(KnownTitles[i]);
@@ -3749,17 +3775,23 @@ void ActivePlayerData::WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> f
{
data << int32(DisabledSpells[i]);
}
+ for (uint32 i = 0; i < PersonalCraftingOrderCounts.size(); ++i)
+ {
+ PersonalCraftingOrderCounts[i].WriteCreate(data, owner, receiver);
+ }
data.FlushBits();
data.WriteBit(BackpackAutoSortDisabled);
data.WriteBit(BankAutoSortDisabled);
data.WriteBit(SortBagsRightToLeft);
data.WriteBit(InsertItemsLeftToRight);
+ data.WriteBit(HasPerksProgramPendingReward);
data.WriteBits(QuestSession.has_value(), 1);
- Field_1410->WriteCreate(data, owner, receiver);
+ data << FrozenPerksVendorItem;
if (QuestSession.has_value())
{
QuestSession->WriteCreate(data, owner, receiver);
}
+ Field_1410->WriteCreate(data, owner, receiver);
data << DungeonScore;
for (uint32 i = 0; i < PvpInfo.size(); ++i)
{
@@ -3814,124 +3846,128 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo
}
if (changesMask[5])
{
+ data.WriteBit(HasPerksProgramPendingReward);
+ }
+ if (changesMask[6])
+ {
if (!ignoreNestedChangesMask)
KnownTitles.WriteUpdateMask(data);
else
WriteCompleteDynamicFieldUpdateMask(KnownTitles.size(), data);
}
- if (changesMask[6])
+ if (changesMask[7])
{
if (!ignoreNestedChangesMask)
PvpInfo.WriteUpdateMask(data);
else
WriteCompleteDynamicFieldUpdateMask(PvpInfo.size(), data);
}
- if (changesMask[7])
+ if (changesMask[8])
{
if (!ignoreNestedChangesMask)
ResearchSites.WriteUpdateMask(data);
else
WriteCompleteDynamicFieldUpdateMask(ResearchSites.size(), data);
}
- if (changesMask[8])
+ if (changesMask[9])
{
if (!ignoreNestedChangesMask)
ResearchSiteProgress.WriteUpdateMask(data);
else
WriteCompleteDynamicFieldUpdateMask(ResearchSiteProgress.size(), data);
}
- if (changesMask[9])
+ if (changesMask[10])
{
if (!ignoreNestedChangesMask)
DailyQuestsCompleted.WriteUpdateMask(data);
else
WriteCompleteDynamicFieldUpdateMask(DailyQuestsCompleted.size(), data);
}
- if (changesMask[10])
+ if (changesMask[11])
{
if (!ignoreNestedChangesMask)
AvailableQuestLineXQuestIDs.WriteUpdateMask(data);
else
WriteCompleteDynamicFieldUpdateMask(AvailableQuestLineXQuestIDs.size(), data);
}
- if (changesMask[11])
+ if (changesMask[12])
{
if (!ignoreNestedChangesMask)
Heirlooms.WriteUpdateMask(data);
else
WriteCompleteDynamicFieldUpdateMask(Heirlooms.size(), data);
}
- if (changesMask[12])
+ if (changesMask[13])
{
if (!ignoreNestedChangesMask)
HeirloomFlags.WriteUpdateMask(data);
else
WriteCompleteDynamicFieldUpdateMask(HeirloomFlags.size(), data);
}
- if (changesMask[13])
+ if (changesMask[14])
{
if (!ignoreNestedChangesMask)
Toys.WriteUpdateMask(data);
else
WriteCompleteDynamicFieldUpdateMask(Toys.size(), data);
}
- if (changesMask[14])
+ if (changesMask[15])
{
if (!ignoreNestedChangesMask)
ToyFlags.WriteUpdateMask(data);
else
WriteCompleteDynamicFieldUpdateMask(ToyFlags.size(), data);
}
- if (changesMask[15])
+ if (changesMask[16])
{
if (!ignoreNestedChangesMask)
Transmog.WriteUpdateMask(data);
else
WriteCompleteDynamicFieldUpdateMask(Transmog.size(), data);
}
- if (changesMask[16])
+ if (changesMask[17])
{
if (!ignoreNestedChangesMask)
ConditionalTransmog.WriteUpdateMask(data);
else
WriteCompleteDynamicFieldUpdateMask(ConditionalTransmog.size(), data);
}
- if (changesMask[17])
+ if (changesMask[18])
{
if (!ignoreNestedChangesMask)
SelfResSpells.WriteUpdateMask(data);
else
WriteCompleteDynamicFieldUpdateMask(SelfResSpells.size(), data);
}
- if (changesMask[18])
+ if (changesMask[19])
{
if (!ignoreNestedChangesMask)
RuneforgePowers.WriteUpdateMask(data);
else
WriteCompleteDynamicFieldUpdateMask(RuneforgePowers.size(), data);
}
- if (changesMask[19])
+ if (changesMask[20])
{
if (!ignoreNestedChangesMask)
TransmogIllusions.WriteUpdateMask(data);
else
WriteCompleteDynamicFieldUpdateMask(TransmogIllusions.size(), data);
}
- if (changesMask[20])
+ if (changesMask[21])
{
if (!ignoreNestedChangesMask)
CharacterRestrictions.WriteUpdateMask(data);
else
WriteCompleteDynamicFieldUpdateMask(CharacterRestrictions.size(), data);
}
- if (changesMask[21])
+ if (changesMask[22])
{
if (!ignoreNestedChangesMask)
SpellPctModByLabel.WriteUpdateMask(data);
else
WriteCompleteDynamicFieldUpdateMask(SpellPctModByLabel.size(), data);
}
- if (changesMask[22])
+ if (changesMask[23])
{
if (!ignoreNestedChangesMask)
SpellFlatModByLabel.WriteUpdateMask(data);
@@ -3939,11 +3975,11 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo
WriteCompleteDynamicFieldUpdateMask(SpellFlatModByLabel.size(), data);
}
}
- if (changesMask[30])
+ if (changesMask[32])
{
for (uint32 i = 0; i < 1; ++i)
{
- if (changesMask[31 + i])
+ if (changesMask[33 + i])
{
if (!ignoreNestedChangesMask)
Research[i].WriteUpdateMask(data);
@@ -3962,60 +3998,67 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo
data.FlushBits();
if (changesMask[0])
{
- if (changesMask[23])
+ if (changesMask[24])
{
if (!ignoreNestedChangesMask)
MawPowers.WriteUpdateMask(data);
else
WriteCompleteDynamicFieldUpdateMask(MawPowers.size(), data);
}
- if (changesMask[24])
+ if (changesMask[25])
{
if (!ignoreNestedChangesMask)
MultiFloorExploration.WriteUpdateMask(data);
else
WriteCompleteDynamicFieldUpdateMask(MultiFloorExploration.size(), data);
}
- if (changesMask[25])
+ if (changesMask[26])
{
if (!ignoreNestedChangesMask)
RecipeProgression.WriteUpdateMask(data);
else
WriteCompleteDynamicFieldUpdateMask(RecipeProgression.size(), data);
}
- if (changesMask[26])
+ if (changesMask[27])
{
if (!ignoreNestedChangesMask)
ReplayedQuests.WriteUpdateMask(data);
else
WriteCompleteDynamicFieldUpdateMask(ReplayedQuests.size(), data);
}
- if (changesMask[27])
+ if (changesMask[28])
{
if (!ignoreNestedChangesMask)
DisabledSpells.WriteUpdateMask(data);
else
WriteCompleteDynamicFieldUpdateMask(DisabledSpells.size(), data);
}
- if (changesMask[28])
+ if (changesMask[29])
{
if (!ignoreNestedChangesMask)
TraitConfigs.WriteUpdateMask(data);
else
WriteCompleteDynamicFieldUpdateMask(TraitConfigs.size(), data);
}
- if (changesMask[29])
+ if (changesMask[30])
{
if (!ignoreNestedChangesMask)
CraftingOrders.WriteUpdateMask(data);
else
WriteCompleteDynamicFieldUpdateMask(CraftingOrders.size(), data);
}
+ if (changesMask[31])
+ {
+ if (!ignoreNestedChangesMask)
+ PersonalCraftingOrderCounts.WriteUpdateMask(data);
+ else
+ WriteCompleteDynamicFieldUpdateMask(PersonalCraftingOrderCounts.size(), data);
+ }
}
data.FlushBits();
if (changesMask[0])
{
- if (changesMask[5])
+ if (changesMask[6])
{
for (uint32 i = 0; i < KnownTitles.size(); ++i)
{
@@ -4025,7 +4068,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo
}
}
}
- if (changesMask[7])
+ if (changesMask[8])
{
for (uint32 i = 0; i < ResearchSites.size(); ++i)
{
@@ -4035,7 +4078,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo
}
}
}
- if (changesMask[8])
+ if (changesMask[9])
{
for (uint32 i = 0; i < ResearchSiteProgress.size(); ++i)
{
@@ -4045,7 +4088,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo
}
}
}
- if (changesMask[9])
+ if (changesMask[10])
{
for (uint32 i = 0; i < DailyQuestsCompleted.size(); ++i)
{
@@ -4055,7 +4098,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo
}
}
}
- if (changesMask[10])
+ if (changesMask[11])
{
for (uint32 i = 0; i < AvailableQuestLineXQuestIDs.size(); ++i)
{
@@ -4065,7 +4108,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo
}
}
}
- if (changesMask[11])
+ if (changesMask[12])
{
for (uint32 i = 0; i < Heirlooms.size(); ++i)
{
@@ -4075,7 +4118,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo
}
}
}
- if (changesMask[12])
+ if (changesMask[13])
{
for (uint32 i = 0; i < HeirloomFlags.size(); ++i)
{
@@ -4085,7 +4128,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo
}
}
}
- if (changesMask[13])
+ if (changesMask[14])
{
for (uint32 i = 0; i < Toys.size(); ++i)
{
@@ -4095,7 +4138,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo
}
}
}
- if (changesMask[14])
+ if (changesMask[15])
{
for (uint32 i = 0; i < ToyFlags.size(); ++i)
{
@@ -4105,7 +4148,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo
}
}
}
- if (changesMask[15])
+ if (changesMask[16])
{
for (uint32 i = 0; i < Transmog.size(); ++i)
{
@@ -4115,7 +4158,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo
}
}
}
- if (changesMask[16])
+ if (changesMask[17])
{
for (uint32 i = 0; i < ConditionalTransmog.size(); ++i)
{
@@ -4125,7 +4168,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo
}
}
}
- if (changesMask[17])
+ if (changesMask[18])
{
for (uint32 i = 0; i < SelfResSpells.size(); ++i)
{
@@ -4135,7 +4178,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo
}
}
}
- if (changesMask[18])
+ if (changesMask[19])
{
for (uint32 i = 0; i < RuneforgePowers.size(); ++i)
{
@@ -4145,7 +4188,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo
}
}
}
- if (changesMask[19])
+ if (changesMask[20])
{
for (uint32 i = 0; i < TransmogIllusions.size(); ++i)
{
@@ -4155,7 +4198,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo
}
}
}
- if (changesMask[21])
+ if (changesMask[22])
{
for (uint32 i = 0; i < SpellPctModByLabel.size(); ++i)
{
@@ -4165,7 +4208,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo
}
}
}
- if (changesMask[22])
+ if (changesMask[23])
{
for (uint32 i = 0; i < SpellFlatModByLabel.size(); ++i)
{
@@ -4175,7 +4218,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo
}
}
}
- if (changesMask[23])
+ if (changesMask[24])
{
for (uint32 i = 0; i < MawPowers.size(); ++i)
{
@@ -4185,7 +4228,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo
}
}
}
- if (changesMask[24])
+ if (changesMask[25])
{
for (uint32 i = 0; i < MultiFloorExploration.size(); ++i)
{
@@ -4195,7 +4238,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo
}
}
}
- if (changesMask[25])
+ if (changesMask[26])
{
for (uint32 i = 0; i < RecipeProgression.size(); ++i)
{
@@ -4205,7 +4248,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo
}
}
}
- if (changesMask[26])
+ if (changesMask[27])
{
for (uint32 i = 0; i < ReplayedQuests.size(); ++i)
{
@@ -4215,7 +4258,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo
}
}
}
- if (changesMask[27])
+ if (changesMask[28])
{
for (uint32 i = 0; i < DisabledSpells.size(); ++i)
{
@@ -4225,7 +4268,17 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo
}
}
}
- if (changesMask[6])
+ if (changesMask[31])
+ {
+ for (uint32 i = 0; i < PersonalCraftingOrderCounts.size(); ++i)
+ {
+ if (PersonalCraftingOrderCounts.HasChanged(i) || ignoreNestedChangesMask)
+ {
+ PersonalCraftingOrderCounts[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver);
+ }
+ }
+ }
+ if (changesMask[7])
{
for (uint32 i = 0; i < PvpInfo.size(); ++i)
{
@@ -4235,7 +4288,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo
}
}
}
- if (changesMask[20])
+ if (changesMask[21])
{
for (uint32 i = 0; i < CharacterRestrictions.size(); ++i)
{
@@ -4245,7 +4298,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo
}
}
}
- if (changesMask[28])
+ if (changesMask[29])
{
for (uint32 i = 0; i < TraitConfigs.size(); ++i)
{
@@ -4255,7 +4308,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo
}
}
}
- if (changesMask[29])
+ if (changesMask[30])
{
for (uint32 i = 0; i < CraftingOrders.size(); ++i)
{
@@ -4265,324 +4318,328 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo
}
}
}
- if (changesMask[32])
- {
- data << FarsightObject;
- }
- if (changesMask[33])
- {
- data << SummonedBattlePetGUID;
- }
}
if (changesMask[34])
{
if (changesMask[35])
{
- data << uint64(Coinage);
+ data << FarsightObject;
}
if (changesMask[36])
{
- data << int32(XP);
+ data << SummonedBattlePetGUID;
}
if (changesMask[37])
{
- data << int32(NextLevelXP);
+ data << uint64(Coinage);
}
if (changesMask[38])
{
- data << int32(TrialXP);
+ data << int32(XP);
}
if (changesMask[39])
{
- Skill->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver);
+ data << int32(NextLevelXP);
}
if (changesMask[40])
{
- data << int32(CharacterPoints);
+ data << int32(TrialXP);
}
if (changesMask[41])
{
- data << int32(MaxTalentTiers);
+ Skill->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver);
}
if (changesMask[42])
{
- data << uint32(TrackCreatureMask);
+ data << int32(CharacterPoints);
}
if (changesMask[43])
{
- data << float(MainhandExpertise);
+ data << int32(MaxTalentTiers);
}
if (changesMask[44])
{
- data << float(OffhandExpertise);
+ data << uint32(TrackCreatureMask);
}
if (changesMask[45])
{
- data << float(RangedExpertise);
+ data << float(MainhandExpertise);
}
if (changesMask[46])
{
- data << float(CombatRatingExpertise);
+ data << float(OffhandExpertise);
}
if (changesMask[47])
{
- data << float(BlockPercentage);
+ data << float(RangedExpertise);
}
if (changesMask[48])
{
- data << float(DodgePercentage);
+ data << float(CombatRatingExpertise);
}
if (changesMask[49])
{
- data << float(DodgePercentageFromAttribute);
+ data << float(BlockPercentage);
}
if (changesMask[50])
{
- data << float(ParryPercentage);
+ data << float(DodgePercentage);
}
if (changesMask[51])
{
- data << float(ParryPercentageFromAttribute);
+ data << float(DodgePercentageFromAttribute);
}
if (changesMask[52])
{
- data << float(CritPercentage);
+ data << float(ParryPercentage);
}
if (changesMask[53])
{
- data << float(RangedCritPercentage);
+ data << float(ParryPercentageFromAttribute);
}
if (changesMask[54])
{
- data << float(OffhandCritPercentage);
+ data << float(CritPercentage);
}
if (changesMask[55])
{
- data << float(SpellCritPercentage);
+ data << float(RangedCritPercentage);
}
if (changesMask[56])
{
- data << int32(ShieldBlock);
+ data << float(OffhandCritPercentage);
}
if (changesMask[57])
{
- data << float(ShieldBlockCritPercentage);
+ data << float(SpellCritPercentage);
}
if (changesMask[58])
{
- data << float(Mastery);
+ data << int32(ShieldBlock);
}
if (changesMask[59])
{
- data << float(Speed);
+ data << float(ShieldBlockCritPercentage);
}
if (changesMask[60])
{
- data << float(Avoidance);
+ data << float(Mastery);
}
if (changesMask[61])
{
- data << float(Sturdiness);
+ data << float(Speed);
}
if (changesMask[62])
{
- data << int32(Versatility);
+ data << float(Avoidance);
}
if (changesMask[63])
{
- data << float(VersatilityBonus);
+ data << float(Sturdiness);
}
if (changesMask[64])
{
- data << float(PvpPowerDamage);
+ data << int32(Versatility);
}
if (changesMask[65])
{
- data << float(PvpPowerHealing);
+ data << float(VersatilityBonus);
}
}
if (changesMask[66])
{
if (changesMask[67])
{
- data << int32(ModHealingDonePos);
+ data << float(PvpPowerDamage);
}
if (changesMask[68])
{
- data << float(ModHealingPercent);
+ data << float(PvpPowerHealing);
}
if (changesMask[69])
{
- data << float(ModPeriodicHealingDonePercent);
+ data << int32(ModHealingDonePos);
}
if (changesMask[70])
{
- data << float(ModSpellPowerPercent);
+ data << float(ModHealingPercent);
}
if (changesMask[71])
{
- data << float(ModResiliencePercent);
+ data << float(ModPeriodicHealingDonePercent);
}
if (changesMask[72])
{
- data << float(OverrideSpellPowerByAPPercent);
+ data << float(ModSpellPowerPercent);
}
if (changesMask[73])
{
- data << float(OverrideAPBySpellPowerPercent);
+ data << float(ModResiliencePercent);
}
if (changesMask[74])
{
- data << int32(ModTargetResistance);
+ data << float(OverrideSpellPowerByAPPercent);
}
if (changesMask[75])
{
- data << int32(ModTargetPhysicalResistance);
+ data << float(OverrideAPBySpellPowerPercent);
}
if (changesMask[76])
{
- data << uint32(LocalFlags);
+ data << int32(ModTargetResistance);
}
if (changesMask[77])
{
- data << uint8(GrantableLevels);
+ data << int32(ModTargetPhysicalResistance);
}
if (changesMask[78])
{
- data << uint8(MultiActionBars);
+ data << uint32(LocalFlags);
}
if (changesMask[79])
{
- data << uint8(LifetimeMaxRank);
+ data << uint8(GrantableLevels);
}
if (changesMask[80])
{
- data << uint8(NumRespecs);
+ data << uint8(MultiActionBars);
}
if (changesMask[81])
{
- data << uint32(PvpMedals);
+ data << uint8(LifetimeMaxRank);
}
if (changesMask[82])
{
- data << uint16(TodayHonorableKills);
+ data << uint8(NumRespecs);
}
if (changesMask[83])
{
- data << uint16(YesterdayHonorableKills);
+ data << uint32(PvpMedals);
}
if (changesMask[84])
{
- data << uint32(LifetimeHonorableKills);
+ data << uint16(TodayHonorableKills);
}
if (changesMask[85])
{
- data << int32(WatchedFactionIndex);
+ data << uint16(YesterdayHonorableKills);
}
if (changesMask[86])
{
- data << int32(MaxLevel);
+ data << uint32(LifetimeHonorableKills);
}
if (changesMask[87])
{
- data << int32(ScalingPlayerLevelDelta);
+ data << int32(WatchedFactionIndex);
}
if (changesMask[88])
{
- data << int32(MaxCreatureScalingLevel);
+ data << int32(MaxLevel);
}
if (changesMask[89])
{
- data << int32(PetSpellPower);
+ data << int32(ScalingPlayerLevelDelta);
}
if (changesMask[90])
{
- data << float(UiHitModifier);
+ data << int32(MaxCreatureScalingLevel);
}
if (changesMask[91])
{
- data << float(UiSpellHitModifier);
+ data << int32(PetSpellPower);
}
if (changesMask[92])
{
- data << int32(HomeRealmTimeOffset);
+ data << float(UiHitModifier);
}
if (changesMask[93])
{
- data << float(ModPetHaste);
+ data << float(UiSpellHitModifier);
}
if (changesMask[94])
{
- data << int8(JailersTowerLevelMax);
+ data << int32(HomeRealmTimeOffset);
}
if (changesMask[95])
{
- data << int8(JailersTowerLevel);
+ data << float(ModPetHaste);
}
if (changesMask[96])
{
- data << uint8(LocalRegenFlags);
+ data << int8(JailersTowerLevelMax);
}
if (changesMask[97])
{
- data << uint8(AuraVision);
+ data << int8(JailersTowerLevel);
}
}
if (changesMask[98])
{
if (changesMask[99])
{
- data << uint8(NumBackpackSlots);
+ data << uint8(LocalRegenFlags);
}
if (changesMask[100])
{
- data << int32(OverrideSpellsID);
+ data << uint8(AuraVision);
}
if (changesMask[101])
{
- data << uint16(LootSpecID);
+ data << uint8(NumBackpackSlots);
}
if (changesMask[102])
{
- data << uint32(OverrideZonePVPType);
+ data << int32(OverrideSpellsID);
}
if (changesMask[103])
{
- data << BnetAccount;
+ data << uint16(LootSpecID);
}
if (changesMask[104])
{
- data << uint64(GuildClubMemberID);
+ data << uint32(OverrideZonePVPType);
}
if (changesMask[105])
{
- data << int32(Honor);
+ data << BnetAccount;
}
if (changesMask[106])
{
- data << int32(HonorNextLevel);
+ data << uint64(GuildClubMemberID);
}
if (changesMask[107])
{
- data << uint8(NumBankSlots);
+ data << int32(Honor);
+ }
+ if (changesMask[108])
+ {
+ data << int32(HonorNextLevel);
+ }
+ if (changesMask[109])
+ {
+ data << int32(PerksProgramCurrency);
}
if (changesMask[110])
{
+ data << uint8(NumBankSlots);
+ }
+ if (changesMask[114])
+ {
data << int32(UiChromieTimeExpansionID);
}
- if (changesMask[111])
+ if (changesMask[115])
{
data << int32(TransportServerTime);
}
- if (changesMask[112])
+ if (changesMask[116])
{
data << uint32(WeeklyRewardsPeriodSinceOrigin);
}
- if (changesMask[113])
+ if (changesMask[117])
{
data << int16(DEBUGSoulbindConduitRank);
}
- if (changesMask[115])
+ if (changesMask[119])
{
data << uint32(ActiveCombatTraitConfigID);
}
@@ -4590,157 +4647,161 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo
if (changesMask[98])
{
data.WriteBits(QuestSession.has_value(), 1);
- if (changesMask[109])
+ if (changesMask[111])
{
- Field_1410->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver);
+ data << FrozenPerksVendorItem;
}
- if (changesMask[108])
+ if (changesMask[112])
{
if (QuestSession.has_value())
{
QuestSession->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver);
}
}
- if (changesMask[114])
+ if (changesMask[113])
+ {
+ Field_1410->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver);
+ }
+ if (changesMask[118])
{
data << DungeonScore;
}
}
- if (changesMask[116])
+ if (changesMask[120])
{
for (uint32 i = 0; i < 218; ++i)
{
- if (changesMask[117 + i])
+ if (changesMask[121 + i])
{
data << InvSlots[i];
}
}
}
- if (changesMask[335])
+ if (changesMask[339])
{
for (uint32 i = 0; i < 240; ++i)
{
- if (changesMask[336 + i])
+ if (changesMask[340 + i])
{
data << uint64(ExploredZones[i]);
}
}
}
- if (changesMask[576])
+ if (changesMask[580])
{
for (uint32 i = 0; i < 2; ++i)
{
- if (changesMask[577 + i])
+ if (changesMask[581 + i])
{
RestInfo[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver);
}
}
}
- if (changesMask[579])
+ if (changesMask[583])
{
for (uint32 i = 0; i < 7; ++i)
{
- if (changesMask[580 + i])
+ if (changesMask[584 + i])
{
data << int32(ModDamageDonePos[i]);
}
- if (changesMask[587 + i])
+ if (changesMask[591 + i])
{
data << int32(ModDamageDoneNeg[i]);
}
- if (changesMask[594 + i])
+ if (changesMask[598 + i])
{
data << float(ModDamageDonePercent[i]);
}
- if (changesMask[601 + i])
+ if (changesMask[605 + i])
{
data << float(ModHealingDonePercent[i]);
}
}
}
- if (changesMask[608])
+ if (changesMask[612])
{
for (uint32 i = 0; i < 3; ++i)
{
- if (changesMask[609 + i])
+ if (changesMask[613 + i])
{
data << float(WeaponDmgMultipliers[i]);
}
- if (changesMask[612 + i])
+ if (changesMask[616 + i])
{
data << float(WeaponAtkSpeedMultipliers[i]);
}
}
}
- if (changesMask[615])
+ if (changesMask[619])
{
for (uint32 i = 0; i < 12; ++i)
{
- if (changesMask[616 + i])
+ if (changesMask[620 + i])
{
data << uint32(BuybackPrice[i]);
}
- if (changesMask[628 + i])
+ if (changesMask[632 + i])
{
data << int64(BuybackTimestamp[i]);
}
}
}
- if (changesMask[640])
+ if (changesMask[644])
{
for (uint32 i = 0; i < 32; ++i)
{
- if (changesMask[641 + i])
+ if (changesMask[645 + i])
{
data << int32(CombatRatings[i]);
}
}
}
- if (changesMask[673])
+ if (changesMask[677])
{
for (uint32 i = 0; i < 4; ++i)
{
- if (changesMask[674 + i])
+ if (changesMask[678 + i])
{
data << uint32(NoReagentCostMask[i]);
}
}
}
- if (changesMask[678])
+ if (changesMask[682])
{
for (uint32 i = 0; i < 2; ++i)
{
- if (changesMask[679 + i])
+ if (changesMask[683 + i])
{
data << int32(ProfessionSkillLine[i]);
}
}
}
- if (changesMask[681])
+ if (changesMask[685])
{
for (uint32 i = 0; i < 5; ++i)
{
- if (changesMask[682 + i])
+ if (changesMask[686 + i])
{
data << uint32(BagSlotFlags[i]);
}
}
}
- if (changesMask[687])
+ if (changesMask[691])
{
for (uint32 i = 0; i < 7; ++i)
{
- if (changesMask[688 + i])
+ if (changesMask[692 + i])
{
data << uint32(BankBagSlotFlags[i]);
}
}
}
- if (changesMask[695])
+ if (changesMask[699])
{
for (uint32 i = 0; i < 875; ++i)
{
- if (changesMask[696 + i])
+ if (changesMask[700 + i])
{
data << uint64(QuestCompleted[i]);
}
@@ -4755,6 +4816,7 @@ void ActivePlayerData::ClearChangesMask()
Base::ClearChangesMask(BankAutoSortDisabled);
Base::ClearChangesMask(SortBagsRightToLeft);
Base::ClearChangesMask(InsertItemsLeftToRight);
+ Base::ClearChangesMask(HasPerksProgramPendingReward);
Base::ClearChangesMask(Research);
Base::ClearChangesMask(KnownTitles);
Base::ClearChangesMask(ResearchSites);
@@ -4777,6 +4839,7 @@ void ActivePlayerData::ClearChangesMask()
Base::ClearChangesMask(RecipeProgression);
Base::ClearChangesMask(ReplayedQuests);
Base::ClearChangesMask(DisabledSpells);
+ Base::ClearChangesMask(PersonalCraftingOrderCounts);
Base::ClearChangesMask(PvpInfo);
Base::ClearChangesMask(CharacterRestrictions);
Base::ClearChangesMask(TraitConfigs);
@@ -4853,7 +4916,9 @@ void ActivePlayerData::ClearChangesMask()
Base::ClearChangesMask(GuildClubMemberID);
Base::ClearChangesMask(Honor);
Base::ClearChangesMask(HonorNextLevel);
+ Base::ClearChangesMask(PerksProgramCurrency);
Base::ClearChangesMask(NumBankSlots);
+ Base::ClearChangesMask(FrozenPerksVendorItem);
Base::ClearChangesMask(Field_1410);
Base::ClearChangesMask(QuestSession);
Base::ClearChangesMask(UiChromieTimeExpansionID);
diff --git a/src/server/game/Entities/Object/Updates/UpdateFields.h b/src/server/game/Entities/Object/Updates/UpdateFields.h
index a075a11ab81..3048896d2f7 100644
--- a/src/server/game/Entities/Object/Updates/UpdateFields.h
+++ b/src/server/game/Entities/Object/Updates/UpdateFields.h
@@ -22,6 +22,7 @@
#include "ItemPacketsCommon.h"
#include "MythicPlusPacketsCommon.h"
#include "ObjectGuid.h"
+#include "PerksProgramPacketsCommon.h"
#include "Position.h"
#include "QuaternionData.h"
#include "UpdateField.h"
@@ -255,7 +256,7 @@ struct PassiveSpellHistory : public IsUpdateFieldStructureTag
bool operator!=(PassiveSpellHistory const& right) const { return !(*this == right); }
};
-struct UnitData : public IsUpdateFieldStructureTag, public HasChangesMask<196>
+struct UnitData : public IsUpdateFieldStructureTag, public HasChangesMask<197>
{
UpdateField<std::vector<uint32>, 0, 1> StateWorldEffectIDs;
DynamicUpdateField<UF::PassiveSpellHistory, 0, 2> PassiveSpells;
@@ -376,25 +377,26 @@ struct UnitData : public IsUpdateFieldStructureTag, public HasChangesMask<196>
UpdateField<int32, 96, 114> LooksLikeMountID;
UpdateField<int32, 96, 115> LooksLikeCreatureID;
UpdateField<int32, 96, 116> LookAtControllerID;
- UpdateField<int32, 96, 117> TaxiNodesID;
- UpdateField<ObjectGuid, 96, 118> GuildGUID;
- UpdateField<int32, 96, 119> FlightCapabilityID;
- UpdateField<uint32, 96, 120> SilencedSchoolMask;
- UpdateField<ObjectGuid, 96, 121> NameplateAttachToGUID; // When set, nameplate of this unit will instead appear on that object
- UpdateFieldArray<uint32, 2, 122, 123> NpcFlags;
+ UpdateField<int32, 96, 117> PerksVendorItemID;
+ UpdateField<int32, 96, 118> TaxiNodesID;
+ UpdateField<ObjectGuid, 96, 119> GuildGUID;
+ UpdateField<int32, 96, 120> FlightCapabilityID;
+ UpdateField<uint32, 96, 121> SilencedSchoolMask;
+ UpdateField<ObjectGuid, 96, 122> NameplateAttachToGUID; // When set, nameplate of this unit will instead appear on that object
+ UpdateFieldArray<uint32, 2, 123, 124> NpcFlags;
struct NpcFlagsTag : ViewerDependentValueTag<uint32> {};
- UpdateFieldArray<int32, 7, 125, 126> Power;
- UpdateFieldArray<int32, 7, 125, 133> MaxPower;
- UpdateFieldArray<float, 7, 125, 140> PowerRegenFlatModifier;
- UpdateFieldArray<float, 7, 125, 147> PowerRegenInterruptedFlatModifier;
- UpdateFieldArray<UF::VisibleItem, 3, 154, 155> VirtualItems;
- UpdateFieldArray<uint32, 2, 158, 159> AttackRoundBaseTime;
- UpdateFieldArray<int32, 4, 161, 162> Stats;
- UpdateFieldArray<int32, 4, 161, 166> StatPosBuff;
- UpdateFieldArray<int32, 4, 161, 170> StatNegBuff;
- UpdateFieldArray<int32, 7, 174, 175> Resistances;
- UpdateFieldArray<int32, 7, 174, 182> BonusResistanceMods;
- UpdateFieldArray<int32, 7, 174, 189> ManaCostModifier;
+ UpdateFieldArray<int32, 7, 126, 127> Power;
+ UpdateFieldArray<int32, 7, 126, 134> MaxPower;
+ UpdateFieldArray<float, 7, 126, 141> PowerRegenFlatModifier;
+ UpdateFieldArray<float, 7, 126, 148> PowerRegenInterruptedFlatModifier;
+ UpdateFieldArray<UF::VisibleItem, 3, 155, 156> VirtualItems;
+ UpdateFieldArray<uint32, 2, 159, 160> AttackRoundBaseTime;
+ UpdateFieldArray<int32, 4, 162, 163> Stats;
+ UpdateFieldArray<int32, 4, 162, 167> StatPosBuff;
+ UpdateFieldArray<int32, 4, 162, 171> StatNegBuff;
+ UpdateFieldArray<int32, 7, 175, 176> Resistances;
+ UpdateFieldArray<int32, 7, 175, 183> BonusResistanceMods;
+ UpdateFieldArray<int32, 7, 175, 190> ManaCostModifier;
void WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Unit const* owner, Player const* receiver) const;
void WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Unit const* owner, Player const* receiver) const;
@@ -751,136 +753,151 @@ struct CraftingOrder : public IsUpdateFieldStructureTag, public HasChangesMask<4
void ClearChangesMask();
};
-struct ActivePlayerData : public IsUpdateFieldStructureTag, public HasChangesMask<1571>
+struct PersonalCraftingOrderCount : public IsUpdateFieldStructureTag
+{
+ int32 ProfessionID;
+ uint32 Count;
+
+ void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const;
+ void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const;
+ bool operator==(PersonalCraftingOrderCount const& right) const;
+ bool operator!=(PersonalCraftingOrderCount const& right) const { return !(*this == right); }
+};
+
+struct ActivePlayerData : public IsUpdateFieldStructureTag, public HasChangesMask<1575>
{
UpdateField<bool, 0, 1> BackpackAutoSortDisabled;
UpdateField<bool, 0, 2> BankAutoSortDisabled;
UpdateField<bool, 0, 3> SortBagsRightToLeft;
UpdateField<bool, 0, 4> InsertItemsLeftToRight;
- UpdateFieldArray<DynamicUpdateFieldBase<UF::Research>, 1, 30, 31> Research;
- DynamicUpdateField<uint64, 0, 5> KnownTitles;
- DynamicUpdateField<uint16, 0, 7> ResearchSites;
- DynamicUpdateField<uint32, 0, 8> ResearchSiteProgress;
- DynamicUpdateField<int32, 0, 9> DailyQuestsCompleted;
- DynamicUpdateField<int32, 0, 10> AvailableQuestLineXQuestIDs;
- DynamicUpdateField<int32, 0, 11> Heirlooms;
- DynamicUpdateField<uint32, 0, 12> HeirloomFlags;
- DynamicUpdateField<int32, 0, 13> Toys;
- DynamicUpdateField<uint32, 0, 14> ToyFlags;
- DynamicUpdateField<uint32, 0, 15> Transmog;
- DynamicUpdateField<int32, 0, 16> ConditionalTransmog;
- DynamicUpdateField<int32, 0, 17> SelfResSpells;
- DynamicUpdateField<uint32, 0, 18> RuneforgePowers;
- DynamicUpdateField<uint32, 0, 19> TransmogIllusions;
- DynamicUpdateField<UF::SpellPctModByLabel, 0, 21> SpellPctModByLabel;
- DynamicUpdateField<UF::SpellFlatModByLabel, 0, 22> SpellFlatModByLabel;
- DynamicUpdateField<UF::MawPower, 0, 23> MawPowers;
- DynamicUpdateField<UF::MultiFloorExplore, 0, 24> MultiFloorExploration;
- DynamicUpdateField<UF::RecipeProgressionInfo, 0, 25> RecipeProgression;
- DynamicUpdateField<UF::ReplayedQuest, 0, 26> ReplayedQuests;
- DynamicUpdateField<int32, 0, 27> DisabledSpells;
- DynamicUpdateField<UF::PVPInfo, 0, 6> PvpInfo;
- DynamicUpdateField<UF::CharacterRestriction, 0, 20> CharacterRestrictions;
- DynamicUpdateField<UF::TraitConfig, 0, 28> TraitConfigs;
- DynamicUpdateField<UF::CraftingOrder, 0, 29> CraftingOrders;
- UpdateField<ObjectGuid, 0, 32> FarsightObject;
- UpdateField<ObjectGuid, 0, 33> SummonedBattlePetGUID;
- UpdateField<uint64, 34, 35> Coinage;
- UpdateField<int32, 34, 36> XP;
- UpdateField<int32, 34, 37> NextLevelXP;
- UpdateField<int32, 34, 38> TrialXP;
- UpdateField<UF::SkillInfo, 34, 39> Skill;
- UpdateField<int32, 34, 40> CharacterPoints;
- UpdateField<int32, 34, 41> MaxTalentTiers;
- UpdateField<uint32, 34, 42> TrackCreatureMask;
- UpdateField<float, 34, 43> MainhandExpertise;
- UpdateField<float, 34, 44> OffhandExpertise;
- UpdateField<float, 34, 45> RangedExpertise;
- UpdateField<float, 34, 46> CombatRatingExpertise;
- UpdateField<float, 34, 47> BlockPercentage;
- UpdateField<float, 34, 48> DodgePercentage;
- UpdateField<float, 34, 49> DodgePercentageFromAttribute;
- UpdateField<float, 34, 50> ParryPercentage;
- UpdateField<float, 34, 51> ParryPercentageFromAttribute;
- UpdateField<float, 34, 52> CritPercentage;
- UpdateField<float, 34, 53> RangedCritPercentage;
- UpdateField<float, 34, 54> OffhandCritPercentage;
- UpdateField<float, 34, 55> SpellCritPercentage;
- UpdateField<int32, 34, 56> ShieldBlock;
- UpdateField<float, 34, 57> ShieldBlockCritPercentage;
- UpdateField<float, 34, 58> Mastery;
- UpdateField<float, 34, 59> Speed;
- UpdateField<float, 34, 60> Avoidance;
- UpdateField<float, 34, 61> Sturdiness;
- UpdateField<int32, 34, 62> Versatility;
- UpdateField<float, 34, 63> VersatilityBonus;
- UpdateField<float, 34, 64> PvpPowerDamage;
- UpdateField<float, 34, 65> PvpPowerHealing;
- UpdateField<int32, 66, 67> ModHealingDonePos;
- UpdateField<float, 66, 68> ModHealingPercent;
- UpdateField<float, 66, 69> ModPeriodicHealingDonePercent;
- UpdateField<float, 66, 70> ModSpellPowerPercent;
- UpdateField<float, 66, 71> ModResiliencePercent;
- UpdateField<float, 66, 72> OverrideSpellPowerByAPPercent;
- UpdateField<float, 66, 73> OverrideAPBySpellPowerPercent;
- UpdateField<int32, 66, 74> ModTargetResistance;
- UpdateField<int32, 66, 75> ModTargetPhysicalResistance;
- UpdateField<uint32, 66, 76> LocalFlags;
- UpdateField<uint8, 66, 77> GrantableLevels;
- UpdateField<uint8, 66, 78> MultiActionBars;
- UpdateField<uint8, 66, 79> LifetimeMaxRank;
- UpdateField<uint8, 66, 80> NumRespecs;
- UpdateField<uint32, 66, 81> PvpMedals;
- UpdateField<uint16, 66, 82> TodayHonorableKills;
- UpdateField<uint16, 66, 83> YesterdayHonorableKills;
- UpdateField<uint32, 66, 84> LifetimeHonorableKills;
- UpdateField<int32, 66, 85> WatchedFactionIndex;
- UpdateField<int32, 66, 86> MaxLevel;
- UpdateField<int32, 66, 87> ScalingPlayerLevelDelta;
- UpdateField<int32, 66, 88> MaxCreatureScalingLevel;
- UpdateField<int32, 66, 89> PetSpellPower;
- UpdateField<float, 66, 90> UiHitModifier;
- UpdateField<float, 66, 91> UiSpellHitModifier;
- UpdateField<int32, 66, 92> HomeRealmTimeOffset;
- UpdateField<float, 66, 93> ModPetHaste;
- UpdateField<int8, 66, 94> JailersTowerLevelMax;
- UpdateField<int8, 66, 95> JailersTowerLevel;
- UpdateField<uint8, 66, 96> LocalRegenFlags;
- UpdateField<uint8, 66, 97> AuraVision;
- UpdateField<uint8, 98, 99> NumBackpackSlots;
- UpdateField<int32, 98, 100> OverrideSpellsID;
- UpdateField<uint16, 98, 101> LootSpecID;
- UpdateField<uint32, 98, 102> OverrideZonePVPType;
- UpdateField<ObjectGuid, 98, 103> BnetAccount;
- UpdateField<uint64, 98, 104> GuildClubMemberID;
- UpdateField<int32, 98, 105> Honor;
- UpdateField<int32, 98, 106> HonorNextLevel;
- UpdateField<uint8, 98, 107> NumBankSlots;
- UpdateField<UF::ActivePlayerUnk901, 98, 109> Field_1410;
- OptionalUpdateField<UF::QuestSession, 98, 108> QuestSession;
- UpdateField<int32, 98, 110> UiChromieTimeExpansionID;
- UpdateField<int32, 98, 111> TransportServerTime;
- UpdateField<uint32, 98, 112> WeeklyRewardsPeriodSinceOrigin; // week count since Cfg_RegionsEntry::ChallengeOrigin
- UpdateField<int16, 98, 113> DEBUGSoulbindConduitRank;
- UpdateField<WorldPackets::MythicPlus::DungeonScoreData, 98, 114> DungeonScore;
- UpdateField<uint32, 98, 115> ActiveCombatTraitConfigID;
- UpdateFieldArray<ObjectGuid, 218, 116, 117> InvSlots;
- UpdateFieldArray<uint64, 240, 335, 336> ExploredZones;
- UpdateFieldArray<UF::RestInfo, 2, 576, 577> RestInfo;
- UpdateFieldArray<int32, 7, 579, 580> ModDamageDonePos;
- UpdateFieldArray<int32, 7, 579, 587> ModDamageDoneNeg;
- UpdateFieldArray<float, 7, 579, 594> ModDamageDonePercent;
- UpdateFieldArray<float, 7, 579, 601> ModHealingDonePercent;
- UpdateFieldArray<float, 3, 608, 609> WeaponDmgMultipliers;
- UpdateFieldArray<float, 3, 608, 612> WeaponAtkSpeedMultipliers;
- UpdateFieldArray<uint32, 12, 615, 616> BuybackPrice;
- UpdateFieldArray<int64, 12, 615, 628> BuybackTimestamp;
- UpdateFieldArray<int32, 32, 640, 641> CombatRatings;
- UpdateFieldArray<uint32, 4, 673, 674> NoReagentCostMask;
- UpdateFieldArray<int32, 2, 678, 679> ProfessionSkillLine;
- UpdateFieldArray<uint32, 5, 681, 682> BagSlotFlags;
- UpdateFieldArray<uint32, 7, 687, 688> BankBagSlotFlags;
- UpdateFieldArray<uint64, 875, 695, 696> QuestCompleted;
+ UpdateField<bool, 0, 5> HasPerksProgramPendingReward;
+ UpdateFieldArray<DynamicUpdateFieldBase<UF::Research>, 1, 32, 33> Research;
+ DynamicUpdateField<uint64, 0, 6> KnownTitles;
+ DynamicUpdateField<uint16, 0, 8> ResearchSites;
+ DynamicUpdateField<uint32, 0, 9> ResearchSiteProgress;
+ DynamicUpdateField<int32, 0, 10> DailyQuestsCompleted;
+ DynamicUpdateField<int32, 0, 11> AvailableQuestLineXQuestIDs;
+ DynamicUpdateField<int32, 0, 12> Heirlooms;
+ DynamicUpdateField<uint32, 0, 13> HeirloomFlags;
+ DynamicUpdateField<int32, 0, 14> Toys;
+ DynamicUpdateField<uint32, 0, 15> ToyFlags;
+ DynamicUpdateField<uint32, 0, 16> Transmog;
+ DynamicUpdateField<int32, 0, 17> ConditionalTransmog;
+ DynamicUpdateField<int32, 0, 18> SelfResSpells;
+ DynamicUpdateField<uint32, 0, 19> RuneforgePowers;
+ DynamicUpdateField<uint32, 0, 20> TransmogIllusions;
+ DynamicUpdateField<UF::SpellPctModByLabel, 0, 22> SpellPctModByLabel;
+ DynamicUpdateField<UF::SpellFlatModByLabel, 0, 23> SpellFlatModByLabel;
+ DynamicUpdateField<UF::MawPower, 0, 24> MawPowers;
+ DynamicUpdateField<UF::MultiFloorExplore, 0, 25> MultiFloorExploration;
+ DynamicUpdateField<UF::RecipeProgressionInfo, 0, 26> RecipeProgression;
+ DynamicUpdateField<UF::ReplayedQuest, 0, 27> ReplayedQuests;
+ DynamicUpdateField<int32, 0, 28> DisabledSpells;
+ DynamicUpdateField<UF::PersonalCraftingOrderCount, 0, 31> PersonalCraftingOrderCounts;
+ DynamicUpdateField<UF::PVPInfo, 0, 7> PvpInfo;
+ DynamicUpdateField<UF::CharacterRestriction, 0, 21> CharacterRestrictions;
+ DynamicUpdateField<UF::TraitConfig, 0, 29> TraitConfigs;
+ DynamicUpdateField<UF::CraftingOrder, 0, 30> CraftingOrders;
+ UpdateField<ObjectGuid, 34, 35> FarsightObject;
+ UpdateField<ObjectGuid, 34, 36> SummonedBattlePetGUID;
+ UpdateField<uint64, 34, 37> Coinage;
+ UpdateField<int32, 34, 38> XP;
+ UpdateField<int32, 34, 39> NextLevelXP;
+ UpdateField<int32, 34, 40> TrialXP;
+ UpdateField<UF::SkillInfo, 34, 41> Skill;
+ UpdateField<int32, 34, 42> CharacterPoints;
+ UpdateField<int32, 34, 43> MaxTalentTiers;
+ UpdateField<uint32, 34, 44> TrackCreatureMask;
+ UpdateField<float, 34, 45> MainhandExpertise;
+ UpdateField<float, 34, 46> OffhandExpertise;
+ UpdateField<float, 34, 47> RangedExpertise;
+ UpdateField<float, 34, 48> CombatRatingExpertise;
+ UpdateField<float, 34, 49> BlockPercentage;
+ UpdateField<float, 34, 50> DodgePercentage;
+ UpdateField<float, 34, 51> DodgePercentageFromAttribute;
+ UpdateField<float, 34, 52> ParryPercentage;
+ UpdateField<float, 34, 53> ParryPercentageFromAttribute;
+ UpdateField<float, 34, 54> CritPercentage;
+ UpdateField<float, 34, 55> RangedCritPercentage;
+ UpdateField<float, 34, 56> OffhandCritPercentage;
+ UpdateField<float, 34, 57> SpellCritPercentage;
+ UpdateField<int32, 34, 58> ShieldBlock;
+ UpdateField<float, 34, 59> ShieldBlockCritPercentage;
+ UpdateField<float, 34, 60> Mastery;
+ UpdateField<float, 34, 61> Speed;
+ UpdateField<float, 34, 62> Avoidance;
+ UpdateField<float, 34, 63> Sturdiness;
+ UpdateField<int32, 34, 64> Versatility;
+ UpdateField<float, 34, 65> VersatilityBonus;
+ UpdateField<float, 66, 67> PvpPowerDamage;
+ UpdateField<float, 66, 68> PvpPowerHealing;
+ UpdateField<int32, 66, 69> ModHealingDonePos;
+ UpdateField<float, 66, 70> ModHealingPercent;
+ UpdateField<float, 66, 71> ModPeriodicHealingDonePercent;
+ UpdateField<float, 66, 72> ModSpellPowerPercent;
+ UpdateField<float, 66, 73> ModResiliencePercent;
+ UpdateField<float, 66, 74> OverrideSpellPowerByAPPercent;
+ UpdateField<float, 66, 75> OverrideAPBySpellPowerPercent;
+ UpdateField<int32, 66, 76> ModTargetResistance;
+ UpdateField<int32, 66, 77> ModTargetPhysicalResistance;
+ UpdateField<uint32, 66, 78> LocalFlags;
+ UpdateField<uint8, 66, 79> GrantableLevels;
+ UpdateField<uint8, 66, 80> MultiActionBars;
+ UpdateField<uint8, 66, 81> LifetimeMaxRank;
+ UpdateField<uint8, 66, 82> NumRespecs;
+ UpdateField<uint32, 66, 83> PvpMedals;
+ UpdateField<uint16, 66, 84> TodayHonorableKills;
+ UpdateField<uint16, 66, 85> YesterdayHonorableKills;
+ UpdateField<uint32, 66, 86> LifetimeHonorableKills;
+ UpdateField<int32, 66, 87> WatchedFactionIndex;
+ UpdateField<int32, 66, 88> MaxLevel;
+ UpdateField<int32, 66, 89> ScalingPlayerLevelDelta;
+ UpdateField<int32, 66, 90> MaxCreatureScalingLevel;
+ UpdateField<int32, 66, 91> PetSpellPower;
+ UpdateField<float, 66, 92> UiHitModifier;
+ UpdateField<float, 66, 93> UiSpellHitModifier;
+ UpdateField<int32, 66, 94> HomeRealmTimeOffset;
+ UpdateField<float, 66, 95> ModPetHaste;
+ UpdateField<int8, 66, 96> JailersTowerLevelMax;
+ UpdateField<int8, 66, 97> JailersTowerLevel;
+ UpdateField<uint8, 98, 99> LocalRegenFlags;
+ UpdateField<uint8, 98, 100> AuraVision;
+ UpdateField<uint8, 98, 101> NumBackpackSlots;
+ UpdateField<int32, 98, 102> OverrideSpellsID;
+ UpdateField<uint16, 98, 103> LootSpecID;
+ UpdateField<uint32, 98, 104> OverrideZonePVPType;
+ UpdateField<ObjectGuid, 98, 105> BnetAccount;
+ UpdateField<uint64, 98, 106> GuildClubMemberID;
+ UpdateField<int32, 98, 107> Honor;
+ UpdateField<int32, 98, 108> HonorNextLevel;
+ UpdateField<int32, 98, 109> PerksProgramCurrency;
+ UpdateField<uint8, 98, 110> NumBankSlots;
+ UpdateField<WorldPackets::PerksProgram::PerksVendorItem, 98, 111> FrozenPerksVendorItem;
+ UpdateField<UF::ActivePlayerUnk901, 98, 113> Field_1410;
+ OptionalUpdateField<UF::QuestSession, 98, 112> QuestSession;
+ UpdateField<int32, 98, 114> UiChromieTimeExpansionID;
+ UpdateField<int32, 98, 115> TransportServerTime;
+ UpdateField<uint32, 98, 116> WeeklyRewardsPeriodSinceOrigin; // week count since Cfg_RegionsEntry::ChallengeOrigin
+ UpdateField<int16, 98, 117> DEBUGSoulbindConduitRank;
+ UpdateField<WorldPackets::MythicPlus::DungeonScoreData, 98, 118> DungeonScore;
+ UpdateField<uint32, 98, 119> ActiveCombatTraitConfigID;
+ UpdateFieldArray<ObjectGuid, 218, 120, 121> InvSlots;
+ UpdateFieldArray<uint64, 240, 339, 340> ExploredZones;
+ UpdateFieldArray<UF::RestInfo, 2, 580, 581> RestInfo;
+ UpdateFieldArray<int32, 7, 583, 584> ModDamageDonePos;
+ UpdateFieldArray<int32, 7, 583, 591> ModDamageDoneNeg;
+ UpdateFieldArray<float, 7, 583, 598> ModDamageDonePercent;
+ UpdateFieldArray<float, 7, 583, 605> ModHealingDonePercent;
+ UpdateFieldArray<float, 3, 612, 613> WeaponDmgMultipliers;
+ UpdateFieldArray<float, 3, 612, 616> WeaponAtkSpeedMultipliers;
+ UpdateFieldArray<uint32, 12, 619, 620> BuybackPrice;
+ UpdateFieldArray<int64, 12, 619, 632> BuybackTimestamp;
+ UpdateFieldArray<int32, 32, 644, 645> CombatRatings;
+ UpdateFieldArray<uint32, 4, 677, 678> NoReagentCostMask;
+ UpdateFieldArray<int32, 2, 682, 683> ProfessionSkillLine;
+ UpdateFieldArray<uint32, 5, 685, 686> BagSlotFlags;
+ UpdateFieldArray<uint32, 7, 691, 692> BankBagSlotFlags;
+ UpdateFieldArray<uint64, 875, 699, 700> QuestCompleted;
void WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Player const* owner, Player const* receiver) const;
void WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Player const* owner, Player const* receiver) const;
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 3d51060c926..bf5e6a9a4fb 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -2650,7 +2650,7 @@ void Player::SendUnlearnSpells()
SendDirectMessage(sendUnlearnSpells.Write());
}
-void Player::RemoveMail(uint32 id)
+void Player::RemoveMail(uint64 id)
{
for (PlayerMails::iterator itr = m_mail.begin(); itr != m_mail.end(); ++itr)
{
@@ -2663,7 +2663,7 @@ void Player::RemoveMail(uint32 id)
}
}
-void Player::SendMailResult(uint32 mailId, MailResponseType mailAction, MailResponseResult mailError, uint32 equipError, ObjectGuid::LowType item_guid, uint32 item_count) const
+void Player::SendMailResult(uint64 mailId, MailResponseType mailAction, MailResponseResult mailError, uint32 equipError, ObjectGuid::LowType itemGuid, uint32 itemCount) const
{
WorldPackets::Mail::MailCommandResult result;
@@ -2675,8 +2675,8 @@ void Player::SendMailResult(uint32 mailId, MailResponseType mailAction, MailResp
result.BagResult = equipError;
else if (mailAction == MAIL_ITEM_TAKEN)
{
- result.AttachID = item_guid;
- result.QtyInInventory = item_count;
+ result.AttachID = itemGuid;
+ result.QtyInInventory = itemCount;
}
SendDirectMessage(result.Write());
}
@@ -3578,7 +3578,7 @@ void Player::ResetPvpTalents()
RemovePvpTalent(talentInfo, spec);
}
-Mail* Player::GetMail(uint32 id)
+Mail* Player::GetMail(uint64 id)
{
for (PlayerMails::iterator itr = m_mail.begin(); itr != m_mail.end(); ++itr)
if ((*itr)->messageID == id)
@@ -3865,7 +3865,7 @@ void Player::DeleteFromDB(ObjectGuid playerguid, uint32 accountId, bool updateRe
if (resultMail)
{
- std::unordered_map<uint32, std::vector<Item*>> itemsByMail;
+ std::unordered_map<uint64, std::vector<Item*>> itemsByMail;
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_MAILITEMS);
stmt->setUInt64(0, guid);
@@ -3900,7 +3900,7 @@ void Player::DeleteFromDB(ObjectGuid playerguid, uint32 accountId, bool updateRe
do
{
Field* fields = resultItems->Fetch();
- uint32 mailId = fields[44].GetUInt32();
+ uint64 mailId = fields[44].GetUInt64();
if (Item* mailItem = _LoadMailedItem(playerguid, nullptr, mailId, nullptr, fields, Trinity::Containers::MapGetValuePtr(additionalData, fields[0].GetUInt64())))
itemsByMail[mailId].push_back(mailItem);
@@ -3911,7 +3911,7 @@ void Player::DeleteFromDB(ObjectGuid playerguid, uint32 accountId, bool updateRe
{
Field* mailFields = resultMail->Fetch();
- uint32 mail_id = mailFields[0].GetUInt32();
+ uint64 mail_id = mailFields[0].GetUInt64();
uint8 mailType = mailFields[1].GetUInt8();
uint16 mailTemplateId= mailFields[2].GetUInt16();
ObjectGuid::LowType sender = mailFields[3].GetUInt64();
@@ -3923,7 +3923,7 @@ void Player::DeleteFromDB(ObjectGuid playerguid, uint32 accountId, bool updateRe
// We can return mail now
// So firstly delete the old one
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_MAIL_BY_ID);
- stmt->setUInt32(0, mail_id);
+ stmt->setUInt64(0, mail_id);
trans->Append(stmt);
// Mail is not from player
@@ -3932,7 +3932,7 @@ void Player::DeleteFromDB(ObjectGuid playerguid, uint32 accountId, bool updateRe
if (has_items)
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_MAIL_ITEM_BY_ID);
- stmt->setUInt32(0, mail_id);
+ stmt->setUInt64(0, mail_id);
trans->Append(stmt);
}
continue;
@@ -3953,7 +3953,7 @@ void Player::DeleteFromDB(ObjectGuid playerguid, uint32 accountId, bool updateRe
}
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_MAIL_ITEM_BY_ID);
- stmt->setUInt32(0, mail_id);
+ stmt->setUInt64(0, mail_id);
trans->Append(stmt);
uint32 pl_account = sCharacterCache->GetCharacterAccountIdByGuid(playerguid);
@@ -16749,9 +16749,14 @@ void Player::SendQuestUpdateAddPlayer(Quest const* quest, uint16 newCount) const
void Player::SendQuestGiverStatusMultiple()
{
+ SendQuestGiverStatusMultiple(m_clientGUIDs);
+}
+
+void Player::SendQuestGiverStatusMultiple(GuidUnorderedSet const& guids)
+{
WorldPackets::Quest::QuestGiverStatusMultiple response;
- for (auto itr = m_clientGUIDs.begin(); itr != m_clientGUIDs.end(); ++itr)
+ for (auto itr = guids.begin(); itr != guids.end(); ++itr)
{
if (itr->IsAnyTypeCreature())
{
@@ -18528,7 +18533,7 @@ Item* Player::_LoadItem(CharacterDatabaseTransaction trans, uint32 zoneId, uint3
}
// load mailed item which should receive current player
-Item* Player::_LoadMailedItem(ObjectGuid const& playerGuid, Player* player, uint32 mailId, Mail* mail, Field* fields, ItemAdditionalLoadInfo* addionalData)
+Item* Player::_LoadMailedItem(ObjectGuid const& playerGuid, Player* player, uint64 mailId, Mail* mail, Field* fields, ItemAdditionalLoadInfo* addionalData)
{
ObjectGuid::LowType itemGuid = fields[0].GetUInt64();
uint32 itemEntry = fields[1].GetUInt32();
@@ -18600,7 +18605,7 @@ void Player::_LoadMail(PreparedQueryResult mailsResult, PreparedQueryResult mail
{
m_mail.clear();
- std::unordered_map<uint32, Mail*> mailById;
+ std::unordered_map<uint64, Mail*> mailById;
if (mailsResult)
{
@@ -18609,7 +18614,7 @@ void Player::_LoadMail(PreparedQueryResult mailsResult, PreparedQueryResult mail
Field* fields = mailsResult->Fetch();
Mail* m = new Mail();
- m->messageID = fields[0].GetUInt32();
+ m->messageID = fields[0].GetUInt64();
m->messageType = fields[1].GetUInt8();
m->sender = fields[2].GetUInt64();
m->receiver = fields[3].GetUInt64();
@@ -18646,7 +18651,7 @@ void Player::_LoadMail(PreparedQueryResult mailsResult, PreparedQueryResult mail
do
{
Field* fields = mailItemsResult->Fetch();
- uint32 mailId = fields[52].GetUInt32();
+ uint64 mailId = fields[52].GetUInt64();
_LoadMailedItem(GetGUID(), this, mailId, mailById[mailId], fields, Trinity::Containers::MapGetValuePtr(additionalData, fields[0].GetUInt64()));
} while (mailItemsResult->NextRow());
}
@@ -20113,7 +20118,7 @@ void Player::_SaveMail(CharacterDatabaseTransaction trans)
stmt->setUInt64(3, m->money);
stmt->setUInt64(4, m->COD);
stmt->setUInt8(5, uint8(m->checked));
- stmt->setUInt32(6, m->messageID);
+ stmt->setUInt64(6, m->messageID);
trans->Append(stmt);
@@ -20141,11 +20146,11 @@ void Player::_SaveMail(CharacterDatabaseTransaction trans)
}
}
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_MAIL_BY_ID);
- stmt->setUInt32(0, m->messageID);
+ stmt->setUInt64(0, m->messageID);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_MAIL_ITEM_BY_ID);
- stmt->setUInt32(0, m->messageID);
+ stmt->setUInt64(0, m->messageID);
trans->Append(stmt);
}
}
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index d8ca3a8568e..3c795bcee63 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -1674,6 +1674,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
void SendQuestUpdateAddCreditSimple(QuestObjective const& obj) const;
void SendQuestUpdateAddPlayer(Quest const* quest, uint16 newCount) const;
void SendQuestGiverStatusMultiple();
+ void SendQuestGiverStatusMultiple(GuidUnorderedSet const& guids);
void SendDisplayToast(uint32 entry, DisplayToastType type, bool isBonusRoll, uint32 quantity, DisplayToastMethod method, uint32 questId = 0, Item* item = nullptr) const;
uint32 GetSharedQuestID() const { return m_sharedQuestId; }
@@ -1760,16 +1761,16 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
void SetTarget(ObjectGuid const& /*guid*/) override { } /// Used for serverside target changes, does not apply to players
void SetSelection(ObjectGuid const& guid) { SetUpdateFieldValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::Target), guid); }
- void SendMailResult(uint32 mailId, MailResponseType mailAction, MailResponseResult mailError, uint32 equipError = 0, ObjectGuid::LowType item_guid = UI64LIT(0), uint32 item_count = 0) const;
+ void SendMailResult(uint64 mailId, MailResponseType mailAction, MailResponseResult mailError, uint32 equipError = 0, ObjectGuid::LowType itemGuid = UI64LIT(0), uint32 itemCount = 0) const;
void SendNewMail() const;
void UpdateNextMailTimeAndUnreads();
void AddNewMailDeliverTime(time_t deliver_time);
- void RemoveMail(uint32 id);
+ void RemoveMail(uint64 id);
void AddMail(Mail* mail) { m_mail.push_front(mail);}// for call from WorldSession::SendMailTo
uint32 GetMailSize() const { return uint32(m_mail.size()); }
- Mail* GetMail(uint32 id);
+ Mail* GetMail(uint64 id);
PlayerMails const& GetMails() const { return m_mail; }
@@ -2915,7 +2916,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
void _LoadVoidStorage(PreparedQueryResult result);
void _LoadMail(PreparedQueryResult mailsResult, PreparedQueryResult mailItemsResult, PreparedQueryResult artifactResult, PreparedQueryResult azeriteItemResult,
PreparedQueryResult azeriteItemMilestonePowersResult, PreparedQueryResult azeriteItemUnlockedEssencesResult, PreparedQueryResult azeriteEmpoweredItemResult);
- static Item* _LoadMailedItem(ObjectGuid const& playerGuid, Player* player, uint32 mailId, Mail* mail, Field* fields, ItemAdditionalLoadInfo* addionalData);
+ static Item* _LoadMailedItem(ObjectGuid const& playerGuid, Player* player, uint64 mailId, Mail* mail, Field* fields, ItemAdditionalLoadInfo* addionalData);
void _LoadQuestStatus(PreparedQueryResult result);
void _LoadQuestStatusObjectives(PreparedQueryResult result);
void _LoadQuestStatusRewarded(PreparedQueryResult result);
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index 1169ab991a3..ea71542acf3 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -6526,7 +6526,7 @@ void ObjectMgr::ReturnOrDeleteOldMails(bool serverUp)
return; // any mails need to be returned or deleted
}
- std::map<uint32 /*messageId*/, MailItemInfoVec> itemsCache;
+ std::map<uint64 /*messageId*/, MailItemInfoVec> itemsCache;
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_EXPIRED_MAIL_ITEMS);
stmt->setUInt32(0, curTime);
if (PreparedQueryResult items = CharacterDatabase.Query(stmt))
@@ -6537,7 +6537,7 @@ void ObjectMgr::ReturnOrDeleteOldMails(bool serverUp)
Field* fields = items->Fetch();
item.item_guid = fields[0].GetUInt64();
item.item_template = fields[1].GetUInt32();
- uint32 mailId = fields[2].GetUInt32();
+ uint64 mailId = fields[2].GetUInt64();
itemsCache[mailId].push_back(item);
} while (items->NextRow());
}
@@ -6552,7 +6552,7 @@ void ObjectMgr::ReturnOrDeleteOldMails(bool serverUp)
continue;
Mail* m = new Mail;
- m->messageID = fields[0].GetUInt32();
+ m->messageID = fields[0].GetUInt64();
m->messageType = fields[1].GetUInt8();
m->sender = fields[2].GetUInt64();
m->receiver = receiver;
@@ -6582,7 +6582,7 @@ void ObjectMgr::ReturnOrDeleteOldMails(bool serverUp)
}
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_MAIL_ITEM_BY_ID);
- stmt->setUInt32(0, m->messageID);
+ stmt->setUInt64(0, m->messageID);
CharacterDatabase.Execute(stmt);
}
else
@@ -6594,7 +6594,7 @@ void ObjectMgr::ReturnOrDeleteOldMails(bool serverUp)
stmt->setInt64 (2, curTime + 30 * DAY);
stmt->setInt64 (3, curTime);
stmt->setUInt8 (4, uint8(MAIL_CHECK_MASK_RETURNED));
- stmt->setUInt32(5, m->messageID);
+ stmt->setUInt64(5, m->messageID);
CharacterDatabase.Execute(stmt);
for (MailItemInfoVec::iterator itr2 = m->items.begin(); itr2 != m->items.end(); ++itr2)
{
@@ -6616,7 +6616,7 @@ void ObjectMgr::ReturnOrDeleteOldMails(bool serverUp)
}
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_MAIL_BY_ID);
- stmt->setUInt32(0, m->messageID);
+ stmt->setUInt64(0, m->messageID);
CharacterDatabase.Execute(stmt);
delete m;
++deletedCount;
@@ -7512,7 +7512,7 @@ void ObjectMgr::SetHighestGuids()
result = CharacterDatabase.Query("SELECT MAX(id) FROM mail");
if (result)
- _mailId = (*result)[0].GetUInt32()+1;
+ _mailId = (*result)[0].GetUInt64()+1;
result = CharacterDatabase.Query("SELECT MAX(arenateamid) FROM arena_team");
if (result)
@@ -7572,7 +7572,7 @@ uint64 ObjectMgr::GenerateEquipmentSetGuid()
return _equipmentSetGuid++;
}
-uint32 ObjectMgr::GenerateMailID()
+uint64 ObjectMgr::GenerateMailID()
{
if (_mailId >= 0xFFFFFFFE)
{
diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h
index c7e205bba3a..7c791592350 100644
--- a/src/server/game/Globals/ObjectMgr.h
+++ b/src/server/game/Globals/ObjectMgr.h
@@ -1457,7 +1457,7 @@ class TC_GAME_API ObjectMgr
uint32 GenerateAuctionID();
uint64 GenerateEquipmentSetGuid();
- uint32 GenerateMailID();
+ uint64 GenerateMailID();
uint32 GeneratePetNumber();
uint64 GenerateVoidStorageItemId();
ObjectGuid::LowType GenerateCreatureSpawnId();
@@ -1794,7 +1794,7 @@ class TC_GAME_API ObjectMgr
// first free id for selected id type
uint32 _auctionId;
uint64 _equipmentSetGuid;
- std::atomic<uint32> _mailId;
+ std::atomic<uint64> _mailId;
std::atomic<uint32> _hiPetNumber;
ObjectGuid::LowType _creatureSpawnId;
ObjectGuid::LowType _gameObjectSpawnId;
diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp
index df8d7dd4aa8..6fb901e19b1 100644
--- a/src/server/game/Handlers/CharacterHandler.cpp
+++ b/src/server/game/Handlers/CharacterHandler.cpp
@@ -1467,8 +1467,6 @@ void WorldSession::SendFeatureSystemStatus()
/// START OF DUMMY VALUES
features.ComplaintStatus = COMPLAINT_ENABLED_WITH_AUTO_IGNORE;
- features.ScrollOfResurrectionRequestsRemaining = 1;
- features.ScrollOfResurrectionMaxRequestsPerDay = 1;
features.TwitterPostThrottleLimit = 60;
features.TwitterPostThrottleCooldown = 20;
features.CfgRealmID = 2;
diff --git a/src/server/game/Handlers/MailHandler.cpp b/src/server/game/Handlers/MailHandler.cpp
index 7fda82b28f3..e7773549434 100644
--- a/src/server/game/Handlers/MailHandler.cpp
+++ b/src/server/game/Handlers/MailHandler.cpp
@@ -158,7 +158,7 @@ void WorldSession::HandleSendMail(WorldPackets::Mail::SendMail& sendMail)
// test the receiver's Faction... or all items are account bound
bool accountBound = !mailInfo.Attachments.empty();
- for (auto const& att : mailInfo.Attachments)
+ for (WorldPackets::Mail::SendMail::StructSendMail::MailAttachment const& att : mailInfo.Attachments)
{
if (Item* item = player->GetItemByGuid(att.ItemGUID))
{
@@ -185,7 +185,7 @@ void WorldSession::HandleSendMail(WorldPackets::Mail::SendMail& sendMail)
std::vector<Item*> items;
- for (auto const& att : mailInfo.Attachments)
+ for (WorldPackets::Mail::SendMail::StructSendMail::MailAttachment const& att : mailInfo.Attachments)
{
if (att.ItemGUID.IsEmpty())
{
@@ -384,11 +384,11 @@ void WorldSession::HandleMailReturnToSender(WorldPackets::Mail::MailReturnToSend
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_MAIL_BY_ID);
- stmt->setUInt32(0, returnToSender.MailID);
+ stmt->setUInt64(0, returnToSender.MailID);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_MAIL_ITEM_BY_ID);
- stmt->setUInt32(0, returnToSender.MailID);
+ stmt->setUInt64(0, returnToSender.MailID);
trans->Append(stmt);
player->RemoveMail(returnToSender.MailID);
@@ -421,7 +421,7 @@ void WorldSession::HandleMailReturnToSender(WorldPackets::Mail::MailReturnToSend
//called when player takes item attached in mail
void WorldSession::HandleMailTakeItem(WorldPackets::Mail::MailTakeItem& takeItem)
{
- uint32 AttachID = takeItem.AttachID;
+ uint64 AttachID = takeItem.AttachID;
if (!CanOpenMailBox(takeItem.Mailbox))
return;
diff --git a/src/server/game/Handlers/QuestHandler.cpp b/src/server/game/Handlers/QuestHandler.cpp
index 31f7f26d089..94cbf2a48de 100644
--- a/src/server/game/Handlers/QuestHandler.cpp
+++ b/src/server/game/Handlers/QuestHandler.cpp
@@ -797,6 +797,11 @@ void WorldSession::HandleQuestgiverStatusMultipleQuery(WorldPackets::Quest::Ques
_player->SendQuestGiverStatusMultiple();
}
+void WorldSession::HandleQuestgiverStatusTrackedQueryOpcode(WorldPackets::Quest::QuestGiverStatusTrackedQuery& questGiverStatusTrackedQuery)
+{
+ _player->SendQuestGiverStatusMultiple(questGiverStatusTrackedQuery.QuestGiverGUIDs);
+}
+
void WorldSession::HandleRequestWorldQuestUpdate(WorldPackets::Quest::RequestWorldQuestUpdate& /*packet*/)
{
WorldPackets::Quest::WorldQuestUpdateResponse response;
diff --git a/src/server/game/Mails/Mail.cpp b/src/server/game/Mails/Mail.cpp
index bb9c718d169..d098d7cbd57 100644
--- a/src/server/game/Mails/Mail.cpp
+++ b/src/server/game/Mails/Mail.cpp
@@ -197,7 +197,7 @@ void MailDraft::SendMailTo(CharacterDatabaseTransaction trans, MailReceiver cons
if (pReceiver)
prepareItems(pReceiver, trans); // generate mail template items
- uint32 mailId = sObjectMgr->GenerateMailID();
+ uint64 mailId = sObjectMgr->GenerateMailID();
time_t deliver_time = GameTime::GetGameTime() + deliver_delay;
@@ -221,7 +221,7 @@ void MailDraft::SendMailTo(CharacterDatabaseTransaction trans, MailReceiver cons
// Add to DB
uint8 index = 0;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_MAIL);
- stmt->setUInt32( index, mailId);
+ stmt->setUInt64( index, mailId);
stmt->setUInt8 (++index, uint8(sender.GetMailMessageType()));
stmt->setInt8 (++index, int8(sender.GetStationery()));
stmt->setUInt16(++index, GetMailTemplateId());
@@ -241,7 +241,7 @@ void MailDraft::SendMailTo(CharacterDatabaseTransaction trans, MailReceiver cons
{
Item* pItem = mailItemIter->second;
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_MAIL_ITEM);
- stmt->setUInt32(0, mailId);
+ stmt->setUInt64(0, mailId);
stmt->setUInt64(1, pItem->GetGUID().GetCounter());
stmt->setUInt64(2, receiver.GetPlayerGUIDLow());
trans->Append(stmt);
diff --git a/src/server/game/Mails/Mail.h b/src/server/game/Mails/Mail.h
index d6f512674d5..56b90a3e4e1 100644
--- a/src/server/game/Mails/Mail.h
+++ b/src/server/game/Mails/Mail.h
@@ -171,7 +171,7 @@ typedef std::vector<MailItemInfo> MailItemInfoVec;
struct TC_GAME_API Mail
{
- uint32 messageID;
+ uint64 messageID;
uint8 messageType;
uint8 stationery;
uint16 mailTemplateId;
diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h
index 99285a33fbb..7146bab0105 100644
--- a/src/server/game/Miscellaneous/SharedDefines.h
+++ b/src/server/game/Miscellaneous/SharedDefines.h
@@ -2833,10 +2833,12 @@ enum GameobjectTypes : uint8
GAMEOBJECT_TYPE_LEGENDARY_FORGE = 57,
GAMEOBJECT_TYPE_GARR_TALENT_TREE = 58,
GAMEOBJECT_TYPE_WEEKLY_REWARD_CHEST = 59,
- GAMEOBJECT_TYPE_CLIENT_MODEL = 60
+ GAMEOBJECT_TYPE_CLIENT_MODEL = 60,
+ GAMEOBJECT_TYPE_CRAFTING_TABLE = 61,
+ GAMEOBJECT_TYPE_PERKS_PROGRAM_CHEST = 62,
};
-#define MAX_GAMEOBJECT_TYPE 61 // sending to client this or greater value can crash client.
+#define MAX_GAMEOBJECT_TYPE 63 // sending to client this or greater value can crash client.
#define MAX_GAMEOBJECT_DATA 35 // Max number of uint32 vars in gameobject_template data field
enum GameObjectFlags
@@ -7528,289 +7530,290 @@ enum class GameError : uint32
ERR_DIFFICULTY_CHANGE_ENCOUNTER = 828,
ERR_DIFFICULTY_CHANGE_COMBAT = 829,
ERR_DIFFICULTY_CHANGE_PLAYER_BUSY = 830,
- ERR_DIFFICULTY_CHANGE_ALREADY_STARTED = 831,
- ERR_DIFFICULTY_CHANGE_OTHER_HEROIC_S = 832,
- ERR_DIFFICULTY_CHANGE_HEROIC_INSTANCE_ALREADY_RUNNING = 833,
- ERR_ARENA_TEAM_PARTY_SIZE = 834,
- ERR_SOLO_SHUFFLE_WARGAME_GROUP_SIZE = 835,
- ERR_SOLO_SHUFFLE_WARGAME_GROUP_COMP = 836,
- ERR_SOLO_SHUFFLE_MIN_ITEM_LEVEL = 837,
- ERR_PVP_PLAYER_ABANDONED = 838,
- ERR_QUEST_FORCE_REMOVED_S = 839,
- ERR_ATTACK_NO_ACTIONS = 840,
- ERR_IN_RANDOM_BG = 841,
- ERR_IN_NON_RANDOM_BG = 842,
- ERR_BN_FRIEND_SELF = 843,
- ERR_BN_FRIEND_ALREADY = 844,
- ERR_BN_FRIEND_BLOCKED = 845,
- ERR_BN_FRIEND_LIST_FULL = 846,
- ERR_BN_FRIEND_REQUEST_SENT = 847,
- ERR_BN_BROADCAST_THROTTLE = 848,
- ERR_BG_DEVELOPER_ONLY = 849,
- ERR_CURRENCY_SPELL_SLOT_MISMATCH = 850,
- ERR_CURRENCY_NOT_TRADABLE = 851,
- ERR_REQUIRES_EXPANSION_S = 852,
- ERR_QUEST_FAILED_SPELL = 853,
- ERR_TALENT_FAILED_UNSPENT_TALENT_POINTS = 854,
- ERR_TALENT_FAILED_NOT_ENOUGH_TALENTS_IN_PRIMARY_TREE = 855,
- ERR_TALENT_FAILED_NO_PRIMARY_TREE_SELECTED = 856,
- ERR_TALENT_FAILED_CANT_REMOVE_TALENT = 857,
- ERR_TALENT_FAILED_UNKNOWN = 858,
- ERR_TALENT_FAILED_IN_COMBAT = 859,
- ERR_TALENT_FAILED_IN_PVP_MATCH = 860,
- ERR_TALENT_FAILED_IN_MYTHIC_PLUS = 861,
- ERR_WARGAME_REQUEST_FAILURE = 862,
- ERR_RANK_REQUIRES_AUTHENTICATOR = 863,
- ERR_GUILD_BANK_VOUCHER_FAILED = 864,
- ERR_WARGAME_REQUEST_SENT = 865,
- ERR_REQUIRES_ACHIEVEMENT_I = 866,
- ERR_REFUND_RESULT_EXCEED_MAX_CURRENCY = 867,
- ERR_CANT_BUY_QUANTITY = 868,
- ERR_ITEM_IS_BATTLE_PAY_LOCKED = 869,
- ERR_PARTY_ALREADY_IN_BATTLEGROUND_QUEUE = 870,
- ERR_PARTY_CONFIRMING_BATTLEGROUND_QUEUE = 871,
- ERR_BATTLEFIELD_TEAM_PARTY_SIZE = 872,
- ERR_INSUFF_TRACKED_CURRENCY_IS = 873,
- ERR_NOT_ON_TOURNAMENT_REALM = 874,
- ERR_GUILD_TRIAL_ACCOUNT_TRIAL = 875,
- ERR_GUILD_TRIAL_ACCOUNT_VETERAN = 876,
- ERR_GUILD_UNDELETABLE_DUE_TO_LEVEL = 877,
- ERR_CANT_DO_THAT_IN_A_GROUP = 878,
- ERR_GUILD_LEADER_REPLACED = 879,
- ERR_TRANSMOGRIFY_CANT_EQUIP = 880,
- ERR_TRANSMOGRIFY_INVALID_ITEM_TYPE = 881,
- ERR_TRANSMOGRIFY_NOT_SOULBOUND = 882,
- ERR_TRANSMOGRIFY_INVALID_SOURCE = 883,
- ERR_TRANSMOGRIFY_INVALID_DESTINATION = 884,
- ERR_TRANSMOGRIFY_MISMATCH = 885,
- ERR_TRANSMOGRIFY_LEGENDARY = 886,
- ERR_TRANSMOGRIFY_SAME_ITEM = 887,
- ERR_TRANSMOGRIFY_SAME_APPEARANCE = 888,
- ERR_TRANSMOGRIFY_NOT_EQUIPPED = 889,
- ERR_VOID_DEPOSIT_FULL = 890,
- ERR_VOID_WITHDRAW_FULL = 891,
- ERR_VOID_STORAGE_WRAPPED = 892,
- ERR_VOID_STORAGE_STACKABLE = 893,
- ERR_VOID_STORAGE_UNBOUND = 894,
- ERR_VOID_STORAGE_REPAIR = 895,
- ERR_VOID_STORAGE_CHARGES = 896,
- ERR_VOID_STORAGE_QUEST = 897,
- ERR_VOID_STORAGE_CONJURED = 898,
- ERR_VOID_STORAGE_MAIL = 899,
- ERR_VOID_STORAGE_BAG = 900,
- ERR_VOID_TRANSFER_STORAGE_FULL = 901,
- ERR_VOID_TRANSFER_INV_FULL = 902,
- ERR_VOID_TRANSFER_INTERNAL_ERROR = 903,
- ERR_VOID_TRANSFER_ITEM_INVALID = 904,
- ERR_DIFFICULTY_DISABLED_IN_LFG = 905,
- ERR_VOID_STORAGE_UNIQUE = 906,
- ERR_VOID_STORAGE_LOOT = 907,
- ERR_VOID_STORAGE_HOLIDAY = 908,
- ERR_VOID_STORAGE_DURATION = 909,
- ERR_VOID_STORAGE_LOAD_FAILED = 910,
- ERR_VOID_STORAGE_INVALID_ITEM = 911,
- ERR_PARENTAL_CONTROLS_CHAT_MUTED = 912,
- ERR_SOR_START_EXPERIENCE_INCOMPLETE = 913,
- ERR_SOR_INVALID_EMAIL = 914,
- ERR_SOR_INVALID_COMMENT = 915,
- ERR_CHALLENGE_MODE_RESET_COOLDOWN_S = 916,
- ERR_CHALLENGE_MODE_RESET_KEYSTONE = 917,
- ERR_PET_JOURNAL_ALREADY_IN_LOADOUT = 918,
- ERR_REPORT_SUBMITTED_SUCCESSFULLY = 919,
- ERR_REPORT_SUBMISSION_FAILED = 920,
- ERR_SUGGESTION_SUBMITTED_SUCCESSFULLY = 921,
- ERR_BUG_SUBMITTED_SUCCESSFULLY = 922,
- ERR_CHALLENGE_MODE_ENABLED = 923,
- ERR_CHALLENGE_MODE_DISABLED = 924,
- ERR_PETBATTLE_CREATE_FAILED = 925,
- ERR_PETBATTLE_NOT_HERE = 926,
- ERR_PETBATTLE_NOT_HERE_ON_TRANSPORT = 927,
- ERR_PETBATTLE_NOT_HERE_UNEVEN_GROUND = 928,
- ERR_PETBATTLE_NOT_HERE_OBSTRUCTED = 929,
- ERR_PETBATTLE_NOT_WHILE_IN_COMBAT = 930,
- ERR_PETBATTLE_NOT_WHILE_DEAD = 931,
- ERR_PETBATTLE_NOT_WHILE_FLYING = 932,
- ERR_PETBATTLE_TARGET_INVALID = 933,
- ERR_PETBATTLE_TARGET_OUT_OF_RANGE = 934,
- ERR_PETBATTLE_TARGET_NOT_CAPTURABLE = 935,
- ERR_PETBATTLE_NOT_A_TRAINER = 936,
- ERR_PETBATTLE_DECLINED = 937,
- ERR_PETBATTLE_IN_BATTLE = 938,
- ERR_PETBATTLE_INVALID_LOADOUT = 939,
- ERR_PETBATTLE_ALL_PETS_DEAD = 940,
- ERR_PETBATTLE_NO_PETS_IN_SLOTS = 941,
- ERR_PETBATTLE_NO_ACCOUNT_LOCK = 942,
- ERR_PETBATTLE_WILD_PET_TAPPED = 943,
- ERR_PETBATTLE_RESTRICTED_ACCOUNT = 944,
- ERR_PETBATTLE_OPPONENT_NOT_AVAILABLE = 945,
- ERR_PETBATTLE_NOT_WHILE_IN_MATCHED_BATTLE = 946,
- ERR_CANT_HAVE_MORE_PETS_OF_THAT_TYPE = 947,
- ERR_CANT_HAVE_MORE_PETS = 948,
- ERR_PVP_MAP_NOT_FOUND = 949,
- ERR_PVP_MAP_NOT_SET = 950,
- ERR_PETBATTLE_QUEUE_QUEUED = 951,
- ERR_PETBATTLE_QUEUE_ALREADY_QUEUED = 952,
- ERR_PETBATTLE_QUEUE_JOIN_FAILED = 953,
- ERR_PETBATTLE_QUEUE_JOURNAL_LOCK = 954,
- ERR_PETBATTLE_QUEUE_REMOVED = 955,
- ERR_PETBATTLE_QUEUE_PROPOSAL_DECLINED = 956,
- ERR_PETBATTLE_QUEUE_PROPOSAL_TIMEOUT = 957,
- ERR_PETBATTLE_QUEUE_OPPONENT_DECLINED = 958,
- ERR_PETBATTLE_QUEUE_REQUEUED_INTERNAL = 959,
- ERR_PETBATTLE_QUEUE_REQUEUED_REMOVED = 960,
- ERR_PETBATTLE_QUEUE_SLOT_LOCKED = 961,
- ERR_PETBATTLE_QUEUE_SLOT_EMPTY = 962,
- ERR_PETBATTLE_QUEUE_SLOT_NO_TRACKER = 963,
- ERR_PETBATTLE_QUEUE_SLOT_NO_SPECIES = 964,
- ERR_PETBATTLE_QUEUE_SLOT_CANT_BATTLE = 965,
- ERR_PETBATTLE_QUEUE_SLOT_REVOKED = 966,
- ERR_PETBATTLE_QUEUE_SLOT_DEAD = 967,
- ERR_PETBATTLE_QUEUE_SLOT_NO_PET = 968,
- ERR_PETBATTLE_QUEUE_NOT_WHILE_NEUTRAL = 969,
- ERR_PETBATTLE_GAME_TIME_LIMIT_WARNING = 970,
- ERR_PETBATTLE_GAME_ROUNDS_LIMIT_WARNING = 971,
- ERR_HAS_RESTRICTION = 972,
- ERR_ITEM_UPGRADE_ITEM_TOO_LOW_LEVEL = 973,
- ERR_ITEM_UPGRADE_NO_PATH = 974,
- ERR_ITEM_UPGRADE_NO_MORE_UPGRADES = 975,
- ERR_BONUS_ROLL_EMPTY = 976,
- ERR_CHALLENGE_MODE_FULL = 977,
- ERR_CHALLENGE_MODE_IN_PROGRESS = 978,
- ERR_CHALLENGE_MODE_INCORRECT_KEYSTONE = 979,
- ERR_BATTLETAG_FRIEND_NOT_FOUND = 980,
- ERR_BATTLETAG_FRIEND_NOT_VALID = 981,
- ERR_BATTLETAG_FRIEND_NOT_ALLOWED = 982,
- ERR_BATTLETAG_FRIEND_THROTTLED = 983,
- ERR_BATTLETAG_FRIEND_SUCCESS = 984,
- ERR_PET_TOO_HIGH_LEVEL_TO_UNCAGE = 985,
- ERR_PETBATTLE_INTERNAL = 986,
- ERR_CANT_CAGE_PET_YET = 987,
- ERR_NO_LOOT_IN_CHALLENGE_MODE = 988,
- ERR_QUEST_PET_BATTLE_VICTORIES_PVP_II = 989,
- ERR_ROLE_CHECK_ALREADY_IN_PROGRESS = 990,
- ERR_RECRUIT_A_FRIEND_ACCOUNT_LIMIT = 991,
- ERR_RECRUIT_A_FRIEND_FAILED = 992,
- ERR_SET_LOOT_PERSONAL = 993,
- ERR_SET_LOOT_METHOD_FAILED_COMBAT = 994,
- ERR_REAGENT_BANK_FULL = 995,
- ERR_REAGENT_BANK_LOCKED = 996,
- ERR_GARRISON_BUILDING_EXISTS = 997,
- ERR_GARRISON_INVALID_PLOT = 998,
- ERR_GARRISON_INVALID_BUILDINGID = 999,
- ERR_GARRISON_INVALID_PLOT_BUILDING = 1000,
- ERR_GARRISON_REQUIRES_BLUEPRINT = 1001,
- ERR_GARRISON_NOT_ENOUGH_CURRENCY = 1002,
- ERR_GARRISON_NOT_ENOUGH_GOLD = 1003,
- ERR_GARRISON_COMPLETE_MISSION_WRONG_FOLLOWER_TYPE = 1004,
- ERR_ALREADY_USING_LFG_LIST = 1005,
- ERR_RESTRICTED_ACCOUNT_LFG_LIST_TRIAL = 1006,
- ERR_TOY_USE_LIMIT_REACHED = 1007,
- ERR_TOY_ALREADY_KNOWN = 1008,
- ERR_TRANSMOG_SET_ALREADY_KNOWN = 1009,
- ERR_NOT_ENOUGH_CURRENCY = 1010,
- ERR_SPEC_IS_DISABLED = 1011,
- ERR_FEATURE_RESTRICTED_TRIAL = 1012,
- ERR_CANT_BE_OBLITERATED = 1013,
- ERR_CANT_BE_SCRAPPED = 1014,
- ERR_CANT_BE_RECRAFTED = 1015,
- ERR_ARTIFACT_RELIC_DOES_NOT_MATCH_ARTIFACT = 1016,
- ERR_MUST_EQUIP_ARTIFACT = 1017,
- ERR_CANT_DO_THAT_RIGHT_NOW = 1018,
- ERR_AFFECTING_COMBAT = 1019,
- ERR_EQUIPMENT_MANAGER_COMBAT_SWAP_S = 1020,
- ERR_EQUIPMENT_MANAGER_BAGS_FULL = 1021,
- ERR_EQUIPMENT_MANAGER_MISSING_ITEM_S = 1022,
- ERR_MOVIE_RECORDING_WARNING_PERF = 1023,
- ERR_MOVIE_RECORDING_WARNING_DISK_FULL = 1024,
- ERR_MOVIE_RECORDING_WARNING_NO_MOVIE = 1025,
- ERR_MOVIE_RECORDING_WARNING_REQUIREMENTS = 1026,
- ERR_MOVIE_RECORDING_WARNING_COMPRESSING = 1027,
- ERR_NO_CHALLENGE_MODE_REWARD = 1028,
- ERR_CLAIMED_CHALLENGE_MODE_REWARD = 1029,
- ERR_CHALLENGE_MODE_PERIOD_RESET_SS = 1030,
- ERR_CANT_DO_THAT_CHALLENGE_MODE_ACTIVE = 1031,
- ERR_TALENT_FAILED_REST_AREA = 1032,
- ERR_CANNOT_ABANDON_LAST_PET = 1033,
- ERR_TEST_CVAR_SET_SSS = 1034,
- ERR_QUEST_TURN_IN_FAIL_REASON = 1035,
- ERR_CLAIMED_CHALLENGE_MODE_REWARD_OLD = 1036,
- ERR_TALENT_GRANTED_BY_AURA = 1037,
- ERR_CHALLENGE_MODE_ALREADY_COMPLETE = 1038,
- ERR_GLYPH_TARGET_NOT_AVAILABLE = 1039,
- ERR_PVP_WARMODE_TOGGLE_ON = 1040,
- ERR_PVP_WARMODE_TOGGLE_OFF = 1041,
- ERR_SPELL_FAILED_LEVEL_REQUIREMENT = 1042,
- ERR_SPELL_FAILED_CANT_FLY_HERE = 1043,
- ERR_BATTLEGROUND_JOIN_REQUIRES_LEVEL = 1044,
- ERR_BATTLEGROUND_JOIN_DISQUALIFIED = 1045,
- ERR_BATTLEGROUND_JOIN_DISQUALIFIED_NO_NAME = 1046,
- ERR_VOICE_CHAT_GENERIC_UNABLE_TO_CONNECT = 1047,
- ERR_VOICE_CHAT_SERVICE_LOST = 1048,
- ERR_VOICE_CHAT_CHANNEL_NAME_TOO_SHORT = 1049,
- ERR_VOICE_CHAT_CHANNEL_NAME_TOO_LONG = 1050,
- ERR_VOICE_CHAT_CHANNEL_ALREADY_EXISTS = 1051,
- ERR_VOICE_CHAT_TARGET_NOT_FOUND = 1052,
- ERR_VOICE_CHAT_TOO_MANY_REQUESTS = 1053,
- ERR_VOICE_CHAT_PLAYER_SILENCED = 1054,
- ERR_VOICE_CHAT_PARENTAL_DISABLE_ALL = 1055,
- ERR_VOICE_CHAT_DISABLED = 1056,
- ERR_NO_PVP_REWARD = 1057,
- ERR_CLAIMED_PVP_REWARD = 1058,
- ERR_AZERITE_ESSENCE_SELECTION_FAILED_ESSENCE_NOT_UNLOCKED = 1059,
- ERR_AZERITE_ESSENCE_SELECTION_FAILED_CANT_REMOVE_ESSENCE = 1060,
- ERR_AZERITE_ESSENCE_SELECTION_FAILED_CONDITION_FAILED = 1061,
- ERR_AZERITE_ESSENCE_SELECTION_FAILED_REST_AREA = 1062,
- ERR_AZERITE_ESSENCE_SELECTION_FAILED_SLOT_LOCKED = 1063,
- ERR_AZERITE_ESSENCE_SELECTION_FAILED_NOT_AT_FORGE = 1064,
- ERR_AZERITE_ESSENCE_SELECTION_FAILED_HEART_LEVEL_TOO_LOW = 1065,
- ERR_AZERITE_ESSENCE_SELECTION_FAILED_NOT_EQUIPPED = 1066,
- ERR_SOCKETING_REQUIRES_PUNCHCARDRED_GEM = 1067,
- ERR_SOCKETING_PUNCHCARDRED_GEM_ONLY_IN_PUNCHCARDREDSLOT = 1068,
- ERR_SOCKETING_REQUIRES_PUNCHCARDYELLOW_GEM = 1069,
- ERR_SOCKETING_PUNCHCARDYELLOW_GEM_ONLY_IN_PUNCHCARDYELLOWSLOT = 1070,
- ERR_SOCKETING_REQUIRES_PUNCHCARDBLUE_GEM = 1071,
- ERR_SOCKETING_PUNCHCARDBLUE_GEM_ONLY_IN_PUNCHCARDBLUESLOT = 1072,
- ERR_SOCKETING_REQUIRES_DOMINATION_SHARD = 1073,
- ERR_SOCKETING_DOMINATION_SHARD_ONLY_IN_DOMINATIONSLOT = 1074,
- ERR_SOCKETING_REQUIRES_CYPHER_GEM = 1075,
- ERR_SOCKETING_CYPHER_GEM_ONLY_IN_CYPHERSLOT = 1076,
- ERR_SOCKETING_REQUIRES_TINKER_GEM = 1077,
- ERR_SOCKETING_TINKER_GEM_ONLY_IN_TINKERSLOT = 1078,
- ERR_LEVEL_LINKING_RESULT_LINKED = 1079,
- ERR_LEVEL_LINKING_RESULT_UNLINKED = 1080,
- ERR_CLUB_FINDER_ERROR_POST_CLUB = 1081,
- ERR_CLUB_FINDER_ERROR_APPLY_CLUB = 1082,
- ERR_CLUB_FINDER_ERROR_RESPOND_APPLICANT = 1083,
- ERR_CLUB_FINDER_ERROR_CANCEL_APPLICATION = 1084,
- ERR_CLUB_FINDER_ERROR_TYPE_ACCEPT_APPLICATION = 1085,
- ERR_CLUB_FINDER_ERROR_TYPE_NO_INVITE_PERMISSIONS = 1086,
- ERR_CLUB_FINDER_ERROR_TYPE_NO_POSTING_PERMISSIONS = 1087,
- ERR_CLUB_FINDER_ERROR_TYPE_APPLICANT_LIST = 1088,
- ERR_CLUB_FINDER_ERROR_TYPE_APPLICANT_LIST_NO_PERM = 1089,
- ERR_CLUB_FINDER_ERROR_TYPE_FINDER_NOT_AVAILABLE = 1090,
- ERR_CLUB_FINDER_ERROR_TYPE_GET_POSTING_IDS = 1091,
- ERR_CLUB_FINDER_ERROR_TYPE_JOIN_APPLICATION = 1092,
- ERR_CLUB_FINDER_ERROR_TYPE_REALM_NOT_ELIGIBLE = 1093,
- ERR_CLUB_FINDER_ERROR_TYPE_FLAGGED_RENAME = 1094,
- ERR_CLUB_FINDER_ERROR_TYPE_FLAGGED_DESCRIPTION_CHANGE = 1095,
- ERR_ITEM_INTERACTION_NOT_ENOUGH_GOLD = 1096,
- ERR_ITEM_INTERACTION_NOT_ENOUGH_CURRENCY = 1097,
- ERR_PLAYER_CHOICE_ERROR_PENDING_CHOICE = 1098,
- ERR_SOULBIND_INVALID_CONDUIT = 1099,
- ERR_SOULBIND_INVALID_CONDUIT_ITEM = 1100,
- ERR_SOULBIND_INVALID_TALENT = 1101,
- ERR_SOULBIND_DUPLICATE_CONDUIT = 1102,
- ERR_ACTIVATE_SOULBIND_S = 1103,
- ERR_ACTIVATE_SOULBIND_FAILED_REST_AREA = 1104,
- ERR_CANT_USE_PROFANITY = 1105,
- ERR_NOT_IN_PET_BATTLE = 1106,
- ERR_NOT_IN_NPE = 1107,
- ERR_NO_SPEC = 1108,
- ERR_NO_DOMINATIONSHARD_OVERWRITE = 1109,
- ERR_USE_WEEKLY_REWARDS_DISABLED = 1110,
- ERR_CROSS_FACTION_GROUP_JOINED = 1111,
- ERR_CANT_TARGET_UNFRIENDLY_IN_OVERWORLD = 1112,
- ERR_EQUIPABLESPELLS_SLOTS_FULL = 1113,
+ ERR_DIFFICULTY_CHANGE_PLAYER_ON_VEHICLE = 831,
+ ERR_DIFFICULTY_CHANGE_ALREADY_STARTED = 832,
+ ERR_DIFFICULTY_CHANGE_OTHER_HEROIC_S = 833,
+ ERR_DIFFICULTY_CHANGE_HEROIC_INSTANCE_ALREADY_RUNNING = 834,
+ ERR_ARENA_TEAM_PARTY_SIZE = 835,
+ ERR_SOLO_SHUFFLE_WARGAME_GROUP_SIZE = 836,
+ ERR_SOLO_SHUFFLE_WARGAME_GROUP_COMP = 837,
+ ERR_SOLO_SHUFFLE_MIN_ITEM_LEVEL = 838,
+ ERR_PVP_PLAYER_ABANDONED = 839,
+ ERR_QUEST_FORCE_REMOVED_S = 840,
+ ERR_ATTACK_NO_ACTIONS = 841,
+ ERR_IN_RANDOM_BG = 842,
+ ERR_IN_NON_RANDOM_BG = 843,
+ ERR_BN_FRIEND_SELF = 844,
+ ERR_BN_FRIEND_ALREADY = 845,
+ ERR_BN_FRIEND_BLOCKED = 846,
+ ERR_BN_FRIEND_LIST_FULL = 847,
+ ERR_BN_FRIEND_REQUEST_SENT = 848,
+ ERR_BN_BROADCAST_THROTTLE = 849,
+ ERR_BG_DEVELOPER_ONLY = 850,
+ ERR_CURRENCY_SPELL_SLOT_MISMATCH = 851,
+ ERR_CURRENCY_NOT_TRADABLE = 852,
+ ERR_REQUIRES_EXPANSION_S = 853,
+ ERR_QUEST_FAILED_SPELL = 854,
+ ERR_TALENT_FAILED_UNSPENT_TALENT_POINTS = 855,
+ ERR_TALENT_FAILED_NOT_ENOUGH_TALENTS_IN_PRIMARY_TREE = 856,
+ ERR_TALENT_FAILED_NO_PRIMARY_TREE_SELECTED = 857,
+ ERR_TALENT_FAILED_CANT_REMOVE_TALENT = 858,
+ ERR_TALENT_FAILED_UNKNOWN = 859,
+ ERR_TALENT_FAILED_IN_COMBAT = 860,
+ ERR_TALENT_FAILED_IN_PVP_MATCH = 861,
+ ERR_TALENT_FAILED_IN_MYTHIC_PLUS = 862,
+ ERR_WARGAME_REQUEST_FAILURE = 863,
+ ERR_RANK_REQUIRES_AUTHENTICATOR = 864,
+ ERR_GUILD_BANK_VOUCHER_FAILED = 865,
+ ERR_WARGAME_REQUEST_SENT = 866,
+ ERR_REQUIRES_ACHIEVEMENT_I = 867,
+ ERR_REFUND_RESULT_EXCEED_MAX_CURRENCY = 868,
+ ERR_CANT_BUY_QUANTITY = 869,
+ ERR_ITEM_IS_BATTLE_PAY_LOCKED = 870,
+ ERR_PARTY_ALREADY_IN_BATTLEGROUND_QUEUE = 871,
+ ERR_PARTY_CONFIRMING_BATTLEGROUND_QUEUE = 872,
+ ERR_BATTLEFIELD_TEAM_PARTY_SIZE = 873,
+ ERR_INSUFF_TRACKED_CURRENCY_IS = 874,
+ ERR_NOT_ON_TOURNAMENT_REALM = 875,
+ ERR_GUILD_TRIAL_ACCOUNT_TRIAL = 876,
+ ERR_GUILD_TRIAL_ACCOUNT_VETERAN = 877,
+ ERR_GUILD_UNDELETABLE_DUE_TO_LEVEL = 878,
+ ERR_CANT_DO_THAT_IN_A_GROUP = 879,
+ ERR_GUILD_LEADER_REPLACED = 880,
+ ERR_TRANSMOGRIFY_CANT_EQUIP = 881,
+ ERR_TRANSMOGRIFY_INVALID_ITEM_TYPE = 882,
+ ERR_TRANSMOGRIFY_NOT_SOULBOUND = 883,
+ ERR_TRANSMOGRIFY_INVALID_SOURCE = 884,
+ ERR_TRANSMOGRIFY_INVALID_DESTINATION = 885,
+ ERR_TRANSMOGRIFY_MISMATCH = 886,
+ ERR_TRANSMOGRIFY_LEGENDARY = 887,
+ ERR_TRANSMOGRIFY_SAME_ITEM = 888,
+ ERR_TRANSMOGRIFY_SAME_APPEARANCE = 889,
+ ERR_TRANSMOGRIFY_NOT_EQUIPPED = 890,
+ ERR_VOID_DEPOSIT_FULL = 891,
+ ERR_VOID_WITHDRAW_FULL = 892,
+ ERR_VOID_STORAGE_WRAPPED = 893,
+ ERR_VOID_STORAGE_STACKABLE = 894,
+ ERR_VOID_STORAGE_UNBOUND = 895,
+ ERR_VOID_STORAGE_REPAIR = 896,
+ ERR_VOID_STORAGE_CHARGES = 897,
+ ERR_VOID_STORAGE_QUEST = 898,
+ ERR_VOID_STORAGE_CONJURED = 899,
+ ERR_VOID_STORAGE_MAIL = 900,
+ ERR_VOID_STORAGE_BAG = 901,
+ ERR_VOID_TRANSFER_STORAGE_FULL = 902,
+ ERR_VOID_TRANSFER_INV_FULL = 903,
+ ERR_VOID_TRANSFER_INTERNAL_ERROR = 904,
+ ERR_VOID_TRANSFER_ITEM_INVALID = 905,
+ ERR_DIFFICULTY_DISABLED_IN_LFG = 906,
+ ERR_VOID_STORAGE_UNIQUE = 907,
+ ERR_VOID_STORAGE_LOOT = 908,
+ ERR_VOID_STORAGE_HOLIDAY = 909,
+ ERR_VOID_STORAGE_DURATION = 910,
+ ERR_VOID_STORAGE_LOAD_FAILED = 911,
+ ERR_VOID_STORAGE_INVALID_ITEM = 912,
+ ERR_PARENTAL_CONTROLS_CHAT_MUTED = 913,
+ ERR_SOR_START_EXPERIENCE_INCOMPLETE = 914,
+ ERR_SOR_INVALID_EMAIL = 915,
+ ERR_SOR_INVALID_COMMENT = 916,
+ ERR_CHALLENGE_MODE_RESET_COOLDOWN_S = 917,
+ ERR_CHALLENGE_MODE_RESET_KEYSTONE = 918,
+ ERR_PET_JOURNAL_ALREADY_IN_LOADOUT = 919,
+ ERR_REPORT_SUBMITTED_SUCCESSFULLY = 920,
+ ERR_REPORT_SUBMISSION_FAILED = 921,
+ ERR_SUGGESTION_SUBMITTED_SUCCESSFULLY = 922,
+ ERR_BUG_SUBMITTED_SUCCESSFULLY = 923,
+ ERR_CHALLENGE_MODE_ENABLED = 924,
+ ERR_CHALLENGE_MODE_DISABLED = 925,
+ ERR_PETBATTLE_CREATE_FAILED = 926,
+ ERR_PETBATTLE_NOT_HERE = 927,
+ ERR_PETBATTLE_NOT_HERE_ON_TRANSPORT = 928,
+ ERR_PETBATTLE_NOT_HERE_UNEVEN_GROUND = 929,
+ ERR_PETBATTLE_NOT_HERE_OBSTRUCTED = 930,
+ ERR_PETBATTLE_NOT_WHILE_IN_COMBAT = 931,
+ ERR_PETBATTLE_NOT_WHILE_DEAD = 932,
+ ERR_PETBATTLE_NOT_WHILE_FLYING = 933,
+ ERR_PETBATTLE_TARGET_INVALID = 934,
+ ERR_PETBATTLE_TARGET_OUT_OF_RANGE = 935,
+ ERR_PETBATTLE_TARGET_NOT_CAPTURABLE = 936,
+ ERR_PETBATTLE_NOT_A_TRAINER = 937,
+ ERR_PETBATTLE_DECLINED = 938,
+ ERR_PETBATTLE_IN_BATTLE = 939,
+ ERR_PETBATTLE_INVALID_LOADOUT = 940,
+ ERR_PETBATTLE_ALL_PETS_DEAD = 941,
+ ERR_PETBATTLE_NO_PETS_IN_SLOTS = 942,
+ ERR_PETBATTLE_NO_ACCOUNT_LOCK = 943,
+ ERR_PETBATTLE_WILD_PET_TAPPED = 944,
+ ERR_PETBATTLE_RESTRICTED_ACCOUNT = 945,
+ ERR_PETBATTLE_OPPONENT_NOT_AVAILABLE = 946,
+ ERR_PETBATTLE_NOT_WHILE_IN_MATCHED_BATTLE = 947,
+ ERR_CANT_HAVE_MORE_PETS_OF_THAT_TYPE = 948,
+ ERR_CANT_HAVE_MORE_PETS = 949,
+ ERR_PVP_MAP_NOT_FOUND = 950,
+ ERR_PVP_MAP_NOT_SET = 951,
+ ERR_PETBATTLE_QUEUE_QUEUED = 952,
+ ERR_PETBATTLE_QUEUE_ALREADY_QUEUED = 953,
+ ERR_PETBATTLE_QUEUE_JOIN_FAILED = 954,
+ ERR_PETBATTLE_QUEUE_JOURNAL_LOCK = 955,
+ ERR_PETBATTLE_QUEUE_REMOVED = 956,
+ ERR_PETBATTLE_QUEUE_PROPOSAL_DECLINED = 957,
+ ERR_PETBATTLE_QUEUE_PROPOSAL_TIMEOUT = 958,
+ ERR_PETBATTLE_QUEUE_OPPONENT_DECLINED = 959,
+ ERR_PETBATTLE_QUEUE_REQUEUED_INTERNAL = 960,
+ ERR_PETBATTLE_QUEUE_REQUEUED_REMOVED = 961,
+ ERR_PETBATTLE_QUEUE_SLOT_LOCKED = 962,
+ ERR_PETBATTLE_QUEUE_SLOT_EMPTY = 963,
+ ERR_PETBATTLE_QUEUE_SLOT_NO_TRACKER = 964,
+ ERR_PETBATTLE_QUEUE_SLOT_NO_SPECIES = 965,
+ ERR_PETBATTLE_QUEUE_SLOT_CANT_BATTLE = 966,
+ ERR_PETBATTLE_QUEUE_SLOT_REVOKED = 967,
+ ERR_PETBATTLE_QUEUE_SLOT_DEAD = 968,
+ ERR_PETBATTLE_QUEUE_SLOT_NO_PET = 969,
+ ERR_PETBATTLE_QUEUE_NOT_WHILE_NEUTRAL = 970,
+ ERR_PETBATTLE_GAME_TIME_LIMIT_WARNING = 971,
+ ERR_PETBATTLE_GAME_ROUNDS_LIMIT_WARNING = 972,
+ ERR_HAS_RESTRICTION = 973,
+ ERR_ITEM_UPGRADE_ITEM_TOO_LOW_LEVEL = 974,
+ ERR_ITEM_UPGRADE_NO_PATH = 975,
+ ERR_ITEM_UPGRADE_NO_MORE_UPGRADES = 976,
+ ERR_BONUS_ROLL_EMPTY = 977,
+ ERR_CHALLENGE_MODE_FULL = 978,
+ ERR_CHALLENGE_MODE_IN_PROGRESS = 979,
+ ERR_CHALLENGE_MODE_INCORRECT_KEYSTONE = 980,
+ ERR_BATTLETAG_FRIEND_NOT_FOUND = 981,
+ ERR_BATTLETAG_FRIEND_NOT_VALID = 982,
+ ERR_BATTLETAG_FRIEND_NOT_ALLOWED = 983,
+ ERR_BATTLETAG_FRIEND_THROTTLED = 984,
+ ERR_BATTLETAG_FRIEND_SUCCESS = 985,
+ ERR_PET_TOO_HIGH_LEVEL_TO_UNCAGE = 986,
+ ERR_PETBATTLE_INTERNAL = 987,
+ ERR_CANT_CAGE_PET_YET = 988,
+ ERR_NO_LOOT_IN_CHALLENGE_MODE = 989,
+ ERR_QUEST_PET_BATTLE_VICTORIES_PVP_II = 990,
+ ERR_ROLE_CHECK_ALREADY_IN_PROGRESS = 991,
+ ERR_RECRUIT_A_FRIEND_ACCOUNT_LIMIT = 992,
+ ERR_RECRUIT_A_FRIEND_FAILED = 993,
+ ERR_SET_LOOT_PERSONAL = 994,
+ ERR_SET_LOOT_METHOD_FAILED_COMBAT = 995,
+ ERR_REAGENT_BANK_FULL = 996,
+ ERR_REAGENT_BANK_LOCKED = 997,
+ ERR_GARRISON_BUILDING_EXISTS = 998,
+ ERR_GARRISON_INVALID_PLOT = 999,
+ ERR_GARRISON_INVALID_BUILDINGID = 1000,
+ ERR_GARRISON_INVALID_PLOT_BUILDING = 1001,
+ ERR_GARRISON_REQUIRES_BLUEPRINT = 1002,
+ ERR_GARRISON_NOT_ENOUGH_CURRENCY = 1003,
+ ERR_GARRISON_NOT_ENOUGH_GOLD = 1004,
+ ERR_GARRISON_COMPLETE_MISSION_WRONG_FOLLOWER_TYPE = 1005,
+ ERR_ALREADY_USING_LFG_LIST = 1006,
+ ERR_RESTRICTED_ACCOUNT_LFG_LIST_TRIAL = 1007,
+ ERR_TOY_USE_LIMIT_REACHED = 1008,
+ ERR_TOY_ALREADY_KNOWN = 1009,
+ ERR_TRANSMOG_SET_ALREADY_KNOWN = 1010,
+ ERR_NOT_ENOUGH_CURRENCY = 1011,
+ ERR_SPEC_IS_DISABLED = 1012,
+ ERR_FEATURE_RESTRICTED_TRIAL = 1013,
+ ERR_CANT_BE_OBLITERATED = 1014,
+ ERR_CANT_BE_SCRAPPED = 1015,
+ ERR_CANT_BE_RECRAFTED = 1016,
+ ERR_ARTIFACT_RELIC_DOES_NOT_MATCH_ARTIFACT = 1017,
+ ERR_MUST_EQUIP_ARTIFACT = 1018,
+ ERR_CANT_DO_THAT_RIGHT_NOW = 1019,
+ ERR_AFFECTING_COMBAT = 1020,
+ ERR_EQUIPMENT_MANAGER_COMBAT_SWAP_S = 1021,
+ ERR_EQUIPMENT_MANAGER_BAGS_FULL = 1022,
+ ERR_EQUIPMENT_MANAGER_MISSING_ITEM_S = 1023,
+ ERR_MOVIE_RECORDING_WARNING_PERF = 1024,
+ ERR_MOVIE_RECORDING_WARNING_DISK_FULL = 1025,
+ ERR_MOVIE_RECORDING_WARNING_NO_MOVIE = 1026,
+ ERR_MOVIE_RECORDING_WARNING_REQUIREMENTS = 1027,
+ ERR_MOVIE_RECORDING_WARNING_COMPRESSING = 1028,
+ ERR_NO_CHALLENGE_MODE_REWARD = 1029,
+ ERR_CLAIMED_CHALLENGE_MODE_REWARD = 1030,
+ ERR_CHALLENGE_MODE_PERIOD_RESET_SS = 1031,
+ ERR_CANT_DO_THAT_CHALLENGE_MODE_ACTIVE = 1032,
+ ERR_TALENT_FAILED_REST_AREA = 1033,
+ ERR_CANNOT_ABANDON_LAST_PET = 1034,
+ ERR_TEST_CVAR_SET_SSS = 1035,
+ ERR_QUEST_TURN_IN_FAIL_REASON = 1036,
+ ERR_CLAIMED_CHALLENGE_MODE_REWARD_OLD = 1037,
+ ERR_TALENT_GRANTED_BY_AURA = 1038,
+ ERR_CHALLENGE_MODE_ALREADY_COMPLETE = 1039,
+ ERR_GLYPH_TARGET_NOT_AVAILABLE = 1040,
+ ERR_PVP_WARMODE_TOGGLE_ON = 1041,
+ ERR_PVP_WARMODE_TOGGLE_OFF = 1042,
+ ERR_SPELL_FAILED_LEVEL_REQUIREMENT = 1043,
+ ERR_SPELL_FAILED_CANT_FLY_HERE = 1044,
+ ERR_BATTLEGROUND_JOIN_REQUIRES_LEVEL = 1045,
+ ERR_BATTLEGROUND_JOIN_DISQUALIFIED = 1046,
+ ERR_BATTLEGROUND_JOIN_DISQUALIFIED_NO_NAME = 1047,
+ ERR_VOICE_CHAT_GENERIC_UNABLE_TO_CONNECT = 1048,
+ ERR_VOICE_CHAT_SERVICE_LOST = 1049,
+ ERR_VOICE_CHAT_CHANNEL_NAME_TOO_SHORT = 1050,
+ ERR_VOICE_CHAT_CHANNEL_NAME_TOO_LONG = 1051,
+ ERR_VOICE_CHAT_CHANNEL_ALREADY_EXISTS = 1052,
+ ERR_VOICE_CHAT_TARGET_NOT_FOUND = 1053,
+ ERR_VOICE_CHAT_TOO_MANY_REQUESTS = 1054,
+ ERR_VOICE_CHAT_PLAYER_SILENCED = 1055,
+ ERR_VOICE_CHAT_PARENTAL_DISABLE_ALL = 1056,
+ ERR_VOICE_CHAT_DISABLED = 1057,
+ ERR_NO_PVP_REWARD = 1058,
+ ERR_CLAIMED_PVP_REWARD = 1059,
+ ERR_AZERITE_ESSENCE_SELECTION_FAILED_ESSENCE_NOT_UNLOCKED = 1060,
+ ERR_AZERITE_ESSENCE_SELECTION_FAILED_CANT_REMOVE_ESSENCE = 1061,
+ ERR_AZERITE_ESSENCE_SELECTION_FAILED_CONDITION_FAILED = 1062,
+ ERR_AZERITE_ESSENCE_SELECTION_FAILED_REST_AREA = 1063,
+ ERR_AZERITE_ESSENCE_SELECTION_FAILED_SLOT_LOCKED = 1064,
+ ERR_AZERITE_ESSENCE_SELECTION_FAILED_NOT_AT_FORGE = 1065,
+ ERR_AZERITE_ESSENCE_SELECTION_FAILED_HEART_LEVEL_TOO_LOW = 1066,
+ ERR_AZERITE_ESSENCE_SELECTION_FAILED_NOT_EQUIPPED = 1067,
+ ERR_SOCKETING_REQUIRES_PUNCHCARDRED_GEM = 1068,
+ ERR_SOCKETING_PUNCHCARDRED_GEM_ONLY_IN_PUNCHCARDREDSLOT = 1069,
+ ERR_SOCKETING_REQUIRES_PUNCHCARDYELLOW_GEM = 1070,
+ ERR_SOCKETING_PUNCHCARDYELLOW_GEM_ONLY_IN_PUNCHCARDYELLOWSLOT = 1071,
+ ERR_SOCKETING_REQUIRES_PUNCHCARDBLUE_GEM = 1072,
+ ERR_SOCKETING_PUNCHCARDBLUE_GEM_ONLY_IN_PUNCHCARDBLUESLOT = 1073,
+ ERR_SOCKETING_REQUIRES_DOMINATION_SHARD = 1074,
+ ERR_SOCKETING_DOMINATION_SHARD_ONLY_IN_DOMINATIONSLOT = 1075,
+ ERR_SOCKETING_REQUIRES_CYPHER_GEM = 1076,
+ ERR_SOCKETING_CYPHER_GEM_ONLY_IN_CYPHERSLOT = 1077,
+ ERR_SOCKETING_REQUIRES_TINKER_GEM = 1078,
+ ERR_SOCKETING_TINKER_GEM_ONLY_IN_TINKERSLOT = 1079,
+ ERR_LEVEL_LINKING_RESULT_LINKED = 1080,
+ ERR_LEVEL_LINKING_RESULT_UNLINKED = 1081,
+ ERR_CLUB_FINDER_ERROR_POST_CLUB = 1082,
+ ERR_CLUB_FINDER_ERROR_APPLY_CLUB = 1083,
+ ERR_CLUB_FINDER_ERROR_RESPOND_APPLICANT = 1084,
+ ERR_CLUB_FINDER_ERROR_CANCEL_APPLICATION = 1085,
+ ERR_CLUB_FINDER_ERROR_TYPE_ACCEPT_APPLICATION = 1086,
+ ERR_CLUB_FINDER_ERROR_TYPE_NO_INVITE_PERMISSIONS = 1087,
+ ERR_CLUB_FINDER_ERROR_TYPE_NO_POSTING_PERMISSIONS = 1088,
+ ERR_CLUB_FINDER_ERROR_TYPE_APPLICANT_LIST = 1089,
+ ERR_CLUB_FINDER_ERROR_TYPE_APPLICANT_LIST_NO_PERM = 1090,
+ ERR_CLUB_FINDER_ERROR_TYPE_FINDER_NOT_AVAILABLE = 1091,
+ ERR_CLUB_FINDER_ERROR_TYPE_GET_POSTING_IDS = 1092,
+ ERR_CLUB_FINDER_ERROR_TYPE_JOIN_APPLICATION = 1093,
+ ERR_CLUB_FINDER_ERROR_TYPE_REALM_NOT_ELIGIBLE = 1094,
+ ERR_CLUB_FINDER_ERROR_TYPE_FLAGGED_RENAME = 1095,
+ ERR_CLUB_FINDER_ERROR_TYPE_FLAGGED_DESCRIPTION_CHANGE = 1096,
+ ERR_ITEM_INTERACTION_NOT_ENOUGH_GOLD = 1097,
+ ERR_ITEM_INTERACTION_NOT_ENOUGH_CURRENCY = 1098,
+ ERR_PLAYER_CHOICE_ERROR_PENDING_CHOICE = 1099,
+ ERR_SOULBIND_INVALID_CONDUIT = 1100,
+ ERR_SOULBIND_INVALID_CONDUIT_ITEM = 1101,
+ ERR_SOULBIND_INVALID_TALENT = 1102,
+ ERR_SOULBIND_DUPLICATE_CONDUIT = 1103,
+ ERR_ACTIVATE_SOULBIND_S = 1104,
+ ERR_ACTIVATE_SOULBIND_FAILED_REST_AREA = 1105,
+ ERR_CANT_USE_PROFANITY = 1106,
+ ERR_NOT_IN_PET_BATTLE = 1107,
+ ERR_NOT_IN_NPE = 1108,
+ ERR_NO_SPEC = 1109,
+ ERR_NO_DOMINATIONSHARD_OVERWRITE = 1110,
+ ERR_USE_WEEKLY_REWARDS_DISABLED = 1111,
+ ERR_CROSS_FACTION_GROUP_JOINED = 1112,
+ ERR_CANT_TARGET_UNFRIENDLY_IN_OVERWORLD = 1113,
+ ERR_EQUIPABLESPELLS_SLOTS_FULL = 1114,
};
enum class MountResult : uint32
diff --git a/src/server/game/Server/Packets/BattlegroundPackets.cpp b/src/server/game/Server/Packets/BattlegroundPackets.cpp
index 2fa88ef4901..921dd72cde0 100644
--- a/src/server/game/Server/Packets/BattlegroundPackets.cpp
+++ b/src/server/game/Server/Packets/BattlegroundPackets.cpp
@@ -348,6 +348,14 @@ WorldPacket const* WorldPackets::Battleground::RatedPvpInfo::Write()
return &_worldPacket;
}
+ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Battleground::RatedMatchDeserterPenalty const& ratedMatchDeserterPenalty)
+{
+ data << int32(ratedMatchDeserterPenalty.PersonalRatingChange);
+ data << int32(ratedMatchDeserterPenalty.QueuePenaltySpellID);
+ data << ratedMatchDeserterPenalty.QueuePenaltyDuration;
+ return data;
+}
+
WorldPacket const* WorldPackets::Battleground::PVPMatchInitialize::Write()
{
_worldPacket << uint32(MapID);
@@ -358,8 +366,12 @@ WorldPacket const* WorldPackets::Battleground::PVPMatchInitialize::Write()
_worldPacket << uint32(BattlemasterListID);
_worldPacket.WriteBit(Registered);
_worldPacket.WriteBit(AffectsRating);
+ _worldPacket.WriteBit(DeserterPenalty.has_value());
_worldPacket.FlushBits();
+ if (DeserterPenalty)
+ _worldPacket << *DeserterPenalty;
+
return &_worldPacket;
}
diff --git a/src/server/game/Server/Packets/BattlegroundPackets.h b/src/server/game/Server/Packets/BattlegroundPackets.h
index 587efc4e224..b1a6f5bbe89 100644
--- a/src/server/game/Server/Packets/BattlegroundPackets.h
+++ b/src/server/game/Server/Packets/BattlegroundPackets.h
@@ -465,6 +465,13 @@ namespace WorldPackets
} Bracket[6];
};
+ struct RatedMatchDeserterPenalty
+ {
+ int32 PersonalRatingChange = 0;
+ int32 QueuePenaltySpellID = 0;
+ WorldPackets::Duration<Milliseconds, int32> QueuePenaltyDuration;
+ };
+
class PVPMatchInitialize final : public ServerPacket
{
public:
@@ -483,6 +490,7 @@ namespace WorldPackets
MatchState State = Inactive;
Timestamp<> StartTime;
WorldPackets::Duration<Seconds> Duration;
+ Optional<RatedMatchDeserterPenalty> DeserterPenalty;
uint8 ArenaFaction = 0;
uint32 BattlemasterListID = 0;
bool Registered = false;
diff --git a/src/server/game/Server/Packets/CraftingPacketsCommon.cpp b/src/server/game/Server/Packets/CraftingPacketsCommon.cpp
index d06b0e21e7d..de5189183e5 100644
--- a/src/server/game/Server/Packets/CraftingPacketsCommon.cpp
+++ b/src/server/game/Server/Packets/CraftingPacketsCommon.cpp
@@ -30,11 +30,12 @@ ByteBuffer& operator<<(ByteBuffer& data, SpellReducedReagent const& spellReduced
ByteBuffer& operator<<(ByteBuffer& data, CraftingData const& craftingData)
{
data << int32(craftingData.CraftingQualityID);
- data << int32(craftingData.field_4);
- data << int32(craftingData.field_8);
+ data << float(craftingData.QualityProgress);
+ data << int32(craftingData.SkillLineAbilityID);
+ data << int32(craftingData.CraftingDataID);
data << int32(craftingData.Multicraft);
- data << int32(craftingData.field_10);
- data << int32(craftingData.field_14);
+ data << int32(craftingData.SkillFromReagents);
+ data << int32(craftingData.Skill);
data << int32(craftingData.CritBonusSkill);
data << float(craftingData.field_1C);
data << uint64(craftingData.field_20);
diff --git a/src/server/game/Server/Packets/CraftingPacketsCommon.h b/src/server/game/Server/Packets/CraftingPacketsCommon.h
index b74d77cda29..9426662d460 100644
--- a/src/server/game/Server/Packets/CraftingPacketsCommon.h
+++ b/src/server/game/Server/Packets/CraftingPacketsCommon.h
@@ -32,11 +32,12 @@ struct SpellReducedReagent
struct CraftingData
{
int32 CraftingQualityID = 0;
- int32 field_4 = 0;
- int32 field_8 = 0;
+ float QualityProgress = 0.0f;
+ int32 SkillLineAbilityID = 0;
+ int32 CraftingDataID = 0;
int32 Multicraft = 0;
- int32 field_10 = 0;
- int32 field_14 = 0;
+ int32 SkillFromReagents = 0;
+ int32 Skill = 0;
int32 CritBonusSkill = 0;
float field_1C = 0.0f;
uint64 field_20 = 0;
diff --git a/src/server/game/Server/Packets/MailPackets.cpp b/src/server/game/Server/Packets/MailPackets.cpp
index 5bfb0f0ff8f..95582186f86 100644
--- a/src/server/game/Server/Packets/MailPackets.cpp
+++ b/src/server/game/Server/Packets/MailPackets.cpp
@@ -58,7 +58,7 @@ WorldPackets::Mail::MailAttachedItem::MailAttachedItem(::Item const* item, uint8
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Mail::MailAttachedItem const& att)
{
data << uint8(att.Position);
- data << int32(att.AttachID);
+ data << uint64(att.AttachID);
data << int32(att.Count);
data << int32(att.Charges);
data << uint32(att.MaxDurability);
@@ -114,7 +114,7 @@ WorldPackets::Mail::MailListEntry::MailListEntry(::Mail const* mail, ::Player* p
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Mail::MailListEntry const& entry)
{
- data << int32(entry.MailID);
+ data << uint64(entry.MailID);
data << uint8(entry.SenderType);
data << uint64(entry.Cod);
data << int32(entry.StationeryID);
@@ -198,12 +198,12 @@ void WorldPackets::Mail::MailReturnToSender::Read()
WorldPacket const* WorldPackets::Mail::MailCommandResult::Write()
{
- _worldPacket << uint32(MailID);
- _worldPacket << uint32(Command);
- _worldPacket << uint32(ErrorCode);
- _worldPacket << uint32(BagResult);
- _worldPacket << uint32(AttachID);
- _worldPacket << uint32(QtyInInventory);
+ _worldPacket << uint64(MailID);
+ _worldPacket << int32(Command);
+ _worldPacket << int32(ErrorCode);
+ _worldPacket << int32(BagResult);
+ _worldPacket << uint64(AttachID);
+ _worldPacket << int32(QtyInInventory);
return &_worldPacket;
}
diff --git a/src/server/game/Server/Packets/MailPackets.h b/src/server/game/Server/Packets/MailPackets.h
index 5c65dce692e..2dc1fc3eb96 100644
--- a/src/server/game/Server/Packets/MailPackets.h
+++ b/src/server/game/Server/Packets/MailPackets.h
@@ -34,7 +34,7 @@ namespace WorldPackets
MailAttachedItem(::Item const* item, uint8 pos);
uint8 Position = 0;
- int32 AttachID = 0;
+ uint64 AttachID = 0;
Item::ItemInstance Item;
int32 Count = 0;
int32 Charges = 0;
@@ -49,7 +49,7 @@ namespace WorldPackets
{
MailListEntry(::Mail const* mail, ::Player* player);
- int32 MailID = 0;
+ uint64 MailID = 0;
uint8 SenderType = 0;
Optional<ObjectGuid> SenderCharacter;
Optional<uint32> AltSenderID;
@@ -93,7 +93,7 @@ namespace WorldPackets
void Read() override;
ObjectGuid Mailbox;
- uint32 MailID = 0;
+ uint64 MailID = 0;
};
class SendMail final : public ClientPacket
@@ -131,12 +131,12 @@ namespace WorldPackets
WorldPacket const* Write() override;
- uint32 MailID = 0;
- uint32 Command = 0;
- uint32 ErrorCode = 0;
- uint32 BagResult = 0;
- uint32 AttachID = 0;
- uint32 QtyInInventory = 0;
+ uint64 MailID = 0;
+ int32 Command = 0;
+ int32 ErrorCode = 0;
+ int32 BagResult = 0;
+ uint64 AttachID = 0;
+ int32 QtyInInventory = 0;
};
class MailReturnToSender final : public ClientPacket
@@ -146,7 +146,7 @@ namespace WorldPackets
void Read() override;
- int32 MailID = 0;
+ uint64 MailID = 0;
ObjectGuid SenderGUID;
};
@@ -158,7 +158,7 @@ namespace WorldPackets
void Read() override;
ObjectGuid Mailbox;
- int32 MailID = 0;
+ uint64 MailID = 0;
};
class MailDelete final : public ClientPacket
@@ -168,7 +168,7 @@ namespace WorldPackets
void Read() override;
- int32 MailID = 0;
+ uint64 MailID = 0;
int32 DeleteReason = 0;
};
@@ -180,8 +180,8 @@ namespace WorldPackets
void Read() override;
ObjectGuid Mailbox;
- int32 MailID = 0;
- int32 AttachID = 0;
+ uint64 MailID = 0;
+ uint64 AttachID = 0;
};
class MailTakeMoney final : public ClientPacket
@@ -192,8 +192,8 @@ namespace WorldPackets
void Read() override;
ObjectGuid Mailbox;
- int32 MailID = 0;
- int64 Money = 0;
+ uint64 MailID = 0;
+ uint64 Money = 0;
};
class MailQueryNextMailTime final : public ClientPacket
diff --git a/src/server/game/Server/Packets/PerksProgramPacketsCommon.cpp b/src/server/game/Server/Packets/PerksProgramPacketsCommon.cpp
new file mode 100644
index 00000000000..32d0d781c94
--- /dev/null
+++ b/src/server/game/Server/Packets/PerksProgramPacketsCommon.cpp
@@ -0,0 +1,38 @@
+/*
+ * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "PerksProgramPacketsCommon.h"
+
+namespace WorldPackets::PerksProgram
+{
+ByteBuffer& operator<<(ByteBuffer& data, PerksVendorItem const& perksVendorItem)
+{
+ data << int32(perksVendorItem.VendorItemID);
+ data << int32(perksVendorItem.MountID);
+ data << int32(perksVendorItem.BattlePetSpeciesID);
+ data << int32(perksVendorItem.TransmogSetID);
+ data << int32(perksVendorItem.ItemModifiedAppearanceID);
+ data << int32(perksVendorItem.Field_14);
+ data << int32(perksVendorItem.Field_18);
+ data << int32(perksVendorItem.Price);
+ data << perksVendorItem.AvailableUntil;
+ data.WriteBit(perksVendorItem.Disabled);
+ data.FlushBits();
+
+ return data;
+}
+}
diff --git a/src/server/game/Server/Packets/PerksProgramPacketsCommon.h b/src/server/game/Server/Packets/PerksProgramPacketsCommon.h
new file mode 100644
index 00000000000..7b153218e8b
--- /dev/null
+++ b/src/server/game/Server/Packets/PerksProgramPacketsCommon.h
@@ -0,0 +1,42 @@
+/*
+ * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef PerksPorgramPacketsCommon_h__
+#define PerksPorgramPacketsCommon_h__
+
+#include "PacketUtilities.h"
+
+namespace WorldPackets::PerksProgram
+{
+struct PerksVendorItem
+{
+ int32 VendorItemID = 0;
+ int32 MountID = 0;
+ int32 BattlePetSpeciesID = 0;
+ int32 TransmogSetID = 0;
+ int32 ItemModifiedAppearanceID = 0;
+ int32 Field_14 = 0;
+ int32 Field_18 = 0;
+ int32 Price = 0;
+ Timestamp<> AvailableUntil;
+ bool Disabled = false;
+};
+
+ByteBuffer& operator<<(ByteBuffer& data, PerksVendorItem const& perksVendorItem);
+}
+
+#endif // PerksPorgramPacketsCommon_h__
diff --git a/src/server/game/Server/Packets/QuestPackets.cpp b/src/server/game/Server/Packets/QuestPackets.cpp
index 43fd278239f..4ac0d00c1f5 100644
--- a/src/server/game/Server/Packets/QuestPackets.cpp
+++ b/src/server/game/Server/Packets/QuestPackets.cpp
@@ -45,6 +45,22 @@ void QuestGiverStatusQuery::Read()
_worldPacket >> QuestGiverGUID;
}
+void QuestGiverStatusTrackedQuery::Read()
+{
+ uint32 guidCount = 0;
+ _worldPacket >> guidCount;
+ if (guidCount > 1000)
+ throw PacketArrayMaxCapacityException(guidCount, 1000);
+
+ QuestGiverGUIDs.reserve(guidCount);
+ for (uint32 i = 0; i < guidCount; ++i)
+ {
+ ObjectGuid guid;
+ _worldPacket >> guid;
+ QuestGiverGUIDs.insert(guid);
+ }
+}
+
WorldPacket const* QuestGiverStatus::Write()
{
_worldPacket << QuestGiver.Guid;
diff --git a/src/server/game/Server/Packets/QuestPackets.h b/src/server/game/Server/Packets/QuestPackets.h
index 14c9f25e981..42cdff0f3eb 100644
--- a/src/server/game/Server/Packets/QuestPackets.h
+++ b/src/server/game/Server/Packets/QuestPackets.h
@@ -49,6 +49,16 @@ namespace WorldPackets
void Read() override { }
};
+ class QuestGiverStatusTrackedQuery final : public ClientPacket
+ {
+ public:
+ QuestGiverStatusTrackedQuery(WorldPacket&& packet) : ClientPacket(CMSG_QUEST_GIVER_STATUS_TRACKED_QUERY, std::move(packet)) { }
+
+ void Read() override;
+
+ GuidUnorderedSet QuestGiverGUIDs;
+ };
+
struct QuestGiverInfo
{
QuestGiverInfo() { }
diff --git a/src/server/game/Server/Packets/SpellPackets.cpp b/src/server/game/Server/Packets/SpellPackets.cpp
index 221a6e5cd96..d3010690bbc 100644
--- a/src/server/game/Server/Packets/SpellPackets.cpp
+++ b/src/server/game/Server/Packets/SpellPackets.cpp
@@ -907,7 +907,6 @@ void SelfRes::Read()
void GetMirrorImageData::Read()
{
_worldPacket >> UnitGUID;
- _worldPacket >> DisplayID;
}
MirrorImageComponentedData::MirrorImageComponentedData()
diff --git a/src/server/game/Server/Packets/SpellPackets.h b/src/server/game/Server/Packets/SpellPackets.h
index 53cfdfddfcd..deb37c81647 100644
--- a/src/server/game/Server/Packets/SpellPackets.h
+++ b/src/server/game/Server/Packets/SpellPackets.h
@@ -906,7 +906,6 @@ namespace WorldPackets
void Read() override;
ObjectGuid UnitGUID;
- uint32 DisplayID = 0;
};
class MirrorImageComponentedData final : public ServerPacket
diff --git a/src/server/game/Server/Packets/SystemPackets.cpp b/src/server/game/Server/Packets/SystemPackets.cpp
index 5396f9fe141..d71b49eb566 100644
--- a/src/server/game/Server/Packets/SystemPackets.cpp
+++ b/src/server/game/Server/Packets/SystemPackets.cpp
@@ -52,9 +52,6 @@ WorldPacket const* FeatureSystemStatus::Write()
{
_worldPacket << uint8(ComplaintStatus);
- _worldPacket << uint32(ScrollOfResurrectionRequestsRemaining);
- _worldPacket << uint32(ScrollOfResurrectionMaxRequestsPerDay);
-
_worldPacket << uint32(CfgRealmID);
_worldPacket << int32(CfgRealmRecID);
@@ -87,14 +84,13 @@ WorldPacket const* FeatureSystemStatus::Write()
_worldPacket.WriteBit(VoiceEnabled);
_worldPacket.WriteBit(EuropaTicketSystemStatus.has_value());
- _worldPacket.WriteBit(ScrollOfResurrectionEnabled);
_worldPacket.WriteBit(BpayStoreEnabled);
_worldPacket.WriteBit(BpayStoreAvailable);
_worldPacket.WriteBit(BpayStoreDisabledByParentalControls);
_worldPacket.WriteBit(ItemRestorationButtonEnabled);
_worldPacket.WriteBit(BrowserEnabled);
-
_worldPacket.WriteBit(SessionAlert.has_value());
+
_worldPacket.WriteBit(RAFSystem.Enabled);
_worldPacket.WriteBit(RAFSystem.RecruitingEnabled);
_worldPacket.WriteBit(CharUndeleteEnabled);
@@ -102,8 +98,8 @@ WorldPacket const* FeatureSystemStatus::Write()
_worldPacket.WriteBit(CommerceSystemEnabled);
_worldPacket.WriteBit(TutorialsEnabled);
_worldPacket.WriteBit(TwitterEnabled);
-
_worldPacket.WriteBit(Unk67);
+
_worldPacket.WriteBit(WillKickFromWorld);
_worldPacket.WriteBit(KioskModeEnabled);
_worldPacket.WriteBit(CompetitiveModeEnabled);
@@ -111,8 +107,8 @@ WorldPacket const* FeatureSystemStatus::Write()
_worldPacket.WriteBit(WarModeFeatureEnabled);
_worldPacket.WriteBit(ClubsEnabled);
_worldPacket.WriteBit(ClubsBattleNetClubTypeAllowed);
-
_worldPacket.WriteBit(ClubsCharacterClubTypeAllowed);
+
_worldPacket.WriteBit(ClubsPresenceUpdateEnabled);
_worldPacket.WriteBit(VoiceChatDisabledByParentalControl);
_worldPacket.WriteBit(VoiceChatMutedByParentalControl);
@@ -120,8 +116,8 @@ WorldPacket const* FeatureSystemStatus::Write()
_worldPacket.WriteBit(IsMuted);
_worldPacket.WriteBit(ClubFinderEnabled);
_worldPacket.WriteBit(Unknown901CheckoutRelated);
-
_worldPacket.WriteBit(TextToSpeechFeatureEnabled);
+
_worldPacket.WriteBit(ChatDisabledByDefault);
_worldPacket.WriteBit(ChatDisabledByPlayer);
_worldPacket.WriteBit(LFGListCustomRequiresAuthenticator);
diff --git a/src/server/game/Server/Packets/SystemPackets.h b/src/server/game/Server/Packets/SystemPackets.h
index 2091940632f..bd1affa1f6b 100644
--- a/src/server/game/Server/Packets/SystemPackets.h
+++ b/src/server/game/Server/Packets/SystemPackets.h
@@ -114,10 +114,7 @@ namespace WorldPackets
bool BpayStoreAvailable = false;
bool BpayStoreEnabled = false;
Optional<SessionAlertConfig> SessionAlert;
- uint32 ScrollOfResurrectionMaxRequestsPerDay = 0;
- bool ScrollOfResurrectionEnabled = false;
Optional<EuropaTicketConfig> EuropaTicketSystemStatus;
- uint32 ScrollOfResurrectionRequestsRemaining = 0;
uint32 CfgRealmID = 0;
uint8 ComplaintStatus = 0;
int32 CfgRealmRecID = 0;
diff --git a/src/server/game/Server/Packets/TicketPackets.h b/src/server/game/Server/Packets/TicketPackets.h
index ec2b558dd41..5cece62fa03 100644
--- a/src/server/game/Server/Packets/TicketPackets.h
+++ b/src/server/game/Server/Packets/TicketPackets.h
@@ -147,7 +147,7 @@ namespace WorldPackets
struct SupportTicketMailInfo
{
- int32 MailID = 0;
+ int64 MailID = 0;
std::string MailSubject;
std::string MailBody;
};
@@ -259,7 +259,7 @@ namespace WorldPackets
uint8 ComplaintType = 0;
ComplaintOffender Offender;
- uint32 MailID = 0;
+ uint64 MailID = 0;
ComplaintChat Chat;
uint64 EventGuid = 0;
uint64 InviteGuid = 0;
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index 586bd8e8298..823539281d0 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -693,6 +693,11 @@ void OpcodeTable::Initialize()
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_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);
+ DEFINE_HANDLER(CMSG_PERKS_PROGRAM_SET_FROZEN_VENDOR_ITEM, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL);
+ DEFINE_HANDLER(CMSG_PERKS_PROGRAM_STATUS_REQUEST, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_PETITION_BUY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetitionBuy);
DEFINE_HANDLER(CMSG_PETITION_RENAME_GUILD, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetitionRenameGuild);
DEFINE_HANDLER(CMSG_PETITION_SHOW_LIST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetitionShowList);
@@ -754,6 +759,7 @@ void OpcodeTable::Initialize()
DEFINE_HANDLER(CMSG_QUEST_GIVER_REQUEST_REWARD, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQuestgiverRequestRewardOpcode);
DEFINE_HANDLER(CMSG_QUEST_GIVER_STATUS_MULTIPLE_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestgiverStatusMultipleQuery);
DEFINE_HANDLER(CMSG_QUEST_GIVER_STATUS_QUERY, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQuestgiverStatusQueryOpcode);
+ DEFINE_HANDLER(CMSG_QUEST_GIVER_STATUS_TRACKED_QUERY, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQuestgiverStatusTrackedQueryOpcode);
DEFINE_HANDLER(CMSG_QUEST_LOG_REMOVE_QUEST, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQuestLogRemoveQuest);
DEFINE_HANDLER(CMSG_QUEST_POI_QUERY, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQuestPOIQuery);
DEFINE_HANDLER(CMSG_QUEST_PUSH_RESULT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestPushResult);
@@ -990,6 +996,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_CRITERIA_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_DATA_TIMES, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_HEIRLOOM_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_MOUNT_REMOVED, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_MOUNT_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_NOTIFICATIONS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_TOY_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
@@ -1265,6 +1272,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CRAFT_ENCHANT_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CREATE_CHAR, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CREATE_SHIPMENT_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_CREATOR_VISUALS_OVERRIDE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CRITERIA_DELETED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CRITERIA_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CROSSED_INEBRIATION_THRESHOLD, STATUS_NEVER, CONNECTION_TYPE_REALM);
@@ -1756,6 +1764,11 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PAST_TIME_EVENTS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PAUSE_MIRROR_TIMER, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PENDING_RAID_LOCK, STATUS_NEVER, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_PERKS_PROGRAM_ACTIVITY_COMPLETE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_PERKS_PROGRAM_ACTIVITY_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_PERKS_PROGRAM_DISABLED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_PERKS_PROGRAM_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_PERKS_PROGRAM_VENDOR_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PETITION_ALREADY_SIGNED, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PETITION_RENAME_GUILD_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PETITION_SHOW_LIST, STATUS_NEVER, CONNECTION_TYPE_REALM);
@@ -1913,11 +1926,14 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESEARCH_COMPLETE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESET_COMPRESSION_CONTEXT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESET_FAILED_NOTIFY, STATUS_NEVER, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESET_LAST_LOADED_CONFIG_CVARS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESET_QUEST_POI, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESET_RANGED_COMBAT_TIMER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESET_WEEKLY_CURRENCY, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESPEC_WIPE_CONFIRM, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESPOND_INSPECT_ACHIEVEMENTS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESPONSE_PERK_PENDING_REWARDS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESPONSE_PERK_RECENT_PURCHASES, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESTART_GLOBAL_COOLDOWN, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESTRICTED_ACCOUNT_WARNING, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESUME_CAST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
diff --git a/src/server/game/Server/Protocol/Opcodes.h b/src/server/game/Server/Protocol/Opcodes.h
index f819789325b..38a05995d99 100644
--- a/src/server/game/Server/Protocol/Opcodes.h
+++ b/src/server/game/Server/Protocol/Opcodes.h
@@ -47,17 +47,17 @@ enum OpcodeClient : uint16
CMSG_ABANDON_NPE_RESPONSE = 0x33EB,
CMSG_ACCEPT_GUILD_INVITE = 0x35FC,
CMSG_ACCEPT_RETURNING_PLAYER_PROMPT = 0x3395,
- CMSG_ACCEPT_SOCIAL_CONTRACT = 0x373E,
+ CMSG_ACCEPT_SOCIAL_CONTRACT = 0x373C,
CMSG_ACCEPT_TRADE = 0x315A,
CMSG_ACCEPT_WARGAME_INVITE = 0x35E0,
- CMSG_ACCOUNT_NOTIFICATION_ACKNOWLEDGED = 0x3733,
+ CMSG_ACCOUNT_NOTIFICATION_ACKNOWLEDGED = 0x3731,
CMSG_ACTIVATE_SOULBIND = 0x33DA,
CMSG_ACTIVATE_TAXI = 0x34B1,
CMSG_ADDON_LIST = 0x35D8,
CMSG_ADD_ACCOUNT_COSMETIC = 0x32B1,
- CMSG_ADD_BATTLENET_FRIEND = 0x365A,
- CMSG_ADD_FRIEND = 0x36CE,
- CMSG_ADD_IGNORE = 0x36D2,
+ CMSG_ADD_BATTLENET_FRIEND = 0x3658,
+ CMSG_ADD_FRIEND = 0x36CC,
+ CMSG_ADD_IGNORE = 0x36D0,
CMSG_ADD_TOY = 0x32B0,
CMSG_ADVENTURE_JOURNAL_OPEN_QUEST = 0x3204,
CMSG_ADVENTURE_JOURNAL_UPDATE_SUGGESTIONS = 0x33DD,
@@ -71,8 +71,8 @@ enum OpcodeClient : uint16
CMSG_ASSIGN_EQUIPMENT_SET_SPEC = 0x3210,
CMSG_ATTACK_STOP = 0x3263,
CMSG_ATTACK_SWING = 0x3262,
- CMSG_AUCTIONABLE_TOKEN_SELL = 0x36E4,
- CMSG_AUCTIONABLE_TOKEN_SELL_AT_MARKET_PRICE = 0x36E5,
+ CMSG_AUCTIONABLE_TOKEN_SELL = 0x36E2,
+ CMSG_AUCTIONABLE_TOKEN_SELL_AT_MARKET_PRICE = 0x36E3,
CMSG_AUCTION_BROWSE_QUERY = 0x34D6,
CMSG_AUCTION_CANCEL_COMMODITIES_PURCHASE = 0x34DE,
CMSG_AUCTION_CONFIRM_COMMODITIES_PURCHASE = 0x34DD,
@@ -86,10 +86,10 @@ enum OpcodeClient : uint16
CMSG_AUCTION_PLACE_BID = 0x34D5,
CMSG_AUCTION_REMOVE_ITEM = 0x34D3,
CMSG_AUCTION_REPLICATE_ITEMS = 0x34D4,
- CMSG_AUCTION_REQUEST_FAVORITE_LIST = 0x3735,
+ CMSG_AUCTION_REQUEST_FAVORITE_LIST = 0x3733,
CMSG_AUCTION_SELL_COMMODITY = 0x34DF,
CMSG_AUCTION_SELL_ITEM = 0x34D2,
- CMSG_AUCTION_SET_FAVORITE_ITEM = 0x3734,
+ CMSG_AUCTION_SET_FAVORITE_ITEM = 0x3732,
CMSG_AUTH_CONTINUED_SESSION = 0x3766,
CMSG_AUTH_SESSION = 0x3765,
CMSG_AUTOBANK_ITEM = 0x3997,
@@ -115,28 +115,28 @@ enum OpcodeClient : uint16
CMSG_BATTLEMASTER_JOIN_BRAWL = 0x3536,
CMSG_BATTLEMASTER_JOIN_RATED_SOLO_SHUFFLE = 0x3532,
CMSG_BATTLEMASTER_JOIN_SKIRMISH = 0x3533,
- CMSG_BATTLENET_CHALLENGE_RESPONSE = 0x36D1,
- CMSG_BATTLENET_REQUEST = 0x36F3,
- CMSG_BATTLE_PAY_ACK_FAILED_RESPONSE = 0x36CB,
- CMSG_BATTLE_PAY_CANCEL_OPEN_CHECKOUT = 0x3711,
- CMSG_BATTLE_PAY_CONFIRM_PURCHASE_RESPONSE = 0x36CA,
- CMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_TO_TARGET = 0x36C1,
- CMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_VAS = 0x3738,
- CMSG_BATTLE_PAY_GET_PRODUCT_LIST = 0x36B9,
- CMSG_BATTLE_PAY_GET_PURCHASE_LIST = 0x36BA,
- CMSG_BATTLE_PAY_OPEN_CHECKOUT = 0x370A,
- CMSG_BATTLE_PAY_REQUEST_PRICE_INFO = 0x3706,
- CMSG_BATTLE_PAY_START_PURCHASE = 0x36C9,
- CMSG_BATTLE_PAY_START_VAS_PURCHASE = 0x36F0,
- CMSG_BATTLE_PET_CLEAR_FANFARE = 0x312C,
- 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_BATTLENET_CHALLENGE_RESPONSE = 0x36CF,
+ CMSG_BATTLENET_REQUEST = 0x36F1,
+ CMSG_BATTLE_PAY_ACK_FAILED_RESPONSE = 0x36C9,
+ CMSG_BATTLE_PAY_CANCEL_OPEN_CHECKOUT = 0x370F,
+ CMSG_BATTLE_PAY_CONFIRM_PURCHASE_RESPONSE = 0x36C8,
+ CMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_TO_TARGET = 0x36BF,
+ CMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_VAS = 0x3736,
+ CMSG_BATTLE_PAY_GET_PRODUCT_LIST = 0x36B7,
+ CMSG_BATTLE_PAY_GET_PURCHASE_LIST = 0x36B8,
+ CMSG_BATTLE_PAY_OPEN_CHECKOUT = 0x3708,
+ CMSG_BATTLE_PAY_REQUEST_PRICE_INFO = 0x3704,
+ CMSG_BATTLE_PAY_START_PURCHASE = 0x36C7,
+ CMSG_BATTLE_PAY_START_VAS_PURCHASE = 0x36EE,
+ CMSG_BATTLE_PET_CLEAR_FANFARE = 0x312B,
+ CMSG_BATTLE_PET_DELETE_PET = 0x3623,
+ CMSG_BATTLE_PET_DELETE_PET_CHEAT = 0x3624,
+ CMSG_BATTLE_PET_MODIFY_NAME = 0x3626,
+ CMSG_BATTLE_PET_REQUEST_JOURNAL = 0x3622,
+ CMSG_BATTLE_PET_REQUEST_JOURNAL_LOCK = 0x3621,
+ CMSG_BATTLE_PET_SET_BATTLE_SLOT = 0x362B,
+ CMSG_BATTLE_PET_SET_FLAGS = 0x362E,
+ CMSG_BATTLE_PET_SUMMON = 0x3627,
CMSG_BATTLE_PET_UPDATE_DISPLAY_NOTIFY = 0x31E2,
CMSG_BATTLE_PET_UPDATE_NOTIFY = 0x31E1,
CMSG_BEGIN_TRADE = 0x3157,
@@ -145,28 +145,28 @@ enum OpcodeClient : uint16
CMSG_BLACK_MARKET_OPEN = 0x353E,
CMSG_BLACK_MARKET_REQUEST_ITEMS = 0x353F,
CMSG_BONUS_ROLL = 0x3394,
- CMSG_BUG_REPORT = 0x3685,
+ CMSG_BUG_REPORT = 0x3683,
CMSG_BUSY_TRADE = 0x3158,
CMSG_BUY_BACK_ITEM = 0x34AA,
CMSG_BUY_BANK_SLOT = 0x34BA,
CMSG_BUY_ITEM = 0x34A9,
CMSG_BUY_REAGENT_BANK = 0x34BB,
CMSG_CAGE_BATTLE_PET = 0x31F4,
- CMSG_CALENDAR_ADD_EVENT = 0x367D,
- CMSG_CALENDAR_COMMUNITY_INVITE = 0x3671,
- CMSG_CALENDAR_COMPLAIN = 0x3679,
- CMSG_CALENDAR_COPY_EVENT = 0x3678,
- CMSG_CALENDAR_EVENT_SIGN_UP = 0x367B,
- CMSG_CALENDAR_GET = 0x366F,
- CMSG_CALENDAR_GET_EVENT = 0x3670,
- CMSG_CALENDAR_GET_NUM_PENDING = 0x367A,
- CMSG_CALENDAR_INVITE = 0x3672,
- CMSG_CALENDAR_MODERATOR_STATUS = 0x3676,
- CMSG_CALENDAR_REMOVE_EVENT = 0x3677,
- CMSG_CALENDAR_REMOVE_INVITE = 0x3673,
- CMSG_CALENDAR_RSVP = 0x3674,
- CMSG_CALENDAR_STATUS = 0x3675,
- CMSG_CALENDAR_UPDATE_EVENT = 0x367E,
+ CMSG_CALENDAR_ADD_EVENT = 0x367B,
+ CMSG_CALENDAR_COMMUNITY_INVITE = 0x366F,
+ CMSG_CALENDAR_COMPLAIN = 0x3677,
+ CMSG_CALENDAR_COPY_EVENT = 0x3676,
+ CMSG_CALENDAR_EVENT_SIGN_UP = 0x3679,
+ CMSG_CALENDAR_GET = 0x366D,
+ CMSG_CALENDAR_GET_EVENT = 0x366E,
+ CMSG_CALENDAR_GET_NUM_PENDING = 0x3678,
+ CMSG_CALENDAR_INVITE = 0x3670,
+ CMSG_CALENDAR_MODERATOR_STATUS = 0x3674,
+ CMSG_CALENDAR_REMOVE_EVENT = 0x3675,
+ CMSG_CALENDAR_REMOVE_INVITE = 0x3671,
+ CMSG_CALENDAR_RSVP = 0x3672,
+ CMSG_CALENDAR_STATUS = 0x3673,
+ CMSG_CALENDAR_UPDATE_EVENT = 0x367C,
CMSG_CANCEL_AURA = 0x31AF,
CMSG_CANCEL_AUTO_REPEAT_SPELL = 0x34F5,
CMSG_CANCEL_CAST = 0x32B7,
@@ -178,22 +178,22 @@ enum OpcodeClient : uint16
CMSG_CANCEL_QUEUED_SPELL = 0x3180,
CMSG_CANCEL_TEMP_ENCHANTMENT = 0x3500,
CMSG_CANCEL_TRADE = 0x315C,
- CMSG_CAN_DUEL = 0x3662,
- CMSG_CAN_REDEEM_TOKEN_FOR_BALANCE = 0x3705,
+ CMSG_CAN_DUEL = 0x3660,
+ CMSG_CAN_REDEEM_TOKEN_FOR_BALANCE = 0x3703,
CMSG_CAST_SPELL = 0x32B4,
- CMSG_CHALLENGE_MODE_REQUEST_LEADERS = 0x3090,
+ CMSG_CHALLENGE_MODE_REQUEST_LEADERS = 0x308F,
CMSG_CHANGE_BAG_SLOT_FLAG = 0x334E,
CMSG_CHANGE_BANK_BAG_SLOT_FLAG = 0x334F,
CMSG_CHANGE_MONUMENT_APPEARANCE = 0x332F,
- 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 = 0x36F6,
+ CMSG_CHANGE_SUB_GROUP = 0x364A,
+ CMSG_CHARACTER_CHECK_UPGRADE = 0x36C2,
+ CMSG_CHARACTER_RENAME_REQUEST = 0x36BD,
+ CMSG_CHARACTER_UPGRADE_MANUAL_UNREVOKE_REQUEST = 0x36C0,
+ CMSG_CHARACTER_UPGRADE_START = 0x36C1,
+ CMSG_CHAR_CUSTOMIZE = 0x368A,
+ CMSG_CHAR_DELETE = 0x369A,
+ CMSG_CHAR_RACE_OR_FACTION_CHANGE = 0x3690,
CMSG_CHAT_ADDON_MESSAGE = 0x37EE,
CMSG_CHAT_ADDON_MESSAGE_TARGETED = 0x37EF,
CMSG_CHAT_CHANNEL_ANNOUNCEMENTS = 0x37E3,
@@ -230,65 +230,65 @@ enum OpcodeClient : uint16
CMSG_CHAT_REPORT_FILTERED = 0x37CC,
CMSG_CHAT_REPORT_IGNORED = 0x37CB,
CMSG_CHAT_UNREGISTER_ALL_ADDON_PREFIXES = 0x37CE,
- CMSG_CHECK_CHARACTER_NAME_AVAILABILITY = 0x3645,
+ CMSG_CHECK_CHARACTER_NAME_AVAILABILITY = 0x3643,
CMSG_CHECK_IS_ADVENTURE_MAP_POI_VALID = 0x3254,
CMSG_CHOICE_RESPONSE = 0x32BC,
CMSG_CHROMIE_TIME_SELECT_EXPANSION = 0x33D9,
CMSG_CLAIM_WEEKLY_REWARD = 0x33B5,
- CMSG_CLASS_TALENTS_DELETE_CONFIG = 0x3408,
+ CMSG_CLASS_TALENTS_DELETE_CONFIG = 0x3410,
CMSG_CLASS_TALENTS_NOTIFY_EMPTY_CONFIG = 0x3214,
- CMSG_CLASS_TALENTS_NOTIFY_VALIDATION_FAILED = 0x340A,
- CMSG_CLASS_TALENTS_RENAME_CONFIG = 0x3407,
- CMSG_CLASS_TALENTS_REQUEST_NEW_CONFIG = 0x3406,
- CMSG_CLASS_TALENTS_SET_STARTER_BUILD_ACTIVE = 0x340B,
+ CMSG_CLASS_TALENTS_NOTIFY_VALIDATION_FAILED = 0x3412,
+ CMSG_CLASS_TALENTS_RENAME_CONFIG = 0x340F,
+ CMSG_CLASS_TALENTS_REQUEST_NEW_CONFIG = 0x340E,
+ CMSG_CLASS_TALENTS_SET_STARTER_BUILD_ACTIVE = 0x3413,
CMSG_CLASS_TALENTS_SET_USES_SHARED_ACTION_BARS = 0x3213,
- CMSG_CLEAR_NEW_APPEARANCE = 0x312F,
+ CMSG_CLEAR_NEW_APPEARANCE = 0x312E,
CMSG_CLEAR_RAID_MARKER = 0x31A7,
CMSG_CLEAR_TRADE_ITEM = 0x315E,
CMSG_CLIENT_PORT_GRAVEYARD = 0x353A,
CMSG_CLOSE_INTERACTION = 0x3499,
CMSG_CLOSE_QUEST_CHOICE = 0x32BD,
CMSG_CLOSE_RUNEFORGE_INTERACTION = 0x33E1,
- CMSG_CLOSE_TRAIT_SYSTEM_INTERACTION = 0x340C,
- CMSG_CLUB_FINDER_APPLICATION_RESPONSE = 0x371C,
- CMSG_CLUB_FINDER_GET_APPLICANTS_LIST = 0x371A,
- CMSG_CLUB_FINDER_POST = 0x3717,
- CMSG_CLUB_FINDER_REQUEST_CLUBS_DATA = 0x371E,
- CMSG_CLUB_FINDER_REQUEST_CLUBS_LIST = 0x3718,
- CMSG_CLUB_FINDER_REQUEST_MEMBERSHIP_TO_CLUB = 0x3719,
- CMSG_CLUB_FINDER_REQUEST_PENDING_CLUBS_LIST = 0x371D,
- CMSG_CLUB_FINDER_REQUEST_SUBSCRIBED_CLUB_POSTING_IDS = 0x371F,
- CMSG_CLUB_FINDER_RESPOND_TO_APPLICANT = 0x371B,
- CMSG_CLUB_FINDER_WHISPER_APPLICANT_REQUEST = 0x373B,
- CMSG_CLUB_PRESENCE_SUBSCRIBE = 0x36F5,
- CMSG_COLLECTION_ITEM_SET_FAVORITE = 0x3633,
+ CMSG_CLOSE_TRAIT_SYSTEM_INTERACTION = 0x3414,
+ CMSG_CLUB_FINDER_APPLICATION_RESPONSE = 0x371A,
+ CMSG_CLUB_FINDER_GET_APPLICANTS_LIST = 0x3718,
+ CMSG_CLUB_FINDER_POST = 0x3715,
+ CMSG_CLUB_FINDER_REQUEST_CLUBS_DATA = 0x371C,
+ CMSG_CLUB_FINDER_REQUEST_CLUBS_LIST = 0x3716,
+ CMSG_CLUB_FINDER_REQUEST_MEMBERSHIP_TO_CLUB = 0x3717,
+ CMSG_CLUB_FINDER_REQUEST_PENDING_CLUBS_LIST = 0x371B,
+ CMSG_CLUB_FINDER_REQUEST_SUBSCRIBED_CLUB_POSTING_IDS = 0x371D,
+ CMSG_CLUB_FINDER_RESPOND_TO_APPLICANT = 0x3719,
+ CMSG_CLUB_FINDER_WHISPER_APPLICANT_REQUEST = 0x3739,
+ CMSG_CLUB_PRESENCE_SUBSCRIBE = 0x36F3,
+ CMSG_COLLECTION_ITEM_SET_FAVORITE = 0x3631,
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 = 0x3739,
+ 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_COMMERCE_TOKEN_GET_COUNT = 0x36E0,
+ CMSG_COMMERCE_TOKEN_GET_LOG = 0x36EA,
+ CMSG_COMMERCE_TOKEN_GET_MARKET_PRICE = 0x36E1,
+ CMSG_COMPLAINT = 0x366A,
CMSG_COMPLETE_CINEMATIC = 0x3558,
CMSG_COMPLETE_MOVIE = 0x34EB,
CMSG_CONFIRM_ARTIFACT_RESPEC = 0x31AC,
CMSG_CONFIRM_RESPEC_WIPE = 0x3216,
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_CONSUMABLE_TOKEN_BUY = 0x36E5,
+ CMSG_CONSUMABLE_TOKEN_BUY_AT_MARKET_PRICE = 0x36E6,
+ CMSG_CONSUMABLE_TOKEN_CAN_VETERAN_BUY = 0x36E4,
+ CMSG_CONSUMABLE_TOKEN_REDEEM = 0x36E8,
+ CMSG_CONSUMABLE_TOKEN_REDEEM_CONFIRMATION = 0x36E9,
CMSG_CONTRIBUTION_CONTRIBUTE = 0x356C,
CMSG_CONTRIBUTION_LAST_UPDATE_REQUEST = 0x356D,
CMSG_CONVERSATION_CINEMATIC_READY = 0x355A,
CMSG_CONVERSATION_LINE_STARTED = 0x3559,
- CMSG_CONVERT_RAID = 0x364E,
+ CMSG_CONVERT_RAID = 0x364C,
CMSG_COVENANT_RENOWN_REQUEST_CATCHUP_STATE = 0x3580,
CMSG_CRAFTING_ORDER_CANCEL = 0x358B,
CMSG_CRAFTING_ORDER_CLAIM = 0x3588,
@@ -299,14 +299,14 @@ enum OpcodeClient : uint16
CMSG_CRAFTING_ORDER_REJECT = 0x358C,
CMSG_CRAFTING_ORDER_RELEASE = 0x3589,
CMSG_CRAFTING_ORDER_UPDATE_IGNORE_LIST = 0x358D,
- CMSG_CREATE_CHARACTER = 0x3644,
+ CMSG_CREATE_CHARACTER = 0x3642,
CMSG_CREATE_SHIPMENT = 0x331A,
CMSG_DB_QUERY_BULK = 0x35E4,
CMSG_DECLINE_GUILD_INVITES = 0x352D,
CMSG_DECLINE_PETITION = 0x3547,
CMSG_DELETE_EQUIPMENT_SET = 0x3519,
- CMSG_DEL_FRIEND = 0x36CF,
- CMSG_DEL_IGNORE = 0x36D3,
+ CMSG_DEL_FRIEND = 0x36CD,
+ CMSG_DEL_IGNORE = 0x36D1,
CMSG_DEPOSIT_REAGENT_BANK = 0x3357,
CMSG_DESTROY_ITEM = 0x32AA,
CMSG_DF_BOOT_PLAYER_VOTE = 0x3616,
@@ -321,18 +321,18 @@ enum OpcodeClient : uint16
CMSG_DF_TELEPORT = 0x3617,
CMSG_DISCARDED_TIME_SYNC_ACKS = 0x3A41,
CMSG_DISMISS_CRITTER = 0x3507,
- CMSG_DO_COUNTDOWN = 0x3716,
+ CMSG_DO_COUNTDOWN = 0x3714,
CMSG_DO_MASTER_LOOT_ROLL = 0x321B,
- CMSG_DO_READY_CHECK = 0x3634,
+ CMSG_DO_READY_CHECK = 0x3632,
CMSG_DUEL_RESPONSE = 0x34F0,
CMSG_EJECT_PASSENGER = 0x3249,
CMSG_EMOTE = 0x3554,
CMSG_ENABLE_NAGLE = 0x376B,
CMSG_ENABLE_TAXI_NODE = 0x34AF,
- CMSG_ENGINE_SURVEY = 0x36E1,
+ CMSG_ENGINE_SURVEY = 0x36DF,
CMSG_ENTER_ENCRYPTED_MODE_ACK = 0x3767,
CMSG_ENUM_CHARACTERS = 0x35E8,
- CMSG_ENUM_CHARACTERS_DELETED_BY_CLIENT = 0x36DB,
+ CMSG_ENUM_CHARACTERS_DELETED_BY_CLIENT = 0x36D9,
CMSG_FAR_SIGHT = 0x34F6,
CMSG_GAME_EVENT_DEBUG_DISABLE = 0x31B3,
CMSG_GAME_EVENT_DEBUG_ENABLE = 0x31B2,
@@ -366,25 +366,25 @@ enum OpcodeClient : uint16
CMSG_GARRISON_START_MISSION = 0x333B,
CMSG_GARRISON_SWAP_BUILDINGS = 0x32E9,
CMSG_GENERATE_RANDOM_CHARACTER_NAME = 0x35E7,
- CMSG_GET_ACCOUNT_CHARACTER_LIST = 0x36B4,
- CMSG_GET_ACCOUNT_NOTIFICATIONS = 0x3732,
+ CMSG_GET_ACCOUNT_CHARACTER_LIST = 0x36B2,
+ CMSG_GET_ACCOUNT_NOTIFICATIONS = 0x3730,
CMSG_GET_GARRISON_INFO = 0x32DE,
CMSG_GET_ITEM_PURCHASE_DATA = 0x3542,
CMSG_GET_LANDING_PAGE_SHIPMENTS = 0x3319,
CMSG_GET_MIRROR_IMAGE_DATA = 0x32AE,
CMSG_GET_PVP_OPTIONS_ENABLED = 0x35EE,
- CMSG_GET_RAF_ACCOUNT_INFO = 0x3720,
- CMSG_GET_REMAINING_GAME_TIME = 0x36E9,
+ CMSG_GET_RAF_ACCOUNT_INFO = 0x371E,
+ CMSG_GET_REMAINING_GAME_TIME = 0x36E7,
CMSG_GET_TROPHY_LIST = 0x332C,
- 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_GET_UNDELETE_CHARACTER_COOLDOWN_STATUS = 0x36DB,
+ CMSG_GET_VAS_ACCOUNT_CHARACTER_LIST = 0x36EC,
+ CMSG_GET_VAS_TRANSFER_TARGET_REALM_LIST = 0x36ED,
+ CMSG_GM_TICKET_ACKNOWLEDGE_SURVEY = 0x368E,
+ CMSG_GM_TICKET_GET_CASE_STATUS = 0x368D,
+ CMSG_GM_TICKET_GET_SYSTEM_STATUS = 0x368C,
CMSG_GOSSIP_REFRESH_OPTIONS = 0x357F,
CMSG_GOSSIP_SELECT_OPTION = 0x349A,
- CMSG_GUILD_ADD_BATTLENET_FRIEND = 0x308E,
+ CMSG_GUILD_ADD_BATTLENET_FRIEND = 0x308D,
CMSG_GUILD_ADD_RANK = 0x3065,
CMSG_GUILD_ASSIGN_MEMBER_RANK = 0x3060,
CMSG_GUILD_AUTO_DECLINE_INVITATION = 0x3062,
@@ -421,7 +421,7 @@ enum OpcodeClient : uint16
CMSG_GUILD_REPLACE_GUILD_MASTER = 0x3089,
CMSG_GUILD_SET_ACHIEVEMENT_TRACKING = 0x3070,
CMSG_GUILD_SET_FOCUSED_ACHIEVEMENT = 0x3071,
- CMSG_GUILD_SET_GUILD_MASTER = 0x36C6,
+ CMSG_GUILD_SET_GUILD_MASTER = 0x36C4,
CMSG_GUILD_SET_MEMBER_NOTE = 0x3073,
CMSG_GUILD_SET_RANK_PERMISSIONS = 0x3068,
CMSG_GUILD_SHIFT_RANK = 0x3067,
@@ -440,12 +440,12 @@ enum OpcodeClient : uint16
CMSG_ITEM_TEXT_QUERY = 0x334B,
CMSG_JOIN_PET_BATTLE_QUEUE = 0x31DF,
CMSG_JOIN_RATED_BATTLEGROUND = 0x3179,
- CMSG_KEEP_ALIVE = 0x367F,
+ CMSG_KEEP_ALIVE = 0x367D,
CMSG_KEYBOUND_OVERRIDE = 0x322E,
CMSG_LATENCY_REPORT = 0x3771,
CMSG_LEARN_PVP_TALENTS = 0x356B,
CMSG_LEARN_TALENTS = 0x3569,
- CMSG_LEAVE_GROUP = 0x3649,
+ CMSG_LEAVE_GROUP = 0x3647,
CMSG_LEAVE_PET_BATTLE_QUEUE = 0x31E0,
CMSG_LFG_LIST_APPLY_TO_GROUP = 0x360D,
CMSG_LFG_LIST_CANCEL_APPLICATION = 0x360E,
@@ -458,10 +458,10 @@ enum OpcodeClient : uint16
CMSG_LFG_LIST_SEARCH = 0x360C,
CMSG_LFG_LIST_UPDATE_REQUEST = 0x3390,
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_LIVE_REGION_ACCOUNT_RESTORE = 0x36B5,
+ CMSG_LIVE_REGION_CHARACTER_COPY = 0x36B4,
+ CMSG_LIVE_REGION_GET_ACCOUNT_CHARACTER_LIST = 0x36B3,
+ CMSG_LIVE_REGION_KEY_BINDINGS_COPY = 0x36B6,
CMSG_LOADING_SCREEN_NOTIFY = 0x35F8,
CMSG_LOAD_SELECTED_TROPHY = 0x332D,
CMSG_LOGOUT_CANCEL = 0x34E6,
@@ -474,13 +474,13 @@ enum OpcodeClient : uint16
CMSG_LOOT_RELEASE = 0x321D,
CMSG_LOOT_ROLL = 0x321E,
CMSG_LOOT_UNIT = 0x3217,
- CMSG_LOW_LEVEL_RAID1 = 0x36A0,
+ CMSG_LOW_LEVEL_RAID1 = 0x369E,
CMSG_LOW_LEVEL_RAID2 = 0x3521,
CMSG_MAIL_CREATE_TEXT_ITEM = 0x354E,
CMSG_MAIL_DELETE = 0x3230,
CMSG_MAIL_GET_LIST = 0x3549,
CMSG_MAIL_MARK_AS_READ = 0x354D,
- CMSG_MAIL_RETURN_TO_SENDER = 0x3655,
+ CMSG_MAIL_RETURN_TO_SENDER = 0x3653,
CMSG_MAIL_TAKE_ITEM = 0x354B,
CMSG_MAIL_TAKE_MONEY = 0x354A,
CMSG_MAKE_CONTITIONAL_APPEARANCE_PERMANENT = 0x3232,
@@ -488,10 +488,10 @@ enum OpcodeClient : uint16
CMSG_MERGE_GUILD_BANK_ITEM_WITH_GUILD_BANK_ITEM = 0x34C7,
CMSG_MERGE_GUILD_BANK_ITEM_WITH_ITEM = 0x34C4,
CMSG_MERGE_ITEM_WITH_GUILD_BANK_ITEM = 0x34C2,
- CMSG_MINIMAP_PING = 0x364B,
+ CMSG_MINIMAP_PING = 0x3649,
CMSG_MISSILE_TRAJECTORY_COLLISION = 0x318B,
- CMSG_MOUNT_CLEAR_FANFARE = 0x312D,
- CMSG_MOUNT_SET_FAVORITE = 0x3632,
+ CMSG_MOUNT_CLEAR_FANFARE = 0x312C,
+ CMSG_MOUNT_SET_FAVORITE = 0x3630,
CMSG_MOUNT_SPECIAL_ANIM = 0x3297,
CMSG_MOVE_ADD_IMPULSE_ACK = 0x3A50,
CMSG_MOVE_APPLY_INERTIA_ACK = 0x3A4E,
@@ -582,7 +582,7 @@ 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 = 0x308F,
+ CMSG_MYTHIC_PLUS_REQUEST_MAP_STATS = 0x308E,
CMSG_NEUTRAL_PLAYER_SELECT_FACTION = 0x31D5,
CMSG_NEXT_CINEMATIC_CAMERA = 0x3557,
CMSG_OBJECT_UPDATE_FAILED = 0x3181,
@@ -597,19 +597,24 @@ enum OpcodeClient : uint16
CMSG_OVERRIDE_SCREEN_FLASH = 0x352E,
CMSG_PARTY_INVITE = 0x3602,
CMSG_PARTY_INVITE_RESPONSE = 0x3604,
- CMSG_PARTY_UNINVITE = 0x3647,
+ CMSG_PARTY_UNINVITE = 0x3645,
CMSG_PERFORM_ITEM_INTERACTION = 0x323A,
+ CMSG_PERKS_PROGRAM_REQUEST_PENDING_REWARDS = 0x313A,
+ CMSG_PERKS_PROGRAM_REQUEST_PURCHASE = 0x3400,
+ CMSG_PERKS_PROGRAM_REQUEST_REFUND = 0x3401,
+ CMSG_PERKS_PROGRAM_SET_FROZEN_VENDOR_ITEM = 0x3402,
+ CMSG_PERKS_PROGRAM_STATUS_REQUEST = 0x33FF,
CMSG_PETITION_BUY = 0x34CF,
- CMSG_PETITION_RENAME_GUILD = 0x36C7,
+ CMSG_PETITION_RENAME_GUILD = 0x36C5,
CMSG_PETITION_SHOW_LIST = 0x34CE,
CMSG_PETITION_SHOW_SIGNATURES = 0x34D0,
CMSG_PET_ABANDON = 0x3493,
CMSG_PET_ACTION = 0x3491,
CMSG_PET_BATTLE_FINAL_NOTIFY = 0x31E4,
- CMSG_PET_BATTLE_INPUT = 0x3641,
+ CMSG_PET_BATTLE_INPUT = 0x363F,
CMSG_PET_BATTLE_QUEUE_PROPOSE_MATCH_RESULT = 0x322F,
CMSG_PET_BATTLE_QUIT_NOTIFY = 0x31E3,
- CMSG_PET_BATTLE_REPLACE_FRONT_PET = 0x3642,
+ CMSG_PET_BATTLE_REPLACE_FRONT_PET = 0x3640,
CMSG_PET_BATTLE_REQUEST_PVP = 0x31DD,
CMSG_PET_BATTLE_REQUEST_UPDATE = 0x31DE,
CMSG_PET_BATTLE_REQUEST_WILD = 0x31DB,
@@ -617,7 +622,7 @@ enum OpcodeClient : uint16
CMSG_PET_BATTLE_WILD_LOCATION_FAIL = 0x31DC,
CMSG_PET_CANCEL_AURA = 0x3494,
CMSG_PET_CAST_SPELL = 0x32B3,
- CMSG_PET_RENAME = 0x3684,
+ CMSG_PET_RENAME = 0x3682,
CMSG_PET_SET_ACTION = 0x3490,
CMSG_PET_SPELL_AUTOCAST = 0x3495,
CMSG_PET_STOP_ATTACK = 0x3492,
@@ -626,13 +631,13 @@ enum OpcodeClient : uint16
CMSG_PUSH_QUEST_TO_PARTY = 0x34A5,
CMSG_PVP_LOG_DATA = 0x317C,
CMSG_QUERY_BATTLE_PET_NAME = 0x328A,
- CMSG_QUERY_CORPSE_LOCATION_FROM_CLIENT = 0x3660,
- CMSG_QUERY_CORPSE_TRANSPORT = 0x3661,
+ CMSG_QUERY_CORPSE_LOCATION_FROM_CLIENT = 0x365E,
+ CMSG_QUERY_CORPSE_TRANSPORT = 0x365F,
CMSG_QUERY_COUNTDOWN_TIMER = 0x31AA,
CMSG_QUERY_CREATURE = 0x3284,
CMSG_QUERY_GAME_OBJECT = 0x3285,
CMSG_QUERY_GARRISON_PET_NAME = 0x328B,
- CMSG_QUERY_GUILD_INFO = 0x368A,
+ CMSG_QUERY_GUILD_INFO = 0x3688,
CMSG_QUERY_INSPECT_ACHIEVEMENTS = 0x350E,
CMSG_QUERY_NEXT_MAIL_TIME = 0x354C,
CMSG_QUERY_NPC_TEXT = 0x3286,
@@ -645,8 +650,8 @@ enum OpcodeClient : uint16
CMSG_QUERY_QUEST_COMPLETION_NPCS = 0x3175,
CMSG_QUERY_QUEST_INFO = 0x3287,
CMSG_QUERY_QUEST_ITEM_USABILITY = 0x3176,
- CMSG_QUERY_REALM_NAME = 0x3689,
- CMSG_QUERY_SCENARIO_POI = 0x3656,
+ CMSG_QUERY_REALM_NAME = 0x3687,
+ CMSG_QUERY_SCENARIO_POI = 0x3654,
CMSG_QUERY_TIME = 0x34E3,
CMSG_QUERY_TREASURE_PICKER = 0x3370,
CMSG_QUERY_VOID_STORAGE = 0x31A3,
@@ -660,45 +665,46 @@ enum OpcodeClient : uint16
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 = 0x358F,
CMSG_QUEST_LOG_REMOVE_QUEST = 0x3541,
- CMSG_QUEST_POI_QUERY = 0x36AE,
+ CMSG_QUEST_POI_QUERY = 0x36AC,
CMSG_QUEST_PUSH_RESULT = 0x34A6,
CMSG_QUEST_SESSION_BEGIN_RESPONSE = 0x33C9,
CMSG_QUEST_SESSION_REQUEST_START = 0x33C8,
- CMSG_QUEST_SESSION_REQUEST_STOP = 0x372B,
+ CMSG_QUEST_SESSION_REQUEST_STOP = 0x3729,
CMSG_QUEUED_MESSAGES_END = 0x376C,
- CMSG_QUICK_JOIN_AUTO_ACCEPT_REQUESTS = 0x3704,
- CMSG_QUICK_JOIN_REQUEST_INVITE = 0x3703,
- CMSG_QUICK_JOIN_REQUEST_INVITE_WITH_CONFIRMATION = 0x3730,
- CMSG_QUICK_JOIN_RESPOND_TO_INVITE = 0x3702,
- CMSG_QUICK_JOIN_SIGNAL_TOAST_DISPLAYED = 0x3701,
+ CMSG_QUICK_JOIN_AUTO_ACCEPT_REQUESTS = 0x3702,
+ CMSG_QUICK_JOIN_REQUEST_INVITE = 0x3701,
+ CMSG_QUICK_JOIN_REQUEST_INVITE_WITH_CONFIRMATION = 0x372E,
+ CMSG_QUICK_JOIN_RESPOND_TO_INVITE = 0x3700,
+ CMSG_QUICK_JOIN_SIGNAL_TOAST_DISPLAYED = 0x36FF,
CMSG_RAF_CLAIM_ACTIVITY_REWARD = 0x3512,
- CMSG_RAF_CLAIM_NEXT_REWARD = 0x3721,
- CMSG_RAF_GENERATE_RECRUITMENT_LINK = 0x3723,
- CMSG_RAF_UPDATE_RECRUITMENT_INFO = 0x3722,
- CMSG_RANDOM_ROLL = 0x3654,
- CMSG_READY_CHECK_RESPONSE = 0x3635,
+ CMSG_RAF_CLAIM_NEXT_REWARD = 0x371F,
+ CMSG_RAF_GENERATE_RECRUITMENT_LINK = 0x3721,
+ CMSG_RAF_UPDATE_RECRUITMENT_INFO = 0x3720,
+ CMSG_RANDOM_ROLL = 0x3652,
+ CMSG_READY_CHECK_RESPONSE = 0x3633,
CMSG_READ_ITEM = 0x334D,
CMSG_RECLAIM_CORPSE = 0x34E9,
CMSG_REMOVE_NEW_ITEM = 0x3373,
- CMSG_REMOVE_RAF_RECRUIT = 0x3724,
+ CMSG_REMOVE_RAF_RECRUIT = 0x3722,
CMSG_REORDER_CHARACTERS = 0x35E9,
CMSG_REPAIR_ITEM = 0x34FA,
CMSG_REPLACE_TROPHY = 0x332E,
CMSG_REPOP_REQUEST = 0x3539,
- 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_CLIENT_VARIABLES = 0x36FC,
+ CMSG_REPORT_ENABLED_ADDONS = 0x36FB,
+ CMSG_REPORT_FROZEN_WHILE_LOADING_MAP = 0x36A4,
+ CMSG_REPORT_KEYBINDING_EXECUTION_COUNTS = 0x36FD,
CMSG_REPORT_PVP_PLAYER_AFK = 0x3502,
CMSG_REPORT_SERVER_LAG = 0x33C1,
CMSG_REPORT_STUCK_IN_COMBAT = 0x33C2,
- CMSG_REQUEST_ACCOUNT_DATA = 0x3694,
+ CMSG_REQUEST_ACCOUNT_DATA = 0x3692,
CMSG_REQUEST_AREA_POI_UPDATE = 0x3372,
CMSG_REQUEST_BATTLEFIELD_STATUS = 0x35DC,
CMSG_REQUEST_CATEGORY_COOLDOWNS = 0x317E,
CMSG_REQUEST_CEMETERY_LIST = 0x3177,
- CMSG_REQUEST_CHARACTER_GUILD_FOLLOW_INFO = 0x368B,
+ CMSG_REQUEST_CHARACTER_GUILD_FOLLOW_INFO = 0x3689,
CMSG_REQUEST_CONQUEST_FORMULA_CONSTANTS = 0x32D0,
CMSG_REQUEST_COVENANT_CALLINGS = 0x33B3,
CMSG_REQUEST_CROWD_CONTROL_SPELL = 0x353D,
@@ -711,13 +717,13 @@ enum OpcodeClient : uint16
CMSG_REQUEST_MYTHIC_PLUS_AFFIXES = 0x3208,
CMSG_REQUEST_MYTHIC_PLUS_SEASON_DATA = 0x3209,
CMSG_REQUEST_PARTY_JOIN_UPDATES = 0x35F7,
- CMSG_REQUEST_PARTY_MEMBER_STATS = 0x3653,
+ CMSG_REQUEST_PARTY_MEMBER_STATS = 0x3651,
CMSG_REQUEST_PET_INFO = 0x3496,
CMSG_REQUEST_PLAYED_TIME = 0x328F,
CMSG_REQUEST_PVP_REWARDS = 0x3196,
- CMSG_REQUEST_RAID_INFO = 0x36C8,
+ CMSG_REQUEST_RAID_INFO = 0x36C6,
CMSG_REQUEST_RATED_PVP_INFO = 0x35E3,
- CMSG_REQUEST_REALM_GUILD_MASTER_INFO = 0x309B,
+ CMSG_REQUEST_REALM_GUILD_MASTER_INFO = 0x309A,
CMSG_REQUEST_RESEARCH_HISTORY = 0x3167,
CMSG_REQUEST_SCHEDULED_PVP_INFO = 0x3197,
CMSG_REQUEST_STABLED_PETS = 0x3497,
@@ -729,8 +735,8 @@ enum OpcodeClient : uint16
CMSG_REQUEST_WORLD_QUEST_UPDATE = 0x3371,
CMSG_RESET_CHALLENGE_MODE = 0x3206,
CMSG_RESET_CHALLENGE_MODE_CHEAT = 0x3207,
- CMSG_RESET_INSTANCES = 0x3668,
- CMSG_RESURRECT_RESPONSE = 0x3683,
+ CMSG_RESET_INSTANCES = 0x3666,
+ CMSG_RESURRECT_RESPONSE = 0x3681,
CMSG_REVERT_MONUMENT_APPEARANCE = 0x3330,
CMSG_RIDE_VEHICLE_INTERACT = 0x3248,
CMSG_SAVE_CUF_PROFILES = 0x318C,
@@ -741,23 +747,23 @@ enum OpcodeClient : uint16
CMSG_SCENE_TRIGGER_EVENT = 0x322C,
CMSG_SELF_RES = 0x3544,
CMSG_SELL_ITEM = 0x34A8,
- CMSG_SEND_CHARACTER_CLUB_INVITATION = 0x36F7,
- CMSG_SEND_CONTACT_LIST = 0x36CD,
+ CMSG_SEND_CHARACTER_CLUB_INVITATION = 0x36F5,
+ CMSG_SEND_CONTACT_LIST = 0x36CB,
CMSG_SEND_MAIL = 0x35FA,
CMSG_SEND_TEXT_EMOTE = 0x348E,
- CMSG_SERVER_TIME_OFFSET_REQUEST = 0x369B,
+ CMSG_SERVER_TIME_OFFSET_REQUEST = 0x3699,
CMSG_SET_ACHIEVEMENTS_HIDDEN = 0x3231,
CMSG_SET_ACTION_BAR_TOGGLES = 0x3545,
- CMSG_SET_ACTION_BUTTON = 0x3636,
+ CMSG_SET_ACTION_BUTTON = 0x3634,
CMSG_SET_ACTIVE_MOVER = 0x3A3C,
CMSG_SET_ADVANCED_COMBAT_LOGGING = 0x32D1,
- CMSG_SET_ASSISTANT_LEADER = 0x364F,
+ CMSG_SET_ASSISTANT_LEADER = 0x364D,
CMSG_SET_BACKPACK_AUTOSORT_DISABLED = 0x3350,
CMSG_SET_BANK_AUTOSORT_DISABLED = 0x3351,
- CMSG_SET_CONTACT_NOTES = 0x36D0,
+ CMSG_SET_CONTACT_NOTES = 0x36CE,
CMSG_SET_CURRENCY_FLAGS = 0x3169,
CMSG_SET_DIFFICULTY_ID = 0x322D,
- CMSG_SET_DUNGEON_DIFFICULTY = 0x3682,
+ CMSG_SET_DUNGEON_DIFFICULTY = 0x3680,
CMSG_SET_EMPOWER_MIN_HOLD_STAGE_PERCENT = 0x327E,
CMSG_SET_EVERYONE_IS_ASSISTANT = 0x3618,
CMSG_SET_FACTION_AT_WAR = 0x34EC,
@@ -765,17 +771,17 @@ enum OpcodeClient : uint16
CMSG_SET_FACTION_NOT_AT_WAR = 0x34ED,
CMSG_SET_GAME_EVENT_DEBUG_VIEW_STATE = 0x31BA,
CMSG_SET_INSERT_ITEMS_LEFT_TO_RIGHT = 0x3353,
- CMSG_SET_LOOT_METHOD = 0x3648,
+ CMSG_SET_LOOT_METHOD = 0x3646,
CMSG_SET_LOOT_SPECIALIZATION = 0x3552,
- CMSG_SET_PARTY_ASSIGNMENT = 0x3651,
- CMSG_SET_PARTY_LEADER = 0x364A,
+ CMSG_SET_PARTY_ASSIGNMENT = 0x364F,
+ CMSG_SET_PARTY_LEADER = 0x3648,
CMSG_SET_PET_SLOT = 0x3168,
- CMSG_SET_PLAYER_DECLINED_NAMES = 0x3688,
+ CMSG_SET_PLAYER_DECLINED_NAMES = 0x3686,
CMSG_SET_PREFERRED_CEMETERY = 0x3178,
CMSG_SET_PVP = 0x32C7,
- CMSG_SET_RAID_DIFFICULTY = 0x36D9,
+ CMSG_SET_RAID_DIFFICULTY = 0x36D7,
CMSG_SET_ROLE = 0x35D9,
- CMSG_SET_SAVED_INSTANCE_EXTEND = 0x3686,
+ CMSG_SET_SAVED_INSTANCE_EXTEND = 0x3684,
CMSG_SET_SELECTION = 0x353B,
CMSG_SET_SHEATHED = 0x348F,
CMSG_SET_SORT_BAGS_RIGHT_TO_LEFT = 0x3352,
@@ -787,10 +793,10 @@ enum OpcodeClient : uint16
CMSG_SET_USING_PARTY_GARRISON = 0x3311,
CMSG_SET_WAR_MODE = 0x32C8,
CMSG_SET_WATCHED_FACTION = 0x34EF,
- CMSG_SHOW_TRADE_SKILL = 0x36C0,
+ CMSG_SHOW_TRADE_SKILL = 0x36BE,
CMSG_SIGN_PETITION = 0x3546,
- CMSG_SILENCE_PARTY_TALKER = 0x3652,
- CMSG_SOCIAL_CONTRACT_REQUEST = 0x373D,
+ CMSG_SILENCE_PARTY_TALKER = 0x3650,
+ CMSG_SOCIAL_CONTRACT_REQUEST = 0x373B,
CMSG_SOCKET_GEMS = 0x34F9,
CMSG_SORT_BAGS = 0x3354,
CMSG_SORT_BANK_BAGS = 0x3355,
@@ -808,10 +814,10 @@ enum OpcodeClient : uint16
CMSG_START_SPECTATOR_WAR_GAME = 0x35DF,
CMSG_START_WAR_GAME = 0x35DE,
CMSG_STORE_GUILD_BANK_ITEM = 0x34BE,
- CMSG_SUBMIT_USER_FEEDBACK = 0x3693,
+ CMSG_SUBMIT_USER_FEEDBACK = 0x3691,
CMSG_SUBSCRIPTION_INTERSTITIAL_RESPONSE = 0x33E2,
- CMSG_SUMMON_RESPONSE = 0x366A,
- CMSG_SUPPORT_TICKET_SUBMIT_COMPLAINT = 0x3646,
+ CMSG_SUMMON_RESPONSE = 0x3668,
+ CMSG_SUPPORT_TICKET_SUBMIT_COMPLAINT = 0x3644,
CMSG_SURRENDER_ARENA = 0x3174,
CMSG_SUSPEND_COMMS_ACK = 0x3764,
CMSG_SUSPEND_TOKEN_RESPONSE = 0x376A,
@@ -819,7 +825,7 @@ enum OpcodeClient : uint16
CMSG_SWAP_INV_ITEM = 0x399D,
CMSG_SWAP_ITEM = 0x399C,
CMSG_SWAP_ITEM_WITH_GUILD_BANK_ITEM = 0x34BF,
- CMSG_SWAP_SUB_GROUPS = 0x364D,
+ CMSG_SWAP_SUB_GROUPS = 0x364B,
CMSG_SWAP_VOID_ITEM = 0x31A5,
CMSG_TABARD_VENDOR_ACTIVATE = 0x32C4,
CMSG_TALK_TO_GOSSIP = 0x3498,
@@ -830,36 +836,36 @@ enum OpcodeClient : uint16
CMSG_TIME_SYNC_RESPONSE = 0x3A3D,
CMSG_TIME_SYNC_RESPONSE_DROPPED = 0x3A3F,
CMSG_TIME_SYNC_RESPONSE_FAILED = 0x3A3E,
- CMSG_TOGGLE_DIFFICULTY = 0x3657,
+ CMSG_TOGGLE_DIFFICULTY = 0x3655,
CMSG_TOGGLE_PVP = 0x32C6,
CMSG_TOTEM_DESTROYED = 0x3506,
- CMSG_TOY_CLEAR_FANFARE = 0x312E,
+ CMSG_TOY_CLEAR_FANFARE = 0x312D,
CMSG_TRADE_SKILL_SET_FAVORITE = 0x336F,
CMSG_TRAINER_BUY_SPELL = 0x34B4,
CMSG_TRAINER_LIST = 0x34B3,
- CMSG_TRAITS_COMMIT_CONFIG = 0x3401,
- CMSG_TRAITS_TALENT_TEST_UNLEARN_SPELLS = 0x33FF,
+ CMSG_TRAITS_COMMIT_CONFIG = 0x3408,
+ CMSG_TRAITS_TALENT_TEST_UNLEARN_SPELLS = 0x3406,
CMSG_TRANSMOGRIFY_ITEMS = 0x3198,
CMSG_TURN_IN_PETITION = 0x3548,
- CMSG_TUTORIAL = 0x36DA,
- CMSG_TWITTER_CHECK_STATUS = 0x312A,
- CMSG_TWITTER_CONNECT = 0x3127,
- CMSG_TWITTER_DISCONNECT = 0x312B,
+ CMSG_TUTORIAL = 0x36D8,
+ CMSG_TWITTER_CHECK_STATUS = 0x3129,
+ CMSG_TWITTER_CONNECT = 0x3126,
+ CMSG_TWITTER_DISCONNECT = 0x312A,
CMSG_UI_MAP_QUEST_LINES_REQUEST = 0x33B2,
CMSG_UNACCEPT_TRADE = 0x315B,
- CMSG_UNDELETE_CHARACTER = 0x36DC,
+ CMSG_UNDELETE_CHARACTER = 0x36DA,
CMSG_UNLEARN_SKILL = 0x34F3,
CMSG_UNLEARN_SPECIALIZATION = 0x31A6,
CMSG_UNLOCK_VOID_STORAGE = 0x31A2,
- CMSG_UPDATE_AADC_STATUS = 0x3737,
- CMSG_UPDATE_ACCOUNT_DATA = 0x3695,
+ CMSG_UPDATE_AADC_STATUS = 0x3735,
+ CMSG_UPDATE_ACCOUNT_DATA = 0x3693,
CMSG_UPDATE_AREA_TRIGGER_VISUAL = 0x32B6,
- CMSG_UPDATE_CLIENT_SETTINGS = 0x3664,
+ CMSG_UPDATE_CLIENT_SETTINGS = 0x3662,
CMSG_UPDATE_CRAFTING_NPC_RECIPES = 0x3323,
CMSG_UPDATE_MISSILE_TRAJECTORY = 0x3A43,
- CMSG_UPDATE_RAID_TARGET = 0x3650,
+ CMSG_UPDATE_RAID_TARGET = 0x364E,
CMSG_UPDATE_SPELL_VISUAL = 0x32B5,
- CMSG_UPDATE_VAS_PURCHASE_STATES = 0x36F1,
+ CMSG_UPDATE_VAS_PURCHASE_STATES = 0x36EF,
CMSG_UPGRADE_GARRISON = 0x32D9,
CMSG_UPGRADE_RUNEFORGE_LEGENDARY = 0x33E0,
CMSG_USED_FOLLOW = 0x3187,
@@ -867,17 +873,17 @@ enum OpcodeClient : uint16
CMSG_USE_EQUIPMENT_SET = 0x3995,
CMSG_USE_ITEM = 0x32AF,
CMSG_USE_TOY = 0x32B2,
- CMSG_VAS_CHECK_TRANSFER_OK = 0x3709,
- CMSG_VAS_GET_QUEUE_MINUTES = 0x3708,
- CMSG_VAS_GET_SERVICE_STATUS = 0x3707,
+ CMSG_VAS_CHECK_TRANSFER_OK = 0x3707,
+ CMSG_VAS_GET_QUEUE_MINUTES = 0x3706,
+ CMSG_VAS_GET_SERVICE_STATUS = 0x3705,
CMSG_VIOLENCE_LEVEL = 0x3185,
- CMSG_VOICE_CHANNEL_STT_TOKEN_REQUEST = 0x370D,
- CMSG_VOICE_CHAT_JOIN_CHANNEL = 0x370E,
- CMSG_VOICE_CHAT_LOGIN = 0x370C,
+ CMSG_VOICE_CHANNEL_STT_TOKEN_REQUEST = 0x370B,
+ CMSG_VOICE_CHAT_JOIN_CHANNEL = 0x370C,
+ CMSG_VOICE_CHAT_LOGIN = 0x370A,
CMSG_VOID_STORAGE_TRANSFER = 0x31A4,
CMSG_WARDEN3_DATA = 0x35EC,
- CMSG_WHO = 0x3681,
- CMSG_WHO_IS = 0x3680,
+ CMSG_WHO = 0x367F,
+ CMSG_WHO_IS = 0x367E,
CMSG_WORLD_PORT_RESPONSE = 0x35F9,
CMSG_WRAP_ITEM = 0x3994,
};
@@ -885,75 +891,76 @@ enum OpcodeClient : uint16
enum OpcodeServer : uint16
{
SMSG_ABORT_NEW_WORLD = 0x259C,
- SMSG_ACCOUNT_COSMETIC_ADDED = 0x287B,
- SMSG_ACCOUNT_CRITERIA_UPDATE = 0x2861,
- SMSG_ACCOUNT_DATA_TIMES = 0x2704,
+ SMSG_ACCOUNT_COSMETIC_ADDED = 0x287C,
+ SMSG_ACCOUNT_CRITERIA_UPDATE = 0x2862,
+ SMSG_ACCOUNT_DATA_TIMES = 0x2705,
+ SMSG_ACCOUNT_MOUNT_REMOVED = 0x25B0,
SMSG_ACCOUNT_MOUNT_UPDATE = 0x25AF,
- SMSG_ACCOUNT_NOTIFICATIONS_RESPONSE = 0x287A,
- SMSG_ACCOUNT_TOY_UPDATE = 0x25B0,
- SMSG_ACCOUNT_TRANSMOG_SET_FAVORITES_UPDATE = 0x25B3,
- SMSG_ACCOUNT_TRANSMOG_UPDATE = 0x25B2,
- SMSG_ACHIEVEMENT_DELETED = 0x26E2,
- SMSG_ACHIEVEMENT_EARNED = 0x2640,
+ SMSG_ACCOUNT_NOTIFICATIONS_RESPONSE = 0x287B,
+ SMSG_ACCOUNT_TOY_UPDATE = 0x25B1,
+ SMSG_ACCOUNT_TRANSMOG_SET_FAVORITES_UPDATE = 0x25B4,
+ SMSG_ACCOUNT_TRANSMOG_UPDATE = 0x25B3,
+ SMSG_ACHIEVEMENT_DELETED = 0x26E3,
+ SMSG_ACHIEVEMENT_EARNED = 0x2641,
SMSG_ACTIVATE_ESSENCE_FAILED = 0x3015,
SMSG_ACTIVATE_SOULBIND_FAILED = 0x3017,
- SMSG_ACTIVATE_TAXI_REPLY = 0x267A,
+ SMSG_ACTIVATE_TAXI_REPLY = 0x267B,
SMSG_ACTIVE_GLYPHS = 0x2C57,
- SMSG_ADDON_LIST_REQUEST = 0x263F,
- SMSG_ADD_BATTLENET_FRIEND_RESPONSE = 0x263A,
+ SMSG_ADDON_LIST_REQUEST = 0x2640,
+ SMSG_ADD_BATTLENET_FRIEND_RESPONSE = 0x263B,
SMSG_ADD_ITEM_PASSIVE = 0x25AB,
- SMSG_ADD_LOSS_OF_CONTROL = 0x266E,
- SMSG_ADD_RUNE_POWER = 0x26B4,
- SMSG_ADJUST_SPLINE_DURATION = 0x25CF,
- SMSG_ADVANCED_COMBAT_LOG = 0x2877,
- SMSG_ADVENTURE_JOURNAL_DATA_RESPONSE = 0x2871,
- SMSG_AE_LOOT_TARGETS = 0x2615,
- SMSG_AE_LOOT_TARGET_ACK = 0x2616,
- SMSG_AI_REACTION = 0x26B1,
- SMSG_ALLIED_RACE_DETAILS = 0x27F4,
+ SMSG_ADD_LOSS_OF_CONTROL = 0x266F,
+ SMSG_ADD_RUNE_POWER = 0x26B5,
+ SMSG_ADJUST_SPLINE_DURATION = 0x25D0,
+ SMSG_ADVANCED_COMBAT_LOG = 0x2878,
+ SMSG_ADVENTURE_JOURNAL_DATA_RESPONSE = 0x2872,
+ SMSG_AE_LOOT_TARGETS = 0x2616,
+ SMSG_AE_LOOT_TARGET_ACK = 0x2617,
+ SMSG_AI_REACTION = 0x26B2,
+ SMSG_ALLIED_RACE_DETAILS = 0x27F5,
SMSG_ALL_ACCOUNT_CRITERIA = 0x2571,
SMSG_ALL_ACHIEVEMENT_DATA = 0x2570,
SMSG_ALL_GUILD_ACHIEVEMENTS = 0x29B8,
- SMSG_APPLY_MOUNT_EQUIPMENT_RESULT = 0x284E,
+ SMSG_APPLY_MOUNT_EQUIPMENT_RESULT = 0x284F,
SMSG_ARCHAEOLOGY_SURVERY_CAST = 0x2588,
SMSG_AREA_POI_UPDATE_RESPONSE = 0x3010,
- SMSG_AREA_SPIRIT_HEALER_TIME = 0x2739,
+ SMSG_AREA_SPIRIT_HEALER_TIME = 0x273A,
SMSG_AREA_TRIGGER_DENIED = 0x2902,
SMSG_AREA_TRIGGER_FORCE_SET_POSITION_AND_FACING = 0x28FF,
- SMSG_AREA_TRIGGER_NO_CORPSE = 0x2710,
+ SMSG_AREA_TRIGGER_NO_CORPSE = 0x2711,
SMSG_AREA_TRIGGER_PLAY_SPELL_VISUAL = 0x28FE,
SMSG_AREA_TRIGGER_RE_PATH = 0x28FD,
SMSG_AREA_TRIGGER_RE_SHAPE = 0x2901,
SMSG_AREA_TRIGGER_UNATTACH = 0x2900,
- SMSG_ARENA_CLEAR_OPPONENTS = 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 = 0x27E7,
+ SMSG_ARENA_CLEAR_OPPONENTS = 0x2647,
+ SMSG_ARENA_CROWD_CONTROL_SPELL_RESULT = 0x2630,
+ SMSG_ARENA_PREP_OPPONENT_SPECIALIZATIONS = 0x2646,
+ SMSG_ARTIFACT_ENDGAME_POWERS_REFUNDED = 0x279F,
+ SMSG_ARTIFACT_FORGE_ERROR = 0x279D,
+ SMSG_ARTIFACT_RESPEC_PROMPT = 0x279E,
+ SMSG_ARTIFACT_XP_GAIN = 0x27E8,
SMSG_ATTACKER_STATE_UPDATE = 0x294D,
SMSG_ATTACK_START = 0x2938,
SMSG_ATTACK_STOP = 0x2939,
SMSG_ATTACK_SWING_ERROR = 0x2947,
SMSG_ATTACK_SWING_LANDED_LOG = 0x2948,
- SMSG_AUCTIONABLE_TOKEN_AUCTION_SOLD = 0x27D0,
- SMSG_AUCTIONABLE_TOKEN_SELL_AT_MARKET_PRICE_RESPONSE = 0x27CF,
- SMSG_AUCTIONABLE_TOKEN_SELL_CONFIRM_REQUIRED = 0x27CE,
- SMSG_AUCTION_CLOSED_NOTIFICATION = 0x26ED,
- SMSG_AUCTION_COMMAND_RESULT = 0x26EA,
- SMSG_AUCTION_DISABLE_NEW_POSTINGS = 0x288D,
- SMSG_AUCTION_FAVORITE_LIST = 0x2868,
- SMSG_AUCTION_GET_COMMODITY_QUOTE_RESULT = 0x285F,
- SMSG_AUCTION_HELLO_RESPONSE = 0x26E8,
- SMSG_AUCTION_LIST_BIDDED_ITEMS_RESULT = 0x285E,
- SMSG_AUCTION_LIST_BUCKETS_RESULT = 0x285B,
- SMSG_AUCTION_LIST_ITEMS_RESULT = 0x285C,
- SMSG_AUCTION_LIST_OWNED_ITEMS_RESULT = 0x285D,
- SMSG_AUCTION_OUTBID_NOTIFICATION = 0x26EC,
- SMSG_AUCTION_OWNER_BID_NOTIFICATION = 0x26EE,
- SMSG_AUCTION_REPLICATE_RESPONSE = 0x26E9,
- SMSG_AUCTION_WON_NOTIFICATION = 0x26EB,
+ SMSG_AUCTIONABLE_TOKEN_AUCTION_SOLD = 0x27D1,
+ SMSG_AUCTIONABLE_TOKEN_SELL_AT_MARKET_PRICE_RESPONSE = 0x27D0,
+ SMSG_AUCTIONABLE_TOKEN_SELL_CONFIRM_REQUIRED = 0x27CF,
+ SMSG_AUCTION_CLOSED_NOTIFICATION = 0x26EE,
+ SMSG_AUCTION_COMMAND_RESULT = 0x26EB,
+ SMSG_AUCTION_DISABLE_NEW_POSTINGS = 0x2895,
+ SMSG_AUCTION_FAVORITE_LIST = 0x2869,
+ SMSG_AUCTION_GET_COMMODITY_QUOTE_RESULT = 0x2860,
+ SMSG_AUCTION_HELLO_RESPONSE = 0x26E9,
+ SMSG_AUCTION_LIST_BIDDED_ITEMS_RESULT = 0x285F,
+ SMSG_AUCTION_LIST_BUCKETS_RESULT = 0x285C,
+ SMSG_AUCTION_LIST_ITEMS_RESULT = 0x285D,
+ SMSG_AUCTION_LIST_OWNED_ITEMS_RESULT = 0x285E,
+ SMSG_AUCTION_OUTBID_NOTIFICATION = 0x26ED,
+ SMSG_AUCTION_OWNER_BID_NOTIFICATION = 0x26EF,
+ SMSG_AUCTION_REPLICATE_RESPONSE = 0x26EA,
+ SMSG_AUCTION_WON_NOTIFICATION = 0x26EC,
SMSG_AURA_POINTS_DEPLETED = 0x2C23,
SMSG_AURA_UPDATE = 0x2C22,
SMSG_AUTH_CHALLENGE = 0x3048,
@@ -961,8 +968,8 @@ enum OpcodeServer : uint16
SMSG_AUTH_RESPONSE = 0x256D,
SMSG_AVAILABLE_HOTFIXES = 0x290F,
SMSG_BAG_CLEANUP_FINISHED = 0x2DA7,
- SMSG_BARBER_SHOP_RESULT = 0x26B9,
- SMSG_BATCH_PRESENCE_SUBSCRIPTION = 0x283F,
+ SMSG_BARBER_SHOP_RESULT = 0x26BA,
+ SMSG_BATCH_PRESENCE_SUBSCRIPTION = 0x2840,
SMSG_BATTLEFIELD_LIST = 0x2927,
SMSG_BATTLEFIELD_PORT_DENIED = 0x292D,
SMSG_BATTLEFIELD_STATUS_ACTIVE = 0x2923,
@@ -978,112 +985,112 @@ enum OpcodeServer : uint16
SMSG_BATTLEGROUND_PLAYER_LEFT = 0x292C,
SMSG_BATTLEGROUND_PLAYER_POSITIONS = 0x2928,
SMSG_BATTLEGROUND_POINTS = 0x2949,
- SMSG_BATTLENET_CHALLENGE_ABORT = 0x2783,
- SMSG_BATTLENET_CHALLENGE_START = 0x2782,
- SMSG_BATTLENET_NOTIFICATION = 0x2800,
- SMSG_BATTLENET_RESPONSE = 0x27FF,
- SMSG_BATTLE_NET_CONNECTION_STATUS = 0x2801,
- SMSG_BATTLE_PAY_ACK_FAILED = 0x277D,
- SMSG_BATTLE_PAY_BATTLE_PET_DELIVERED = 0x2772,
- SMSG_BATTLE_PAY_COLLECTION_ITEM_DELIVERED = 0x2773,
- SMSG_BATTLE_PAY_CONFIRM_PURCHASE = 0x277C,
- SMSG_BATTLE_PAY_DELIVERY_ENDED = 0x2770,
- SMSG_BATTLE_PAY_DELIVERY_STARTED = 0x276F,
- SMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_VAS_RESPONSE = 0x2880,
- SMSG_BATTLE_PAY_DISTRIBUTION_UNREVOKED = 0x276D,
- SMSG_BATTLE_PAY_DISTRIBUTION_UPDATE = 0x276E,
- SMSG_BATTLE_PAY_GET_DISTRIBUTION_LIST_RESPONSE = 0x276C,
- SMSG_BATTLE_PAY_GET_PRODUCT_LIST_RESPONSE = 0x276A,
- SMSG_BATTLE_PAY_GET_PURCHASE_LIST_RESPONSE = 0x276B,
- SMSG_BATTLE_PAY_MOUNT_DELIVERED = 0x2771,
- SMSG_BATTLE_PAY_PURCHASE_UPDATE = 0x277B,
- SMSG_BATTLE_PAY_START_CHECKOUT = 0x281C,
- SMSG_BATTLE_PAY_START_DISTRIBUTION_ASSIGN_TO_TARGET_RESPONSE = 0x2779,
- SMSG_BATTLE_PAY_START_PURCHASE_RESPONSE = 0x2778,
- SMSG_BATTLE_PAY_VALIDATE_PURCHASE_RESPONSE = 0x2810,
- SMSG_BATTLE_PETS_HEALED = 0x25F1,
- SMSG_BATTLE_PET_CAGE_DATE_ERROR = 0x2675,
- 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_LICENSE_CHANGED = 0x25F2,
- 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 = 0x2784,
+ SMSG_BATTLENET_CHALLENGE_START = 0x2783,
+ SMSG_BATTLENET_NOTIFICATION = 0x2801,
+ SMSG_BATTLENET_RESPONSE = 0x2800,
+ SMSG_BATTLE_NET_CONNECTION_STATUS = 0x2802,
+ SMSG_BATTLE_PAY_ACK_FAILED = 0x277E,
+ SMSG_BATTLE_PAY_BATTLE_PET_DELIVERED = 0x2773,
+ SMSG_BATTLE_PAY_COLLECTION_ITEM_DELIVERED = 0x2774,
+ SMSG_BATTLE_PAY_CONFIRM_PURCHASE = 0x277D,
+ SMSG_BATTLE_PAY_DELIVERY_ENDED = 0x2771,
+ SMSG_BATTLE_PAY_DELIVERY_STARTED = 0x2770,
+ SMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_VAS_RESPONSE = 0x2881,
+ SMSG_BATTLE_PAY_DISTRIBUTION_UNREVOKED = 0x276E,
+ SMSG_BATTLE_PAY_DISTRIBUTION_UPDATE = 0x276F,
+ SMSG_BATTLE_PAY_GET_DISTRIBUTION_LIST_RESPONSE = 0x276D,
+ SMSG_BATTLE_PAY_GET_PRODUCT_LIST_RESPONSE = 0x276B,
+ SMSG_BATTLE_PAY_GET_PURCHASE_LIST_RESPONSE = 0x276C,
+ SMSG_BATTLE_PAY_MOUNT_DELIVERED = 0x2772,
+ SMSG_BATTLE_PAY_PURCHASE_UPDATE = 0x277C,
+ SMSG_BATTLE_PAY_START_CHECKOUT = 0x281D,
+ SMSG_BATTLE_PAY_START_DISTRIBUTION_ASSIGN_TO_TARGET_RESPONSE = 0x277A,
+ SMSG_BATTLE_PAY_START_PURCHASE_RESPONSE = 0x2779,
+ SMSG_BATTLE_PAY_VALIDATE_PURCHASE_RESPONSE = 0x2811,
+ SMSG_BATTLE_PETS_HEALED = 0x25F2,
+ SMSG_BATTLE_PET_CAGE_DATE_ERROR = 0x2676,
+ SMSG_BATTLE_PET_DELETED = 0x25EF,
+ SMSG_BATTLE_PET_ERROR = 0x2636,
+ SMSG_BATTLE_PET_JOURNAL = 0x25EE,
+ SMSG_BATTLE_PET_JOURNAL_LOCK_ACQUIRED = 0x25EC,
+ SMSG_BATTLE_PET_JOURNAL_LOCK_DENIED = 0x25ED,
+ SMSG_BATTLE_PET_LICENSE_CHANGED = 0x25F3,
+ SMSG_BATTLE_PET_RESTORED = 0x25F1,
+ SMSG_BATTLE_PET_REVOKED = 0x25F0,
+ SMSG_BATTLE_PET_TRAP_LEVEL = 0x25EA,
+ SMSG_BATTLE_PET_UPDATES = 0x25E9,
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 = 0x2626,
+ SMSG_BLACK_MARKET_OUTBID = 0x2627,
+ SMSG_BLACK_MARKET_REQUEST_ITEMS_RESULT = 0x2625,
+ SMSG_BLACK_MARKET_WON = 0x2628,
+ SMSG_BONUS_ROLL_EMPTY = 0x2643,
SMSG_BOSS_KILL = 0x294C,
SMSG_BREAK_TARGET = 0x2937,
SMSG_BROADCAST_ACHIEVEMENT = 0x2BBC,
- SMSG_BROADCAST_SUMMON_CAST = 0x2841,
- SMSG_BROADCAST_SUMMON_RESPONSE = 0x2842,
- SMSG_BUY_FAILED = 0x26C2,
- SMSG_BUY_SUCCEEDED = 0x26C1,
+ SMSG_BROADCAST_SUMMON_CAST = 0x2842,
+ SMSG_BROADCAST_SUMMON_RESPONSE = 0x2843,
+ SMSG_BUY_FAILED = 0x26C3,
+ SMSG_BUY_SUCCEEDED = 0x26C2,
SMSG_CACHE_INFO = 0x291D,
SMSG_CACHE_VERSION = 0x291C,
- SMSG_CALENDAR_CLEAR_PENDING_ACTION = 0x269A,
- SMSG_CALENDAR_COMMAND_RESULT = 0x269B,
- SMSG_CALENDAR_COMMUNITY_INVITE = 0x268A,
- SMSG_CALENDAR_EVENT_REMOVED_ALERT = 0x2692,
- SMSG_CALENDAR_EVENT_UPDATED_ALERT = 0x2693,
- SMSG_CALENDAR_INVITE_ADDED = 0x268B,
- SMSG_CALENDAR_INVITE_ALERT = 0x268F,
- SMSG_CALENDAR_INVITE_NOTES = 0x2694,
- SMSG_CALENDAR_INVITE_NOTES_ALERT = 0x2695,
- SMSG_CALENDAR_INVITE_REMOVED = 0x268C,
- SMSG_CALENDAR_INVITE_REMOVED_ALERT = 0x2691,
- SMSG_CALENDAR_INVITE_STATUS = 0x268D,
- SMSG_CALENDAR_INVITE_STATUS_ALERT = 0x2690,
- SMSG_CALENDAR_MODERATOR_STATUS = 0x268E,
- SMSG_CALENDAR_RAID_LOCKOUT_ADDED = 0x2696,
- SMSG_CALENDAR_RAID_LOCKOUT_REMOVED = 0x2697,
- SMSG_CALENDAR_RAID_LOCKOUT_UPDATED = 0x2698,
- SMSG_CALENDAR_SEND_CALENDAR = 0x2688,
- SMSG_CALENDAR_SEND_EVENT = 0x2689,
- SMSG_CALENDAR_SEND_NUM_PENDING = 0x2699,
- SMSG_CAMERA_EFFECT = 0x271F,
- SMSG_CANCEL_AUTO_REPEAT = 0x26D8,
+ SMSG_CALENDAR_CLEAR_PENDING_ACTION = 0x269B,
+ SMSG_CALENDAR_COMMAND_RESULT = 0x269C,
+ SMSG_CALENDAR_COMMUNITY_INVITE = 0x268B,
+ SMSG_CALENDAR_EVENT_REMOVED_ALERT = 0x2693,
+ SMSG_CALENDAR_EVENT_UPDATED_ALERT = 0x2694,
+ SMSG_CALENDAR_INVITE_ADDED = 0x268C,
+ SMSG_CALENDAR_INVITE_ALERT = 0x2690,
+ SMSG_CALENDAR_INVITE_NOTES = 0x2695,
+ SMSG_CALENDAR_INVITE_NOTES_ALERT = 0x2696,
+ SMSG_CALENDAR_INVITE_REMOVED = 0x268D,
+ SMSG_CALENDAR_INVITE_REMOVED_ALERT = 0x2692,
+ SMSG_CALENDAR_INVITE_STATUS = 0x268E,
+ SMSG_CALENDAR_INVITE_STATUS_ALERT = 0x2691,
+ SMSG_CALENDAR_MODERATOR_STATUS = 0x268F,
+ SMSG_CALENDAR_RAID_LOCKOUT_ADDED = 0x2697,
+ SMSG_CALENDAR_RAID_LOCKOUT_REMOVED = 0x2698,
+ SMSG_CALENDAR_RAID_LOCKOUT_UPDATED = 0x2699,
+ SMSG_CALENDAR_SEND_CALENDAR = 0x2689,
+ SMSG_CALENDAR_SEND_EVENT = 0x268A,
+ SMSG_CALENDAR_SEND_NUM_PENDING = 0x269A,
+ SMSG_CAMERA_EFFECT = 0x2720,
+ SMSG_CANCEL_AUTO_REPEAT = 0x26D9,
SMSG_CANCEL_COMBAT = 0x2946,
SMSG_CANCEL_ORPHAN_SPELL_VISUAL = 0x2C49,
SMSG_CANCEL_PRELOAD_WORLD = 0x259A,
- SMSG_CANCEL_SCENE = 0x2634,
+ SMSG_CANCEL_SCENE = 0x2635,
SMSG_CANCEL_SPELL_VISUAL = 0x2C47,
SMSG_CANCEL_SPELL_VISUAL_KIT = 0x2C4B,
SMSG_CAN_DUEL_RESULT = 0x2942,
- SMSG_CAN_REDEEM_TOKEN_FOR_BALANCE_RESPONSE = 0x280F,
+ SMSG_CAN_REDEEM_TOKEN_FOR_BALANCE_RESPONSE = 0x2810,
SMSG_CAPTURE_POINT_REMOVED = 0x292A,
SMSG_CAST_FAILED = 0x2C5A,
SMSG_CATEGORY_COOLDOWN = 0x2C16,
- SMSG_CHAIN_MISSILE_BOUNCE = 0x25C7,
- SMSG_CHALLENGE_MODE_COMPLETE = 0x2609,
- SMSG_CHALLENGE_MODE_REQUEST_LEADERS_RESULT = 0x260D,
- SMSG_CHALLENGE_MODE_RESET = 0x2608,
- SMSG_CHALLENGE_MODE_START = 0x2606,
- SMSG_CHALLENGE_MODE_UPDATE_DEATH_COUNT = 0x2607,
+ SMSG_CHAIN_MISSILE_BOUNCE = 0x25C8,
+ SMSG_CHALLENGE_MODE_COMPLETE = 0x260A,
+ SMSG_CHALLENGE_MODE_REQUEST_LEADERS_RESULT = 0x260E,
+ 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 = 0x2802,
+ SMSG_CHANGE_REALM_TICKET_RESPONSE = 0x2803,
SMSG_CHANNEL_LIST = 0x2BC3,
SMSG_CHANNEL_NOTIFY = 0x2BC0,
SMSG_CHANNEL_NOTIFY_JOINED = 0x2BC1,
SMSG_CHANNEL_NOTIFY_LEFT = 0x2BC2,
- SMSG_CHARACTER_CHECK_UPGRADE_RESULT = 0x27B9,
- SMSG_CHARACTER_LOGIN_FAILED = 0x26FF,
- SMSG_CHARACTER_OBJECT_TEST_RESPONSE = 0x2781,
- SMSG_CHARACTER_RENAME_RESULT = 0x275C,
- 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 = 0x26DC,
- SMSG_CHAR_CUSTOMIZE_SUCCESS = 0x26DD,
- SMSG_CHAR_FACTION_CHANGE_RESULT = 0x27A3,
+ SMSG_CHARACTER_CHECK_UPGRADE_RESULT = 0x27BA,
+ SMSG_CHARACTER_LOGIN_FAILED = 0x2700,
+ SMSG_CHARACTER_OBJECT_TEST_RESPONSE = 0x2782,
+ SMSG_CHARACTER_RENAME_RESULT = 0x275D,
+ 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 = 0x26DD,
+ SMSG_CHAR_CUSTOMIZE_SUCCESS = 0x26DE,
+ SMSG_CHAR_FACTION_CHANGE_RESULT = 0x27A4,
SMSG_CHAT = 0x2BAD,
SMSG_CHAT_AUTO_RESPONDED = 0x2BB8,
SMSG_CHAT_DOWN = 0x2BBD,
@@ -1100,95 +1107,96 @@ enum OpcodeServer : uint16
SMSG_CHECK_ABANDON_NPE = 0x3018,
SMSG_CHECK_CHARACTER_NAME_AVAILABILITY_RESULT = 0x2584,
SMSG_CHECK_WARGAME_ENTRY = 0x2592,
- SMSG_CHROMIE_TIME_SELECT_EXPANSION_SUCCESS = 0x286B,
- SMSG_CLAIM_RAF_REWARD_RESPONSE = 0x2852,
+ SMSG_CHROMIE_TIME_SELECT_EXPANSION_SUCCESS = 0x286C,
+ SMSG_CLAIM_RAF_REWARD_RESPONSE = 0x2853,
SMSG_CLEAR_ALL_SPELL_CHARGES = 0x2C27,
- SMSG_CLEAR_BOSS_EMOTES = 0x25BA,
- SMSG_CLEAR_COOLDOWN = 0x26B6,
+ SMSG_CLEAR_BOSS_EMOTES = 0x25BB,
+ SMSG_CLEAR_COOLDOWN = 0x26B7,
SMSG_CLEAR_COOLDOWNS = 0x2C26,
SMSG_CLEAR_RESURRECT = 0x257F,
SMSG_CLEAR_SPELL_CHARGES = 0x2C28,
SMSG_CLEAR_TARGET = 0x2943,
SMSG_CLEAR_TREASURE_PICKER_CACHE = 0x2AA1,
- SMSG_CLOSE_ARTIFACT_FORGE = 0x279B,
- SMSG_CLUB_FINDER_ERROR_MESSAGE = 0x284A,
- SMSG_CLUB_FINDER_GET_CLUB_POSTING_IDS_RESPONSE = 0x284D,
- SMSG_CLUB_FINDER_LOOKUP_CLUB_POSTINGS_LIST = 0x284B,
- SMSG_CLUB_FINDER_RESPONSE_CHARACTER_APPLICATION_LIST = 0x2848,
- SMSG_CLUB_FINDER_RESPONSE_POST_RECRUITMENT_MESSAGE = 0x284C,
- SMSG_CLUB_FINDER_UPDATE_APPLICATIONS = 0x2849,
- SMSG_CLUB_FINDER_WHISPER_APPLICANT_RESPONSE = 0x2887,
- SMSG_COIN_REMOVED = 0x2614,
+ SMSG_CLOSE_ARTIFACT_FORGE = 0x279C,
+ SMSG_CLUB_FINDER_ERROR_MESSAGE = 0x284B,
+ SMSG_CLUB_FINDER_GET_CLUB_POSTING_IDS_RESPONSE = 0x284E,
+ SMSG_CLUB_FINDER_LOOKUP_CLUB_POSTINGS_LIST = 0x284C,
+ SMSG_CLUB_FINDER_RESPONSE_CHARACTER_APPLICATION_LIST = 0x2849,
+ SMSG_CLUB_FINDER_RESPONSE_POST_RECRUITMENT_MESSAGE = 0x284D,
+ SMSG_CLUB_FINDER_UPDATE_APPLICATIONS = 0x284A,
+ SMSG_CLUB_FINDER_WHISPER_APPLICANT_RESPONSE = 0x288F,
+ SMSG_COIN_REMOVED = 0x2615,
SMSG_COMBAT_EVENT_FAILED = 0x293A,
- SMSG_COMMENTATOR_MAP_INFO = 0x2701,
- SMSG_COMMENTATOR_PLAYER_INFO = 0x2702,
- SMSG_COMMENTATOR_STATE_CHANGED = 0x2700,
- SMSG_COMMERCE_TOKEN_GET_COUNT_RESPONSE = 0x27CB,
- SMSG_COMMERCE_TOKEN_GET_LOG_RESPONSE = 0x27D7,
- SMSG_COMMERCE_TOKEN_GET_MARKET_PRICE_RESPONSE = 0x27CD,
- SMSG_COMMERCE_TOKEN_UPDATE = 0x27CC,
- SMSG_COMPLAINT_RESULT = 0x26A8,
- SMSG_COMPLETE_SHIPMENT_RESPONSE = 0x2794,
- SMSG_CONFIRM_PARTY_INVITE = 0x280E,
+ SMSG_COMMENTATOR_MAP_INFO = 0x2702,
+ SMSG_COMMENTATOR_PLAYER_INFO = 0x2703,
+ SMSG_COMMENTATOR_STATE_CHANGED = 0x2701,
+ SMSG_COMMERCE_TOKEN_GET_COUNT_RESPONSE = 0x27CC,
+ SMSG_COMMERCE_TOKEN_GET_LOG_RESPONSE = 0x27D8,
+ SMSG_COMMERCE_TOKEN_GET_MARKET_PRICE_RESPONSE = 0x27CE,
+ SMSG_COMMERCE_TOKEN_UPDATE = 0x27CD,
+ SMSG_COMPLAINT_RESULT = 0x26A9,
+ SMSG_COMPLETE_SHIPMENT_RESPONSE = 0x2795,
+ SMSG_CONFIRM_PARTY_INVITE = 0x280F,
SMSG_CONNECT_TO = 0x304D,
- SMSG_CONQUEST_FORMULA_CONSTANTS = 0x277E,
- SMSG_CONSOLE_WRITE = 0x2632,
- SMSG_CONSUMABLE_TOKEN_BUY_AT_MARKET_PRICE_RESPONSE = 0x27D3,
- SMSG_CONSUMABLE_TOKEN_BUY_CHOICE_REQUIRED = 0x27D2,
- SMSG_CONSUMABLE_TOKEN_CAN_VETERAN_BUY_RESPONSE = 0x27D1,
- SMSG_CONSUMABLE_TOKEN_REDEEM_CONFIRM_REQUIRED = 0x27D5,
- SMSG_CONSUMABLE_TOKEN_REDEEM_RESPONSE = 0x27D6,
- SMSG_CONTACT_LIST = 0x277F,
- SMSG_CONTRIBUTION_LAST_UPDATE_RESPONSE = 0x2815,
- SMSG_CONTROL_UPDATE = 0x2644,
- SMSG_CONVERT_ITEMS_TO_CURRENCY_VALUE = 0x2874,
- SMSG_COOLDOWN_CHEAT = 0x2732,
- SMSG_COOLDOWN_EVENT = 0x26B5,
- SMSG_CORPSE_LOCATION = 0x264C,
- SMSG_CORPSE_RECLAIM_DELAY = 0x2743,
- SMSG_CORPSE_TRANSPORT_QUERY = 0x270C,
+ SMSG_CONQUEST_FORMULA_CONSTANTS = 0x277F,
+ SMSG_CONSOLE_WRITE = 0x2633,
+ SMSG_CONSUMABLE_TOKEN_BUY_AT_MARKET_PRICE_RESPONSE = 0x27D4,
+ SMSG_CONSUMABLE_TOKEN_BUY_CHOICE_REQUIRED = 0x27D3,
+ SMSG_CONSUMABLE_TOKEN_CAN_VETERAN_BUY_RESPONSE = 0x27D2,
+ SMSG_CONSUMABLE_TOKEN_REDEEM_CONFIRM_REQUIRED = 0x27D6,
+ SMSG_CONSUMABLE_TOKEN_REDEEM_RESPONSE = 0x27D7,
+ SMSG_CONTACT_LIST = 0x2780,
+ SMSG_CONTRIBUTION_LAST_UPDATE_RESPONSE = 0x2816,
+ SMSG_CONTROL_UPDATE = 0x2645,
+ SMSG_CONVERT_ITEMS_TO_CURRENCY_VALUE = 0x2875,
+ SMSG_COOLDOWN_CHEAT = 0x2733,
+ SMSG_COOLDOWN_EVENT = 0x26B6,
+ SMSG_CORPSE_LOCATION = 0x264D,
+ SMSG_CORPSE_RECLAIM_DELAY = 0x2744,
+ SMSG_CORPSE_TRANSPORT_QUERY = 0x270D,
SMSG_COVENANT_CALLINGS_AVAILABILITY_RESPONSE = 0x2AA3,
- SMSG_COVENANT_PREVIEW_OPEN_NPC = 0x27F7,
- SMSG_COVENANT_RENOWN_SEND_CATCHUP_STATE = 0x2875,
- SMSG_CRAFTING_HOUSE_HELLO_RESPONSE = 0x289E,
- SMSG_CRAFTING_ORDER_CANCEL_RESULT = 0x289A,
- SMSG_CRAFTING_ORDER_CLAIM_RESULT = 0x2896,
- SMSG_CRAFTING_ORDER_CRAFT_RESULT = 0x2898,
- SMSG_CRAFTING_ORDER_CREATE_RESULT = 0x2894,
- SMSG_CRAFTING_ORDER_FULFILL_RESULT = 0x2899,
- SMSG_CRAFTING_ORDER_LIST_ORDERS_RESPONSE = 0x2895,
- SMSG_CRAFTING_ORDER_REJECT_RESULT = 0x289C,
- SMSG_CRAFTING_ORDER_RELEASE_RESULT = 0x2897,
- SMSG_CRAFTING_ORDER_UPDATE_STATE = 0x289F,
- SMSG_CRAFT_ENCHANT_RESULT = 0x289D,
- SMSG_CREATE_CHAR = 0x26FB,
- SMSG_CREATE_SHIPMENT_RESPONSE = 0x2793,
- SMSG_CRITERIA_DELETED = 0x26E1,
- SMSG_CRITERIA_UPDATE = 0x26DB,
- SMSG_CROSSED_INEBRIATION_THRESHOLD = 0x26BD,
- SMSG_CUSTOM_LOAD_SCREEN = 0x25CA,
+ SMSG_COVENANT_PREVIEW_OPEN_NPC = 0x27F8,
+ SMSG_COVENANT_RENOWN_SEND_CATCHUP_STATE = 0x2876,
+ SMSG_CRAFTING_HOUSE_HELLO_RESPONSE = 0x28A6,
+ SMSG_CRAFTING_ORDER_CANCEL_RESULT = 0x28A2,
+ SMSG_CRAFTING_ORDER_CLAIM_RESULT = 0x289E,
+ SMSG_CRAFTING_ORDER_CRAFT_RESULT = 0x28A0,
+ SMSG_CRAFTING_ORDER_CREATE_RESULT = 0x289C,
+ SMSG_CRAFTING_ORDER_FULFILL_RESULT = 0x28A1,
+ SMSG_CRAFTING_ORDER_LIST_ORDERS_RESPONSE = 0x289D,
+ SMSG_CRAFTING_ORDER_REJECT_RESULT = 0x28A4,
+ SMSG_CRAFTING_ORDER_RELEASE_RESULT = 0x289F,
+ SMSG_CRAFTING_ORDER_UPDATE_STATE = 0x28A7,
+ SMSG_CRAFT_ENCHANT_RESULT = 0x28A5,
+ SMSG_CREATE_CHAR = 0x26FC,
+ SMSG_CREATE_SHIPMENT_RESPONSE = 0x2794,
+ SMSG_CREATOR_VISUALS_OVERRIDE = 0x28AA,
+ SMSG_CRITERIA_DELETED = 0x26E2,
+ SMSG_CRITERIA_UPDATE = 0x26DC,
+ SMSG_CROSSED_INEBRIATION_THRESHOLD = 0x26BE,
+ SMSG_CUSTOM_LOAD_SCREEN = 0x25CB,
SMSG_DAILY_QUESTS_RESET = 0x2A80,
- SMSG_DAMAGE_CALC_LOG = 0x27C0,
+ SMSG_DAMAGE_CALC_LOG = 0x27C1,
SMSG_DB_REPLY = 0x290E,
- SMSG_DEATH_RELEASE_LOC = 0x26CE,
- SMSG_DEBUG_MENU_MANAGER_FULL_UPDATE = 0x2652,
+ SMSG_DEATH_RELEASE_LOC = 0x26CF,
+ SMSG_DEBUG_MENU_MANAGER_FULL_UPDATE = 0x2653,
SMSG_DEFENSE_MESSAGE = 0x2BB6,
- SMSG_DELETE_CHAR = 0x26FC,
+ SMSG_DELETE_CHAR = 0x26FD,
SMSG_DELETE_EXPIRED_MISSIONS_RESULT = 0x2980,
- SMSG_DESTROY_ARENA_UNIT = 0x273B,
- SMSG_DESTRUCTIBLE_BUILDING_DAMAGE = 0x26F3,
+ SMSG_DESTROY_ARENA_UNIT = 0x273C,
+ SMSG_DESTRUCTIBLE_BUILDING_DAMAGE = 0x26F4,
SMSG_DIFFERENT_INSTANCE_FROM_PARTY = 0x258C,
SMSG_DISENCHANT_CREDIT = 0x25A8,
SMSG_DISMOUNT_RESULT = 0x257C,
SMSG_DISPEL_FAILED = 0x2C30,
SMSG_DISPLAY_GAME_ERROR = 0x25A1,
SMSG_DISPLAY_PLAYER_CHOICE = 0x2FFC,
- SMSG_DISPLAY_PROMOTION = 0x2649,
+ SMSG_DISPLAY_PROMOTION = 0x264A,
SMSG_DISPLAY_QUEST_POPUP = 0x2A9E,
- SMSG_DISPLAY_SOULBIND_UPDATE_MESSAGE = 0x2879,
- SMSG_DISPLAY_TOAST = 0x2621,
- SMSG_DISPLAY_WORLD_TEXT = 0x27E8,
- SMSG_DONT_AUTO_PUSH_SPELLS_TO_ACTION_BAR = 0x25DF,
+ SMSG_DISPLAY_SOULBIND_UPDATE_MESSAGE = 0x287A,
+ SMSG_DISPLAY_TOAST = 0x2622,
+ SMSG_DISPLAY_WORLD_TEXT = 0x27E9,
+ SMSG_DONT_AUTO_PUSH_SPELLS_TO_ACTION_BAR = 0x25E0,
SMSG_DROP_NEW_CONNECTION = 0x304C,
SMSG_DUEL_ARRANGED = 0x293C,
SMSG_DUEL_COMPLETE = 0x2940,
@@ -1197,50 +1205,50 @@ enum OpcodeServer : uint16
SMSG_DUEL_OUT_OF_BOUNDS = 0x293D,
SMSG_DUEL_REQUESTED = 0x293B,
SMSG_DUEL_WINNER = 0x2941,
- SMSG_DURABILITY_DAMAGE_DEATH = 0x273F,
- SMSG_EMOTE = 0x27C1,
- SMSG_ENABLE_BARBER_SHOP = 0x26B8,
- SMSG_ENCHANTMENT_LOG = 0x270D,
- SMSG_ENCOUNTER_END = 0x2777,
- SMSG_ENCOUNTER_START = 0x2776,
- SMSG_END_LIGHTNING_STORM = 0x26A5,
- SMSG_ENSURE_WORLD_LOADED = 0x2881,
+ SMSG_DURABILITY_DAMAGE_DEATH = 0x2740,
+ SMSG_EMOTE = 0x27C2,
+ SMSG_ENABLE_BARBER_SHOP = 0x26B9,
+ SMSG_ENCHANTMENT_LOG = 0x270E,
+ SMSG_ENCOUNTER_END = 0x2778,
+ SMSG_ENCOUNTER_START = 0x2777,
+ SMSG_END_LIGHTNING_STORM = 0x26A6,
+ SMSG_ENSURE_WORLD_LOADED = 0x2889,
SMSG_ENTER_ENCRYPTED_MODE = 0x3049,
SMSG_ENUM_CHARACTERS_RESULT = 0x2583,
- SMSG_ENUM_VAS_PURCHASE_STATES_RESPONSE = 0x27ED,
+ SMSG_ENUM_VAS_PURCHASE_STATES_RESPONSE = 0x27EE,
SMSG_ENVIRONMENTAL_DAMAGE_LOG = 0x2C21,
- SMSG_EQUIPMENT_SET_ID = 0x26AE,
+ SMSG_EQUIPMENT_SET_ID = 0x26AF,
SMSG_EXPECTED_SPAM_RECORDS = 0x2BB1,
- SMSG_EXPLORATION_EXPERIENCE = 0x2758,
- SMSG_EXTERNAL_TRANSACTION_ID_GENERATED = 0x2872,
- SMSG_FACTION_BONUS_INFO = 0x271E,
+ SMSG_EXPLORATION_EXPERIENCE = 0x2759,
+ SMSG_EXTERNAL_TRANSACTION_ID_GENERATED = 0x2873,
+ SMSG_FACTION_BONUS_INFO = 0x271F,
SMSG_FAILED_PLAYER_CONDITION = 0x2FFA,
- SMSG_FAILED_QUEST_TURN_IN = 0x280B,
- SMSG_FEATURE_SYSTEM_STATUS = 0x25BE,
- SMSG_FEATURE_SYSTEM_STATUS_GLUE_SCREEN = 0x25BF,
- SMSG_FEIGN_DEATH_RESISTED = 0x273E,
- SMSG_FISH_ESCAPED = 0x26CB,
- SMSG_FISH_NOT_HOOKED = 0x26CA,
+ SMSG_FAILED_QUEST_TURN_IN = 0x280C,
+ SMSG_FEATURE_SYSTEM_STATUS = 0x25BF,
+ SMSG_FEATURE_SYSTEM_STATUS_GLUE_SCREEN = 0x25C0,
+ SMSG_FEIGN_DEATH_RESISTED = 0x273F,
+ SMSG_FISH_ESCAPED = 0x26CC,
+ SMSG_FISH_NOT_HOOKED = 0x26CB,
SMSG_FLIGHT_SPLINE_SYNC = 0x2E2B,
- SMSG_FORCED_DEATH_UPDATE = 0x26CF,
- SMSG_FORCE_ANIM = 0x274A,
- SMSG_FORCE_ANIMATIONS = 0x274B,
- SMSG_FORCE_OBJECT_RELINK = 0x2648,
- SMSG_FRIEND_STATUS = 0x2780,
- SMSG_GAIN_MAW_POWER = 0x27DC,
- SMSG_GAME_OBJECT_ACTIVATE_ANIM_KIT = 0x25C2,
- SMSG_GAME_OBJECT_BASE = 0x2822,
- SMSG_GAME_OBJECT_CLOSE_INTERACTION = 0x2885,
- SMSG_GAME_OBJECT_CUSTOM_ANIM = 0x25C3,
- SMSG_GAME_OBJECT_DESPAWN = 0x25C4,
- SMSG_GAME_OBJECT_INTERACTION = 0x2884,
+ SMSG_FORCED_DEATH_UPDATE = 0x26D0,
+ SMSG_FORCE_ANIM = 0x274B,
+ SMSG_FORCE_ANIMATIONS = 0x274C,
+ SMSG_FORCE_OBJECT_RELINK = 0x2649,
+ SMSG_FRIEND_STATUS = 0x2781,
+ SMSG_GAIN_MAW_POWER = 0x27DD,
+ SMSG_GAME_OBJECT_ACTIVATE_ANIM_KIT = 0x25C3,
+ SMSG_GAME_OBJECT_BASE = 0x2823,
+ SMSG_GAME_OBJECT_CLOSE_INTERACTION = 0x288D,
+ SMSG_GAME_OBJECT_CUSTOM_ANIM = 0x25C4,
+ SMSG_GAME_OBJECT_DESPAWN = 0x25C5,
+ SMSG_GAME_OBJECT_INTERACTION = 0x288C,
SMSG_GAME_OBJECT_PLAY_SPELL_VISUAL = 0x2C4E,
SMSG_GAME_OBJECT_PLAY_SPELL_VISUAL_KIT = 0x2C4D,
- SMSG_GAME_OBJECT_RESET_STATE = 0x2718,
- SMSG_GAME_OBJECT_SET_STATE_LOCAL = 0x27FE,
- SMSG_GAME_SPEED_SET = 0x267E,
- SMSG_GAME_TIME_SET = 0x2706,
- SMSG_GAME_TIME_UPDATE = 0x2705,
+ SMSG_GAME_OBJECT_RESET_STATE = 0x2719,
+ SMSG_GAME_OBJECT_SET_STATE_LOCAL = 0x27FF,
+ SMSG_GAME_SPEED_SET = 0x267F,
+ SMSG_GAME_TIME_SET = 0x2707,
+ SMSG_GAME_TIME_UPDATE = 0x2706,
SMSG_GARRISON_ACTIVATE_MISSION_BONUS_ABILITY = 0x2982,
SMSG_GARRISON_ADD_EVENT = 0x29A6,
SMSG_GARRISON_ADD_FOLLOWER_RESULT = 0x2974,
@@ -1312,35 +1320,35 @@ enum OpcodeServer : uint16
SMSG_GARRISON_UPGRADE_RESULT = 0x296B,
SMSG_GARRISON_USE_RECALL_PORTAL_RESULT = 0x297D,
SMSG_GENERATE_RANDOM_CHARACTER_NAME_RESULT = 0x2585,
- SMSG_GENERATE_SSO_TOKEN_RESPONSE = 0x2816,
- SMSG_GET_ACCOUNT_CHARACTER_LIST_RESULT = 0x275A,
+ SMSG_GENERATE_SSO_TOKEN_RESPONSE = 0x2817,
+ SMSG_GET_ACCOUNT_CHARACTER_LIST_RESULT = 0x275B,
SMSG_GET_GARRISON_INFO_RESULT = 0x295E,
- SMSG_GET_LANDING_PAGE_SHIPMENTS_RESPONSE = 0x2796,
- SMSG_GET_REMAINING_GAME_TIME_RESPONSE = 0x27D4,
- 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 = 0x27E9,
- SMSG_GET_VAS_TRANSFER_TARGET_REALM_LIST_RESULT = 0x27EA,
+ SMSG_GET_LANDING_PAGE_SHIPMENTS_RESPONSE = 0x2797,
+ SMSG_GET_REMAINING_GAME_TIME_RESPONSE = 0x27D5,
+ 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 = 0x27EA,
+ SMSG_GET_VAS_TRANSFER_TARGET_REALM_LIST_RESULT = 0x27EB,
SMSG_GM_PLAYER_INFO = 0x3005,
SMSG_GM_REQUEST_PLAYER_INFO = 0x2FFB,
- SMSG_GM_TICKET_CASE_STATUS = 0x26A0,
- SMSG_GM_TICKET_SYSTEM_STATUS = 0x269F,
- SMSG_GOD_MODE = 0x26F6,
+ SMSG_GM_TICKET_CASE_STATUS = 0x26A1,
+ SMSG_GM_TICKET_SYSTEM_STATUS = 0x26A0,
+ SMSG_GOD_MODE = 0x26F7,
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 = 0x2590,
- 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_GROUP_AUTO_KICK = 0x278C,
+ SMSG_GROUP_DECLINE = 0x2788,
+ SMSG_GROUP_DESTROYED = 0x278B,
+ SMSG_GROUP_NEW_LEADER = 0x262B,
+ SMSG_GROUP_REQUEST_DECLINE = 0x2789,
+ SMSG_GROUP_UNINVITE = 0x278A,
SMSG_GUILD_ACHIEVEMENT_DELETED = 0x29C5,
SMSG_GUILD_ACHIEVEMENT_EARNED = 0x29C4,
SMSG_GUILD_ACHIEVEMENT_MEMBERS = 0x29C7,
@@ -1394,59 +1402,59 @@ enum OpcodeServer : uint16
SMSG_GUILD_ROSTER = 0x29BB,
SMSG_GUILD_ROSTER_UPDATE = 0x29BC,
SMSG_GUILD_SEND_RANK_CHANGE = 0x29B9,
- SMSG_HEALTH_UPDATE = 0x26CC,
- SMSG_HIGHEST_THREAT_UPDATE = 0x26D4,
+ SMSG_HEALTH_UPDATE = 0x26CD,
+ SMSG_HIGHEST_THREAT_UPDATE = 0x26D5,
SMSG_HOTFIX_CONNECT = 0x2911,
SMSG_HOTFIX_MESSAGE = 0x2910,
- SMSG_INITIALIZE_FACTIONS = 0x271D,
+ SMSG_INITIALIZE_FACTIONS = 0x271E,
SMSG_INITIAL_SETUP = 0x2580,
- SMSG_INIT_WORLD_STATES = 0x2740,
- 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 = 0x26F4,
- SMSG_INSTANCE_INFO = 0x2631,
- SMSG_INSTANCE_RESET = 0x2683,
- SMSG_INSTANCE_RESET_FAILED = 0x2684,
- SMSG_INSTANCE_SAVE_CREATED = 0x2775,
+ SMSG_INIT_WORLD_STATES = 0x2741,
+ SMSG_INSPECT_RESULT = 0x262F,
+ 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 = 0x26F5,
+ SMSG_INSTANCE_INFO = 0x2632,
+ SMSG_INSTANCE_RESET = 0x2684,
+ SMSG_INSTANCE_RESET_FAILED = 0x2685,
+ SMSG_INSTANCE_SAVE_CREATED = 0x2776,
SMSG_INTERRUPT_POWER_REGEN = 0x2C5C,
SMSG_INVALIDATE_PAGE_TEXT = 0x2918,
SMSG_INVALIDATE_PLAYER = 0x2FFF,
- SMSG_INVALID_PROMOTION_CODE = 0x274C,
+ SMSG_INVALID_PROMOTION_CODE = 0x274D,
SMSG_INVENTORY_CHANGE_FAILURE = 0x2DA5,
- SMSG_INVENTORY_FIXUP_COMPLETE = 0x280D,
- SMSG_INVENTORY_FULL_OVERFLOW = 0x281E,
- SMSG_ISLAND_AZERITE_GAIN = 0x2755,
- SMSG_ISLAND_COMPLETE = 0x2756,
+ SMSG_INVENTORY_FIXUP_COMPLETE = 0x280E,
+ SMSG_INVENTORY_FULL_OVERFLOW = 0x281F,
+ SMSG_ISLAND_AZERITE_GAIN = 0x2756,
+ SMSG_ISLAND_COMPLETE = 0x2757,
SMSG_IS_QUEST_COMPLETE_RESPONSE = 0x2A84,
- SMSG_ITEM_CHANGED = 0x26E5,
- SMSG_ITEM_COOLDOWN = 0x27BF,
- SMSG_ITEM_ENCHANT_TIME_UPDATE = 0x274E,
+ SMSG_ITEM_CHANGED = 0x26E6,
+ SMSG_ITEM_COOLDOWN = 0x27C0,
+ SMSG_ITEM_ENCHANT_TIME_UPDATE = 0x274F,
SMSG_ITEM_EXPIRE_PURCHASE_REFUND = 0x25A0,
- SMSG_ITEM_INTERACTION_COMPLETE = 0x286A,
+ SMSG_ITEM_INTERACTION_COMPLETE = 0x286B,
SMSG_ITEM_PURCHASE_REFUND_RESULT = 0x259E,
- SMSG_ITEM_PUSH_RESULT = 0x2620,
- SMSG_ITEM_TIME_UPDATE = 0x274D,
- SMSG_KICK_REASON = 0x2686,
- SMSG_LATENCY_REPORT_PING = 0x287C,
+ SMSG_ITEM_PUSH_RESULT = 0x2621,
+ SMSG_ITEM_TIME_UPDATE = 0x274E,
+ SMSG_KICK_REASON = 0x2687,
+ SMSG_LATENCY_REPORT_PING = 0x287D,
SMSG_LEARNED_SPELLS = 0x2C50,
- SMSG_LEARN_PVP_TALENT_FAILED = 0x25D3,
- SMSG_LEARN_TALENT_FAILED = 0x25D2,
- SMSG_LEGACY_LOOT_RULES = 0x2823,
- SMSG_LEVEL_LINKING_RESULT = 0x2850,
- SMSG_LEVEL_UP_INFO = 0x26E3,
+ SMSG_LEARN_PVP_TALENT_FAILED = 0x25D4,
+ SMSG_LEARN_TALENT_FAILED = 0x25D3,
+ SMSG_LEGACY_LOOT_RULES = 0x2824,
+ SMSG_LEVEL_LINKING_RESULT = 0x2851,
+ SMSG_LEVEL_UP_INFO = 0x26E4,
SMSG_LFG_BOOT_PLAYER = 0x2A35,
SMSG_LFG_DISABLED = 0x2A33,
SMSG_LFG_EXPAND_SEARCH_PROMPT = 0x2A3B,
@@ -1474,46 +1482,46 @@ enum OpcodeServer : uint16
SMSG_LFG_SLOT_INVALID = 0x2A30,
SMSG_LFG_TELEPORT_DENIED = 0x2A32,
SMSG_LFG_UPDATE_STATUS = 0x2A24,
- SMSG_LIVE_REGION_ACCOUNT_RESTORE_RESULT = 0x2767,
- SMSG_LIVE_REGION_CHARACTER_COPY_RESULT = 0x2766,
- SMSG_LIVE_REGION_GET_ACCOUNT_CHARACTER_LIST_RESULT = 0x275B,
- SMSG_LIVE_REGION_KEY_BINDINGS_COPY_RESULT = 0x2768,
- SMSG_LOAD_CUF_PROFILES = 0x25BB,
- SMSG_LOAD_EQUIPMENT_SET = 0x2708,
- SMSG_LOBBY_MATCHMAKER_PARTY_INFO = 0x2889,
- SMSG_LOGIN_SET_TIME_SPEED = 0x2707,
+ SMSG_LIVE_REGION_ACCOUNT_RESTORE_RESULT = 0x2768,
+ SMSG_LIVE_REGION_CHARACTER_COPY_RESULT = 0x2767,
+ SMSG_LIVE_REGION_GET_ACCOUNT_CHARACTER_LIST_RESULT = 0x275C,
+ SMSG_LIVE_REGION_KEY_BINDINGS_COPY_RESULT = 0x2769,
+ SMSG_LOAD_CUF_PROFILES = 0x25BC,
+ SMSG_LOAD_EQUIPMENT_SET = 0x2709,
+ SMSG_LOBBY_MATCHMAKER_PARTY_INFO = 0x2891,
+ SMSG_LOGIN_SET_TIME_SPEED = 0x2708,
SMSG_LOGIN_VERIFY_WORLD = 0x259B,
- SMSG_LOGOUT_CANCEL_ACK = 0x2682,
- SMSG_LOGOUT_COMPLETE = 0x2681,
- SMSG_LOGOUT_RESPONSE = 0x2680,
- SMSG_LOG_XP_GAIN = 0x26DF,
- SMSG_LOOT_ALL_PASSED = 0x261E,
- SMSG_LOOT_LIST = 0x273A,
- 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 = 0x266D,
- SMSG_MAIL_COMMAND_RESULT = 0x2638,
- SMSG_MAIL_LIST_RESULT = 0x274F,
- SMSG_MAIL_QUERY_NEXT_TIME_RESULT = 0x2750,
+ SMSG_LOGOUT_CANCEL_ACK = 0x2683,
+ SMSG_LOGOUT_COMPLETE = 0x2682,
+ SMSG_LOGOUT_RESPONSE = 0x2681,
+ SMSG_LOG_XP_GAIN = 0x26E0,
+ SMSG_LOOT_ALL_PASSED = 0x261F,
+ SMSG_LOOT_LIST = 0x273B,
+ SMSG_LOOT_MONEY_NOTIFY = 0x261A,
+ SMSG_LOOT_RELEASE = 0x2619,
+ SMSG_LOOT_RELEASE_ALL = 0x2618,
+ SMSG_LOOT_REMOVED = 0x2614,
+ SMSG_LOOT_RESPONSE = 0x2613,
+ SMSG_LOOT_ROLL = 0x261C,
+ SMSG_LOOT_ROLLS_COMPLETE = 0x261E,
+ SMSG_LOOT_ROLL_WON = 0x2620,
+ SMSG_LOSS_OF_CONTROL_AURA_UPDATE = 0x266E,
+ SMSG_MAIL_COMMAND_RESULT = 0x2639,
+ SMSG_MAIL_LIST_RESULT = 0x2750,
+ SMSG_MAIL_QUERY_NEXT_TIME_RESULT = 0x2751,
SMSG_MAP_OBJECTIVES_INIT = 0x294B,
- SMSG_MAP_OBJ_EVENTS = 0x25C5,
- SMSG_MASTER_LOOT_CANDIDATE_LIST = 0x261C,
- SMSG_MEETING_STONE_FAILED = 0x288A,
+ SMSG_MAP_OBJ_EVENTS = 0x25C6,
+ SMSG_MASTER_LOOT_CANDIDATE_LIST = 0x261D,
+ SMSG_MEETING_STONE_FAILED = 0x2892,
SMSG_MESSAGE_BOX = 0x2576,
- SMSG_MINIMAP_PING = 0x26C9,
+ SMSG_MINIMAP_PING = 0x26CA,
SMSG_MIRROR_IMAGE_COMPONENTED_DATA = 0x2C14,
SMSG_MIRROR_IMAGE_CREATURE_DATA = 0x2C13,
- SMSG_MISSILE_CANCEL = 0x25C6,
- SMSG_MODIFY_COOLDOWN = 0x275D,
+ SMSG_MISSILE_CANCEL = 0x25C7,
+ SMSG_MODIFY_COOLDOWN = 0x275E,
SMSG_MOTD = 0x2BAF,
SMSG_MOUNT_RESULT = 0x257B,
- SMSG_MOVEMENT_ENFORCEMENT_ALERT = 0x2840,
+ SMSG_MOVEMENT_ENFORCEMENT_ALERT = 0x2841,
SMSG_MOVE_ADD_IMPULSE = 0x2E32,
SMSG_MOVE_APPLY_INERTIA = 0x2E2E,
SMSG_MOVE_APPLY_MOVEMENT_FORCE = 0x2E15,
@@ -1621,79 +1629,84 @@ 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 = 0x27D9,
- SMSG_MULTI_FLOOR_NEW_FLOOR = 0x27D8,
- SMSG_MYTHIC_PLUS_ALL_MAP_STATS = 0x260A,
- SMSG_MYTHIC_PLUS_CURRENT_AFFIXES = 0x260C,
- SMSG_MYTHIC_PLUS_NEW_WEEK_RECORD = 0x260F,
- SMSG_MYTHIC_PLUS_SEASON_DATA = 0x260B,
- SMSG_NEUTRAL_PLAYER_FACTION_SELECT_RESULT = 0x25DA,
- SMSG_NEW_TAXI_PATH = 0x267B,
+ SMSG_MULTI_FLOOR_LEAVE_FLOOR = 0x27DA,
+ SMSG_MULTI_FLOOR_NEW_FLOOR = 0x27D9,
+ SMSG_MYTHIC_PLUS_ALL_MAP_STATS = 0x260B,
+ SMSG_MYTHIC_PLUS_CURRENT_AFFIXES = 0x260D,
+ SMSG_MYTHIC_PLUS_NEW_WEEK_RECORD = 0x2610,
+ SMSG_MYTHIC_PLUS_SEASON_DATA = 0x260C,
+ SMSG_NEUTRAL_PLAYER_FACTION_SELECT_RESULT = 0x25DB,
+ SMSG_NEW_TAXI_PATH = 0x267C,
SMSG_NEW_WORLD = 0x2598,
SMSG_NOTIFY_DEST_LOC_SPELL_CAST = 0x2C46,
- SMSG_NOTIFY_MISSILE_TRAJECTORY_COLLISION = 0x26A7,
+ SMSG_NOTIFY_MISSILE_TRAJECTORY_COLLISION = 0x26A8,
SMSG_NOTIFY_MONEY = 0x259D,
- SMSG_NOTIFY_RECEIVED_MAIL = 0x2639,
- SMSG_NPC_INTERACTION_OPEN_RESULT = 0x2883,
- SMSG_OFFER_PETITION_ERROR = 0x26B2,
- SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA = 0x26E0,
+ SMSG_NOTIFY_RECEIVED_MAIL = 0x263A,
+ SMSG_NPC_INTERACTION_OPEN_RESULT = 0x288B,
+ SMSG_OFFER_PETITION_ERROR = 0x26B3,
+ SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA = 0x26E1,
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 = 0x26B7,
- SMSG_PAGE_TEXT = 0x2713,
- SMSG_PARTY_COMMAND_RESULT = 0x278C,
- SMSG_PARTY_INVITE = 0x25BC,
- SMSG_PARTY_KILL_LOG = 0x2753,
- SMSG_PARTY_MEMBER_FULL_STATE = 0x2752,
- SMSG_PARTY_MEMBER_PARTIAL_STATE = 0x2751,
- SMSG_PARTY_NOTIFY_LFG_LEADER_CHANGE = 0x2870,
- SMSG_PARTY_UPDATE = 0x25F3,
- SMSG_PAST_TIME_EVENTS = 0x25C1,
- SMSG_PAUSE_MIRROR_TIMER = 0x270A,
- SMSG_PENDING_RAID_LOCK = 0x26F2,
+ SMSG_OPEN_SHIPMENT_NPC_RESULT = 0x2793,
+ SMSG_OVERRIDE_LIGHT = 0x26B8,
+ SMSG_PAGE_TEXT = 0x2714,
+ SMSG_PARTY_COMMAND_RESULT = 0x278D,
+ SMSG_PARTY_INVITE = 0x25BD,
+ SMSG_PARTY_KILL_LOG = 0x2754,
+ SMSG_PARTY_MEMBER_FULL_STATE = 0x2753,
+ SMSG_PARTY_MEMBER_PARTIAL_STATE = 0x2752,
+ SMSG_PARTY_NOTIFY_LFG_LEADER_CHANGE = 0x2871,
+ SMSG_PARTY_UPDATE = 0x25F4,
+ SMSG_PAST_TIME_EVENTS = 0x25C2,
+ SMSG_PAUSE_MIRROR_TIMER = 0x270B,
+ SMSG_PENDING_RAID_LOCK = 0x26F3,
+ SMSG_PERKS_PROGRAM_ACTIVITY_COMPLETE = 0x2887,
+ SMSG_PERKS_PROGRAM_ACTIVITY_UPDATE = 0x2883,
+ SMSG_PERKS_PROGRAM_DISABLED = 0x2888,
+ SMSG_PERKS_PROGRAM_RESULT = 0x2884,
+ SMSG_PERKS_PROGRAM_VENDOR_UPDATE = 0x2882,
SMSG_PETITION_ALREADY_SIGNED = 0x25A3,
SMSG_PETITION_RENAME_GUILD_RESPONSE = 0x29FA,
- SMSG_PETITION_SHOW_LIST = 0x26BA,
- SMSG_PETITION_SHOW_SIGNATURES = 0x26BB,
- SMSG_PETITION_SIGN_RESULTS = 0x2745,
- SMSG_PET_ACTION_FEEDBACK = 0x2742,
- SMSG_PET_ACTION_SOUND = 0x269D,
+ SMSG_PETITION_SHOW_LIST = 0x26BB,
+ SMSG_PETITION_SHOW_SIGNATURES = 0x26BC,
+ SMSG_PETITION_SIGN_RESULTS = 0x2746,
+ SMSG_PET_ACTION_FEEDBACK = 0x2743,
+ SMSG_PET_ACTION_SOUND = 0x269E,
SMSG_PET_ADDED = 0x2595,
- SMSG_PET_BATTLE_CHAT_RESTRICTED = 0x2601,
- SMSG_PET_BATTLE_DEBUG_QUEUE_DUMP_RESPONSE = 0x2672,
- SMSG_PET_BATTLE_FINALIZE_LOCATION = 0x25FA,
- SMSG_PET_BATTLE_FINAL_ROUND = 0x25FF,
- SMSG_PET_BATTLE_FINISHED = 0x2600,
- SMSG_PET_BATTLE_FIRST_ROUND = 0x25FC,
- SMSG_PET_BATTLE_INITIAL_UPDATE = 0x25FB,
- SMSG_PET_BATTLE_MAX_GAME_LENGTH_WARNING = 0x2602,
- SMSG_PET_BATTLE_PVP_CHALLENGE = 0x25F9,
- SMSG_PET_BATTLE_QUEUE_PROPOSE_MATCH = 0x2636,
- SMSG_PET_BATTLE_QUEUE_STATUS = 0x2637,
- SMSG_PET_BATTLE_REPLACEMENTS_MADE = 0x25FE,
- SMSG_PET_BATTLE_REQUEST_FAILED = 0x25F8,
- SMSG_PET_BATTLE_ROUND_RESULT = 0x25FD,
- SMSG_PET_BATTLE_SLOT_UPDATES = 0x25EA,
+ SMSG_PET_BATTLE_CHAT_RESTRICTED = 0x2602,
+ SMSG_PET_BATTLE_DEBUG_QUEUE_DUMP_RESPONSE = 0x2673,
+ 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 = 0x2637,
+ SMSG_PET_BATTLE_QUEUE_STATUS = 0x2638,
+ SMSG_PET_BATTLE_REPLACEMENTS_MADE = 0x25FF,
+ SMSG_PET_BATTLE_REQUEST_FAILED = 0x25F9,
+ SMSG_PET_BATTLE_ROUND_RESULT = 0x25FE,
+ SMSG_PET_BATTLE_SLOT_UPDATES = 0x25EB,
SMSG_PET_CAST_FAILED = 0x2C5B,
SMSG_PET_CLEAR_SPELLS = 0x2C24,
- SMSG_PET_DISMISS_SOUND = 0x269E,
- SMSG_PET_GOD_MODE = 0x2678,
- SMSG_PET_GUIDS = 0x26FE,
+ SMSG_PET_DISMISS_SOUND = 0x269F,
+ SMSG_PET_GOD_MODE = 0x2679,
+ SMSG_PET_GUIDS = 0x26FF,
SMSG_PET_LEARNED_SPELLS = 0x2C52,
SMSG_PET_MODE = 0x258B,
- SMSG_PET_NAME_INVALID = 0x26BF,
+ SMSG_PET_NAME_INVALID = 0x26C0,
SMSG_PET_NEWLY_TAMED = 0x2589,
SMSG_PET_SLOT_UPDATED = 0x258A,
SMSG_PET_SPELLS_MESSAGE = 0x2C25,
SMSG_PET_STABLE_LIST = 0x2596,
SMSG_PET_STABLE_RESULT = 0x2597,
- SMSG_PET_TAME_FAILURE = 0x26AF,
+ SMSG_PET_TAME_FAILURE = 0x26B0,
SMSG_PET_UNLEARNED_SPELLS = 0x2C53,
SMSG_PHASE_SHIFT_CHANGE = 0x2578,
- SMSG_PLAYED_TIME = 0x26D0,
+ SMSG_PLAYED_TIME = 0x26D1,
SMSG_PLAYER_AZERITE_ITEM_EQUIPPED_STATUS_CHANGED = 0x3014,
SMSG_PLAYER_AZERITE_ITEM_GAINS = 0x3013,
SMSG_PLAYER_BONUS_ROLL_FAILED = 0x3016,
@@ -1709,25 +1722,25 @@ enum OpcodeServer : uint16
SMSG_PLAYER_SKINNED = 0x3006,
SMSG_PLAYER_TUTORIAL_HIGHLIGHT_SPELL = 0x300D,
SMSG_PLAYER_TUTORIAL_UNHIGHLIGHT_SPELL = 0x300C,
- SMSG_PLAY_MUSIC = 0x2762,
- SMSG_PLAY_OBJECT_SOUND = 0x2763,
- SMSG_PLAY_ONE_SHOT_ANIM_KIT = 0x272A,
+ SMSG_PLAY_MUSIC = 0x2763,
+ SMSG_PLAY_OBJECT_SOUND = 0x2764,
+ SMSG_PLAY_ONE_SHOT_ANIM_KIT = 0x272B,
SMSG_PLAY_ORPHAN_SPELL_VISUAL = 0x2C4A,
- SMSG_PLAY_SCENE = 0x2633,
- SMSG_PLAY_SOUND = 0x2761,
- SMSG_PLAY_SPEAKERBOT_SOUND = 0x2764,
+ SMSG_PLAY_SCENE = 0x2634,
+ SMSG_PLAY_SOUND = 0x2762,
+ SMSG_PLAY_SPEAKERBOT_SOUND = 0x2765,
SMSG_PLAY_SPELL_VISUAL = 0x2C48,
SMSG_PLAY_SPELL_VISUAL_KIT = 0x2C4C,
- SMSG_PLAY_TIME_WARNING = 0x26F8,
+ SMSG_PLAY_TIME_WARNING = 0x26F9,
SMSG_PONG = 0x304E,
- SMSG_POWER_UPDATE = 0x26CD,
+ SMSG_POWER_UPDATE = 0x26CE,
SMSG_PRELOAD_CHILD_MAP = 0x2579,
SMSG_PRELOAD_WORLD = 0x2599,
- SMSG_PREPOPULATE_NAME_CACHE = 0x2843,
- SMSG_PRE_RESSURECT = 0x2760,
- SMSG_PRINT_NOTIFICATION = 0x25C9,
- SMSG_PROC_RESIST = 0x2754,
- SMSG_PROFESSION_GOSSIP = 0x27F9,
+ SMSG_PREPOPULATE_NAME_CACHE = 0x2844,
+ SMSG_PRE_RESSURECT = 0x2761,
+ SMSG_PRINT_NOTIFICATION = 0x25CA,
+ SMSG_PROC_RESIST = 0x2755,
+ SMSG_PROFESSION_GOSSIP = 0x27FA,
SMSG_PUSH_SPELL_TO_ACTION_BAR = 0x2C54,
SMSG_PVP_CREDIT = 0x2945,
SMSG_PVP_MATCH_COMPLETE = 0x294F,
@@ -1735,7 +1748,7 @@ enum OpcodeServer : uint16
SMSG_PVP_MATCH_START = 0x294E,
SMSG_PVP_MATCH_STATISTICS = 0x2932,
SMSG_PVP_OPTIONS_ENABLED = 0x2934,
- SMSG_PVP_TIER_RECORD = 0x287D,
+ SMSG_PVP_TIER_RECORD = 0x287E,
SMSG_QUERY_BATTLE_PET_NAME_RESPONSE = 0x291A,
SMSG_QUERY_CREATURE_RESPONSE = 0x2914,
SMSG_QUERY_GAME_OBJECT_RESPONSE = 0x2915,
@@ -1751,7 +1764,7 @@ enum OpcodeServer : uint16
SMSG_QUERY_PLAYER_NAME_BY_COMMUNITY_ID_RESPONSE = 0x3002,
SMSG_QUERY_QUEST_INFO_RESPONSE = 0x2A96,
SMSG_QUERY_REALM_GUILD_MASTER_INFO_RESPONSE = 0x29E6,
- SMSG_QUERY_TIME_RESPONSE = 0x26DE,
+ SMSG_QUERY_TIME_RESPONSE = 0x26DF,
SMSG_QUEST_COMPLETION_NPC_RESPONSE = 0x2A81,
SMSG_QUEST_CONFIRM_ACCEPT = 0x2A8F,
SMSG_QUEST_FORCE_REMOVED = 0x2A9C,
@@ -1770,137 +1783,140 @@ 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 = 0x2866,
- SMSG_QUEST_SESSION_READY_CHECK = 0x2854,
- SMSG_QUEST_SESSION_READY_CHECK_RESPONSE = 0x2855,
- SMSG_QUEST_SESSION_RESULT = 0x2853,
+ SMSG_QUEST_SESSION_INFO_RESPONSE = 0x2867,
+ SMSG_QUEST_SESSION_READY_CHECK = 0x2855,
+ SMSG_QUEST_SESSION_READY_CHECK_RESPONSE = 0x2856,
+ SMSG_QUEST_SESSION_RESULT = 0x2854,
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 = 0x280C,
- SMSG_RAF_ACCOUNT_INFO = 0x2851,
- SMSG_RAF_ACTIVITY_STATE_CHANGED = 0x2862,
- SMSG_RAID_DIFFICULTY_SET = 0x27A4,
- SMSG_RAID_GROUP_ONLY = 0x27A6,
+ SMSG_QUEUE_SUMMARY_UPDATE = 0x280D,
+ SMSG_RAF_ACCOUNT_INFO = 0x2852,
+ SMSG_RAF_ACTIVITY_STATE_CHANGED = 0x2863,
+ SMSG_RAID_DIFFICULTY_SET = 0x27A5,
+ SMSG_RAID_GROUP_ONLY = 0x27A7,
SMSG_RAID_INSTANCE_MESSAGE = 0x2BB4,
SMSG_RAID_MARKERS_CHANGED = 0x25A4,
- SMSG_RANDOM_ROLL = 0x262D,
+ SMSG_RANDOM_ROLL = 0x262E,
SMSG_RATED_PVP_INFO = 0x2931,
- SMSG_READY_CHECK_COMPLETED = 0x25F7,
- SMSG_READY_CHECK_RESPONSE = 0x25F6,
- SMSG_READY_CHECK_STARTED = 0x25F5,
- SMSG_READ_ITEM_RESULT_FAILED = 0x27A0,
- SMSG_READ_ITEM_RESULT_OK = 0x2797,
- SMSG_REALM_LOOKUP_INFO = 0x27C4,
+ 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_LOOKUP_INFO = 0x27C5,
SMSG_REALM_QUERY_RESPONSE = 0x2913,
- SMSG_REATTACH_RESURRECT = 0x2744,
- SMSG_RECRAFT_ITEM_RESULT = 0x289B,
- SMSG_RECRUIT_A_FRIEND_FAILURE = 0x26BC,
- SMSG_REFRESH_COMPONENT = 0x264E,
+ SMSG_REATTACH_RESURRECT = 0x2745,
+ SMSG_RECRAFT_ITEM_RESULT = 0x28A3,
+ SMSG_RECRUIT_A_FRIEND_FAILURE = 0x26BD,
+ SMSG_REFRESH_COMPONENT = 0x264F,
SMSG_REFRESH_SPELL_HISTORY = 0x2C2C,
SMSG_REMOVE_ITEM_PASSIVE = 0x25AC,
SMSG_REMOVE_SPELL_FROM_ACTION_BAR = 0x2C55,
- SMSG_REPLACE_TROPHY_RESPONSE = 0x27BC,
+ SMSG_REPLACE_TROPHY_RESPONSE = 0x27BD,
SMSG_REPORT_PVP_PLAYER_AFK_RESULT = 0x3001,
SMSG_REQUEST_CEMETERY_LIST_RESPONSE = 0x2591,
SMSG_REQUEST_PVP_REWARDS_RESPONSE = 0x2935,
SMSG_REQUEST_SCHEDULED_PVP_INFO_RESPONSE = 0x2936,
SMSG_RESEARCH_COMPLETE = 0x2587,
SMSG_RESET_COMPRESSION_CONTEXT = 0x304F,
- SMSG_RESET_FAILED_NOTIFY = 0x26B3,
+ SMSG_RESET_FAILED_NOTIFY = 0x26B4,
+ SMSG_RESET_LAST_LOADED_CONFIG_CVARS = 0x28A9,
SMSG_RESET_QUEST_POI = 0x2AA0,
SMSG_RESET_RANGED_COMBAT_TIMER = 0x2944,
SMSG_RESET_WEEKLY_CURRENCY = 0x2575,
- SMSG_RESPEC_WIPE_CONFIRM = 0x2610,
+ SMSG_RESPEC_WIPE_CONFIRM = 0x2611,
SMSG_RESPOND_INSPECT_ACHIEVEMENTS = 0x2572,
+ SMSG_RESPONSE_PERK_PENDING_REWARDS = 0x2885,
+ SMSG_RESPONSE_PERK_RECENT_PURCHASES = 0x2886,
SMSG_RESTART_GLOBAL_COOLDOWN = 0x2C64,
- SMSG_RESTRICTED_ACCOUNT_WARNING = 0x25B8,
+ SMSG_RESTRICTED_ACCOUNT_WARNING = 0x25B9,
SMSG_RESUME_CAST = 0x2C3E,
SMSG_RESUME_CAST_BAR = 0x2C41,
SMSG_RESUME_COMMS = 0x304B,
SMSG_RESUME_TOKEN = 0x25AA,
SMSG_RESURRECT_REQUEST = 0x257E,
SMSG_RESYNC_RUNES = 0x2C62,
- SMSG_RETURNING_PLAYER_PROMPT = 0x279F,
- SMSG_RETURN_APPLICANT_LIST = 0x2847,
- SMSG_RETURN_RECRUITING_CLUBS = 0x2846,
+ SMSG_RETURNING_PLAYER_PROMPT = 0x27A0,
+ SMSG_RETURN_APPLICANT_LIST = 0x2848,
+ SMSG_RETURN_RECRUITING_CLUBS = 0x2847,
SMSG_ROLE_CHANGED_INFORM = 0x258D,
SMSG_ROLE_CHOSEN = 0x2A39,
SMSG_ROLE_POLL_INFORM = 0x258E,
- SMSG_RUNEFORGE_LEGENDARY_CRAFTING_OPEN_NPC = 0x27F8,
- SMSG_RUNE_REGEN_DEBUG = 0x25B5,
- SMSG_SCENARIO_COMPLETED = 0x27E6,
- SMSG_SCENARIO_POIS = 0x2630,
- SMSG_SCENARIO_PROGRESS_UPDATE = 0x2629,
- SMSG_SCENARIO_SHOW_CRITERIA = 0x27FC,
- SMSG_SCENARIO_STATE = 0x2628,
- SMSG_SCENARIO_UI_UPDATE = 0x27FB,
- 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_RUNEFORGE_LEGENDARY_CRAFTING_OPEN_NPC = 0x27F9,
+ SMSG_RUNE_REGEN_DEBUG = 0x25B6,
+ SMSG_SCENARIO_COMPLETED = 0x27E7,
+ SMSG_SCENARIO_POIS = 0x2631,
+ SMSG_SCENARIO_PROGRESS_UPDATE = 0x262A,
+ SMSG_SCENARIO_SHOW_CRITERIA = 0x27FD,
+ SMSG_SCENARIO_STATE = 0x2629,
+ SMSG_SCENARIO_UI_UPDATE = 0x27FC,
+ SMSG_SCENARIO_VACATE = 0x27A2,
+ SMSG_SCENE_OBJECT_EVENT = 0x25E1,
+ SMSG_SCENE_OBJECT_PET_BATTLE_FINAL_ROUND = 0x25E6,
+ SMSG_SCENE_OBJECT_PET_BATTLE_FINISHED = 0x25E7,
+ SMSG_SCENE_OBJECT_PET_BATTLE_FIRST_ROUND = 0x25E3,
+ SMSG_SCENE_OBJECT_PET_BATTLE_INITIAL_UPDATE = 0x25E2,
+ SMSG_SCENE_OBJECT_PET_BATTLE_REPLACEMENTS_MADE = 0x25E5,
+ SMSG_SCENE_OBJECT_PET_BATTLE_ROUND_RESULT = 0x25E4,
SMSG_SCRIPT_CAST = 0x2C59,
- SMSG_SEASON_INFO = 0x25C0,
- SMSG_SELL_RESPONSE = 0x26C0,
+ SMSG_SEASON_INFO = 0x25C1,
+ SMSG_SELL_RESPONSE = 0x26C1,
SMSG_SEND_ITEM_PASSIVES = 0x25AD,
SMSG_SEND_KNOWN_SPELLS = 0x2C2A,
- SMSG_SEND_RAID_TARGET_UPDATE_ALL = 0x262B,
- SMSG_SEND_RAID_TARGET_UPDATE_SINGLE = 0x262C,
+ SMSG_SEND_RAID_TARGET_UPDATE_ALL = 0x262C,
+ SMSG_SEND_RAID_TARGET_UPDATE_SINGLE = 0x262D,
SMSG_SEND_SPELL_CHARGES = 0x2C2D,
SMSG_SEND_SPELL_HISTORY = 0x2C2B,
SMSG_SEND_UNLEARN_SPELLS = 0x2C2E,
- SMSG_SERVER_FIRST_ACHIEVEMENTS = 0x264B,
- SMSG_SERVER_TIME = 0x267F,
- SMSG_SERVER_TIME_OFFSET = 0x270E,
+ SMSG_SERVER_FIRST_ACHIEVEMENTS = 0x264C,
+ SMSG_SERVER_TIME = 0x2680,
+ SMSG_SERVER_TIME_OFFSET = 0x270F,
SMSG_SETUP_CURRENCY = 0x2573,
SMSG_SETUP_RESEARCH_HISTORY = 0x2586,
- SMSG_SET_AI_ANIM_KIT = 0x2729,
- SMSG_SET_ALL_TASK_PROGRESS = 0x2785,
- SMSG_SET_ANIM_TIER = 0x272D,
- SMSG_SET_CHR_UPGRADE_TIER = 0x25DD,
+ SMSG_SET_AI_ANIM_KIT = 0x272A,
+ SMSG_SET_ALL_TASK_PROGRESS = 0x2786,
+ SMSG_SET_ANIM_TIER = 0x272E,
+ SMSG_SET_CHR_UPGRADE_TIER = 0x25DE,
SMSG_SET_CURRENCY = 0x2574,
SMSG_SET_DF_FAST_LAUNCH_RESULT = 0x2A2E,
- SMSG_SET_DUNGEON_DIFFICULTY = 0x26A1,
- SMSG_SET_FACTION_AT_WAR = 0x26FA,
- SMSG_SET_FACTION_NOT_VISIBLE = 0x2724,
- SMSG_SET_FACTION_STANDING = 0x2725,
- SMSG_SET_FACTION_VISIBLE = 0x2723,
+ SMSG_SET_DUNGEON_DIFFICULTY = 0x26A2,
+ SMSG_SET_FACTION_AT_WAR = 0x26FB,
+ SMSG_SET_FACTION_NOT_VISIBLE = 0x2725,
+ SMSG_SET_FACTION_STANDING = 0x2726,
+ SMSG_SET_FACTION_VISIBLE = 0x2724,
SMSG_SET_FLAT_SPELL_MODIFIER = 0x2C39,
- SMSG_SET_FORCED_REACTIONS = 0x2717,
+ SMSG_SET_FORCED_REACTIONS = 0x2718,
SMSG_SET_ITEM_PURCHASE_DATA = 0x259F,
- SMSG_SET_LOOT_METHOD_FAILED = 0x27CA,
+ SMSG_SET_LOOT_METHOD_FAILED = 0x27CB,
SMSG_SET_MAX_WEEKLY_QUANTITY = 0x25A2,
- SMSG_SET_MELEE_ANIM_KIT = 0x272C,
- SMSG_SET_MOVEMENT_ANIM_KIT = 0x272B,
+ SMSG_SET_MELEE_ANIM_KIT = 0x272D,
+ SMSG_SET_MOVEMENT_ANIM_KIT = 0x272C,
SMSG_SET_PCT_SPELL_MODIFIER = 0x2C3A,
- SMSG_SET_PET_SPECIALIZATION = 0x2622,
+ SMSG_SET_PET_SPECIALIZATION = 0x2623,
SMSG_SET_PLAYER_DECLINED_NAMES_RESULT = 0x3003,
- SMSG_SET_PLAY_HOVER_ANIM = 0x25B9,
- SMSG_SET_PROFICIENCY = 0x272E,
- SMSG_SET_QUEST_REPLAY_COOLDOWN_OVERRIDE = 0x285A,
+ SMSG_SET_PLAY_HOVER_ANIM = 0x25BA,
+ SMSG_SET_PROFICIENCY = 0x272F,
+ SMSG_SET_QUEST_REPLAY_COOLDOWN_OVERRIDE = 0x285B,
SMSG_SET_SHIPMENT_READY_RESPONSE = 0x2998,
SMSG_SET_SPELL_CHARGES = 0x2C29,
- SMSG_SET_TASK_COMPLETE = 0x2786,
- SMSG_SET_TIME_ZONE_INFORMATION = 0x2674,
- SMSG_SET_VEHICLE_REC_ID = 0x26F1,
- SMSG_SHADOWLANDS_CAPACITANCE_UPDATE = 0x2882,
+ SMSG_SET_TASK_COMPLETE = 0x2787,
+ SMSG_SET_TIME_ZONE_INFORMATION = 0x2675,
+ SMSG_SET_VEHICLE_REC_ID = 0x26F2,
+ SMSG_SHADOWLANDS_CAPACITANCE_UPDATE = 0x288A,
SMSG_SHIPMENT_FACTION_UPDATE_RESULT = 0x2999,
- SMSG_SHOW_NEUTRAL_PLAYER_FACTION_SELECT_UI = 0x25D9,
+ SMSG_SHOW_NEUTRAL_PLAYER_FACTION_SELECT_UI = 0x25DA,
SMSG_SHOW_QUEST_COMPLETION_TEXT = 0x2A95,
- SMSG_SHOW_TAXI_NODES = 0x26C8,
- SMSG_SHOW_TRADE_SKILL_RESPONSE = 0x2769,
- SMSG_SOCIAL_CONTRACT_REQUEST_RESPONSE = 0x288B,
- SMSG_SOCKET_GEMS_FAILURE = 0x2721,
- SMSG_SOCKET_GEMS_SUCCESS = 0x2720,
- SMSG_SPECIAL_MOUNT_ANIM = 0x269C,
- SMSG_SPEC_INVOLUNTARILY_CHANGED = 0x2712,
+ SMSG_SHOW_TAXI_NODES = 0x26C9,
+ SMSG_SHOW_TRADE_SKILL_RESPONSE = 0x276A,
+ SMSG_SOCIAL_CONTRACT_REQUEST_RESPONSE = 0x2893,
+ SMSG_SOCKET_GEMS_FAILURE = 0x2722,
+ SMSG_SOCKET_GEMS_SUCCESS = 0x2721,
+ SMSG_SPECIAL_MOUNT_ANIM = 0x269D,
+ SMSG_SPEC_INVOLUNTARILY_CHANGED = 0x2713,
SMSG_SPELL_ABSORB_LOG = 0x2C1F,
SMSG_SPELL_CATEGORY_COOLDOWN = 0x2C17,
SMSG_SPELL_CHANNEL_START = 0x2C34,
@@ -1928,97 +1944,97 @@ enum OpcodeServer : uint16
SMSG_SPELL_PERIODIC_AURA_LOG = 0x2C1B,
SMSG_SPELL_PREPARE = 0x2C3B,
SMSG_SPELL_START = 0x2C3D,
- SMSG_SPELL_VISUAL_LOAD_SCREEN = 0x25CB,
- SMSG_SPLASH_SCREEN_SHOW_LATEST = 0x286C,
- SMSG_STAND_STATE_UPDATE = 0x2716,
- SMSG_STARTER_BUILD_ACTIVATE_FAILED = 0x25D1,
- SMSG_START_ELAPSED_TIMER = 0x2603,
- SMSG_START_ELAPSED_TIMERS = 0x2605,
- SMSG_START_LIGHTNING_STORM = 0x26A4,
- SMSG_START_LOOT_ROLL = 0x261A,
- SMSG_START_MIRROR_TIMER = 0x2709,
+ SMSG_SPELL_VISUAL_LOAD_SCREEN = 0x25CC,
+ SMSG_SPLASH_SCREEN_SHOW_LATEST = 0x286D,
+ SMSG_STAND_STATE_UPDATE = 0x2717,
+ SMSG_STARTER_BUILD_ACTIVATE_FAILED = 0x25D2,
+ SMSG_START_ELAPSED_TIMER = 0x2604,
+ SMSG_START_ELAPSED_TIMERS = 0x2606,
+ SMSG_START_LIGHTNING_STORM = 0x26A5,
+ SMSG_START_LOOT_ROLL = 0x261B,
+ SMSG_START_MIRROR_TIMER = 0x270A,
SMSG_START_TIMER = 0x25A6,
- SMSG_STOP_ELAPSED_TIMER = 0x2604,
- SMSG_STOP_MIRROR_TIMER = 0x270B,
- SMSG_STOP_SPEAKERBOT_SOUND = 0x2765,
+ SMSG_STOP_ELAPSED_TIMER = 0x2605,
+ SMSG_STOP_MIRROR_TIMER = 0x270C,
+ SMSG_STOP_SPEAKERBOT_SOUND = 0x2766,
SMSG_STOP_TIMER = 0x25A7,
SMSG_STREAMING_MOVIES = 0x25A5,
- SMSG_SUGGEST_INVITE_INFORM = 0x278D,
- SMSG_SUMMON_CANCEL = 0x26AD,
+ SMSG_SUGGEST_INVITE_INFORM = 0x278E,
+ SMSG_SUMMON_CANCEL = 0x26AE,
SMSG_SUMMON_RAID_MEMBER_VALIDATE_FAILED = 0x258F,
- SMSG_SUMMON_REQUEST = 0x271B,
+ SMSG_SUMMON_REQUEST = 0x271C,
SMSG_SUPERCEDED_SPELLS = 0x2C4F,
SMSG_SUSPEND_COMMS = 0x304A,
SMSG_SUSPEND_TOKEN = 0x25A9,
- SMSG_SYNC_WOW_ENTITLEMENTS = 0x2864,
- SMSG_TALENTS_INVOLUNTARILY_RESET = 0x2711,
- SMSG_TAXI_NODE_STATUS = 0x2679,
- SMSG_TEXT_EMOTE = 0x2677,
- SMSG_THREAT_CLEAR = 0x26D7,
- SMSG_THREAT_REMOVE = 0x26D6,
- SMSG_THREAT_UPDATE = 0x26D5,
+ SMSG_SYNC_WOW_ENTITLEMENTS = 0x2865,
+ SMSG_TALENTS_INVOLUNTARILY_RESET = 0x2712,
+ SMSG_TAXI_NODE_STATUS = 0x267A,
+ SMSG_TEXT_EMOTE = 0x2678,
+ SMSG_THREAT_CLEAR = 0x26D8,
+ SMSG_THREAT_REMOVE = 0x26D7,
+ SMSG_THREAT_UPDATE = 0x26D6,
SMSG_TIME_ADJUSTMENT = 0x2DD3,
SMSG_TIME_SYNC_REQUEST = 0x2DD2,
- SMSG_TITLE_EARNED = 0x26D2,
- SMSG_TITLE_LOST = 0x26D3,
- SMSG_TOTEM_CREATED = 0x26C3,
- SMSG_TOTEM_DURATION_CHANGED = 0x26C4,
- SMSG_TOTEM_MOVED = 0x26C5,
+ SMSG_TITLE_EARNED = 0x26D3,
+ SMSG_TITLE_LOST = 0x26D4,
+ SMSG_TOTEM_CREATED = 0x26C4,
+ SMSG_TOTEM_DURATION_CHANGED = 0x26C5,
+ SMSG_TOTEM_MOVED = 0x26C6,
SMSG_TRADE_STATUS = 0x2582,
SMSG_TRADE_UPDATED = 0x2581,
- SMSG_TRAINER_BUY_FAILED = 0x26DA,
- SMSG_TRAINER_LIST = 0x26D9,
- SMSG_TRAIT_CONFIG_COMMIT_FAILED = 0x25D0,
- SMSG_TRANSFER_ABORTED = 0x26FD,
- SMSG_TRANSFER_PENDING = 0x25CC,
+ SMSG_TRAINER_BUY_FAILED = 0x26DB,
+ SMSG_TRAINER_LIST = 0x26DA,
+ SMSG_TRAIT_CONFIG_COMMIT_FAILED = 0x25D1,
+ SMSG_TRANSFER_ABORTED = 0x26FE,
+ SMSG_TRANSFER_PENDING = 0x25CD,
SMSG_TREASURE_PICKER_RESPONSE = 0x291F,
- SMSG_TRIGGER_CINEMATIC = 0x27C2,
- SMSG_TRIGGER_MOVIE = 0x26C6,
- SMSG_TURN_IN_PETITION_RESULT = 0x2747,
- SMSG_TUTORIAL_FLAGS = 0x27B5,
+ SMSG_TRIGGER_CINEMATIC = 0x27C3,
+ SMSG_TRIGGER_MOVIE = 0x26C7,
+ SMSG_TURN_IN_PETITION_RESULT = 0x2748,
+ SMSG_TUTORIAL_FLAGS = 0x27B6,
SMSG_TWITTER_STATUS = 0x3043,
- SMSG_UI_HEALING_RANGE_MODIFIED = 0x273D,
+ SMSG_UI_HEALING_RANGE_MODIFIED = 0x273E,
SMSG_UI_MAP_QUEST_LINES_RESPONSE = 0x2AA2,
- SMSG_UNDELETE_CHARACTER_RESPONSE = 0x27C5,
- SMSG_UNDELETE_COOLDOWN_STATUS_RESPONSE = 0x27C6,
+ SMSG_UNDELETE_CHARACTER_RESPONSE = 0x27C6,
+ SMSG_UNDELETE_COOLDOWN_STATUS_RESPONSE = 0x27C7,
SMSG_UNLEARNED_SPELLS = 0x2C51,
SMSG_UNLOAD_CHILD_MAP = 0x257A,
- SMSG_UPDATE_AADC_STATUS_RESPONSE = 0x287E,
- SMSG_UPDATE_ACCOUNT_DATA = 0x2703,
- SMSG_UPDATE_ACTION_BUTTONS = 0x25DE,
- SMSG_UPDATE_BNET_SESSION_KEY = 0x281D,
+ SMSG_UPDATE_AADC_STATUS_RESPONSE = 0x287F,
+ SMSG_UPDATE_ACCOUNT_DATA = 0x2704,
+ SMSG_UPDATE_ACTION_BUTTONS = 0x25DF,
+ SMSG_UPDATE_BNET_SESSION_KEY = 0x281E,
SMSG_UPDATE_CAPTURE_POINT = 0x2929,
- SMSG_UPDATE_CELESTIAL_BODY = 0x2819,
- SMSG_UPDATE_CHARACTER_FLAGS = 0x27BB,
- SMSG_UPDATE_CHARGE_CATEGORY_COOLDOWN = 0x275F,
- SMSG_UPDATE_COOLDOWN = 0x275E,
+ SMSG_UPDATE_CELESTIAL_BODY = 0x281A,
+ SMSG_UPDATE_CHARACTER_FLAGS = 0x27BC,
+ SMSG_UPDATE_CHARGE_CATEGORY_COOLDOWN = 0x2760,
+ SMSG_UPDATE_COOLDOWN = 0x275F,
SMSG_UPDATE_CRAFTING_NPC_RECIPES = 0x2996,
SMSG_UPDATE_DAILY_MISSION_COUNTER = 0x297F,
- SMSG_UPDATE_EXPANSION_LEVEL = 0x2643,
- SMSG_UPDATE_GAME_TIME_STATE = 0x2820,
- SMSG_UPDATE_INSTANCE_OWNERSHIP = 0x26A6,
- SMSG_UPDATE_LAST_INSTANCE = 0x2685,
- SMSG_UPDATE_OBJECT = 0x27C3,
- SMSG_UPDATE_PRIMARY_SPEC = 0x25D6,
- SMSG_UPDATE_RECENT_PLAYER_GUIDS = 0x25F4,
- SMSG_UPDATE_TALENT_DATA = 0x25D5,
- SMSG_UPDATE_TASK_PROGRESS = 0x2784,
+ SMSG_UPDATE_EXPANSION_LEVEL = 0x2644,
+ SMSG_UPDATE_GAME_TIME_STATE = 0x2821,
+ SMSG_UPDATE_INSTANCE_OWNERSHIP = 0x26A7,
+ SMSG_UPDATE_LAST_INSTANCE = 0x2686,
+ SMSG_UPDATE_OBJECT = 0x27C4,
+ SMSG_UPDATE_PRIMARY_SPEC = 0x25D7,
+ SMSG_UPDATE_RECENT_PLAYER_GUIDS = 0x25F5,
+ SMSG_UPDATE_TALENT_DATA = 0x25D6,
+ SMSG_UPDATE_TASK_PROGRESS = 0x2785,
SMSG_UPDATE_WEEKLY_SPELL_USAGE = 0x2C19,
- SMSG_UPDATE_WORLD_STATE = 0x2741,
+ SMSG_UPDATE_WORLD_STATE = 0x2742,
SMSG_USERLIST_ADD = 0x2BB9,
SMSG_USERLIST_REMOVE = 0x2BBA,
SMSG_USERLIST_UPDATE = 0x2BBB,
- SMSG_USE_EQUIPMENT_SET_RESULT = 0x2748,
- SMSG_VAS_CHECK_TRANSFER_OK_RESPONSE = 0x2814,
- SMSG_VAS_GET_QUEUE_MINUTES_RESPONSE = 0x2812,
- SMSG_VAS_GET_SERVICE_STATUS_RESPONSE = 0x2811,
- SMSG_VAS_PURCHASE_COMPLETE = 0x27EC,
- SMSG_VAS_PURCHASE_STATE_UPDATE = 0x27EB,
- SMSG_VENDOR_INVENTORY = 0x25B7,
+ SMSG_USE_EQUIPMENT_SET_RESULT = 0x2749,
+ SMSG_VAS_CHECK_TRANSFER_OK_RESPONSE = 0x2815,
+ SMSG_VAS_GET_QUEUE_MINUTES_RESPONSE = 0x2813,
+ SMSG_VAS_GET_SERVICE_STATUS_RESPONSE = 0x2812,
+ SMSG_VAS_PURCHASE_COMPLETE = 0x27ED,
+ SMSG_VAS_PURCHASE_STATE_UPDATE = 0x27EC,
+ SMSG_VENDOR_INVENTORY = 0x25B8,
SMSG_VIGNETTE_UPDATE = 0x3008,
- SMSG_VOICE_CHANNEL_INFO_RESPONSE = 0x2818,
- SMSG_VOICE_CHANNEL_STT_TOKEN_RESPONSE = 0x2878,
- SMSG_VOICE_LOGIN_RESPONSE = 0x2817,
+ SMSG_VOICE_CHANNEL_INFO_RESPONSE = 0x2819,
+ SMSG_VOICE_CHANNEL_STT_TOKEN_RESPONSE = 0x2879,
+ SMSG_VOICE_LOGIN_RESPONSE = 0x2818,
SMSG_VOID_ITEM_SWAP_RESPONSE = 0x2DA4,
SMSG_VOID_STORAGE_CONTENTS = 0x2DA1,
SMSG_VOID_STORAGE_FAILED = 0x2DA0,
@@ -2027,28 +2043,28 @@ enum OpcodeServer : uint16
SMSG_WAIT_QUEUE_FINISH = 0x256F,
SMSG_WAIT_QUEUE_UPDATE = 0x256E,
SMSG_WARDEN3_DATA = 0x2577,
- SMSG_WARDEN3_DISABLED = 0x281B,
- SMSG_WARDEN3_ENABLED = 0x281A,
- SMSG_WARFRONT_COMPLETE = 0x2757,
+ SMSG_WARDEN3_DISABLED = 0x281C,
+ SMSG_WARDEN3_ENABLED = 0x281B,
+ SMSG_WARFRONT_COMPLETE = 0x2758,
SMSG_WARGAME_REQUEST_SUCCESSFULLY_SENT_TO_OPPONENT = 0x2933,
- SMSG_WEATHER = 0x26A3,
- SMSG_WEEKLY_REWARDS_PROGRESS_RESULT = 0x286F,
- SMSG_WEEKLY_REWARDS_RESULT = 0x286D,
- SMSG_WEEKLY_REWARD_CLAIM_RESULT = 0x286E,
+ SMSG_WEATHER = 0x26A4,
+ SMSG_WEEKLY_REWARDS_PROGRESS_RESULT = 0x2870,
+ SMSG_WEEKLY_REWARDS_RESULT = 0x286E,
+ SMSG_WEEKLY_REWARD_CLAIM_RESULT = 0x286F,
SMSG_WEEKLY_SPELL_USAGE = 0x2C18,
SMSG_WHO = 0x2BAE,
- SMSG_WHO_IS = 0x26A2,
- SMSG_WILL_BE_KICKED_FOR_ADDED_SUBSCRIPTION_TIME = 0x281F,
+ SMSG_WHO_IS = 0x26A3,
+ SMSG_WILL_BE_KICKED_FOR_ADDED_SUBSCRIPTION_TIME = 0x2820,
SMSG_WORLD_QUEST_UPDATE_RESPONSE = 0x300F,
SMSG_WORLD_SERVER_INFO = 0x25AE,
- SMSG_WOW_ENTITLEMENT_NOTIFICATION = 0x2865,
- SMSG_XP_AWARDED_FROM_CURRENCY = 0x28A0,
- SMSG_XP_GAIN_ABORTED = 0x25C8,
- SMSG_XP_GAIN_ENABLED = 0x27A5,
+ SMSG_WOW_ENTITLEMENT_NOTIFICATION = 0x2866,
+ SMSG_XP_AWARDED_FROM_CURRENCY = 0x28A8,
+ SMSG_XP_GAIN_ABORTED = 0x25C9,
+ SMSG_XP_GAIN_ENABLED = 0x27A6,
SMSG_ZONE_UNDER_ATTACK = 0x2BB5,
// Opcodes that are not generated automatically
- SMSG_ACCOUNT_HEIRLOOM_UPDATE = 0x25B1, // no client handler
+ SMSG_ACCOUNT_HEIRLOOM_UPDATE = 0x25B2, // no client handler
SMSG_COMPRESSED_PACKET = 0x3052,
SMSG_MULTIPLE_PACKETS = 0x3051,
diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h
index 00e83ca63af..2d154099d77 100644
--- a/src/server/game/Server/WorldSession.h
+++ b/src/server/game/Server/WorldSession.h
@@ -640,6 +640,7 @@ namespace WorldPackets
class QuestConfirmAccept;
class QuestGiverStatusQuery;
class QuestGiverStatusMultipleQuery;
+ class QuestGiverStatusTrackedQuery;
class QuestGiverHello;
class QueryQuestInfo;
class QuestGiverChooseReward;
@@ -1516,6 +1517,7 @@ class TC_GAME_API WorldSession
void HandleQuestgiverStatusQueryOpcode(WorldPackets::Quest::QuestGiverStatusQuery& packet);
void HandleQuestgiverStatusMultipleQuery(WorldPackets::Quest::QuestGiverStatusMultipleQuery& packet);
+ void HandleQuestgiverStatusTrackedQueryOpcode(WorldPackets::Quest::QuestGiverStatusTrackedQuery& questGiverStatusTrackedQuery);
void HandleQuestgiverHelloOpcode(WorldPackets::Quest::QuestGiverHello& packet);
void HandleQuestgiverAcceptQuestOpcode(WorldPackets::Quest::QuestGiverAcceptQuest& packet);
void HandleQuestgiverQueryQuestOpcode(WorldPackets::Quest::QuestGiverQueryQuest& packet);
diff --git a/src/server/game/Tools/PlayerDump.cpp b/src/server/game/Tools/PlayerDump.cpp
index 6615e4d202b..0eabe462431 100644
--- a/src/server/game/Tools/PlayerDump.cpp
+++ b/src/server/game/Tools/PlayerDump.cpp
@@ -905,8 +905,8 @@ DumpReturn PlayerDumpReader::LoadDump(std::istream& input, uint32 account, std::
std::map<ObjectGuid::LowType, ObjectGuid::LowType> items;
ObjectGuid::LowType itemLowGuidOffset = sObjectMgr->GetGenerator<HighGuid::Item>().GetNextAfterMaxUsed();
- std::map<uint32, uint32> mails;
- uint32 mailLowGuidOffset = sObjectMgr->_mailId;
+ std::map<uint64, uint64> mails;
+ uint64 mailLowGuidOffset = sObjectMgr->_mailId;
std::map<uint32, uint32> petIds;
uint32 petLowGuidOffset = sObjectMgr->_hiPetNumber;