From b0a596908d5c1b5b09f90e97b17a7fc785e5366f Mon Sep 17 00:00:00 2001 From: Shauren Date: Thu, 29 Jan 2026 00:22:24 +0100 Subject: [PATCH] Core: Updated to 12.0.0 --- sql/base/auth_database.sql | 19 +- sql/base/characters_database.sql | 4 +- .../auth/master/2026_01_28_00_auth.sql | 23 + .../master/2026_01_28_00_characters.sql | 1 + .../master/2026_01_28_00_hotfixes.sql | 171 + .../world/master/2026_01_28_00_world.sql | 14 + .../Implementation/CharacterDatabase.cpp | 4 +- .../Implementation/HotfixDatabase.cpp | 72 +- .../Database/Implementation/HotfixDatabase.h | 12 +- src/server/game/AI/CoreAI/UnitAI.h | 2 +- src/server/game/AI/CreatureAIImpl.h | 2 +- .../game/Achievements/CriteriaHandler.cpp | 4 +- src/server/game/Conditions/ConditionMgr.cpp | 2 +- src/server/game/DataStores/DB2LoadInfo.h | 228 +- src/server/game/DataStores/DB2Metadata.h | 1876 +++++-- src/server/game/DataStores/DB2Stores.cpp | 17 +- src/server/game/DataStores/DB2Stores.h | 2 +- src/server/game/DataStores/DB2Structure.h | 148 +- src/server/game/DataStores/DBCEnums.h | 32 +- src/server/game/DungeonFinding/LFGMgr.h | 2 +- .../game/Entities/GameObject/GameObject.cpp | 8 +- .../game/Entities/GameObject/GameObjectData.h | 91 +- src/server/game/Entities/Item/Item.cpp | 38 +- src/server/game/Entities/Item/Item.h | 2 + src/server/game/Entities/Item/ItemTemplate.h | 1 + .../game/Entities/Object/BaseEntity.cpp | 2 + .../game/Entities/Object/MovementInfo.h | 6 +- src/server/game/Entities/Object/Object.cpp | 23 +- .../game/Entities/Object/ObjectGuid.cpp | 54 +- src/server/game/Entities/Object/ObjectGuid.h | 4 +- .../Entities/Object/Updates/UpdateFields.cpp | 1579 ++++-- .../Entities/Object/Updates/UpdateFields.h | 777 ++- .../Object/Updates/ViewerDependentValues.h | 2 +- .../Object/Updates/WowCSEntityDefinitions.h | 12 +- src/server/game/Entities/Player/Player.cpp | 11 +- src/server/game/Entities/Player/Player.h | 2 +- src/server/game/Entities/Unit/Unit.cpp | 10 +- src/server/game/Entities/Unit/Unit.h | 6 +- src/server/game/Entities/Unit/UnitDefines.h | 2 +- .../Entities/Unit/enuminfo_UnitDefines.cpp | 6 +- src/server/game/Events/GameEventMgr.cpp | 2 +- .../game/Globals/AreaTriggerDataStore.h | 2 +- src/server/game/Globals/ObjectMgr.cpp | 52 +- src/server/game/Handlers/GroupHandler.cpp | 22 +- src/server/game/Handlers/PetHandler.cpp | 3 +- src/server/game/Handlers/ToyHandler.cpp | 3 +- src/server/game/Instances/InstanceLockMgr.h | 2 +- src/server/game/Instances/InstanceScript.h | 2 +- src/server/game/Maps/Map.h | 2 +- src/server/game/Maps/MapManager.h | 2 +- src/server/game/Miscellaneous/SharedDefines.h | 75 +- src/server/game/Quests/QuestDef.cpp | 30 +- src/server/game/Quests/QuestDef.h | 6 +- src/server/game/Scenarios/ScenarioMgr.cpp | 6 +- src/server/game/Scenarios/ScenarioMgr.h | 3 +- src/server/game/Scripting/ScriptMgr.h | 2 +- .../game/Server/Packets/CalendarPackets.cpp | 10 +- .../game/Server/Packets/CalendarPackets.h | 8 +- .../game/Server/Packets/CharacterPackets.cpp | 37 +- .../game/Server/Packets/CharacterPackets.h | 28 +- .../game/Server/Packets/ChatPackets.cpp | 4 + src/server/game/Server/Packets/ChatPackets.h | 1 + .../Server/Packets/CraftingPacketsCommon.cpp | 48 +- .../Server/Packets/CraftingPacketsCommon.h | 20 +- .../game/Server/Packets/InstancePackets.cpp | 8 +- .../game/Server/Packets/InstancePackets.h | 6 +- .../game/Server/Packets/MiscPackets.cpp | 14 +- src/server/game/Server/Packets/MiscPackets.h | 18 +- .../game/Server/Packets/MovementPackets.cpp | 112 +- .../game/Server/Packets/MovementPackets.h | 18 +- .../game/Server/Packets/PartyPackets.cpp | 19 +- src/server/game/Server/Packets/PartyPackets.h | 16 +- .../game/Server/Packets/QuestPackets.cpp | 13 +- src/server/game/Server/Packets/QuestPackets.h | 24 +- .../game/Server/Packets/SpellPackets.cpp | 34 +- src/server/game/Server/Packets/SpellPackets.h | 33 +- .../game/Server/Packets/SystemPackets.cpp | 49 +- .../game/Server/Packets/SystemPackets.h | 24 +- src/server/game/Server/Protocol/Opcodes.cpp | 2802 +++++----- src/server/game/Server/Protocol/Opcodes.h | 4697 +++++++++-------- .../game/Spells/Auras/SpellAuraDefines.h | 10 + .../game/Spells/Auras/SpellAuraEffects.cpp | 10 + src/server/game/Spells/Spell.cpp | 3 + src/server/game/Spells/Spell.h | 2 +- src/server/game/Spells/SpellDefines.h | 19 +- src/server/game/Spells/SpellEffects.cpp | 2 + src/server/game/Spells/SpellInfo.cpp | 9 +- src/server/game/Spells/SpellInfo.h | 3 +- src/server/game/Spells/SpellMgr.cpp | 139 +- src/server/game/Spells/SpellScript.h | 2 +- .../extractor_common/ExtractorDB2LoadInfo.h | 33 +- .../map_extractor/loadlib/DBFilesClientList.h | 50 +- 92 files changed, 8312 insertions(+), 5498 deletions(-) create mode 100644 sql/updates/auth/master/2026_01_28_00_auth.sql create mode 100644 sql/updates/characters/master/2026_01_28_00_characters.sql create mode 100644 sql/updates/hotfixes/master/2026_01_28_00_hotfixes.sql create mode 100644 sql/updates/world/master/2026_01_28_00_world.sql diff --git a/sql/base/auth_database.sql b/sql/base/auth_database.sql index 242a97b654..cddf543528 100644 --- a/sql/base/auth_database.sql +++ b/sql/base/auth_database.sql @@ -1376,7 +1376,14 @@ INSERT INTO `build_auth_key` VALUES (65299,'Mac','x64','WoWC',0xAB4CD08C656FFE091ADFD470BCE0D5F9), (65299,'Win','A64','WoW',0xD0802EFF536A2E14117DBFE0A555EA47), (65299,'Win','x64','WoW',0x11922598FBB8B92F694511DDAE4B065E), -(65299,'Win','x64','WoWC',0xB608B58A94A4BB567281137B2ED80465); +(65299,'Win','x64','WoWC',0xB608B58A94A4BB567281137B2ED80465), +(65560,'Mac','A64','WoW',0x764AEDCD3D0598B4B0E4800952F35B21), +(65560,'Mac','A64','WoWC',0x6C5142AD00EF0409698E7F15CEC59432), +(65560,'Mac','x64','WoW',0x8277339BE0CE9EF84EF69A88A9986D50), +(65560,'Mac','x64','WoWC',0x066F8A98D49D6795583A2152C36A7B9B), +(65560,'Win','A64','WoW',0xD46670909EAA1861344E421111A4D8AE), +(65560,'Win','x64','WoW',0xAA9B762F17CBDDF63B367E8A4047E301), +(65560,'Win','x64','WoWC',0x438E7EE1E17B986E55B828609FD1773D); /*!40000 ALTER TABLE `build_auth_key` ENABLE KEYS */; UNLOCK TABLES; @@ -1796,7 +1803,8 @@ INSERT INTO `build_info` VALUES (64502,11,2,5,NULL), (64877,11,2,7,NULL), (64978,11,2,7,NULL), -(65299,11,2,7,NULL); +(65299,11,2,7,NULL), +(65560,12,0,0,NULL); /*!40000 ALTER TABLE `build_info` ENABLE KEYS */; UNLOCK TABLES; @@ -3409,7 +3417,7 @@ CREATE TABLE `realmlist` ( `timezone` tinyint unsigned NOT NULL DEFAULT '0', `allowedSecurityLevel` tinyint unsigned NOT NULL DEFAULT '0', `population` float NOT NULL DEFAULT '0', - `gamebuild` int unsigned NOT NULL DEFAULT '65299', + `gamebuild` int unsigned NOT NULL DEFAULT '65560', `Region` tinyint unsigned NOT NULL DEFAULT '1', `Battlegroup` tinyint unsigned NOT NULL DEFAULT '1', PRIMARY KEY (`id`), @@ -3424,7 +3432,7 @@ CREATE TABLE `realmlist` ( LOCK TABLES `realmlist` WRITE; /*!40000 ALTER TABLE `realmlist` DISABLE KEYS */; INSERT INTO `realmlist` VALUES -(1,'Trinity','127.0.0.1','127.0.0.1',NULL,NULL,'255.255.255.0',8085,0,0,1,0,0,65299,1,1); +(1,'Trinity','127.0.0.1','127.0.0.1',NULL,NULL,'255.255.255.0',8085,0,0,1,0,0,65560,1,1); /*!40000 ALTER TABLE `realmlist` ENABLE KEYS */; UNLOCK TABLES; @@ -3958,7 +3966,8 @@ INSERT INTO `updates` VALUES ('2025_12_15_00_auth.sql','CA8ADF39030282B3D2627C15E751CC1D81618BAE','ARCHIVED','2025-12-15 15:39:58',0), ('2025_12_19_00_auth.sql','4011518915C83A60C50009949D687080019FA999','ARCHIVED','2025-12-19 00:48:17',0), ('2026_01_10_00_auth.sql','486B3340298309456E4BFB15F5D77EAB6609443E','ARCHIVED','2026-01-10 11:17:32',0), -('2026_01_14_00_auth.sql','B1623A33EB59B52AEE841F88B075213AE88A6158','ARCHIVED','2026-01-14 23:40:33',0); +('2026_01_14_00_auth.sql','B1623A33EB59B52AEE841F88B075213AE88A6158','ARCHIVED','2026-01-14 23:40:33',0), +('2026_01_28_00_auth.sql','7FB39DD503AC38CA0600D014377DE34F6B99A6E7','RELEASED','2026-01-29 00:02:11',0); /*!40000 ALTER TABLE `updates` ENABLE KEYS */; UNLOCK TABLES; diff --git a/sql/base/characters_database.sql b/sql/base/characters_database.sql index ea6153fe10..6fc1bb59aa 100644 --- a/sql/base/characters_database.sql +++ b/sql/base/characters_database.sql @@ -1777,6 +1777,7 @@ CREATE TABLE `character_stats` ( `agility` int unsigned NOT NULL DEFAULT '0', `stamina` int unsigned NOT NULL DEFAULT '0', `intellect` int unsigned NOT NULL DEFAULT '0', + `spirit` int unsigned NOT NULL DEFAULT '0', `armor` int unsigned NOT NULL DEFAULT '0', `resHoly` int unsigned NOT NULL DEFAULT '0', `resFire` int unsigned NOT NULL DEFAULT '0', @@ -3829,7 +3830,8 @@ INSERT INTO `updates` VALUES ('2025_10_10_00_characters.sql','F1EF875805AF1E87A413387F5449FE37D5205E94','ARCHIVED','2025-10-09 23:58:44',0), ('2025_10_29_00_characters.sql','DC6A5D66E866352AC243869B627D282EE6A8B4F2','ARCHIVED','2025-10-29 06:57:00',0), ('2025_11_25_00_characters.sql','A0C04B2404B1832421402F78436DDC4AA18EBAD8','ARCHIVED','2025-11-25 22:28:32',0), -('2026_01_14_00_characters.sql','FF5D889A41BBD9F9827489DEC08BCA9DB457933E','ARCHIVED','2026-01-14 23:40:33',0); +('2026_01_14_00_characters.sql','FF5D889A41BBD9F9827489DEC08BCA9DB457933E','ARCHIVED','2026-01-14 23:40:33',0), +('2026_01_28_00_characters.sql','4BC854318CA2992BC894899A5BE5F4EC891FDF76','RELEASED','2026-01-25 21:53:51',0); /*!40000 ALTER TABLE `updates` ENABLE KEYS */; UNLOCK TABLES; diff --git a/sql/updates/auth/master/2026_01_28_00_auth.sql b/sql/updates/auth/master/2026_01_28_00_auth.sql new file mode 100644 index 0000000000..57332ddfec --- /dev/null +++ b/sql/updates/auth/master/2026_01_28_00_auth.sql @@ -0,0 +1,23 @@ +DELETE FROM `build_info` WHERE `build` IN (65560); +INSERT INTO `build_info` (`build`,`majorVersion`,`minorVersion`,`bugfixVersion`,`hotfixVersion`) VALUES +(65560,12,0,0,NULL); + +DELETE FROM `build_auth_key` WHERE `build`=65560 AND `platform`='Mac' AND `arch`='A64' AND `type`='WoW'; +DELETE FROM `build_auth_key` WHERE `build`=65560 AND `platform`='Mac' AND `arch`='A64' AND `type`='WoWC'; +DELETE FROM `build_auth_key` WHERE `build`=65560 AND `platform`='Mac' AND `arch`='x64' AND `type`='WoW'; +DELETE FROM `build_auth_key` WHERE `build`=65560 AND `platform`='Mac' AND `arch`='x64' AND `type`='WoWC'; +DELETE FROM `build_auth_key` WHERE `build`=65560 AND `platform`='Win' AND `arch`='A64' AND `type`='WoW'; +DELETE FROM `build_auth_key` WHERE `build`=65560 AND `platform`='Win' AND `arch`='x64' AND `type`='WoW'; +DELETE FROM `build_auth_key` WHERE `build`=65560 AND `platform`='Win' AND `arch`='x64' AND `type`='WoWC'; +INSERT INTO `build_auth_key` (`build`,`platform`,`arch`,`type`,`key`) VALUES +(65560,'Mac','A64','WoW',0x764AEDCD3D0598B4B0E4800952F35B21), +(65560,'Mac','A64','WoWC',0x6C5142AD00EF0409698E7F15CEC59432), +(65560,'Mac','x64','WoW',0x8277339BE0CE9EF84EF69A88A9986D50), +(65560,'Mac','x64','WoWC',0x066F8A98D49D6795583A2152C36A7B9B), +(65560,'Win','A64','WoW',0xD46670909EAA1861344E421111A4D8AE), +(65560,'Win','x64','WoW',0xAA9B762F17CBDDF63B367E8A4047E301), +(65560,'Win','x64','WoWC',0x438E7EE1E17B986E55B828609FD1773D); + +UPDATE `realmlist` SET `gamebuild`=65560 WHERE `gamebuild`=65299; + +ALTER TABLE `realmlist` CHANGE `gamebuild` `gamebuild` int unsigned NOT NULL DEFAULT '65560'; diff --git a/sql/updates/characters/master/2026_01_28_00_characters.sql b/sql/updates/characters/master/2026_01_28_00_characters.sql new file mode 100644 index 0000000000..bbf1dd91f6 --- /dev/null +++ b/sql/updates/characters/master/2026_01_28_00_characters.sql @@ -0,0 +1 @@ +ALTER TABLE `character_stats` ADD `spirit` int unsigned NOT NULL DEFAULT '0' AFTER `intellect`; diff --git a/sql/updates/hotfixes/master/2026_01_28_00_hotfixes.sql b/sql/updates/hotfixes/master/2026_01_28_00_hotfixes.sql new file mode 100644 index 0000000000..2b91a4f9fd --- /dev/null +++ b/sql/updates/hotfixes/master/2026_01_28_00_hotfixes.sql @@ -0,0 +1,171 @@ +ALTER TABLE `area_trigger` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `AreaTriggerActionSetID`; + +ALTER TABLE `artifact` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `ChrSpecializationID`; + +ALTER TABLE `artifact_appearance` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `UiAltItemAppearanceID`; + +ALTER TABLE `artifact_appearance_set` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `ForgeAttachmentOverride`; + +ALTER TABLE `artifact_power` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `Label`; + +ALTER TABLE `battle_pet_ability` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `BattlePetVisualID`; + +ALTER TABLE `battlemaster_list` ADD `InstanceType` tinyint NOT NULL DEFAULT 0 AFTER `LongDescription`; + +ALTER TABLE `cfg_categories` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `ExistingCharsetMask`; + +ALTER TABLE `crafting_quality` ADD `CraftingQualityAtlasSetID` int NOT NULL DEFAULT 0 AFTER `QualityTier`; + +ALTER TABLE `currency_types` + ADD `RecraftReagentCountPercentage` float NOT NULL DEFAULT 0 AFTER `OrderIndex`, + ADD `OrderSource` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `RecraftReagentCountPercentage`, + ADD `MCRCurrencyID` int NOT NULL DEFAULT 0 AFTER `OrderSource`; + +ALTER TABLE `difficulty` + MODIFY `FallbackDifficultyID` smallint NOT NULL DEFAULT 0 AFTER `OldEnumValue`, + MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `MaxPlayers`, + MODIFY `ToggleDifficultyID` smallint NOT NULL DEFAULT 0 AFTER `ItemContext`; + +ALTER TABLE `dungeon_encounter` MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `MapID`; + +ALTER TABLE `garr_plot` + MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `AllianceConstructObjID`, + DROP `UiCategoryID`; + +ALTER TABLE `holidays` + MODIFY `CalendarFilterType` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `Priority`, + MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `CalendarFilterType`; + +ALTER TABLE `item` + ADD `Unknown1200` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `ModifiedCraftingReagentItemID`, + CHANGE `Unknown1127` `ItemSquishEraID` int NOT NULL DEFAULT 0 AFTER `CraftingQualityID`, + ADD `RecraftReagentCountPercentage` float NOT NULL DEFAULT 0 AFTER `ItemSquishEraID`, + ADD `OrderSource` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `RecraftReagentCountPercentage`; + +ALTER TABLE `item_child_equipment` MODIFY `ChildItemEquipSlot` int NOT NULL DEFAULT 0 AFTER `ChildItemID`; + +ALTER TABLE `item_context_picker_entry` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `LabelID`; + +ALTER TABLE `item_effect` MODIFY `TriggerType` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `LegacySlotIndex`; + +ALTER TABLE `item_limit_category` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `Quantity`; + +ALTER TABLE `item_scaling_config` CHANGE `Unknown1125` `ItemSquishEraID` int NOT NULL DEFAULT 0 AFTER `RequiredLevel`; + +ALTER TABLE `item_set` MODIFY `SetFlags` int NOT NULL DEFAULT 0 AFTER `Name`; + +ALTER TABLE `item_sparse` CHANGE `Unknown1127` `ItemSquishEraID` int NOT NULL DEFAULT 0 AFTER `ItemLevelOffsetItemLevel`; + +-- +-- Table structure for table `item_squish_era` +-- +DROP TABLE IF EXISTS `item_squish_era`; +CREATE TABLE `item_squish_era` ( + `ID` int unsigned NOT NULL DEFAULT '0', + `Patch` int NOT NULL DEFAULT '0', + `CurveID` int NOT NULL DEFAULT '0', + `Flags` int NOT NULL DEFAULT '0', + `VerifiedBuild` int NOT NULL DEFAULT '0', + PRIMARY KEY (`ID`,`VerifiedBuild`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +ALTER TABLE `lfg_dungeons` MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `MapID`; + +ALTER TABLE `liquid_type` + ADD `Color3` int NOT NULL DEFAULT 0 AFTER `Color2`, + ADD `Float19` float NOT NULL DEFAULT 0 AFTER `Float18`, + ADD `Float20` float NOT NULL DEFAULT 0 AFTER `Float19`, + ADD `Float21` float NOT NULL DEFAULT 0 AFTER `Float20`, + ADD `Float22` float NOT NULL DEFAULT 0 AFTER `Float21`, + ADD `Float23` float NOT NULL DEFAULT 0 AFTER `Float22`, + ADD `Float24` float NOT NULL DEFAULT 0 AFTER `Float23`, + ADD `Float25` float NOT NULL DEFAULT 0 AFTER `Float24`, + ADD `Float26` float NOT NULL DEFAULT 0 AFTER `Float25`, + ADD `Float27` float NOT NULL DEFAULT 0 AFTER `Float26`, + ADD `Float28` float NOT NULL DEFAULT 0 AFTER `Float27`, + ADD `Float29` float NOT NULL DEFAULT 0 AFTER `Float28`, + ADD `Float30` float NOT NULL DEFAULT 0 AFTER `Float29`, + ADD `Float31` float NOT NULL DEFAULT 0 AFTER `Float30`, + ADD `Float32` float NOT NULL DEFAULT 0 AFTER `Float31`, + ADD `Float33` float NOT NULL DEFAULT 0 AFTER `Float32`, + ADD `Float34` float NOT NULL DEFAULT 0 AFTER `Float33`, + ADD `Float35` float NOT NULL DEFAULT 0 AFTER `Float34`, + ADD `Float36` float NOT NULL DEFAULT 0 AFTER `Float35`, + ADD `Float37` float NOT NULL DEFAULT 0 AFTER `Float36`, + ADD `Float38` float NOT NULL DEFAULT 0 AFTER `Float37`; + +ALTER TABLE `map_difficulty` MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `ID`; + +ALTER TABLE `override_spell_data` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `PlayerActionBarFileDataID`; + +ALTER TABLE `player_condition` MODIFY `PowerTypeValue` tinyint NOT NULL DEFAULT 0 AFTER `PowerTypeComp`; + +ALTER TABLE `scenario` MODIFY `Type` int NOT NULL DEFAULT 0 AFTER `AreaTableID`; + +ALTER TABLE `scenario` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `Type`; + +ALTER TABLE `scenario_step` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `OrderIndex`; + +ALTER TABLE `scene_script_package` ADD `Flags` int NOT NULL DEFAULT 0 AFTER `Name`; + +ALTER TABLE `spell_aura_options` MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `ID`; + +ALTER TABLE `spell_aura_restrictions` + MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `ID`, + MODIFY `CasterAuraType` smallint NOT NULL DEFAULT 0 AFTER `ExcludeTargetAuraSpell`, + MODIFY `TargetAuraType` smallint NOT NULL DEFAULT 0 AFTER `CasterAuraType`, + MODIFY `ExcludeCasterAuraType` smallint NOT NULL DEFAULT 0 AFTER `TargetAuraType`, + MODIFY `ExcludeTargetAuraType` smallint NOT NULL DEFAULT 0 AFTER `ExcludeCasterAuraType`; + +ALTER TABLE `spell_categories` + ADD `DiminishType` int NOT NULL DEFAULT 0 AFTER `DefenseType`, + MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `ID`, + MODIFY `DefenseType` tinyint NOT NULL DEFAULT 0 AFTER `Category`; + +ALTER TABLE `spell_cooldowns` MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `ID`; + +ALTER TABLE `spell_duration` ADD `DurationPerResource` int NOT NULL DEFAULT 0 AFTER `MaxDuration`; + +ALTER TABLE `spell_effect` + ADD `TargetNodeGraph` int NOT NULL DEFAULT 0 AFTER `ScalingClass`, + MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `EffectAura`; + +ALTER TABLE `spell_interrupts` MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `ID`; + +ALTER TABLE `spell_levels` MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `ID`; + +ALTER TABLE `spell_misc` + ADD `Attributes17` int NOT NULL DEFAULT 0 AFTER `Attributes16`, + MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `Attributes17`; + +ALTER TABLE `spell_power_difficulty` MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `ID`; + +ALTER TABLE `spell_procs_per_minute` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `BaseProcRate`; + +ALTER TABLE `spell_procs_per_minute_mod` MODIFY `Type` int NOT NULL DEFAULT 0 AFTER `ID`; + +ALTER TABLE `spell_range` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `DisplayNameShort`; + +ALTER TABLE `spell_reagents_currency` + MODIFY `CurrencyTypesID` int NOT NULL DEFAULT 0 AFTER `SpellID`, + MODIFY `CurrencyCount` int NOT NULL DEFAULT 0 AFTER `CurrencyTypesID`, + ADD `OverrideRecraftCurrencyCount` int NOT NULL DEFAULT 0 AFTER `CurrencyCount`, + ADD `OrderSource` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `OverrideRecraftCurrencyCount`; + +ALTER TABLE `spell_scaling` DROP `ScalesFromItemLevel`; + +ALTER TABLE `spell_target_restrictions` MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `ID`; + +ALTER TABLE `spell_visual_effect_name` + MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `Alpha`, + MODIFY `Type` int NOT NULL DEFAULT 0 AFTER `EffectRadius`; + +ALTER TABLE `spell_visual_missile` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `FollowGroundApproach`; + +ALTER TABLE `spell_x_spell_visual` MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `ID`; + +ALTER TABLE `trait_edge` MODIFY `Type` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `RightTraitNodeID`; + +ALTER TABLE `ui_map` DROP `VisibilityPlayerConditionID2`; + +DROP TABLE IF EXISTS `pvp_item`; diff --git a/sql/updates/world/master/2026_01_28_00_world.sql b/sql/updates/world/master/2026_01_28_00_world.sql new file mode 100644 index 0000000000..d88c9ddda5 --- /dev/null +++ b/sql/updates/world/master/2026_01_28_00_world.sql @@ -0,0 +1,14 @@ +ALTER TABLE `access_requirement` MODIFY `difficulty` int NOT NULL DEFAULT 0; +ALTER TABLE `creature_questitem` MODIFY `DifficultyID` int NOT NULL DEFAULT 0; +ALTER TABLE `creature_static_flags_override` MODIFY `DifficultyId` int NOT NULL DEFAULT 0; +ALTER TABLE `creature_template_difficulty` MODIFY `DifficultyID` int NOT NULL DEFAULT 0; +ALTER TABLE `player_classlevelstats` ADD `spi` smallint COMMENT 'spirit' AFTER `inte`; +ALTER TABLE `player_racestats` ADD `spi` smallint COMMENT 'spirit' AFTER `inte`; +UPDATE `player_classlevelstats` SET `spi`=0; +UPDATE `player_racestats` SET `spi`=0; +ALTER TABLE `player_classlevelstats` MODIFY `spi` smallint NOT NULL COMMENT 'spirit'; +ALTER TABLE `player_racestats` MODIFY `spi` smallint NOT NULL COMMENT 'spirit'; +ALTER TABLE `quest_template` ADD `RewardFavor` int NOT NULL DEFAULT 0; +ALTER TABLE `quest_objectives` CHANGE `SecondaryAmount` `ConditionalAmount` int NOT NULL DEFAULT 0; +ALTER TABLE `scenarios` MODIFY `difficulty` int NOT NULL DEFAULT 0; +ALTER TABLE `serverside_spell` ADD `AttributesEx16` int UNSIGNED NOT NULL DEFAULT 0 AFTER `AttributesEx15`; diff --git a/src/server/database/Database/Implementation/CharacterDatabase.cpp b/src/server/database/Database/Implementation/CharacterDatabase.cpp index e1cddf2307..04773aede6 100644 --- a/src/server/database/Database/Implementation/CharacterDatabase.cpp +++ b/src/server/database/Database/Implementation/CharacterDatabase.cpp @@ -663,8 +663,8 @@ void CharacterDatabaseConnection::DoPrepareStatements() PrepareStatement(CHAR_INS_CHAR_SPELL_FAVORITE, "INSERT INTO character_spell_favorite (guid, spell) VALUES (?, ?)", CONNECTION_ASYNC); PrepareStatement(CHAR_DEL_CHAR_STATS, "DELETE FROM character_stats WHERE guid = ?", CONNECTION_ASYNC); PrepareStatement(CHAR_INS_CHAR_STATS, "INSERT INTO character_stats (guid, maxhealth, maxpower1, maxpower2, maxpower3, maxpower4, maxpower5, maxpower6, maxpower7, maxpower8, maxpower9, maxpower10, " - "strength, agility, stamina, intellect, armor, resHoly, resFire, resNature, resFrost, resShadow, resArcane, blockPct, dodgePct, parryPct, critPct, rangedCritPct, spellCritPct, " - "attackPower, rangedAttackPower, spellPower, resilience, mastery, versatility) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC); + "strength, agility, stamina, intellect, spirit, armor, resHoly, resFire, resNature, resFrost, resShadow, resArcane, blockPct, dodgePct, parryPct, critPct, rangedCritPct, spellCritPct, " + "attackPower, rangedAttackPower, spellPower, resilience, mastery, versatility) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC); PrepareStatement(CHAR_DEL_PETITION_BY_OWNER, "DELETE FROM petition WHERE ownerguid = ?", CONNECTION_ASYNC); PrepareStatement(CHAR_DEL_PETITION_SIGNATURE_BY_OWNER, "DELETE FROM petition_sign WHERE ownerguid = ?", CONNECTION_ASYNC); PrepareStatement(CHAR_INS_CHAR_GLYPHS, "INSERT INTO character_glyphs VALUES(?, ?, ?)", CONNECTION_ASYNC); diff --git a/src/server/database/Database/Implementation/HotfixDatabase.cpp b/src/server/database/Database/Implementation/HotfixDatabase.cpp index 816b3216ce..09b1132068 100644 --- a/src/server/database/Database/Implementation/HotfixDatabase.cpp +++ b/src/server/database/Database/Implementation/HotfixDatabase.cpp @@ -273,9 +273,9 @@ void HotfixDatabaseConnection::DoPrepareStatements() PREPARE_MAX_ID_STMT(HOTFIX_SEL_BATTLE_PET_SPECIES_STATE, "SELECT MAX(ID) + 1 FROM battle_pet_species_state", CONNECTION_SYNCH); // BattlemasterList.db2 - PrepareStatement(HOTFIX_SEL_BATTLEMASTER_LIST, "SELECT ID, Name, GameType, ShortDescription, LongDescription, PvpType, MinLevel, MaxLevel, " - "RatedPlayers, MinPlayers, MaxPlayers, GroupsAllowed, MaxGroupSize, HolidayWorldState, Flags, IconFileDataID, RequiredPlayerConditionID" - " FROM battlemaster_list WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); + PrepareStatement(HOTFIX_SEL_BATTLEMASTER_LIST, "SELECT ID, Name, GameType, ShortDescription, LongDescription, InstanceType, PvpType, MinLevel, " + "MaxLevel, RatedPlayers, MinPlayers, MaxPlayers, GroupsAllowed, MaxGroupSize, HolidayWorldState, Flags, IconFileDataID, " + "RequiredPlayerConditionID FROM battlemaster_list WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); PREPARE_MAX_ID_STMT(HOTFIX_SEL_BATTLEMASTER_LIST, "SELECT MAX(ID) + 1 FROM battlemaster_list", CONNECTION_SYNCH); PREPARE_LOCALE_STMT(HOTFIX_SEL_BATTLEMASTER_LIST, "SELECT ID, Name_lang, GameType_lang, ShortDescription_lang, LongDescription_lang" " FROM battlemaster_list_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH); @@ -491,7 +491,8 @@ void HotfixDatabaseConnection::DoPrepareStatements() PREPARE_MAX_ID_STMT(HOTFIX_SEL_CORRUPTION_EFFECTS, "SELECT MAX(ID) + 1 FROM corruption_effects", CONNECTION_SYNCH); // CraftingQuality.db2 - PrepareStatement(HOTFIX_SEL_CRAFTING_QUALITY, "SELECT ID, QualityTier FROM crafting_quality WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); + PrepareStatement(HOTFIX_SEL_CRAFTING_QUALITY, "SELECT ID, QualityTier, CraftingQualityAtlasSetID FROM crafting_quality" + " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); PREPARE_MAX_ID_STMT(HOTFIX_SEL_CRAFTING_QUALITY, "SELECT MAX(ID) + 1 FROM crafting_quality", CONNECTION_SYNCH); // CreatureDisplayInfo.db2 @@ -554,8 +555,8 @@ void HotfixDatabaseConnection::DoPrepareStatements() // CurrencyTypes.db2 PrepareStatement(HOTFIX_SEL_CURRENCY_TYPES, "SELECT ID, Name, Description, CategoryID, InventoryIconFileID, SpellWeight, SpellCategory, MaxQty, " "MaxEarnablePerWeek, Quality, FactionID, ItemGroupSoundsID, XpQuestDifficulty, AwardConditionID, MaxQtyWorldStateID, " - "RechargingAmountPerCycle, RechargingCycleDurationMS, AccountTransferPercentage, OrderIndex, Flags1, Flags2 FROM currency_types" - " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); + "RechargingAmountPerCycle, RechargingCycleDurationMS, AccountTransferPercentage, OrderIndex, RecraftReagentCountPercentage, OrderSource, " + "MCRCurrencyID, Flags1, Flags2 FROM currency_types WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); PREPARE_MAX_ID_STMT(HOTFIX_SEL_CURRENCY_TYPES, "SELECT MAX(ID) + 1 FROM currency_types", CONNECTION_SYNCH); PREPARE_LOCALE_STMT(HOTFIX_SEL_CURRENCY_TYPES, "SELECT ID, Name_lang, Description_lang FROM currency_types_locale WHERE (`VerifiedBuild` > 0) = ?" " AND locale = ?", CONNECTION_SYNCH); @@ -745,8 +746,8 @@ void HotfixDatabaseConnection::DoPrepareStatements() " WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH); // GarrPlot.db2 - PrepareStatement(HOTFIX_SEL_GARR_PLOT, "SELECT ID, Name, PlotType, HordeConstructObjID, AllianceConstructObjID, Flags, UiCategoryID, " - "UpgradeRequirement1, UpgradeRequirement2 FROM garr_plot WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); + PrepareStatement(HOTFIX_SEL_GARR_PLOT, "SELECT ID, Name, PlotType, HordeConstructObjID, AllianceConstructObjID, Flags, UpgradeRequirement1, " + "UpgradeRequirement2 FROM garr_plot WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); PREPARE_MAX_ID_STMT(HOTFIX_SEL_GARR_PLOT, "SELECT MAX(ID) + 1 FROM garr_plot", CONNECTION_SYNCH); // GarrPlotBuilding.db2 @@ -854,7 +855,8 @@ void HotfixDatabaseConnection::DoPrepareStatements() // Item.db2 PrepareStatement(HOTFIX_SEL_ITEM, "SELECT ID, ClassID, SubclassID, Material, InventoryType, SheatheType, SoundOverrideSubclassID, IconFileDataID, " - "ItemGroupSoundsID, ContentTuningID, ModifiedCraftingReagentItemID, CraftingQualityID, Unknown1127 FROM item WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); + "ItemGroupSoundsID, ContentTuningID, ModifiedCraftingReagentItemID, Unknown1200, CraftingQualityID, ItemSquishEraID, " + "RecraftReagentCountPercentage, OrderSource FROM item WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); PREPARE_MAX_ID_STMT(HOTFIX_SEL_ITEM, "SELECT MAX(ID) + 1 FROM item", CONNECTION_SYNCH); // ItemAppearance.db2 @@ -1024,7 +1026,7 @@ void HotfixDatabaseConnection::DoPrepareStatements() PREPARE_MAX_ID_STMT(HOTFIX_SEL_ITEM_PRICE_BASE, "SELECT MAX(ID) + 1 FROM item_price_base", CONNECTION_SYNCH); // ItemScalingConfig.db2 - PrepareStatement(HOTFIX_SEL_ITEM_SCALING_CONFIG, "SELECT ID, ItemOffsetCurveID, ItemLevel, RequiredLevel, Unknown1125, Flags" + PrepareStatement(HOTFIX_SEL_ITEM_SCALING_CONFIG, "SELECT ID, ItemOffsetCurveID, ItemLevel, RequiredLevel, ItemSquishEraID, Flags" " FROM item_scaling_config WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); PREPARE_MAX_ID_STMT(HOTFIX_SEL_ITEM_SCALING_CONFIG, "SELECT MAX(ID) + 1 FROM item_scaling_config", CONNECTION_SYNCH); @@ -1058,7 +1060,7 @@ void HotfixDatabaseConnection::DoPrepareStatements() "StatModifierBonusStat6, StatModifierBonusStat7, StatModifierBonusStat8, StatModifierBonusStat9, StatModifierBonusStat10, Stackable, " "MaxCount, MinReputation, RequiredAbility, SellPrice, BuyPrice, VendorStackCount, PriceVariance, PriceRandomValue, Flags1, Flags2, Flags3, " "Flags4, Flags5, FactionRelated, ModifiedCraftingReagentItemID, ContentTuningID, PlayerLevelToItemLevelCurveID, ItemLevelOffsetCurveID, " - "ItemLevelOffsetItemLevel, Unknown1127, ItemNameDescriptionID, RequiredTransmogHoliday, RequiredHoliday, GemProperties, " + "ItemLevelOffsetItemLevel, ItemSquishEraID, ItemNameDescriptionID, RequiredTransmogHoliday, RequiredHoliday, GemProperties, " "SocketMatchEnchantmentId, TotemCategoryID, InstanceBound, ZoneBound1, ZoneBound2, ItemSet, LockID, PageID, ItemDelay, MinFactionID, " "RequiredSkillRank, RequiredSkill, ItemLevel, AllowableClass, ArtifactID, SpellWeight, SpellWeightCategory, SocketType1, SocketType2, " "SocketType3, SheatheType, Material, PageMaterialID, Bonding, DamageDamageType, ContainerSlots, RequiredPVPMedal, RequiredPVPRank, " @@ -1076,6 +1078,10 @@ void HotfixDatabaseConnection::DoPrepareStatements() PrepareStatement(HOTFIX_SEL_ITEM_SPEC_OVERRIDE, "SELECT ID, SpecID, ItemID FROM item_spec_override WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); PREPARE_MAX_ID_STMT(HOTFIX_SEL_ITEM_SPEC_OVERRIDE, "SELECT MAX(ID) + 1 FROM item_spec_override", CONNECTION_SYNCH); + // ItemSquishEra.db2 + PrepareStatement(HOTFIX_SEL_ITEM_SQUISH_ERA, "SELECT ID, Patch, CurveID, Flags FROM item_squish_era WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); + PREPARE_MAX_ID_STMT(HOTFIX_SEL_ITEM_SQUISH_ERA, "SELECT MAX(ID) + 1 FROM item_squish_era", CONNECTION_SYNCH); + // ItemXBonusTree.db2 PrepareStatement(HOTFIX_SEL_ITEM_X_BONUS_TREE, "SELECT ID, ItemBonusTreeID, ItemID FROM item_x_bonus_tree WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); PREPARE_MAX_ID_STMT(HOTFIX_SEL_ITEM_X_BONUS_TREE, "SELECT MAX(ID) + 1 FROM item_x_bonus_tree", CONNECTION_SYNCH); @@ -1153,9 +1159,10 @@ void HotfixDatabaseConnection::DoPrepareStatements() PrepareStatement(HOTFIX_SEL_LIQUID_TYPE, "SELECT ID, Name, Texture1, Texture2, Texture3, Texture4, Texture5, Texture6, Flags, SoundBank, SoundID, " "SpellID, MaxDarkenDepth, FogDarkenIntensity, AmbDarkenIntensity, DirDarkenIntensity, LightID, ParticleScale, ParticleMovement, " "ParticleTexSlots, MaterialID, MinimapStaticCol, FrameCountTexture1, FrameCountTexture2, FrameCountTexture3, FrameCountTexture4, " - "FrameCountTexture5, FrameCountTexture6, Color1, Color2, Float1, Float2, Float3, `Float4`, Float5, Float6, Float7, `Float8`, Float9, Float10, " - "Float11, Float12, Float13, Float14, Float15, Float16, Float17, Float18, `Int1`, `Int2`, `Int3`, `Int4`, Coefficient1, Coefficient2, " - "Coefficient3, Coefficient4 FROM liquid_type WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); + "FrameCountTexture5, FrameCountTexture6, Color1, Color2, Color3, Float1, Float2, Float3, `Float4`, Float5, Float6, Float7, `Float8`, Float9, " + "Float10, Float11, Float12, Float13, Float14, Float15, Float16, Float17, Float18, Float19, Float20, Float21, Float22, Float23, Float24, " + "Float25, Float26, Float27, Float28, Float29, Float30, Float31, Float32, Float33, Float34, Float35, Float36, Float37, Float38, `Int1`, " + "`Int2`, `Int3`, `Int4`, Coefficient1, Coefficient2, Coefficient3, Coefficient4 FROM liquid_type WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); PREPARE_MAX_ID_STMT(HOTFIX_SEL_LIQUID_TYPE, "SELECT MAX(ID) + 1 FROM liquid_type", CONNECTION_SYNCH); // Location.db2 @@ -1379,10 +1386,6 @@ void HotfixDatabaseConnection::DoPrepareStatements() PrepareStatement(HOTFIX_SEL_PVP_DIFFICULTY, "SELECT ID, RangeIndex, MinLevel, MaxLevel, MapID FROM pvp_difficulty WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); PREPARE_MAX_ID_STMT(HOTFIX_SEL_PVP_DIFFICULTY, "SELECT MAX(ID) + 1 FROM pvp_difficulty", CONNECTION_SYNCH); - // PvpItem.db2 - PrepareStatement(HOTFIX_SEL_PVP_ITEM, "SELECT ID, ItemID, ItemLevelDelta FROM pvp_item WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_PVP_ITEM, "SELECT MAX(ID) + 1 FROM pvp_item", CONNECTION_SYNCH); - // PvpStat.db2 PrepareStatement(HOTFIX_SEL_PVP_STAT, "SELECT Description, ID, MapID FROM pvp_stat WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); PREPARE_MAX_ID_STMT(HOTFIX_SEL_PVP_STAT, "SELECT MAX(ID) + 1 FROM pvp_stat", CONNECTION_SYNCH); @@ -1497,7 +1500,7 @@ void HotfixDatabaseConnection::DoPrepareStatements() PREPARE_MAX_ID_STMT(HOTFIX_SEL_SCENE_SCRIPT_GLOBAL_TEXT, "SELECT MAX(ID) + 1 FROM scene_script_global_text", CONNECTION_SYNCH); // SceneScriptPackage.db2 - PrepareStatement(HOTFIX_SEL_SCENE_SCRIPT_PACKAGE, "SELECT ID, Name, Unknown915 FROM scene_script_package WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); + PrepareStatement(HOTFIX_SEL_SCENE_SCRIPT_PACKAGE, "SELECT ID, Name, Flags, Unknown915 FROM scene_script_package WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); PREPARE_MAX_ID_STMT(HOTFIX_SEL_SCENE_SCRIPT_PACKAGE, "SELECT MAX(ID) + 1 FROM scene_script_package", CONNECTION_SYNCH); // SceneScriptText.db2 @@ -1578,8 +1581,8 @@ void HotfixDatabaseConnection::DoPrepareStatements() PREPARE_MAX_ID_STMT(HOTFIX_SEL_SPELL_CASTING_REQUIREMENTS, "SELECT MAX(ID) + 1 FROM spell_casting_requirements", CONNECTION_SYNCH); // SpellCategories.db2 - PrepareStatement(HOTFIX_SEL_SPELL_CATEGORIES, "SELECT ID, DifficultyID, Category, DefenseType, DispelType, Mechanic, PreventionType, " - "StartRecoveryCategory, ChargeCategory, SpellID FROM spell_categories WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); + PrepareStatement(HOTFIX_SEL_SPELL_CATEGORIES, "SELECT ID, DifficultyID, Category, DefenseType, DiminishType, DispelType, Mechanic, " + "PreventionType, StartRecoveryCategory, ChargeCategory, SpellID FROM spell_categories WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); PREPARE_MAX_ID_STMT(HOTFIX_SEL_SPELL_CATEGORIES, "SELECT MAX(ID) + 1 FROM spell_categories", CONNECTION_SYNCH); // SpellCategory.db2 @@ -1599,16 +1602,17 @@ void HotfixDatabaseConnection::DoPrepareStatements() PREPARE_MAX_ID_STMT(HOTFIX_SEL_SPELL_COOLDOWNS, "SELECT MAX(ID) + 1 FROM spell_cooldowns", CONNECTION_SYNCH); // SpellDuration.db2 - PrepareStatement(HOTFIX_SEL_SPELL_DURATION, "SELECT ID, Duration, MaxDuration FROM spell_duration WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); + PrepareStatement(HOTFIX_SEL_SPELL_DURATION, "SELECT ID, Duration, MaxDuration, DurationPerResource FROM spell_duration" + " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); PREPARE_MAX_ID_STMT(HOTFIX_SEL_SPELL_DURATION, "SELECT MAX(ID) + 1 FROM spell_duration", CONNECTION_SYNCH); // SpellEffect.db2 PrepareStatement(HOTFIX_SEL_SPELL_EFFECT, "SELECT ID, EffectAura, DifficultyID, EffectIndex, Effect, EffectAmplitude, EffectAttributes, " "EffectAuraPeriod, EffectBonusCoefficient, EffectChainAmplitude, EffectChainTargets, EffectItemType, EffectMechanic, EffectPointsPerResource, " "EffectPosFacing, EffectRealPointsPerLevel, EffectTriggerSpell, BonusCoefficientFromAP, PvpMultiplier, Coefficient, Variance, " - "ResourceCoefficient, GroupSizeBasePointsCoefficient, EffectBasePoints, ScalingClass, EffectMiscValue1, EffectMiscValue2, EffectRadiusIndex1, " - "EffectRadiusIndex2, EffectSpellClassMask1, EffectSpellClassMask2, EffectSpellClassMask3, EffectSpellClassMask4, ImplicitTarget1, " - "ImplicitTarget2, SpellID FROM spell_effect WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); + "ResourceCoefficient, GroupSizeBasePointsCoefficient, EffectBasePoints, ScalingClass, TargetNodeGraph, EffectMiscValue1, EffectMiscValue2, " + "EffectRadiusIndex1, EffectRadiusIndex2, EffectSpellClassMask1, EffectSpellClassMask2, EffectSpellClassMask3, EffectSpellClassMask4, " + "ImplicitTarget1, ImplicitTarget2, SpellID FROM spell_effect WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); PREPARE_MAX_ID_STMT(HOTFIX_SEL_SPELL_EFFECT, "SELECT MAX(ID) + 1 FROM spell_effect", CONNECTION_SYNCH); // SpellEmpower.db2 @@ -1674,10 +1678,10 @@ void HotfixDatabaseConnection::DoPrepareStatements() // SpellMisc.db2 PrepareStatement(HOTFIX_SEL_SPELL_MISC, "SELECT ID, Attributes1, Attributes2, Attributes3, Attributes4, Attributes5, Attributes6, Attributes7, " - "Attributes8, Attributes9, Attributes10, Attributes11, Attributes12, Attributes13, Attributes14, Attributes15, Attributes16, DifficultyID, " - "CastingTimeIndex, DurationIndex, PvPDurationIndex, RangeIndex, SchoolMask, Speed, LaunchDelay, MinDuration, SpellIconFileDataID, " - "ActiveIconFileDataID, ContentTuningID, ShowFutureSpellPlayerConditionID, SpellVisualScript, ActiveSpellVisualScript, SpellID FROM spell_misc" - " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); + "Attributes8, Attributes9, Attributes10, Attributes11, Attributes12, Attributes13, Attributes14, Attributes15, Attributes16, Attributes17, " + "DifficultyID, CastingTimeIndex, DurationIndex, PvPDurationIndex, RangeIndex, SchoolMask, Speed, LaunchDelay, MinDuration, " + "SpellIconFileDataID, ActiveIconFileDataID, ContentTuningID, ShowFutureSpellPlayerConditionID, SpellVisualScript, ActiveSpellVisualScript, " + "SpellID FROM spell_misc WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); PREPARE_MAX_ID_STMT(HOTFIX_SEL_SPELL_MISC, "SELECT MAX(ID) + 1 FROM spell_misc", CONNECTION_SYNCH); // SpellName.db2 @@ -1726,12 +1730,12 @@ void HotfixDatabaseConnection::DoPrepareStatements() PREPARE_MAX_ID_STMT(HOTFIX_SEL_SPELL_REAGENTS, "SELECT MAX(ID) + 1 FROM spell_reagents", CONNECTION_SYNCH); // SpellReagentsCurrency.db2 - PrepareStatement(HOTFIX_SEL_SPELL_REAGENTS_CURRENCY, "SELECT ID, SpellID, CurrencyTypesID, CurrencyCount FROM spell_reagents_currency" - " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); + PrepareStatement(HOTFIX_SEL_SPELL_REAGENTS_CURRENCY, "SELECT ID, SpellID, CurrencyTypesID, CurrencyCount, OverrideRecraftCurrencyCount, " + "OrderSource FROM spell_reagents_currency WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); PREPARE_MAX_ID_STMT(HOTFIX_SEL_SPELL_REAGENTS_CURRENCY, "SELECT MAX(ID) + 1 FROM spell_reagents_currency", CONNECTION_SYNCH); // SpellScaling.db2 - PrepareStatement(HOTFIX_SEL_SPELL_SCALING, "SELECT ID, SpellID, MinScalingLevel, MaxScalingLevel, ScalesFromItemLevel FROM spell_scaling" + PrepareStatement(HOTFIX_SEL_SPELL_SCALING, "SELECT ID, SpellID, MinScalingLevel, MaxScalingLevel FROM spell_scaling" " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); PREPARE_MAX_ID_STMT(HOTFIX_SEL_SPELL_SCALING, "SELECT MAX(ID) + 1 FROM spell_scaling", CONNECTION_SYNCH); @@ -2004,8 +2008,8 @@ void HotfixDatabaseConnection::DoPrepareStatements() // UiMap.db2 PrepareStatement(HOTFIX_SEL_UI_MAP, "SELECT Name, ID, ParentUiMapID, Flags, `System`, Type, BountySetID, BountyDisplayLocation, " - "VisibilityPlayerConditionID2, VisibilityPlayerConditionID, HelpTextPosition, BkgAtlasID, AlternateUiMapGroup, ContentTuningID, " - "AdventureMapTextureKitID, MapArtZoneTextPosition FROM ui_map WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); + "VisibilityPlayerConditionID, HelpTextPosition, BkgAtlasID, AlternateUiMapGroup, ContentTuningID, AdventureMapTextureKitID, " + "MapArtZoneTextPosition FROM ui_map WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); PREPARE_MAX_ID_STMT(HOTFIX_SEL_UI_MAP, "SELECT MAX(ID) + 1 FROM ui_map", CONNECTION_SYNCH); PREPARE_LOCALE_STMT(HOTFIX_SEL_UI_MAP, "SELECT ID, Name_lang FROM ui_map_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH); diff --git a/src/server/database/Database/Implementation/HotfixDatabase.h b/src/server/database/Database/Implementation/HotfixDatabase.h index 54feaec54a..5765cd438b 100644 --- a/src/server/database/Database/Implementation/HotfixDatabase.h +++ b/src/server/database/Database/Implementation/HotfixDatabase.h @@ -18,8 +18,8 @@ // DO NOT EDIT! // Autogenerated from DB2Structure.h -#ifndef _HOTFIXDATABASE_H -#define _HOTFIXDATABASE_H +#ifndef TRINITYCORE_HOTFIX_DATABASE_H +#define TRINITYCORE_HOTFIX_DATABASE_H #include "MySQLConnection.h" @@ -618,6 +618,9 @@ enum HotfixDatabaseStatements : uint32 HOTFIX_SEL_ITEM_SPEC_OVERRIDE, HOTFIX_SEL_ITEM_SPEC_OVERRIDE_MAX_ID, + HOTFIX_SEL_ITEM_SQUISH_ERA, + HOTFIX_SEL_ITEM_SQUISH_ERA_MAX_ID, + HOTFIX_SEL_ITEM_X_BONUS_TREE, HOTFIX_SEL_ITEM_X_BONUS_TREE_MAX_ID, @@ -790,9 +793,6 @@ enum HotfixDatabaseStatements : uint32 HOTFIX_SEL_PVP_DIFFICULTY, HOTFIX_SEL_PVP_DIFFICULTY_MAX_ID, - HOTFIX_SEL_PVP_ITEM, - HOTFIX_SEL_PVP_ITEM_MAX_ID, - HOTFIX_SEL_PVP_STAT, HOTFIX_SEL_PVP_STAT_MAX_ID, HOTFIX_SEL_PVP_STAT_LOCALE, @@ -1230,4 +1230,4 @@ public: void DoPrepareStatements() override; }; -#endif +#endif // TRINITYCORE_HOTFIX_DATABASE_H diff --git a/src/server/game/AI/CoreAI/UnitAI.h b/src/server/game/AI/CoreAI/UnitAI.h index 5c0e15a862..e8979106df 100644 --- a/src/server/game/AI/CoreAI/UnitAI.h +++ b/src/server/game/AI/CoreAI/UnitAI.h @@ -43,7 +43,7 @@ class SpellInfo; class Unit; struct AISpellInfoType; enum DamageEffectType : uint8; -enum Difficulty : uint8; +enum Difficulty : int16; enum MovementGeneratorType : uint8; enum SpellEffIndex : uint8; diff --git a/src/server/game/AI/CreatureAIImpl.h b/src/server/game/AI/CreatureAIImpl.h index ff892ba28e..26d868874d 100644 --- a/src/server/game/AI/CreatureAIImpl.h +++ b/src/server/game/AI/CreatureAIImpl.h @@ -22,7 +22,7 @@ #include class WorldObject; -enum Difficulty : uint8; +enum Difficulty : int16; template inline First const& RAND(First const& first, Second const& second, Rest const&... rest) diff --git a/src/server/game/Achievements/CriteriaHandler.cpp b/src/server/game/Achievements/CriteriaHandler.cpp index 38b14d5e75..4f6865816c 100644 --- a/src/server/game/Achievements/CriteriaHandler.cpp +++ b/src/server/game/Achievements/CriteriaHandler.cpp @@ -2087,7 +2087,7 @@ bool CriteriaHandler::ModifierSatisfied(ModifierTreeEntry const* modifier, uint6 return ConditionMgr::IsMeetingWorldStateExpression(referencePlayer->GetMap(), worldStateExpression); return false; case ModifierTreeType::DungeonDifficulty: // 68 - if (referencePlayer->GetMap()->GetDifficultyID() != reqValue) + if (referencePlayer->GetMap()->GetDifficultyID() != int32(reqValue)) return false; break; case ModifierTreeType::PlayerLevelEqualOrGreaterThan: // 69 @@ -3090,7 +3090,7 @@ bool CriteriaHandler::ModifierSatisfied(ModifierTreeEntry const* modifier, uint6 Scenario const* scenario = referencePlayer->GetScenario(); if (!scenario) return false; - if (scenario->GetEntry()->Type != reqValue) + if (scenario->GetEntry()->Type != int32(reqValue)) return false; break; } diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp index 148d1d2dc4..a632bcca7f 100644 --- a/src/server/game/Conditions/ConditionMgr.cpp +++ b/src/server/game/Conditions/ConditionMgr.cpp @@ -264,7 +264,7 @@ bool Condition::Meets(ConditionSourceInfo& sourceInfo) const } case CONDITION_DIFFICULTY_ID: { - condMeets = map->GetDifficultyID() == ConditionValue1; + condMeets = map->GetDifficultyID() == int32(ConditionValue1); break; } case CONDITION_SCENARIO_STEP: diff --git a/src/server/game/DataStores/DB2LoadInfo.h b/src/server/game/DataStores/DB2LoadInfo.h index 5905f19203..cd2029ca71 100644 --- a/src/server/game/DataStores/DB2LoadInfo.h +++ b/src/server/game/DataStores/DB2LoadInfo.h @@ -218,7 +218,7 @@ struct AreaTriggerLoadInfo { .IsSigned = true, .Type = FT_BYTE, .Name = "ShapeType" }, { .IsSigned = true, .Type = FT_SHORT, .Name = "ShapeID" }, { .IsSigned = true, .Type = FT_INT, .Name = "AreaTriggerActionSetID" }, - { .IsSigned = true, .Type = FT_BYTE, .Name = "Flags" }, + { .IsSigned = true, .Type = FT_INT, .Name = "Flags" }, }; static constexpr DB2LoadInfo Instance{ Fields, 17, &AreaTriggerMeta::Instance, HOTFIX_SEL_AREA_TRIGGER }; @@ -261,7 +261,7 @@ struct ArtifactLoadInfo { .IsSigned = true, .Type = FT_INT, .Name = "UiBarOverlayColor" }, { .IsSigned = true, .Type = FT_INT, .Name = "UiBarBackgroundColor" }, { .IsSigned = false, .Type = FT_SHORT, .Name = "ChrSpecializationID" }, - { .IsSigned = false, .Type = FT_BYTE, .Name = "Flags" }, + { .IsSigned = true, .Type = FT_INT, .Name = "Flags" }, { .IsSigned = false, .Type = FT_BYTE, .Name = "ArtifactCategoryID" }, { .IsSigned = false, .Type = FT_INT, .Name = "UiModelSceneID" }, { .IsSigned = false, .Type = FT_INT, .Name = "SpellVisualKitID" }, @@ -287,7 +287,7 @@ struct ArtifactAppearanceLoadInfo { .IsSigned = false, .Type = FT_INT, .Name = "OverrideShapeshiftDisplayID" }, { .IsSigned = false, .Type = FT_INT, .Name = "UiItemAppearanceID" }, { .IsSigned = false, .Type = FT_INT, .Name = "UiAltItemAppearanceID" }, - { .IsSigned = false, .Type = FT_BYTE, .Name = "Flags" }, + { .IsSigned = true, .Type = FT_INT, .Name = "Flags" }, { .IsSigned = false, .Type = FT_SHORT, .Name = "UiCameraID" }, { .IsSigned = false, .Type = FT_INT, .Name = "UsablePlayerConditionID" }, }; @@ -306,7 +306,7 @@ struct ArtifactAppearanceSetLoadInfo { .IsSigned = false, .Type = FT_SHORT, .Name = "UiCameraID" }, { .IsSigned = false, .Type = FT_SHORT, .Name = "AltHandUICameraID" }, { .IsSigned = true, .Type = FT_BYTE, .Name = "ForgeAttachmentOverride" }, - { .IsSigned = false, .Type = FT_BYTE, .Name = "Flags" }, + { .IsSigned = true, .Type = FT_INT, .Name = "Flags" }, { .IsSigned = false, .Type = FT_INT, .Name = "ArtifactID" }, }; @@ -335,7 +335,7 @@ struct ArtifactPowerLoadInfo { .IsSigned = false, .Type = FT_BYTE, .Name = "ArtifactID" }, { .IsSigned = false, .Type = FT_BYTE, .Name = "MaxPurchasableRank" }, { .IsSigned = true, .Type = FT_INT, .Name = "Label" }, - { .IsSigned = false, .Type = FT_BYTE, .Name = "Flags" }, + { .IsSigned = true, .Type = FT_INT, .Name = "Flags" }, { .IsSigned = false, .Type = FT_BYTE, .Name = "Tier" }, }; @@ -666,7 +666,7 @@ struct BattlePetAbilityLoadInfo { .IsSigned = true, .Type = FT_BYTE, .Name = "PetTypeEnum" }, { .IsSigned = false, .Type = FT_INT, .Name = "Cooldown" }, { .IsSigned = false, .Type = FT_SHORT, .Name = "BattlePetVisualID" }, - { .IsSigned = false, .Type = FT_BYTE, .Name = "Flags" }, + { .IsSigned = true, .Type = FT_INT, .Name = "Flags" }, }; static constexpr DB2LoadInfo Instance{ Fields, 8, &BattlePetAbilityMeta::Instance, HOTFIX_SEL_BATTLE_PET_ABILITY }; @@ -734,13 +734,14 @@ struct BattlePetSpeciesStateLoadInfo struct BattlemasterListLoadInfo { - static constexpr DB2FieldMeta Fields[17] = + static constexpr DB2FieldMeta Fields[18] = { { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, { .IsSigned = false, .Type = FT_STRING, .Name = "Name" }, { .IsSigned = false, .Type = FT_STRING, .Name = "GameType" }, { .IsSigned = false, .Type = FT_STRING, .Name = "ShortDescription" }, { .IsSigned = false, .Type = FT_STRING, .Name = "LongDescription" }, + { .IsSigned = true, .Type = FT_BYTE, .Name = "InstanceType" }, { .IsSigned = true, .Type = FT_INT, .Name = "PvpType" }, { .IsSigned = true, .Type = FT_BYTE, .Name = "MinLevel" }, { .IsSigned = true, .Type = FT_BYTE, .Name = "MaxLevel" }, @@ -755,7 +756,7 @@ struct BattlemasterListLoadInfo { .IsSigned = true, .Type = FT_INT, .Name = "RequiredPlayerConditionID" }, }; - static constexpr DB2LoadInfo Instance{ Fields, 17, &BattlemasterListMeta::Instance, HOTFIX_SEL_BATTLEMASTER_LIST }; + static constexpr DB2LoadInfo Instance{ Fields, 18, &BattlemasterListMeta::Instance, HOTFIX_SEL_BATTLEMASTER_LIST }; }; struct BattlemasterListXMapLoadInfo @@ -818,7 +819,7 @@ struct CfgCategoriesLoadInfo { .IsSigned = false, .Type = FT_SHORT, .Name = "LocaleMask" }, { .IsSigned = false, .Type = FT_BYTE, .Name = "CreateCharsetMask" }, { .IsSigned = false, .Type = FT_BYTE, .Name = "ExistingCharsetMask" }, - { .IsSigned = false, .Type = FT_BYTE, .Name = "Flags" }, + { .IsSigned = true, .Type = FT_INT, .Name = "Flags" }, { .IsSigned = true, .Type = FT_BYTE, .Name = "Order" }, }; @@ -1407,13 +1408,14 @@ struct CorruptionEffectsLoadInfo struct CraftingQualityLoadInfo { - static constexpr DB2FieldMeta Fields[2] = + static constexpr DB2FieldMeta Fields[3] = { { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, { .IsSigned = true, .Type = FT_INT, .Name = "QualityTier" }, + { .IsSigned = true, .Type = FT_INT, .Name = "CraftingQualityAtlasSetID" }, }; - static constexpr DB2LoadInfo Instance{ Fields, 2, &CraftingQualityMeta::Instance, HOTFIX_SEL_CRAFTING_QUALITY }; + static constexpr DB2LoadInfo Instance{ Fields, 3, &CraftingQualityMeta::Instance, HOTFIX_SEL_CRAFTING_QUALITY }; }; struct CreatureDisplayInfoLoadInfo @@ -1625,7 +1627,7 @@ struct CurrencyContainerLoadInfo struct CurrencyTypesLoadInfo { - static constexpr DB2FieldMeta Fields[21] = + static constexpr DB2FieldMeta Fields[24] = { { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, { .IsSigned = false, .Type = FT_STRING, .Name = "Name" }, @@ -1646,11 +1648,14 @@ struct CurrencyTypesLoadInfo { .IsSigned = false, .Type = FT_INT, .Name = "RechargingCycleDurationMS" }, { .IsSigned = false, .Type = FT_FLOAT, .Name = "AccountTransferPercentage" }, { .IsSigned = false, .Type = FT_BYTE, .Name = "OrderIndex" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "RecraftReagentCountPercentage" }, + { .IsSigned = false, .Type = FT_BYTE, .Name = "OrderSource" }, + { .IsSigned = true, .Type = FT_INT, .Name = "MCRCurrencyID" }, { .IsSigned = true, .Type = FT_INT, .Name = "Flags1" }, { .IsSigned = true, .Type = FT_INT, .Name = "Flags2" }, }; - static constexpr DB2LoadInfo Instance{ Fields, 21, &CurrencyTypesMeta::Instance, HOTFIX_SEL_CURRENCY_TYPES }; + static constexpr DB2LoadInfo Instance{ Fields, 24, &CurrencyTypesMeta::Instance, HOTFIX_SEL_CURRENCY_TYPES }; }; struct CurveLoadInfo @@ -1722,12 +1727,12 @@ struct DifficultyLoadInfo { .IsSigned = false, .Type = FT_BYTE, .Name = "InstanceType" }, { .IsSigned = false, .Type = FT_BYTE, .Name = "OrderIndex" }, { .IsSigned = true, .Type = FT_BYTE, .Name = "OldEnumValue" }, - { .IsSigned = false, .Type = FT_BYTE, .Name = "FallbackDifficultyID" }, + { .IsSigned = true, .Type = FT_SHORT, .Name = "FallbackDifficultyID" }, { .IsSigned = false, .Type = FT_BYTE, .Name = "MinPlayers" }, { .IsSigned = false, .Type = FT_BYTE, .Name = "MaxPlayers" }, - { .IsSigned = false, .Type = FT_SHORT, .Name = "Flags" }, + { .IsSigned = true, .Type = FT_INT, .Name = "Flags" }, { .IsSigned = false, .Type = FT_BYTE, .Name = "ItemContext" }, - { .IsSigned = false, .Type = FT_BYTE, .Name = "ToggleDifficultyID" }, + { .IsSigned = true, .Type = FT_SHORT, .Name = "ToggleDifficultyID" }, { .IsSigned = false, .Type = FT_INT, .Name = "GroupSizeHealthCurveID" }, { .IsSigned = false, .Type = FT_INT, .Name = "GroupSizeDmgCurveID" }, { .IsSigned = false, .Type = FT_INT, .Name = "GroupSizeSpellPointsCurveID" }, @@ -1744,7 +1749,7 @@ struct DungeonEncounterLoadInfo { .IsSigned = false, .Type = FT_STRING, .Name = "Name" }, { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, { .IsSigned = false, .Type = FT_SHORT, .Name = "MapID" }, - { .IsSigned = true, .Type = FT_INT, .Name = "DifficultyID" }, + { .IsSigned = true, .Type = FT_SHORT, .Name = "DifficultyID" }, { .IsSigned = true, .Type = FT_INT, .Name = "OrderIndex" }, { .IsSigned = true, .Type = FT_INT, .Name = "CompleteWorldStateID" }, { .IsSigned = true, .Type = FT_BYTE, .Name = "Bit" }, @@ -2303,20 +2308,19 @@ struct GarrMissionLoadInfo struct GarrPlotLoadInfo { - static constexpr DB2FieldMeta Fields[9] = + static constexpr DB2FieldMeta Fields[8] = { { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, { .IsSigned = false, .Type = FT_STRING_NOT_LOCALIZED, .Name = "Name" }, { .IsSigned = false, .Type = FT_BYTE, .Name = "PlotType" }, { .IsSigned = true, .Type = FT_INT, .Name = "HordeConstructObjID" }, { .IsSigned = true, .Type = FT_INT, .Name = "AllianceConstructObjID" }, - { .IsSigned = false, .Type = FT_BYTE, .Name = "Flags" }, - { .IsSigned = false, .Type = FT_BYTE, .Name = "UiCategoryID" }, + { .IsSigned = true, .Type = FT_INT, .Name = "Flags" }, { .IsSigned = false, .Type = FT_INT, .Name = "UpgradeRequirement1" }, { .IsSigned = false, .Type = FT_INT, .Name = "UpgradeRequirement2" }, }; - static constexpr DB2LoadInfo Instance{ Fields, 9, &GarrPlotMeta::Instance, HOTFIX_SEL_GARR_PLOT }; + static constexpr DB2LoadInfo Instance{ Fields, 8, &GarrPlotMeta::Instance, HOTFIX_SEL_GARR_PLOT }; }; struct GarrPlotBuildingLoadInfo @@ -2578,8 +2582,8 @@ struct HolidaysLoadInfo { .IsSigned = false, .Type = FT_INT, .Name = "HolidayNameID" }, { .IsSigned = false, .Type = FT_INT, .Name = "HolidayDescriptionID" }, { .IsSigned = false, .Type = FT_BYTE, .Name = "Priority" }, - { .IsSigned = true, .Type = FT_BYTE, .Name = "CalendarFilterType" }, - { .IsSigned = false, .Type = FT_BYTE, .Name = "Flags" }, + { .IsSigned = false, .Type = FT_BYTE, .Name = "CalendarFilterType" }, + { .IsSigned = true, .Type = FT_INT, .Name = "Flags" }, { .IsSigned = false, .Type = FT_SHORT, .Name = "Duration1" }, { .IsSigned = false, .Type = FT_SHORT, .Name = "Duration2" }, { .IsSigned = false, .Type = FT_SHORT, .Name = "Duration3" }, @@ -2683,7 +2687,7 @@ struct ImportPriceWeaponLoadInfo struct ItemLoadInfo { - static constexpr DB2FieldMeta Fields[13] = + static constexpr DB2FieldMeta Fields[16] = { { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, { .IsSigned = true, .Type = FT_INT, .Name = "ClassID" }, @@ -2696,11 +2700,14 @@ struct ItemLoadInfo { .IsSigned = false, .Type = FT_INT, .Name = "ItemGroupSoundsID" }, { .IsSigned = true, .Type = FT_INT, .Name = "ContentTuningID" }, { .IsSigned = true, .Type = FT_INT, .Name = "ModifiedCraftingReagentItemID" }, + { .IsSigned = false, .Type = FT_BYTE, .Name = "Unknown1200" }, { .IsSigned = true, .Type = FT_INT, .Name = "CraftingQualityID" }, - { .IsSigned = true, .Type = FT_INT, .Name = "Unknown1127" }, + { .IsSigned = true, .Type = FT_INT, .Name = "ItemSquishEraID" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "RecraftReagentCountPercentage" }, + { .IsSigned = false, .Type = FT_BYTE, .Name = "OrderSource" }, }; - static constexpr DB2LoadInfo Instance{ Fields, 13, &ItemMeta::Instance, HOTFIX_SEL_ITEM }; + static constexpr DB2LoadInfo Instance{ Fields, 16, &ItemMeta::Instance, HOTFIX_SEL_ITEM }; }; struct ItemAppearanceLoadInfo @@ -2865,7 +2872,7 @@ struct ItemChildEquipmentLoadInfo { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, { .IsSigned = false, .Type = FT_INT, .Name = "ParentItemID" }, { .IsSigned = true, .Type = FT_INT, .Name = "ChildItemID" }, - { .IsSigned = false, .Type = FT_BYTE, .Name = "ChildItemEquipSlot" }, + { .IsSigned = true, .Type = FT_INT, .Name = "ChildItemEquipSlot" }, }; static constexpr DB2LoadInfo Instance{ Fields, 4, &ItemChildEquipmentMeta::Instance, HOTFIX_SEL_ITEM_CHILD_EQUIPMENT }; @@ -2894,7 +2901,7 @@ struct ItemContextPickerEntryLoadInfo { .IsSigned = false, .Type = FT_BYTE, .Name = "OrderIndex" }, { .IsSigned = true, .Type = FT_INT, .Name = "PVal" }, { .IsSigned = true, .Type = FT_INT, .Name = "LabelID" }, - { .IsSigned = false, .Type = FT_INT, .Name = "Flags" }, + { .IsSigned = true, .Type = FT_INT, .Name = "Flags" }, { .IsSigned = false, .Type = FT_INT, .Name = "PlayerConditionID" }, { .IsSigned = false, .Type = FT_INT, .Name = "ItemContextPickerID" }, }; @@ -3038,7 +3045,7 @@ struct ItemEffectLoadInfo { { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, { .IsSigned = false, .Type = FT_BYTE, .Name = "LegacySlotIndex" }, - { .IsSigned = true, .Type = FT_BYTE, .Name = "TriggerType" }, + { .IsSigned = false, .Type = FT_BYTE, .Name = "TriggerType" }, { .IsSigned = true, .Type = FT_SHORT, .Name = "Charges" }, { .IsSigned = true, .Type = FT_INT, .Name = "CoolDownMSec" }, { .IsSigned = true, .Type = FT_INT, .Name = "CategoryCoolDownMSec" }, @@ -3132,7 +3139,7 @@ struct ItemLimitCategoryLoadInfo { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, { .IsSigned = false, .Type = FT_STRING, .Name = "Name" }, { .IsSigned = false, .Type = FT_BYTE, .Name = "Quantity" }, - { .IsSigned = false, .Type = FT_BYTE, .Name = "Flags" }, + { .IsSigned = true, .Type = FT_INT, .Name = "Flags" }, }; static constexpr DB2LoadInfo Instance{ Fields, 4, &ItemLimitCategoryMeta::Instance, HOTFIX_SEL_ITEM_LIMIT_CATEGORY }; @@ -3227,7 +3234,7 @@ struct ItemScalingConfigLoadInfo { .IsSigned = true, .Type = FT_INT, .Name = "ItemOffsetCurveID" }, { .IsSigned = true, .Type = FT_INT, .Name = "ItemLevel" }, { .IsSigned = true, .Type = FT_INT, .Name = "RequiredLevel" }, - { .IsSigned = true, .Type = FT_INT, .Name = "Unknown1125" }, + { .IsSigned = true, .Type = FT_INT, .Name = "ItemSquishEraID" }, { .IsSigned = true, .Type = FT_INT, .Name = "Flags" }, }; @@ -3267,7 +3274,7 @@ struct ItemSetLoadInfo { { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, { .IsSigned = false, .Type = FT_STRING, .Name = "Name" }, - { .IsSigned = false, .Type = FT_INT, .Name = "SetFlags" }, + { .IsSigned = true, .Type = FT_INT, .Name = "SetFlags" }, { .IsSigned = false, .Type = FT_INT, .Name = "RequiredSkill" }, { .IsSigned = false, .Type = FT_SHORT, .Name = "RequiredSkillRank" }, { .IsSigned = false, .Type = FT_INT, .Name = "ItemID1" }, @@ -3377,7 +3384,7 @@ struct ItemSparseLoadInfo { .IsSigned = true, .Type = FT_INT, .Name = "PlayerLevelToItemLevelCurveID" }, { .IsSigned = true, .Type = FT_INT, .Name = "ItemLevelOffsetCurveID" }, { .IsSigned = true, .Type = FT_INT, .Name = "ItemLevelOffsetItemLevel" }, - { .IsSigned = true, .Type = FT_INT, .Name = "Unknown1127" }, + { .IsSigned = true, .Type = FT_INT, .Name = "ItemSquishEraID" }, { .IsSigned = false, .Type = FT_SHORT, .Name = "ItemNameDescriptionID" }, { .IsSigned = false, .Type = FT_SHORT, .Name = "RequiredTransmogHoliday" }, { .IsSigned = false, .Type = FT_SHORT, .Name = "RequiredHoliday" }, @@ -3446,6 +3453,19 @@ struct ItemSpecOverrideLoadInfo static constexpr DB2LoadInfo Instance{ Fields, 3, &ItemSpecOverrideMeta::Instance, HOTFIX_SEL_ITEM_SPEC_OVERRIDE }; }; +struct ItemSquishEraLoadInfo +{ + static constexpr DB2FieldMeta Fields[4] = + { + { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, + { .IsSigned = true, .Type = FT_INT, .Name = "Patch" }, + { .IsSigned = true, .Type = FT_INT, .Name = "CurveID" }, + { .IsSigned = true, .Type = FT_INT, .Name = "Flags" }, + }; + + static constexpr DB2LoadInfo Instance{ Fields, 4, &ItemSquishEraMeta::Instance, HOTFIX_SEL_ITEM_SQUISH_ERA }; +}; + struct ItemXBonusTreeLoadInfo { static constexpr DB2FieldMeta Fields[3] = @@ -3647,7 +3667,7 @@ struct LfgDungeonsLoadInfo { .IsSigned = true, .Type = FT_INT, .Name = "PopupBgTextureFileID" }, { .IsSigned = false, .Type = FT_BYTE, .Name = "ExpansionLevel" }, { .IsSigned = true, .Type = FT_SHORT, .Name = "MapID" }, - { .IsSigned = false, .Type = FT_BYTE, .Name = "DifficultyID" }, + { .IsSigned = true, .Type = FT_SHORT, .Name = "DifficultyID" }, { .IsSigned = false, .Type = FT_FLOAT, .Name = "MinGear" }, { .IsSigned = false, .Type = FT_BYTE, .Name = "GroupID" }, { .IsSigned = false, .Type = FT_BYTE, .Name = "OrderIndex" }, @@ -3702,7 +3722,7 @@ struct LightLoadInfo struct LiquidTypeLoadInfo { - static constexpr DB2FieldMeta Fields[56] = + static constexpr DB2FieldMeta Fields[77] = { { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, { .IsSigned = false, .Type = FT_STRING_NOT_LOCALIZED, .Name = "Name" }, @@ -3734,6 +3754,7 @@ struct LiquidTypeLoadInfo { .IsSigned = false, .Type = FT_BYTE, .Name = "FrameCountTexture6" }, { .IsSigned = true, .Type = FT_INT, .Name = "Color1" }, { .IsSigned = true, .Type = FT_INT, .Name = "Color2" }, + { .IsSigned = true, .Type = FT_INT, .Name = "Color3" }, { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float1" }, { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float2" }, { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float3" }, @@ -3752,6 +3773,26 @@ struct LiquidTypeLoadInfo { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float16" }, { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float17" }, { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float18" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float19" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float20" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float21" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float22" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float23" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float24" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float25" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float26" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float27" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float28" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float29" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float30" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float31" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float32" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float33" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float34" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float35" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float36" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float37" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float38" }, { .IsSigned = false, .Type = FT_INT, .Name = "Int1" }, { .IsSigned = false, .Type = FT_INT, .Name = "Int2" }, { .IsSigned = false, .Type = FT_INT, .Name = "Int3" }, @@ -3762,7 +3803,7 @@ struct LiquidTypeLoadInfo { .IsSigned = false, .Type = FT_FLOAT, .Name = "Coefficient4" }, }; - static constexpr DB2LoadInfo Instance{ Fields, 56, &LiquidTypeMeta::Instance, HOTFIX_SEL_LIQUID_TYPE }; + static constexpr DB2LoadInfo Instance{ Fields, 77, &LiquidTypeMeta::Instance, HOTFIX_SEL_LIQUID_TYPE }; }; struct LocationLoadInfo @@ -3912,7 +3953,7 @@ struct MapDifficultyLoadInfo { { .IsSigned = false, .Type = FT_STRING, .Name = "Message" }, { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, - { .IsSigned = true, .Type = FT_INT, .Name = "DifficultyID" }, + { .IsSigned = true, .Type = FT_SHORT, .Name = "DifficultyID" }, { .IsSigned = true, .Type = FT_INT, .Name = "LockID" }, { .IsSigned = false, .Type = FT_BYTE, .Name = "ResetInterval" }, { .IsSigned = true, .Type = FT_INT, .Name = "MaxPlayers" }, @@ -4172,7 +4213,7 @@ struct OverrideSpellDataLoadInfo { .IsSigned = true, .Type = FT_INT, .Name = "Spells9" }, { .IsSigned = true, .Type = FT_INT, .Name = "Spells10" }, { .IsSigned = true, .Type = FT_INT, .Name = "PlayerActionBarFileDataID" }, - { .IsSigned = false, .Type = FT_BYTE, .Name = "Flags" }, + { .IsSigned = true, .Type = FT_INT, .Name = "Flags" }, }; static constexpr DB2LoadInfo Instance{ Fields, 13, &OverrideSpellDataMeta::Instance, HOTFIX_SEL_OVERRIDE_SPELL_DATA }; @@ -4326,7 +4367,7 @@ struct PlayerConditionLoadInfo { .IsSigned = false, .Type = FT_INT, .Name = "ModifierTreeID" }, { .IsSigned = true, .Type = FT_BYTE, .Name = "PowerType" }, { .IsSigned = false, .Type = FT_BYTE, .Name = "PowerTypeComp" }, - { .IsSigned = false, .Type = FT_BYTE, .Name = "PowerTypeValue" }, + { .IsSigned = true, .Type = FT_BYTE, .Name = "PowerTypeValue" }, { .IsSigned = true, .Type = FT_INT, .Name = "WeaponSubclassMask" }, { .IsSigned = false, .Type = FT_BYTE, .Name = "MaxGuildLevel" }, { .IsSigned = false, .Type = FT_BYTE, .Name = "MinGuildLevel" }, @@ -4562,18 +4603,6 @@ struct PvpDifficultyLoadInfo static constexpr DB2LoadInfo Instance{ Fields, 5, &PVPDifficultyMeta::Instance, HOTFIX_SEL_PVP_DIFFICULTY }; }; -struct PvpItemLoadInfo -{ - static constexpr DB2FieldMeta Fields[3] = - { - { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, - { .IsSigned = true, .Type = FT_INT, .Name = "ItemID" }, - { .IsSigned = false, .Type = FT_BYTE, .Name = "ItemLevelDelta" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 3, &PVPItemMeta::Instance, HOTFIX_SEL_PVP_ITEM }; -}; - struct PvpStatLoadInfo { static constexpr DB2FieldMeta Fields[3] = @@ -4882,8 +4911,8 @@ struct ScenarioLoadInfo { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, { .IsSigned = false, .Type = FT_STRING, .Name = "Name" }, { .IsSigned = false, .Type = FT_SHORT, .Name = "AreaTableID" }, - { .IsSigned = false, .Type = FT_BYTE, .Name = "Type" }, - { .IsSigned = false, .Type = FT_BYTE, .Name = "Flags" }, + { .IsSigned = true, .Type = FT_INT, .Name = "Type" }, + { .IsSigned = true, .Type = FT_INT, .Name = "Flags" }, { .IsSigned = false, .Type = FT_INT, .Name = "UiTextureKitID" }, }; @@ -4903,7 +4932,7 @@ struct ScenarioStepLoadInfo { .IsSigned = true, .Type = FT_INT, .Name = "RelatedStep" }, { .IsSigned = false, .Type = FT_SHORT, .Name = "Supersedes" }, { .IsSigned = false, .Type = FT_BYTE, .Name = "OrderIndex" }, - { .IsSigned = false, .Type = FT_BYTE, .Name = "Flags" }, + { .IsSigned = true, .Type = FT_INT, .Name = "Flags" }, { .IsSigned = false, .Type = FT_INT, .Name = "VisibilityPlayerConditionID" }, { .IsSigned = false, .Type = FT_SHORT, .Name = "WidgetSetID" }, }; @@ -4938,14 +4967,15 @@ struct SceneScriptGlobalTextLoadInfo struct SceneScriptPackageLoadInfo { - static constexpr DB2FieldMeta Fields[3] = + static constexpr DB2FieldMeta Fields[4] = { { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, { .IsSigned = false, .Type = FT_STRING_NOT_LOCALIZED, .Name = "Name" }, + { .IsSigned = true, .Type = FT_INT, .Name = "Flags" }, { .IsSigned = true, .Type = FT_INT, .Name = "Unknown915" }, }; - static constexpr DB2LoadInfo Instance{ Fields, 3, &SceneScriptPackageMeta::Instance, HOTFIX_SEL_SCENE_SCRIPT_PACKAGE }; + static constexpr DB2LoadInfo Instance{ Fields, 4, &SceneScriptPackageMeta::Instance, HOTFIX_SEL_SCENE_SCRIPT_PACKAGE }; }; struct SceneScriptTextLoadInfo @@ -5123,7 +5153,7 @@ struct SpellAuraOptionsLoadInfo static constexpr DB2FieldMeta Fields[10] = { { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, - { .IsSigned = false, .Type = FT_BYTE, .Name = "DifficultyID" }, + { .IsSigned = true, .Type = FT_SHORT, .Name = "DifficultyID" }, { .IsSigned = false, .Type = FT_SHORT, .Name = "CumulativeAura" }, { .IsSigned = true, .Type = FT_INT, .Name = "ProcCategoryRecovery" }, { .IsSigned = false, .Type = FT_BYTE, .Name = "ProcChance" }, @@ -5142,7 +5172,7 @@ struct SpellAuraRestrictionsLoadInfo static constexpr DB2FieldMeta Fields[15] = { { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, - { .IsSigned = true, .Type = FT_INT, .Name = "DifficultyID" }, + { .IsSigned = true, .Type = FT_SHORT, .Name = "DifficultyID" }, { .IsSigned = true, .Type = FT_INT, .Name = "CasterAuraState" }, { .IsSigned = true, .Type = FT_INT, .Name = "TargetAuraState" }, { .IsSigned = true, .Type = FT_INT, .Name = "ExcludeCasterAuraState" }, @@ -5151,10 +5181,10 @@ struct SpellAuraRestrictionsLoadInfo { .IsSigned = true, .Type = FT_INT, .Name = "TargetAuraSpell" }, { .IsSigned = true, .Type = FT_INT, .Name = "ExcludeCasterAuraSpell" }, { .IsSigned = true, .Type = FT_INT, .Name = "ExcludeTargetAuraSpell" }, - { .IsSigned = true, .Type = FT_INT, .Name = "CasterAuraType" }, - { .IsSigned = true, .Type = FT_INT, .Name = "TargetAuraType" }, - { .IsSigned = true, .Type = FT_INT, .Name = "ExcludeCasterAuraType" }, - { .IsSigned = true, .Type = FT_INT, .Name = "ExcludeTargetAuraType" }, + { .IsSigned = true, .Type = FT_SHORT, .Name = "CasterAuraType" }, + { .IsSigned = true, .Type = FT_SHORT, .Name = "TargetAuraType" }, + { .IsSigned = true, .Type = FT_SHORT, .Name = "ExcludeCasterAuraType" }, + { .IsSigned = true, .Type = FT_SHORT, .Name = "ExcludeTargetAuraType" }, { .IsSigned = false, .Type = FT_INT, .Name = "SpellID" }, }; @@ -5192,12 +5222,13 @@ struct SpellCastingRequirementsLoadInfo struct SpellCategoriesLoadInfo { - static constexpr DB2FieldMeta Fields[10] = + static constexpr DB2FieldMeta Fields[11] = { { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, - { .IsSigned = false, .Type = FT_BYTE, .Name = "DifficultyID" }, + { .IsSigned = true, .Type = FT_SHORT, .Name = "DifficultyID" }, { .IsSigned = true, .Type = FT_SHORT, .Name = "Category" }, - { .IsSigned = true, .Type = FT_INT, .Name = "DefenseType" }, + { .IsSigned = true, .Type = FT_BYTE, .Name = "DefenseType" }, + { .IsSigned = true, .Type = FT_INT, .Name = "DiminishType" }, { .IsSigned = true, .Type = FT_BYTE, .Name = "DispelType" }, { .IsSigned = true, .Type = FT_BYTE, .Name = "Mechanic" }, { .IsSigned = true, .Type = FT_INT, .Name = "PreventionType" }, @@ -5206,7 +5237,7 @@ struct SpellCategoriesLoadInfo { .IsSigned = false, .Type = FT_INT, .Name = "SpellID" }, }; - static constexpr DB2LoadInfo Instance{ Fields, 10, &SpellCategoriesMeta::Instance, HOTFIX_SEL_SPELL_CATEGORIES }; + static constexpr DB2LoadInfo Instance{ Fields, 11, &SpellCategoriesMeta::Instance, HOTFIX_SEL_SPELL_CATEGORIES }; }; struct SpellCategoryLoadInfo @@ -5247,7 +5278,7 @@ struct SpellCooldownsLoadInfo static constexpr DB2FieldMeta Fields[7] = { { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, - { .IsSigned = false, .Type = FT_BYTE, .Name = "DifficultyID" }, + { .IsSigned = true, .Type = FT_SHORT, .Name = "DifficultyID" }, { .IsSigned = true, .Type = FT_INT, .Name = "CategoryRecoveryTime" }, { .IsSigned = true, .Type = FT_INT, .Name = "RecoveryTime" }, { .IsSigned = true, .Type = FT_INT, .Name = "StartRecoveryTime" }, @@ -5260,23 +5291,24 @@ struct SpellCooldownsLoadInfo struct SpellDurationLoadInfo { - static constexpr DB2FieldMeta Fields[3] = + static constexpr DB2FieldMeta Fields[4] = { { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, { .IsSigned = true, .Type = FT_INT, .Name = "Duration" }, { .IsSigned = true, .Type = FT_INT, .Name = "MaxDuration" }, + { .IsSigned = true, .Type = FT_INT, .Name = "DurationPerResource" }, }; - static constexpr DB2LoadInfo Instance{ Fields, 3, &SpellDurationMeta::Instance, HOTFIX_SEL_SPELL_DURATION }; + static constexpr DB2LoadInfo Instance{ Fields, 4, &SpellDurationMeta::Instance, HOTFIX_SEL_SPELL_DURATION }; }; struct SpellEffectLoadInfo { - static constexpr DB2FieldMeta Fields[36] = + static constexpr DB2FieldMeta Fields[37] = { { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, { .IsSigned = true, .Type = FT_SHORT, .Name = "EffectAura" }, - { .IsSigned = true, .Type = FT_INT, .Name = "DifficultyID" }, + { .IsSigned = true, .Type = FT_SHORT, .Name = "DifficultyID" }, { .IsSigned = true, .Type = FT_INT, .Name = "EffectIndex" }, { .IsSigned = false, .Type = FT_INT, .Name = "Effect" }, { .IsSigned = false, .Type = FT_FLOAT, .Name = "EffectAmplitude" }, @@ -5299,6 +5331,7 @@ struct SpellEffectLoadInfo { .IsSigned = false, .Type = FT_FLOAT, .Name = "GroupSizeBasePointsCoefficient" }, { .IsSigned = false, .Type = FT_FLOAT, .Name = "EffectBasePoints" }, { .IsSigned = true, .Type = FT_INT, .Name = "ScalingClass" }, + { .IsSigned = true, .Type = FT_INT, .Name = "TargetNodeGraph" }, { .IsSigned = true, .Type = FT_INT, .Name = "EffectMiscValue1" }, { .IsSigned = true, .Type = FT_INT, .Name = "EffectMiscValue2" }, { .IsSigned = false, .Type = FT_INT, .Name = "EffectRadiusIndex1" }, @@ -5312,7 +5345,7 @@ struct SpellEffectLoadInfo { .IsSigned = false, .Type = FT_INT, .Name = "SpellID" }, }; - static constexpr DB2LoadInfo Instance{ Fields, 36, &SpellEffectMeta::Instance, HOTFIX_SEL_SPELL_EFFECT }; + static constexpr DB2LoadInfo Instance{ Fields, 37, &SpellEffectMeta::Instance, HOTFIX_SEL_SPELL_EFFECT }; }; struct SpellEmpowerLoadInfo @@ -5370,7 +5403,7 @@ struct SpellInterruptsLoadInfo static constexpr DB2FieldMeta Fields[8] = { { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, - { .IsSigned = false, .Type = FT_BYTE, .Name = "DifficultyID" }, + { .IsSigned = true, .Type = FT_SHORT, .Name = "DifficultyID" }, { .IsSigned = true, .Type = FT_INT, .Name = "InterruptFlags" }, { .IsSigned = true, .Type = FT_INT, .Name = "AuraInterruptFlags1" }, { .IsSigned = true, .Type = FT_INT, .Name = "AuraInterruptFlags2" }, @@ -5507,7 +5540,7 @@ struct SpellLevelsLoadInfo static constexpr DB2FieldMeta Fields[7] = { { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, - { .IsSigned = false, .Type = FT_BYTE, .Name = "DifficultyID" }, + { .IsSigned = true, .Type = FT_SHORT, .Name = "DifficultyID" }, { .IsSigned = true, .Type = FT_SHORT, .Name = "MaxLevel" }, { .IsSigned = false, .Type = FT_BYTE, .Name = "MaxPassiveAuraLevel" }, { .IsSigned = true, .Type = FT_INT, .Name = "BaseLevel" }, @@ -5520,7 +5553,7 @@ struct SpellLevelsLoadInfo struct SpellMiscLoadInfo { - static constexpr DB2FieldMeta Fields[33] = + static constexpr DB2FieldMeta Fields[34] = { { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, { .IsSigned = true, .Type = FT_INT, .Name = "Attributes1" }, @@ -5539,7 +5572,8 @@ struct SpellMiscLoadInfo { .IsSigned = true, .Type = FT_INT, .Name = "Attributes14" }, { .IsSigned = true, .Type = FT_INT, .Name = "Attributes15" }, { .IsSigned = true, .Type = FT_INT, .Name = "Attributes16" }, - { .IsSigned = false, .Type = FT_BYTE, .Name = "DifficultyID" }, + { .IsSigned = true, .Type = FT_INT, .Name = "Attributes17" }, + { .IsSigned = true, .Type = FT_SHORT, .Name = "DifficultyID" }, { .IsSigned = false, .Type = FT_SHORT, .Name = "CastingTimeIndex" }, { .IsSigned = false, .Type = FT_SHORT, .Name = "DurationIndex" }, { .IsSigned = false, .Type = FT_SHORT, .Name = "PvPDurationIndex" }, @@ -5557,7 +5591,7 @@ struct SpellMiscLoadInfo { .IsSigned = false, .Type = FT_INT, .Name = "SpellID" }, }; - static constexpr DB2LoadInfo Instance{ Fields, 33, &SpellMiscMeta::Instance, HOTFIX_SEL_SPELL_MISC }; + static constexpr DB2LoadInfo Instance{ Fields, 34, &SpellMiscMeta::Instance, HOTFIX_SEL_SPELL_MISC }; }; struct SpellNameLoadInfo @@ -5600,7 +5634,7 @@ struct SpellPowerDifficultyLoadInfo static constexpr DB2FieldMeta Fields[3] = { { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, - { .IsSigned = false, .Type = FT_BYTE, .Name = "DifficultyID" }, + { .IsSigned = true, .Type = FT_SHORT, .Name = "DifficultyID" }, { .IsSigned = false, .Type = FT_BYTE, .Name = "OrderIndex" }, }; @@ -5613,7 +5647,7 @@ struct SpellProcsPerMinuteLoadInfo { { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, { .IsSigned = false, .Type = FT_FLOAT, .Name = "BaseProcRate" }, - { .IsSigned = false, .Type = FT_BYTE, .Name = "Flags" }, + { .IsSigned = true, .Type = FT_INT, .Name = "Flags" }, }; static constexpr DB2LoadInfo Instance{ Fields, 3, &SpellProcsPerMinuteMeta::Instance, HOTFIX_SEL_SPELL_PROCS_PER_MINUTE }; @@ -5624,7 +5658,7 @@ struct SpellProcsPerMinuteModLoadInfo static constexpr DB2FieldMeta Fields[5] = { { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, - { .IsSigned = false, .Type = FT_BYTE, .Name = "Type" }, + { .IsSigned = true, .Type = FT_INT, .Name = "Type" }, { .IsSigned = true, .Type = FT_INT, .Name = "Param" }, { .IsSigned = false, .Type = FT_FLOAT, .Name = "Coeff" }, { .IsSigned = false, .Type = FT_INT, .Name = "SpellProcsPerMinuteID" }, @@ -5654,7 +5688,7 @@ struct SpellRangeLoadInfo { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, { .IsSigned = false, .Type = FT_STRING, .Name = "DisplayName" }, { .IsSigned = false, .Type = FT_STRING, .Name = "DisplayNameShort" }, - { .IsSigned = false, .Type = FT_BYTE, .Name = "Flags" }, + { .IsSigned = true, .Type = FT_INT, .Name = "Flags" }, { .IsSigned = false, .Type = FT_FLOAT, .Name = "RangeMin1" }, { .IsSigned = false, .Type = FT_FLOAT, .Name = "RangeMin2" }, { .IsSigned = false, .Type = FT_FLOAT, .Name = "RangeMax1" }, @@ -5709,29 +5743,30 @@ struct SpellReagentsLoadInfo struct SpellReagentsCurrencyLoadInfo { - static constexpr DB2FieldMeta Fields[4] = + static constexpr DB2FieldMeta Fields[6] = { { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, { .IsSigned = false, .Type = FT_INT, .Name = "SpellID" }, - { .IsSigned = false, .Type = FT_SHORT, .Name = "CurrencyTypesID" }, - { .IsSigned = false, .Type = FT_SHORT, .Name = "CurrencyCount" }, + { .IsSigned = true, .Type = FT_INT, .Name = "CurrencyTypesID" }, + { .IsSigned = true, .Type = FT_INT, .Name = "CurrencyCount" }, + { .IsSigned = true, .Type = FT_INT, .Name = "OverrideRecraftCurrencyCount" }, + { .IsSigned = false, .Type = FT_BYTE, .Name = "OrderSource" }, }; - static constexpr DB2LoadInfo Instance{ Fields, 4, &SpellReagentsCurrencyMeta::Instance, HOTFIX_SEL_SPELL_REAGENTS_CURRENCY }; + static constexpr DB2LoadInfo Instance{ Fields, 6, &SpellReagentsCurrencyMeta::Instance, HOTFIX_SEL_SPELL_REAGENTS_CURRENCY }; }; struct SpellScalingLoadInfo { - static constexpr DB2FieldMeta Fields[5] = + static constexpr DB2FieldMeta Fields[4] = { { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, { .IsSigned = true, .Type = FT_INT, .Name = "SpellID" }, { .IsSigned = false, .Type = FT_INT, .Name = "MinScalingLevel" }, { .IsSigned = false, .Type = FT_INT, .Name = "MaxScalingLevel" }, - { .IsSigned = true, .Type = FT_SHORT, .Name = "ScalesFromItemLevel" }, }; - static constexpr DB2LoadInfo Instance{ Fields, 5, &SpellScalingMeta::Instance, HOTFIX_SEL_SPELL_SCALING }; + static constexpr DB2LoadInfo Instance{ Fields, 4, &SpellScalingMeta::Instance, HOTFIX_SEL_SPELL_SCALING }; }; struct SpellShapeshiftLoadInfo @@ -5782,7 +5817,7 @@ struct SpellTargetRestrictionsLoadInfo static constexpr DB2FieldMeta Fields[9] = { { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, - { .IsSigned = false, .Type = FT_BYTE, .Name = "DifficultyID" }, + { .IsSigned = true, .Type = FT_SHORT, .Name = "DifficultyID" }, { .IsSigned = false, .Type = FT_FLOAT, .Name = "ConeDegrees" }, { .IsSigned = false, .Type = FT_BYTE, .Name = "MaxTargets" }, { .IsSigned = false, .Type = FT_INT, .Name = "MaxTargetLevel" }, @@ -5852,10 +5887,10 @@ struct SpellVisualEffectNameLoadInfo { .IsSigned = false, .Type = FT_FLOAT, .Name = "MinAllowedScale" }, { .IsSigned = false, .Type = FT_FLOAT, .Name = "MaxAllowedScale" }, { .IsSigned = false, .Type = FT_FLOAT, .Name = "Alpha" }, - { .IsSigned = false, .Type = FT_INT, .Name = "Flags" }, + { .IsSigned = true, .Type = FT_INT, .Name = "Flags" }, { .IsSigned = true, .Type = FT_INT, .Name = "TextureFileDataID" }, { .IsSigned = false, .Type = FT_FLOAT, .Name = "EffectRadius" }, - { .IsSigned = false, .Type = FT_INT, .Name = "Type" }, + { .IsSigned = true, .Type = FT_INT, .Name = "Type" }, { .IsSigned = true, .Type = FT_INT, .Name = "GenericID" }, { .IsSigned = false, .Type = FT_INT, .Name = "RibbonQualityID" }, { .IsSigned = true, .Type = FT_INT, .Name = "DissolveEffectID" }, @@ -5907,7 +5942,7 @@ struct SpellVisualMissileLoadInfo { .IsSigned = true, .Type = FT_INT, .Name = "FollowGroundHeight" }, { .IsSigned = false, .Type = FT_INT, .Name = "FollowGroundDropSpeed" }, { .IsSigned = false, .Type = FT_SHORT, .Name = "FollowGroundApproach" }, - { .IsSigned = false, .Type = FT_INT, .Name = "Flags" }, + { .IsSigned = true, .Type = FT_INT, .Name = "Flags" }, { .IsSigned = false, .Type = FT_SHORT, .Name = "SpellMissileMotionID" }, { .IsSigned = false, .Type = FT_INT, .Name = "AnimKitID" }, { .IsSigned = true, .Type = FT_INT, .Name = "ClutterLevel" }, @@ -5924,7 +5959,7 @@ struct SpellXSpellVisualLoadInfo static constexpr DB2FieldMeta Fields[13] = { { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, - { .IsSigned = false, .Type = FT_BYTE, .Name = "DifficultyID" }, + { .IsSigned = true, .Type = FT_SHORT, .Name = "DifficultyID" }, { .IsSigned = false, .Type = FT_INT, .Name = "SpellVisualID" }, { .IsSigned = false, .Type = FT_FLOAT, .Name = "Probability" }, { .IsSigned = true, .Type = FT_INT, .Name = "Flags" }, @@ -6233,7 +6268,7 @@ struct TraitEdgeLoadInfo { .IsSigned = true, .Type = FT_INT, .Name = "VisualStyle" }, { .IsSigned = false, .Type = FT_INT, .Name = "LeftTraitNodeID" }, { .IsSigned = true, .Type = FT_INT, .Name = "RightTraitNodeID" }, - { .IsSigned = true, .Type = FT_INT, .Name = "Type" }, + { .IsSigned = false, .Type = FT_BYTE, .Name = "Type" }, }; static constexpr DB2LoadInfo Instance{ Fields, 5, &TraitEdgeMeta::Instance, HOTFIX_SEL_TRAIT_EDGE }; @@ -6571,7 +6606,7 @@ struct TransportRotationLoadInfo struct UiMapLoadInfo { - static constexpr DB2FieldMeta Fields[16] = + static constexpr DB2FieldMeta Fields[15] = { { .IsSigned = false, .Type = FT_STRING, .Name = "Name" }, { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, @@ -6581,7 +6616,6 @@ struct UiMapLoadInfo { .IsSigned = false, .Type = FT_BYTE, .Name = "Type" }, { .IsSigned = true, .Type = FT_INT, .Name = "BountySetID" }, { .IsSigned = false, .Type = FT_INT, .Name = "BountyDisplayLocation" }, - { .IsSigned = true, .Type = FT_INT, .Name = "VisibilityPlayerConditionID2" }, { .IsSigned = true, .Type = FT_INT, .Name = "VisibilityPlayerConditionID" }, { .IsSigned = true, .Type = FT_BYTE, .Name = "HelpTextPosition" }, { .IsSigned = true, .Type = FT_INT, .Name = "BkgAtlasID" }, @@ -6591,7 +6625,7 @@ struct UiMapLoadInfo { .IsSigned = true, .Type = FT_BYTE, .Name = "MapArtZoneTextPosition" }, }; - static constexpr DB2LoadInfo Instance{ Fields, 16, &UiMapMeta::Instance, HOTFIX_SEL_UI_MAP }; + static constexpr DB2LoadInfo Instance{ Fields, 15, &UiMapMeta::Instance, HOTFIX_SEL_UI_MAP }; }; struct UiMapAssignmentLoadInfo diff --git a/src/server/game/DataStores/DB2Metadata.h b/src/server/game/DataStores/DB2Metadata.h index d78a9c69e4..4830c79eed 100644 --- a/src/server/game/DataStores/DB2Metadata.h +++ b/src/server/game/DataStores/DB2Metadata.h @@ -216,7 +216,7 @@ struct AdventureJournalMeta .ParentIndexField = -1, .FieldCount = 20, .FileFieldCount = 20, - .LayoutHash = 0x88BFAFA8, + .LayoutHash = 0x6DC6E4E8, .Fields = Fields }; }; @@ -946,7 +946,7 @@ struct AreaTriggerMeta { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; static constexpr DB2Meta Instance = @@ -956,7 +956,7 @@ struct AreaTriggerMeta .ParentIndexField = 2, .FieldCount = 15, .FileFieldCount = 15, - .LayoutHash = 0xC9EC1745, + .LayoutHash = 0xB97D2FC5, .Fields = Fields }; }; @@ -1107,7 +1107,7 @@ struct ArenaTrackedItemMeta { { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, }; static constexpr DB2Meta Instance = @@ -1117,7 +1117,7 @@ struct ArenaTrackedItemMeta .ParentIndexField = 1, .FieldCount = 3, .FileFieldCount = 3, - .LayoutHash = 0xFB956EB0, + .LayoutHash = 0x172C8C60, .Fields = Fields }; }; @@ -1156,7 +1156,7 @@ struct ArtifactMeta { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, @@ -1169,7 +1169,7 @@ struct ArtifactMeta .ParentIndexField = -1, .FieldCount = 11, .FileFieldCount = 11, - .LayoutHash = 0x8194B69D, + .LayoutHash = 0x26F2564D, .Fields = Fields }; }; @@ -1191,7 +1191,7 @@ struct ArtifactAppearanceMeta { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, }; @@ -1203,7 +1203,7 @@ struct ArtifactAppearanceMeta .ParentIndexField = 2, .FieldCount = 16, .FileFieldCount = 16, - .LayoutHash = 0x4E8E48F3, + .LayoutHash = 0x1E465883, .Fields = Fields }; }; @@ -1219,7 +1219,7 @@ struct ArtifactAppearanceSetMeta { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; @@ -1230,7 +1230,7 @@ struct ArtifactAppearanceSetMeta .ParentIndexField = 8, .FieldCount = 9, .FileFieldCount = 8, - .LayoutHash = 0xAA95B5A7, + .LayoutHash = 0x347DD4F7, .Fields = Fields }; }; @@ -1285,7 +1285,7 @@ struct ArtifactPowerMeta { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, }; @@ -1296,7 +1296,7 @@ struct ArtifactPowerMeta .ParentIndexField = 2, .FieldCount = 7, .FileFieldCount = 7, - .LayoutHash = 0xEAA59D67, + .LayoutHash = 0x5D0EA207, .Fields = Fields }; }; @@ -1712,7 +1712,7 @@ struct AzeritePowerMeta .ParentIndexField = -1, .FieldCount = 4, .FileFieldCount = 4, - .LayoutHash = 0xEC6B5E70, + .LayoutHash = 0xE433EAB0, .Fields = Fields }; }; @@ -1776,7 +1776,7 @@ struct AzeriteTierUnlockSetMeta .ParentIndexField = -1, .FieldCount = 1, .FileFieldCount = 1, - .LayoutHash = 0x65273FFD, + .LayoutHash = 0x6D5EB3BD, .Fields = Fields }; }; @@ -1936,7 +1936,7 @@ struct BattlePetAbilityMeta { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; static constexpr DB2Meta Instance = @@ -1946,7 +1946,7 @@ struct BattlePetAbilityMeta .ParentIndexField = -1, .FieldCount = 7, .FileFieldCount = 7, - .LayoutHash = 0xAAD491D2, + .LayoutHash = 0x1C738742, .Fields = Fields }; }; @@ -2228,7 +2228,7 @@ struct BattlePetVisualMeta { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, }; @@ -2239,19 +2239,20 @@ struct BattlePetVisualMeta .ParentIndexField = -1, .FieldCount = 7, .FileFieldCount = 7, - .LayoutHash = 0x257B890E, + .LayoutHash = 0x9B125C9E, .Fields = Fields }; }; struct BattlemasterListMeta { - static constexpr DB2MetaField Fields[16] = + static constexpr DB2MetaField Fields[17] = { { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, @@ -2271,9 +2272,9 @@ struct BattlemasterListMeta .FileDataId = 1360265, .IndexField = -1, .ParentIndexField = -1, - .FieldCount = 16, - .FileFieldCount = 16, - .LayoutHash = 0x764135B1, + .FieldCount = 17, + .FileFieldCount = 17, + .LayoutHash = 0x3414CBD7, .Fields = Fields }; }; @@ -2334,8 +2335,8 @@ struct BeamEffectMeta { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; @@ -2347,7 +2348,7 @@ struct BeamEffectMeta .ParentIndexField = -1, .FieldCount = 10, .FileFieldCount = 10, - .LayoutHash = 0xC4C53E61, + .LayoutHash = 0x26B15341, .Fields = Fields }; }; @@ -2747,7 +2748,7 @@ struct Cfg_CategoriesMeta { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, }; @@ -2758,7 +2759,7 @@ struct Cfg_CategoriesMeta .ParentIndexField = -1, .FieldCount = 6, .FileFieldCount = 6, - .LayoutHash = 0x5ED75B84, + .LayoutHash = 0x8710BE94, .Fields = Fields }; }; @@ -2944,8 +2945,8 @@ struct CharBaseSectionMeta static constexpr DB2MetaField Fields[3] = { { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; static constexpr DB2Meta Instance = @@ -2955,7 +2956,7 @@ struct CharBaseSectionMeta .ParentIndexField = -1, .FieldCount = 3, .FileFieldCount = 3, - .LayoutHash = 0xCCB98D5E, + .LayoutHash = 0x923256FE, .Fields = Fields }; }; @@ -3272,7 +3273,7 @@ struct CharacterServiceInfoMeta { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, @@ -3287,7 +3288,7 @@ struct CharacterServiceInfoMeta .ParentIndexField = -1, .FieldCount = 13, .FileFieldCount = 13, - .LayoutHash = 0xD31E4776, + .LayoutHash = 0x7DEDBFA6, .Fields = Fields }; }; @@ -3534,7 +3535,7 @@ struct ChrCreateClassAnimTargetMeta { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; @@ -3546,7 +3547,7 @@ struct ChrCreateClassAnimTargetMeta .ParentIndexField = 6, .FieldCount = 7, .FileFieldCount = 6, - .LayoutHash = 0x951CEB58, + .LayoutHash = 0xF3212C48, .Fields = Fields }; }; @@ -3617,7 +3618,7 @@ struct ChrCustItemGeoModifyMeta { static constexpr DB2MetaField Fields[3] = { - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; @@ -3629,7 +3630,7 @@ struct ChrCustItemGeoModifyMeta .ParentIndexField = -1, .FieldCount = 3, .FileFieldCount = 3, - .LayoutHash = 0xFE865CC3, + .LayoutHash = 0x2986E1F3, .Fields = Fields }; }; @@ -3654,7 +3655,7 @@ struct ChrCustomizationMeta .ParentIndexField = 6, .FieldCount = 7, .FileFieldCount = 6, - .LayoutHash = 0xE5EEFBF5, + .LayoutHash = 0x2FBC8BC5, .Fields = Fields }; }; @@ -3775,7 +3776,7 @@ struct ChrCustomizationConversionMeta .ParentIndexField = 4, .FieldCount = 8, .FileFieldCount = 8, - .LayoutHash = 0xFE20D48D, + .LayoutHash = 0x98D50CBD, .Fields = Fields }; }; @@ -3838,7 +3839,7 @@ struct ChrCustomizationGeosetMeta { static constexpr DB2MetaField Fields[3] = { - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; @@ -3850,7 +3851,7 @@ struct ChrCustomizationGeosetMeta .ParentIndexField = -1, .FieldCount = 3, .FileFieldCount = 3, - .LayoutHash = 0x44C80DEB, + .LayoutHash = 0xBF55F2FB, .Fields = Fields }; }; @@ -3925,7 +3926,7 @@ struct ChrCustomizationOptionMeta .ParentIndexField = 4, .FieldCount = 13, .FileFieldCount = 13, - .LayoutHash = 0x1EB3451E, + .LayoutHash = 0xDCC2A86E, .Fields = Fields }; }; @@ -3982,7 +3983,7 @@ struct ChrCustomizationSkinnedModelMeta static constexpr DB2MetaField Fields[5] = { { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, @@ -3995,7 +3996,7 @@ struct ChrCustomizationSkinnedModelMeta .ParentIndexField = -1, .FieldCount = 5, .FileFieldCount = 5, - .LayoutHash = 0xE447963A, + .LayoutHash = 0x4C32AA8A, .Fields = Fields }; }; @@ -4561,7 +4562,7 @@ struct CollectableSourceEncounterSparseMeta static constexpr DB2MetaField Fields[3] = { { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; @@ -4572,7 +4573,7 @@ struct CollectableSourceEncounterSparseMeta .ParentIndexField = 2, .FieldCount = 3, .FileFieldCount = 2, - .LayoutHash = 0xC7F0206A, + .LayoutHash = 0x11333AFA, .Fields = Fields }; }; @@ -4845,6 +4846,27 @@ struct ComponentTextureFileDataMeta }; }; +struct CompositeSpellsUIRedirectMeta +{ + static constexpr DB2MetaField Fields[3] = + { + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 7556242, + .IndexField = -1, + .ParentIndexField = -1, + .FieldCount = 3, + .FileFieldCount = 3, + .LayoutHash = 0xA041AC9D, + .Fields = Fields + }; +}; + struct ConditionalChrModelMeta { static constexpr DB2MetaField Fields[6] = @@ -4933,7 +4955,7 @@ struct ConditionalItemAppearanceMeta .ParentIndexField = 5, .FieldCount = 6, .FileFieldCount = 5, - .LayoutHash = 0x5303936C, + .LayoutHash = 0x1D8E897C, .Fields = Fields }; }; @@ -4943,7 +4965,7 @@ struct ConfigurationWarningMeta static constexpr DB2MetaField Fields[2] = { { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, }; static constexpr DB2Meta Instance = @@ -4953,7 +4975,7 @@ struct ConfigurationWarningMeta .ParentIndexField = -1, .FieldCount = 2, .FileFieldCount = 2, - .LayoutHash = 0xE476B573, + .LayoutHash = 0x0D8BF833, .Fields = Fields }; }; @@ -4996,7 +5018,7 @@ struct ContentRestrictionRuleMeta { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; @@ -5007,7 +5029,7 @@ struct ContentRestrictionRuleMeta .ParentIndexField = 8, .FieldCount = 9, .FileFieldCount = 8, - .LayoutHash = 0xC10A8C25, + .LayoutHash = 0xA5FE1705, .Fields = Fields }; }; @@ -5028,7 +5050,7 @@ struct ContentRestrictionRuleSetMeta .ParentIndexField = -1, .FieldCount = 3, .FileFieldCount = 3, - .LayoutHash = 0xFE3B102A, + .LayoutHash = 0x5774D75A, .Fields = Fields }; }; @@ -5163,7 +5185,7 @@ struct ContributionStyleMeta { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, @@ -5176,7 +5198,7 @@ struct ContributionStyleMeta .ParentIndexField = -1, .FieldCount = 7, .FileFieldCount = 7, - .LayoutHash = 0x88C22204, + .LayoutHash = 0x045BF734, .Fields = Fields }; }; @@ -5533,9 +5555,10 @@ struct CraftingOrderXLabelMeta struct CraftingQualityMeta { - static constexpr DB2MetaField Fields[1] = + static constexpr DB2MetaField Fields[2] = { { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; static constexpr DB2Meta Instance = @@ -5543,9 +5566,38 @@ struct CraftingQualityMeta .FileDataId = 4373538, .IndexField = -1, .ParentIndexField = -1, - .FieldCount = 1, - .FileFieldCount = 1, - .LayoutHash = 0xD0952E97, + .FieldCount = 2, + .FileFieldCount = 2, + .LayoutHash = 0x5E7AC242, + .Fields = Fields + }; +}; + +struct CraftingQualityAtlasSetMeta +{ + static constexpr DB2MetaField Fields[11] = + { + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 7012110, + .IndexField = -1, + .ParentIndexField = -1, + .FieldCount = 11, + .FileFieldCount = 11, + .LayoutHash = 0x9BD23E0F, .Fields = Fields }; }; @@ -5573,24 +5625,26 @@ struct CraftingReagentEffectMeta struct CraftingReagentQualityMeta { - static constexpr DB2MetaField Fields[6] = + static constexpr DB2MetaField Fields[8] = { { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; static constexpr DB2Meta Instance = { .FileDataId = 4382197, .IndexField = 0, - .ParentIndexField = 5, - .FieldCount = 6, - .FileFieldCount = 5, - .LayoutHash = 0x7E46ED08, + .ParentIndexField = 7, + .FieldCount = 8, + .FileFieldCount = 7, + .LayoutHash = 0xBFED1EE1, .Fields = Fields }; }; @@ -6388,7 +6442,7 @@ struct CurrencyContainerMeta struct CurrencyTypesMeta { - static constexpr DB2MetaField Fields[19] = + static constexpr DB2MetaField Fields[22] = { { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, @@ -6408,6 +6462,9 @@ struct CurrencyTypesMeta { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 2, .IsSigned = true }, }; @@ -6416,9 +6473,9 @@ struct CurrencyTypesMeta .FileDataId = 1095531, .IndexField = -1, .ParentIndexField = -1, - .FieldCount = 19, - .FileFieldCount = 19, - .LayoutHash = 0xB4FEFA1A, + .FieldCount = 22, + .FileFieldCount = 22, + .LayoutHash = 0xFA3226AB, .Fields = Fields }; }; @@ -6467,6 +6524,30 @@ struct CurvePointMeta }; }; +struct DamageMeterOverrideMeta +{ + static constexpr DB2MetaField Fields[6] = + { + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 7580602, + .IndexField = -1, + .ParentIndexField = -1, + .FieldCount = 6, + .FileFieldCount = 6, + .LayoutHash = 0x247A3C9D, + .Fields = Fields + }; +}; + struct DataTagGroupMeta { static constexpr DB2MetaField Fields[1] = @@ -6527,6 +6608,27 @@ struct DataTagInfoMeta }; }; +struct DataTagXHouseDecorRecordMeta +{ + static constexpr DB2MetaField Fields[3] = + { + { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 7570371, + .IndexField = 0, + .ParentIndexField = 2, + .FieldCount = 3, + .FileFieldCount = 2, + .LayoutHash = 0x5557A217, + .Fields = Fields + }; +}; + struct DataTagXRecordMeta { static constexpr DB2MetaField Fields[4] = @@ -6826,26 +6928,6 @@ struct DestructibleModelDataMeta }; }; -struct DeviceBlacklistMeta -{ - static constexpr DB2MetaField Fields[2] = - { - { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, - }; - - static constexpr DB2Meta Instance = - { - .FileDataId = 922722, - .IndexField = -1, - .ParentIndexField = -1, - .FieldCount = 2, - .FileFieldCount = 2, - .LayoutHash = 0x29FEDBB1, - .Fields = Fields - }; -}; - struct DifficultyMeta { static constexpr DB2MetaField Fields[14] = @@ -6854,12 +6936,12 @@ struct DifficultyMeta { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, @@ -6873,7 +6955,7 @@ struct DifficultyMeta .ParentIndexField = -1, .FieldCount = 14, .FileFieldCount = 14, - .LayoutHash = 0x31965C41, + .LayoutHash = 0xB810C351, .Fields = Fields }; }; @@ -6914,7 +6996,7 @@ struct DissolveEffectMeta { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, @@ -6937,7 +7019,7 @@ struct DissolveEffectMeta .ParentIndexField = -1, .FieldCount = 21, .FileFieldCount = 21, - .LayoutHash = 0x1E2060A7, + .LayoutHash = 0x511A28B7, .Fields = Fields }; }; @@ -7000,31 +7082,6 @@ struct DriveCapabilityTierMeta }; }; -struct DriverBlacklistMeta -{ - static constexpr DB2MetaField Fields[7] = - { - { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, - }; - - static constexpr DB2Meta Instance = - { - .FileDataId = 922720, - .IndexField = -1, - .ParentIndexField = -1, - .FieldCount = 7, - .FileFieldCount = 7, - .LayoutHash = 0x5A336370, - .Fields = Fields - }; -}; - struct DungeonEncounterMeta { static constexpr DB2MetaField Fields[11] = @@ -7032,7 +7089,7 @@ struct DungeonEncounterMeta { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, @@ -7049,7 +7106,7 @@ struct DungeonEncounterMeta .ParentIndexField = 2, .FieldCount = 11, .FileFieldCount = 11, - .LayoutHash = 0xE408B8D4, + .LayoutHash = 0x35863DC4, .Fields = Fields }; }; @@ -7152,7 +7209,7 @@ struct EdgeGlowEffectMeta { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, @@ -7165,7 +7222,7 @@ struct EdgeGlowEffectMeta .ParentIndexField = -1, .FieldCount = 13, .FileFieldCount = 13, - .LayoutHash = 0x9B3C5463, + .LayoutHash = 0xEBFB39E3, .Fields = Fields }; }; @@ -7261,6 +7318,72 @@ struct EmotesTextSoundMeta }; }; +struct EncounterEventMeta +{ + static constexpr DB2MetaField Fields[8] = + { + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 7571075, + .IndexField = -1, + .ParentIndexField = 7, + .FieldCount = 8, + .FileFieldCount = 7, + .LayoutHash = 0x54A32DBB, + .Fields = Fields + }; +}; + +struct EntryNodeMeta +{ + static constexpr DB2MetaField Fields[2] = + { + { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 5609253, + .IndexField = 0, + .ParentIndexField = 1, + .FieldCount = 2, + .FileFieldCount = 2, + .LayoutHash = 0x161FAF9C, + .Fields = Fields + }; +}; + +struct EntryTemplateMeta +{ + static constexpr DB2MetaField Fields[2] = + { + { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 5609255, + .IndexField = -1, + .ParentIndexField = 1, + .FieldCount = 2, + .FileFieldCount = 1, + .LayoutHash = 0xC31EAF5A, + .Fields = Fields + }; +}; + struct EnvironmentalDamageMeta { static constexpr DB2MetaField Fields[2] = @@ -7281,6 +7404,55 @@ struct EnvironmentalDamageMeta }; }; +struct EventSchedulerCategoryMeta +{ + static constexpr DB2MetaField Fields[3] = + { + { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 7499494, + .IndexField = 1, + .ParentIndexField = -1, + .FieldCount = 3, + .FileFieldCount = 3, + .LayoutHash = 0x7BF6F7E0, + .Fields = Fields + }; +}; + +struct EventSchedulerEventMeta +{ + static constexpr DB2MetaField Fields[10] = + { + { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 7499495, + .IndexField = 0, + .ParentIndexField = -1, + .FieldCount = 10, + .FileFieldCount = 10, + .LayoutHash = 0x1531C7B5, + .Fields = Fields + }; +}; + struct ExhaustionMeta { static constexpr DB2MetaField Fields[7] = @@ -8002,7 +8174,7 @@ struct GameObjectDiffAnimMapMeta { static constexpr DB2MetaField Fields[4] = { - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, @@ -8015,7 +8187,7 @@ struct GameObjectDiffAnimMapMeta .ParentIndexField = 3, .FieldCount = 4, .FileFieldCount = 3, - .LayoutHash = 0x41A0ED3A, + .LayoutHash = 0x8B5D859A, .Fields = Fields }; }; @@ -8066,7 +8238,7 @@ struct GameObjectDisplayInfoMeta .ParentIndexField = -1, .FieldCount = 9, .FileFieldCount = 9, - .LayoutHash = 0xD85414D1, + .LayoutHash = 0x16D1DD61, .Fields = Fields }; }; @@ -8171,7 +8343,7 @@ struct GameTipsMeta static constexpr DB2MetaField Fields[5] = { { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, @@ -8184,7 +8356,7 @@ struct GameTipsMeta .ParentIndexField = -1, .FieldCount = 5, .FileFieldCount = 5, - .LayoutHash = 0xA180E707, + .LayoutHash = 0x00F69717, .Fields = Fields }; }; @@ -8401,7 +8573,7 @@ struct GarrBuildingDoodadSetMeta .ParentIndexField = -1, .FieldCount = 5, .FileFieldCount = 5, - .LayoutHash = 0x8D671E1C, + .LayoutHash = 0x0E15C1BC, .Fields = Fields }; }; @@ -8738,10 +8910,10 @@ struct GarrFollowerUICreatureMeta static constexpr DB2MetaField Fields[6] = { { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; @@ -8752,7 +8924,7 @@ struct GarrFollowerUICreatureMeta .ParentIndexField = 5, .FieldCount = 6, .FileFieldCount = 5, - .LayoutHash = 0x3B69F3A8, + .LayoutHash = 0xAED9E7F8, .Fields = Fields }; }; @@ -9049,14 +9221,13 @@ struct GarrMssnBonusAbilityMeta struct GarrPlotMeta { - static constexpr DB2MetaField Fields[7] = + static constexpr DB2MetaField Fields[6] = { { .Type = FT_STRING_NOT_LOCALIZED, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 2, .IsSigned = false }, }; @@ -9065,9 +9236,9 @@ struct GarrPlotMeta .FileDataId = 937634, .IndexField = -1, .ParentIndexField = -1, - .FieldCount = 7, - .FileFieldCount = 7, - .LayoutHash = 0x3A27A44E, + .FieldCount = 6, + .FileFieldCount = 6, + .LayoutHash = 0xC98F0080, .Fields = Fields }; }; @@ -9127,7 +9298,7 @@ struct GarrPlotUICategoryMeta .ParentIndexField = -1, .FieldCount = 2, .FileFieldCount = 2, - .LayoutHash = 0xB0A277C0, + .LayoutHash = 0x3DD88AE0, .Fields = Fields }; }; @@ -9188,7 +9359,7 @@ struct GarrSpecializationMeta { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 2, .IsSigned = true }, @@ -9201,7 +9372,7 @@ struct GarrSpecializationMeta .ParentIndexField = -1, .FieldCount = 7, .FileFieldCount = 7, - .LayoutHash = 0x0A0EBC1C, + .LayoutHash = 0x1AD6425C, .Fields = Fields }; }; @@ -9274,7 +9445,7 @@ struct GarrTalentMeta .ParentIndexField = 3, .FieldCount = 15, .FileFieldCount = 15, - .LayoutHash = 0x8FBDD72A, + .LayoutHash = 0xA604C85A, .Fields = Fields }; }; @@ -9301,7 +9472,7 @@ struct GarrTalentCostMeta .ParentIndexField = 2, .FieldCount = 9, .FileFieldCount = 9, - .LayoutHash = 0x8C81B978, + .LayoutHash = 0x0BAE76A8, .Fields = Fields }; }; @@ -9399,7 +9570,7 @@ struct GarrTalentRankGroupResearchModMeta .ParentIndexField = 3, .FieldCount = 4, .FileFieldCount = 3, - .LayoutHash = 0x06CF9782, + .LayoutHash = 0xA17D21F2, .Fields = Fields }; }; @@ -9740,7 +9911,7 @@ struct GlobalStringsMeta { { .Type = FT_STRING_NOT_LOCALIZED, .ArraySize = 1, .IsSigned = true }, { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; static constexpr DB2Meta Instance = @@ -9750,7 +9921,7 @@ struct GlobalStringsMeta .ParentIndexField = -1, .FieldCount = 3, .FileFieldCount = 3, - .LayoutHash = 0x62707826, + .LayoutHash = 0xD40F6D96, .Fields = Fields }; }; @@ -9866,7 +10037,7 @@ struct GossipNPCOptionMeta .ParentIndexField = -1, .FieldCount = 17, .FileFieldCount = 17, - .LayoutHash = 0x5679719D, + .LayoutHash = 0x5247127B, .Fields = Fields }; }; @@ -9887,7 +10058,7 @@ struct GossipNPCOptionDisplayInfoMeta .ParentIndexField = -1, .FieldCount = 3, .FileFieldCount = 3, - .LayoutHash = 0xFEE7A6C4, + .LayoutHash = 0x10CC2F94, .Fields = Fields }; }; @@ -10073,11 +10244,11 @@ struct GroupFinderActivityMeta { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, @@ -10096,7 +10267,7 @@ struct GroupFinderActivityMeta .ParentIndexField = -1, .FieldCount = 19, .FileFieldCount = 19, - .LayoutHash = 0x1EE9C586, + .LayoutHash = 0x5436E136, .Fields = Fields }; }; @@ -10541,8 +10712,8 @@ struct HolidaysMeta { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_SHORT, .ArraySize = 10, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 26, .IsSigned = false }, { .Type = FT_BYTE, .ArraySize = 10, .IsSigned = false }, @@ -10556,7 +10727,7 @@ struct HolidaysMeta .ParentIndexField = -1, .FieldCount = 12, .FileFieldCount = 12, - .LayoutHash = 0xB3A34A20, + .LayoutHash = 0x432931C0, .Fields = Fields }; }; @@ -10687,10 +10858,11 @@ struct HouseDecorThemeSetMeta struct HouseExteriorWmoDataMeta { - static constexpr DB2MetaField Fields[2] = + static constexpr DB2MetaField Fields[3] = { { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; static constexpr DB2Meta Instance = @@ -10698,9 +10870,9 @@ struct HouseExteriorWmoDataMeta .FileDataId = 6931309, .IndexField = 1, .ParentIndexField = -1, - .FieldCount = 2, - .FileFieldCount = 2, - .LayoutHash = 0xEBA8ED0E, + .FieldCount = 3, + .FileFieldCount = 3, + .LayoutHash = 0x6E03D8C8, .Fields = Fields }; }; @@ -10876,6 +11048,171 @@ struct ImportPriceWeaponMeta }; }; +struct InitiativeCycleMeta +{ + static constexpr DB2MetaField Fields[6] = + { + { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 6880277, + .IndexField = 0, + .ParentIndexField = -1, + .FieldCount = 6, + .FileFieldCount = 6, + .LayoutHash = 0xDFE6371A, + .Fields = Fields + }; +}; + +struct InitiativeCyclePriorityMeta +{ + static constexpr DB2MetaField Fields[5] = + { + { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 6880278, + .IndexField = 0, + .ParentIndexField = 4, + .FieldCount = 5, + .FileFieldCount = 4, + .LayoutHash = 0x99EE5F8E, + .Fields = Fields + }; +}; + +struct InitiativeMilestoneMeta +{ + static constexpr DB2MetaField Fields[5] = + { + { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 6880279, + .IndexField = 0, + .ParentIndexField = 4, + .FieldCount = 5, + .FileFieldCount = 4, + .LayoutHash = 0x886B8204, + .Fields = Fields + }; +}; + +struct InitiativeRewardMeta +{ + static constexpr DB2MetaField Fields[9] = + { + { .Type = FT_LONG, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 6880280, + .IndexField = 3, + .ParentIndexField = -1, + .FieldCount = 9, + .FileFieldCount = 9, + .LayoutHash = 0x51D55D40, + .Fields = Fields + }; +}; + +struct InitiativeRewardXMilestoneMeta +{ + static constexpr DB2MetaField Fields[2] = + { + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 6914777, + .IndexField = -1, + .ParentIndexField = 1, + .FieldCount = 2, + .FileFieldCount = 1, + .LayoutHash = 0x92350A35, + .Fields = Fields + }; +}; + +struct InitiativeTaskMeta +{ + static constexpr DB2MetaField Fields[9] = + { + { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 6880281, + .IndexField = 2, + .ParentIndexField = -1, + .FieldCount = 9, + .FileFieldCount = 9, + .LayoutHash = 0xE2499CE2, + .Fields = Fields + }; +}; + +struct InitiativeXTaskMeta +{ + static constexpr DB2MetaField Fields[3] = + { + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 6880282, + .IndexField = -1, + .ParentIndexField = 2, + .FieldCount = 3, + .FileFieldCount = 2, + .LayoutHash = 0x21B84C90, + .Fields = Fields + }; +}; + struct InvasionClientDataMeta { static constexpr DB2MetaField Fields[10] = @@ -10906,7 +11243,7 @@ struct InvasionClientDataMeta struct ItemMeta { - static constexpr DB2MetaField Fields[12] = + static constexpr DB2MetaField Fields[15] = { { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, @@ -10918,8 +11255,11 @@ struct ItemMeta { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, }; static constexpr DB2Meta Instance = @@ -10927,9 +11267,9 @@ struct ItemMeta .FileDataId = 841626, .IndexField = -1, .ParentIndexField = -1, - .FieldCount = 12, - .FileFieldCount = 12, - .LayoutHash = 0x6D1DD0CE, + .FieldCount = 15, + .FileFieldCount = 15, + .LayoutHash = 0x996192AA, .Fields = Fields }; }; @@ -11353,7 +11693,7 @@ struct ItemChildEquipmentMeta { { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; static constexpr DB2Meta Instance = @@ -11363,7 +11703,7 @@ struct ItemChildEquipmentMeta .ParentIndexField = 0, .FieldCount = 3, .FileFieldCount = 3, - .LayoutHash = 0x2B57F9DE, + .LayoutHash = 0x9E21E6BE, .Fields = Fields }; }; @@ -11417,7 +11757,7 @@ struct ItemContextPickerEntryMeta { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; @@ -11429,7 +11769,7 @@ struct ItemContextPickerEntryMeta .ParentIndexField = 6, .FieldCount = 7, .FileFieldCount = 6, - .LayoutHash = 0x18546FD3, + .LayoutHash = 0x60CECC03, .Fields = Fields }; }; @@ -11764,7 +12104,7 @@ struct ItemEffectMeta static constexpr DB2MetaField Fields[9] = { { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, @@ -11781,7 +12121,7 @@ struct ItemEffectMeta .ParentIndexField = -1, .FieldCount = 9, .FileFieldCount = 9, - .LayoutHash = 0xDA85CB08, + .LayoutHash = 0x4CA77678, .Fields = Fields }; }; @@ -11986,7 +12326,7 @@ struct ItemLimitCategoryMeta { { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; static constexpr DB2Meta Instance = @@ -11996,7 +12336,7 @@ struct ItemLimitCategoryMeta .ParentIndexField = -1, .FieldCount = 3, .FileFieldCount = 3, - .LayoutHash = 0x22467A2D, + .LayoutHash = 0xB0A784BD, .Fields = Fields }; }; @@ -12236,23 +12576,24 @@ struct ItemRangedDisplayInfoMeta struct ItemRecraftMeta { - static constexpr DB2MetaField Fields[5] = + static constexpr DB2MetaField Fields[6] = { { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; static constexpr DB2Meta Instance = { .FileDataId = 5150118, .IndexField = 0, - .ParentIndexField = 4, - .FieldCount = 5, - .FileFieldCount = 4, - .LayoutHash = 0xD7F3331F, + .ParentIndexField = -1, + .FieldCount = 6, + .FileFieldCount = 6, + .LayoutHash = 0x8064AE1F, .Fields = Fields }; }; @@ -12296,7 +12637,7 @@ struct ItemSalvageMeta .ParentIndexField = -1, .FieldCount = 3, .FileFieldCount = 3, - .LayoutHash = 0x83141ADC, + .LayoutHash = 0xA2C6F26C, .Fields = Fields }; }; @@ -12381,7 +12722,7 @@ struct ItemSetMeta static constexpr DB2MetaField Fields[5] = { { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 17, .IsSigned = false }, @@ -12394,7 +12735,7 @@ struct ItemSetMeta .ParentIndexField = -1, .FieldCount = 5, .FileFieldCount = 5, - .LayoutHash = 0xEEB090F4, + .LayoutHash = 0xF79068A4, .Fields = Fields }; }; @@ -12553,11 +12894,12 @@ struct ItemSpecOverrideMeta struct ItemSquishEraMeta { - static constexpr DB2MetaField Fields[3] = + static constexpr DB2MetaField Fields[4] = { { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; static constexpr DB2Meta Instance = @@ -12565,9 +12907,9 @@ struct ItemSquishEraMeta .FileDataId = 7322706, .IndexField = 0, .ParentIndexField = -1, - .FieldCount = 3, - .FileFieldCount = 3, - .LayoutHash = 0x6764D247, + .FieldCount = 4, + .FileFieldCount = 4, + .LayoutHash = 0xED6F4ECF, .Fields = Fields }; }; @@ -12793,7 +13135,7 @@ struct JournalEncounterItemMeta { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; @@ -12804,7 +13146,7 @@ struct JournalEncounterItemMeta .ParentIndexField = 1, .FieldCount = 8, .FileFieldCount = 8, - .LayoutHash = 0xD95559FA, + .LayoutHash = 0x8ED8EAEA, .Fields = Fields }; }; @@ -12846,7 +13188,7 @@ struct JournalEncounterXDifficultyMeta { static constexpr DB2MetaField Fields[2] = { - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; @@ -12857,7 +13199,7 @@ struct JournalEncounterXDifficultyMeta .ParentIndexField = 1, .FieldCount = 2, .FileFieldCount = 1, - .LayoutHash = 0x1E14364D, + .LayoutHash = 0xC038156D, .Fields = Fields }; }; @@ -12964,7 +13306,7 @@ struct JournalItemXDifficultyMeta { static constexpr DB2MetaField Fields[2] = { - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; @@ -12975,7 +13317,7 @@ struct JournalItemXDifficultyMeta .ParentIndexField = 1, .FieldCount = 2, .FileFieldCount = 1, - .LayoutHash = 0x6F46EEA2, + .LayoutHash = 0x0AD35082, .Fields = Fields }; }; @@ -12984,7 +13326,7 @@ struct JournalSectionXDifficultyMeta { static constexpr DB2MetaField Fields[2] = { - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; @@ -12995,7 +13337,7 @@ struct JournalSectionXDifficultyMeta .ParentIndexField = 1, .FieldCount = 2, .FileFieldCount = 1, - .LayoutHash = 0x6CF791BA, + .LayoutHash = 0x9A12141A, .Fields = Fields }; }; @@ -13120,7 +13462,7 @@ struct LFGDungeonsMeta { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, @@ -13152,7 +13494,7 @@ struct LFGDungeonsMeta .ParentIndexField = -1, .FieldCount = 33, .FileFieldCount = 33, - .LayoutHash = 0x8CB09088, + .LayoutHash = 0x34B02DE8, .Fields = Fields }; }; @@ -13289,7 +13631,7 @@ struct LightMeta struct LightDataMeta { - static constexpr DB2MetaField Fields[46] = + static constexpr DB2MetaField Fields[47] = { { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, @@ -13334,6 +13676,7 @@ struct LightDataMeta { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 4, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 4, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 4, .IsSigned = true }, @@ -13344,16 +13687,16 @@ struct LightDataMeta .FileDataId = 1375580, .IndexField = -1, .ParentIndexField = 0, - .FieldCount = 46, - .FileFieldCount = 46, - .LayoutHash = 0xB5052D20, + .FieldCount = 47, + .FileFieldCount = 47, + .LayoutHash = 0x6ABF2921, .Fields = Fields }; }; struct LightParamsMeta { - static constexpr DB2MetaField Fields[16] = + static constexpr DB2MetaField Fields[30] = { { .Type = FT_FLOAT, .ArraySize = 3, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 3, .IsSigned = true }, @@ -13371,6 +13714,20 @@ struct LightParamsMeta { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, }; static constexpr DB2Meta Instance = @@ -13378,9 +13735,9 @@ struct LightParamsMeta .FileDataId = 1334669, .IndexField = -1, .ParentIndexField = -1, - .FieldCount = 16, - .FileFieldCount = 16, - .LayoutHash = 0x96239779, + .FieldCount = 30, + .FileFieldCount = 30, + .LayoutHash = 0xF34ED6FA, .Fields = Fields }; }; @@ -13522,6 +13879,27 @@ struct LightningMeta }; }; +struct LinkMeta +{ + static constexpr DB2MetaField Fields[3] = + { + { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 5609261, + .IndexField = 0, + .ParentIndexField = -1, + .FieldCount = 3, + .FileFieldCount = 3, + .LayoutHash = 0x598AD66A, + .Fields = Fields + }; +}; + struct LiquidMaterialMeta { static constexpr DB2MetaField Fields[2] = @@ -13586,8 +13964,8 @@ struct LiquidTypeMeta { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 6, .IsSigned = false }, - { .Type = FT_INT, .ArraySize = 2, .IsSigned = true }, - { .Type = FT_FLOAT, .ArraySize = 18, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 3, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 38, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 4, .IsSigned = false }, { .Type = FT_FLOAT, .ArraySize = 4, .IsSigned = true }, }; @@ -13599,7 +13977,7 @@ struct LiquidTypeMeta .ParentIndexField = -1, .FieldCount = 21, .FileFieldCount = 21, - .LayoutHash = 0x4397CEE6, + .LayoutHash = 0xD1ECEEC9, .Fields = Fields }; }; @@ -13869,7 +14247,7 @@ struct LoreTextPublicMeta { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; @@ -13881,7 +14259,29 @@ struct LoreTextPublicMeta .ParentIndexField = 5, .FieldCount = 6, .FileFieldCount = 5, - .LayoutHash = 0x35AA0D60, + .LayoutHash = 0xD851D530, + .Fields = Fields + }; +}; + +struct MCRCurrencyMeta +{ + static constexpr DB2MetaField Fields[4] = + { + { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 7449895, + .IndexField = -1, + .ParentIndexField = -1, + .FieldCount = 4, + .FileFieldCount = 4, + .LayoutHash = 0x9E5E402B, .Fields = Fields }; }; @@ -14176,7 +14576,7 @@ struct MapDifficultyMeta { { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, @@ -14195,7 +14595,7 @@ struct MapDifficultyMeta .ParentIndexField = 11, .FieldCount = 12, .FileFieldCount = 11, - .LayoutHash = 0xCF621FA3, + .LayoutHash = 0x24A16AD3, .Fields = Fields }; }; @@ -14205,7 +14605,7 @@ struct MapDifficultyRedirectMeta static constexpr DB2MetaField Fields[3] = { { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; @@ -14216,7 +14616,7 @@ struct MapDifficultyRedirectMeta .ParentIndexField = 2, .FieldCount = 3, .FileFieldCount = 2, - .LayoutHash = 0xD5D43631, + .LayoutHash = 0xBFA74D81, .Fields = Fields }; }; @@ -14496,46 +14896,41 @@ struct ModelRibbonQualityMeta }; }; -struct ModelSoundSettingsMeta +struct ModelSoundAnimEntryMeta { static constexpr DB2MetaField Fields[2] = { - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; static constexpr DB2Meta Instance = { - .FileDataId = 5682517, + .FileDataId = 5393274, .IndexField = -1, - .ParentIndexField = 1, + .ParentIndexField = 0, .FieldCount = 2, - .FileFieldCount = 1, - .LayoutHash = 0xDB67A4DC, + .FileFieldCount = 2, + .LayoutHash = 0x324E0B06, .Fields = Fields }; }; -struct ModelSoundTagEntryMeta +struct ModelSoundEntryMeta { - static constexpr DB2MetaField Fields[6] = + static constexpr DB2MetaField Fields[1] = { { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; static constexpr DB2Meta Instance = { - .FileDataId = 5393277, + .FileDataId = 5393275, .IndexField = -1, - .ParentIndexField = 5, - .FieldCount = 6, - .FileFieldCount = 6, - .LayoutHash = 0x2DAEAE9D, + .ParentIndexField = 0, + .FieldCount = 1, + .FileFieldCount = 1, + .LayoutHash = 0x4A95649C, .Fields = Fields }; }; @@ -14610,7 +15005,7 @@ struct ModifiedCraftingReagentItemMeta struct ModifiedCraftingReagentSlotMeta { - static constexpr DB2MetaField Fields[7] = + static constexpr DB2MetaField Fields[8] = { { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, @@ -14619,6 +15014,7 @@ struct ModifiedCraftingReagentSlotMeta { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, }; static constexpr DB2Meta Instance = @@ -14626,9 +15022,9 @@ struct ModifiedCraftingReagentSlotMeta .FileDataId = 3386488, .IndexField = 1, .ParentIndexField = -1, - .FieldCount = 7, - .FileFieldCount = 7, - .LayoutHash = 0x32F2149E, + .FieldCount = 8, + .FileFieldCount = 8, + .LayoutHash = 0xA7B7C672, .Fields = Fields }; }; @@ -15359,7 +15755,7 @@ struct NamesReservedLocaleMeta struct NeighborhoodInitiativeMeta { - static constexpr DB2MetaField Fields[9] = + static constexpr DB2MetaField Fields[7] = { { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, @@ -15368,8 +15764,6 @@ struct NeighborhoodInitiativeMeta { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; static constexpr DB2Meta Instance = @@ -15377,77 +15771,9 @@ struct NeighborhoodInitiativeMeta .FileDataId = 6699736, .IndexField = 2, .ParentIndexField = -1, - .FieldCount = 9, - .FileFieldCount = 9, - .LayoutHash = 0x1C8B2515, - .Fields = Fields - }; -}; - -struct NeighborhoodInitiativeRewardMeta -{ - static constexpr DB2MetaField Fields[4] = - { - { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - }; - - static constexpr DB2Meta Instance = - { - .FileDataId = 6702594, - .IndexField = 0, - .ParentIndexField = 3, - .FieldCount = 4, - .FileFieldCount = 3, - .LayoutHash = 0x773AA9EA, - .Fields = Fields - }; -}; - -struct NeighborhoodInitiativeTaskMeta -{ - static constexpr DB2MetaField Fields[8] = - { - { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - }; - - static constexpr DB2Meta Instance = - { - .FileDataId = 6702595, - .IndexField = 2, - .ParentIndexField = -1, - .FieldCount = 8, - .FileFieldCount = 8, - .LayoutHash = 0xF4A7B3C3, - .Fields = Fields - }; -}; - -struct NeighborhoodInitiativeXTaskMeta -{ - static constexpr DB2MetaField Fields[2] = - { - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - }; - - static constexpr DB2Meta Instance = - { - .FileDataId = 6708736, - .IndexField = -1, - .ParentIndexField = 1, - .FieldCount = 2, - .FileFieldCount = 1, - .LayoutHash = 0x985EB2D9, + .FieldCount = 7, + .FileFieldCount = 7, + .LayoutHash = 0xF67761EA, .Fields = Fields }; }; @@ -15500,7 +15826,7 @@ struct NeighborhoodNameGenMeta struct NeighborhoodPlotMeta { - static constexpr DB2MetaField Fields[15] = + static constexpr DB2MetaField Fields[16] = { { .Type = FT_LONG, .ArraySize = 1, .IsSigned = false }, { .Type = FT_STRING_NOT_LOCALIZED, .ArraySize = 1, .IsSigned = true }, @@ -15509,24 +15835,131 @@ struct NeighborhoodPlotMeta { .Type = FT_FLOAT, .ArraySize = 3, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 3, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 3, .IsSigned = true }, - { .Type = FT_FLOAT, .ArraySize = 3, .IsSigned = true }, - { .Type = FT_FLOAT, .ArraySize = 3, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; static constexpr DB2Meta Instance = { .FileDataId = 5550625, - .IndexField = 9, - .ParentIndexField = 10, - .FieldCount = 15, - .FileFieldCount = 15, - .LayoutHash = 0x4D8362A1, + .IndexField = 7, + .ParentIndexField = 8, + .FieldCount = 16, + .FileFieldCount = 16, + .LayoutHash = 0x03FC4E53, + .Fields = Fields + }; +}; + +struct NodeMeta +{ + static constexpr DB2MetaField Fields[3] = + { + { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 5609263, + .IndexField = 0, + .ParentIndexField = 1, + .FieldCount = 3, + .FileFieldCount = 3, + .LayoutHash = 0x0DA0DEA8, + .Fields = Fields + }; +}; + +struct NodeGraphParamMeta +{ + static constexpr DB2MetaField Fields[3] = + { + { .Type = FT_STRING_NOT_LOCALIZED, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 7183970, + .IndexField = 1, + .ParentIndexField = 2, + .FieldCount = 3, + .FileFieldCount = 3, + .LayoutHash = 0x21A04AE1, + .Fields = Fields + }; +}; + +struct NodeGraphParamValueMeta +{ + static constexpr DB2MetaField Fields[5] = + { + { .Type = FT_STRING_NOT_LOCALIZED, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 7183971, + .IndexField = -1, + .ParentIndexField = 4, + .FieldCount = 5, + .FileFieldCount = 4, + .LayoutHash = 0xF2F2EE9A, + .Fields = Fields + }; +}; + +struct NodeTemplateMeta +{ + static constexpr DB2MetaField Fields[2] = + { + { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 5609279, + .IndexField = 0, + .ParentIndexField = -1, + .FieldCount = 2, + .FileFieldCount = 2, + .LayoutHash = 0x8D423160, + .Fields = Fields + }; +}; + +struct NodeTemplateXPinTemplateMeta +{ + static constexpr DB2MetaField Fields[3] = + { + { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 5609267, + .IndexField = 0, + .ParentIndexField = -1, + .FieldCount = 3, + .FileFieldCount = 3, + .LayoutHash = 0x166ACDA0, .Fields = Fields }; }; @@ -15560,7 +15993,7 @@ struct ObjectEffectMeta { { .Type = FT_FLOAT, .ArraySize = 3, .IsSigned = true }, { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, @@ -15575,7 +16008,7 @@ struct ObjectEffectMeta .ParentIndexField = -1, .FieldCount = 8, .FileFieldCount = 8, - .LayoutHash = 0x3471C362, + .LayoutHash = 0x47F997E2, .Fields = Fields }; }; @@ -15597,7 +16030,7 @@ struct ObjectEffectModifierMeta .ParentIndexField = -1, .FieldCount = 4, .FileFieldCount = 4, - .LayoutHash = 0x764AE63A, + .LayoutHash = 0xD2FB79FA, .Fields = Fields }; }; @@ -15634,7 +16067,7 @@ struct OccluderMeta { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; static constexpr DB2Meta Instance = @@ -15644,7 +16077,7 @@ struct OccluderMeta .ParentIndexField = -1, .FieldCount = 8, .FileFieldCount = 8, - .LayoutHash = 0x70EC3040, + .LayoutHash = 0x6BB53030, .Fields = Fields }; }; @@ -15745,7 +16178,7 @@ struct OverrideSpellDataMeta { { .Type = FT_INT, .ArraySize = 10, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; static constexpr DB2Meta Instance = @@ -15755,7 +16188,7 @@ struct OverrideSpellDataMeta .ParentIndexField = -1, .FieldCount = 3, .FileFieldCount = 3, - .LayoutHash = 0x96FFF958, + .LayoutHash = 0x297CBDC8, .Fields = Fields }; }; @@ -15802,26 +16235,6 @@ struct PVPDifficultyMeta }; }; -struct PVPItemMeta -{ - static constexpr DB2MetaField Fields[2] = - { - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, - }; - - static constexpr DB2Meta Instance = - { - .FileDataId = 972287, - .IndexField = -1, - .ParentIndexField = -1, - .FieldCount = 2, - .FileFieldCount = 2, - .LayoutHash = 0xF812933C, - .Fields = Fields - }; -}; - struct PVPScoreboardCellInfoMeta { static constexpr DB2MetaField Fields[3] = @@ -16517,6 +16930,47 @@ struct PhaseXPhaseGroupMeta }; }; +struct PinMeta +{ + static constexpr DB2MetaField Fields[3] = + { + { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 5609269, + .IndexField = 0, + .ParentIndexField = 1, + .FieldCount = 3, + .FileFieldCount = 3, + .LayoutHash = 0x59B74EBA, + .Fields = Fields + }; +}; + +struct PinTemplateMeta +{ + static constexpr DB2MetaField Fields[2] = + { + { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 5609270, + .IndexField = 0, + .ParentIndexField = -1, + .FieldCount = 2, + .FileFieldCount = 2, + .LayoutHash = 0x780D5CA9, + .Fields = Fields + }; +}; + struct PingTypeMeta { static constexpr DB2MetaField Fields[5] = @@ -16542,8 +16996,9 @@ struct PingTypeMeta struct PlayerCompanionInfoMeta { - static constexpr DB2MetaField Fields[11] = + static constexpr DB2MetaField Fields[15] = { + { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, @@ -16555,16 +17010,19 @@ struct PlayerCompanionInfoMeta { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; static constexpr DB2Meta Instance = { .FileDataId = 5922429, - .IndexField = 0, - .ParentIndexField = -1, - .FieldCount = 11, - .FileFieldCount = 11, - .LayoutHash = 0x7E32E521, + .IndexField = 1, + .ParentIndexField = 14, + .FieldCount = 15, + .FileFieldCount = 14, + .LayoutHash = 0xF61B5AA1, .Fields = Fields }; }; @@ -16621,7 +17079,7 @@ struct PlayerConditionMeta { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, @@ -16668,7 +17126,7 @@ struct PlayerConditionMeta .ParentIndexField = -1, .FieldCount = 86, .FileFieldCount = 86, - .LayoutHash = 0x52515F48, + .LayoutHash = 0x2060B1E8, .Fields = Fields }; }; @@ -17715,7 +18173,7 @@ struct QuestObjectiveMeta .ParentIndexField = 8, .FieldCount = 9, .FileFieldCount = 8, - .LayoutHash = 0xB85A3F1F, + .LayoutHash = 0x50E2491F, .Fields = Fields }; }; @@ -17788,7 +18246,7 @@ struct QuestPackageItemMeta .ParentIndexField = -1, .FieldCount = 4, .FileFieldCount = 4, - .LayoutHash = 0xD54BB6BA, + .LayoutHash = 0x37A6BC1A, .Fields = Fields }; }; @@ -17872,7 +18330,7 @@ struct QuestV2CliTaskMeta .ParentIndexField = -1, .FieldCount = 24, .FileFieldCount = 24, - .LayoutHash = 0xC0E0D02B, + .LayoutHash = 0x5F34001B, .Fields = Fields }; }; @@ -18122,7 +18580,7 @@ struct RelicTalentMeta struct RenownRewardsMeta { - static constexpr DB2MetaField Fields[18] = + static constexpr DB2MetaField Fields[19] = { { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, @@ -18142,6 +18600,7 @@ struct RenownRewardsMeta { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; static constexpr DB2Meta Instance = @@ -18149,9 +18608,9 @@ struct RenownRewardsMeta .FileDataId = 3743117, .IndexField = -1, .ParentIndexField = 3, - .FieldCount = 18, - .FileFieldCount = 18, - .LayoutHash = 0xBB3B0072, + .FieldCount = 19, + .FileFieldCount = 19, + .LayoutHash = 0x30AFBCF8, .Fields = Fields }; }; @@ -18311,10 +18770,10 @@ struct RetroactiveDecorRewardMeta { .FileDataId = 7439104, .IndexField = 0, - .ParentIndexField = -1, + .ParentIndexField = 5, .FieldCount = 6, - .FileFieldCount = 6, - .LayoutHash = 0x1B37F823, + .FileFieldCount = 5, + .LayoutHash = 0x08D16408, .Fields = Fields }; }; @@ -18452,7 +18911,7 @@ struct RolodexTypeMeta struct RoomComponentMeta { - static constexpr DB2MetaField Fields[8] = + static constexpr DB2MetaField Fields[9] = { { .Type = FT_FLOAT, .ArraySize = 3, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 3, .IsSigned = true }, @@ -18462,6 +18921,7 @@ struct RoomComponentMeta { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; static constexpr DB2Meta Instance = @@ -18469,9 +18929,9 @@ struct RoomComponentMeta .FileDataId = 5503432, .IndexField = 2, .ParentIndexField = 3, - .FieldCount = 8, - .FileFieldCount = 8, - .LayoutHash = 0x50697E20, + .FieldCount = 9, + .FileFieldCount = 9, + .LayoutHash = 0xA5C69E52, .Fields = Fields }; }; @@ -18698,8 +19158,8 @@ struct ScenarioMeta { { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, }; @@ -18710,7 +19170,7 @@ struct ScenarioMeta .ParentIndexField = -1, .FieldCount = 5, .FileFieldCount = 5, - .LayoutHash = 0x1D56A4D5, + .LayoutHash = 0x64D88505, .Fields = Fields }; }; @@ -18748,7 +19208,7 @@ struct ScenarioStepMeta { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, }; @@ -18760,7 +19220,7 @@ struct ScenarioStepMeta .ParentIndexField = 3, .FieldCount = 12, .FileFieldCount = 12, - .LayoutHash = 0x00430C03, + .LayoutHash = 0x4F644CD3, .Fields = Fields }; }; @@ -18808,10 +19268,11 @@ struct SceneScriptGlobalTextMeta struct SceneScriptPackageMeta { - static constexpr DB2MetaField Fields[2] = + static constexpr DB2MetaField Fields[3] = { { .Type = FT_STRING_NOT_LOCALIZED, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; static constexpr DB2Meta Instance = @@ -18819,9 +19280,9 @@ struct SceneScriptPackageMeta .FileDataId = 801755, .IndexField = -1, .ParentIndexField = -1, - .FieldCount = 2, - .FileFieldCount = 2, - .LayoutHash = 0x571B942C, + .FieldCount = 3, + .FileFieldCount = 3, + .LayoutHash = 0x3AFAE474, .Fields = Fields }; }; @@ -18886,7 +19347,7 @@ struct ScheduledIntervalMeta .ParentIndexField = -1, .FieldCount = 5, .FileFieldCount = 5, - .LayoutHash = 0xEA2984EC, + .LayoutHash = 0xCA76AD5C, .Fields = Fields }; }; @@ -19009,7 +19470,7 @@ struct ShadowyEffectMeta { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, @@ -19024,7 +19485,7 @@ struct ShadowyEffectMeta .ParentIndexField = -1, .FieldCount = 13, .FileFieldCount = 13, - .LayoutHash = 0xCDD57428, + .LayoutHash = 0x2EC8BCB8, .Fields = Fields }; }; @@ -19035,7 +19496,7 @@ struct SharedStringMeta { { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; static constexpr DB2Meta Instance = @@ -19045,7 +19506,7 @@ struct SharedStringMeta .ParentIndexField = -1, .FieldCount = 3, .FileFieldCount = 3, - .LayoutHash = 0x02A60C13, + .LayoutHash = 0x702947A3, .Fields = Fields }; }; @@ -19057,7 +19518,7 @@ struct SiegeablePropertiesMeta { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; static constexpr DB2Meta Instance = @@ -19067,7 +19528,7 @@ struct SiegeablePropertiesMeta .ParentIndexField = -1, .FieldCount = 4, .FileFieldCount = 4, - .LayoutHash = 0x444C6957, + .LayoutHash = 0xC23E8C67, .Fields = Fields }; }; @@ -19234,7 +19695,7 @@ struct SoulbindConduitMeta { static constexpr DB2MetaField Fields[4] = { - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, @@ -19247,7 +19708,7 @@ struct SoulbindConduitMeta .ParentIndexField = -1, .FieldCount = 4, .FileFieldCount = 4, - .LayoutHash = 0x775CCBED, + .LayoutHash = 0x2632E47D, .Fields = Fields }; }; @@ -19493,7 +19954,7 @@ struct SoundEmittersMeta { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; @@ -19504,7 +19965,7 @@ struct SoundEmittersMeta .ParentIndexField = 11, .FieldCount = 12, .FileFieldCount = 11, - .LayoutHash = 0xB09CDD89, + .LayoutHash = 0xECA3CBB9, .Fields = Fields }; }; @@ -20047,7 +20508,7 @@ struct SpellActivationOverlayMeta .ParentIndexField = -1, .FieldCount = 10, .FileFieldCount = 10, - .LayoutHash = 0xD958FCA4, + .LayoutHash = 0x3741E674, .Fields = Fields }; }; @@ -20056,7 +20517,7 @@ struct SpellAuraOptionsMeta { static constexpr DB2MetaField Fields[8] = { - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, @@ -20073,7 +20534,7 @@ struct SpellAuraOptionsMeta .ParentIndexField = 7, .FieldCount = 8, .FileFieldCount = 7, - .LayoutHash = 0x72F0F501, + .LayoutHash = 0x95F4D5E1, .Fields = Fields }; }; @@ -20082,6 +20543,7 @@ struct SpellAuraRestrictionsMeta { static constexpr DB2MetaField Fields[14] = { + { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, @@ -20090,11 +20552,10 @@ struct SpellAuraRestrictionsMeta { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; @@ -20105,7 +20566,7 @@ struct SpellAuraRestrictionsMeta .ParentIndexField = 13, .FieldCount = 14, .FileFieldCount = 13, - .LayoutHash = 0xC480D0A3, + .LayoutHash = 0xE7F2E213, .Fields = Fields }; }; @@ -20136,7 +20597,7 @@ struct SpellAuraVisibilityMeta { { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; @@ -20147,7 +20608,7 @@ struct SpellAuraVisibilityMeta .ParentIndexField = 3, .FieldCount = 4, .FileFieldCount = 3, - .LayoutHash = 0xAA4D3429, + .LayoutHash = 0xBDBF86F9, .Fields = Fields }; }; @@ -20199,10 +20660,11 @@ struct SpellCastingRequirementsMeta struct SpellCategoriesMeta { - static constexpr DB2MetaField Fields[9] = + static constexpr DB2MetaField Fields[10] = { - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, @@ -20216,10 +20678,10 @@ struct SpellCategoriesMeta { .FileDataId = 1139939, .IndexField = -1, - .ParentIndexField = 8, - .FieldCount = 9, - .FileFieldCount = 8, - .LayoutHash = 0x45BA990E, + .ParentIndexField = 9, + .FieldCount = 10, + .FileFieldCount = 9, + .LayoutHash = 0x679EF94C, .Fields = Fields }; }; @@ -20365,7 +20827,7 @@ struct SpellClutterAreaEffectCountsMeta .ParentIndexField = -1, .FieldCount = 3, .FileFieldCount = 3, - .LayoutHash = 0x37611746, + .LayoutHash = 0x33FF7CF6, .Fields = Fields }; }; @@ -20407,7 +20869,7 @@ struct SpellClutterImpactModelCountsMeta .ParentIndexField = -1, .FieldCount = 3, .FileFieldCount = 3, - .LayoutHash = 0x37611746, + .LayoutHash = 0x33FF7CF6, .Fields = Fields }; }; @@ -20428,7 +20890,7 @@ struct SpellClutterKitDistancesMeta .ParentIndexField = -1, .FieldCount = 3, .FileFieldCount = 3, - .LayoutHash = 0xC00F1458, + .LayoutHash = 0x11B49408, .Fields = Fields }; }; @@ -20449,7 +20911,7 @@ struct SpellClutterMissileDistMeta .ParentIndexField = -1, .FieldCount = 3, .FileFieldCount = 3, - .LayoutHash = 0xC00F1458, + .LayoutHash = 0x11B49408, .Fields = Fields }; }; @@ -20470,7 +20932,7 @@ struct SpellClutterWeaponTrailDistMeta .ParentIndexField = -1, .FieldCount = 3, .FileFieldCount = 3, - .LayoutHash = 0xC00F1458, + .LayoutHash = 0x11B49408, .Fields = Fields }; }; @@ -20479,7 +20941,7 @@ struct SpellCooldownsMeta { static constexpr DB2MetaField Fields[6] = { - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, @@ -20494,7 +20956,7 @@ struct SpellCooldownsMeta .ParentIndexField = 5, .FieldCount = 6, .FileFieldCount = 5, - .LayoutHash = 0x1CD8296C, + .LayoutHash = 0xDC945B8C, .Fields = Fields }; }; @@ -20518,6 +20980,31 @@ struct SpellDescriptionVariablesMeta }; }; +struct SpellDiminishMeta +{ + static constexpr DB2MetaField Fields[7] = + { + { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 3055891, + .IndexField = -1, + .ParentIndexField = -1, + .FieldCount = 7, + .FileFieldCount = 7, + .LayoutHash = 0x6E3341BA, + .Fields = Fields + }; +}; + struct SpellDispelTypeMeta { static constexpr DB2MetaField Fields[4] = @@ -20542,10 +21029,11 @@ struct SpellDispelTypeMeta struct SpellDurationMeta { - static constexpr DB2MetaField Fields[2] = + static constexpr DB2MetaField Fields[3] = { { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; static constexpr DB2Meta Instance = @@ -20553,19 +21041,19 @@ struct SpellDurationMeta .FileDataId = 1137828, .IndexField = -1, .ParentIndexField = -1, - .FieldCount = 2, - .FileFieldCount = 2, - .LayoutHash = 0xC25E0667, + .FieldCount = 3, + .FileFieldCount = 3, + .LayoutHash = 0xA931BD2B, .Fields = Fields }; }; struct SpellEffectMeta { - static constexpr DB2MetaField Fields[29] = + static constexpr DB2MetaField Fields[30] = { { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, @@ -20588,6 +21076,7 @@ struct SpellEffectMeta { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 2, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 2, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 4, .IsSigned = true }, @@ -20599,10 +21088,10 @@ struct SpellEffectMeta { .FileDataId = 1140088, .IndexField = -1, - .ParentIndexField = 28, - .FieldCount = 29, - .FileFieldCount = 28, - .LayoutHash = 0x239B1B53, + .ParentIndexField = 29, + .FieldCount = 30, + .FileFieldCount = 29, + .LayoutHash = 0x5362E3D4, .Fields = Fields }; }; @@ -20615,8 +21104,8 @@ struct SpellEffectAutoDescriptionMeta { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, @@ -20629,7 +21118,7 @@ struct SpellEffectAutoDescriptionMeta .ParentIndexField = -1, .FieldCount = 9, .FileFieldCount = 9, - .LayoutHash = 0xA42E28EC, + .LayoutHash = 0x383904CC, .Fields = Fields }; }; @@ -20641,7 +21130,7 @@ struct SpellEffectEmissionMeta { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; static constexpr DB2Meta Instance = @@ -20651,7 +21140,7 @@ struct SpellEffectEmissionMeta .ParentIndexField = -1, .FieldCount = 4, .FileFieldCount = 4, - .LayoutHash = 0x164F4941, + .LayoutHash = 0x05E061C1, .Fields = Fields }; }; @@ -20788,7 +21277,7 @@ struct SpellInterruptsMeta { static constexpr DB2MetaField Fields[5] = { - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 2, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 2, .IsSigned = true }, @@ -20802,7 +21291,7 @@ struct SpellInterruptsMeta .ParentIndexField = 4, .FieldCount = 5, .FileFieldCount = 4, - .LayoutHash = 0x6CACDAE6, + .LayoutHash = 0x6FFC0306, .Fields = Fields }; }; @@ -20889,7 +21378,7 @@ struct SpellKeyboundOverrideMeta .ParentIndexField = -1, .FieldCount = 4, .FileFieldCount = 4, - .LayoutHash = 0xFA067CB2, + .LayoutHash = 0x6B01CAC2, .Fields = Fields }; }; @@ -20939,7 +21428,7 @@ struct SpellLevelsMeta { static constexpr DB2MetaField Fields[6] = { - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, @@ -20954,7 +21443,7 @@ struct SpellLevelsMeta .ParentIndexField = 5, .FieldCount = 6, .FileFieldCount = 5, - .LayoutHash = 0xCB43D67C, + .LayoutHash = 0x7EB86FDC, .Fields = Fields }; }; @@ -20982,8 +21471,8 @@ struct SpellMiscMeta { static constexpr DB2MetaField Fields[17] = { - { .Type = FT_INT, .ArraySize = 16, .IsSigned = true }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 17, .IsSigned = true }, + { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, @@ -21008,7 +21497,7 @@ struct SpellMiscMeta .ParentIndexField = 16, .FieldCount = 17, .FileFieldCount = 16, - .LayoutHash = 0xB2E0F1E4, + .LayoutHash = 0x434B3607, .Fields = Fields }; }; @@ -21145,7 +21634,7 @@ struct SpellPowerDifficultyMeta { static constexpr DB2MetaField Fields[2] = { - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, }; @@ -21156,7 +21645,7 @@ struct SpellPowerDifficultyMeta .ParentIndexField = -1, .FieldCount = 2, .FileFieldCount = 2, - .LayoutHash = 0x95EE63B1, + .LayoutHash = 0xB80F1651, .Fields = Fields }; }; @@ -21176,7 +21665,7 @@ struct SpellProceduralEffectMeta .ParentIndexField = -1, .FieldCount = 2, .FileFieldCount = 2, - .LayoutHash = 0x28692171, + .LayoutHash = 0xB442AB81, .Fields = Fields }; }; @@ -21186,7 +21675,7 @@ struct SpellProcsPerMinuteMeta static constexpr DB2MetaField Fields[2] = { { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; static constexpr DB2Meta Instance = @@ -21196,7 +21685,7 @@ struct SpellProcsPerMinuteMeta .ParentIndexField = -1, .FieldCount = 2, .FileFieldCount = 2, - .LayoutHash = 0x93C5F6BB, + .LayoutHash = 0x2227014B, .Fields = Fields }; }; @@ -21205,7 +21694,7 @@ struct SpellProcsPerMinuteModMeta { static constexpr DB2MetaField Fields[4] = { - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, @@ -21218,7 +21707,7 @@ struct SpellProcsPerMinuteModMeta .ParentIndexField = 3, .FieldCount = 4, .FileFieldCount = 3, - .LayoutHash = 0x6FFD8DA7, + .LayoutHash = 0x4F1DC447, .Fields = Fields }; }; @@ -21251,7 +21740,7 @@ struct SpellRangeMeta { { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 2, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 2, .IsSigned = true }, }; @@ -21263,7 +21752,7 @@ struct SpellRangeMeta .ParentIndexField = -1, .FieldCount = 5, .FileFieldCount = 5, - .LayoutHash = 0xF2B48795, + .LayoutHash = 0xADA13705, .Fields = Fields }; }; @@ -21293,11 +21782,13 @@ struct SpellReagentsMeta struct SpellReagentsCurrencyMeta { - static constexpr DB2MetaField Fields[3] = + static constexpr DB2MetaField Fields[5] = { { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, }; static constexpr DB2Meta Instance = @@ -21305,9 +21796,9 @@ struct SpellReagentsCurrencyMeta .FileDataId = 1135239, .IndexField = -1, .ParentIndexField = 0, - .FieldCount = 3, - .FileFieldCount = 3, - .LayoutHash = 0xF02FA4EB, + .FieldCount = 5, + .FileFieldCount = 5, + .LayoutHash = 0x0ED4741A, .Fields = Fields }; }; @@ -21334,12 +21825,11 @@ struct SpellReplacementMeta struct SpellScalingMeta { - static constexpr DB2MetaField Fields[4] = + static constexpr DB2MetaField Fields[3] = { { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, }; static constexpr DB2Meta Instance = @@ -21347,9 +21837,9 @@ struct SpellScalingMeta .FileDataId = 1139940, .IndexField = -1, .ParentIndexField = -1, - .FieldCount = 4, - .FileFieldCount = 4, - .LayoutHash = 0xA285F9EA, + .FieldCount = 3, + .FileFieldCount = 3, + .LayoutHash = 0x9FC07797, .Fields = Fields }; }; @@ -21372,7 +21862,7 @@ struct SpellScriptMeta .ParentIndexField = -1, .FieldCount = 5, .FileFieldCount = 5, - .LayoutHash = 0xD699825C, + .LayoutHash = 0xE1C1B88C, .Fields = Fields }; }; @@ -21445,7 +21935,7 @@ struct SpellShapeshiftFormMeta .ParentIndexField = -1, .FieldCount = 10, .FileFieldCount = 10, - .LayoutHash = 0x385A8162, + .LayoutHash = 0xEE25A6A2, .Fields = Fields }; }; @@ -21474,7 +21964,7 @@ struct SpellTargetRestrictionsMeta { static constexpr DB2MetaField Fields[8] = { - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, @@ -21491,7 +21981,116 @@ struct SpellTargetRestrictionsMeta .ParentIndexField = 7, .FieldCount = 8, .FileFieldCount = 7, - .LayoutHash = 0x126E295E, + .LayoutHash = 0x1EAB753E, + .Fields = Fields + }; +}; + +struct SpellTgtFilterRuleNodeMeta +{ + static constexpr DB2MetaField Fields[3] = + { + { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 6031283, + .IndexField = 0, + .ParentIndexField = 1, + .FieldCount = 3, + .FileFieldCount = 3, + .LayoutHash = 0xD2AD732E, + .Fields = Fields + }; +}; + +struct SpellTgtFilterRuleSetNodeMeta +{ + static constexpr DB2MetaField Fields[3] = + { + { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 6031284, + .IndexField = 0, + .ParentIndexField = 1, + .FieldCount = 3, + .FileFieldCount = 3, + .LayoutHash = 0xB3274DC3, + .Fields = Fields + }; +}; + +struct SpellTgtFilterRuleTemplateMeta +{ + static constexpr DB2MetaField Fields[3] = + { + { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 6031285, + .IndexField = 0, + .ParentIndexField = 1, + .FieldCount = 3, + .FileFieldCount = 3, + .LayoutHash = 0x32A4E95A, + .Fields = Fields + }; +}; + +struct SpellTgtGatherNodeMeta +{ + static constexpr DB2MetaField Fields[7] = + { + { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 6031286, + .IndexField = 0, + .ParentIndexField = 1, + .FieldCount = 7, + .FileFieldCount = 7, + .LayoutHash = 0xD5FF3154, + .Fields = Fields + }; +}; + +struct SpellTgtGatherTemplateMeta +{ + static constexpr DB2MetaField Fields[3] = + { + { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 6031287, + .IndexField = 0, + .ParentIndexField = 1, + .FieldCount = 3, + .FileFieldCount = 3, + .LayoutHash = 0x32A4E95A, .Fields = Fields }; }; @@ -21547,7 +22146,7 @@ struct SpellVisualMeta .ParentIndexField = -1, .FieldCount = 17, .FileFieldCount = 17, - .LayoutHash = 0xE2F62C2F, + .LayoutHash = 0x4B85C90F, .Fields = Fields }; }; @@ -21580,7 +22179,7 @@ struct SpellVisualColorEffectMeta { { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, @@ -21598,7 +22197,7 @@ struct SpellVisualColorEffectMeta .ParentIndexField = -1, .FieldCount = 11, .FileFieldCount = 11, - .LayoutHash = 0x49955168, + .LayoutHash = 0x9777C098, .Fields = Fields }; }; @@ -21613,10 +22212,10 @@ struct SpellVisualEffectNameMeta { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, @@ -21632,7 +22231,7 @@ struct SpellVisualEffectNameMeta .ParentIndexField = -1, .FieldCount = 16, .FileFieldCount = 16, - .LayoutHash = 0x14F15AE6, + .LayoutHash = 0x2245CEE6, .Fields = Fields }; }; @@ -21661,7 +22260,7 @@ struct SpellVisualEventMeta .ParentIndexField = 10, .FieldCount = 11, .FileFieldCount = 10, - .LayoutHash = 0xB872A39E, + .LayoutHash = 0x865F512E, .Fields = Fields }; }; @@ -21688,7 +22287,7 @@ struct SpellVisualKitMeta .ParentIndexField = -1, .FieldCount = 9, .FileFieldCount = 9, - .LayoutHash = 0x15838B24, + .LayoutHash = 0xC069D9C4, .Fields = Fields }; }; @@ -21698,7 +22297,7 @@ struct SpellVisualKitAreaModelMeta static constexpr DB2MetaField Fields[6] = { { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, @@ -21712,7 +22311,41 @@ struct SpellVisualKitAreaModelMeta .ParentIndexField = -1, .FieldCount = 6, .FileFieldCount = 6, - .LayoutHash = 0x0B45E5D4, + .LayoutHash = 0x73AFF8E4, + .Fields = Fields + }; +}; + +struct SpellVisualKitDecalAttachMeta +{ + static constexpr DB2MetaField Fields[16] = + { + { .Type = FT_FLOAT, .ArraySize = 2, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 2, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 7412806, + .IndexField = -1, + .ParentIndexField = -1, + .FieldCount = 16, + .FileFieldCount = 16, + .LayoutHash = 0x30408167, .Fields = Fields }; }; @@ -21745,7 +22378,7 @@ struct SpellVisualKitModelAttachMeta { .Type = FT_FLOAT, .ArraySize = 3, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 3, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, @@ -21774,7 +22407,7 @@ struct SpellVisualKitModelAttachMeta .ParentIndexField = 22, .FieldCount = 23, .FileFieldCount = 22, - .LayoutHash = 0x57620444, + .LayoutHash = 0x02CF8554, .Fields = Fields }; }; @@ -21836,7 +22469,7 @@ struct SpellVisualMissileMeta { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, @@ -21852,7 +22485,7 @@ struct SpellVisualMissileMeta .ParentIndexField = 18, .FieldCount = 19, .FileFieldCount = 18, - .LayoutHash = 0x98490368, + .LayoutHash = 0xAE389078, .Fields = Fields }; }; @@ -21902,7 +22535,7 @@ struct SpellXSpellVisualMeta static constexpr DB2MetaField Fields[13] = { { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, @@ -21923,7 +22556,7 @@ struct SpellXSpellVisualMeta .ParentIndexField = 12, .FieldCount = 13, .FileFieldCount = 12, - .LayoutHash = 0x6B6594B0, + .LayoutHash = 0x7994A890, .Fields = Fields }; }; @@ -21993,6 +22626,27 @@ struct StationeryMeta }; }; +struct SubgraphNodeMeta +{ + static constexpr DB2MetaField Fields[3] = + { + { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 5636015, + .IndexField = 0, + .ParentIndexField = 1, + .FieldCount = 3, + .FileFieldCount = 3, + .LayoutHash = 0x2919010A, + .Fields = Fields + }; +}; + struct SummonPropertiesMeta { static constexpr DB2MetaField Fields[5] = @@ -22347,7 +23001,7 @@ struct TextureFileDataMeta .ParentIndexField = 2, .FieldCount = 3, .FileFieldCount = 3, - .LayoutHash = 0x50299C02, + .LayoutHash = 0xBD7C74C2, .Fields = Fields }; }; @@ -22584,7 +23238,7 @@ struct TraitCurrencyMeta .ParentIndexField = -1, .FieldCount = 7, .FileFieldCount = 7, - .LayoutHash = 0x4615483D, + .LayoutHash = 0x7E04D40D, .Fields = Fields }; }; @@ -22660,7 +23314,7 @@ struct TraitDefinitionEffectPointsMeta .ParentIndexField = 1, .FieldCount = 5, .FileFieldCount = 5, - .LayoutHash = 0x01AE39C2, + .LayoutHash = 0x7E18C372, .Fields = Fields }; }; @@ -22673,7 +23327,7 @@ struct TraitEdgeMeta { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, }; static constexpr DB2Meta Instance = @@ -22683,7 +23337,7 @@ struct TraitEdgeMeta .ParentIndexField = 2, .FieldCount = 5, .FileFieldCount = 5, - .LayoutHash = 0xD4EA9447, + .LayoutHash = 0x907C9B77, .Fields = Fields }; }; @@ -23173,6 +23827,88 @@ struct TransmogIllusionMeta }; }; +struct TransmogOutfitEntryMeta +{ + static constexpr DB2MetaField Fields[8] = + { + { .Type = FT_LONG, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 7320164, + .IndexField = 2, + .ParentIndexField = -1, + .FieldCount = 8, + .FileFieldCount = 8, + .LayoutHash = 0xD6AF6580, + .Fields = Fields + }; +}; + +struct TransmogOutfitSlotInfoMeta +{ + static constexpr DB2MetaField Fields[13] = + { + { .Type = FT_STRING_NOT_LOCALIZED, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 7300046, + .IndexField = 1, + .ParentIndexField = -1, + .FieldCount = 13, + .FileFieldCount = 13, + .LayoutHash = 0xC034B46F, + .Fields = Fields + }; +}; + +struct TransmogOutfitSlotOptionMeta +{ + static constexpr DB2MetaField Fields[7] = + { + { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 7299793, + .IndexField = -1, + .ParentIndexField = 2, + .FieldCount = 7, + .FileFieldCount = 7, + .LayoutHash = 0x8C80370F, + .Fields = Fields + }; +}; + struct TransmogSetMeta { static constexpr DB2MetaField Fields[13] = @@ -23244,6 +23980,75 @@ struct TransmogSetItemMeta }; }; +struct TransmogSituationMeta +{ + static constexpr DB2MetaField Fields[6] = + { + { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 7211446, + .IndexField = 1, + .ParentIndexField = 4, + .FieldCount = 6, + .FileFieldCount = 6, + .LayoutHash = 0xFA6B434F, + .Fields = Fields + }; +}; + +struct TransmogSituationGroupMeta +{ + static constexpr DB2MetaField Fields[4] = + { + { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 7212733, + .IndexField = 0, + .ParentIndexField = 1, + .FieldCount = 4, + .FileFieldCount = 4, + .LayoutHash = 0x6AEE6456, + .Fields = Fields + }; +}; + +struct TransmogSituationTriggerMeta +{ + static constexpr DB2MetaField Fields[5] = + { + { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 7210468, + .IndexField = 2, + .ParentIndexField = -1, + .FieldCount = 5, + .FileFieldCount = 5, + .LayoutHash = 0x7833CAB8, + .Fields = Fields + }; +}; + struct TransportAnimationMeta { static constexpr DB2MetaField Fields[4] = @@ -23466,6 +24271,27 @@ struct UICovenantAbilityMeta }; }; +struct UICovenantHighlightMeta +{ + static constexpr DB2MetaField Fields[3] = + { + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + }; + + static constexpr DB2Meta Instance = + { + .FileDataId = 7265906, + .IndexField = -1, + .ParentIndexField = 2, + .FieldCount = 3, + .FileFieldCount = 2, + .LayoutHash = 0x7EA3BB47, + .Fields = Fields + }; +}; + struct UICovenantPreviewMeta { static constexpr DB2MetaField Fields[16] = @@ -23570,8 +24396,8 @@ struct UIEventToastMeta { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, @@ -23591,14 +24417,14 @@ struct UIEventToastMeta .ParentIndexField = -1, .FieldCount = 22, .FileFieldCount = 22, - .LayoutHash = 0xEF224D81, + .LayoutHash = 0x10C7B581, .Fields = Fields }; }; struct UIExpansionDisplayInfoMeta { - static constexpr DB2MetaField Fields[9] = + static constexpr DB2MetaField Fields[12] = { { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, @@ -23609,6 +24435,9 @@ struct UIExpansionDisplayInfoMeta { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; static constexpr DB2Meta Instance = @@ -23616,9 +24445,9 @@ struct UIExpansionDisplayInfoMeta .FileDataId = 1729547, .IndexField = 0, .ParentIndexField = -1, - .FieldCount = 9, - .FileFieldCount = 9, - .LayoutHash = 0x62982E9A, + .FieldCount = 12, + .FileFieldCount = 12, + .LayoutHash = 0x260AA847, .Fields = Fields }; }; @@ -23827,7 +24656,7 @@ struct UiCamFbackTransmogChrRaceMeta { { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, }; @@ -23839,7 +24668,7 @@ struct UiCamFbackTransmogChrRaceMeta .ParentIndexField = -1, .FieldCount = 5, .FileFieldCount = 5, - .LayoutHash = 0xFFE702C7, + .LayoutHash = 0xE3278667, .Fields = Fields }; }; @@ -23848,9 +24677,9 @@ struct UiCamFbackTransmogWeaponMeta { static constexpr DB2MetaField Fields[4] = { + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = false }, }; @@ -23861,7 +24690,7 @@ struct UiCamFbackTransmogWeaponMeta .ParentIndexField = -1, .FieldCount = 4, .FileFieldCount = 4, - .LayoutHash = 0xBDAFC2E9, + .LayoutHash = 0x8A8745C9, .Fields = Fields }; }; @@ -23936,8 +24765,11 @@ struct UiCanvasMeta struct UiCovenantDisplayInfoMeta { - static constexpr DB2MetaField Fields[15] = + static constexpr DB2MetaField Fields[18] = { + { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, @@ -23958,11 +24790,11 @@ struct UiCovenantDisplayInfoMeta static constexpr DB2Meta Instance = { .FileDataId = 3509132, - .IndexField = -1, + .IndexField = 0, .ParentIndexField = -1, - .FieldCount = 15, - .FileFieldCount = 15, - .LayoutHash = 0x3A077939, + .FieldCount = 18, + .FileFieldCount = 18, + .LayoutHash = 0x9C956DEE, .Fields = Fields }; }; @@ -24004,7 +24836,7 @@ struct UiItemInteractionMeta struct UiMapMeta { - static constexpr DB2MetaField Fields[16] = + static constexpr DB2MetaField Fields[15] = { { .Type = FT_STRING, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, @@ -24015,7 +24847,6 @@ struct UiMapMeta { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, @@ -24029,9 +24860,9 @@ struct UiMapMeta .FileDataId = 1957206, .IndexField = 1, .ParentIndexField = 2, - .FieldCount = 16, - .FileFieldCount = 16, - .LayoutHash = 0x77AEDBE6, + .FieldCount = 15, + .FileFieldCount = 15, + .LayoutHash = 0xDB51D55F, .Fields = Fields }; }; @@ -24275,8 +25106,8 @@ struct UiModelSceneMeta static constexpr DB2MetaField Fields[4] = { { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; @@ -24287,7 +25118,7 @@ struct UiModelSceneMeta .ParentIndexField = -1, .FieldCount = 4, .FileFieldCount = 4, - .LayoutHash = 0x7A47260D, + .LayoutHash = 0xF48839BD, .Fields = Fields }; }; @@ -24300,7 +25131,7 @@ struct UiModelSceneActorMeta { .Type = FT_FLOAT, .ArraySize = 3, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, @@ -24315,7 +25146,7 @@ struct UiModelSceneActorMeta .ParentIndexField = 3, .FieldCount = 10, .FileFieldCount = 10, - .LayoutHash = 0xB506AAFE, + .LayoutHash = 0xDC34C10E, .Fields = Fields }; }; @@ -24354,7 +25185,7 @@ struct UiModelSceneCameraMeta { .Type = FT_FLOAT, .ArraySize = 3, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, @@ -24374,7 +25205,7 @@ struct UiModelSceneCameraMeta .ParentIndexField = 4, .FieldCount = 16, .FileFieldCount = 16, - .LayoutHash = 0xCA931A83, + .LayoutHash = 0x413EC033, .Fields = Fields }; }; @@ -24712,7 +25543,7 @@ struct UiWidgetVisTypeDataReqMeta { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, }; static constexpr DB2Meta Instance = @@ -24722,7 +25553,7 @@ struct UiWidgetVisTypeDataReqMeta .ParentIndexField = 5, .FieldCount = 6, .FileFieldCount = 5, - .LayoutHash = 0x7E725F61, + .LayoutHash = 0x9A097D11, .Fields = Fields }; }; @@ -24928,7 +25759,7 @@ struct VehiclePOITypeMeta .ParentIndexField = -1, .FieldCount = 5, .FileFieldCount = 5, - .LayoutHash = 0x55F18A29, + .LayoutHash = 0x2D081CE9, .Fields = Fields }; }; @@ -25370,7 +26201,7 @@ struct WarbandSceneAnimationMeta struct WarbandScenePlacementMeta { - static constexpr DB2MetaField Fields[10] = + static constexpr DB2MetaField Fields[11] = { { .Type = FT_FLOAT, .ArraySize = 3, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, @@ -25382,6 +26213,7 @@ struct WarbandScenePlacementMeta { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; static constexpr DB2Meta Instance = @@ -25389,33 +26221,31 @@ struct WarbandScenePlacementMeta .FileDataId = 5736130, .IndexField = 1, .ParentIndexField = 2, - .FieldCount = 10, - .FileFieldCount = 10, - .LayoutHash = 0x20903CC1, + .FieldCount = 11, + .FileFieldCount = 11, + .LayoutHash = 0xEF845637, .Fields = Fields }; }; struct WarbandScenePlacementFilterReqMeta { - static constexpr DB2MetaField Fields[6] = + static constexpr DB2MetaField Fields[4] = { { .Type = FT_LONG, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = false }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_SHORT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 2, .IsSigned = true }, }; static constexpr DB2Meta Instance = { .FileDataId = 6251586, - .IndexField = 1, - .ParentIndexField = 2, - .FieldCount = 6, - .FileFieldCount = 6, - .LayoutHash = 0x1887BE8D, + .IndexField = -1, + .ParentIndexField = 1, + .FieldCount = 4, + .FileFieldCount = 4, + .LayoutHash = 0x939C3CD6, .Fields = Fields }; }; @@ -25588,7 +26418,7 @@ struct WaypointNodeMeta .ParentIndexField = -1, .FieldCount = 7, .FileFieldCount = 7, - .LayoutHash = 0x2566DE7B, + .LayoutHash = 0xE4E7BFAB, .Fields = Fields }; }; @@ -25844,7 +26674,7 @@ struct WeeklyRewardChestThresholdMeta { static constexpr DB2MetaField Fields[3] = { - { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, + { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; @@ -25856,7 +26686,7 @@ struct WeeklyRewardChestThresholdMeta .ParentIndexField = -1, .FieldCount = 3, .FileFieldCount = 3, - .LayoutHash = 0xD70784C5, + .LayoutHash = 0x66D9A6D5, .Fields = Fields }; }; @@ -25874,7 +26704,7 @@ struct WindSettingsMeta { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_FLOAT, .ArraySize = 1, .IsSigned = true }, - { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, + { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, }; static constexpr DB2Meta Instance = @@ -25884,7 +26714,7 @@ struct WindSettingsMeta .ParentIndexField = -1, .FieldCount = 10, .FileFieldCount = 10, - .LayoutHash = 0x5DE91550, + .LayoutHash = 0xCF880AC0, .Fields = Fields }; }; diff --git a/src/server/game/DataStores/DB2Stores.cpp b/src/server/game/DataStores/DB2Stores.cpp index a88e8ad419..737c587d23 100644 --- a/src/server/game/DataStores/DB2Stores.cpp +++ b/src/server/game/DataStores/DB2Stores.cpp @@ -217,6 +217,7 @@ DB2Storage sItemSetSpellStore("ItemSetSpell DB2Storage sItemSparseStore("ItemSparse.db2", &ItemSparseLoadInfo::Instance); DB2Storage sItemSpecStore("ItemSpec.db2", &ItemSpecLoadInfo::Instance); DB2Storage sItemSpecOverrideStore("ItemSpecOverride.db2", &ItemSpecOverrideLoadInfo::Instance); +DB2Storage sItemSquishEraStore("ItemSquishEra.db2", &ItemSquishEraLoadInfo::Instance); DB2Storage sItemXBonusTreeStore("ItemXBonusTree.db2", &ItemXBonusTreeLoadInfo::Instance); DB2Storage sItemXItemEffectStore("ItemXItemEffect.db2", &ItemXItemEffectLoadInfo::Instance); DB2Storage sJournalEncounterStore("JournalEncounter.db2", &JournalEncounterLoadInfo::Instance); @@ -269,7 +270,6 @@ DB2Storage sPowerDisplayStore("PowerDisplay DB2Storage sPowerTypeStore("PowerType.db2", &PowerTypeLoadInfo::Instance); DB2Storage sPrestigeLevelInfoStore("PrestigeLevelInfo.db2", &PrestigeLevelInfoLoadInfo::Instance); DB2Storage sPVPDifficultyStore("PVPDifficulty.db2", &PvpDifficultyLoadInfo::Instance); -DB2Storage sPVPItemStore("PVPItem.db2", &PvpItemLoadInfo::Instance); DB2Storage sPVPStatStore("PVPStat.db2", &PvpStatLoadInfo::Instance); DB2Storage sPvpSeasonStore("PvpSeason.db2", &PvpSeasonLoadInfo::Instance); DB2Storage sPvpTalentStore("PvpTalent.db2", &PvpTalentLoadInfo::Instance); @@ -517,7 +517,6 @@ namespace std::unordered_map _paths; PhaseGroupContainer _phasesByGroup; PowerTypesContainer _powerTypes; - std::unordered_map _pvpItemBonus; PvpTalentSlotUnlockEntry const* _pvpTalentSlotUnlock[MAX_PVP_TALENT_SLOTS]; std::unordered_map> _questsByQuestLine; QuestPackageItemContainer _questPackages; @@ -847,6 +846,7 @@ uint32 DB2Manager::LoadStores(std::string const& dataPath, LocaleConstant defaul LOAD_DB2(sItemSparseStore); LOAD_DB2(sItemSpecStore); LOAD_DB2(sItemSpecOverrideStore); + LOAD_DB2(sItemSquishEraStore); LOAD_DB2(sItemXBonusTreeStore); LOAD_DB2(sItemXItemEffectStore); LOAD_DB2(sJournalEncounterStore); @@ -899,7 +899,6 @@ uint32 DB2Manager::LoadStores(std::string const& dataPath, LocaleConstant defaul LOAD_DB2(sPowerTypeStore); LOAD_DB2(sPrestigeLevelInfoStore); LOAD_DB2(sPVPDifficultyStore); - LOAD_DB2(sPVPItemStore); LOAD_DB2(sPVPStatStore); LOAD_DB2(sPvpSeasonStore); LOAD_DB2(sPvpTalentStore); @@ -1484,9 +1483,6 @@ void DB2Manager::IndexLoadedStores() ASSERT(entry->RangeIndex < MAX_BATTLEGROUND_BRACKETS, "PvpDifficulty bracket (%d) exceeded max allowed value (%d)", entry->RangeIndex, MAX_BATTLEGROUND_BRACKETS); } - for (PVPItemEntry const* pvpItem : sPVPItemStore) - _pvpItemBonus[pvpItem->ItemID] = pvpItem->ItemLevelDelta; - for (PvpTalentSlotUnlockEntry const* talentUnlock : sPvpTalentSlotUnlockStore) { ASSERT(talentUnlock->Slot < (1 << MAX_PVP_TALENT_SLOTS)); @@ -3009,15 +3005,6 @@ PowerTypeEntry const* DB2Manager::GetPowerTypeByName(std::string const& name) co return nullptr; } -uint8 DB2Manager::GetPvpItemLevelBonus(uint32 itemId) const -{ - auto itr = _pvpItemBonus.find(itemId); - if (itr != _pvpItemBonus.end()) - return itr->second; - - return 0; -} - std::vector const* DB2Manager::GetRewardPackCurrencyTypesByRewardID(uint32 rewardPackID) const { return Trinity::Containers::MapGetValuePtr(_rewardPackCurrencyTypes, rewardPackID); diff --git a/src/server/game/DataStores/DB2Stores.h b/src/server/game/DataStores/DB2Stores.h index 44c069bbce..3c62c08744 100644 --- a/src/server/game/DataStores/DB2Stores.h +++ b/src/server/game/DataStores/DB2Stores.h @@ -172,6 +172,7 @@ TC_GAME_API extern DB2Storage sItemSetSpel TC_GAME_API extern DB2Storage sItemSparseStore; TC_GAME_API extern DB2Storage sItemSpecStore; TC_GAME_API extern DB2Storage sItemSpecOverrideStore; +TC_GAME_API extern DB2Storage sItemSquishEraStore; TC_GAME_API extern DB2Storage sItemXBonusTreeStore; TC_GAME_API extern DB2Storage sItemXItemEffectStore; TC_GAME_API extern DB2Storage sJournalEncounterStore; @@ -519,7 +520,6 @@ public: std::vector const* GetPhasesForGroup(uint32 group) const; PowerTypeEntry const* GetPowerTypeEntry(Powers power) const; PowerTypeEntry const* GetPowerTypeByName(std::string const& name) const; - uint8 GetPvpItemLevelBonus(uint32 itemId) const; static PVPDifficultyEntry const* GetBattlegroundBracketByLevel(uint32 mapid, uint32 level); static PVPDifficultyEntry const* GetBattlegroundBracketById(uint32 mapid, BattlegroundBracketId id); uint32 GetRequiredLevelForPvpTalentSlot(uint8 slot, Classes class_) const; diff --git a/src/server/game/DataStores/DB2Structure.h b/src/server/game/DataStores/DB2Structure.h index 207f9221cd..97ff0c37ac 100644 --- a/src/server/game/DataStores/DB2Structure.h +++ b/src/server/game/DataStores/DB2Structure.h @@ -176,7 +176,7 @@ struct AreaTriggerEntry int8 ShapeType; int16 ShapeID; int32 AreaTriggerActionSetID; - int8 Flags; + int32 Flags; AreaTriggerShapeType GetShapeType() const { return static_cast(ShapeType); } }; @@ -208,7 +208,7 @@ struct ArtifactEntry int32 UiBarOverlayColor; int32 UiBarBackgroundColor; uint16 ChrSpecializationID; - uint8 Flags; + int32 Flags; uint8 ArtifactCategoryID; uint32 UiModelSceneID; uint32 SpellVisualKitID; @@ -229,7 +229,7 @@ struct ArtifactAppearanceEntry uint32 OverrideShapeshiftDisplayID; uint32 UiItemAppearanceID; uint32 UiAltItemAppearanceID; - uint8 Flags; + int32 Flags; uint16 UiCameraID; uint32 UsablePlayerConditionID; }; @@ -243,7 +243,7 @@ struct ArtifactAppearanceSetEntry uint16 UiCameraID; uint16 AltHandUICameraID; int8 ForgeAttachmentOverride; - uint8 Flags; + int32 Flags; uint32 ArtifactID; }; @@ -261,7 +261,7 @@ struct ArtifactPowerEntry uint8 ArtifactID; uint8 MaxPurchasableRank; int32 Label; - uint8 Flags; + int32 Flags; uint8 Tier; }; @@ -468,7 +468,7 @@ struct BattlePetAbilityEntry int8 PetTypeEnum; uint32 Cooldown; uint16 BattlePetVisualID; - uint8 Flags; + int32 Flags; }; struct BattlePetBreedQualityEntry @@ -520,6 +520,7 @@ struct BattlemasterListEntry LocalizedString GameType; LocalizedString ShortDescription; LocalizedString LongDescription; + int8 InstanceType; int32 PvpType; int8 MinLevel; int8 MaxLevel; @@ -577,7 +578,7 @@ struct Cfg_CategoriesEntry uint16 LocaleMask; uint8 CreateCharsetMask; uint8 ExistingCharsetMask; - uint8 Flags; + int32 Flags; int8 Order; EnumFlag GetCreateCharsetMask() const { return static_cast(CreateCharsetMask); } @@ -1032,6 +1033,7 @@ struct CraftingQualityEntry { uint32 ID; int32 QualityTier; + int32 CraftingQualityAtlasSetID; }; //struct CreatureDifficultyEntry @@ -1428,6 +1430,9 @@ struct CurrencyTypesEntry uint32 RechargingCycleDurationMS; float AccountTransferPercentage; uint8 OrderIndex; + float RecraftReagentCountPercentage; + uint8 OrderSource; + int32 MCRCurrencyID; std::array Flags; EnumFlag GetFlags() const { return static_cast(Flags[0]); } @@ -1535,12 +1540,12 @@ struct DifficultyEntry uint8 InstanceType; uint8 OrderIndex; int8 OldEnumValue; - uint8 FallbackDifficultyID; + int16 FallbackDifficultyID; uint8 MinPlayers; uint8 MaxPlayers; - uint16 Flags; + int32 Flags; uint8 ItemContext; - uint8 ToggleDifficultyID; + int16 ToggleDifficultyID; uint32 GroupSizeHealthCurveID; uint32 GroupSizeDmgCurveID; uint32 GroupSizeSpellPointsCurveID; @@ -1552,7 +1557,7 @@ struct DungeonEncounterEntry LocalizedString Name; uint32 ID; uint16 MapID; - int32 DifficultyID; + int16 DifficultyID; int32 OrderIndex; int32 CompleteWorldStateID; int8 Bit; @@ -1972,8 +1977,7 @@ struct GarrPlotEntry uint8 PlotType; int32 HordeConstructObjID; int32 AllianceConstructObjID; - uint8 Flags; - uint8 UiCategoryID; + int32 Flags; std::array UpgradeRequirement; }; @@ -2146,8 +2150,8 @@ struct HolidaysEntry uint32 HolidayNameID; uint32 HolidayDescriptionID; uint8 Priority; - int8 CalendarFilterType; - uint8 Flags; + uint8 CalendarFilterType; + int32 Flags; std::array Duration; std::array Date; // dates in unix time starting at January, 1, 2000 std::array CalendarFlags; @@ -2194,8 +2198,11 @@ struct ItemEntry uint32 ItemGroupSoundsID; int32 ContentTuningID; int32 ModifiedCraftingReagentItemID; + uint8 Unknown1200; int32 CraftingQualityID; - int32 Unknown1127; + int32 ItemSquishEraID; + float RecraftReagentCountPercentage; + uint8 OrderSource; }; struct ItemAppearanceEntry @@ -2301,7 +2308,7 @@ struct ItemChildEquipmentEntry uint32 ID; uint32 ParentItemID; int32 ChildItemID; - uint8 ChildItemEquipSlot; + int32 ChildItemEquipSlot; }; struct ItemClassEntry @@ -2320,7 +2327,7 @@ struct ItemContextPickerEntryEntry uint8 OrderIndex; int32 PVal; int32 LabelID; - uint32 Flags; + int32 Flags; uint32 PlayerConditionID; uint32 ItemContextPickerID; }; @@ -2389,7 +2396,7 @@ struct ItemEffectEntry { uint32 ID; uint8 LegacySlotIndex; - int8 TriggerType; + uint8 TriggerType; int16 Charges; int32 CoolDownMSec; int32 CategoryCoolDownMSec; @@ -2445,7 +2452,7 @@ struct ItemLimitCategoryEntry uint32 ID; LocalizedString Name; uint8 Quantity; - uint8 Flags; + int32 Flags; }; struct ItemLimitCategoryConditionEntry @@ -2505,7 +2512,7 @@ struct ItemScalingConfigEntry int32 ItemOffsetCurveID; int32 ItemLevel; int32 RequiredLevel; - int32 Unknown1125; + int32 ItemSquishEraID; int32 Flags; }; @@ -2533,7 +2540,7 @@ struct ItemSetEntry { uint32 ID; LocalizedString Name; - uint32 SetFlags; + int32 SetFlags; uint32 RequiredSkill; uint16 RequiredSkillRank; std::array ItemID; @@ -2586,7 +2593,7 @@ struct ItemSparseEntry int32 PlayerLevelToItemLevelCurveID; int32 ItemLevelOffsetCurveID; int32 ItemLevelOffsetItemLevel; - int32 Unknown1127; + int32 ItemSquishEraID; uint16 ItemNameDescriptionID; uint16 RequiredTransmogHoliday; uint16 RequiredHoliday; @@ -2639,6 +2646,14 @@ struct ItemSpecOverrideEntry uint32 ItemID; }; +struct ItemSquishEraEntry +{ + uint32 ID; + int32 Patch; + int32 CurveID; + int32 Flags; +}; + struct ItemXBonusTreeEntry { uint32 ID; @@ -2758,7 +2773,7 @@ struct LFGDungeonsEntry int32 PopupBgTextureFileID; uint8 ExpansionLevel; int16 MapID; - uint8 DifficultyID; + int16 DifficultyID; float MinGear; uint8 GroupID; uint8 OrderIndex; @@ -2816,8 +2831,8 @@ struct LiquidTypeEntry uint8 MaterialID; int32 MinimapStaticCol; std::array FrameCountTexture; - std::array Color; - std::array Float; + std::array Color; + std::array Float; std::array Int; std::array Coefficient; }; @@ -2956,7 +2971,7 @@ struct MapDifficultyEntry { LocalizedString Message; // m_message_lang (text showed when transfer to map failed) uint32 ID; - int32 DifficultyID; + int16 DifficultyID; int32 LockID; uint8 ResetInterval; int32 MaxPlayers; @@ -3142,7 +3157,7 @@ struct OverrideSpellDataEntry uint32 ID; std::array Spells; int32 PlayerActionBarFileDataID; - uint8 Flags; + int32 Flags; }; struct ParagonReputationEntry @@ -3260,7 +3275,7 @@ struct PlayerConditionEntry uint32 ModifierTreeID; int8 PowerType; uint8 PowerTypeComp; - uint8 PowerTypeValue; + int8 PowerTypeValue; int32 WeaponSubclassMask; uint8 MaxGuildLevel; uint8 MinGuildLevel; @@ -3391,13 +3406,6 @@ struct PVPDifficultyEntry BattlegroundBracketId GetBracketId() const { return BattlegroundBracketId(RangeIndex); } }; -struct PVPItemEntry -{ - uint32 ID; - int32 ItemID; - uint8 ItemLevelDelta; -}; - struct PVPStatEntry { LocalizedString Description; @@ -3563,8 +3571,8 @@ struct ScenarioEntry uint32 ID; LocalizedString Name; uint16 AreaTableID; - uint8 Type; - uint8 Flags; + int32 Type; + int32 Flags; uint32 UiTextureKitID; }; @@ -3579,7 +3587,7 @@ struct ScenarioStepEntry int32 RelatedStep; // Bonus step can only be completed if scenario is in the step specified in this field uint16 Supersedes; // Used in conjunction with Proving Grounds scenarios, when sequencing steps (Not using step order?) uint8 OrderIndex; - uint8 Flags; + int32 Flags; uint32 VisibilityPlayerConditionID; uint16 WidgetSetID; @@ -3609,6 +3617,7 @@ struct SceneScriptPackageEntry { uint32 ID; char const* Name; + int32 Flags; int32 Unknown915; }; @@ -3740,7 +3749,7 @@ struct SpecSetMemberEntry struct SpellAuraOptionsEntry { uint32 ID; - uint8 DifficultyID; + int16 DifficultyID; uint16 CumulativeAura; int32 ProcCategoryRecovery; uint8 ProcChance; @@ -3753,7 +3762,7 @@ struct SpellAuraOptionsEntry struct SpellAuraRestrictionsEntry { uint32 ID; - int32 DifficultyID; + int16 DifficultyID; int32 CasterAuraState; int32 TargetAuraState; int32 ExcludeCasterAuraState; @@ -3762,10 +3771,10 @@ struct SpellAuraRestrictionsEntry int32 TargetAuraSpell; int32 ExcludeCasterAuraSpell; int32 ExcludeTargetAuraSpell; - int32 CasterAuraType; - int32 TargetAuraType; - int32 ExcludeCasterAuraType; - int32 ExcludeTargetAuraType; + int16 CasterAuraType; + int16 TargetAuraType; + int16 ExcludeCasterAuraType; + int16 ExcludeTargetAuraType; uint32 SpellID; }; @@ -3791,9 +3800,10 @@ struct SpellCastingRequirementsEntry struct SpellCategoriesEntry { uint32 ID; - uint8 DifficultyID; + int16 DifficultyID; int16 Category; - int32 DefenseType; + int8 DefenseType; + int32 DiminishType; int8 DispelType; int8 Mechanic; int32 PreventionType; @@ -3827,7 +3837,7 @@ struct SpellClassOptionsEntry struct SpellCooldownsEntry { uint32 ID; - uint8 DifficultyID; + int16 DifficultyID; int32 CategoryRecoveryTime; int32 RecoveryTime; int32 StartRecoveryTime; @@ -3840,13 +3850,14 @@ struct SpellDurationEntry uint32 ID; int32 Duration; int32 MaxDuration; + int32 DurationPerResource; }; struct SpellEffectEntry { uint32 ID; int16 EffectAura; - int32 DifficultyID; + int16 DifficultyID; int32 EffectIndex; uint32 Effect; float EffectAmplitude; @@ -3869,6 +3880,7 @@ struct SpellEffectEntry float GroupSizeBasePointsCoefficient; float EffectBasePoints; int32 ScalingClass; + int32 TargetNodeGraph; std::array EffectMiscValue; std::array EffectRadiusIndex; flag128 EffectSpellClassMask; @@ -3911,7 +3923,7 @@ struct SpellFocusObjectEntry struct SpellInterruptsEntry { uint32 ID; - uint8 DifficultyID; + int16 DifficultyID; int32 InterruptFlags; std::array AuraInterruptFlags; std::array ChannelInterruptFlags; @@ -3988,7 +4000,7 @@ struct SpellLearnSpellEntry struct SpellLevelsEntry { uint32 ID; - uint8 DifficultyID; + int16 DifficultyID; int16 MaxLevel; uint8 MaxPassiveAuraLevel; int32 BaseLevel; @@ -3999,8 +4011,8 @@ struct SpellLevelsEntry struct SpellMiscEntry { uint32 ID; - std::array Attributes; - uint8 DifficultyID; + std::array Attributes; + int16 DifficultyID; uint16 CastingTimeIndex; uint16 DurationIndex; uint16 PvPDurationIndex; @@ -4047,7 +4059,7 @@ struct SpellPowerEntry struct SpellPowerDifficultyEntry { uint32 ID; - uint8 DifficultyID; + int16 DifficultyID; uint8 OrderIndex; }; @@ -4055,13 +4067,13 @@ struct SpellProcsPerMinuteEntry { uint32 ID; float BaseProcRate; - uint8 Flags; + int32 Flags; }; struct SpellProcsPerMinuteModEntry { uint32 ID; - uint8 Type; + int32 Type; int32 Param; float Coeff; uint32 SpellProcsPerMinuteID; @@ -4081,7 +4093,7 @@ struct SpellRangeEntry uint32 ID; LocalizedString DisplayName; LocalizedString DisplayNameShort; - uint8 Flags; + int32 Flags; std::array RangeMin; std::array RangeMax; }; @@ -4102,8 +4114,10 @@ struct SpellReagentsCurrencyEntry { uint32 ID; uint32 SpellID; - uint16 CurrencyTypesID; - uint16 CurrencyCount; + int32 CurrencyTypesID; + int32 CurrencyCount; + int32 OverrideRecraftCurrencyCount; + uint8 OrderSource; }; struct SpellScalingEntry @@ -4112,7 +4126,6 @@ struct SpellScalingEntry int32 SpellID; uint32 MinScalingLevel; uint32 MaxScalingLevel; - int16 ScalesFromItemLevel; }; struct SpellShapeshiftEntry @@ -4146,7 +4159,7 @@ struct SpellShapeshiftFormEntry struct SpellTargetRestrictionsEntry { uint32 ID; - uint8 DifficultyID; + int16 DifficultyID; float ConeDegrees; uint8 MaxTargets; uint32 MaxTargetLevel; @@ -4197,10 +4210,10 @@ struct SpellVisualEffectNameEntry float MinAllowedScale; float MaxAllowedScale; float Alpha; - uint32 Flags; + int32 Flags; int32 TextureFileDataID; float EffectRadius; - uint32 Type; + int32 Type; int32 GenericID; uint32 RibbonQualityID; int32 DissolveEffectID; @@ -4237,7 +4250,7 @@ struct SpellVisualMissileEntry int32 FollowGroundHeight; uint32 FollowGroundDropSpeed; uint16 FollowGroundApproach; - uint32 Flags; + int32 Flags; uint16 SpellMissileMotionID; uint32 AnimKitID; int32 ClutterLevel; @@ -4249,7 +4262,7 @@ struct SpellVisualMissileEntry struct SpellXSpellVisualEntry { uint32 ID; - uint8 DifficultyID; + int16 DifficultyID; uint32 SpellVisualID; float Probability; int32 Flags; @@ -4470,7 +4483,7 @@ struct TraitEdgeEntry int32 VisualStyle; uint32 LeftTraitNodeID; int32 RightTraitNodeID; - int32 Type; + uint8 Type; }; struct TraitNodeEntry @@ -4698,8 +4711,7 @@ struct UiMapEntry uint8 Type; int32 BountySetID; uint32 BountyDisplayLocation; - int32 VisibilityPlayerConditionID2; // if not met then map is skipped when evaluating UiMapAssignment - int32 VisibilityPlayerConditionID; // if not met then client checks other maps with the same AlternateUiMapGroup, not re-evaluating UiMapAssignment for them + int32 VisibilityPlayerConditionID; int8 HelpTextPosition; int32 BkgAtlasID; int32 AlternateUiMapGroup; diff --git a/src/server/game/DataStores/DBCEnums.h b/src/server/game/DataStores/DBCEnums.h index f668678b42..7312b23ed8 100644 --- a/src/server/game/DataStores/DBCEnums.h +++ b/src/server/game/DataStores/DBCEnums.h @@ -799,7 +799,7 @@ enum class CriteriaType : int16 RemoveDecor = 271, /*NYI*/ // Remove any decor CollectUniqueDecor = 272, /*NYI*/ // Collect Unique Decor - Count = 279 + Count = 283 }; enum class CriteriaTreeFlags : uint16 @@ -925,7 +925,7 @@ enum class CurveInterpolationMode : uint8 Constant = 6, }; -enum Difficulty : uint8 +enum Difficulty : int16 { DIFFICULTY_NONE = 0, DIFFICULTY_NORMAL = 1, @@ -1149,6 +1149,7 @@ enum class GameRule : int32 GdapiCharacterProfileDisabled = 153, HousingEnabled = 154, RestrictedAchievementCategoryID = 155, + EjJourneysDisabled = 156, LootMethodStyle = 157, ExperienceBarDisabled = 159, HideUnavailableTransmogSlots = 160, @@ -1160,6 +1161,7 @@ enum class GameRule : int32 RecommendLeastPopulatedRealm = 169, BagSpaceOverride = 172, UnflaggedPlayersCanAttackPvPFlaggedPlayers = 173, + PvPInitialRatingOverride = 190, }; enum class GlobalCurve : int32 @@ -1188,6 +1190,16 @@ enum class GlobalCurve : int32 MythicPlusEndOfRunGearSequenceLevel = 23, SpellAreaEffectWarningRadius = 26, // ground spell effect warning circle radius (based on spell radius) + + HouseLevelFavorForLevel = 37, + HouseInteriorDecorBudget = 38, + HouseExteriorDecorBudget = 39, + HouseRoomPlacementBudget = 40, + HouseFixtureBudget = 41, + + TransmogCost = 43, + + MaxHouseSizeForLevel = 46, }; #define MAX_ITEM_PROTO_FLAGS 5 @@ -1276,6 +1288,7 @@ enum ItemBonusType ITEM_BONUS_BONDING_WITH_PRIORITY = 47, ITEM_BONUS_ITEM_OFFSET_CURVE = 48, ITEM_BONUS_SCALING_CONFIG_AND_REQ_LEVEL = 49, + ITEM_BONUS_ITEM_BONUS_LIST = 50, ITEM_BONUS_SCALING_CONFIG = 51, }; @@ -1546,12 +1559,15 @@ enum ItemSpecStat enum MapTypes // Lua_IsInInstance { - MAP_COMMON = 0, // none - MAP_INSTANCE = 1, // party - MAP_RAID = 2, // raid - MAP_BATTLEGROUND = 3, // pvp - MAP_ARENA = 4, // arena - MAP_SCENARIO = 5 // scenario + MAP_COMMON = 0, // none + MAP_INSTANCE = 1, // party + MAP_RAID = 2, // raid + MAP_BATTLEGROUND = 3, // pvp + MAP_ARENA = 4, // arena + MAP_SCENARIO = 5, // scenario + MAP_WOWLABS = 6, // wowlabs + MAP_HOUSE_INTERIOR = 7, // interior + MAP_HOUSE_NEIGHBORHOOD = 8 // neighborhood }; enum class MapFlags : uint32 diff --git a/src/server/game/DungeonFinding/LFGMgr.h b/src/server/game/DungeonFinding/LFGMgr.h index cb6e9af6bb..c293bfcf0d 100644 --- a/src/server/game/DungeonFinding/LFGMgr.h +++ b/src/server/game/DungeonFinding/LFGMgr.h @@ -32,7 +32,7 @@ class Player; class Quest; class Map; struct LFGDungeonsEntry; -enum Difficulty : uint8; +enum Difficulty : int16; namespace WorldPackets { diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index 00ef5e065c..2e7564b0ae 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -1556,7 +1556,7 @@ void GameObject::Update(uint32 diff) m_loot->Update(); // Non-consumable chest was partially looted and restock time passed, restock all loot now - if (GetGOInfo()->chest.consumable == 0 && m_restockTime && GameTime::GetGameTime() >= m_restockTime) + if (!GetGOInfo()->IsDespawnAtAction() && m_restockTime && GameTime::GetGameTime() >= m_restockTime) { m_restockTime = 0; m_lootState = GO_READY; @@ -2621,7 +2621,7 @@ void GameObject::Use(Unit* user, bool ignoreCastInProgress /*= false*/) if (info->GetLootId()) { Group const* group = player->GetGroup(); - bool groupRules = group && info->chest.usegrouplootrules; + bool groupRules = group && info->IsUsingGroupLootRules(); Loot* loot = new Loot(GetMap(), GetGUID(), LOOT_CHEST, groupRules ? group : nullptr); m_loot.reset(loot); @@ -3237,7 +3237,7 @@ void GameObject::Use(Unit* user, bool ignoreCastInProgress /*= false*/) // fallback, will always work player->TeleportTo(GetMapId(), GetPositionX(), GetPositionY(), GetPositionZ(), GetOrientation(), TELE_TO_NOT_LEAVE_TRANSPORT | TELE_TO_NOT_LEAVE_COMBAT | TELE_TO_NOT_UNSUMMON_PET); - player->SetStandState(UnitStandStateType(UNIT_STAND_STATE_SIT_LOW_CHAIR + info->barberChair.chairheight), info->barberChair.SitAnimKit); + player->SetStandState(UnitStandStateType(UNIT_STAND_STATE_SIT_LOW_CHAIR + info->barberChair.chairheight), info->barberChair.CustomSitAnimKit); return; } case GAMEOBJECT_TYPE_NEW_FLAG: @@ -3874,7 +3874,7 @@ void GameObject::OnLootRelease(Player* looter) case GAMEOBJECT_TYPE_CHEST: { GameObjectTemplate const* goInfo = GetGOInfo(); - if (!goInfo->chest.consumable && goInfo->chest.chestPersonalLoot) + if (!goInfo->IsDespawnAtAction() && goInfo->chest.chestPersonalLoot) { DespawnForPlayer(looter, goInfo->chest.chestRestockTime ? Seconds(goInfo->chest.chestRestockTime) diff --git a/src/server/game/Entities/GameObject/GameObjectData.h b/src/server/game/Entities/GameObject/GameObjectData.h index 2bb91b60c0..e0adfa7d46 100644 --- a/src/server/game/Entities/GameObject/GameObjectData.h +++ b/src/server/game/Entities/GameObject/GameObjectData.h @@ -27,6 +27,26 @@ #include #include +// TODO: Reorder properly, this is temporary to fix compile +enum class GameObjectChestFlags : int32 +{ + Consumable = 0x0001, + RequireLOS = 0x0002, + LeaveLoot = 0x0004, + NotInCombat = 0x0008, + LogLoot = 0x0010, + UseGroupLootRules = 0x0020, + FloatingTooltip = 0x0040, + GroupXP = 0x0080, + DamageImmuneOK = 0x0100, + GiganticAOI = 0x0200, + LargeAOI = 0x0400, + TurnPersonalLootSecurityOff = 0x0800, + ForceSingleLooter = 0x1000 +}; + +DEFINE_ENUM_FLAG(GameObjectChestFlags); + struct DestructibleHitpoint { uint32 Id; @@ -107,38 +127,38 @@ struct GameObjectTemplate uint32 open; // 0 open, References: Lock_, NoValue = 0 uint32 chestLoot; // 1 chestLoot (legacy/classic), References: Treasure, NoValue = 0 uint32 chestRestockTime; // 2 chestRestockTime, int, Min value: 0, Max value: 1800000, Default value: 0 - uint32 consumable; // 3 consumable, enum { false, true, }; Default: false + uint32 Unused; // 3 Unused, int, Min value: 0, Max value: 2147483647, Default value: 0 uint32 minRestock; // 4 minRestock, int, Min value: 0, Max value: 65535, Default value: 0 uint32 maxRestock; // 5 maxRestock, int, Min value: 0, Max value: 65535, Default value: 0 uint32 triggeredEvent; // 6 triggeredEvent, References: GameEvents, NoValue = 0 uint32 linkedTrap; // 7 linkedTrap, References: GameObjects, NoValue = 0 uint32 questID; // 8 questID, References: QuestV2, NoValue = 0 uint32 InteractRadiusOverride; // 9 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0 - uint32 requireLOS; // 10 require LOS, enum { false, true, }; Default: false - uint32 leaveLoot; // 11 leaveLoot, enum { false, true, }; Default: false - uint32 notInCombat; // 12 notInCombat, enum { false, true, }; Default: false - uint32 logloot; // 13 log loot, enum { false, true, }; Default: false + uint32 Unused2; // 10 Unused, int, Min value: 0, Max value: 2147483647, Default value: 0 + uint32 Unused3; // 11 Unused, int, Min value: 0, Max value: 2147483647, Default value: 0 + uint32 Unused4; // 12 Unused, int, Min value: 0, Max value: 2147483647, Default value: 0 + uint32 Unused5; // 13 Unused, int, Min value: 0, Max value: 2147483647, Default value: 0 uint32 openTextID; // 14 openTextID, References: BroadcastText, NoValue = 0 - uint32 usegrouplootrules; // 15 use group loot rules, enum { false, true, }; Default: false - uint32 floatingTooltip; // 16 floatingTooltip, enum { false, true, }; Default: false + uint32 Unused6; // 15 Unused, int, Min value: 0, Max value: 2147483647, Default value: 0 + uint32 Unused7; // 16 Unused, int, Min value: 0, Max value: 2147483647, Default value: 0 uint32 conditionID1; // 17 conditionID1, References: PlayerCondition, NoValue = 0 int32 xpLevel; // 18 xpLevel, int, Min value: -2147483648, Max value: 2147483647, Default value: 0 uint32 xpDifficulty; // 19 xpDifficulty, enum { No Exp, Trivial, Very Small, Small, Substandard, Standard, High, Epic, Dungeon, 5, }; Default: No Exp - uint32 Unused; // 20 Unused, int, Min value: 0, Max value: 123, Default value: 0 - uint32 GroupXP; // 21 Group XP, enum { false, true, }; Default: false - uint32 DamageImmuneOK; // 22 Damage Immune OK, enum { false, true, }; Default: false + uint32 ChestFlags; // 20 Chest Flags, int, Min value: 0, Max value: 2147483647, Default value: 0 + uint32 OneTimeChestCharacterFlag; // 21 One Time Chest Character Flag, References: PlayerDataFlagCharacter, NoValue = 0 + uint32 OneTimeChestAccountFlag; // 22 One Time Chest Account Flag, References: PlayerDataFlagAccount, NoValue = 0 uint32 trivialSkillLow; // 23 trivialSkillLow, int, Min value: 0, Max value: 65535, Default value: 0 uint32 trivialSkillHigh; // 24 trivialSkillHigh, int, Min value: 0, Max value: 65535, Default value: 0 uint32 DungeonEncounter; // 25 Dungeon Encounter, References: DungeonEncounter, NoValue = 0 uint32 spell; // 26 spell, References: Spell, NoValue = 0 - uint32 GiganticAOI; // 27 Gigantic AOI, enum { false, true, }; Default: false - uint32 LargeAOI; // 28 Large AOI, enum { false, true, }; Default: false + uint32 Unused8; // 27 Unused, int, Min value: 0, Max value: 2147483647, Default value: 0 + uint32 Unused9; // 28 Unused, int, Min value: 0, Max value: 2147483647, Default value: 0 uint32 SpawnVignette; // 29 Spawn Vignette, References: vignette, NoValue = 0 uint32 chestPersonalLoot; // 30 chest Personal Loot, References: Treasure, NoValue = 0 - uint32 turnpersonallootsecurityoff; // 31 turn personal loot security off, enum { false, true, }; Default: false - uint32 ChestProperties; // 32 Chest Properties, References: ChestProperties, NoValue = 0 + uint32 Unused10; // 31 Unused, int, Min value: 0, Max value: 2147483647, Default value: 0 + uint32 Unused11; // 32 Unused, References: ChestProperties, NoValue = 0 uint32 chestPushLoot; // 33 chest Push Loot, References: Treasure, NoValue = 0 - uint32 ForceSingleLooter; // 34 Force Single Looter, enum { false, true, }; Default: false + uint32 Unused12; // 34 Unused, int, Min value: 0, Max value: 2147483647, Default value: 0 } chest; // 4 GAMEOBJECT_TYPE_BINDER struct @@ -194,6 +214,8 @@ struct GameObjectTemplate uint32 triggeredEvent; // 3 triggeredEvent, References: GameEvents, NoValue = 0 uint32 conditionID1; // 4 conditionID1, References: PlayerCondition, NoValue = 0 uint32 InteractRadiusOverride; // 5 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0 + uint32 CustomSitAnimKit; // 6 Custom Sit Anim Kit, References: AnimKit, NoValue = 0 + int32 CustomSitHeightOffset; // 7 Custom Sit Height Offset (inches), int, Min value: -100, Max value: 100, Default value: 0 } chair; // 8 GAMEOBJECT_TYPE_SPELL_FOCUS struct @@ -503,7 +525,7 @@ struct GameObjectTemplate // 31 GAMEOBJECT_TYPE_DUNGEON_DIFFICULTY struct { - uint32 InstanceType; // 0 Instance Type, enum { Not Instanced, Party Dungeon, Raid Dungeon, PVP Battlefield, Arena Battlefield, Scenario, WoWLabs, }; Default: Party Dungeon + uint32 InstanceType; // 0 Instance Type, enum { Not Instanced, Party Dungeon, Raid Dungeon, PVP Battlefield, Arena Battlefield, Scenario, WoWLabs, House Interior, House Neighborhood, }; Default: Party Dungeon uint32 DifficultyNormal; // 1 Difficulty Normal, References: animationdata, NoValue = 0 uint32 DifficultyHeroic; // 2 Difficulty Heroic, References: animationdata, NoValue = 0 uint32 DifficultyEpic; // 3 Difficulty Epic, References: animationdata, NoValue = 0 @@ -520,8 +542,8 @@ struct GameObjectTemplate struct { uint32 chairheight; // 0 chairheight, int, Min value: 0, Max value: 2, Default value: 1 - int32 HeightOffset; // 1 Height Offset (inches), int, Min value: -100, Max value: 100, Default value: 0 - uint32 SitAnimKit; // 2 Sit Anim Kit, References: AnimKit, NoValue = 0 + int32 CustomSitHeightOffset; // 1 Custom Sit Height Offset (inches), int, Min value: -100, Max value: 100, Default value: 0 + uint32 CustomSitAnimKit; // 2 Custom Sit Anim Kit, References: AnimKit, NoValue = 0 uint32 InteractRadiusOverride; // 3 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0 uint32 CustomizationFeatureMask; // 4 Customization Feature Mask, 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 @@ -701,14 +723,15 @@ struct GameObjectTemplate // 48 GAMEOBJECT_TYPE_UI_LINK struct { - uint32 UILinkType; // 0 UI Link Type(Deprecated), enum { Adventure Journal, Obliterum Forge, Scrapping Machine, Item Interaction, }; Default: Adventure Journal + uint32 UILinkType; // 0 UI Link Type(Deprecated), enum { Adventure Journal, Obliterum Forge, Scrapping Machine, Item Interaction, Cornerstone Interaction, }; Default: Adventure Journal uint32 allowMounted; // 1 allowMounted, enum { false, true, }; Default: false uint32 GiganticAOI; // 2 Gigantic AOI, enum { false, true, }; Default: false uint32 spellFocusType; // 3 spellFocusType, References: SpellFocusObject, NoValue = 0 uint32 radius; // 4 radius, int, Min value: 0, Max value: 50, Default value: 10 uint32 InteractRadiusOverride; // 5 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0 uint32 ItemInteractionID; // 6 Item Interaction ID, References: UiItemInteraction, NoValue = 0 - uint32 PlayerInteractionType; // 7 Player Interaction Type, enum { None, TradePartner, Item, Gossip, QuestGiver, Merchant, TaxiNode, Trainer, Banker, AlliedRaceDetailsGiver, GuildBanker, Registrar, Vendor, PetitionVendor, GuildTabardVendor, TalentMaster, SpecializationMaster, MailInfo, SpiritHealer, AreaSpiritHealer, Binder, Auctioneer, StableMaster, BattleMaster, Transmogrifier, LFGDungeon, VoidStorageBanker, BlackMarketAuctioneer, AdventureMap, WorldMap, GarrArchitect, GarrTradeskill, GarrMission, ShipmentCrafter, GarrRecruitment, GarrTalent, Trophy, PlayerChoice, ArtifactForge, ObliterumForge, ScrappingMachine, ContributionCollector, AzeriteRespec, IslandQueue, ItemInteraction, ChromieTime, CovenantPreview, AnimaDiversion, LegendaryCrafting, WeeklyRewards, Soulbind, CovenantSanctum, NewPlayerGuide, ItemUpgrade, AdventureJournal, Renown, AzeriteForge, PerksProgramVendor, ProfessionsCraftingOrder, Professions, ProfessionsCustomerOrder, TraitSystem, BarbersChoice, JailersTowerBuffs, MajorFactionRenown, PersonalTabardVendor, ForgeMaster, CharacterBanker, AccountBanker, ProfessionRespec, PlaceholderType71, PlaceholderType72, PlaceholderType73, PlaceholderType74, PlaceholderType75, PlaceholderType76, GuildRename, PlaceholderType76, }; Default: None + uint32 PlayerInteractionType; // 7 Player Interaction Type, enum { None, TradePartner, Item, Gossip, QuestGiver, Merchant, TaxiNode, Trainer, Banker, AlliedRaceDetailsGiver, GuildBanker, Registrar, Vendor, PetitionVendor, GuildTabardVendor, TalentMaster, SpecializationMaster, MailInfo, SpiritHealer, AreaSpiritHealer, Binder, Auctioneer, StableMaster, BattleMaster, Transmogrifier, LFGDungeon, VoidStorageBanker, BlackMarketAuctioneer, AdventureMap, WorldMap, GarrArchitect, GarrTradeskill, GarrMission, ShipmentCrafter, GarrRecruitment, GarrTalent, Trophy, PlayerChoice, ArtifactForge, ObliterumForge, ScrappingMachine, ContributionCollector, AzeriteRespec, IslandQueue, ItemInteraction, ChromieTime, CovenantPreview, AnimaDiversion, LegendaryCrafting, WeeklyRewards, Soulbind, CovenantSanctum, NewPlayerGuide, ItemUpgrade, AdventureJournal, Renown, AzeriteForge, PerksProgramVendor, ProfessionsCraftingOrder, Professions, ProfessionsCustomerOrder, TraitSystem, BarbersChoice, JailersTowerBuffs, MajorFactionRenown, PersonalTabardVendor, ForgeMaster, CharacterBanker, AccountBanker, ProfessionRespec, CornerstoneInteraction, RenameNeighborhood, HousingBulletinBoard, HousingPedestal, CreateGuildNeighborhood, NeighborhoodCharter, GuildRename, OpenNeighborhoodCharterConfirmation, OpenHouseFinder, TieredEntrance, }; Default: None + uint32 spell; // 8 spell, References: Spell, NoValue = 0 } UILink; // 49 GAMEOBJECT_TYPE_KEYSTONE_RECEPTACLE struct @@ -868,7 +891,8 @@ struct GameObjectTemplate { switch (type) { - case GAMEOBJECT_TYPE_CHEST: return chest.consumable != 0; + case GAMEOBJECT_TYPE_CHEST: return chest.Unused != 0; // TODO: update database values and research flag order + // case GAMEOBJECT_TYPE_CHEST: return EnumFlag(static_cast(chest.ChestFlags)).HasFlag(GameObjectChestFlags::Consumable); case GAMEOBJECT_TYPE_GOOBER: return goober.consumable != 0; default: return false; } @@ -995,7 +1019,8 @@ struct GameObjectTemplate { case GAMEOBJECT_TYPE_BUTTON: return button.requireLOS; case GAMEOBJECT_TYPE_QUESTGIVER: return questgiver.requireLOS; - case GAMEOBJECT_TYPE_CHEST: return chest.requireLOS; + case GAMEOBJECT_TYPE_CHEST: return chest.Unused2; // TODO: update database values and research flag order + // case GAMEOBJECT_TYPE_CHEST: return EnumFlag(static_cast(chest.ChestFlags)).HasFlag(GameObjectChestFlags::RequireLOS); case GAMEOBJECT_TYPE_TRAP: return trap.requireLOS; case GAMEOBJECT_TYPE_GOOBER: return goober.requireLOS; case GAMEOBJECT_TYPE_FLAGSTAND: return flagStand.requireLOS; @@ -1053,7 +1078,8 @@ struct GameObjectTemplate case GAMEOBJECT_TYPE_DOOR: return door.noDamageImmune; case GAMEOBJECT_TYPE_BUTTON: return button.noDamageImmune; case GAMEOBJECT_TYPE_QUESTGIVER: return questgiver.noDamageImmune; - case GAMEOBJECT_TYPE_CHEST: return !chest.DamageImmuneOK; + case GAMEOBJECT_TYPE_CHEST: return !chest.OneTimeChestAccountFlag; // TODO: update database values and research flag order + // case GAMEOBJECT_TYPE_CHEST: return !EnumFlag(static_cast(chest.ChestFlags)).HasFlag(GameObjectChestFlags::DamageImmuneOK); case GAMEOBJECT_TYPE_GOOBER: return goober.noDamageImmune; case GAMEOBJECT_TYPE_FLAGSTAND: return flagStand.noDamageImmune; case GAMEOBJECT_TYPE_FLAGDROP: return flagDrop.noDamageImmune; @@ -1065,7 +1091,8 @@ struct GameObjectTemplate { switch (type) { - case GAMEOBJECT_TYPE_CHEST: return chest.notInCombat; + case GAMEOBJECT_TYPE_CHEST: return chest.Unused4; // TODO: update database values and research flag order + //case GAMEOBJECT_TYPE_CHEST: return EnumFlag(static_cast(chest.ChestFlags)).HasFlag(GameObjectChestFlags::NotInCombat); case GAMEOBJECT_TYPE_GATHERING_NODE: return gatheringNode.notInCombat; default: return 0; } @@ -1122,6 +1149,16 @@ struct GameObjectTemplate } } + bool IsUsingGroupLootRules() const + { + switch (type) + { + case GAMEOBJECT_TYPE_CHEST: return chest.Unused6 != 0; // TODO: update database values and research flag order + //case GAMEOBJECT_TYPE_CHEST: return EnumFlag(static_cast(chest.ChestFlags)).HasFlag(GameObjectChestFlags::UseGroupLootRules); + default: return false; + } + } + uint32 GetGossipMenuId() const { switch (type) @@ -1264,7 +1301,8 @@ struct GameObjectTemplate case GAMEOBJECT_TYPE_DOOR: return door.GiganticAOI != 0; case GAMEOBJECT_TYPE_BUTTON: return button.GiganticAOI != 0; case GAMEOBJECT_TYPE_QUESTGIVER: return questgiver.GiganticAOI != 0; - case GAMEOBJECT_TYPE_CHEST: return chest.GiganticAOI != 0; + case GAMEOBJECT_TYPE_CHEST: return chest.Unused8 != 0; // TODO: update database values and research flag order + // case GAMEOBJECT_TYPE_CHEST: return EnumFlag(static_cast(chest.ChestFlags)).HasFlag(GameObjectChestFlags::GiganticAOI); case GAMEOBJECT_TYPE_GENERIC: return generic.GiganticAOI != 0; case GAMEOBJECT_TYPE_TRAP: return trap.GiganticAOI != 0; case GAMEOBJECT_TYPE_SPELL_FOCUS: return spellFocus.GiganticAOI != 0; @@ -1292,7 +1330,8 @@ struct GameObjectTemplate { switch (type) { - case GAMEOBJECT_TYPE_CHEST: return chest.LargeAOI != 0; + case GAMEOBJECT_TYPE_CHEST: return chest.Unused9 != 0; // TODO: update database values and research flag order + // case GAMEOBJECT_TYPE_CHEST: return EnumFlag(static_cast(chest.ChestFlags)).HasFlag(GameObjectChestFlags::LargeAOI); case GAMEOBJECT_TYPE_GENERIC: return generic.LargeAOI != 0; case GAMEOBJECT_TYPE_GOOBER: return goober.LargeAOI != 0; case GAMEOBJECT_TYPE_DUNGEON_DIFFICULTY: return dungeonDifficulty.LargeAOI != 0; diff --git a/src/server/game/Entities/Item/Item.cpp b/src/server/game/Entities/Item/Item.cpp index 5bbd1b81ed..2eab8cc081 100644 --- a/src/server/game/Entities/Item/Item.cpp +++ b/src/server/game/Entities/Item/Item.cpp @@ -20,6 +20,7 @@ #include "AzeriteEmpoweredItem.h" #include "AzeriteItem.h" #include "Bag.h" +#include "ClientBuildInfo.h" #include "CollectionMgr.h" #include "Common.h" #include "ConditionMgr.h" @@ -39,6 +40,7 @@ #include "ObjectAccessor.h" #include "ObjectMgr.h" #include "Player.h" +#include "RealmList.h" #include "ScriptMgr.h" #include "SpellInfo.h" #include "SpellMgr.h" @@ -2356,7 +2358,28 @@ uint32 Item::GetItemLevel(ItemTemplate const* itemTemplate, BonusData const& bon itemLevel = bonusData.PvpItemLevel; itemLevel += bonusData.PvpItemLevelBonus; - itemLevel += sDB2Manager.GetPvpItemLevelBonus(itemTemplate->GetId()); + } + + if (!bonusData.IgnoreSquish) + { + if (std::shared_ptr currentRealm = sRealmList->GetCurrentRealm()) + { + int32 currentBuild = ClientBuild::GetMinorMajorBugfixVersionForBuild(currentRealm->Build); + + // apply all squishes between items_squish and server_squish + for (uint32 squishId = bonusData.ItemSquishEraID; squishId < sItemSquishEraStore.GetNumRows(); ++squishId) + { + ItemSquishEraEntry const* squish = sItemSquishEraStore.LookupEntry(squishId); + if (!squish) + continue; + + if (squish->Patch > currentBuild) + break; + + if (squish->CurveID) + itemLevel = uint32(sDB2Manager.GetCurveValueAt(squish->CurveID, itemLevel)); + } + } } if (itemTemplate->GetInventoryType() != INVTYPE_NON_EQUIP) @@ -2597,7 +2620,7 @@ uint16 Item::GetVisibleItemVisual(Player const* owner) const void Item::AddBonuses(uint32 bonusListID) { - if (std::find(GetBonusListIDs().begin(), GetBonusListIDs().end(), int32(bonusListID)) != GetBonusListIDs().end()) + if (advstd::ranges::contains(GetBonusListIDs(), int32(bonusListID))) return; WorldPackets::Item::ItemBonusKey itemBonusKey; @@ -2944,6 +2967,7 @@ void BonusData::Initialize(ItemTemplate const* proto) ItemLevelOffsetCurveId = proto->GetItemLevelOffsetCurveId(); ItemLevelOffsetItemLevel = proto->GetItemLevelOffsetItemLevel(); ItemLevelOffset = 0; + ItemSquishEraID = proto->GetItemSquishEraId(); EffectCount = 0; for (ItemEffectEntry const* itemEffect : proto->Effects) @@ -2959,6 +2983,7 @@ void BonusData::Initialize(ItemTemplate const* proto) CanSalvage = !proto->HasFlag(ITEM_FLAG4_NO_SALVAGE); CanRecraft = proto->HasFlag(ITEM_FLAG4_RECRAFTABLE); CannotTradeBindOnPickup = proto->HasFlag(ITEM_FLAG2_NO_TRADE_BIND_ON_ACQUIRE); + IgnoreSquish = false; _state.SuffixPriority = std::numeric_limits::max(); _state.AppearanceModPriority = std::numeric_limits::max(); @@ -3167,6 +3192,9 @@ void BonusData::AddBonus(uint32 type, std::array const& values) } ItemLevelOffsetItemLevel = scalingConfig->ItemLevel; + ItemSquishEraID = scalingConfig->ItemSquishEraID; + if (scalingConfig->Flags & 0x1) + IgnoreSquish = true; if (values[1] < _state.RequiredLevelCurvePriority) { @@ -3176,6 +3204,9 @@ void BonusData::AddBonus(uint32 type, std::array const& values) } } break; + case ITEM_BONUS_ITEM_BONUS_LIST: + AddBonusList(values[0]); + break; case ITEM_BONUS_SCALING_CONFIG: if (values[1] < _state.ScalingStatDistributionPriority) { @@ -3188,6 +3219,9 @@ void BonusData::AddBonus(uint32 type, std::array const& values) } ItemLevelOffsetItemLevel = 0; + ItemSquishEraID = scalingConfig->ItemSquishEraID; + if (scalingConfig->Flags & 0x1) + IgnoreSquish = true; } } break; diff --git a/src/server/game/Entities/Item/Item.h b/src/server/game/Entities/Item/Item.h index 874f1a898f..e415c6e1f8 100644 --- a/src/server/game/Entities/Item/Item.h +++ b/src/server/game/Entities/Item/Item.h @@ -86,6 +86,7 @@ struct BonusData uint32 ItemLevelOffsetCurveId; uint32 ItemLevelOffsetItemLevel; uint32 ItemLevelOffset; + uint32 ItemSquishEraID; std::array Effects; std::size_t EffectCount; uint32 LimitCategory; @@ -95,6 +96,7 @@ struct BonusData bool CanRecraft; bool HasFixedLevel; bool CannotTradeBindOnPickup; + bool IgnoreSquish; void Initialize(ItemTemplate const* proto); void Initialize(WorldPackets::Item::ItemInstance const& itemInstance); diff --git a/src/server/game/Entities/Item/ItemTemplate.h b/src/server/game/Entities/Item/ItemTemplate.h index 6b112e9e15..e86710e0b3 100644 --- a/src/server/game/Entities/Item/ItemTemplate.h +++ b/src/server/game/Entities/Item/ItemTemplate.h @@ -876,6 +876,7 @@ struct TC_GAME_API ItemTemplate uint32 GetPlayerLevelToItemLevelCurveId() const { return ExtendedData->PlayerLevelToItemLevelCurveID; } uint32 GetItemLevelOffsetCurveId() const { return ExtendedData->ItemLevelOffsetCurveID; } uint32 GetItemLevelOffsetItemLevel() const { return ExtendedData->ItemLevelOffsetItemLevel; } + uint32 GetItemSquishEraId() const { return ExtendedData->ItemSquishEraID; } uint32 GetDamageType() const { return ExtendedData->DamageDamageType; } uint32 GetDelay() const { return ExtendedData->ItemDelay; } float GetRangedModRange() const { return ExtendedData->ItemRange; } diff --git a/src/server/game/Entities/Object/BaseEntity.cpp b/src/server/game/Entities/Object/BaseEntity.cpp index 316ef1b320..db10953c74 100644 --- a/src/server/game/Entities/Object/BaseEntity.cpp +++ b/src/server/game/Entities/Object/BaseEntity.cpp @@ -265,6 +265,8 @@ void BaseEntity::BuildMovementUpdate(ByteBuffer* data, CreateObjectBits flags, P *data << uint32(0); // RemoveForcesIDs.size() *data << uint32(0); // MoveIndex + *data << float(unit->m_movementInfo.gravityModifier); + //for (std::size_t i = 0; i < RemoveForcesIDs.size(); ++i) // *data << ObjectGuid(RemoveForcesIDs); diff --git a/src/server/game/Entities/Object/MovementInfo.h b/src/server/game/Entities/Object/MovementInfo.h index f7defefe5d..d2a72dce80 100644 --- a/src/server/game/Entities/Object/MovementInfo.h +++ b/src/server/game/Entities/Object/MovementInfo.h @@ -112,6 +112,8 @@ struct MovementInfo Optional driveStatus; + float gravityModifier = 1.0f; + Optional standingOnGameObjectGUID; uint32 GetMovementFlags() const { return flags; } @@ -163,8 +165,8 @@ struct MovementForce float Magnitude = 0.0f; MovementForceType Type = MovementForceType::SingleDirectional; int32 MovementForceID = 0; - int32 Unknown1110_1 = 0; - int32 Unused1110 = 0; + int32 DurationMs = 0; + uint32 EndTimestamp = 0; uint32 Flags = 0; }; diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index a045de0322..0e3039bc26 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -1739,33 +1739,14 @@ int32 WorldObject::CalcSpellDuration(SpellInfo const* spellInfo, std::vectorPowerCosts.begin(), spellInfo->PowerCosts.end(), [=](SpellPowerEntry const* powerEntry) - { - return powerEntry && powerEntry->PowerType == POWER_COMBO_POINTS && (!powerEntry->RequiredAuraSpellID || unit->HasAura(powerEntry->RequiredAuraSpellID)); - }); - - if (itr == spellInfo->PowerCosts.end()) - return minduration; - - auto consumedItr = std::find_if(powerCosts->begin(), powerCosts->end(), - [](SpellPowerCost const& consumed) { return consumed.Power == POWER_COMBO_POINTS; }); + auto consumedItr = std::ranges::find(*powerCosts, POWER_COMBO_POINTS, &SpellPowerCost::Power); if (consumedItr == powerCosts->end()) return minduration; - int32 baseComboCost = (*itr)->ManaCost + (*itr)->OptionalCost; - if (PowerTypeEntry const* powerTypeEntry = sDB2Manager.GetPowerTypeEntry(POWER_COMBO_POINTS)) - baseComboCost += int32(CalculatePct(powerTypeEntry->MaxBasePower, (*itr)->PowerCostPct + (*itr)->OptionalCostPct)); - - float durationPerComboPoint = float(maxduration - minduration) / baseComboCost; - return minduration + int32(durationPerComboPoint * consumedItr->Amount); + return std::min(minduration + spellInfo->DurationEntry->DurationPerResource * consumedItr->Amount, maxduration); } int32 WorldObject::ModSpellDuration(SpellInfo const* spellInfo, WorldObject const* target, int32 duration, bool positive, uint32 effectMask) const diff --git a/src/server/game/Entities/Object/ObjectGuid.cpp b/src/server/game/Entities/Object/ObjectGuid.cpp index 0b18e78a3a..3c7454817d 100644 --- a/src/server/game/Entities/Object/ObjectGuid.cpp +++ b/src/server/game/Entities/Object/ObjectGuid.cpp @@ -190,21 +190,61 @@ namespace { ctx.advance_to(AppendTypeName(ctx, typeName)); ctx.advance_to(AppendComponent(ctx, guid.GetRealmId())); - ctx.advance_to(AppendComponent, hex>(ctx, guid.GetRawValue(0))); + switch (uint8 subType = (guid.GetRawValue(1) >> 40) & 0x3) + { + case 0: + // no subType + ctx.advance_to(AppendComponent, hex>(ctx, guid.GetRawValue(0))); + break; + case 1: // characterless (plunderstorm) + ctx.advance_to(AppendComponent(ctx, subType)); + ctx.advance_to(AppendComponent, hex>(ctx, guid.GetRawValue(0))); + break; + case 2: // npc-as-player + ctx.advance_to(AppendComponent(ctx, subType)); + ctx.advance_to(AppendComponent(ctx, guid.GetRawValue(1) >> 16 & 0xFFFFFF)); // creature id? + ctx.advance_to(AppendComponent, hex>(ctx, guid.GetRawValue(0))); + break; + default: + break; + } + return ctx.out(); } static ObjectGuid ParsePlayer(HighGuid /*type*/, std::string_view guidString) { uint32 realmId = 0; + uint8 subType = 0; + uint32 arg1 = 0; uint64 dbId = UI64LIT(0); if (!ParseComponent(guidString, &realmId) - || !ParseComponent(guidString, &dbId) - || !ParseDone(guidString)) + || !ParseComponent(guidString, &dbId)) return ObjectGuid::FromStringFailed; - return ObjectGuidFactory::CreatePlayer(realmId, dbId); + if (!ParseDone(guidString)) + { + // dbId holds playerType at this point + switch (dbId) + { + case 1: // characterless (plunderstorm) + break; + case 2: // npc-as-player + if (!ParseComponent(guidString, &arg1)) // creature id? + return ObjectGuid::FromStringFailed; + break; + default: + return ObjectGuid::FromStringFailed; + } + + subType = dbId; + if (!ParseComponent(guidString, &dbId) + || !ParseDone(guidString)) + return ObjectGuid::FromStringFailed; + } + + return ObjectGuidFactory::CreatePlayer(realmId, subType, arg1, dbId); } static fmt::appender FormatItem(fmt::format_context& ctx, std::string_view typeName, ObjectGuid const& guid) @@ -862,10 +902,12 @@ constexpr ObjectGuid ObjectGuidFactory::CreateUniq(ObjectGuid::LowType id) id); } -ObjectGuid ObjectGuidFactory::CreatePlayer(uint32 realmId, ObjectGuid::LowType dbId) +ObjectGuid ObjectGuidFactory::CreatePlayer(uint32 realmId, uint8 subType, uint32 arg1, ObjectGuid::LowType dbId) { return ObjectGuid(uint64((uint64(HighGuid::Player) << 58) - | (uint64(GetRealmIdForObjectGuid(realmId)) << 42)), + | (uint64(GetRealmIdForObjectGuid(realmId)) << 42) + | (uint64(subType & 0x3) << 40) + | (uint64(arg1 & 0xFFFFFF) << 16)), dbId); } diff --git a/src/server/game/Entities/Object/ObjectGuid.h b/src/server/game/Entities/Object/ObjectGuid.h index 437ed1e7c6..8c786e51c3 100644 --- a/src/server/game/Entities/Object/ObjectGuid.h +++ b/src/server/game/Entities/Object/ObjectGuid.h @@ -284,7 +284,7 @@ class TC_GAME_API ObjectGuidFactory public: static constexpr ObjectGuid CreateNull(); static constexpr ObjectGuid CreateUniq(uint64 id); - static ObjectGuid CreatePlayer(uint32 realmId, uint64 dbId); + static ObjectGuid CreatePlayer(uint32 realmId, uint8 subType, uint32 arg1, uint64 dbId); static ObjectGuid CreateItem(uint32 realmId, uint64 dbId); static ObjectGuid CreateWorldObject(HighGuid type, uint8 subType, uint32 realmId, uint16 mapId, uint32 serverId, uint32 entry, uint64 counter); static ObjectGuid CreateTransport(HighGuid type, uint32 counter); @@ -400,7 +400,7 @@ class TC_GAME_API ObjectGuid template ::Format::value == ObjectGuidFormatType::Null, int32> = 0> static constexpr ObjectGuid Create() { return ObjectGuidFactory::CreateNull(); } template ::Format::value == ObjectGuidFormatType::Uniq, int32> = 0> static constexpr ObjectGuid Create(LowType id) { return ObjectGuidFactory::CreateUniq(id); } - template ::Format::value == ObjectGuidFormatType::Player, int32> = 0> static ObjectGuid Create(LowType dbId) { return ObjectGuidFactory::CreatePlayer(0, dbId); } + template ::Format::value == ObjectGuidFormatType::Player, int32> = 0> static ObjectGuid Create(LowType dbId) { return ObjectGuidFactory::CreatePlayer(0, 0, 0, dbId); } template ::Format::value == ObjectGuidFormatType::Item, int32> = 0> static ObjectGuid Create(LowType dbId) { return ObjectGuidFactory::CreateItem(0, dbId); } template ::Format::value == ObjectGuidFormatType::WorldObject, int32> = 0> static ObjectGuid Create(uint16 mapId, uint32 entry, LowType counter) { return ObjectGuidFactory::CreateWorldObject(type, 0, 0, mapId, 0, entry, counter); } template ::Format::value == ObjectGuidFormatType::WorldObject, int32> = 0> static ObjectGuid Create(uint8 subType, uint16 mapId, uint32 entry, LowType counter) { return ObjectGuidFactory::CreateWorldObject(type, subType, 0, mapId, 0, entry, counter); } diff --git a/src/server/game/Entities/Object/Updates/UpdateFields.cpp b/src/server/game/Entities/Object/Updates/UpdateFields.cpp index 917eb89e95..e7acdaa0c0 100644 --- a/src/server/game/Entities/Object/Updates/UpdateFields.cpp +++ b/src/server/game/Entities/Object/Updates/UpdateFields.cpp @@ -881,6 +881,9 @@ void VisibleItem::WriteCreate(ByteBuffer& data, Unit const* owner, Player const* data << int32(ConditionalItemAppearanceID); data << uint16(ItemAppearanceModID); data << uint16(ItemVisual); + data.WriteBit(Field_10); + data.WriteBit(Field_11); + data.FlushBits(); } void VisibleItem::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Unit const* owner, Player const* receiver) const @@ -889,36 +892,50 @@ void VisibleItem::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Unit con if (ignoreChangesMask) changesMask.SetAll(); - data.WriteBits(changesMask.GetBlock(0), 6); + data.WriteBits(changesMask.GetBlock(0), 8); - data.FlushBits(); if (changesMask[0]) { if (changesMask[1]) { - data << int32(ItemID); + data.WriteBit(Field_10); } if (changesMask[2]) { - data << int32(SecondaryItemModifiedAppearanceID); + data.WriteBit(Field_11); } + } + data.FlushBits(); + if (changesMask[0]) + { if (changesMask[3]) { - data << int32(ConditionalItemAppearanceID); + data << int32(ItemID); } if (changesMask[4]) { - data << uint16(ItemAppearanceModID); + data << int32(SecondaryItemModifiedAppearanceID); } if (changesMask[5]) + { + data << int32(ConditionalItemAppearanceID); + } + if (changesMask[6]) + { + data << uint16(ItemAppearanceModID); + } + if (changesMask[7]) { data << uint16(ItemVisual); } } + data.FlushBits(); } void VisibleItem::ClearChangesMask() { + Base::ClearChangesMask(Field_10); + Base::ClearChangesMask(Field_11); Base::ClearChangesMask(ItemID); Base::ClearChangesMask(SecondaryItemModifiedAppearanceID); Base::ClearChangesMask(ConditionalItemAppearanceID); @@ -1055,10 +1072,6 @@ void UnitData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisi data << int32(ScalingLevelDelta); data << uint8(ScalingFactionGroup); data << int32(ViewerDependentValue::GetValue(this, owner, receiver)); - for (uint32 i = 0; i < 3; ++i) - { - VirtualItems[i].WriteCreate(data, owner, receiver); - } data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); @@ -1107,7 +1120,7 @@ void UnitData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisi data << int32(EmoteState); if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag::Owner)) { - for (uint32 i = 0; i < 4; ++i) + for (uint32 i = 0; i < 5; ++i) { data << int32(Stats[i]); data << int32(StatPosBuff[i]); @@ -1187,8 +1200,8 @@ void UnitData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisi data << int32(MaxHealthModifierFlatPos); data << uint32(SilencedSchoolMask); data << uint32(CurrentAreaID); - data << float(Field_31C); - data << float(Field_320); + data << float(NameplateDistanceMod); + data << float(AutoAttackRangeMod); data << *NameplateAttachToGUID; for (uint32 i = 0; i < PassiveSpells.size(); ++i) { @@ -1202,6 +1215,10 @@ void UnitData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisi { data << ChannelObjects[i]; } + for (uint32 i = 0; i < 3; ++i) + { + VirtualItems[i].WriteCreate(data, owner, receiver); + } data.FlushBits(); data.WriteBit(Field_314); data.WriteBits(AssistActionData.has_value(), 1); @@ -1215,11 +1232,11 @@ void UnitData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisi static constexpr void UnitDataAppendAllowedFieldsMaskForFlag(UnitData::Mask& allowedMaskForTarget, EnumFlag fieldVisibilityFlags) { if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag::Owner)) - allowedMaskForTarget |= std::array{ 0x00010000u, 0xE0080000u, 0xFE100002u, 0x00000FFEu, 0xC0000200u, 0xFE03FFFFu, 0xFFFFFFFFu }; + allowedMaskForTarget |= std::array{ 0x00010000u, 0xE0080000u, 0xFE100002u, 0x00000FFEu, 0xC0000200u, 0xFE03FFFFu, 0xFFFFFFFFu, 0x0000000Fu }; if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag::UnitAll)) - allowedMaskForTarget |= std::array{ 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0xC0000200u, 0x0003FFFFu, 0x00000000u }; + allowedMaskForTarget |= std::array{ 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0xC0000200u, 0x0003FFFFu, 0x00000000u, 0x00000000u }; if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag::Empath)) - allowedMaskForTarget |= std::array{ 0x00000000u, 0xE0000000u, 0x00000002u, 0x00000000u, 0x00000000u, 0x00000000u, 0x0003FC00u }; + allowedMaskForTarget |= std::array{ 0x00000000u, 0xE0000000u, 0x00000002u, 0x00000000u, 0x00000000u, 0x00000000u, 0x003FC000u, 0x00000000u }; } void UnitData::AppendAllowedFieldsMaskForFlag(Mask& allowedMaskForTarget, EnumFlag fieldVisibilityFlags) @@ -1229,22 +1246,22 @@ void UnitData::AppendAllowedFieldsMaskForFlag(Mask& allowedMaskForTarget, EnumFl void UnitData::FilterDisallowedFieldsMaskForFlag(Mask& changesMask, EnumFlag fieldVisibilityFlags) { - Mask allowedMaskForTarget({ 0xFFFEFFFFu, 0x1FF7FFFFu, 0x01EFFFFDu, 0xFFFFF001u, 0x3FFFFFFFu, 0x01FC0000u, 0x00000000u }); + Mask allowedMaskForTarget({ 0xFFFEFFFFu, 0x1FF7FFFFu, 0x01EFFFFDu, 0xFFFFF001u, 0x3FFFFFFFu, 0x01FC0000u, 0x00000000u, 0x00000000u }); UnitDataAppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags); changesMask &= allowedMaskForTarget; } void UnitData::WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Unit const* owner, Player const* receiver) const { - Mask allowedMaskForTarget({ 0xFFFEFFFFu, 0x1FF7FFFFu, 0x01EFFFFDu, 0xFFFFF001u, 0x3FFFFFFFu, 0x01FC0000u, 0x00000000u }); + Mask allowedMaskForTarget({ 0xFFFEFFFFu, 0x1FF7FFFFu, 0x01EFFFFDu, 0xFFFFF001u, 0x3FFFFFFFu, 0x01FC0000u, 0x00000000u, 0x00000000u }); UnitDataAppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags); WriteUpdate(data, _changesMask & allowedMaskForTarget, false, owner, receiver); } void UnitData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Unit const* owner, Player const* receiver) const { - data.WriteBits(changesMask.GetBlocksMask(0), 7); - for (uint32 i = 0; i < 7; ++i) + data.WriteBits(changesMask.GetBlocksMask(0), 8); + for (uint32 i = 0; i < 8; ++i) if (changesMask.GetBlock(i)) data.WriteBits(changesMask.GetBlock(i), 32); @@ -1830,11 +1847,11 @@ void UnitData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignor } if (changesMask[133]) { - data << float(Field_31C); + data << float(NameplateDistanceMod); } if (changesMask[134]) { - data << float(Field_320); + data << float(AutoAttackRangeMod); } if (changesMask[135]) { @@ -1872,16 +1889,6 @@ void UnitData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignor } } } - if (changesMask[178]) - { - for (uint32 i = 0; i < 3; ++i) - { - if (changesMask[179 + i]) - { - VirtualItems[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); - } - } - } if (changesMask[182]) { for (uint32 i = 0; i < 2; ++i) @@ -1894,44 +1901,54 @@ void UnitData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignor } if (changesMask[185]) { - for (uint32 i = 0; i < 4; ++i) + for (uint32 i = 0; i < 5; ++i) { if (changesMask[186 + i]) { data << int32(Stats[i]); } - if (changesMask[190 + i]) + if (changesMask[191 + i]) { data << int32(StatPosBuff[i]); } - if (changesMask[194 + i]) + if (changesMask[196 + i]) { data << int32(StatNegBuff[i]); } - if (changesMask[198 + i]) + if (changesMask[201 + i]) { data << int32(StatSupportBuff[i]); } } } - if (changesMask[202]) + if (changesMask[206]) { for (uint32 i = 0; i < 7; ++i) { - if (changesMask[203 + i]) + if (changesMask[207 + i]) { data << int32(Resistances[i]); } - if (changesMask[210 + i]) + if (changesMask[214 + i]) { data << int32(BonusResistanceMods[i]); } - if (changesMask[217 + i]) + if (changesMask[221 + i]) { data << int32(ManaCostModifier[i]); } } } + if (changesMask[178]) + { + for (uint32 i = 0; i < 3; ++i) + { + if (changesMask[179 + i]) + { + VirtualItems[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + } + } + } data.FlushBits(); } @@ -2065,8 +2082,8 @@ void UnitData::ClearChangesMask() Base::ClearChangesMask(MaxHealthModifierFlatPos); Base::ClearChangesMask(SilencedSchoolMask); Base::ClearChangesMask(CurrentAreaID); - Base::ClearChangesMask(Field_31C); - Base::ClearChangesMask(Field_320); + Base::ClearChangesMask(NameplateDistanceMod); + Base::ClearChangesMask(AutoAttackRangeMod); Base::ClearChangesMask(NameplateAttachToGUID); Base::ClearChangesMask(AssistActionData); Base::ClearChangesMask(Power); @@ -2352,13 +2369,14 @@ void LeaverInfo::WriteCreate(ByteBuffer& data, Player const* owner, Player const data << int32(ConsecutiveSuccesses); data << int64(LastPenaltyTime); data << int64(LeaverExpirationTime); - data << int32(Unknown_1120); - data.WriteBits(LeaverStatus, 1); + data << int32(Flags); + data.WriteBit(IsLeaver); data.FlushBits(); } void LeaverInfo::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const { + data.FlushBits(); data << BnetAccountGUID; data << float(LeaveScore); data << uint32(SeasonID); @@ -2367,14 +2385,15 @@ void LeaverInfo::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player co data << int32(ConsecutiveSuccesses); data << int64(LastPenaltyTime); data << int64(LeaverExpirationTime); - data << int32(Unknown_1120); - data.WriteBits(LeaverStatus, 1); + data << int32(Flags); + data.WriteBit(IsLeaver); data.FlushBits(); } bool LeaverInfo::operator==(LeaverInfo const& right) const { - return BnetAccountGUID == right.BnetAccountGUID + return IsLeaver == right.IsLeaver + && BnetAccountGUID == right.BnetAccountGUID && LeaveScore == right.LeaveScore && SeasonID == right.SeasonID && TotalLeaves == right.TotalLeaves @@ -2382,8 +2401,7 @@ bool LeaverInfo::operator==(LeaverInfo const& right) const && ConsecutiveSuccesses == right.ConsecutiveSuccesses && LastPenaltyTime == right.LastPenaltyTime && LeaverExpirationTime == right.LeaverExpirationTime - && Unknown_1120 == right.Unknown_1120 - && LeaverStatus == right.LeaverStatus; + && Flags == right.Flags; } void DeclinedNames::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const @@ -2492,6 +2510,36 @@ void CustomTabardInfo::ClearChangesMask() _changesMask.ResetAll(); } +void NPCAsPlayerInfo::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +{ + data << int32(Field_0); + data << int32(CharacterLoadoutID); + data << int32(CreatureID); + data << LocWorldSpace; + data << float(FacingWorldSpace); + data << TransportGUID; +} + +void NPCAsPlayerInfo::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +{ + data << int32(Field_0); + data << int32(CharacterLoadoutID); + data << int32(CreatureID); + data << LocWorldSpace; + data << float(FacingWorldSpace); + data << TransportGUID; +} + +bool NPCAsPlayerInfo::operator==(NPCAsPlayerInfo const& right) const +{ + return Field_0 == right.Field_0 + && CharacterLoadoutID == right.CharacterLoadoutID + && CreatureID == right.CreatureID + && LocWorldSpace == right.LocWorldSpace + && FacingWorldSpace == right.FacingWorldSpace + && TransportGUID == right.TransportGUID; +} + void PlayerData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Player const* owner, Player const* receiver) const { data << *DuelArbiter; @@ -2505,7 +2553,7 @@ void PlayerData::WriteCreate(ByteBuffer& data, EnumFlag fieldVi data << uint32(GuildDeleteDate); data << int32(GuildLevel); data << uint32(Customizations.size()); - data << uint32(QaCustomizations.size()); + data << uint32(RandomCustomizations.size()); for (uint32 i = 0; i < 2; ++i) { data << uint8(PartyType[i]); @@ -2524,10 +2572,6 @@ void PlayerData::WriteCreate(ByteBuffer& data, EnumFlag fieldVi } data << uint32(QuestSessionQuestLog.size()); } - for (uint32 i = 0; i < 19; ++i) - { - VisibleItems[i].WriteCreate(data, owner, receiver); - } data << int32(PlayerTitle); data << int32(FakeInebriation); data << uint32(VirtualPlayerRealm); @@ -2546,28 +2590,29 @@ void PlayerData::WriteCreate(ByteBuffer& data, EnumFlag fieldVi { ForcedReactions[i].WriteCreate(data, owner, receiver); } - data << int32(Field_1AC); - data << int32(Field_1B0); + data << int32(OfferedAdvJournalQuestID); + data << int32(OfferedScriptQuestID); data << int32(CurrentBattlePetSpeciesID); data << uint32(PetNames.size()); CtrOptions->WriteCreate(data, owner, receiver); data << int32(CovenantID); data << int32(SoulbindID); data << *SpectateTarget; - data << int32(Field_200); + data << int32(WorldLootObjectInventorySwapSlot); data << uint32(VisualItemReplacements.size()); for (uint32 i = 0; i < 19; ++i) { - data << uint32(Field_3120[i]); + data << uint32(PlunderstormItemDisplayID[i]); } PersonalTabard->WriteCreate(data, owner, receiver); + NpcAsPlayerInfo->WriteCreate(data, owner, receiver); for (uint32 i = 0; i < Customizations.size(); ++i) { Customizations[i].WriteCreate(data, owner, receiver); } - for (uint32 i = 0; i < QaCustomizations.size(); ++i) + for (uint32 i = 0; i < RandomCustomizations.size(); ++i) { - QaCustomizations[i].WriteCreate(data, owner, receiver); + RandomCustomizations[i].WriteCreate(data, owner, receiver); } if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag::PartyMember)) { @@ -2584,6 +2629,10 @@ void PlayerData::WriteCreate(ByteBuffer& data, EnumFlag fieldVi { data << int32(VisualItemReplacements[i]); } + for (uint32 i = 0; i < 19; ++i) + { + VisibleItems[i].WriteCreate(data, owner, receiver); + } data.FlushBits(); data.WriteBits(Name->size(), 6); if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag::PartyMember)) @@ -2613,7 +2662,7 @@ void PlayerData::WriteCreate(ByteBuffer& data, EnumFlag fieldVi static constexpr void PlayerDataAppendAllowedFieldsMaskForFlag(PlayerData::Mask& allowedMaskForTarget, EnumFlag fieldVisibilityFlags) { if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag::PartyMember)) - allowedMaskForTarget |= std::array{ 0x00000022u, 0xFFF80000u, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0x00000007u, 0x00000000u, 0x00000000u, 0x00000000u }; + allowedMaskForTarget |= std::array{ 0x00000022u, 0xFFF00000u, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0x0000000Fu, 0x00000000u, 0x00000000u, 0x00000000u }; } void PlayerData::AppendAllowedFieldsMaskForFlag(Mask& allowedMaskForTarget, EnumFlag fieldVisibilityFlags) @@ -2623,14 +2672,14 @@ void PlayerData::AppendAllowedFieldsMaskForFlag(Mask& allowedMaskForTarget, Enum void PlayerData::FilterDisallowedFieldsMaskForFlag(Mask& changesMask, EnumFlag fieldVisibilityFlags) { - Mask allowedMaskForTarget({ 0xFFFFFFDDu, 0x0007FFFFu, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0xFFFFFFF8u, 0xFFFFFFFFu, 0xFFFFFFFFu, 0x0000000Fu }); + Mask allowedMaskForTarget({ 0xFFFFFFDDu, 0x000FFFFFu, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0xFFFFFFF0u, 0xFFFFFFFFu, 0xFFFFFFFFu, 0x0000001Fu }); PlayerDataAppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags); changesMask &= allowedMaskForTarget; } void PlayerData::WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Player const* owner, Player const* receiver) const { - Mask allowedMaskForTarget({ 0xFFFFFFDDu, 0x0007FFFFu, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0xFFFFFFF8u, 0xFFFFFFFFu, 0xFFFFFFFFu, 0x0000000Fu }); + Mask allowedMaskForTarget({ 0xFFFFFFDDu, 0x000FFFFFu, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0xFFFFFFF0u, 0xFFFFFFFFu, 0xFFFFFFFFu, 0x0000001Fu }); PlayerDataAppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags); WriteUpdate(data, _changesMask & allowedMaskForTarget, false, owner, receiver); } @@ -2663,9 +2712,9 @@ void PlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ign if (changesMask[4]) { if (!ignoreNestedChangesMask) - QaCustomizations.WriteUpdateMask(data); + RandomCustomizations.WriteUpdateMask(data); else - WriteCompleteDynamicFieldUpdateMask(QaCustomizations.size(), data); + WriteCompleteDynamicFieldUpdateMask(RandomCustomizations.size(), data); } if (changesMask[5]) { @@ -2711,11 +2760,11 @@ void PlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ign } if (changesMask[4]) { - for (uint32 i = 0; i < QaCustomizations.size(); ++i) + for (uint32 i = 0; i < RandomCustomizations.size(); ++i) { - if (QaCustomizations.HasChanged(i) || ignoreNestedChangesMask) + if (RandomCustomizations.HasChanged(i) || ignoreNestedChangesMask) { - QaCustomizations[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + RandomCustomizations[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); } } } @@ -2867,11 +2916,11 @@ void PlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ign } if (changesMask[36]) { - data << int32(Field_1AC); + data << int32(OfferedAdvJournalQuestID); } if (changesMask[37]) { - data << int32(Field_1B0); + data << int32(OfferedScriptQuestID); } if (changesMask[38]) { @@ -2895,12 +2944,16 @@ void PlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ign } if (changesMask[45]) { - data << int32(Field_200); + data << int32(WorldLootObjectInventorySwapSlot); } if (changesMask[47]) { PersonalTabard->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); } + if (changesMask[48]) + { + NpcAsPlayerInfo->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + } if (changesMask[35]) { data.WriteBits(Name->size(), 6); @@ -2927,21 +2980,21 @@ void PlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ign } } } - if (changesMask[48]) + if (changesMask[49]) { for (uint32 i = 0; i < 2; ++i) { - if (changesMask[49 + i]) + if (changesMask[50 + i]) { data << uint8(PartyType[i]); } } } - if (changesMask[51]) + if (changesMask[52]) { for (uint32 i = 0; i < 175; ++i) { - if (changesMask[52 + i]) + if (changesMask[53 + i]) { if (noQuestLogChangesMask) QuestLog[i].WriteCreate(data, owner, receiver); @@ -2950,51 +3003,51 @@ void PlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ign } } } - if (changesMask[227]) - { - for (uint32 i = 0; i < 19; ++i) - { - if (changesMask[228 + i]) - { - VisibleItems[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); - } - } - } - if (changesMask[247]) + if (changesMask[248]) { for (uint32 i = 0; i < 6; ++i) { - if (changesMask[248 + i]) + if (changesMask[249 + i]) { data << float(AvgItemLevel[i]); } } } - if (changesMask[254]) + if (changesMask[255]) { for (uint32 i = 0; i < 32; ++i) { - if (changesMask[255 + i]) + if (changesMask[256 + i]) { ForcedReactions[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); } } } - if (changesMask[304]) + if (changesMask[305]) { for (uint32 i = 0; i < 19; ++i) { - if (changesMask[305 + i]) + if (changesMask[306 + i]) { - data << uint32(Field_3120[i]); + data << uint32(PlunderstormItemDisplayID[i]); } } } - if (changesMask[287]) + if (changesMask[228]) + { + for (uint32 i = 0; i < 19; ++i) + { + if (changesMask[229 + i]) + { + VisibleItems[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + } + } + } + if (changesMask[288]) { for (uint32 i = 0; i < 16; ++i) { - if (changesMask[288 + i]) + if (changesMask[289 + i]) { data << VisibleEquipableSpells[i]; } @@ -3008,7 +3061,7 @@ void PlayerData::ClearChangesMask() Base::ClearChangesMask(HasQuestSession); Base::ClearChangesMask(HasLevelLink); Base::ClearChangesMask(Customizations); - Base::ClearChangesMask(QaCustomizations); + Base::ClearChangesMask(RandomCustomizations); Base::ClearChangesMask(QuestSessionQuestLog); Base::ClearChangesMask(ArenaCooldowns); Base::ClearChangesMask(VisualItemReplacements); @@ -3039,8 +3092,8 @@ void PlayerData::ClearChangesMask() Base::ClearChangesMask(HonorLevel); Base::ClearChangesMask(LogoutTime); Base::ClearChangesMask(Name); - Base::ClearChangesMask(Field_1AC); - Base::ClearChangesMask(Field_1B0); + Base::ClearChangesMask(OfferedAdvJournalQuestID); + Base::ClearChangesMask(OfferedScriptQuestID); Base::ClearChangesMask(CurrentBattlePetSpeciesID); Base::ClearChangesMask(CtrOptions); Base::ClearChangesMask(CovenantID); @@ -3048,22 +3101,23 @@ void PlayerData::ClearChangesMask() Base::ClearChangesMask(DungeonScore); Base::ClearChangesMask(LeaverInfo); Base::ClearChangesMask(SpectateTarget); - Base::ClearChangesMask(Field_200); + Base::ClearChangesMask(WorldLootObjectInventorySwapSlot); Base::ClearChangesMask(DeclinedNames); Base::ClearChangesMask(PersonalTabard); + Base::ClearChangesMask(NpcAsPlayerInfo); Base::ClearChangesMask(PartyType); Base::ClearChangesMask(QuestLog); Base::ClearChangesMask(VisibleItems); Base::ClearChangesMask(AvgItemLevel); Base::ClearChangesMask(ForcedReactions); Base::ClearChangesMask(VisibleEquipableSpells); - Base::ClearChangesMask(Field_3120); + Base::ClearChangesMask(PlunderstormItemDisplayID); _changesMask.ResetAll(); } void SkillInfo::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const { - for (uint32 i = 0; i < 256; ++i) + for (uint32 i = 0; i < 300; ++i) { data << uint16(SkillLineID[i]); data << uint16(SkillStep[i]); @@ -3081,43 +3135,43 @@ void SkillInfo::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player con if (ignoreChangesMask) changesMask.SetAll(); - for (uint32 i = 0; i < 1; ++i) + for (uint32 i = 0; i < 2; ++i) data << uint32(changesMask.GetBlocksMask(i)); - data.WriteBits(changesMask.GetBlocksMask(1), 25); - for (uint32 i = 0; i < 57; ++i) + data.WriteBits(changesMask.GetBlocksMask(2), 2); + for (uint32 i = 0; i < 66; ++i) if (changesMask.GetBlock(i)) data.WriteBits(changesMask.GetBlock(i), 32); data.FlushBits(); if (changesMask[0]) { - for (uint32 i = 0; i < 256; ++i) + for (uint32 i = 0; i < 300; ++i) { if (changesMask[1 + i]) { data << uint16(SkillLineID[i]); } - if (changesMask[257 + i]) + if (changesMask[301 + i]) { data << uint16(SkillStep[i]); } - if (changesMask[513 + i]) + if (changesMask[601 + i]) { data << uint16(SkillRank[i]); } - if (changesMask[769 + i]) + if (changesMask[901 + i]) { data << uint16(SkillStartingRank[i]); } - if (changesMask[1025 + i]) + if (changesMask[1201 + i]) { data << uint16(SkillMaxRank[i]); } - if (changesMask[1281 + i]) + if (changesMask[1501 + i]) { data << int16(SkillTempBonus[i]); } - if (changesMask[1537 + i]) + if (changesMask[1801 + i]) { data << uint16(SkillPermBonus[i]); } @@ -3301,11 +3355,11 @@ void PVPInfo::WriteCreate(ByteBuffer& data, Player const* owner, Player const* r data << uint32(SeasonWon); data << uint32(Rating); data << uint32(WeeklyBestRating); - data << uint32(SeasonBestRating); + data << uint32(LastWeeksBestRating); data << uint32(PvpTierID); data << uint32(WeeklyBestWinPvpTierID); - data << uint32(Field_28); - data << uint32(Field_2C); + data << uint32(SeasonBestRating); + data << uint32(SeasonBestTier); data << uint32(WeeklyRoundsPlayed); data << uint32(WeeklyRoundsWon); data << uint32(SeasonRoundsPlayed); @@ -3366,7 +3420,7 @@ void PVPInfo::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const } if (changesMask[10]) { - data << uint32(SeasonBestRating); + data << uint32(LastWeeksBestRating); } if (changesMask[11]) { @@ -3378,11 +3432,11 @@ void PVPInfo::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const } if (changesMask[13]) { - data << uint32(Field_28); + data << uint32(SeasonBestRating); } if (changesMask[14]) { - data << uint32(Field_2C); + data << uint32(SeasonBestTier); } if (changesMask[15]) { @@ -3415,11 +3469,11 @@ void PVPInfo::ClearChangesMask() Base::ClearChangesMask(SeasonWon); Base::ClearChangesMask(Rating); Base::ClearChangesMask(WeeklyBestRating); - Base::ClearChangesMask(SeasonBestRating); + Base::ClearChangesMask(LastWeeksBestRating); Base::ClearChangesMask(PvpTierID); Base::ClearChangesMask(WeeklyBestWinPvpTierID); - Base::ClearChangesMask(Field_28); - Base::ClearChangesMask(Field_2C); + Base::ClearChangesMask(SeasonBestRating); + Base::ClearChangesMask(SeasonBestTier); Base::ClearChangesMask(WeeklyRoundsPlayed); Base::ClearChangesMask(WeeklyRoundsWon); Base::ClearChangesMask(SeasonRoundsPlayed); @@ -3495,6 +3549,48 @@ bool SpellFlatModByLabel::operator==(SpellFlatModByLabel const& right) const && LabelID == right.LabelID; } +void SpellPctPVPModByLabel::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +{ + data << int32(PvpModIndex); + data << float(ModifierValue); + data << int32(LabelID); +} + +void SpellPctPVPModByLabel::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +{ + data << int32(PvpModIndex); + data << float(ModifierValue); + data << int32(LabelID); +} + +bool SpellPctPVPModByLabel::operator==(SpellPctPVPModByLabel const& right) const +{ + return PvpModIndex == right.PvpModIndex + && ModifierValue == right.ModifierValue + && LabelID == right.LabelID; +} + +void SpellFlatPVPModByLabel::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +{ + data << int32(PvpModIndex); + data << int32(ModifierValue); + data << int32(LabelID); +} + +void SpellFlatPVPModByLabel::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +{ + data << int32(PvpModIndex); + data << int32(ModifierValue); + data << int32(LabelID); +} + +bool SpellFlatPVPModByLabel::operator==(SpellFlatPVPModByLabel const& right) const +{ + return PvpModIndex == right.PvpModIndex + && ModifierValue == right.ModifierValue + && LabelID == right.LabelID; +} + void CompletedProject::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const { data << int64(FirstCompleted); @@ -3648,13 +3744,13 @@ bool RecipeProgressionInfo::operator==(RecipeProgressionInfo const& right) const && Experience == right.Experience; } -void ActivePlayerUnk901::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void LevelLinkInfo::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const { - data << *Field_0; - data << int32(Field_10); + data << *TargetGUID; + data << int32(Level); } -void ActivePlayerUnk901::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void LevelLinkInfo::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -3667,19 +3763,19 @@ void ActivePlayerUnk901::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, P { if (changesMask[1]) { - data << *Field_0; + data << *TargetGUID; } if (changesMask[2]) { - data << int32(Field_10); + data << int32(Level); } } } -void ActivePlayerUnk901::ClearChangesMask() +void LevelLinkInfo::ClearChangesMask() { - Base::ClearChangesMask(Field_0); - Base::ClearChangesMask(Field_10); + Base::ClearChangesMask(TargetGUID); + Base::ClearChangesMask(Level); _changesMask.ResetAll(); } @@ -3983,7 +4079,7 @@ void TraitConfig::ClearChangesMask() void CraftingOrderItem::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const { - data << uint64(Field_0); + data << uint64(OrderItemID); data << *ItemGUID; data << *OwnerGUID; data << int32(ItemID); @@ -4008,7 +4104,7 @@ void CraftingOrderItem::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Pl data.FlushBits(); if (changesMask[0]) { - data << uint64(Field_0); + data << uint64(OrderItemID); } if (changesMask[1]) { @@ -4043,7 +4139,7 @@ void CraftingOrderItem::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Pl void CraftingOrderItem::ClearChangesMask() { - Base::ClearChangesMask(Field_0); + Base::ClearChangesMask(OrderItemID); Base::ClearChangesMask(ItemGUID); Base::ClearChangesMask(OwnerGUID); Base::ClearChangesMask(ItemID); @@ -4088,7 +4184,7 @@ void CraftingOrderCustomer::ClearChangesMask() void CraftingOrderNpcCustomer::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const { data << int64(NpcCraftingOrderCustomerID); - data << int32(Field_8); + data << int32(RealmAddress); } void CraftingOrderNpcCustomer::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const @@ -4106,14 +4202,14 @@ void CraftingOrderNpcCustomer::WriteUpdate(ByteBuffer& data, bool ignoreChangesM } if (changesMask[1]) { - data << int32(Field_8); + data << int32(RealmAddress); } } void CraftingOrderNpcCustomer::ClearChangesMask() { Base::ClearChangesMask(NpcCraftingOrderCustomerID); - Base::ClearChangesMask(Field_8); + Base::ClearChangesMask(RealmAddress); _changesMask.ResetAll(); } @@ -4847,10 +4943,10 @@ bool DelveData::operator==(DelveData const& right) const void ChallengeModeData::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const { - data << int32(Unknown_1120_1); - data << int32(Unknown_1120_2); - data << uint64(Unknown_1120_3); - data << int64(Unknown_1120_4); + data << int32(MapID); + data << int32(InitialPlayerCount); + data << uint64(InstanceID); + data << int64(StartTime); data << KeystoneOwnerGUID; data << LeaverGUID; data << int64(InstanceAbandonVoteCooldown); @@ -4862,10 +4958,10 @@ void ChallengeModeData::WriteCreate(ByteBuffer& data, Player const* owner, Playe void ChallengeModeData::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const { - data << int32(Unknown_1120_1); - data << int32(Unknown_1120_2); - data << uint64(Unknown_1120_3); - data << int64(Unknown_1120_4); + data << int32(MapID); + data << int32(InitialPlayerCount); + data << uint64(InstanceID); + data << int64(StartTime); data << KeystoneOwnerGUID; data << LeaverGUID; data << int64(InstanceAbandonVoteCooldown); @@ -4877,10 +4973,10 @@ void ChallengeModeData::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Pl bool ChallengeModeData::operator==(ChallengeModeData const& right) const { - return Unknown_1120_1 == right.Unknown_1120_1 - && Unknown_1120_2 == right.Unknown_1120_2 - && Unknown_1120_3 == right.Unknown_1120_3 - && Unknown_1120_4 == right.Unknown_1120_4 + return MapID == right.MapID + && InitialPlayerCount == right.InitialPlayerCount + && InstanceID == right.InstanceID + && StartTime == right.StartTime && KeystoneOwnerGUID == right.KeystoneOwnerGUID && LeaverGUID == right.LeaverGUID && InstanceAbandonVoteCooldown == right.InstanceAbandonVoteCooldown @@ -4889,6 +4985,275 @@ bool ChallengeModeData::operator==(ChallengeModeData const& right) const && CanVoteAbandon == right.CanVoteAbandon; } +void TransmogOutfitDataInfo::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +{ + data << uint8(SetType); + data << uint32(Icon); + data.WriteBits(Name->size(), 8); + data.WriteBit(SituationsEnabled); + data.FlushBits(); + data << WorldPackets::SizedString::Data(*Name); + data.FlushBits(); +} + +void TransmogOutfitDataInfo::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +{ + Mask changesMask = _changesMask; + if (ignoreChangesMask) + changesMask.SetAll(); + + data.WriteBits(changesMask.GetBlock(0), 4); + + if (changesMask[0]) + { + data.WriteBit(SituationsEnabled); + } + data.FlushBits(); + if (changesMask[1]) + { + data << uint8(SetType); + } + if (changesMask[3]) + { + data << uint32(Icon); + } + if (changesMask[2]) + { + data.WriteBits(Name->size(), 8); + data << WorldPackets::SizedString::Data(*Name); + } + data.FlushBits(); +} + +void TransmogOutfitDataInfo::ClearChangesMask() +{ + Base::ClearChangesMask(SituationsEnabled); + Base::ClearChangesMask(SetType); + Base::ClearChangesMask(Name); + Base::ClearChangesMask(Icon); + _changesMask.ResetAll(); +} + +void TransmogOutfitSituationInfo::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +{ + data << uint32(SituationID); + data << uint32(SpecID); + data << uint32(LoadoutID); + data << uint32(EquipmentSetID); +} + +void TransmogOutfitSituationInfo::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +{ + Mask changesMask = _changesMask; + if (ignoreChangesMask) + changesMask.SetAll(); + + data.WriteBits(changesMask.GetBlock(0), 4); + + data.FlushBits(); + if (changesMask[0]) + { + data << uint32(SituationID); + } + if (changesMask[1]) + { + data << uint32(SpecID); + } + if (changesMask[2]) + { + data << uint32(LoadoutID); + } + if (changesMask[3]) + { + data << uint32(EquipmentSetID); + } +} + +void TransmogOutfitSituationInfo::ClearChangesMask() +{ + Base::ClearChangesMask(SituationID); + Base::ClearChangesMask(SpecID); + Base::ClearChangesMask(LoadoutID); + Base::ClearChangesMask(EquipmentSetID); + _changesMask.ResetAll(); +} + +void TransmogOutfitSlotData::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +{ + data << int8(Slot); + data << uint8(SlotOption); + data << uint32(ItemModifiedAppearanceID); + data << uint8(AppearanceDisplayType); + data << uint32(SpellItemEnchantmentID); + data << uint8(IllusionDisplayType); + data << uint32(Flags); +} + +void TransmogOutfitSlotData::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +{ + Mask changesMask = _changesMask; + if (ignoreChangesMask) + changesMask.SetAll(); + + data.WriteBits(changesMask.GetBlock(0), 7); + + data.FlushBits(); + if (changesMask[0]) + { + data << int8(Slot); + } + if (changesMask[1]) + { + data << uint8(SlotOption); + } + if (changesMask[2]) + { + data << uint32(ItemModifiedAppearanceID); + } + if (changesMask[3]) + { + data << uint8(AppearanceDisplayType); + } + if (changesMask[4]) + { + data << uint32(SpellItemEnchantmentID); + } + if (changesMask[5]) + { + data << uint8(IllusionDisplayType); + } + if (changesMask[6]) + { + data << uint32(Flags); + } +} + +void TransmogOutfitSlotData::ClearChangesMask() +{ + Base::ClearChangesMask(Slot); + Base::ClearChangesMask(SlotOption); + Base::ClearChangesMask(ItemModifiedAppearanceID); + Base::ClearChangesMask(AppearanceDisplayType); + Base::ClearChangesMask(SpellItemEnchantmentID); + Base::ClearChangesMask(IllusionDisplayType); + Base::ClearChangesMask(Flags); + _changesMask.ResetAll(); +} + +void TransmogOutfitData::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +{ + data << uint32(Id); + data << uint32(Situations.size()); + data << uint32(Slots.size()); + data << uint32(Flags); + for (uint32 i = 0; i < Situations.size(); ++i) + { + Situations[i].WriteCreate(data, owner, receiver); + } + for (uint32 i = 0; i < Slots.size(); ++i) + { + Slots[i].WriteCreate(data, owner, receiver); + } + OutfitInfo->WriteCreate(data, owner, receiver); +} + +void TransmogOutfitData::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +{ + Mask changesMask = _changesMask; + if (ignoreChangesMask) + changesMask.SetAll(); + + data.WriteBits(changesMask.GetBlock(0), 5); + + if (changesMask[0]) + { + if (!ignoreChangesMask) + Situations.WriteUpdateMask(data); + else + WriteCompleteDynamicFieldUpdateMask(Situations.size(), data); + } + if (changesMask[1]) + { + if (!ignoreChangesMask) + Slots.WriteUpdateMask(data); + else + WriteCompleteDynamicFieldUpdateMask(Slots.size(), data); + } + data.FlushBits(); + if (changesMask[0]) + { + for (uint32 i = 0; i < Situations.size(); ++i) + { + if (Situations.HasChanged(i) || ignoreChangesMask) + { + Situations[i].WriteUpdate(data, ignoreChangesMask, owner, receiver); + } + } + } + if (changesMask[1]) + { + for (uint32 i = 0; i < Slots.size(); ++i) + { + if (Slots.HasChanged(i) || ignoreChangesMask) + { + Slots[i].WriteUpdate(data, ignoreChangesMask, owner, receiver); + } + } + } + if (changesMask[2]) + { + data << uint32(Id); + } + if (changesMask[4]) + { + data << uint32(Flags); + } + if (changesMask[3]) + { + OutfitInfo->WriteUpdate(data, ignoreChangesMask, owner, receiver); + } +} + +void TransmogOutfitData::ClearChangesMask() +{ + Base::ClearChangesMask(Situations); + Base::ClearChangesMask(Slots); + Base::ClearChangesMask(Id); + Base::ClearChangesMask(OutfitInfo); + Base::ClearChangesMask(Flags); + _changesMask.ResetAll(); +} + +void TransmogOutfitMetadata::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +{ + data << uint8(SituationTrigger); + data << uint32(TransmogOutfitID); + data << uint8(StampedOptionMainHand); + data << uint8(StampedOptionOffHand); + data.WriteBit(Locked); + data.FlushBits(); +} + +void TransmogOutfitMetadata::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +{ + data << uint8(SituationTrigger); + data << uint32(TransmogOutfitID); + data << uint8(StampedOptionMainHand); + data << uint8(StampedOptionOffHand); + data.WriteBit(Locked); + data.FlushBits(); + data.FlushBits(); +} + +bool TransmogOutfitMetadata::operator==(TransmogOutfitMetadata const& right) const +{ + return Locked == right.Locked + && SituationTrigger == right.SituationTrigger + && TransmogOutfitID == right.TransmogOutfitID + && StampedOptionMainHand == right.StampedOptionMainHand + && StampedOptionOffHand == right.StampedOptionOffHand; +} + void Research::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const { data << int16(ResearchProjectID); @@ -4996,6 +5361,7 @@ void ActivePlayerData::WriteCreate(ByteBuffer& data, EnumFlag f data << int32(MaxLevel); data << int32(ScalingPlayerLevelDelta); data << int32(MaxCreatureScalingLevel); + data << uint8(TransmogCostMinScalingLevel); for (uint32 i = 0; i < 4; ++i) { data << uint32(NoReagentCostMask[i]); @@ -5062,9 +5428,13 @@ void ActivePlayerData::WriteCreate(ByteBuffer& data, EnumFlag f data << uint32(HouseExteriorComponents.size()); data << uint32(HouseThemes.size()); data << uint32(HouseRoomComponentTextures.size()); + data << uint32(HouseTypes.size()); + data << uint32(Field_1980.size()); data << uint32(CharacterRestrictions.size()); data << uint32(SpellPctModByLabel.size()); data << uint32(SpellFlatModByLabel.size()); + data << uint32(SpellPctModPVPByLabel.size()); + data << uint32(SpellFlatModPVPByLabel.size()); data << uint32(MawPowers.size()); data << uint32(MultiFloorExploration.size()); data << uint32(RecipeProgression.size()); @@ -5174,6 +5544,14 @@ void ActivePlayerData::WriteCreate(ByteBuffer& data, EnumFlag f { data << uint32(HouseRoomComponentTextures[i]); } + for (uint32 i = 0; i < HouseTypes.size(); ++i) + { + data << uint32(HouseTypes[i]); + } + for (uint32 i = 0; i < Field_1980.size(); ++i) + { + data << int32(Field_1980[i]); + } for (uint32 i = 0; i < SpellPctModByLabel.size(); ++i) { SpellPctModByLabel[i].WriteCreate(data, owner, receiver); @@ -5182,6 +5560,14 @@ void ActivePlayerData::WriteCreate(ByteBuffer& data, EnumFlag f { SpellFlatModByLabel[i].WriteCreate(data, owner, receiver); } + for (uint32 i = 0; i < SpellPctModPVPByLabel.size(); ++i) + { + SpellPctModPVPByLabel[i].WriteCreate(data, owner, receiver); + } + for (uint32 i = 0; i < SpellFlatModPVPByLabel.size(); ++i) + { + SpellFlatModPVPByLabel[i].WriteCreate(data, owner, receiver); + } for (uint32 i = 0; i < MawPowers.size(); ++i) { MawPowers[i].WriteCreate(data, owner, receiver); @@ -5247,9 +5633,12 @@ void ActivePlayerData::WriteCreate(ByteBuffer& data, EnumFlag f QuestSession->WriteCreate(data, owner, receiver); } data << *FrozenPerksVendorItem; - Field_1410->WriteCreate(data, owner, receiver); + LevelLinkInfo->WriteCreate(data, owner, receiver); data << *DungeonScore; WriteMapFieldCreate(TraitConfigs, data, owner, receiver); + WriteMapFieldCreate(TransmogOutfits, data, owner, receiver); + ViewedOutfit->WriteCreate(data, owner, receiver); + TransmogMetadata->WriteCreate(data, owner, receiver); for (uint32 i = 0; i < PvpInfo.size(); ++i) { PvpInfo[i].WriteCreate(data, owner, receiver); @@ -5356,11 +5745,11 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo WriteCompleteDynamicFieldUpdateMask(PvpInfo.size(), data); } } - if (changesMask[46]) + if (changesMask[50]) { for (uint32 i = 0; i < 1; ++i) { - if (changesMask[47]) + if (changesMask[51]) { if (!ignoreNestedChangesMask) ResearchSites[i].WriteUpdateMask(data); @@ -5369,11 +5758,11 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo } } } - if (changesMask[48]) + if (changesMask[52]) { for (uint32 i = 0; i < 1; ++i) { - if (changesMask[49]) + if (changesMask[53]) { if (!ignoreNestedChangesMask) ResearchSiteProgress[i].WriteUpdateMask(data); @@ -5382,11 +5771,11 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo } } } - if (changesMask[50]) + if (changesMask[54]) { for (uint32 i = 0; i < 1; ++i) { - if (changesMask[51]) + if (changesMask[55]) { if (!ignoreNestedChangesMask) Research[i].WriteUpdateMask(data); @@ -5395,11 +5784,11 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo } } } - if (changesMask[46]) + if (changesMask[50]) { for (uint32 i = 0; i < 1; ++i) { - if (changesMask[47]) + if (changesMask[51]) { for (uint32 j = 0; j < ResearchSites[i].size(); ++j) { @@ -5411,11 +5800,11 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo } } } - if (changesMask[48]) + if (changesMask[52]) { for (uint32 i = 0; i < 1; ++i) { - if (changesMask[49]) + if (changesMask[53]) { for (uint32 j = 0; j < ResearchSiteProgress[i].size(); ++j) { @@ -5427,11 +5816,11 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo } } } - if (changesMask[50]) + if (changesMask[54]) { for (uint32 i = 0; i < 1; ++i) { - if (changesMask[51]) + if (changesMask[55]) { for (uint32 j = 0; j < Research[i].size(); ++j) { @@ -5566,107 +5955,135 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo WriteCompleteDynamicFieldUpdateMask(HouseRoomComponentTextures.size(), data); } if (changesMask[28]) + { + if (!ignoreNestedChangesMask) + HouseTypes.WriteUpdateMask(data); + else + WriteCompleteDynamicFieldUpdateMask(HouseTypes.size(), data); + } + if (changesMask[29]) + { + if (!ignoreNestedChangesMask) + Field_1980.WriteUpdateMask(data); + else + WriteCompleteDynamicFieldUpdateMask(Field_1980.size(), data); + } + if (changesMask[30]) { if (!ignoreNestedChangesMask) CharacterRestrictions.WriteUpdateMask(data); else WriteCompleteDynamicFieldUpdateMask(CharacterRestrictions.size(), data); } - if (changesMask[29]) + if (changesMask[31]) { if (!ignoreNestedChangesMask) SpellPctModByLabel.WriteUpdateMask(data); else WriteCompleteDynamicFieldUpdateMask(SpellPctModByLabel.size(), data); } - if (changesMask[30]) - { - if (!ignoreNestedChangesMask) - SpellFlatModByLabel.WriteUpdateMask(data); - else - WriteCompleteDynamicFieldUpdateMask(SpellFlatModByLabel.size(), data); - } - if (changesMask[31]) - { - if (!ignoreNestedChangesMask) - MawPowers.WriteUpdateMask(data); - else - WriteCompleteDynamicFieldUpdateMask(MawPowers.size(), data); - } } if (changesMask[32]) { if (changesMask[33]) + { + if (!ignoreNestedChangesMask) + SpellFlatModByLabel.WriteUpdateMask(data); + else + WriteCompleteDynamicFieldUpdateMask(SpellFlatModByLabel.size(), data); + } + if (changesMask[34]) + { + if (!ignoreNestedChangesMask) + SpellPctModPVPByLabel.WriteUpdateMask(data); + else + WriteCompleteDynamicFieldUpdateMask(SpellPctModPVPByLabel.size(), data); + } + if (changesMask[35]) + { + if (!ignoreNestedChangesMask) + SpellFlatModPVPByLabel.WriteUpdateMask(data); + else + WriteCompleteDynamicFieldUpdateMask(SpellFlatModPVPByLabel.size(), data); + } + if (changesMask[36]) + { + if (!ignoreNestedChangesMask) + MawPowers.WriteUpdateMask(data); + else + WriteCompleteDynamicFieldUpdateMask(MawPowers.size(), data); + } + if (changesMask[37]) { if (!ignoreNestedChangesMask) MultiFloorExploration.WriteUpdateMask(data); else WriteCompleteDynamicFieldUpdateMask(MultiFloorExploration.size(), data); } - if (changesMask[34]) + if (changesMask[38]) { if (!ignoreNestedChangesMask) RecipeProgression.WriteUpdateMask(data); else WriteCompleteDynamicFieldUpdateMask(RecipeProgression.size(), data); } - if (changesMask[35]) + if (changesMask[39]) { if (!ignoreNestedChangesMask) ReplayedQuests.WriteUpdateMask(data); else WriteCompleteDynamicFieldUpdateMask(ReplayedQuests.size(), data); } - if (changesMask[36]) + if (changesMask[40]) { if (!ignoreNestedChangesMask) TaskQuests.WriteUpdateMask(data); else WriteCompleteDynamicFieldUpdateMask(TaskQuests.size(), data); } - if (changesMask[37]) + if (changesMask[41]) { if (!ignoreNestedChangesMask) DisabledSpells.WriteUpdateMask(data); else WriteCompleteDynamicFieldUpdateMask(DisabledSpells.size(), data); } - if (changesMask[38]) + if (changesMask[42]) { if (!ignoreNestedChangesMask) CraftingOrders.WriteUpdateMask(data); else WriteCompleteDynamicFieldUpdateMask(CraftingOrders.size(), data); } - if (changesMask[39]) + if (changesMask[43]) { if (!ignoreNestedChangesMask) PersonalCraftingOrderCounts.WriteUpdateMask(data); else WriteCompleteDynamicFieldUpdateMask(PersonalCraftingOrderCounts.size(), data); } - if (changesMask[40]) + if (changesMask[44]) { if (!ignoreNestedChangesMask) NpcCraftingOrders.WriteUpdateMask(data); else WriteCompleteDynamicFieldUpdateMask(NpcCraftingOrders.size(), data); } - if (changesMask[41]) + if (changesMask[45]) { if (!ignoreNestedChangesMask) CategoryCooldownMods.WriteUpdateMask(data); else WriteCompleteDynamicFieldUpdateMask(CategoryCooldownMods.size(), data); } - if (changesMask[42]) + if (changesMask[46]) { if (!ignoreNestedChangesMask) WeeklySpellUses.WriteUpdateMask(data); else WriteCompleteDynamicFieldUpdateMask(WeeklySpellUses.size(), data); } - if (changesMask[43]) + if (changesMask[47]) { if (!ignoreNestedChangesMask) TrackedCollectableSources.WriteUpdateMask(data); @@ -5877,7 +6294,27 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo } } } + if (changesMask[28]) + { + for (uint32 i = 0; i < HouseTypes.size(); ++i) + { + if (HouseTypes.HasChanged(i) || ignoreNestedChangesMask) + { + data << uint32(HouseTypes[i]); + } + } + } if (changesMask[29]) + { + for (uint32 i = 0; i < Field_1980.size(); ++i) + { + if (Field_1980.HasChanged(i) || ignoreNestedChangesMask) + { + data << int32(Field_1980[i]); + } + } + } + if (changesMask[31]) { for (uint32 i = 0; i < SpellPctModByLabel.size(); ++i) { @@ -5887,7 +6324,10 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo } } } - if (changesMask[30]) + } + if (changesMask[32]) + { + if (changesMask[33]) { for (uint32 i = 0; i < SpellFlatModByLabel.size(); ++i) { @@ -5897,7 +6337,27 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo } } } - if (changesMask[31]) + if (changesMask[34]) + { + for (uint32 i = 0; i < SpellPctModPVPByLabel.size(); ++i) + { + if (SpellPctModPVPByLabel.HasChanged(i) || ignoreNestedChangesMask) + { + SpellPctModPVPByLabel[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + } + } + } + if (changesMask[35]) + { + for (uint32 i = 0; i < SpellFlatModPVPByLabel.size(); ++i) + { + if (SpellFlatModPVPByLabel.HasChanged(i) || ignoreNestedChangesMask) + { + SpellFlatModPVPByLabel[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + } + } + } + if (changesMask[36]) { for (uint32 i = 0; i < MawPowers.size(); ++i) { @@ -5907,10 +6367,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo } } } - } - if (changesMask[32]) - { - if (changesMask[33]) + if (changesMask[37]) { for (uint32 i = 0; i < MultiFloorExploration.size(); ++i) { @@ -5920,7 +6377,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo } } } - if (changesMask[34]) + if (changesMask[38]) { for (uint32 i = 0; i < RecipeProgression.size(); ++i) { @@ -5930,7 +6387,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo } } } - if (changesMask[35]) + if (changesMask[39]) { for (uint32 i = 0; i < ReplayedQuests.size(); ++i) { @@ -5940,7 +6397,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo } } } - if (changesMask[36]) + if (changesMask[40]) { for (uint32 i = 0; i < TaskQuests.size(); ++i) { @@ -5950,7 +6407,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo } } } - if (changesMask[37]) + if (changesMask[41]) { for (uint32 i = 0; i < DisabledSpells.size(); ++i) { @@ -5960,7 +6417,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo } } } - if (changesMask[39]) + if (changesMask[43]) { for (uint32 i = 0; i < PersonalCraftingOrderCounts.size(); ++i) { @@ -5970,7 +6427,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo } } } - if (changesMask[40]) + if (changesMask[44]) { for (uint32 i = 0; i < NpcCraftingOrders.size(); ++i) { @@ -5980,7 +6437,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo } } } - if (changesMask[41]) + if (changesMask[45]) { for (uint32 i = 0; i < CategoryCooldownMods.size(); ++i) { @@ -5990,7 +6447,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo } } } - if (changesMask[42]) + if (changesMask[46]) { for (uint32 i = 0; i < WeeklySpellUses.size(); ++i) { @@ -6000,7 +6457,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo } } } - if (changesMask[43]) + if (changesMask[47]) { for (uint32 i = 0; i < TrackedCollectableSources.size(); ++i) { @@ -6014,14 +6471,14 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo data.FlushBits(); if (changesMask[32]) { - if (changesMask[44]) + if (changesMask[48]) { if (!ignoreNestedChangesMask) CharacterBankTabSettings.WriteUpdateMask(data, 3); else WriteCompleteDynamicFieldUpdateMask(CharacterBankTabSettings.size(), data, 3); } - if (changesMask[45]) + if (changesMask[49]) { if (!ignoreNestedChangesMask) AccountBankTabSettings.WriteUpdateMask(data, 3); @@ -6042,7 +6499,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo } } } - if (changesMask[28]) + if (changesMask[30]) { for (uint32 i = 0; i < CharacterRestrictions.size(); ++i) { @@ -6055,7 +6512,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo } if (changesMask[32]) { - if (changesMask[38]) + if (changesMask[42]) { for (uint32 i = 0; i < CraftingOrders.size(); ++i) { @@ -6065,7 +6522,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo } } } - if (changesMask[44]) + if (changesMask[48]) { for (uint32 i = 0; i < CharacterBankTabSettings.size(); ++i) { @@ -6075,7 +6532,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo } } } - if (changesMask[45]) + if (changesMask[49]) { for (uint32 i = 0; i < AccountBankTabSettings.size(); ++i) { @@ -6085,438 +6542,445 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo } } } - if (changesMask[52]) + if (changesMask[56]) { data << *FarsightObject; } - if (changesMask[53]) + if (changesMask[57]) { data << *SummonedBattlePetGUID; } - if (changesMask[54]) + if (changesMask[58]) { data << uint64(Coinage); } - if (changesMask[55]) + if (changesMask[59]) { data << uint64(AccountBankCoinage); } - if (changesMask[56]) + if (changesMask[60]) { data << int32(XP); } - if (changesMask[57]) + if (changesMask[61]) { data << int32(NextLevelXP); } - if (changesMask[58]) + if (changesMask[62]) { data << int32(TrialXP); } - if (changesMask[59]) + if (changesMask[63]) { Skill->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); } - if (changesMask[60]) + if (changesMask[64]) { data << int32(CharacterPoints); } - if (changesMask[61]) + if (changesMask[65]) { data << int32(MaxTalentTiers); } - if (changesMask[62]) + if (changesMask[66]) { data << uint32(TrackCreatureMask); } - if (changesMask[63]) + if (changesMask[67]) { data << float(MainhandExpertise); } - if (changesMask[64]) + if (changesMask[68]) { data << float(OffhandExpertise); } - if (changesMask[65]) - { - data << float(RangedExpertise); - } - if (changesMask[66]) - { - data << float(CombatRatingExpertise); - } - if (changesMask[67]) - { - data << float(BlockPercentage); - } - if (changesMask[68]) - { - data << float(DodgePercentage); - } if (changesMask[69]) { - data << float(DodgePercentageFromAttribute); + data << float(RangedExpertise); } } if (changesMask[70]) { if (changesMask[71]) { - data << float(ParryPercentage); + data << float(CombatRatingExpertise); } if (changesMask[72]) { - data << float(ParryPercentageFromAttribute); + data << float(BlockPercentage); } if (changesMask[73]) { - data << float(CritPercentage); + data << float(DodgePercentage); } if (changesMask[74]) { - data << float(RangedCritPercentage); + data << float(DodgePercentageFromAttribute); } if (changesMask[75]) { - data << float(OffhandCritPercentage); + data << float(ParryPercentage); } if (changesMask[76]) { - data << float(SpellCritPercentage); + data << float(ParryPercentageFromAttribute); } if (changesMask[77]) { - data << int32(ShieldBlock); + data << float(CritPercentage); } if (changesMask[78]) { - data << float(ShieldBlockCritPercentage); + data << float(RangedCritPercentage); } if (changesMask[79]) { - data << float(Mastery); + data << float(OffhandCritPercentage); } if (changesMask[80]) { - data << float(Speed); + data << float(SpellCritPercentage); } if (changesMask[81]) { - data << float(Avoidance); + data << int32(ShieldBlock); } if (changesMask[82]) { - data << float(Sturdiness); + data << float(ShieldBlockCritPercentage); } if (changesMask[83]) { - data << int32(Versatility); + data << float(Mastery); } if (changesMask[84]) { - data << float(VersatilityBonus); + data << float(Speed); } if (changesMask[85]) { - data << float(PvpPowerDamage); + data << float(Avoidance); } if (changesMask[86]) { - data << float(PvpPowerHealing); + data << float(Sturdiness); } if (changesMask[87]) { - BitVectors->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + data << int32(Versatility); } if (changesMask[88]) { - data << int32(ModHealingDonePos); + data << float(VersatilityBonus); } if (changesMask[89]) { - data << float(ModHealingPercent); + data << float(PvpPowerDamage); } if (changesMask[90]) { - data << float(ModPeriodicHealingDonePercent); + data << float(PvpPowerHealing); } if (changesMask[91]) { - data << float(ModSpellPowerPercent); + BitVectors->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); } if (changesMask[92]) { - data << float(ModResiliencePercent); + data << int32(ModHealingDonePos); } if (changesMask[93]) { - data << float(OverrideSpellPowerByAPPercent); + data << float(ModHealingPercent); } if (changesMask[94]) { - data << float(OverrideAPBySpellPowerPercent); + data << float(ModPeriodicHealingDonePercent); } if (changesMask[95]) { - data << int32(ModTargetResistance); + data << float(ModSpellPowerPercent); } if (changesMask[96]) { - data << int32(ModTargetPhysicalResistance); + data << float(ModResiliencePercent); } if (changesMask[97]) { - data << uint32(LocalFlags); + data << float(OverrideSpellPowerByAPPercent); } if (changesMask[98]) { - data << uint8(GrantableLevels); + data << float(OverrideAPBySpellPowerPercent); } if (changesMask[99]) { - data << uint8(MultiActionBars); + data << int32(ModTargetResistance); } if (changesMask[100]) { - data << uint8(LifetimeMaxRank); + data << int32(ModTargetPhysicalResistance); } if (changesMask[101]) { - data << uint8(NumRespecs); + data << uint32(LocalFlags); } } if (changesMask[102]) { if (changesMask[103]) { - data << uint32(PvpMedals); + data << uint8(GrantableLevels); } if (changesMask[104]) { - data << uint16(TodayHonorableKills); + data << uint8(MultiActionBars); } if (changesMask[105]) { - data << uint16(YesterdayHonorableKills); + data << uint8(LifetimeMaxRank); } if (changesMask[106]) { - data << uint32(LifetimeHonorableKills); + data << uint8(NumRespecs); } if (changesMask[107]) { - data << int32(WatchedFactionIndex); + data << uint32(PvpMedals); } if (changesMask[108]) { - data << int32(MaxLevel); + data << uint16(TodayHonorableKills); } if (changesMask[109]) { - data << int32(ScalingPlayerLevelDelta); + data << uint16(YesterdayHonorableKills); } if (changesMask[110]) { - data << int32(MaxCreatureScalingLevel); + data << uint32(LifetimeHonorableKills); } if (changesMask[111]) { - data << int32(PetSpellPower); + data << int32(WatchedFactionIndex); } if (changesMask[112]) { - data << float(UiHitModifier); + data << int32(MaxLevel); } if (changesMask[113]) { - data << float(UiSpellHitModifier); + data << int32(ScalingPlayerLevelDelta); } if (changesMask[114]) { - data << int32(HomeRealmTimeOffset); + data << int32(MaxCreatureScalingLevel); } if (changesMask[115]) { - data << float(ModPetHaste); + data << uint8(TransmogCostMinScalingLevel); } if (changesMask[116]) { - data << int8(JailersTowerLevelMax); + data << int32(PetSpellPower); } if (changesMask[117]) { - data << int8(JailersTowerLevel); + data << float(UiHitModifier); } if (changesMask[118]) { - data << uint8(LocalRegenFlags); + data << float(UiSpellHitModifier); } if (changesMask[119]) { - data << uint8(AuraVision); + data << int32(HomeRealmTimeOffset); } if (changesMask[120]) { - data << uint8(NumBackpackSlots); + data << float(ModPetHaste); } if (changesMask[121]) { - data << int32(OverrideSpellsID); + data << int8(JailersTowerLevelMax); } if (changesMask[122]) { - data << uint16(LootSpecID); + data << int8(JailersTowerLevel); } if (changesMask[123]) { - data << uint32(OverrideZonePVPType); + data << uint8(LocalRegenFlags); } if (changesMask[124]) { - data << int32(Honor); + data << uint8(AuraVision); } if (changesMask[125]) { - data << int32(HonorNextLevel); + data << uint8(NumBackpackSlots); } if (changesMask[126]) { - data << int32(PerksProgramCurrency); + data << int32(OverrideSpellsID); } if (changesMask[127]) { - data << uint8(NumBankSlots); + data << uint16(LootSpecID); } if (changesMask[128]) { - data << uint8(NumCharacterBankTabs); + data << uint32(OverrideZonePVPType); } if (changesMask[129]) { - data << uint8(NumAccountBankTabs); + data << int32(Honor); + } + if (changesMask[130]) + { + data << int32(HonorNextLevel); + } + if (changesMask[131]) + { + data << int32(PerksProgramCurrency); + } + if (changesMask[132]) + { + data << uint8(NumBankSlots); + } + if (changesMask[133]) + { + data << uint8(NumCharacterBankTabs); } } if (changesMask[134]) { if (changesMask[135]) + { + data << uint8(NumAccountBankTabs); + } + if (changesMask[140]) { data << int32(UiChromieTimeExpansionID); } - if (changesMask[136]) + if (changesMask[141]) { data << int32(TimerunningSeasonID); } - if (changesMask[137]) + if (changesMask[142]) { data << int32(TransportServerTime); } - if (changesMask[138]) + if (changesMask[143]) { data << uint32(WeeklyRewardsPeriodSinceOrigin); } - if (changesMask[139]) + if (changesMask[144]) { data << int16(DEBUGSoulbindConduitRank); } - if (changesMask[142]) + if (changesMask[147]) { data << uint32(ActiveCombatTraitConfigID); } - if (changesMask[143]) + if (changesMask[148]) { data << int32(ItemUpgradeHighOnehandWeaponItemID); } - if (changesMask[144]) + if (changesMask[149]) { data << int32(ItemUpgradeHighFingerItemID); } - if (changesMask[145]) + if (changesMask[150]) { data << float(ItemUpgradeHighFingerWatermark); } - if (changesMask[146]) + if (changesMask[151]) { data << int32(ItemUpgradeHighTrinketItemID); } - if (changesMask[147]) + if (changesMask[152]) { data << float(ItemUpgradeHighTrinketWatermark); } - if (changesMask[148]) + if (changesMask[153]) { data << uint64(LootHistoryInstanceID); } - if (changesMask[150]) + if (changesMask[155]) { data << uint8(RequiredMountCapabilityFlags); } - } - if (changesMask[102]) - { data.WriteBits(QuestSession.has_value(), 1); - } - if (changesMask[134]) - { data.WriteBits(PetStable.has_value(), 1); data.WriteBits(WalkInData.has_value(), 1); data.WriteBits(DelveData.has_value(), 1); data.WriteBits(ChallengeModeData.has_value(), 1); } data.FlushBits(); - if (changesMask[102]) + if (changesMask[134]) { - if (changesMask[130]) + if (changesMask[136]) { ResearchHistory->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); } - if (changesMask[132]) + if (changesMask[138]) { if (QuestSession.has_value()) { QuestSession->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); } } - if (changesMask[131]) + if (changesMask[137]) { data << *FrozenPerksVendorItem; } - if (changesMask[133]) + if (changesMask[139]) { - Field_1410->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + LevelLinkInfo->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); } - } - if (changesMask[134]) - { - if (changesMask[140]) + if (changesMask[145]) { data << *DungeonScore; } - if (changesMask[141]) + if (changesMask[146]) { WriteMapFieldUpdate(TraitConfigs, data, ignoreNestedChangesMask, owner, receiver); } - if (changesMask[149]) + if (changesMask[159]) + { + WriteMapFieldUpdate(TransmogOutfits, data, ignoreNestedChangesMask, owner, receiver); + } + if (changesMask[160]) + { + ViewedOutfit->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + } + if (changesMask[161]) + { + TransmogMetadata->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + } + if (changesMask[154]) { if (PetStable.has_value()) { PetStable->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); } } - if (changesMask[151]) + if (changesMask[156]) { if (WalkInData.has_value()) { WalkInData->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); } } - if (changesMask[152]) + if (changesMask[157]) { if (DelveData.has_value()) { DelveData->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); } } - if (changesMask[153]) + if (changesMask[158]) { if (ChallengeModeData.has_value()) { @@ -6524,121 +6988,121 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo } } } - if (changesMask[154]) + if (changesMask[162]) { for (uint32 i = 0; i < 105; ++i) { - if (changesMask[155 + i]) + if (changesMask[163 + i]) { data << InvSlots[i]; } } } - if (changesMask[260]) + if (changesMask[268]) { for (uint32 i = 0; i < 2; ++i) { - if (changesMask[261 + i]) + if (changesMask[269 + i]) { RestInfo[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); } } } - if (changesMask[263]) + if (changesMask[271]) { for (uint32 i = 0; i < 7; ++i) { - if (changesMask[264 + i]) + if (changesMask[272 + i]) { data << int32(ModDamageDonePos[i]); } - if (changesMask[271 + i]) + if (changesMask[279 + i]) { data << int32(ModDamageDoneNeg[i]); } - if (changesMask[278 + i]) + if (changesMask[286 + i]) { data << float(ModDamageDonePercent[i]); } - if (changesMask[285 + i]) + if (changesMask[293 + i]) { data << float(ModHealingDonePercent[i]); } } } - if (changesMask[292]) + if (changesMask[300]) { for (uint32 i = 0; i < 3; ++i) { - if (changesMask[293 + i]) + if (changesMask[301 + i]) { data << float(WeaponDmgMultipliers[i]); } - if (changesMask[296 + i]) + if (changesMask[304 + i]) { data << float(WeaponAtkSpeedMultipliers[i]); } } } - if (changesMask[299]) + if (changesMask[307]) { for (uint32 i = 0; i < 12; ++i) { - if (changesMask[300 + i]) + if (changesMask[308 + i]) { data << uint32(BuybackPrice[i]); } - if (changesMask[312 + i]) + if (changesMask[320 + i]) { data << int64(BuybackTimestamp[i]); } } } - if (changesMask[324]) + if (changesMask[332]) { for (uint32 i = 0; i < 32; ++i) { - if (changesMask[325 + i]) + if (changesMask[333 + i]) { data << int32(CombatRatings[i]); } } } - if (changesMask[357]) + if (changesMask[365]) { for (uint32 i = 0; i < 4; ++i) { - if (changesMask[358 + i]) + if (changesMask[366 + i]) { data << uint32(NoReagentCostMask[i]); } } } - if (changesMask[362]) + if (changesMask[370]) { for (uint32 i = 0; i < 2; ++i) { - if (changesMask[363 + i]) + if (changesMask[371 + i]) { data << int32(ProfessionSkillLine[i]); } } } - if (changesMask[365]) + if (changesMask[373]) { for (uint32 i = 0; i < 5; ++i) { - if (changesMask[366 + i]) + if (changesMask[374 + i]) { data << uint32(BagSlotFlags[i]); } } } - if (changesMask[371]) + if (changesMask[379]) { for (uint32 i = 0; i < 17; ++i) { - if (changesMask[372 + i]) + if (changesMask[380 + i]) { data << float(ItemUpgradeHighWatermark[i]); } @@ -6678,8 +7142,12 @@ void ActivePlayerData::ClearChangesMask() Base::ClearChangesMask(HouseExteriorComponents); Base::ClearChangesMask(HouseThemes); Base::ClearChangesMask(HouseRoomComponentTextures); + Base::ClearChangesMask(HouseTypes); + Base::ClearChangesMask(Field_1980); Base::ClearChangesMask(SpellPctModByLabel); Base::ClearChangesMask(SpellFlatModByLabel); + Base::ClearChangesMask(SpellPctModPVPByLabel); + Base::ClearChangesMask(SpellFlatModPVPByLabel); Base::ClearChangesMask(MawPowers); Base::ClearChangesMask(MultiFloorExploration); Base::ClearChangesMask(RecipeProgression); @@ -6753,6 +7221,7 @@ void ActivePlayerData::ClearChangesMask() Base::ClearChangesMask(MaxLevel); Base::ClearChangesMask(ScalingPlayerLevelDelta); Base::ClearChangesMask(MaxCreatureScalingLevel); + Base::ClearChangesMask(TransmogCostMinScalingLevel); Base::ClearChangesMask(PetSpellPower); Base::ClearChangesMask(UiHitModifier); Base::ClearChangesMask(UiSpellHitModifier); @@ -6774,7 +7243,7 @@ void ActivePlayerData::ClearChangesMask() Base::ClearChangesMask(NumAccountBankTabs); Base::ClearChangesMask(ResearchHistory); Base::ClearChangesMask(FrozenPerksVendorItem); - Base::ClearChangesMask(Field_1410); + Base::ClearChangesMask(LevelLinkInfo); Base::ClearChangesMask(QuestSession); Base::ClearChangesMask(UiChromieTimeExpansionID); Base::ClearChangesMask(TimerunningSeasonID); @@ -6795,6 +7264,9 @@ void ActivePlayerData::ClearChangesMask() Base::ClearChangesMask(WalkInData); Base::ClearChangesMask(DelveData); Base::ClearChangesMask(ChallengeModeData); + Base::ClearChangesMask(TransmogOutfits); + Base::ClearChangesMask(ViewedOutfit); + Base::ClearChangesMask(TransmogMetadata); Base::ClearChangesMask(InvSlots); Base::ClearChangesMask(RestInfo); Base::ClearChangesMask(ModDamageDonePos); @@ -6881,7 +7353,7 @@ void GameObjectData::WriteCreate(ByteBuffer& data, EnumFlag fie data << uint32(AnimGroupInstance); data << uint32(UiWidgetItemID); data << uint32(UiWidgetItemQuality); - data << uint32(UiWidgetItemUnknown1000); + data << uint32(UiWidgetItemCount); data << uint32(WorldEffects.size()); for (uint32 i = 0; i < EnableDoodadSets.size(); ++i) { @@ -7048,7 +7520,7 @@ void GameObjectData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool } if (changesMask[24]) { - data << uint32(UiWidgetItemUnknown1000); + data << uint32(UiWidgetItemCount); } data.WriteBits(AssistActionData.has_value(), 1); data.FlushBits(); @@ -7087,7 +7559,7 @@ void GameObjectData::ClearChangesMask() Base::ClearChangesMask(AnimGroupInstance); Base::ClearChangesMask(UiWidgetItemID); Base::ClearChangesMask(UiWidgetItemQuality); - Base::ClearChangesMask(UiWidgetItemUnknown1000); + Base::ClearChangesMask(UiWidgetItemCount); Base::ClearChangesMask(AssistActionData); _changesMask.ResetAll(); } @@ -7435,6 +7907,41 @@ bool ForceSetAreaTriggerPositionAndRotation::operator==(ForceSetAreaTriggerPosit && Rotation == right.Rotation; } +void AreaTriggerActionSetPeriodModifier::WriteCreate(ByteBuffer& data, AreaTrigger const* owner, Player const* receiver) const +{ + data << int32(Field_0); + data << float(Field_4); +} + +void AreaTriggerActionSetPeriodModifier::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AreaTrigger const* owner, Player const* receiver) const +{ + Mask changesMask = _changesMask; + if (ignoreChangesMask) + changesMask.SetAll(); + + data.WriteBits(changesMask.GetBlock(0), 3); + + data.FlushBits(); + if (changesMask[0]) + { + if (changesMask[1]) + { + data << int32(Field_0); + } + if (changesMask[2]) + { + data << float(Field_4); + } + } +} + +void AreaTriggerActionSetPeriodModifier::ClearChangesMask() +{ + Base::ClearChangesMask(Field_0); + Base::ClearChangesMask(Field_4); + _changesMask.ResetAll(); +} + void AreaTriggerSplineCalculator::WriteCreate(ByteBuffer& data, AreaTrigger const* owner, Player const* receiver) const { data.WriteBits(Points.size(), 16); @@ -7945,6 +8452,7 @@ void AreaTriggerData::WriteCreate(ByteBuffer& data, EnumFlag fi data << float(Facing); data << int32(PathType); data << uint8(ShapeType); + PeriodModifier->WriteCreate(data, owner, receiver); if (PathType == 3) { PathData.Get()->WriteCreate(data, owner, receiver); @@ -8007,7 +8515,7 @@ void AreaTriggerData::WriteUpdate(ByteBuffer& data, EnumFlag fi void AreaTriggerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, AreaTrigger const* owner, Player const* receiver) const { data << uint32(changesMask.GetBlock(0)); - data.WriteBits(changesMask.GetBlock(1), 4); + data.WriteBits(changesMask.GetBlock(1), 5); data.FlushBits(); if (changesMask[0]) @@ -8123,6 +8631,10 @@ void AreaTriggerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, boo { data << uint8(ShapeType); } + if (changesMask[36]) + { + PeriodModifier->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + } if (changesMask[34]) { if (PathType == 3) @@ -8266,6 +8778,7 @@ void AreaTriggerData::ClearChangesMask() Base::ClearChangesMask(ForcedPositionAndRotation); Base::ClearChangesMask(PathType); Base::ClearChangesMask(ShapeType); + Base::ClearChangesMask(PeriodModifier); Base::ClearChangesMask(PathData); Base::ClearChangesMask(ShapeData); _changesMask.ResetAll(); @@ -8570,7 +9083,7 @@ void VendorData::ClearChangesMask() _changesMask.ResetAll(); } -void DecorStoragePersistedDataDyes::WriteCreate(ByteBuffer& data, BaseEntity const* owner, Player const* receiver) const +void DecorDyeSlots::WriteCreate(ByteBuffer& data, BaseEntity const* owner, Player const* receiver) const { for (uint32 i = 0; i < 3; ++i) { @@ -8578,7 +9091,7 @@ void DecorStoragePersistedDataDyes::WriteCreate(ByteBuffer& data, BaseEntity con } } -void DecorStoragePersistedDataDyes::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, BaseEntity const* owner, Player const* receiver) const +void DecorDyeSlots::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, BaseEntity const* owner, Player const* receiver) const { for (uint32 i = 0; i < 3; ++i) { @@ -8586,7 +9099,7 @@ void DecorStoragePersistedDataDyes::WriteUpdate(ByteBuffer& data, bool ignoreCha } } -bool DecorStoragePersistedDataDyes::operator==(DecorStoragePersistedDataDyes const& right) const +bool DecorDyeSlots::operator==(DecorDyeSlots const& right) const { return DyeColorID == right.DyeColorID; } @@ -8594,13 +9107,15 @@ bool DecorStoragePersistedDataDyes::operator==(DecorStoragePersistedDataDyes con void DecorStoragePersistedData::WriteCreate(ByteBuffer& data, BaseEntity const* owner, Player const* receiver) const { data << *HouseGUID; - data << uint8(Field_20); - data.WriteBits(Dyes.has_value(), 1); + data << uint8(SourceType); + data.WriteBits(DyeSlots.has_value(), 1); + data.WriteBits(SourceValue->size() + 1, 24); data.FlushBits(); - if (Dyes.has_value()) + if (DyeSlots.has_value()) { - Dyes->WriteCreate(data, owner, receiver); + DyeSlots->WriteCreate(data, owner, receiver); } + data << WorldPackets::SizedCString::Data(*SourceValue); } void DecorStoragePersistedData::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, BaseEntity const* owner, Player const* receiver) const @@ -8609,7 +9124,7 @@ void DecorStoragePersistedData::WriteUpdate(ByteBuffer& data, bool ignoreChanges if (ignoreChangesMask) changesMask.SetAll(); - data.WriteBits(changesMask.GetBlock(0), 3); + data.WriteBits(changesMask.GetBlock(0), 4); data.FlushBits(); if (changesMask[0]) @@ -8618,24 +9133,33 @@ void DecorStoragePersistedData::WriteUpdate(ByteBuffer& data, bool ignoreChanges } if (changesMask[2]) { - data << uint8(Field_20); + data << uint8(SourceType); + } + data.WriteBits(DyeSlots.has_value(), 1); + if (changesMask[3]) + { + data.WriteBits(SourceValue->size() + 1, 24); } - data.WriteBits(Dyes.has_value(), 1); data.FlushBits(); if (changesMask[1]) { - if (Dyes.has_value()) + if (DyeSlots.has_value()) { - Dyes->WriteUpdate(data, ignoreChangesMask, owner, receiver); + DyeSlots->WriteUpdate(data, ignoreChangesMask, owner, receiver); } } + if (changesMask[3]) + { + data << WorldPackets::SizedCString::Data(*SourceValue); + } } void DecorStoragePersistedData::ClearChangesMask() { Base::ClearChangesMask(HouseGUID); - Base::ClearChangesMask(Dyes); - Base::ClearChangesMask(Field_20); + Base::ClearChangesMask(DyeSlots); + Base::ClearChangesMask(SourceType); + Base::ClearChangesMask(SourceValue); _changesMask.ResetAll(); } @@ -9312,7 +9836,10 @@ void PlayerMirrorHouse::WriteCreate(ByteBuffer& data, Player const* owner, Playe data << NeighborhoodGUID; data << uint32(Level); data << uint32(Favor); - data << int32(Field_28); + data << uint32(InitiativeFavor); + data << int32(InitiativeCycleID); + data << int32(MapID); + data << int32(PlotID); } void PlayerMirrorHouse::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const @@ -9321,7 +9848,10 @@ void PlayerMirrorHouse::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Pl data << NeighborhoodGUID; data << uint32(Level); data << uint32(Favor); - data << int32(Field_28); + data << uint32(InitiativeFavor); + data << int32(InitiativeCycleID); + data << int32(MapID); + data << int32(PlotID); } bool PlayerMirrorHouse::operator==(PlayerMirrorHouse const& right) const @@ -9330,7 +9860,10 @@ bool PlayerMirrorHouse::operator==(PlayerMirrorHouse const& right) const && NeighborhoodGUID == right.NeighborhoodGUID && Level == right.Level && Favor == right.Favor - && Field_28 == right.Field_28; + && InitiativeFavor == right.InitiativeFavor + && InitiativeCycleID == right.InitiativeCycleID + && MapID == right.MapID + && PlotID == right.PlotID; } void NeighborhoodCharterSignature::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const @@ -9383,12 +9916,36 @@ bool NeighborhoodCharter::operator==(NeighborhoodCharter const& right) const && Name == right.Name; } +void NeighborhoodOwnershipTransfer::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +{ + data << NeighborhoodGUID; + data << CurrentOwnerGUID; + data.WriteBits(NeighborhoodName.size() + 1, 8); + data.FlushBits(); + data << WorldPackets::SizedCString::Data(NeighborhoodName); +} + +void NeighborhoodOwnershipTransfer::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +{ + data << NeighborhoodGUID; + data << CurrentOwnerGUID; + data.WriteBits(NeighborhoodName.size() + 1, 8); + data.FlushBits(); + data << WorldPackets::SizedCString::Data(NeighborhoodName); +} + +bool NeighborhoodOwnershipTransfer::operator==(NeighborhoodOwnershipTransfer const& right) const +{ + return NeighborhoodGUID == right.NeighborhoodGUID + && CurrentOwnerGUID == right.CurrentOwnerGUID + && NeighborhoodName == right.NeighborhoodName; +} + void PlayerHouseInfoComponentData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Player const* owner, Player const* receiver) const { if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag::Owner)) { data << uint32(Field_8.size()); - data << *Field_40; } data << uint32(Houses.size()); if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag::Owner)) @@ -9421,6 +9978,7 @@ void PlayerHouseInfoComponentData::WriteCreate(ByteBuffer& data, EnumFlagWriteCreate(data, owner, receiver); + NeighborhoodOwnershipTransfer->WriteCreate(data, owner, receiver); } } @@ -9544,18 +10102,18 @@ void PlayerHouseInfoComponentData::WriteUpdate(ByteBuffer& data, Mask const& cha } } } - if (changesMask[6]) - { - data << *Field_40; - } - if (changesMask[8]) + if (changesMask[7]) { data << uint8(Field_178); } - if (changesMask[7]) + if (changesMask[6]) { Charter->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); } + if (changesMask[8]) + { + NeighborhoodOwnershipTransfer->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + } } } @@ -9566,9 +10124,9 @@ void PlayerHouseInfoComponentData::ClearChangesMask() Base::ClearChangesMask(Field_88); Base::ClearChangesMask(Field_C0); Base::ClearChangesMask(Field_F8); - Base::ClearChangesMask(Field_40); Base::ClearChangesMask(Charter); Base::ClearChangesMask(Field_178); + Base::ClearChangesMask(NeighborhoodOwnershipTransfer); _changesMask.ResetAll(); } @@ -9692,6 +10250,265 @@ void HousingFixtureData::ClearChangesMask() _changesMask.ResetAll(); } +void PlayerInitiativeInfo::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +{ + data << int64(RemainingDuration); + data << int32(CurrentInitiativeID); + data << int32(CurrentMilestoneID); + data << int32(CurrentCycleID); + data << float(ProgressRequired); + data << float(CurrentProgress); + data << float(PlayerTotalContribution); +} + +void PlayerInitiativeInfo::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +{ + Mask changesMask = _changesMask; + if (ignoreChangesMask) + changesMask.SetAll(); + + data.WriteBits(changesMask.GetBlock(0), 7); + + data.FlushBits(); + if (changesMask[0]) + { + data << int64(RemainingDuration); + } + if (changesMask[1]) + { + data << int32(CurrentInitiativeID); + } + if (changesMask[2]) + { + data << int32(CurrentMilestoneID); + } + if (changesMask[3]) + { + data << int32(CurrentCycleID); + } + if (changesMask[4]) + { + data << float(ProgressRequired); + } + if (changesMask[5]) + { + data << float(CurrentProgress); + } + if (changesMask[6]) + { + data << float(PlayerTotalContribution); + } +} + +void PlayerInitiativeInfo::ClearChangesMask() +{ + Base::ClearChangesMask(RemainingDuration); + Base::ClearChangesMask(CurrentInitiativeID); + Base::ClearChangesMask(CurrentMilestoneID); + Base::ClearChangesMask(CurrentCycleID); + Base::ClearChangesMask(ProgressRequired); + Base::ClearChangesMask(CurrentProgress); + Base::ClearChangesMask(PlayerTotalContribution); + _changesMask.ResetAll(); +} + +void PlayerInitiativeTaskInfo::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +{ + data << int32(TaskID); + data << int32(TimesCompleted); +} + +void PlayerInitiativeTaskInfo::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +{ + Mask changesMask = _changesMask; + if (ignoreChangesMask) + changesMask.SetAll(); + + data.WriteBits(changesMask.GetBlock(0), 2); + + data.FlushBits(); + if (changesMask[0]) + { + data << int32(TaskID); + } + if (changesMask[1]) + { + data << int32(TimesCompleted); + } +} + +void PlayerInitiativeTaskInfo::ClearChangesMask() +{ + Base::ClearChangesMask(TaskID); + Base::ClearChangesMask(TimesCompleted); + _changesMask.ResetAll(); +} + +void NICompletedMilestoneEntry::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +{ + data << uint32(MilestoneID); + data << int64(AwardDate); +} + +void NICompletedMilestoneEntry::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +{ + data << uint32(MilestoneID); + data << int64(AwardDate); +} + +bool NICompletedMilestoneEntry::operator==(NICompletedMilestoneEntry const& right) const +{ + return MilestoneID == right.MilestoneID + && AwardDate == right.AwardDate; +} + +void NICompletedInitiativesEntry::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +{ + data << uint32(InitiativeID); + data << uint32(CompletedMilestones.size()); + for (uint32 i = 0; i < CompletedMilestones.size(); ++i) + { + CompletedMilestones[i].WriteCreate(data, owner, receiver); + } + data.WriteBit(Completed); + data.FlushBits(); +} + +void NICompletedInitiativesEntry::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +{ + data << uint32(InitiativeID); + data << uint32(CompletedMilestones.size()); + for (uint32 i = 0; i < CompletedMilestones.size(); ++i) + { + CompletedMilestones[i].WriteUpdate(data, ignoreChangesMask, owner, receiver); + } + data.FlushBits(); + data.FlushBits(); + data.WriteBit(Completed); + data.FlushBits(); +} + +bool NICompletedInitiativesEntry::operator==(NICompletedInitiativesEntry const& right) const +{ + return Completed == right.Completed + && CompletedMilestones == right.CompletedMilestones + && InitiativeID == right.InitiativeID; +} + +void PlayerInitiativeComponentData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Player const* owner, Player const* receiver) const +{ + data << *NeighborhoodGUID; + InitiativeInfo->WriteCreate(data, owner, receiver); + data << uint32(CompletedTasks.size()); + data << uint32(CompletedInitiatives.size()); + if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag::Owner)) + { + WriteSetFieldCreate(Houses, data, owner, receiver); + } + for (uint32 i = 0; i < CompletedTasks.size(); ++i) + { + CompletedTasks[i].WriteCreate(data, owner, receiver); + } + for (uint32 i = 0; i < CompletedInitiatives.size(); ++i) + { + CompletedInitiatives[i].WriteCreate(data, owner, receiver); + } +} + +static constexpr void PlayerInitiativeComponentDataAppendAllowedFieldsMaskForFlag(PlayerInitiativeComponentData::Mask& allowedMaskForTarget, EnumFlag fieldVisibilityFlags) +{ + if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag::Owner)) + allowedMaskForTarget |= std::array{ 0x00000020u }; +} + +void PlayerInitiativeComponentData::AppendAllowedFieldsMaskForFlag(Mask& allowedMaskForTarget, EnumFlag fieldVisibilityFlags) +{ + PlayerInitiativeComponentDataAppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags); +} + +void PlayerInitiativeComponentData::FilterDisallowedFieldsMaskForFlag(Mask& changesMask, EnumFlag fieldVisibilityFlags) +{ + Mask allowedMaskForTarget({ 0x0000001Fu }); + PlayerInitiativeComponentDataAppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags); + changesMask &= allowedMaskForTarget; +} + +void PlayerInitiativeComponentData::WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Player const* owner, Player const* receiver) const +{ + Mask allowedMaskForTarget({ 0x0000001Fu }); + PlayerInitiativeComponentDataAppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags); + WriteUpdate(data, _changesMask & allowedMaskForTarget, false, owner, receiver); +} + +void PlayerInitiativeComponentData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Player const* owner, Player const* receiver) const +{ + data.WriteBits(changesMask.GetBlock(0), 6); + + if (changesMask[0]) + { + if (changesMask[1]) + { + if (!ignoreNestedChangesMask) + CompletedTasks.WriteUpdateMask(data); + else + WriteCompleteDynamicFieldUpdateMask(CompletedTasks.size(), data); + } + if (changesMask[2]) + { + if (!ignoreNestedChangesMask) + CompletedInitiatives.WriteUpdateMask(data); + else + WriteCompleteDynamicFieldUpdateMask(CompletedInitiatives.size(), data); + } + } + data.FlushBits(); + if (changesMask[0]) + { + if (changesMask[1]) + { + for (uint32 i = 0; i < CompletedTasks.size(); ++i) + { + if (CompletedTasks.HasChanged(i) || ignoreNestedChangesMask) + { + CompletedTasks[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + } + } + } + if (changesMask[2]) + { + for (uint32 i = 0; i < CompletedInitiatives.size(); ++i) + { + if (CompletedInitiatives.HasChanged(i) || ignoreNestedChangesMask) + { + CompletedInitiatives[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + } + } + } + if (changesMask[3]) + { + data << *NeighborhoodGUID; + } + if (changesMask[4]) + { + InitiativeInfo->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + } + if (changesMask[5]) + { + WriteSetFieldUpdate(Houses, data, ignoreNestedChangesMask, owner, receiver); + } + } +} + +void PlayerInitiativeComponentData::ClearChangesMask() +{ + Base::ClearChangesMask(CompletedTasks); + Base::ClearChangesMask(CompletedInitiatives); + Base::ClearChangesMask(NeighborhoodGUID); + Base::ClearChangesMask(InitiativeInfo); + Base::ClearChangesMask(Houses); + _changesMask.ResetAll(); +} + } #if TRINITY_COMPILER == TRINITY_COMPILER_GNU diff --git a/src/server/game/Entities/Object/Updates/UpdateFields.h b/src/server/game/Entities/Object/Updates/UpdateFields.h index 3e04788908..4bc23f77a3 100644 --- a/src/server/game/Entities/Object/Updates/UpdateFields.h +++ b/src/server/game/Entities/Object/Updates/UpdateFields.h @@ -77,8 +77,8 @@ struct ItemEnchantment : public IsUpdateFieldStructureTag, public HasChangesMask struct ItemMod : public IsUpdateFieldStructureTag { - uint8 Type; - int32 Value; + uint8 Type = 0; + int32 Value = 0; void WriteCreate(ByteBuffer& data, Item const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Item const* owner, Player const* receiver) const; @@ -97,9 +97,9 @@ struct ItemModList : public IsUpdateFieldStructureTag, public HasChangesMask<1> struct ArtifactPower : public IsUpdateFieldStructureTag { - int16 ArtifactPowerID; - uint8 PurchasedRank; - uint8 CurrentRankWithBonus; + int16 ArtifactPowerID = 0; + uint8 PurchasedRank = 0; + uint8 CurrentRankWithBonus = 0; void WriteCreate(ByteBuffer& data, Item const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Item const* owner, Player const* receiver) const; @@ -174,8 +174,8 @@ struct AzeriteEmpoweredItemData : public IsUpdateFieldStructureTag, public HasCh struct UnlockedAzeriteEssence : public IsUpdateFieldStructureTag { - uint32 AzeriteEssenceID; - uint32 Rank; + uint32 AzeriteEssenceID = 0; + uint32 Rank = 0; void WriteCreate(ByteBuffer& data, AzeriteItem const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AzeriteItem const* owner, Player const* receiver) const; @@ -216,8 +216,8 @@ struct AzeriteItemData : public IsUpdateFieldStructureTag, public HasChangesMask struct SpellCastVisual : public IsUpdateFieldStructureTag { - int32 SpellXSpellVisualID; - int32 ScriptVisualID; + int32 SpellXSpellVisualID = 0; + int32 ScriptVisualID = 0; void WriteCreate(ByteBuffer& data, Object const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Object const* owner, Player const* receiver) const; @@ -227,10 +227,10 @@ struct SpellCastVisual : public IsUpdateFieldStructureTag struct UnitChannel : public IsUpdateFieldStructureTag { - int32 SpellID; + int32 SpellID = 0; UF::SpellCastVisual SpellVisual; - uint32 StartTimeMs; - uint32 Duration; + uint32 StartTimeMs = 0; + uint32 Duration = 0; void WriteCreate(ByteBuffer& data, Unit const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Unit const* owner, Player const* receiver) const; @@ -238,13 +238,15 @@ struct UnitChannel : public IsUpdateFieldStructureTag bool operator!=(UnitChannel const& right) const { return !(*this == right); } }; -struct VisibleItem : public IsUpdateFieldStructureTag, public HasChangesMask<6> +struct VisibleItem : public IsUpdateFieldStructureTag, public HasChangesMask<8> { - UpdateField ItemID; - UpdateField SecondaryItemModifiedAppearanceID; - UpdateField ConditionalItemAppearanceID; - UpdateField ItemAppearanceModID; - UpdateField ItemVisual; + UpdateField Field_10; + UpdateField Field_11; + UpdateField ItemID; + UpdateField SecondaryItemModifiedAppearanceID; + UpdateField ConditionalItemAppearanceID; + UpdateField ItemAppearanceModID; + UpdateField ItemVisual; void WriteCreate(ByteBuffer& data, Unit const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Unit const* owner, Player const* receiver) const; @@ -253,8 +255,8 @@ struct VisibleItem : public IsUpdateFieldStructureTag, public HasChangesMask<6> struct PassiveSpellHistory : public IsUpdateFieldStructureTag { - int32 SpellID; - int32 AuraSpellID; + int32 SpellID = 0; + int32 AuraSpellID = 0; void WriteCreate(ByteBuffer& data, Unit const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Unit const* owner, Player const* receiver) const; @@ -273,7 +275,7 @@ struct UnitAssistActionData : public IsUpdateFieldStructureTag, public HasChange void ClearChangesMask(); }; -struct UnitData : public IsUpdateFieldStructureTag, public HasChangesMask<224> +struct UnitData : public IsUpdateFieldStructureTag, public HasChangesMask<228> { UpdateField Field_314; UpdateField, 0, 2> StateWorldEffectIDs; @@ -419,8 +421,8 @@ struct UnitData : public IsUpdateFieldStructureTag, public HasChangesMask<224> UpdateField MaxHealthModifierFlatPos; UpdateField SilencedSchoolMask; UpdateField CurrentAreaID; - UpdateField Field_31C; - UpdateField Field_320; // Soft targeting related? When UnitFlags3 & 0x40000000 is set, increases some range check using CombatReach by this amount + UpdateField NameplateDistanceMod; + UpdateField AutoAttackRangeMod; // When UnitFlags3 & 0x40000000 is set, increases some autoattack range by this amount UpdateField NameplateAttachToGUID; // When set, nameplate of this unit will instead appear on that object OptionalUpdateField AssistActionData; UpdateFieldArray Power; @@ -429,13 +431,13 @@ struct UnitData : public IsUpdateFieldStructureTag, public HasChangesMask<224> UpdateFieldArray PowerRegenInterruptedFlatModifier; UpdateFieldArray VirtualItems; UpdateFieldArray AttackRoundBaseTime; - UpdateFieldArray Stats; - UpdateFieldArray StatPosBuff; - UpdateFieldArray StatNegBuff; - UpdateFieldArray StatSupportBuff; - UpdateFieldArray Resistances; - UpdateFieldArray BonusResistanceMods; - UpdateFieldArray ManaCostModifier; + UpdateFieldArray Stats; + UpdateFieldArray StatPosBuff; + UpdateFieldArray StatNegBuff; + UpdateFieldArray StatSupportBuff; + UpdateFieldArray Resistances; + UpdateFieldArray BonusResistanceMods; + UpdateFieldArray ManaCostModifier; void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Unit const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Unit const* owner, Player const* receiver) const; @@ -447,8 +449,8 @@ struct UnitData : public IsUpdateFieldStructureTag, public HasChangesMask<224> struct ChrCustomizationChoice : public IsUpdateFieldStructureTag { - uint32 ChrCustomizationOptionID; - uint32 ChrCustomizationChoiceID; + uint32 ChrCustomizationOptionID = 0; + uint32 ChrCustomizationChoiceID = 0; void WriteCreate(ByteBuffer& data, Object const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Object const* owner, Player const* receiver) const; @@ -508,8 +510,8 @@ struct PetCreatureName : public IsUpdateFieldStructureTag, public HasChangesMask struct CTROptions : public IsUpdateFieldStructureTag { std::vector ConditionalFlags; - uint8 FactionGroup; - uint32 ChromieTimeExpansionMask; + uint8 FactionGroup = 0; + uint32 ChromieTimeExpansionMask = 0; void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; @@ -519,16 +521,16 @@ struct CTROptions : public IsUpdateFieldStructureTag struct LeaverInfo : public IsUpdateFieldStructureTag { + bool IsLeaver = false; ObjectGuid BnetAccountGUID; - float LeaveScore; - uint32 SeasonID; - uint32 TotalLeaves; - uint32 TotalSuccesses; - int32 ConsecutiveSuccesses; - int64 LastPenaltyTime; - int64 LeaverExpirationTime; - int32 Unknown_1120; - uint32 LeaverStatus; + float LeaveScore = 0.0f; + uint32 SeasonID = 0; + uint32 TotalLeaves = 0; + uint32 TotalSuccesses = 0; + int32 ConsecutiveSuccesses = 0; + int64 LastPenaltyTime = 0; + int64 LeaverExpirationTime = 0; + int32 Flags = 0; void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; @@ -558,12 +560,27 @@ struct CustomTabardInfo : public IsUpdateFieldStructureTag, public HasChangesMas void ClearChangesMask(); }; -struct PlayerData : public IsUpdateFieldStructureTag, public HasChangesMask<324> +struct NPCAsPlayerInfo : public IsUpdateFieldStructureTag +{ + int32 Field_0 = 0; + int32 CharacterLoadoutID = 0; + int32 CreatureID = 0; + TaggedPosition LocWorldSpace; + float FacingWorldSpace = 0.0f; + ObjectGuid TransportGUID; + + 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==(NPCAsPlayerInfo const& right) const; + bool operator!=(NPCAsPlayerInfo const& right) const { return !(*this == right); } +}; + +struct PlayerData : public IsUpdateFieldStructureTag, public HasChangesMask<325> { UpdateField HasQuestSession; UpdateField HasLevelLink; DynamicUpdateField Customizations; - DynamicUpdateField QaCustomizations; + DynamicUpdateField RandomCustomizations; DynamicUpdateField QuestSessionQuestLog; DynamicUpdateField ArenaCooldowns; DynamicUpdateField VisualItemReplacements; @@ -594,8 +611,8 @@ struct PlayerData : public IsUpdateFieldStructureTag, public HasChangesMask<324> UpdateField HonorLevel; UpdateField LogoutTime; UpdateField Name; - UpdateField Field_1AC; - UpdateField Field_1B0; + UpdateField OfferedAdvJournalQuestID; + UpdateField OfferedScriptQuestID; UpdateField CurrentBattlePetSpeciesID; UpdateField CtrOptions; UpdateField CovenantID; @@ -603,16 +620,17 @@ struct PlayerData : public IsUpdateFieldStructureTag, public HasChangesMask<324> UpdateField DungeonScore; UpdateField LeaverInfo; UpdateField SpectateTarget; - UpdateField Field_200; + UpdateField WorldLootObjectInventorySwapSlot; OptionalUpdateField DeclinedNames; UpdateField PersonalTabard; - UpdateFieldArray PartyType; - UpdateFieldArray QuestLog; - UpdateFieldArray VisibleItems; - UpdateFieldArray AvgItemLevel; - UpdateFieldArray ForcedReactions; - UpdateFieldArray VisibleEquipableSpells; - UpdateFieldArray Field_3120; + UpdateField NpcAsPlayerInfo; + UpdateFieldArray PartyType; + UpdateFieldArray QuestLog; + UpdateFieldArray VisibleItems; + UpdateFieldArray AvgItemLevel; + UpdateFieldArray ForcedReactions; + UpdateFieldArray VisibleEquipableSpells; + UpdateFieldArray PlunderstormItemDisplayID; void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Player const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Player const* owner, Player const* receiver) const; @@ -623,15 +641,15 @@ struct PlayerData : public IsUpdateFieldStructureTag, public HasChangesMask<324> bool IsQuestLogChangesMaskSkipped() const { return false; } // bandwidth savings aren't worth the cpu time }; -struct SkillInfo : public IsUpdateFieldStructureTag, public HasChangesMask<1793> +struct SkillInfo : public IsUpdateFieldStructureTag, public HasChangesMask<2101> { - UpdateFieldArray SkillLineID; - UpdateFieldArray SkillStep; - UpdateFieldArray SkillRank; - UpdateFieldArray SkillStartingRank; - UpdateFieldArray SkillMaxRank; - UpdateFieldArray SkillTempBonus; - UpdateFieldArray SkillPermBonus; + UpdateFieldArray SkillLineID; + UpdateFieldArray SkillStep; + UpdateFieldArray SkillRank; + UpdateFieldArray SkillStartingRank; + UpdateFieldArray SkillMaxRank; + UpdateFieldArray SkillTempBonus; + UpdateFieldArray SkillPermBonus; void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; @@ -658,9 +676,9 @@ struct BitVectors : public IsUpdateFieldStructureTag, public HasChangesMask<15> struct PlayerDataElement : public IsUpdateFieldStructureTag { - uint32 Type; - float FloatValue; - int64 Int64Value; + uint32 Type = 0; + float FloatValue = 0.0f; + int64 Int64Value = 0; void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; @@ -689,11 +707,11 @@ struct PVPInfo : public IsUpdateFieldStructureTag, public HasChangesMask<19> UpdateField SeasonWon; UpdateField Rating; UpdateField WeeklyBestRating; - UpdateField SeasonBestRating; + UpdateField LastWeeksBestRating; UpdateField PvpTierID; UpdateField WeeklyBestWinPvpTierID; - UpdateField Field_28; - UpdateField Field_2C; + UpdateField SeasonBestRating; + UpdateField SeasonBestTier; UpdateField WeeklyRoundsPlayed; UpdateField WeeklyRoundsWon; UpdateField SeasonRoundsPlayed; @@ -706,10 +724,10 @@ struct PVPInfo : public IsUpdateFieldStructureTag, public HasChangesMask<19> struct CharacterRestriction : public IsUpdateFieldStructureTag { - int32 Field_0; - int32 Field_4; - int32 Field_8; - uint32 Type; + int32 Field_0 = 0; + int32 Field_4 = 0; + int32 Field_8 = 0; + uint32 Type = 0; void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; @@ -719,9 +737,9 @@ struct CharacterRestriction : public IsUpdateFieldStructureTag struct SpellPctModByLabel : public IsUpdateFieldStructureTag { - int32 ModIndex; - float ModifierValue; - int32 LabelID; + int32 ModIndex = 0; + float ModifierValue = 0.0f; + int32 LabelID = 0; void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; @@ -731,9 +749,9 @@ struct SpellPctModByLabel : public IsUpdateFieldStructureTag struct SpellFlatModByLabel : public IsUpdateFieldStructureTag { - int32 ModIndex; - int32 ModifierValue; - int32 LabelID; + int32 ModIndex = 0; + int32 ModifierValue = 0; + int32 LabelID = 0; void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; @@ -741,6 +759,30 @@ struct SpellFlatModByLabel : public IsUpdateFieldStructureTag bool operator!=(SpellFlatModByLabel const& right) const { return !(*this == right); } }; +struct SpellPctPVPModByLabel : public IsUpdateFieldStructureTag +{ + int32 PvpModIndex = 0; + float ModifierValue = 0.0f; + int32 LabelID = 0; + + 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==(SpellPctPVPModByLabel const& right) const; + bool operator!=(SpellPctPVPModByLabel const& right) const { return !(*this == right); } +}; + +struct SpellFlatPVPModByLabel : public IsUpdateFieldStructureTag +{ + int32 PvpModIndex = 0; + int32 ModifierValue = 0; + int32 LabelID = 0; + + 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==(SpellFlatPVPModByLabel const& right) const; + bool operator!=(SpellFlatPVPModByLabel const& right) const { return !(*this == right); } +}; + struct CompletedProject : public IsUpdateFieldStructureTag, public HasChangesMask<4> { UpdateField FirstCompleted; @@ -763,9 +805,9 @@ struct ResearchHistory : public IsUpdateFieldStructureTag, public HasChangesMask struct MawPower : public IsUpdateFieldStructureTag { - int32 SpellID; - int32 MawPowerID; - int32 Stacks; + int32 SpellID = 0; + int32 MawPowerID = 0; + int32 Stacks = 0; void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; @@ -785,8 +827,8 @@ struct MultiFloorExplore : public IsUpdateFieldStructureTag struct RecipeProgressionInfo : public IsUpdateFieldStructureTag { - uint16 RecipeProgressionGroupID; - uint16 Experience; + uint16 RecipeProgressionGroupID = 0; + uint16 Experience = 0; void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; @@ -794,10 +836,10 @@ struct RecipeProgressionInfo : public IsUpdateFieldStructureTag bool operator!=(RecipeProgressionInfo const& right) const { return !(*this == right); } }; -struct ActivePlayerUnk901 : public IsUpdateFieldStructureTag, public HasChangesMask<3> +struct LevelLinkInfo : public IsUpdateFieldStructureTag, public HasChangesMask<3> { - UpdateField Field_0; - UpdateField Field_10; + UpdateField TargetGUID; + UpdateField Level; void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; @@ -826,11 +868,11 @@ struct ReplayedQuest : public IsUpdateFieldStructureTag, public HasChangesMask<3 struct TraitEntry : public IsUpdateFieldStructureTag { - int32 TraitNodeID; - int32 TraitNodeEntryID; - int32 Rank; - int32 GrantedRanks; - int32 BonusRanks; + int32 TraitNodeID = 0; + int32 TraitNodeEntryID = 0; + int32 Rank = 0; + int32 GrantedRanks = 0; + int32 BonusRanks = 0; void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; @@ -841,8 +883,8 @@ struct TraitEntry : public IsUpdateFieldStructureTag struct TraitSubTreeCache : public IsUpdateFieldStructureTag { std::vector Entries; - int32 TraitSubTreeID; - uint32 Active; + int32 TraitSubTreeID = 0; + uint32 Active = 0; void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; @@ -871,7 +913,7 @@ struct TraitConfig : public IsUpdateFieldStructureTag, public HasChangesMask<15> struct CraftingOrderItem : public IsUpdateFieldStructureTag, public HasChangesMask<7> { - UpdateField Field_0; + UpdateField OrderItemID; UpdateField ItemGUID; UpdateField OwnerGUID; UpdateField ItemID; @@ -897,7 +939,7 @@ struct CraftingOrderCustomer : public IsUpdateFieldStructureTag, public HasChang struct CraftingOrderNpcCustomer : public IsUpdateFieldStructureTag, public HasChangesMask<2> { UpdateField NpcCraftingOrderCustomerID; - UpdateField Field_8; + UpdateField RealmAddress; void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; @@ -969,8 +1011,8 @@ struct NPCCraftingOrderInfo : public IsUpdateFieldStructureTag, public HasChange struct CategoryCooldownMod : public IsUpdateFieldStructureTag { - int32 SpellCategoryID; - int32 ModCooldown; + int32 SpellCategoryID = 0; + int32 ModCooldown = 0; void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; @@ -980,8 +1022,8 @@ struct CategoryCooldownMod : public IsUpdateFieldStructureTag struct WeeklySpellUse : public IsUpdateFieldStructureTag { - int32 SpellCategoryID; - uint8 Uses; + int32 SpellCategoryID = 0; + uint8 Uses = 0; void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; @@ -1040,9 +1082,9 @@ struct BankTabSettings : public IsUpdateFieldStructureTag, public HasChangesMask struct WalkInData : public IsUpdateFieldStructureTag { - int32 MapID; - int64 Field_8; - uint32 Type; + int32 MapID = 0; + int64 Field_8 = 0; + uint32 Type = 0; ObjectGuid Field_18; void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; @@ -1054,11 +1096,11 @@ struct WalkInData : public IsUpdateFieldStructureTag struct DelveData : public IsUpdateFieldStructureTag { std::vector Owners; - int32 Field_0; - uint64 Field_8; - int32 Field_10; - int32 SpellID; - uint32 Started; // Restricts rewards to players in m_owners if set to true. Intended to prevent rewarwding players that join in-progress delve? + int32 Field_0 = 0; + uint64 Field_8 = 0; + int32 Field_10 = 0; + int32 SpellID = 0; + uint32 Started = 0; // Restricts rewards to players in m_owners if set to true. Intended to prevent rewarwding players that join in-progress delve? void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; @@ -1068,16 +1110,16 @@ struct DelveData : public IsUpdateFieldStructureTag struct ChallengeModeData : public IsUpdateFieldStructureTag { - int32 Unknown_1120_1; - int32 Unknown_1120_2; - uint64 Unknown_1120_3; - int64 Unknown_1120_4; + int32 MapID = 0; + int32 InitialPlayerCount = 0; + uint64 InstanceID = 0; + int64 StartTime = 0; ObjectGuid KeystoneOwnerGUID; ObjectGuid LeaverGUID; - int64 InstanceAbandonVoteCooldown; - uint32 IsActive; - uint32 HasRestrictions; - uint32 CanVoteAbandon; + int64 InstanceAbandonVoteCooldown = 0; + uint32 IsActive = 0; + uint32 HasRestrictions = 0; + uint32 CanVoteAbandon = 0; void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; @@ -1085,9 +1127,75 @@ struct ChallengeModeData : public IsUpdateFieldStructureTag bool operator!=(ChallengeModeData const& right) const { return !(*this == right); } }; +struct TransmogOutfitDataInfo : public IsUpdateFieldStructureTag, public HasChangesMask<4> +{ + UpdateField SituationsEnabled; + UpdateField SetType; + UpdateField Name; + UpdateField Icon; + + void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; + void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + void ClearChangesMask(); +}; + +struct TransmogOutfitSituationInfo : public IsUpdateFieldStructureTag, public HasChangesMask<4> +{ + UpdateField SituationID; + UpdateField SpecID; + UpdateField LoadoutID; + UpdateField EquipmentSetID; + + void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; + void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + void ClearChangesMask(); +}; + +struct TransmogOutfitSlotData : public IsUpdateFieldStructureTag, public HasChangesMask<7> +{ + UpdateField Slot; + UpdateField SlotOption; + UpdateField ItemModifiedAppearanceID; + UpdateField AppearanceDisplayType; + UpdateField SpellItemEnchantmentID; + UpdateField IllusionDisplayType; + UpdateField Flags; + + void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; + void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + void ClearChangesMask(); +}; + +struct TransmogOutfitData : public IsUpdateFieldStructureTag, public HasChangesMask<5> +{ + DynamicUpdateField Situations; + DynamicUpdateField Slots; + UpdateField Id; + UpdateField OutfitInfo; + UpdateField Flags; + + void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; + void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + void ClearChangesMask(); +}; + +struct TransmogOutfitMetadata : public IsUpdateFieldStructureTag +{ + bool Locked = false; + uint8 SituationTrigger = 0; + uint32 TransmogOutfitID = 0; + uint8 StampedOptionMainHand = 0; + uint8 StampedOptionOffHand = 0; + + 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==(TransmogOutfitMetadata const& right) const; + bool operator!=(TransmogOutfitMetadata const& right) const { return !(*this == right); } +}; + struct Research : public IsUpdateFieldStructureTag { - int16 ResearchProjectID; + int16 ResearchProjectID = 0; void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; @@ -1095,7 +1203,7 @@ struct Research : public IsUpdateFieldStructureTag bool operator!=(Research const& right) const { return !(*this == right); } }; -struct ActivePlayerData : public IsUpdateFieldStructureTag, public HasChangesMask<389> +struct ActivePlayerData : public IsUpdateFieldStructureTag, public HasChangesMask<397> { UpdateField BackpackAutoSortDisabled; UpdateField BackpackSellJunkDisabled; @@ -1103,9 +1211,9 @@ struct ActivePlayerData : public IsUpdateFieldStructureTag, public HasChangesMas UpdateField SortBagsRightToLeft; UpdateField InsertItemsLeftToRight; UpdateField HasPerksProgramPendingReward; - UpdateFieldArray, 1, 46, 47> ResearchSites; - UpdateFieldArray, 1, 48, 49> ResearchSiteProgress; - UpdateFieldArray, 1, 50, 51> Research; + UpdateFieldArray, 1, 50, 51> ResearchSites; + UpdateFieldArray, 1, 52, 53> ResearchSiteProgress; + UpdateFieldArray, 1, 54, 55> Research; DynamicUpdateField KnownTitles; DynamicUpdateField CharacterDataElements; DynamicUpdateField AccountDataElements; @@ -1126,138 +1234,146 @@ struct ActivePlayerData : public IsUpdateFieldStructureTag, public HasChangesMas DynamicUpdateField HouseExteriorComponents; DynamicUpdateField HouseThemes; DynamicUpdateField HouseRoomComponentTextures; - DynamicUpdateField SpellPctModByLabel; - DynamicUpdateField SpellFlatModByLabel; - DynamicUpdateField MawPowers; - DynamicUpdateField MultiFloorExploration; - DynamicUpdateField RecipeProgression; - DynamicUpdateField ReplayedQuests; - DynamicUpdateField TaskQuests; - DynamicUpdateField DisabledSpells; - DynamicUpdateField PersonalCraftingOrderCounts; - DynamicUpdateField NpcCraftingOrders; - DynamicUpdateField CategoryCooldownMods; - DynamicUpdateField WeeklySpellUses; - DynamicUpdateField TrackedCollectableSources; + DynamicUpdateField HouseTypes; + DynamicUpdateField Field_1980; + DynamicUpdateField SpellPctModByLabel; + DynamicUpdateField SpellFlatModByLabel; + DynamicUpdateField SpellPctModPVPByLabel; + DynamicUpdateField SpellFlatModPVPByLabel; + DynamicUpdateField MawPowers; + DynamicUpdateField MultiFloorExploration; + DynamicUpdateField RecipeProgression; + DynamicUpdateField ReplayedQuests; + DynamicUpdateField TaskQuests; + DynamicUpdateField DisabledSpells; + DynamicUpdateField PersonalCraftingOrderCounts; + DynamicUpdateField NpcCraftingOrders; + DynamicUpdateField CategoryCooldownMods; + DynamicUpdateField WeeklySpellUses; + DynamicUpdateField TrackedCollectableSources; DynamicUpdateField PvpInfo; - DynamicUpdateField CharacterRestrictions; - DynamicUpdateField CraftingOrders; - DynamicUpdateField CharacterBankTabSettings; - DynamicUpdateField AccountBankTabSettings; - UpdateField FarsightObject; - UpdateField SummonedBattlePetGUID; - UpdateField Coinage; - UpdateField AccountBankCoinage; - UpdateField XP; - UpdateField NextLevelXP; - UpdateField TrialXP; - UpdateField Skill; - UpdateField CharacterPoints; - UpdateField MaxTalentTiers; - UpdateField TrackCreatureMask; - UpdateField MainhandExpertise; - UpdateField OffhandExpertise; - UpdateField RangedExpertise; - UpdateField CombatRatingExpertise; - UpdateField BlockPercentage; - UpdateField DodgePercentage; - UpdateField DodgePercentageFromAttribute; - UpdateField ParryPercentage; - UpdateField ParryPercentageFromAttribute; - UpdateField CritPercentage; - UpdateField RangedCritPercentage; - UpdateField OffhandCritPercentage; - UpdateField SpellCritPercentage; - UpdateField ShieldBlock; - UpdateField ShieldBlockCritPercentage; - UpdateField Mastery; - UpdateField Speed; - UpdateField Avoidance; - UpdateField Sturdiness; - UpdateField Versatility; - UpdateField VersatilityBonus; - UpdateField PvpPowerDamage; - UpdateField PvpPowerHealing; - UpdateField BitVectors; - UpdateField ModHealingDonePos; - UpdateField ModHealingPercent; - UpdateField ModPeriodicHealingDonePercent; - UpdateField ModSpellPowerPercent; - UpdateField ModResiliencePercent; - UpdateField OverrideSpellPowerByAPPercent; - UpdateField OverrideAPBySpellPowerPercent; - UpdateField ModTargetResistance; - UpdateField ModTargetPhysicalResistance; - UpdateField LocalFlags; - UpdateField GrantableLevels; - UpdateField MultiActionBars; - UpdateField LifetimeMaxRank; - UpdateField NumRespecs; - UpdateField PvpMedals; - UpdateField TodayHonorableKills; - UpdateField YesterdayHonorableKills; - UpdateField LifetimeHonorableKills; - UpdateField WatchedFactionIndex; - UpdateField MaxLevel; - UpdateField ScalingPlayerLevelDelta; - UpdateField MaxCreatureScalingLevel; - UpdateField PetSpellPower; - UpdateField UiHitModifier; - UpdateField UiSpellHitModifier; - UpdateField HomeRealmTimeOffset; - UpdateField ModPetHaste; - UpdateField JailersTowerLevelMax; - UpdateField JailersTowerLevel; - UpdateField LocalRegenFlags; - UpdateField AuraVision; - UpdateField NumBackpackSlots; - UpdateField OverrideSpellsID; - UpdateField LootSpecID; - UpdateField OverrideZonePVPType; - UpdateField Honor; - UpdateField HonorNextLevel; - UpdateField PerksProgramCurrency; - UpdateField NumBankSlots; - UpdateField NumCharacterBankTabs; - UpdateField NumAccountBankTabs; - UpdateField ResearchHistory; - UpdateField FrozenPerksVendorItem; - UpdateField Field_1410; - OptionalUpdateField QuestSession; - UpdateField UiChromieTimeExpansionID; - UpdateField TimerunningSeasonID; - UpdateField TransportServerTime; - UpdateField WeeklyRewardsPeriodSinceOrigin; // week count since Cfg_RegionsEntry::ChallengeOrigin - UpdateField DEBUGSoulbindConduitRank; - UpdateField DungeonScore; - MapUpdateField TraitConfigs; - UpdateField ActiveCombatTraitConfigID; - UpdateField ItemUpgradeHighOnehandWeaponItemID; - UpdateField ItemUpgradeHighFingerItemID; - UpdateField ItemUpgradeHighFingerWatermark; - UpdateField ItemUpgradeHighTrinketItemID; - UpdateField ItemUpgradeHighTrinketWatermark; - UpdateField LootHistoryInstanceID; - OptionalUpdateField PetStable; - UpdateField RequiredMountCapabilityFlags; - OptionalUpdateField WalkInData; - OptionalUpdateField DelveData; - OptionalUpdateField ChallengeModeData; - UpdateFieldArray InvSlots; - UpdateFieldArray RestInfo; - UpdateFieldArray ModDamageDonePos; - UpdateFieldArray ModDamageDoneNeg; - UpdateFieldArray ModDamageDonePercent; - UpdateFieldArray ModHealingDonePercent; - UpdateFieldArray WeaponDmgMultipliers; - UpdateFieldArray WeaponAtkSpeedMultipliers; - UpdateFieldArray BuybackPrice; - UpdateFieldArray BuybackTimestamp; - UpdateFieldArray CombatRatings; - UpdateFieldArray NoReagentCostMask; - UpdateFieldArray ProfessionSkillLine; - UpdateFieldArray BagSlotFlags; - UpdateFieldArray ItemUpgradeHighWatermark; + DynamicUpdateField CharacterRestrictions; + DynamicUpdateField CraftingOrders; + DynamicUpdateField CharacterBankTabSettings; + DynamicUpdateField AccountBankTabSettings; + UpdateField FarsightObject; + UpdateField SummonedBattlePetGUID; + UpdateField Coinage; + UpdateField AccountBankCoinage; + UpdateField XP; + UpdateField NextLevelXP; + UpdateField TrialXP; + UpdateField Skill; + UpdateField CharacterPoints; + UpdateField MaxTalentTiers; + UpdateField TrackCreatureMask; + UpdateField MainhandExpertise; + UpdateField OffhandExpertise; + UpdateField RangedExpertise; + UpdateField CombatRatingExpertise; + UpdateField BlockPercentage; + UpdateField DodgePercentage; + UpdateField DodgePercentageFromAttribute; + UpdateField ParryPercentage; + UpdateField ParryPercentageFromAttribute; + UpdateField CritPercentage; + UpdateField RangedCritPercentage; + UpdateField OffhandCritPercentage; + UpdateField SpellCritPercentage; + UpdateField ShieldBlock; + UpdateField ShieldBlockCritPercentage; + UpdateField Mastery; + UpdateField Speed; + UpdateField Avoidance; + UpdateField Sturdiness; + UpdateField Versatility; + UpdateField VersatilityBonus; + UpdateField PvpPowerDamage; + UpdateField PvpPowerHealing; + UpdateField BitVectors; + UpdateField ModHealingDonePos; + UpdateField ModHealingPercent; + UpdateField ModPeriodicHealingDonePercent; + UpdateField ModSpellPowerPercent; + UpdateField ModResiliencePercent; + UpdateField OverrideSpellPowerByAPPercent; + UpdateField OverrideAPBySpellPowerPercent; + UpdateField ModTargetResistance; + UpdateField ModTargetPhysicalResistance; + UpdateField LocalFlags; + UpdateField GrantableLevels; + UpdateField MultiActionBars; + UpdateField LifetimeMaxRank; + UpdateField NumRespecs; + UpdateField PvpMedals; + UpdateField TodayHonorableKills; + UpdateField YesterdayHonorableKills; + UpdateField LifetimeHonorableKills; + UpdateField WatchedFactionIndex; + UpdateField MaxLevel; + UpdateField ScalingPlayerLevelDelta; + UpdateField MaxCreatureScalingLevel; + UpdateField TransmogCostMinScalingLevel; + UpdateField PetSpellPower; + UpdateField UiHitModifier; + UpdateField UiSpellHitModifier; + UpdateField HomeRealmTimeOffset; + UpdateField ModPetHaste; + UpdateField JailersTowerLevelMax; + UpdateField JailersTowerLevel; + UpdateField LocalRegenFlags; + UpdateField AuraVision; + UpdateField NumBackpackSlots; + UpdateField OverrideSpellsID; + UpdateField LootSpecID; + UpdateField OverrideZonePVPType; + UpdateField Honor; + UpdateField HonorNextLevel; + UpdateField PerksProgramCurrency; + UpdateField NumBankSlots; + UpdateField NumCharacterBankTabs; + UpdateField NumAccountBankTabs; + UpdateField ResearchHistory; + UpdateField FrozenPerksVendorItem; + UpdateField LevelLinkInfo; + OptionalUpdateField QuestSession; + UpdateField UiChromieTimeExpansionID; + UpdateField TimerunningSeasonID; + UpdateField TransportServerTime; + UpdateField WeeklyRewardsPeriodSinceOrigin; // week count since Cfg_RegionsEntry::ChallengeOrigin + UpdateField DEBUGSoulbindConduitRank; + UpdateField DungeonScore; + MapUpdateField TraitConfigs; + UpdateField ActiveCombatTraitConfigID; + UpdateField ItemUpgradeHighOnehandWeaponItemID; + UpdateField ItemUpgradeHighFingerItemID; + UpdateField ItemUpgradeHighFingerWatermark; + UpdateField ItemUpgradeHighTrinketItemID; + UpdateField ItemUpgradeHighTrinketWatermark; + UpdateField LootHistoryInstanceID; + OptionalUpdateField PetStable; + UpdateField RequiredMountCapabilityFlags; + OptionalUpdateField WalkInData; + OptionalUpdateField DelveData; + OptionalUpdateField ChallengeModeData; + MapUpdateField TransmogOutfits; + UpdateField ViewedOutfit; + UpdateField TransmogMetadata; + UpdateFieldArray InvSlots; + UpdateFieldArray RestInfo; + UpdateFieldArray ModDamageDonePos; + UpdateFieldArray ModDamageDoneNeg; + UpdateFieldArray ModDamageDonePercent; + UpdateFieldArray ModHealingDonePercent; + UpdateFieldArray WeaponDmgMultipliers; + UpdateFieldArray WeaponAtkSpeedMultipliers; + UpdateFieldArray BuybackPrice; + UpdateFieldArray BuybackTimestamp; + UpdateFieldArray CombatRatings; + UpdateFieldArray NoReagentCostMask; + UpdateFieldArray ProfessionSkillLine; + UpdateFieldArray BagSlotFlags; + UpdateFieldArray ItemUpgradeHighWatermark; void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Player const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Player const* owner, Player const* receiver) const; @@ -1269,10 +1385,10 @@ struct GameObjectAssistActionData : public IsUpdateFieldStructureTag { std::string PlayerName; std::string MonsterName; - uint32 VirtualRealmAddress; - uint8 Sex; - int64 Time; - int32 DelveTier; + uint32 VirtualRealmAddress = 0; + uint8 Sex = 0; + int64 Time = 0; + int32 DelveTier = 0; void WriteCreate(ByteBuffer& data, GameObject const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, GameObject const* owner, Player const* receiver) const; @@ -1312,7 +1428,7 @@ struct GameObjectData : public IsUpdateFieldStructureTag, public HasChangesMask< UpdateField AnimGroupInstance; UpdateField UiWidgetItemID; UpdateField UiWidgetItemQuality; - UpdateField UiWidgetItemUnknown1000; + UpdateField UiWidgetItemCount; OptionalUpdateField AssistActionData; void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, GameObject const* owner, Player const* receiver) const; @@ -1394,6 +1510,16 @@ struct ForceSetAreaTriggerPositionAndRotation : public IsUpdateFieldStructureTag bool operator!=(ForceSetAreaTriggerPositionAndRotation const& right) const { return !(*this == right); } }; +struct AreaTriggerActionSetPeriodModifier : public IsUpdateFieldStructureTag, public HasChangesMask<3> +{ + UpdateField Field_0; + UpdateField Field_4; + + void WriteCreate(ByteBuffer& data, AreaTrigger const* owner, Player const* receiver) const; + void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AreaTrigger const* owner, Player const* receiver) const; + void ClearChangesMask(); +}; + struct AreaTriggerSplineCalculator : public IsUpdateFieldStructureTag, public HasChangesMask<3> { UpdateField Catmullrom; @@ -1501,7 +1627,7 @@ struct AreaTriggerBoundedPlane : public IsUpdateFieldStructureTag, public HasCha void ClearChangesMask(); }; -struct AreaTriggerData : public IsUpdateFieldStructureTag, public HasChangesMask<36> +struct AreaTriggerData : public IsUpdateFieldStructureTag, public HasChangesMask<37> { UpdateField OverrideScaleCurve; UpdateField ExtraScaleCurve; @@ -1537,6 +1663,7 @@ struct AreaTriggerData : public IsUpdateFieldStructureTag, public HasChangesMask OptionalUpdateField ForcedPositionAndRotation; UpdateField PathType; UpdateField ShapeType; + UpdateField PeriodModifier; VariantUpdateField<32, 34, UF::AreaTriggerSplineCalculator, UF::AreaTriggerOrbit, UF::AreaTriggerMovementScript> PathData; VariantUpdateField<32, 35, UF::AreaTriggerSphere, UF::AreaTriggerBox, UF::AreaTriggerPolygon, UF::AreaTriggerCylinder, UF::AreaTriggerDisk, UF::AreaTriggerBoundedPlane> ShapeData; @@ -1561,14 +1688,14 @@ struct SceneObjectData : public IsUpdateFieldStructureTag, public HasChangesMask struct ConversationLine : public IsUpdateFieldStructureTag { - int32 ConversationLineID; - int32 BroadcastTextID; - uint32 StartTime; + int32 ConversationLineID = 0; + int32 BroadcastTextID = 0; + uint32 StartTime = 0; struct StartTimeTag : ViewerDependentValueTag {}; - int32 UiCameraID; - uint8 ActorIndex; - uint8 Flags; - uint8 ChatType; + int32 UiCameraID = 0; + uint8 ActorIndex = 0; + uint8 Flags = 0; + uint8 ChatType = 0; void WriteCreate(ByteBuffer& data, Conversation const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Conversation const* owner, Player const* receiver) const; @@ -1578,12 +1705,12 @@ struct ConversationLine : public IsUpdateFieldStructureTag struct ConversationActor : public IsUpdateFieldStructureTag { - uint32 CreatureID; - uint32 CreatureDisplayInfoID; + uint32 CreatureID = 0; + uint32 CreatureDisplayInfoID = 0; ObjectGuid ActorGUID; - int32 Id; - uint32 Type; - uint32 NoActorObject; + int32 Id = 0; + uint32 Type = 0; + uint32 NoActorObject = 0; void WriteCreate(ByteBuffer& data, Conversation const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Conversation const* owner, Player const* receiver) const; @@ -1630,21 +1757,22 @@ struct VendorData : public IsUpdateFieldStructureTag, public HasChangesMask<2> void ClearChangesMask(); }; -struct DecorStoragePersistedDataDyes : public IsUpdateFieldStructureTag +struct DecorDyeSlots : public IsUpdateFieldStructureTag { - std::array DyeColorID; + std::array DyeColorID = {}; void WriteCreate(ByteBuffer& data, BaseEntity const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, BaseEntity const* owner, Player const* receiver) const; - bool operator==(DecorStoragePersistedDataDyes const& right) const; - bool operator!=(DecorStoragePersistedDataDyes const& right) const { return !(*this == right); } + bool operator==(DecorDyeSlots const& right) const; + bool operator!=(DecorDyeSlots const& right) const { return !(*this == right); } }; -struct DecorStoragePersistedData : public IsUpdateFieldStructureTag, public HasChangesMask<3> +struct DecorStoragePersistedData : public IsUpdateFieldStructureTag, public HasChangesMask<4> { UpdateField HouseGUID; - OptionalUpdateField Dyes; - UpdateField Field_20; + OptionalUpdateField DyeSlots; + UpdateField SourceType; + UpdateField SourceValue; void WriteCreate(ByteBuffer& data, BaseEntity const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, BaseEntity const* owner, Player const* receiver) const; @@ -1814,9 +1942,12 @@ struct PlayerMirrorHouse : public IsUpdateFieldStructureTag { ObjectGuid Guid; ObjectGuid NeighborhoodGUID; - uint32 Level; - uint32 Favor; - int32 Field_28; + uint32 Level = 0; + uint32 Favor = 0; + uint32 InitiativeFavor = 0; + int32 InitiativeCycleID = 0; + int32 MapID = 0; + int32 PlotID = 0; void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; @@ -1837,8 +1968,8 @@ struct NeighborhoodCharterSignature : public IsUpdateFieldStructureTag struct NeighborhoodCharter : public IsUpdateFieldStructureTag { std::vector Signatures; - int32 Field_0; - int32 Field_4; + int32 Field_0 = 0; + int32 Field_4 = 0; std::string Name; void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; @@ -1847,6 +1978,18 @@ struct NeighborhoodCharter : public IsUpdateFieldStructureTag bool operator!=(NeighborhoodCharter const& right) const { return !(*this == right); } }; +struct NeighborhoodOwnershipTransfer : public IsUpdateFieldStructureTag +{ + ObjectGuid NeighborhoodGUID; + ObjectGuid CurrentOwnerGUID; + std::string NeighborhoodName; + + 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==(NeighborhoodOwnershipTransfer const& right) const; + bool operator!=(NeighborhoodOwnershipTransfer const& right) const { return !(*this == right); } +}; + struct PlayerHouseInfoComponentData : public IsUpdateFieldStructureTag, public HasChangesMask<9> { DynamicUpdateField Field_8; @@ -1854,9 +1997,9 @@ struct PlayerHouseInfoComponentData : public IsUpdateFieldStructureTag, public H DynamicUpdateField Field_88; DynamicUpdateField Field_C0; DynamicUpdateField Field_F8; - UpdateField Field_40; - UpdateField Charter; - UpdateField Field_178; + UpdateField Charter; + UpdateField Field_178; + UpdateField NeighborhoodOwnershipTransfer; void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Player const* owner, Player const* receiver) const; void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Player const* owner, Player const* receiver) const; @@ -1896,6 +2039,70 @@ struct HousingFixtureData : public IsUpdateFieldStructureTag, public HasChangesM void ClearChangesMask(); }; +struct PlayerInitiativeInfo : public IsUpdateFieldStructureTag, public HasChangesMask<7> +{ + UpdateField RemainingDuration; + UpdateField CurrentInitiativeID; + UpdateField CurrentMilestoneID; + UpdateField CurrentCycleID; + UpdateField ProgressRequired; + UpdateField CurrentProgress; + UpdateField PlayerTotalContribution; + + void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; + void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + void ClearChangesMask(); +}; + +struct PlayerInitiativeTaskInfo : public IsUpdateFieldStructureTag, public HasChangesMask<2> +{ + UpdateField TaskID; + UpdateField TimesCompleted; + + void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; + void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + void ClearChangesMask(); +}; + +struct NICompletedMilestoneEntry : public IsUpdateFieldStructureTag +{ + uint32 MilestoneID = 0; + int64 AwardDate = 0; + + 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==(NICompletedMilestoneEntry const& right) const; + bool operator!=(NICompletedMilestoneEntry const& right) const { return !(*this == right); } +}; + +struct NICompletedInitiativesEntry : public IsUpdateFieldStructureTag +{ + bool Completed = false; + std::vector CompletedMilestones; + uint32 InitiativeID = 0; + + 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==(NICompletedInitiativesEntry const& right) const; + bool operator!=(NICompletedInitiativesEntry const& right) const { return !(*this == right); } +}; + +struct PlayerInitiativeComponentData : public IsUpdateFieldStructureTag, public HasChangesMask<6> +{ + DynamicUpdateField CompletedTasks; + DynamicUpdateField CompletedInitiatives; + UpdateField NeighborhoodGUID; + UpdateField InitiativeInfo; + SetUpdateField Houses; + + void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Player const* owner, Player const* receiver) const; + void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Player const* owner, Player const* receiver) const; + void WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Player const* owner, Player const* receiver) const; + static void AppendAllowedFieldsMaskForFlag(Mask& allowedMaskForTarget, EnumFlag fieldVisibilityFlags); + static void FilterDisallowedFieldsMaskForFlag(Mask& changesMask, EnumFlag fieldVisibilityFlags); + void ClearChangesMask(); +}; + } #endif // TRINITYCORE_UPDATE_FIELDS_H diff --git a/src/server/game/Entities/Object/Updates/ViewerDependentValues.h b/src/server/game/Entities/Object/Updates/ViewerDependentValues.h index dacf78b0b3..4420584663 100644 --- a/src/server/game/Entities/Object/Updates/ViewerDependentValues.h +++ b/src/server/game/Entities/Object/Updates/ViewerDependentValues.h @@ -620,7 +620,7 @@ public: { value_type flags = gameObjectData->Flags; if (gameObject->GetGoType() == GAMEOBJECT_TYPE_CHEST) - if (gameObject->GetGOInfo()->chest.usegrouplootrules && !gameObject->IsLootAllowedFor(receiver)) + if (gameObject->GetGOInfo()->IsUsingGroupLootRules() && !gameObject->IsLootAllowedFor(receiver)) flags |= GO_FLAG_LOCKED | GO_FLAG_NOT_SELECTABLE; return flags; diff --git a/src/server/game/Entities/Object/Updates/WowCSEntityDefinitions.h b/src/server/game/Entities/Object/Updates/WowCSEntityDefinitions.h index d8e501e20b..d6c43dff92 100644 --- a/src/server/game/Entities/Object/Updates/WowCSEntityDefinitions.h +++ b/src/server/game/Entities/Object/Updates/WowCSEntityDefinitions.h @@ -55,6 +55,7 @@ enum class EntityFragment : uint8 PlayerHouseInfoComponent_C = 32, // UPDATEABLE, INDIRECT, FHousingStorage_C = 33, // UPDATEABLE, FHousingFixture_C = 34, // UPDATEABLE, + PlayerInitiativeComponent_C = 37, // UPDATEABLE, INDIRECT, Tag_Item = 200, // TAG, Tag_Container = 201, // TAG, Tag_AzeriteEmpoweredItem = 202, // TAG, @@ -97,7 +98,8 @@ inline constexpr bool IsUpdateableFragment(EntityFragment frag) || frag == EntityFragment::FMirroredPositionData_C || frag == EntityFragment::PlayerHouseInfoComponent_C || frag == EntityFragment::FHousingStorage_C - || frag == EntityFragment::FHousingFixture_C; + || frag == EntityFragment::FHousingFixture_C + || frag == EntityFragment::PlayerInitiativeComponent_C; } inline constexpr bool IsIndirectFragment(EntityFragment frag) @@ -105,7 +107,8 @@ inline constexpr bool IsIndirectFragment(EntityFragment frag) return frag == EntityFragment::CGObject || frag == EntityFragment::FPlayerOwnershipLink || frag == EntityFragment::CActor - || frag == EntityFragment::PlayerHouseInfoComponent_C; + || frag == EntityFragment::PlayerHouseInfoComponent_C + || frag == EntityFragment::PlayerInitiativeComponent_C; } template @@ -146,9 +149,10 @@ struct EntityFragmentsHolder EntityFragment::End, EntityFragment::End, EntityFragment::End, EntityFragment::End }; - template struct UpdateableFragments { + static constexpr std::size_t N = 4; + std::array Ids = { EntityFragment::End, EntityFragment::End, EntityFragment::End, EntityFragment::End @@ -159,7 +163,7 @@ struct EntityFragmentsHolder std::array IsChanged = { }; }; - UpdateableFragments<4> Updateable; + UpdateableFragments Updateable; uint8 Count = 0; bool IdsChanged = false; diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 0c78b827c8..d66797464f 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -8814,7 +8814,7 @@ void Player::CastItemCombatSpell(DamageInfo const& damageInfo, Item* item, ItemT } } -void Player::CastItemUseSpell(Item* item, SpellCastTargets const& targets, ObjectGuid castCount, int32* misc) +void Player::CastItemUseSpell(Item* item, SpellCastTargets const& targets, ObjectGuid castCount, std::array const& misc) { if (!item->GetTemplate()->HasFlag(ITEM_FLAG_LEGACY)) { @@ -8841,8 +8841,7 @@ void Player::CastItemUseSpell(Item* item, SpellCastTargets const& targets, Objec spell->m_fromClient = true; spell->m_CastItem = item; - spell->m_misc.Raw.Data[0] = misc[0]; - spell->m_misc.Raw.Data[1] = misc[1]; + std::ranges::copy(misc, std::ranges::begin(spell->m_misc.Raw.Data)); spell->prepare(targets); return; } @@ -8876,8 +8875,7 @@ void Player::CastItemUseSpell(Item* item, SpellCastTargets const& targets, Objec spell->m_fromClient = true; spell->m_CastItem = item; - spell->m_misc.Raw.Data[0] = misc[0]; - spell->m_misc.Raw.Data[1] = misc[1]; + std::ranges::copy(misc, std::ranges::begin(spell->m_misc.Raw.Data)); spell->prepare(targets); return; } @@ -31030,8 +31028,7 @@ void Player::ExecutePendingSpellCastRequest() SendDirectMessage(spellPrepare.Write()); spell->m_fromClient = true; - spell->m_misc.Raw.Data[0] = _pendingSpellCastRequest->CastRequest.Misc[0]; - spell->m_misc.Raw.Data[1] = _pendingSpellCastRequest->CastRequest.Misc[1]; + std::ranges::copy(_pendingSpellCastRequest->CastRequest.Misc, std::ranges::begin(spell->m_misc.Raw.Data)); spell->prepare(targets); _pendingSpellCastRequest = nullptr; diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 19427470c1..c19a4ef224 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -2485,7 +2485,7 @@ class TC_GAME_API Player final : public Unit, public GridObject void CastItemCombatSpell(DamageInfo const& damageInfo); void CastItemCombatSpell(DamageInfo const& damageInfo, Item* item, ItemTemplate const* proto); - void CastItemUseSpell(Item* item, SpellCastTargets const& targets, ObjectGuid castCount, int32* misc); + void CastItemUseSpell(Item* item, SpellCastTargets const& targets, ObjectGuid castCount, std::array const& misc); void ApplyItemLootedSpell(Item* item, bool apply); void ApplyItemLootedSpell(ItemTemplate const* itemTemplate); diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index f51da1de0f..def713ce45 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -13902,18 +13902,18 @@ bool Unit::SetCanAdvFly(bool enable) bool Unit::SetMoveCantSwim(bool cantSwim) { - if (cantSwim == HasExtraUnitMovementFlag2(MOVEMENTFLAG3_CANT_SWIM)) + if (cantSwim == HasExtraUnitMovementFlag2(MOVEMENTFLAG3_CANNOT_SWIM)) return false; if (cantSwim) - AddExtraUnitMovementFlag2(MOVEMENTFLAG3_CANT_SWIM); + AddExtraUnitMovementFlag2(MOVEMENTFLAG3_CANNOT_SWIM); else - RemoveExtraUnitMovementFlag2(MOVEMENTFLAG3_CANT_SWIM); + RemoveExtraUnitMovementFlag2(MOVEMENTFLAG3_CANNOT_SWIM); static OpcodeServer const cantSwimOpcodeTable[2] = { - SMSG_MOVE_UNSET_CANT_SWIM, - SMSG_MOVE_SET_CANT_SWIM, + SMSG_MOVE_UNSET_CANNOT_SWIM, + SMSG_MOVE_SET_CANNOT_SWIM, }; if (Player* playerMover = GetPlayerMovingMe()) diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index 8964e1408d..b1241c66d4 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -174,10 +174,11 @@ enum WeaponDamageRange enum UnitMods { - UNIT_MOD_STAT_STRENGTH, // UNIT_MOD_STAT_STRENGTH..UNIT_MOD_STAT_INTELLECT must be in existed order, it's accessed by index values of Stats enum. + UNIT_MOD_STAT_STRENGTH, // UNIT_MOD_STAT_STRENGTH..UNIT_MOD_STAT_SPIRIT must be in existed order, it's accessed by index values of Stats enum. UNIT_MOD_STAT_AGILITY, UNIT_MOD_STAT_STAMINA, UNIT_MOD_STAT_INTELLECT, + UNIT_MOD_STAT_SPIRIT, UNIT_MOD_HEALTH, UNIT_MOD_MANA, // UNIT_MOD_MANA..UNIT_MOD_PAIN must be listed in existing order, it is accessed by index values of Powers enum. UNIT_MOD_RAGE, @@ -220,13 +221,14 @@ enum UnitMods UNIT_MOD_END, // synonyms UNIT_MOD_STAT_START = UNIT_MOD_STAT_STRENGTH, - UNIT_MOD_STAT_END = UNIT_MOD_STAT_INTELLECT + 1, + UNIT_MOD_STAT_END = UNIT_MOD_STAT_SPIRIT + 1, UNIT_MOD_RESISTANCE_START = UNIT_MOD_ARMOR, UNIT_MOD_RESISTANCE_END = UNIT_MOD_RESISTANCE_ARCANE + 1, UNIT_MOD_POWER_START = UNIT_MOD_MANA, UNIT_MOD_POWER_END = UNIT_MOD_ALTERNATE_MOUNT + 1 }; +static_assert(UNIT_MOD_STAT_END - UNIT_MOD_STAT_START == MAX_STATS, "UnitMods stats section does not match Stats enum!"); static_assert(UNIT_MOD_POWER_END - UNIT_MOD_POWER_START == MAX_POWERS, "UnitMods powers section does not match Powers enum!"); enum BaseModGroup diff --git a/src/server/game/Entities/Unit/UnitDefines.h b/src/server/game/Entities/Unit/UnitDefines.h index 540c4111c9..ae194f3d59 100644 --- a/src/server/game/Entities/Unit/UnitDefines.h +++ b/src/server/game/Entities/Unit/UnitDefines.h @@ -471,7 +471,7 @@ enum MovementFlags3 : uint32 MOVEMENTFLAG3_DISABLE_INERTIA = 0x00000001, MOVEMENTFLAG3_CAN_ADV_FLY = 0x00000002, MOVEMENTFLAG3_ADV_FLYING = 0x00000004, - MOVEMENTFLAG3_CANT_SWIM = 0x00002000, + MOVEMENTFLAG3_CANNOT_SWIM = 0x00002000, MOVEMENTFLAG3_CAN_DRIVE = 0x00004000, MOVEMENTFLAG3_DRIVING_FORWARD = 0x00008000, MOVEMENTFLAG3_DRIVING_BACKWARD = 0x00010000, diff --git a/src/server/game/Entities/Unit/enuminfo_UnitDefines.cpp b/src/server/game/Entities/Unit/enuminfo_UnitDefines.cpp index fccf202946..5ba09cba6e 100644 --- a/src/server/game/Entities/Unit/enuminfo_UnitDefines.cpp +++ b/src/server/game/Entities/Unit/enuminfo_UnitDefines.cpp @@ -851,7 +851,7 @@ TC_API_EXPORT EnumText EnumUtils::ToString(MovementFlags3 value) case MOVEMENTFLAG3_DISABLE_INERTIA: return { "MOVEMENTFLAG3_DISABLE_INERTIA", "MOVEMENTFLAG3_DISABLE_INERTIA", "" }; case MOVEMENTFLAG3_CAN_ADV_FLY: return { "MOVEMENTFLAG3_CAN_ADV_FLY", "MOVEMENTFLAG3_CAN_ADV_FLY", "" }; case MOVEMENTFLAG3_ADV_FLYING: return { "MOVEMENTFLAG3_ADV_FLYING", "MOVEMENTFLAG3_ADV_FLYING", "" }; - case MOVEMENTFLAG3_CANT_SWIM: return { "MOVEMENTFLAG3_CANT_SWIM", "MOVEMENTFLAG3_CANT_SWIM", "" }; + case MOVEMENTFLAG3_CANNOT_SWIM: return { "MOVEMENTFLAG3_CANNOT_SWIM", "MOVEMENTFLAG3_CANNOT_SWIM", "" }; case MOVEMENTFLAG3_CAN_DRIVE: return { "MOVEMENTFLAG3_CAN_DRIVE", "MOVEMENTFLAG3_CAN_DRIVE", "" }; case MOVEMENTFLAG3_DRIVING_FORWARD: return { "MOVEMENTFLAG3_DRIVING_FORWARD", "MOVEMENTFLAG3_DRIVING_FORWARD", "" }; case MOVEMENTFLAG3_DRIVING_BACKWARD: return { "MOVEMENTFLAG3_DRIVING_BACKWARD", "MOVEMENTFLAG3_DRIVING_BACKWARD", "" }; @@ -871,7 +871,7 @@ TC_API_EXPORT MovementFlags3 EnumUtils::FromIndex(size_t index) case 1: return MOVEMENTFLAG3_DISABLE_INERTIA; case 2: return MOVEMENTFLAG3_CAN_ADV_FLY; case 3: return MOVEMENTFLAG3_ADV_FLYING; - case 4: return MOVEMENTFLAG3_CANT_SWIM; + case 4: return MOVEMENTFLAG3_CANNOT_SWIM; case 5: return MOVEMENTFLAG3_CAN_DRIVE; case 6: return MOVEMENTFLAG3_DRIVING_FORWARD; case 7: return MOVEMENTFLAG3_DRIVING_BACKWARD; @@ -888,7 +888,7 @@ TC_API_EXPORT size_t EnumUtils::ToIndex(MovementFlags3 value) case MOVEMENTFLAG3_DISABLE_INERTIA: return 1; case MOVEMENTFLAG3_CAN_ADV_FLY: return 2; case MOVEMENTFLAG3_ADV_FLYING: return 3; - case MOVEMENTFLAG3_CANT_SWIM: return 4; + case MOVEMENTFLAG3_CANNOT_SWIM: return 4; case MOVEMENTFLAG3_CAN_DRIVE: return 5; case MOVEMENTFLAG3_DRIVING_FORWARD: return 6; case MOVEMENTFLAG3_DRIVING_BACKWARD: return 7; diff --git a/src/server/game/Events/GameEventMgr.cpp b/src/server/game/Events/GameEventMgr.cpp index 1ac1222387..058ea7d39c 100644 --- a/src/server/game/Events/GameEventMgr.cpp +++ b/src/server/game/Events/GameEventMgr.cpp @@ -1698,7 +1698,7 @@ void GameEventMgr::SetHolidayEventTime(GameEventData& event) for (uint8 i = 0; i < stageIndex; ++i) stageOffset += Hours(holiday->Duration[i]); - switch (holiday->CalendarFilterType) + switch (static_castCalendarFilterType)>>(holiday->CalendarFilterType)) { case -1: // Yearly event.occurence = YEAR / MINUTE; // Not all too useful diff --git a/src/server/game/Globals/AreaTriggerDataStore.h b/src/server/game/Globals/AreaTriggerDataStore.h index b13315a3ab..4925106138 100644 --- a/src/server/game/Globals/AreaTriggerDataStore.h +++ b/src/server/game/Globals/AreaTriggerDataStore.h @@ -24,7 +24,7 @@ class AreaTriggerTemplate; class AreaTriggerCreateProperties; -enum Difficulty : uint8; +enum Difficulty : int16; struct AreaTriggerId; struct AreaTriggerSpawn; diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index f4b6c19c6a..5078eabc59 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -942,7 +942,7 @@ void ObjectMgr::LoadCreatureTemplateDifficulty() Field* fields = result->Fetch(); uint32 entry = fields[0].GetUInt32(); - Difficulty difficulty = Difficulty(fields[1].GetUInt8()); + Difficulty difficulty = Difficulty(fields[1].GetInt32()); auto itr = _creatureTemplateStore.find(entry); if (itr == _creatureTemplateStore.end()) @@ -951,7 +951,7 @@ void ObjectMgr::LoadCreatureTemplateDifficulty() continue; } - CreatureDifficulty creatureDifficulty; + CreatureDifficulty& creatureDifficulty = itr->second.difficultyStore.try_emplace(difficulty).first->second; creatureDifficulty.DeltaLevelMin = fields[2].GetInt16(); creatureDifficulty.DeltaLevelMax = fields[3].GetInt16(); creatureDifficulty.ContentTuningID = fields[4].GetInt32(); @@ -990,8 +990,6 @@ void ObjectMgr::LoadCreatureTemplateDifficulty() creatureDifficulty.GoldMax = creatureDifficulty.GoldMin; } - itr->second.difficultyStore[difficulty] = creatureDifficulty; - ++count; } while (result->NextRow()); @@ -4256,7 +4254,7 @@ void ObjectMgr::LoadPlayerInfo() uint32 oldMSTime = getMSTime(); - QueryResult raceStatsResult = WorldDatabase.Query("SELECT race, str, agi, sta, inte FROM player_racestats"); + QueryResult raceStatsResult = WorldDatabase.Query("SELECT race, str, agi, sta, inte, spi FROM player_racestats"); if (!raceStatsResult) { @@ -4280,8 +4278,8 @@ void ObjectMgr::LoadPlayerInfo() } while (raceStatsResult->NextRow()); - // 0 1 2 3 4 5 - QueryResult result = WorldDatabase.Query("SELECT class, level, str, agi, sta, inte FROM player_classlevelstats"); + // 0 1 2 3 4 5 6 + QueryResult result = WorldDatabase.Query("SELECT class, level, str, agi, sta, inte, spi FROM player_classlevelstats"); if (!result) { @@ -4579,37 +4577,21 @@ void ObjectMgr::LoadQuests() _exclusiveQuestGroups.clear(); QueryResult result = WorldDatabase.Query("SELECT " - //0 1 2 3 4 5 6 7 8 9 "ID, QuestType, QuestPackageID, ContentTuningID, QuestSortID, QuestInfoID, SuggestedGroupNum, RewardNextQuest, RewardXPDifficulty, RewardXPMultiplier, " - //10 11 12 13 14 15 16 - "RewardMoneyDifficulty, RewardMoneyMultiplier, RewardBonusMoney, RewardSpell, RewardHonor, RewardKillHonor, StartItem, " - //17 18 19 20 21 22 23 + "RewardMoneyDifficulty, RewardMoneyMultiplier, RewardBonusMoney, RewardSpell, RewardHonor, RewardKillHonor, RewardFavor, StartItem, " "RewardArtifactXPDifficulty, RewardArtifactXPMultiplier, RewardArtifactCategoryID, Flags, FlagsEx, FlagsEx2, FlagsEx3, " - //24 25 26 27 28 29 30 31 "RewardItem1, RewardAmount1, ItemDrop1, ItemDropQuantity1, RewardItem2, RewardAmount2, ItemDrop2, ItemDropQuantity2, " - //32 33 34 35 36 37 38 39 "RewardItem3, RewardAmount3, ItemDrop3, ItemDropQuantity3, RewardItem4, RewardAmount4, ItemDrop4, ItemDropQuantity4, " - //40 41 42 43 44 45 "RewardChoiceItemID1, RewardChoiceItemQuantity1, RewardChoiceItemDisplayID1, RewardChoiceItemID2, RewardChoiceItemQuantity2, RewardChoiceItemDisplayID2, " - //46 47 48 49 50 51 "RewardChoiceItemID3, RewardChoiceItemQuantity3, RewardChoiceItemDisplayID3, RewardChoiceItemID4, RewardChoiceItemQuantity4, RewardChoiceItemDisplayID4, " - //52 53 54 55 56 57 "RewardChoiceItemID5, RewardChoiceItemQuantity5, RewardChoiceItemDisplayID5, RewardChoiceItemID6, RewardChoiceItemQuantity6, RewardChoiceItemDisplayID6, " - //58 59 60 61 62 63 64 65 "POIContinent, POIx, POIy, POIPriority, RewardTitle, RewardArenaPoints, RewardSkillLineID, RewardNumSkillUps, " - //66 67 68 69 "PortraitGiver, PortraitGiverMount, PortraitGiverModelSceneID, PortraitTurnIn, " - //70 71 72 73 74 75 76 77 "RewardFactionID1, RewardFactionValue1, RewardFactionOverride1, RewardFactionCapIn1, RewardFactionID2, RewardFactionValue2, RewardFactionOverride2, RewardFactionCapIn2, " - //78 79 80 81 82 83 84 85 "RewardFactionID3, RewardFactionValue3, RewardFactionOverride3, RewardFactionCapIn3, RewardFactionID4, RewardFactionValue4, RewardFactionOverride4, RewardFactionCapIn4, " - //86 87 88 89 90 "RewardFactionID5, RewardFactionValue5, RewardFactionOverride5, RewardFactionCapIn5, RewardFactionFlags, " - //91 92 93 94 95 96 97 98 "RewardCurrencyID1, RewardCurrencyQty1, RewardCurrencyID2, RewardCurrencyQty2, RewardCurrencyID3, RewardCurrencyQty3, RewardCurrencyID4, RewardCurrencyQty4, " - //99 100 101 102 103 104 105 106 107 "AcceptedSoundKitID, CompleteSoundKitID, AreaGroupID, TimeAllowed, AllowableRaces, ResetByScheduler, Expansion, ManagedWorldStateID, QuestSessionBonus, " - //108 109 110 111 112 113 114 115 116 "LogTitle, LogDescription, QuestDescription, AreaDescription, PortraitGiverText, PortraitGiverName, PortraitTurnInText, PortraitTurnInName, QuestCompletionLog " "FROM quest_template"); if (!result) @@ -4673,8 +4655,8 @@ void ObjectMgr::LoadQuests() // 0 1 { "QuestId, RewardMailSenderEntry", "quest_mail_sender", "", "mail sender entries", &Quest::LoadQuestMailSender }, - // 0 1 2 3 4 5 6 7 8 9 10 11 12 - { "qo.QuestID, qo.ID, qo.Type, qo.StorageIndex, qo.ObjectID, qo.Amount, qo.SecondaryAmount, qo.Flags, qo.Flags2, qo.ProgressBarWeight, qo.ParentObjectiveID, qo.Visible, qo.Description, " + // 0 1 2 3 4 5 6 7 8 9 10 11 12 + { "qo.QuestID, qo.ID, qo.Type, qo.StorageIndex, qo.ObjectID, qo.Amount, qo.ConditionalAmount, qo.Flags, qo.Flags2, qo.ProgressBarWeight, qo.ParentObjectiveID, qo.Visible, qo.Description, " // 13 14 15 16 17 "qoce.GameEventID, qoce.SpellID, qoce.ConversationID, qoce.UpdatePhaseShift, qoce.UpdateZoneAuras", "quest_objectives qo", "LEFT JOIN quest_objectives_completion_effect qoce ON qo.ID = qoce.ObjectiveID ORDER BY `Order` ASC, StorageIndex ASC", "quest objectives", &Quest::LoadQuestObjective }, @@ -7295,8 +7277,8 @@ void ObjectMgr::LoadAccessRequirements() continue; } - uint32 difficulty = fields[1].GetUInt8(); - if (!sDB2Manager.GetMapDifficultyData(mapid, Difficulty(difficulty))) + Difficulty difficulty = Difficulty(fields[1].GetInt32()); + if (!sDB2Manager.GetMapDifficultyData(mapid, difficulty)) { TC_LOG_ERROR("sql.sql", "Map {} referenced in `access_requirement` does not have difficulty {}, skipped", mapid, difficulty); continue; @@ -7743,8 +7725,6 @@ void ObjectMgr::LoadGameObjectTemplate() if (got.chest.open) CheckGOLockId(&got, got.chest.open, 0); - CheckGOConsumable(&got, got.chest.consumable, 3); - if (got.chest.linkedTrap) // linked trap CheckGOLinkedTrapId(&got, got.chest.linkedTrap, 7); break; @@ -7844,11 +7824,11 @@ void ObjectMgr::LoadGameObjectTemplate() case GAMEOBJECT_TYPE_BARBER_CHAIR: //32 CheckAndFixGOChairHeightId(&got, got.barberChair.chairheight, 0); - if (got.barberChair.SitAnimKit && !sAnimKitStore.LookupEntry(got.barberChair.SitAnimKit)) + if (got.barberChair.CustomSitAnimKit && !sAnimKitStore.LookupEntry(got.barberChair.CustomSitAnimKit)) { TC_LOG_ERROR("sql.sql", "GameObject (Entry: {} GoType: {}) have data2 = {} but AnimKit.dbc (Id: {}) not exist, set to 0.", - entry, got.type, got.barberChair.SitAnimKit, got.barberChair.SitAnimKit); - got.barberChair.SitAnimKit = 0; + entry, got.type, got.barberChair.CustomSitAnimKit, got.barberChair.CustomSitAnimKit); + got.barberChair.CustomSitAnimKit = 0; } break; case GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING: @@ -10905,7 +10885,7 @@ void ObjectMgr::LoadCreatureQuestItems() Field* fields = result->Fetch(); uint32 entry = fields[0].GetUInt32(); - Difficulty difficulty = Difficulty(fields[1].GetUInt8()); + Difficulty difficulty = Difficulty(fields[1].GetInt32()); uint32 item = fields[2].GetUInt32(); uint32 idx = fields[3].GetUInt32(); @@ -10996,7 +10976,7 @@ void ObjectMgr::LoadCreatureStaticFlagsOverride() Field* fields = result->Fetch(); ObjectGuid::LowType spawnId = fields[0].GetUInt64(); - Difficulty difficultyId = static_cast(fields[1].GetUInt8()); + Difficulty difficultyId = static_cast(fields[1].GetInt32()); CreatureData const* creatureData = GetCreatureData(spawnId); if (!creatureData) @@ -11008,7 +10988,7 @@ void ObjectMgr::LoadCreatureStaticFlagsOverride() // DIFFICULTY_NONE is always a valid fallback if (difficultyId != DIFFICULTY_NONE) { - if (std::find(creatureData->spawnDifficulties.begin(), creatureData->spawnDifficulties.end(), difficultyId) == creatureData->spawnDifficulties.end()) + if (!advstd::ranges::contains(creatureData->spawnDifficulties, difficultyId)) { TC_LOG_ERROR("sql.sql", "Table `creature_static_flags_override` has data for a creature that is not available for the specified DifficultyId (SpawnId: {}, DifficultyId: {}), skipped", spawnId, difficultyId); continue; diff --git a/src/server/game/Handlers/GroupHandler.cpp b/src/server/game/Handlers/GroupHandler.cpp index 617850957a..fbc8e2010a 100644 --- a/src/server/game/Handlers/GroupHandler.cpp +++ b/src/server/game/Handlers/GroupHandler.cpp @@ -578,18 +578,20 @@ void WorldSession::HandleReadyCheckResponseOpcode(WorldPackets::Party::ReadyChec void WorldSession::HandleRequestPartyMemberStatsOpcode(WorldPackets::Party::RequestPartyMemberStats& packet) { - WorldPackets::Party::PartyMemberFullState partyMemberStats; - - Player* player = ObjectAccessor::FindConnectedPlayer(packet.TargetGUID); - if (!player) + for (ObjectGuid const& target : packet.Targets) { - partyMemberStats.MemberGuid = packet.TargetGUID; - partyMemberStats.MemberStats.Status = MEMBER_STATUS_OFFLINE; + WorldPackets::Party::PartyMemberFullState partyMemberStats; + if (Player* player = ObjectAccessor::FindConnectedPlayer(target)) + { + partyMemberStats.Initialize(player); + } + else + { + partyMemberStats.MemberGuid = target; + partyMemberStats.MemberStats.Status = MEMBER_STATUS_OFFLINE; + } + SendPacket(partyMemberStats.Write()); } - else - partyMemberStats.Initialize(player); - - SendPacket(partyMemberStats.Write()); } void WorldSession::HandleRequestRaidInfoOpcode(WorldPackets::Party::RequestRaidInfo& /*packet*/) diff --git a/src/server/game/Handlers/PetHandler.cpp b/src/server/game/Handlers/PetHandler.cpp index bd31cf6511..f7a76ee198 100644 --- a/src/server/game/Handlers/PetHandler.cpp +++ b/src/server/game/Handlers/PetHandler.cpp @@ -729,8 +729,7 @@ void WorldSession::HandlePetCastSpellOpcode(WorldPackets::Spells::PetCastSpell& Spell* spell = new Spell(caster, spellInfo, triggerCastFlags); spell->m_fromClient = true; - spell->m_misc.Raw.Data[0] = petCastSpell.Cast.Misc[0]; - spell->m_misc.Raw.Data[1] = petCastSpell.Cast.Misc[1]; + std::ranges::copy(petCastSpell.Cast.Misc, std::ranges::begin(spell->m_misc.Raw.Data)); spell->m_targets = targets; SpellCastResult result = spell->CheckPetCast(nullptr); diff --git a/src/server/game/Handlers/ToyHandler.cpp b/src/server/game/Handlers/ToyHandler.cpp index 5c5be306ce..bec90f38c7 100644 --- a/src/server/game/Handlers/ToyHandler.cpp +++ b/src/server/game/Handlers/ToyHandler.cpp @@ -90,8 +90,7 @@ void WorldSession::HandleUseToy(WorldPackets::Toy::UseToy& packet) spell->m_fromClient = true; spell->m_castItemEntry = itemId; - spell->m_misc.Raw.Data[0] = packet.Cast.Misc[0]; - spell->m_misc.Raw.Data[1] = packet.Cast.Misc[1]; + std::ranges::copy(packet.Cast.Misc, std::ranges::begin(spell->m_misc.Raw.Data)); spell->m_castFlagsEx |= CAST_FLAG_EX_USE_TOY_SPELL; spell->prepare(targets); } diff --git a/src/server/game/Instances/InstanceLockMgr.h b/src/server/game/Instances/InstanceLockMgr.h index 40fc27e05b..c270baa85b 100644 --- a/src/server/game/Instances/InstanceLockMgr.h +++ b/src/server/game/Instances/InstanceLockMgr.h @@ -56,7 +56,7 @@ struct DungeonEncounterEntry; struct MapEntry; struct MapDifficultyEntry; -enum Difficulty : uint8; +enum Difficulty : int16; enum TransferAbortReason : uint32; #define INSTANCE_ID_HIGH_MASK 0x1F440000 diff --git a/src/server/game/Instances/InstanceScript.h b/src/server/game/Instances/InstanceScript.h index a83413be2c..9024bdce5e 100644 --- a/src/server/game/Instances/InstanceScript.h +++ b/src/server/game/Instances/InstanceScript.h @@ -49,7 +49,7 @@ struct DungeonEncounterEntry; struct InstanceSpawnGroupInfo; enum class CriteriaType : int16; enum class CriteriaStartEvent : uint8; -enum Difficulty : uint8; +enum Difficulty : int16; enum EncounterFrameType { diff --git a/src/server/game/Maps/Map.h b/src/server/game/Maps/Map.h index 6c5147727d..15793ba517 100644 --- a/src/server/game/Maps/Map.h +++ b/src/server/game/Maps/Map.h @@ -77,7 +77,7 @@ struct SummonPropertiesEntry; struct UpdateAdditionalSaveDataEvent; struct UpdateBossStateSaveDataEvent; class Transport; -enum Difficulty : uint8; +enum Difficulty : int16; enum WeatherState : uint32; enum class ItemContext : uint8; diff --git a/src/server/game/Maps/MapManager.h b/src/server/game/Maps/MapManager.h index 54228ddb7c..c31f1bb8e8 100644 --- a/src/server/game/Maps/MapManager.h +++ b/src/server/game/Maps/MapManager.h @@ -37,7 +37,7 @@ class InstanceLock; class InstanceMap; class Map; class Player; -enum Difficulty : uint8; +enum Difficulty : int16; class TC_GAME_API MapManager { diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h index 15319307a1..36c841c707 100644 --- a/src/server/game/Miscellaneous/SharedDefines.h +++ b/src/server/game/Miscellaneous/SharedDefines.h @@ -280,9 +280,10 @@ enum Stats : uint16 STAT_AGILITY = 1, STAT_STAMINA = 2, STAT_INTELLECT = 3, + STAT_SPIRIT = 4, }; -#define MAX_STATS 4 +#define MAX_STATS 5 // EnumUtils: DESCRIBE THIS enum Powers : int8 @@ -1019,6 +1020,43 @@ enum SpellAttr15 : uint32 SPELL_ATTR15_UNK31 = 0x80000000 // TITLE Unknown attribute 31@Attr15 }; +// EnumUtils: DESCRIBE THIS +enum SpellAttr16 : uint32 +{ + SPELL_ATTR16_UNK0 = 0x00000001, // TITLE Unknown attribute 0@Attr16 + SPELL_ATTR16_UNK1 = 0x00000002, // TITLE Unknown attribute 1@Attr16 + SPELL_ATTR16_UNK2 = 0x00000004, // TITLE Unknown attribute 2@Attr16 + SPELL_ATTR16_UNK3 = 0x00000008, // TITLE Unknown attribute 3@Attr16 + SPELL_ATTR16_UNK4 = 0x00000010, // TITLE Unknown attribute 4@Attr16 + SPELL_ATTR16_UNK5 = 0x00000020, // TITLE Unknown attribute 5@Attr16 + SPELL_ATTR16_UNK6 = 0x00000040, // TITLE Unknown attribute 6@Attr16 + SPELL_ATTR16_UNK7 = 0x00000080, // TITLE Unknown attribute 7@Attr16 + SPELL_ATTR16_UNK8 = 0x00000100, // TITLE Unknown attribute 8@Attr16 + SPELL_ATTR16_UNK9 = 0x00000200, // TITLE Unknown attribute 9@Attr16 + SPELL_ATTR16_UNK10 = 0x00000400, // TITLE Unknown attribute 10@Attr16 + SPELL_ATTR16_UNK11 = 0x00000800, // TITLE Unknown attribute 11@Attr16 + SPELL_ATTR16_UNK12 = 0x00001000, // TITLE Unknown attribute 12@Attr16 + SPELL_ATTR16_UNK13 = 0x00002000, // TITLE Unknown attribute 13@Attr16 + SPELL_ATTR16_UNK14 = 0x00004000, // TITLE Unknown attribute 14@Attr16 + SPELL_ATTR16_UNK15 = 0x00008000, // TITLE Unknown attribute 15@Attr16 + SPELL_ATTR16_UNK16 = 0x00010000, // TITLE Unknown attribute 16@Attr16 + SPELL_ATTR16_UNK17 = 0x00020000, // TITLE Unknown attribute 17@Attr16 + SPELL_ATTR16_UNK18 = 0x00040000, // TITLE Unknown attribute 18@Attr16 + SPELL_ATTR16_UNK19 = 0x00080000, // TITLE Unknown attribute 19@Attr16 + SPELL_ATTR16_UNK20 = 0x00100000, // TITLE Unknown attribute 20@Attr16 + SPELL_ATTR16_UNK21 = 0x00200000, // TITLE Unknown attribute 21@Attr16 + SPELL_ATTR16_UNK22 = 0x00400000, // TITLE Unknown attribute 22@Attr16 + SPELL_ATTR16_UNK23 = 0x00800000, // TITLE Unknown attribute 23@Attr16 + SPELL_ATTR16_UNK24 = 0x01000000, // TITLE Unknown attribute 24@Attr16 + SPELL_ATTR16_UNK25 = 0x02000000, // TITLE Unknown attribute 25@Attr16 + SPELL_ATTR16_UNK26 = 0x04000000, // TITLE Unknown attribute 26@Attr16 + SPELL_ATTR16_UNK27 = 0x08000000, // TITLE Unknown attribute 27@Attr16 + SPELL_ATTR16_UNK28 = 0x10000000, // TITLE Unknown attribute 28@Attr16 + SPELL_ATTR16_UNK29 = 0x20000000, // TITLE Unknown attribute 29@Attr16 + SPELL_ATTR16_UNK30 = 0x40000000, // TITLE Unknown attribute 30@Attr16 + SPELL_ATTR16_UNK31 = 0x80000000 // TITLE Unknown attribute 31@Attr16 +}; + #define MIN_SPECIALIZATION_LEVEL 10 #define MAX_SPECIALIZATIONS 5 #define PET_SPEC_OVERRIDE_CLASS_INDEX MAX_CLASSES @@ -1651,8 +1689,8 @@ enum SpellEffectName SPELL_EFFECT_LEARN_HOUSE_EXTERIOR_COMPONENT = 350, // MiscValue[0] = ExteriorComponent SPELL_EFFECT_LEARN_HOUSE_THEME = 351, // MiscValue[0] = HouseTheme SPELL_EFFECT_LEARN_HOUSE_ROOM_COMPONENT_TEXTURE = 352, // MiscValue[0] = RoomComponentTexture - - // = 354, // MiscValue[0] = NeighborhoodInitiative + SPELL_EFFECT_CREATE_AREATRIGGER_2 = 353, + SPELL_EFFECT_SET_NEIGHBORHOOD_INITIATIVE = 354, // MiscValue[0] = NeighborhoodInitiative TOTAL_SPELL_EFFECTS }; @@ -1982,7 +2020,8 @@ enum SpellCastResult : int32 SPELL_FAILED_ITEM_MOD_APPEARANCE_GROUP_ALREADY_KNOWN = 320, SPELL_FAILED_ITEM_CREATION_DISABLED_FOR_EVENT = 321, SPELL_FAILED_WARBAND_SCENE_ALREADY_KNOWN = 322, - SPELL_FAILED_UNKNOWN = 323, + SPELL_FAILED_TRANSMOG_OUTFIT_ALREADY_KNOWN = 323, + SPELL_FAILED_UNKNOWN = 324, // ok cast value - here in case a future version removes SPELL_FAILED_SUCCESS and we need to use a custom value (not sent to client either way) SPELL_CAST_OK = SPELL_FAILED_SUCCESS // SKIP @@ -8573,14 +8612,26 @@ enum class GameError : uint32 ERR_CHARTER_SIGNATURE_REQUEST_FAILED_GENERIC = 1213, ERR_CHARTER_SYSTEM_REQUEST_FAILED_GENERIC = 1214, ERR_HOUSING_ACTION_UNAVAILABLE = 1215, - ERR_HOUSING_RESULT_MISSING_EXPANSION_ACCESS = 1216, - ERR_HOUSING_RESULT_PERMISSION_DENIED = 1217, - ERR_GUILD_NEIGHBORHOOD_BUILT_HOUSE_S = 1218, - ERR_GUILD_NEIGHBORHOOD_SOLD_HOUSE_S = 1219, - ERR_GUILD_NEIGHBORHOOD_NEW_SUBDIVISION = 1220, - ERR_GUILD_NEIGHBORHOOD_RENAME_S = 1221, - ERR_CHARTER_NEIGHBORHOOD_RENAME = 1222, - ERR_RECENT_ALLY_PIN_SERVER_ERROR = 1223, + ERR_HOUSING_EXTERIOR_FAILSAFE_RESET = 1216, + ERR_HOUSING_RESULT_MISSING_EXPANSION_ACCESS = 1217, + ERR_HOUSING_RESULT_PERMISSION_DENIED = 1218, + ERR_GUILD_NEIGHBORHOOD_BUILT_HOUSE_S = 1219, + ERR_GUILD_NEIGHBORHOOD_SOLD_HOUSE_S = 1220, + ERR_GUILD_NEIGHBORHOOD_NEW_SUBDIVISION = 1221, + ERR_GUILD_NEIGHBORHOOD_RENAME_S = 1222, + ERR_CHARTER_NEIGHBORHOOD_RENAME = 1223, + ERR_CHARTER_SIGNATURE_REMOVED = 1224, + ERR_ENDEAVOR_REWARD_AVAILABLE = 1225, + ERR_HOUSING_RESULT_COSMETIC_OWNER_NOT_IN_GUILD = 1226, + ERR_HOUSING_RESULT_PLOT_NOT_VACANT = 1227, + ERR_HOUSING_RESULT_PLOT_RESERVED = 1228, + ERR_HOUSING_RESULT_MISSING_PRIVATE_NEIGHBORHOOD_INVITE = 1229, + ERR_CHARTER_NEIGHBORHOOD_OWNERSHIP_TRANSFER_SUCCESS = 1230, + ERR_CHARTER_NEIGHBORHOOD_RENAME_NOTIFICATION_S = 1231, + ERR_RECENT_ALLY_PIN_SERVER_ERROR = 1232, + ERR_PVP_TRAINING_GROUNDS_DISABLED = 1233, + ERR_SOLO_JOIN_TRAINING_GROUND = 1234, + ERR_LFG_JOINED_TRAINING_GROUNDS_QUEUE = 1235, }; enum class MountResult : uint32 diff --git a/src/server/game/Quests/QuestDef.cpp b/src/server/game/Quests/QuestDef.cpp index 8a18705f92..47e3cee22b 100644 --- a/src/server/game/Quests/QuestDef.cpp +++ b/src/server/game/Quests/QuestDef.cpp @@ -32,7 +32,7 @@ #include "WorldSession.h" #define QUEST_TEMPLATE_FIELDS (ID)(QuestType)(QuestPackageID)(ContentTuningID)(QuestSortID)(QuestInfoID)(SuggestedGroupNum)(RewardNextQuest)(RewardXPDifficulty)\ - (RewardXPMultiplier)(RewardMoneyDifficulty)(RewardMoneyMultiplier)(RewardBonusMoney)(RewardSpell)(RewardHonor)(RewardKillHonor)(StartItem)\ + (RewardXPMultiplier)(RewardMoneyDifficulty)(RewardMoneyMultiplier)(RewardBonusMoney)(RewardSpell)(RewardHonor)(RewardKillHonor)(RewardFavor)(StartItem)\ (RewardArtifactXPDifficulty)(RewardArtifactXPMultiplier)(RewardArtifactCategoryID)(Flags)(FlagsEx)(FlagsEx2)(FlagsEx3)\ (RewardItem1)(RewardAmount1)(ItemDrop1)(ItemDropQuantity1)(RewardItem2)(RewardAmount2)(ItemDrop2)(ItemDropQuantity2)\ (RewardItem3)(RewardAmount3)(ItemDrop3)(ItemDropQuantity3)(RewardItem4)(RewardAmount4)(ItemDrop4)(ItemDropQuantity4)\ @@ -102,6 +102,7 @@ Quest::Quest(QuestTemplateQueryResult const& questRecord) : _rewardSpell(questRecord.RewardSpell().GetUInt32()), _rewardHonor(questRecord.RewardHonor().GetUInt32()), _rewardKillHonor(questRecord.RewardKillHonor().GetUInt32()), + _rewardFavor(questRecord.RewardFavor().GetInt32()), _rewardArtifactXPDifficulty(questRecord.RewardArtifactXPDifficulty().GetUInt32()), _rewardArtifactXPMultiplier(questRecord.RewardArtifactXPMultiplier().GetFloat()), _rewardArtifactCategoryID(questRecord.RewardArtifactCategoryID().GetUInt32()), @@ -277,7 +278,7 @@ void Quest::LoadQuestObjective(Field* fields) obj.StorageIndex = fields[3].GetInt8(); obj.ObjectID = fields[4].GetInt32(); obj.Amount = fields[5].GetInt32(); - obj.SecondaryAmount = fields[6].GetInt32(); + obj.ConditionalAmount = fields[6].GetInt32(); obj.Flags = fields[7].GetUInt32(); obj.Flags2 = fields[8].GetUInt32(); obj.ProgressBarWeight = fields[9].GetFloat(); @@ -734,6 +735,8 @@ WorldPacket Quest::BuildQueryData(LocaleConstant loc, Player* player) const response.Info.RewardHonor = GetRewHonor(); response.Info.RewardKillHonor = GetRewKillHonor(); + response.Info.RewardFavor = GetRewardFavor(); + response.Info.RewardArtifactXPDifficulty = GetArtifactXPDifficulty(); response.Info.RewardArtifactXPMultiplier = GetArtifactXPMultiplier(); response.Info.RewardArtifactCategoryID = GetArtifactCategoryId(); @@ -795,14 +798,31 @@ WorldPacket Quest::BuildQueryData(LocaleConstant loc, Player* player) const response.Info.RewardHouseRoomIDs = GetRewardHouseRoomIds(); response.Info.RewardHouseDecorIDs = GetRewardRewardHouseDecorIds(); - for (QuestObjective const& questObjective : GetObjectives()) + response.Info.Objectives.resize(GetObjectives().size()); + for (std::size_t i = 0; i < GetObjectives().size(); ++i) { - response.Info.Objectives.push_back(questObjective); + QuestObjective const& questObjective = GetObjectives()[i]; + WorldPackets::Quest::QuestInfoObjective& responseObjective = response.Info.Objectives[i]; + + responseObjective.ID = questObjective.ID; + responseObjective.QuestID = questObjective.QuestID; + responseObjective.Type = questObjective.Type; + responseObjective.StorageIndex = questObjective.StorageIndex; + responseObjective.ObjectID = questObjective.ObjectID; + responseObjective.Amount = questObjective.Amount; + responseObjective.ConditionalAmount = questObjective.ConditionalAmount; + responseObjective.Flags = questObjective.Flags; + responseObjective.Flags2 = questObjective.Flags2; + responseObjective.ProgressBarWeight = questObjective.ProgressBarWeight; + responseObjective.ParentObjectiveID = questObjective.ParentObjectiveID; + responseObjective.Visible = questObjective.Visible; + responseObjective.Description = questObjective.Description; + responseObjective.VisualEffects = questObjective.VisualEffects; if (loc != LOCALE_enUS) { if (QuestObjectivesLocale const* questObjectivesLocale = sObjectMgr->GetQuestObjectivesLocale(questObjective.ID)) - ObjectMgr::GetLocaleString(questObjectivesLocale->Description, loc, response.Info.Objectives.back().Description); + ObjectMgr::GetLocaleString(questObjectivesLocale->Description, loc, responseObjective.Description); } } diff --git a/src/server/game/Quests/QuestDef.h b/src/server/game/Quests/QuestDef.h index f4592260e2..f9c40d7098 100644 --- a/src/server/game/Quests/QuestDef.h +++ b/src/server/game/Quests/QuestDef.h @@ -33,7 +33,7 @@ #include class Player; -enum Difficulty : uint8; +enum Difficulty : int16; namespace WorldPackets { @@ -485,7 +485,7 @@ struct QuestObjective int8 StorageIndex = 0; int32 ObjectID = 0; int32 Amount = 0; - int32 SecondaryAmount = 0; + int32 ConditionalAmount = 0; uint32 Flags = 0; uint32 Flags2 = 0; float ProgressBarWeight = 0.0f; @@ -682,6 +682,7 @@ class TC_GAME_API Quest uint32 GetRewMoneyDifficulty() const { return _rewardMoneyDifficulty; } uint32 GetRewHonor() const { return _rewardHonor; } uint32 GetRewKillHonor() const { return _rewardKillHonor; } + int32 GetRewardFavor() const { return _rewardFavor; } uint32 GetArtifactXPDifficulty() const { return _rewardArtifactXPDifficulty; } float GetArtifactXPMultiplier() const { return _rewardArtifactXPMultiplier; } uint32 GetArtifactCategoryId() const { return _rewardArtifactCategoryID; } @@ -801,6 +802,7 @@ class TC_GAME_API Quest uint32 _rewardSpell = 0; uint32 _rewardHonor = 0; uint32 _rewardKillHonor = 0; + int32 _rewardFavor = 0; uint32 _rewardArtifactXPDifficulty = 0; float _rewardArtifactXPMultiplier = 0.f; uint32 _rewardArtifactCategoryID = 0; diff --git a/src/server/game/Scenarios/ScenarioMgr.cpp b/src/server/game/Scenarios/ScenarioMgr.cpp index 9f4cabbab6..160f87eadf 100644 --- a/src/server/game/Scenarios/ScenarioMgr.cpp +++ b/src/server/game/Scenarios/ScenarioMgr.cpp @@ -87,17 +87,17 @@ void ScenarioMgr::LoadDBData() Field* fields = result->Fetch(); uint32 mapId = fields[0].GetUInt32(); - uint8 difficulty = fields[1].GetUInt8(); + Difficulty difficulty = Difficulty(fields[1].GetInt32()); uint32 scenarioAllianceId = fields[2].GetUInt32(); - if (scenarioAllianceId > 0 && _scenarioData.find(scenarioAllianceId) == _scenarioData.end()) + if (scenarioAllianceId > 0 && !_scenarioData.contains(scenarioAllianceId)) { TC_LOG_ERROR("sql.sql", "ScenarioMgr::LoadDBData: DB Table `scenarios`, column scenario_A contained an invalid scenario (Id: {})!", scenarioAllianceId); continue; } uint32 scenarioHordeId = fields[3].GetUInt32(); - if (scenarioHordeId > 0 && _scenarioData.find(scenarioHordeId) == _scenarioData.end()) + if (scenarioHordeId > 0 && !_scenarioData.contains(scenarioHordeId)) { TC_LOG_ERROR("sql.sql", "ScenarioMgr::LoadDBData: DB Table `scenarios`, column scenario_H contained an invalid scenario (Id: {})!", scenarioHordeId); continue; diff --git a/src/server/game/Scenarios/ScenarioMgr.h b/src/server/game/Scenarios/ScenarioMgr.h index 644ad9e4d6..4afa162e4a 100644 --- a/src/server/game/Scenarios/ScenarioMgr.h +++ b/src/server/game/Scenarios/ScenarioMgr.h @@ -29,6 +29,7 @@ class InstanceMap; class InstanceScenario; struct ScenarioEntry; struct ScenarioStepEntry; +enum Difficulty : int16; struct ScenarioData { @@ -45,7 +46,7 @@ struct ScenarioData struct ScenarioDBData { uint32 MapID; - uint8 DifficultyID; + Difficulty DifficultyID; uint32 Scenario_A; uint32 Scenario_H; }; diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h index 2e711c9ffa..4e6af2ac5d 100644 --- a/src/server/game/Scripting/ScriptMgr.h +++ b/src/server/game/Scripting/ScriptMgr.h @@ -86,7 +86,7 @@ struct WorldStateTemplate; namespace Trinity::ChatCommands { struct ChatCommandBuilder; } enum BattlegroundTypeId : uint32; -enum Difficulty : uint8; +enum Difficulty : int16; enum DuelCompleteType : uint8; enum Emote : uint32; enum QuestStatus : uint8; diff --git a/src/server/game/Server/Packets/CalendarPackets.cpp b/src/server/game/Server/Packets/CalendarPackets.cpp index c5c0a71a41..ac9bb48b28 100644 --- a/src/server/game/Server/Packets/CalendarPackets.cpp +++ b/src/server/game/Server/Packets/CalendarPackets.cpp @@ -427,20 +427,20 @@ WorldPacket const* CalendarCommandResult::Write() WorldPacket const* CalendarRaidLockoutAdded::Write() { - _worldPacket << uint64(InstanceID); _worldPacket << ServerTime; _worldPacket << int32(MapID); - _worldPacket << uint32(DifficultyID); + _worldPacket << int16(DifficultyID); _worldPacket << int32(TimeRemaining); + _worldPacket << uint64(InstanceID); return &_worldPacket; } WorldPacket const* CalendarRaidLockoutRemoved::Write() { - _worldPacket << uint64(InstanceID); _worldPacket << int32(MapID); - _worldPacket << uint32(DifficultyID); + _worldPacket << int16(DifficultyID); + _worldPacket << uint64(InstanceID); return &_worldPacket; } @@ -449,7 +449,7 @@ WorldPacket const* CalendarRaidLockoutUpdated::Write() { _worldPacket << ServerTime; _worldPacket << int32(MapID); - _worldPacket << uint32(DifficultyID); + _worldPacket << int16(DifficultyID); _worldPacket << int32(OldTimeRemaining); _worldPacket << int32(NewTimeRemaining); diff --git a/src/server/game/Server/Packets/CalendarPackets.h b/src/server/game/Server/Packets/CalendarPackets.h index ba1f63f97b..a2dff4edbb 100644 --- a/src/server/game/Server/Packets/CalendarPackets.h +++ b/src/server/game/Server/Packets/CalendarPackets.h @@ -448,7 +448,7 @@ namespace WorldPackets int32 MapID = 0; bool Extend = false; - uint32 DifficultyID = 0; + int16 DifficultyID = 0; }; class CalendarModeratorStatusQuery final : public ClientPacket @@ -485,7 +485,7 @@ namespace WorldPackets WorldPacket const* Write() override; uint64 InstanceID = 0; - uint32 DifficultyID = 0; + int16 DifficultyID = 0; int32 TimeRemaining = 0; WowTime ServerTime; int32 MapID = 0; @@ -500,7 +500,7 @@ namespace WorldPackets uint64 InstanceID = 0; int32 MapID = 0; - uint32 DifficultyID = 0; + int16 DifficultyID = 0; }; class CalendarRaidLockoutUpdated final : public ServerPacket @@ -512,7 +512,7 @@ namespace WorldPackets WowTime ServerTime; int32 MapID = 0; - uint32 DifficultyID = 0; + int16 DifficultyID = 0; int32 NewTimeRemaining = 0; int32 OldTimeRemaining = 0; }; diff --git a/src/server/game/Server/Packets/CharacterPackets.cpp b/src/server/game/Server/Packets/CharacterPackets.cpp index 6f2d667ef6..1c683af2de 100644 --- a/src/server/game/Server/Packets/CharacterPackets.cpp +++ b/src/server/game/Server/Packets/CharacterPackets.cpp @@ -15,6 +15,7 @@ * with this program. If not, see . */ +#include "CharacterPackets.h" #include "CharacterPackets.h" #include "ClubUtils.h" #include "DB2Stores.h" @@ -200,13 +201,13 @@ EnumCharactersResult::CharacterInfoBasic::CharacterInfoBasic(Field const* fields ByteBuffer& operator<<(ByteBuffer& data, EnumCharactersResult::CharacterInfoBasic::VisualItemInfo const& visualItem) { - data << uint32(visualItem.DisplayID); - data << uint8(visualItem.InvType); - data << uint32(visualItem.DisplayEnchantID); - data << uint8(visualItem.Subclass); - data << int32(visualItem.SecondaryItemModifiedAppearanceID); data << uint32(visualItem.ItemID); data << uint32(visualItem.TransmogrifiedItemID); + data << uint8(visualItem.Subclass); + data << uint8(visualItem.InvType); + data << uint32(visualItem.DisplayID); + data << uint32(visualItem.DisplayEnchantID); + data << int32(visualItem.SecondaryItemModifiedAppearanceID); return data; } @@ -251,15 +252,15 @@ ByteBuffer& operator<<(ByteBuffer& data, EnumCharactersResult::CharacterInfoBasi data << int32(charInfo.TimerunningSeasonID); data << uint32(charInfo.OverrideSelectScreenFileDataID); - data << uint32(charInfo.Unused1110_1); + data << uint32(charInfo.RealmQueue); for (ChrCustomizationChoice const& customization : charInfo.Customizations) data << customization; data << SizedString::BitsSize<6>(charInfo.Name); data << Bits<1>(charInfo.FirstLogin); - data << Bits<1>(charInfo.Unused1110_2); - data << Bits<1>(charInfo.Unused1110_3); + data << Bits<1>(charInfo.RealmInfoFound); + data << Bits<1>(charInfo.IsRealmOffline); data.FlushBits(); @@ -315,16 +316,30 @@ ByteBuffer& operator<<(ByteBuffer& data, EnumCharactersResult::RegionwideCharact return data; } +ByteBuffer& operator<<(ByteBuffer& data, EnumCharactersResult::ClassUnlock const& classUnlock) +{ + data << int8(classUnlock.ClassID); + data << uint32(classUnlock.AchievementID); + data << Bits<1>(classUnlock.HasUnlockedAchievement); + data.FlushBits(); + + return data; +} + ByteBuffer& operator<<(ByteBuffer& data, EnumCharactersResult::RaceUnlock const& raceUnlock) { data << int8(raceUnlock.RaceID); + data << Size(raceUnlock.ClassUnlocks); data << Bits<1>(raceUnlock.HasUnlockedLicense); data << Bits<1>(raceUnlock.HasUnlockedAchievement); data << Bits<1>(raceUnlock.HasHeritageArmorUnlockAchievement); data << Bits<1>(raceUnlock.HideRaceOnClient); - data << Bits<1>(raceUnlock.Unused1027); + data << Bits<1>(raceUnlock.FactionBalanceDisabled); data.FlushBits(); + for (EnumCharactersResult::ClassUnlock const& classUnlock : raceUnlock.ClassUnlocks) + data << classUnlock; + return data; } @@ -394,9 +409,9 @@ WorldPacket const* EnumCharactersResult::Write() _worldPacket << Bits<1>(IsRestrictedNewPlayer); _worldPacket << Bits<1>(IsNewcomerChatCompleted); _worldPacket << Bits<1>(IsRestrictedTrial); - _worldPacket << Bits<1>(Unused1127); + _worldPacket << Bits<1>(IsAccountLapsedPlayer); _worldPacket << OptionalInit(ClassDisableMask); - _worldPacket << Bits<1>(DontCreateCharacterDisplays); + _worldPacket << Bits<1>(ForceCharacterListSort); _worldPacket << Size(Characters); _worldPacket << Size(RegionwideCharacters); _worldPacket << int32(MaxCharacterLevel); diff --git a/src/server/game/Server/Packets/CharacterPackets.h b/src/server/game/Server/Packets/CharacterPackets.h index a7f94d8df9..5e79ca35da 100644 --- a/src/server/game/Server/Packets/CharacterPackets.h +++ b/src/server/game/Server/Packets/CharacterPackets.h @@ -185,20 +185,20 @@ namespace WorldPackets struct VisualItemInfo { + uint32 ItemID = 0; + uint32 TransmogrifiedItemID = 0; + uint8 Subclass = 0; + uint8 InvType = 0; uint32 DisplayID = 0; uint32 DisplayEnchantID = 0; int32 SecondaryItemModifiedAppearanceID = 0; // also -1 is some special value - uint8 InvType = 0; - uint8 Subclass = 0; - uint32 ItemID = 0; - uint32 TransmogrifiedItemID = 0; }; std::array VisualItems = { }; CustomTabardInfo PersonalTabard; - uint32 Unused1110_1 = 0; - bool Unused1110_2 = false; - bool Unused1110_3 = false; + uint32 RealmQueue = 0; + bool RealmInfoFound = false; + bool IsRealmOffline = false; }; struct CharacterRestrictionAndMailData @@ -231,6 +231,13 @@ namespace WorldPackets int16 PvpRatingAssociatedSpecID = 0; }; + struct ClassUnlock + { + int8 ClassID = 0; + bool HasUnlockedAchievement = false; + uint32 AchievementID = 0; + }; + struct RaceUnlock { int8 RaceID = 0; @@ -238,7 +245,8 @@ namespace WorldPackets bool HasUnlockedAchievement = false; bool HasHeritageArmorUnlockAchievement = false; bool HideRaceOnClient = false; - bool Unused1027 = false; + bool FactionBalanceDisabled = false; + std::vector ClassUnlocks; }; struct UnlockedConditionalAppearance @@ -270,8 +278,8 @@ namespace WorldPackets bool IsRestrictedNewPlayer = false; ///< forbids using level boost and class trials bool IsNewcomerChatCompleted = false; ///< forbids hero classes and allied races bool IsRestrictedTrial = false; - bool Unused1127 = false; - bool DontCreateCharacterDisplays = false; + bool IsAccountLapsedPlayer = false; + bool ForceCharacterListSort = false; int32 MaxCharacterLevel = 1; Optional ClassDisableMask; diff --git a/src/server/game/Server/Packets/ChatPackets.cpp b/src/server/game/Server/Packets/ChatPackets.cpp index c747714bcd..c15c347bb4 100644 --- a/src/server/game/Server/Packets/ChatPackets.cpp +++ b/src/server/game/Server/Packets/ChatPackets.cpp @@ -207,6 +207,7 @@ WorldPacket const* Chat::Write() _worldPacket << Bits<1>(FakeSenderName); _worldPacket << OptionalInit(BroadcastTextID); _worldPacket << OptionalInit(ChannelGUID); + _worldPacket << OptionalInit(EncounterEventID); _worldPacket.FlushBits(); _worldPacket << SizedString::Data(SenderName); @@ -221,6 +222,9 @@ WorldPacket const* Chat::Write() if (ChannelGUID) _worldPacket << *ChannelGUID; + if (EncounterEventID) + _worldPacket << uint32(*EncounterEventID); + return &_worldPacket; } diff --git a/src/server/game/Server/Packets/ChatPackets.h b/src/server/game/Server/Packets/ChatPackets.h index 1434864639..620e7f7a69 100644 --- a/src/server/game/Server/Packets/ChatPackets.h +++ b/src/server/game/Server/Packets/ChatPackets.h @@ -183,6 +183,7 @@ namespace WorldPackets bool HideChatLog = false; bool FakeSenderName = false; Optional ChannelGUID; + Optional EncounterEventID; }; class Emote final : public ServerPacket diff --git a/src/server/game/Server/Packets/CraftingPacketsCommon.cpp b/src/server/game/Server/Packets/CraftingPacketsCommon.cpp index a8a50d36cb..5b3a8d7895 100644 --- a/src/server/game/Server/Packets/CraftingPacketsCommon.cpp +++ b/src/server/game/Server/Packets/CraftingPacketsCommon.cpp @@ -20,10 +20,40 @@ namespace WorldPackets::Crafting { +ByteBuffer& operator>>(ByteBuffer& data, CraftingReagentBase& reagent) +{ + data.ResetBitPos(); + data >> OptionalInit(reagent.ItemID); + data >> OptionalInit(reagent.CurrencyID); + + if (reagent.ItemID) + data >> *reagent.ItemID; + + if (reagent.CurrencyID) + data >> *reagent.CurrencyID; + + return data; +} + +ByteBuffer& operator<<(ByteBuffer& data, CraftingReagentBase const& reagent) +{ + data << OptionalInit(reagent.ItemID); + data << OptionalInit(reagent.CurrencyID); + data.FlushBits(); + + if (reagent.ItemID) + data << int32(*reagent.ItemID); + + if (reagent.CurrencyID) + data << int32(*reagent.CurrencyID); + + return data; +} + ByteBuffer& operator<<(ByteBuffer& data, SpellReducedReagent const& spellReducedReagent) { - data << int32(spellReducedReagent.ItemID); data << int32(spellReducedReagent.Quantity); + data << spellReducedReagent.Reagent; return data; } @@ -38,8 +68,8 @@ ByteBuffer& operator<<(ByteBuffer& data, CraftingData const& craftingData) data << int32(craftingData.SkillFromReagents); data << int32(craftingData.Skill); data << int32(craftingData.CritBonusSkill); - data << float(craftingData.field_1C); - data << uint64(craftingData.field_20); + data << float(craftingData.ModSkillGain); + data << uint64(craftingData.OrderID); data << Size(craftingData.ResourcesReturned); data << uint32(craftingData.OperationID); data << craftingData.ItemGUID; @@ -49,13 +79,10 @@ ByteBuffer& operator<<(ByteBuffer& data, CraftingData const& craftingData) data << int32(craftingData.ConcentrationSpent); data << int32(craftingData.IngenuityRefund); - for (SpellReducedReagent const& spellReducedReagent : craftingData.ResourcesReturned) - data << spellReducedReagent; - data << Bits<1>(craftingData.IsCrit); - data << Bits<1>(craftingData.field_29); - data << Bits<1>(craftingData.field_2A); - data << Bits<1>(craftingData.BonusCraft); + data << Bits<1>(craftingData.IsRecraft); + data << Bits<1>(craftingData.IsInitialRecraft); + data << Bits<1>(craftingData.IsFirstCraft); data << Bits<1>(craftingData.HasIngenuityProc); data << Bits<1>(craftingData.ApplyConcentration); data.FlushBits(); @@ -63,6 +90,9 @@ ByteBuffer& operator<<(ByteBuffer& data, CraftingData const& craftingData) data << craftingData.OldItem; data << craftingData.NewItem; + for (SpellReducedReagent const& spellReducedReagent : craftingData.ResourcesReturned) + data << spellReducedReagent; + return data; } } diff --git a/src/server/game/Server/Packets/CraftingPacketsCommon.h b/src/server/game/Server/Packets/CraftingPacketsCommon.h index 2182a28627..12998abc77 100644 --- a/src/server/game/Server/Packets/CraftingPacketsCommon.h +++ b/src/server/game/Server/Packets/CraftingPacketsCommon.h @@ -23,9 +23,15 @@ namespace WorldPackets::Crafting { +struct CraftingReagentBase +{ + Optional ItemID; + Optional CurrencyID; +}; + struct SpellReducedReagent { - int32 ItemID = 0; + CraftingReagentBase Reagent; int32 Quantity = 0; }; @@ -39,12 +45,12 @@ struct CraftingData int32 SkillFromReagents = 0; int32 Skill = 0; int32 CritBonusSkill = 0; - float field_1C = 0.0f; - uint64 field_20 = 0; + float ModSkillGain = 0.0f; + uint64 OrderID = 0; bool IsCrit = false; - bool field_29 = false; - bool field_2A = false; - bool BonusCraft = false; + bool IsRecraft = false; + bool IsInitialRecraft = false; + bool IsFirstCraft = false; std::vector ResourcesReturned; uint32 OperationID = 0; ObjectGuid ItemGUID; @@ -59,6 +65,8 @@ struct CraftingData bool ApplyConcentration = false; }; +ByteBuffer& operator>>(ByteBuffer& data, CraftingReagentBase& reagent); +ByteBuffer& operator<<(ByteBuffer& data, CraftingReagentBase const& reagent); ByteBuffer& operator<<(ByteBuffer& data, SpellReducedReagent const& spellReducedReagent); ByteBuffer& operator<<(ByteBuffer& data, CraftingData const& craftingData); } diff --git a/src/server/game/Server/Packets/InstancePackets.cpp b/src/server/game/Server/Packets/InstancePackets.cpp index eafb7219b7..535c033514 100644 --- a/src/server/game/Server/Packets/InstancePackets.cpp +++ b/src/server/game/Server/Packets/InstancePackets.cpp @@ -36,10 +36,10 @@ WorldPacket const* UpdateInstanceOwnership::Write() ByteBuffer& operator<<(ByteBuffer& data, InstanceLock const& lockInfos) { - data << uint64(lockInfos.InstanceID); data << uint32(lockInfos.MapID); - data << uint32(lockInfos.DifficultyID); - data << uint32(lockInfos.TimeRemaining); + data << int16(lockInfos.DifficultyID); + data << uint64(lockInfos.InstanceID); + data << int32(lockInfos.TimeRemaining); data << uint32(lockInfos.CompletedMask); data << Bits<1>(lockInfos.Locked); @@ -112,7 +112,7 @@ WorldPacket const* RaidInstanceMessage::Write() { _worldPacket << int32(Type); _worldPacket << uint32(MapID); - _worldPacket << uint32(DifficultyID); + _worldPacket << int16(DifficultyID); _worldPacket << int32(TimeLeft); _worldPacket << SizedString::BitsSize<8>(WarningMessage); _worldPacket << Bits<1>(Locked); diff --git a/src/server/game/Server/Packets/InstancePackets.h b/src/server/game/Server/Packets/InstancePackets.h index 0bfff99257..22bc266f85 100644 --- a/src/server/game/Server/Packets/InstancePackets.h +++ b/src/server/game/Server/Packets/InstancePackets.h @@ -49,9 +49,9 @@ namespace WorldPackets struct InstanceLock { - uint64 InstanceID = 0u; uint32 MapID = 0u; - uint32 DifficultyID = 0u; + int16 DifficultyID = 0; + uint64 InstanceID = 0u; int32 TimeRemaining = 0; uint32 CompletedMask = 0u; @@ -159,7 +159,7 @@ namespace WorldPackets int32 Type = 0; uint32 MapID = 0; - uint32 DifficultyID = 0; + int16 DifficultyID = 0; int32 TimeLeft = 0; std::string_view WarningMessage; // GlobalStrings tag bool Locked = false; diff --git a/src/server/game/Server/Packets/MiscPackets.cpp b/src/server/game/Server/Packets/MiscPackets.cpp index df1d9def33..a288dc3d84 100644 --- a/src/server/game/Server/Packets/MiscPackets.cpp +++ b/src/server/game/Server/Packets/MiscPackets.cpp @@ -208,11 +208,11 @@ void TutorialSetFlag::Read() WorldPacket const* WorldServerInfo::Write() { - _worldPacket << uint32(DifficultyID); - _worldPacket << HouseGuid; - _worldPacket << HouseOwnerBnetAccount; - _worldPacket << HouseOwnerPlayer; - _worldPacket << NeighborhoodGuid; + _worldPacket << int16(DifficultyID); + _worldPacket << HouseGUID; + _worldPacket << HouseOwnerAccountGUID; + _worldPacket << HouseCosmeticOwnerGUID; + _worldPacket << NeighborhoodGUID; _worldPacket << Bits<1>(IsTournamentRealm); _worldPacket << Bits<1>(XRealmPvpAlert); _worldPacket << Bits<1>(BlockExitingLoadingScreen); @@ -246,7 +246,7 @@ void SetRaidDifficulty::Read() WorldPacket const* DungeonDifficultySet::Write() { - _worldPacket << int32(DifficultyID); + _worldPacket << int16(DifficultyID); return &_worldPacket; } @@ -254,7 +254,7 @@ WorldPacket const* DungeonDifficultySet::Write() WorldPacket const* RaidDifficultySet::Write() { _worldPacket << int32(Legacy); - _worldPacket << int32(DifficultyID); + _worldPacket << int16(DifficultyID); return &_worldPacket; } diff --git a/src/server/game/Server/Packets/MiscPackets.h b/src/server/game/Server/Packets/MiscPackets.h index 7946e6eea5..bde4c02d4f 100644 --- a/src/server/game/Server/Packets/MiscPackets.h +++ b/src/server/game/Server/Packets/MiscPackets.h @@ -257,7 +257,7 @@ namespace WorldPackets WorldPacket const* Write() override; - uint32 DifficultyID = 0; + int16 DifficultyID = 0; bool IsTournamentRealm = false; bool XRealmPvpAlert = false; bool BlockExitingLoadingScreen = false; // when set to true, sending SMSG_UPDATE_OBJECT with CreateObject Self bit = true will not hide loading screen @@ -266,10 +266,10 @@ namespace WorldPackets Optional RestrictedAccountMaxMoney; Optional InstanceGroupSize; - ObjectGuid HouseGuid; - ObjectGuid HouseOwnerBnetAccount; - ObjectGuid HouseOwnerPlayer; - ObjectGuid NeighborhoodGuid; + ObjectGuid HouseGUID; + ObjectGuid HouseOwnerAccountGUID; + ObjectGuid HouseCosmeticOwnerGUID; + ObjectGuid NeighborhoodGUID; }; class SetDungeonDifficulty final : public ClientPacket @@ -279,7 +279,7 @@ namespace WorldPackets void Read() override; - uint32 DifficultyID = 0; + int16 DifficultyID = 0; }; class SetRaidDifficulty final : public ClientPacket @@ -290,7 +290,7 @@ namespace WorldPackets void Read() override; int32 Legacy = 0; - int32 DifficultyID = 0; + int16 DifficultyID = 0; }; class DungeonDifficultySet final : public ServerPacket @@ -300,7 +300,7 @@ namespace WorldPackets WorldPacket const* Write() override; - int32 DifficultyID = 0; + int16 DifficultyID = 0; }; class RaidDifficultySet final : public ServerPacket @@ -311,7 +311,7 @@ namespace WorldPackets WorldPacket const* Write() override; int32 Legacy = 0; - int32 DifficultyID = 0; + int16 DifficultyID = 0; }; class CorpseReclaimDelay : public ServerPacket diff --git a/src/server/game/Server/Packets/MovementPackets.cpp b/src/server/game/Server/Packets/MovementPackets.cpp index c07b91f299..97e8ac4a84 100644 --- a/src/server/game/Server/Packets/MovementPackets.cpp +++ b/src/server/game/Server/Packets/MovementPackets.cpp @@ -36,8 +36,8 @@ ByteBuffer& operator<<(ByteBuffer& data, MovementInfo::TransportInfo const& tran data << transportInfo.seat; // VehicleSeatIndex data << transportInfo.time; // MoveTime - data.WriteBit(hasPrevTime); - data.WriteBit(hasVehicleId); + data << WorldPackets::Bits<1>(hasPrevTime); + data << WorldPackets::Bits<1>(hasVehicleId); data.FlushBits(); @@ -74,11 +74,6 @@ ByteBuffer& operator<<(ByteBuffer& data, MovementInfo const& movementInfo) bool hasTransportData = !movementInfo.transport.guid.IsEmpty(); bool hasFallDirection = movementInfo.HasMovementFlag(MOVEMENTFLAG_FALLING | MOVEMENTFLAG_FALLING_FAR); bool hasFallData = hasFallDirection || movementInfo.jump.fallTime != 0; - bool hasSpline = false; // todo 6.x send this infos - bool hasInertia = movementInfo.inertia.has_value(); - bool hasAdvFlying = movementInfo.advFlying.has_value(); - bool hasDriveStatus = movementInfo.driveStatus.has_value(); - bool hasStandingOnGameObjectGUID = movementInfo.standingOnGameObjectGUID.has_value(); data << movementInfo.guid; data << uint32(movementInfo.flags); @@ -95,38 +90,39 @@ ByteBuffer& operator<<(ByteBuffer& data, MovementInfo const& movementInfo) uint32 moveIndex = 0; data << moveIndex; + data << float(movementInfo.gravityModifier); + /*for (uint32 i = 0; i < removeMovementForcesCount; ++i) { data << ObjectGuid; }*/ - data.WriteBit(hasStandingOnGameObjectGUID); - data.WriteBit(hasTransportData); - data.WriteBit(hasFallData); - data.WriteBit(hasSpline); - - data.WriteBit(false); // HeightChangeFailed - data.WriteBit(false); // RemoteTimeValid - data.WriteBit(hasInertia); - data.WriteBit(hasAdvFlying); - data.WriteBit(hasDriveStatus); + data << WorldPackets::OptionalInit(movementInfo.standingOnGameObjectGUID); + data << WorldPackets::Bits<1>(hasTransportData); + data << WorldPackets::Bits<1>(hasFallData); + data << WorldPackets::Bits<1>(false); // HasSpline + data << WorldPackets::Bits<1>(false); // HeightChangeFailed + data << WorldPackets::Bits<1>(false); // RemoteTimeValid + data << WorldPackets::OptionalInit(movementInfo.inertia); + data << WorldPackets::OptionalInit(movementInfo.advFlying); + data << WorldPackets::OptionalInit(movementInfo.driveStatus); data.FlushBits(); if (hasTransportData) data << movementInfo.transport; - if (hasStandingOnGameObjectGUID) + if (movementInfo.standingOnGameObjectGUID) data << *movementInfo.standingOnGameObjectGUID; - if (hasInertia) + if (movementInfo.inertia) { data << uint32(movementInfo.inertia->id); data << movementInfo.inertia->force.PositionXYZStream(); data << uint32(movementInfo.inertia->lifetime); } - if (hasAdvFlying) + if (movementInfo.advFlying) { data << float(movementInfo.advFlying->forwardVelocity); data << float(movementInfo.advFlying->upVelocity); @@ -137,7 +133,7 @@ ByteBuffer& operator<<(ByteBuffer& data, MovementInfo const& movementInfo) data << uint32(movementInfo.jump.fallTime); data << float(movementInfo.jump.zspeed); - data.WriteBit(hasFallDirection); + data << WorldPackets::Bits<1>(hasFallDirection); data.FlushBits(); if (hasFallDirection) { @@ -147,12 +143,12 @@ ByteBuffer& operator<<(ByteBuffer& data, MovementInfo const& movementInfo) } } - if (hasDriveStatus) + if (movementInfo.driveStatus) { data << float(movementInfo.driveStatus->speed); data << float(movementInfo.driveStatus->movementAngle); - data.WriteBit(movementInfo.driveStatus->accelerating); - data.WriteBit(movementInfo.driveStatus->drifting); + data << WorldPackets::Bits<1>(movementInfo.driveStatus->accelerating); + data << WorldPackets::Bits<1>(movementInfo.driveStatus->drifting); data.FlushBits(); } @@ -161,8 +157,6 @@ ByteBuffer& operator<<(ByteBuffer& data, MovementInfo const& movementInfo) ByteBuffer& operator>>(ByteBuffer& data, MovementInfo& movementInfo) { - //bool hasSpline = false; - data >> movementInfo.guid; data >> movementInfo.flags; data >> movementInfo.flags2; @@ -178,42 +172,39 @@ ByteBuffer& operator>>(ByteBuffer& data, MovementInfo& movementInfo) uint32 moveIndex; data >> moveIndex; + data >> movementInfo.gravityModifier; + for (uint32 i = 0; i < removeMovementForcesCount; ++i) { ObjectGuid guid; data >> guid; } - bool hasStandingOnGameObjectGUID = data.ReadBit(); + data >> WorldPackets::OptionalInit(movementInfo.standingOnGameObjectGUID); bool hasTransport = data.ReadBit(); bool hasFall = data.ReadBit(); /*hasSpline = */data.ReadBit(); // todo 6.x read this infos - data.ReadBit(); // HeightChangeFailed data.ReadBit(); // RemoteTimeValid - bool hasInertia = data.ReadBit(); - bool hasAdvFlying = data.ReadBit(); - bool hasDriveStatus = data.ReadBit(); + data >> WorldPackets::OptionalInit(movementInfo.inertia); + data >> WorldPackets::OptionalInit(movementInfo.advFlying); + data >> WorldPackets::OptionalInit(movementInfo.driveStatus); if (hasTransport) data >> movementInfo.transport; - if (hasStandingOnGameObjectGUID) - data >> movementInfo.standingOnGameObjectGUID.emplace(); + if (movementInfo.standingOnGameObjectGUID) + data >> *movementInfo.standingOnGameObjectGUID; - if (hasInertia) + if (movementInfo.inertia) { - movementInfo.inertia.emplace(); - data >> movementInfo.inertia->id; data >> movementInfo.inertia->force.PositionXYZStream(); data >> movementInfo.inertia->lifetime; } - if (hasAdvFlying) + if (movementInfo.advFlying) { - movementInfo.advFlying.emplace(); - data >> movementInfo.advFlying->forwardVelocity; data >> movementInfo.advFlying->upVelocity; } @@ -234,12 +225,10 @@ ByteBuffer& operator>>(ByteBuffer& data, MovementInfo& movementInfo) } } - if (hasDriveStatus) + if (movementInfo.driveStatus) { data.ResetBitPos(); - movementInfo.driveStatus.emplace(); - data >> movementInfo.driveStatus->speed; data >> movementInfo.driveStatus->movementAngle; movementInfo.driveStatus->accelerating = data.ReadBit(); @@ -325,13 +314,13 @@ ByteBuffer& operator<<(ByteBuffer& data, MonsterSplineAnimTierTransition const& return data; } -ByteBuffer& operator<<(ByteBuffer& data, MonsterSplineUnknown901 const& unk) +ByteBuffer& operator<<(ByteBuffer& data, MonsterSplineClientSpellVisualData const& unk) { - for (MonsterSplineUnknown901::Inner const& unkInner : unk.Data) + for (MonsterSplineSpellVisualNodeInfo const& nodeInfo : unk.NodeInfo) { - data << int32(unkInner.Unknown_1); - data << unkInner.Visual; - data << uint32(unkInner.Unknown_4); + data << int32(nodeInfo.SpellID); + data << nodeInfo.Visual; + data << uint32(nodeInfo.StartNodeIndex); } return data; @@ -371,7 +360,7 @@ ByteBuffer& operator<<(ByteBuffer& data, MovementSpline const& movementSpline) data << OptionalInit(movementSpline.JumpExtraData); data << OptionalInit(movementSpline.TurnData); data << OptionalInit(movementSpline.AnimTierTransition); - data << OptionalInit(movementSpline.Unknown901); + data << OptionalInit(movementSpline.SpellVisualData); data.FlushBits(); if (movementSpline.SplineFilter) @@ -395,8 +384,8 @@ ByteBuffer& operator<<(ByteBuffer& data, MovementSpline const& movementSpline) if (movementSpline.AnimTierTransition) data << *movementSpline.AnimTierTransition; - if (movementSpline.Unknown901) - data << *movementSpline.Unknown901; + if (movementSpline.SpellVisualData) + data << *movementSpline.SpellVisualData; return data; } @@ -452,7 +441,7 @@ void CommonMovement::WriteCreateObjectSplineDataBlock(::Movement::MoveSpline con data << Bits<1>(hasJumpExtraData); data << OptionalInit(moveSpline.turn); // HasTurnData data << OptionalInit(moveSpline.anim_tier); // HasAnimTierTransition - data.WriteBit(false); // HasUnknown901 + data << Bits<1>(false); // HasSpellVisualData data.FlushBits(); //if (HasSplineFilterKey) @@ -464,7 +453,7 @@ void CommonMovement::WriteCreateObjectSplineDataBlock(::Movement::MoveSpline con // data << float(Out); // } - // data.WriteBits(FilterFlags, 2); + // data << Bits<2>(FilterFlags); // data.FlushBits(); //} @@ -524,14 +513,13 @@ void CommonMovement::WriteCreateObjectSplineDataBlock(::Movement::MoveSpline con data << uint32(0); } - //if (HasUnknown901) + //if (HasSpellVisualData) //{ - // for (WorldPackets::Movement::MonsterSplineUnknown901::Inner const& unkInner : unk.Data) size = 16 + // for (WorldPackets::Movement::MonsterSplineSpellVisualNodeInfo const& nodeInfo : SpellVisualData.NodeInfo) // { - // data << int32(unkInner.Unknown_1); - // data << int32(unkInner.Unknown_2); - // data << int32(unkInner.Unknown_3); - // data << uint32(unkInner.Unknown_4); + // data << int32(nodeInfo.SpellID); + // data << nodeInfo.Visual; + // data << uint32(nodeInfo.StartNodeIndex); // } //} } @@ -572,8 +560,8 @@ void CommonMovement::WriteMovementForceWithDirection(MovementForce const& moveme data << uint32(movementForce.TransportID); data << float(movementForce.Magnitude); data << int32(movementForce.MovementForceID); - data << int32(movementForce.Unknown1110_1); - data << int32(movementForce.Unused1110); + data << int32(movementForce.DurationMs); + data << uint32(movementForce.EndTimestamp); data << uint32(movementForce.Flags); data << Bits<2>(movementForce.Type); data.FlushBits(); @@ -831,8 +819,8 @@ ByteBuffer& operator>>(ByteBuffer& data, MovementForce& movementForce) data >> movementForce.TransportID; data >> movementForce.Magnitude; data >> movementForce.MovementForceID; - data >> movementForce.Unknown1110_1; - data >> movementForce.Unused1110; + data >> movementForce.DurationMs; + data >> movementForce.EndTimestamp; data >> movementForce.Flags; data >> Bits<2>(movementForce.Type); diff --git a/src/server/game/Server/Packets/MovementPackets.h b/src/server/game/Server/Packets/MovementPackets.h index 9f9cd70ccf..19de8a4ccd 100644 --- a/src/server/game/Server/Packets/MovementPackets.h +++ b/src/server/game/Server/Packets/MovementPackets.h @@ -105,16 +105,16 @@ namespace WorldPackets uint8 AnimTier = 0; }; - struct MonsterSplineUnknown901 + struct MonsterSplineSpellVisualNodeInfo { - struct Inner - { - int32 Unknown_1 = 0; - Spells::SpellCastVisual Visual; - uint32 Unknown_4 = 0; - }; + int32 SpellID = 0; + Spells::SpellCastVisual Visual; + uint32 StartNodeIndex = 0; + }; - std::array Data; + struct MonsterSplineClientSpellVisualData + { + std::array NodeInfo; }; struct MovementSpline @@ -136,7 +136,7 @@ namespace WorldPackets Optional JumpExtraData; Optional TurnData; Optional AnimTierTransition; - Optional Unknown901; + Optional SpellVisualData; float FaceDirection = 0.0f; ObjectGuid FaceGUID; TaggedPosition FaceSpot; diff --git a/src/server/game/Server/Packets/PartyPackets.cpp b/src/server/game/Server/Packets/PartyPackets.cpp index c36faf0620..5596862f0d 100644 --- a/src/server/game/Server/Packets/PartyPackets.cpp +++ b/src/server/game/Server/Packets/PartyPackets.cpp @@ -144,9 +144,12 @@ WorldPacket const* GroupUninvite::Write() void RequestPartyMemberStats::Read() { _worldPacket >> OptionalInit(PartyIndex); - _worldPacket >> TargetGUID; + _worldPacket >> Size(Targets); if (PartyIndex) _worldPacket >> *PartyIndex; + + for (ObjectGuid& target : Targets) + _worldPacket >> target; } ByteBuffer& operator<<(ByteBuffer& data, PartyMemberPhase const& phase) @@ -500,10 +503,10 @@ ByteBuffer& operator<<(ByteBuffer& data, PartyPlayerInfo const& playerInfo) ByteBuffer& operator<<(ByteBuffer& data, ChallengeModeData const& challengeMode) { - data << int32(challengeMode.Unknown_1120_1); - data << int32(challengeMode.Unknown_1120_2); - data << uint64(challengeMode.Unknown_1120_3); - data << int64(challengeMode.Unknown_1120_4); + data << int32(challengeMode.MapID); + data << int32(challengeMode.InitialPlayerCount); + data << uint64(challengeMode.InstanceID); + data << challengeMode.StartTime; data << challengeMode.KeystoneOwnerGUID; data << challengeMode.LeaverGUID; data << challengeMode.InstanceAbandonVoteCooldown; @@ -543,9 +546,9 @@ ByteBuffer& operator<<(ByteBuffer& data, PartyLootSettings const& lootSettings) ByteBuffer& operator<<(ByteBuffer& data, PartyDifficultySettings const& difficultySettings) { - data << uint32(difficultySettings.DungeonDifficultyID); - data << uint32(difficultySettings.RaidDifficultyID); - data << uint32(difficultySettings.LegacyRaidDifficultyID); + data << int16(difficultySettings.DungeonDifficultyID); + data << int16(difficultySettings.RaidDifficultyID); + data << int16(difficultySettings.LegacyRaidDifficultyID); return data; } diff --git a/src/server/game/Server/Packets/PartyPackets.h b/src/server/game/Server/Packets/PartyPackets.h index f793adce5d..95730b9a4d 100644 --- a/src/server/game/Server/Packets/PartyPackets.h +++ b/src/server/game/Server/Packets/PartyPackets.h @@ -147,7 +147,7 @@ namespace WorldPackets void Read() override; Optional PartyIndex; - ObjectGuid TargetGUID; + Array Targets; }; struct PartyMemberPhase @@ -561,17 +561,17 @@ namespace WorldPackets struct PartyDifficultySettings { - uint32 DungeonDifficultyID = 0u; - uint32 RaidDifficultyID = 0u; - uint32 LegacyRaidDifficultyID = 0u; + int16 DungeonDifficultyID = 0u; + int16 RaidDifficultyID = 0u; + int16 LegacyRaidDifficultyID = 0u; }; struct ChallengeModeData { - int32 Unknown_1120_1 = 0; - int32 Unknown_1120_2 = 0; - uint64 Unknown_1120_3 = 0; - int64 Unknown_1120_4 = 0; + int32 MapID = 0; + int32 InitialPlayerCount = 0; + uint64 InstanceID = 0; + Timestamp<> StartTime; ObjectGuid KeystoneOwnerGUID; ObjectGuid LeaverGUID; Duration InstanceAbandonVoteCooldown; diff --git a/src/server/game/Server/Packets/QuestPackets.cpp b/src/server/game/Server/Packets/QuestPackets.cpp index 2a860499c3..13a2c86cee 100644 --- a/src/server/game/Server/Packets/QuestPackets.cpp +++ b/src/server/game/Server/Packets/QuestPackets.cpp @@ -104,6 +104,7 @@ WorldPacket const* QueryQuestInfoResponse::Write() _worldPacket << int32(Info.RewardSpell); _worldPacket << int32(Info.RewardHonor); _worldPacket << float(Info.RewardKillHonor); + _worldPacket << int32(Info.RewardFavor); _worldPacket << int32(Info.RewardArtifactXPDifficulty); _worldPacket << float(Info.RewardArtifactXPMultiplier); _worldPacket << int32(Info.RewardArtifactCategoryID); @@ -168,7 +169,7 @@ WorldPacket const* QueryQuestInfoResponse::Write() _worldPacket << Size(Info.Objectives); _worldPacket << uint64(Info.AllowableRaces.RawValue); _worldPacket << Size(Info.TreasurePickerID); - _worldPacket << Size(Info.TreasurePickerID2); + _worldPacket << Size(Info.NonDisplayableTreasurePickerIDs); _worldPacket << int32(Info.Expansion); _worldPacket << int32(Info.ManagedWorldStateID); _worldPacket << int32(Info.QuestSessionBonus); @@ -186,8 +187,8 @@ WorldPacket const* QueryQuestInfoResponse::Write() if (!Info.TreasurePickerID.empty()) _worldPacket.append(Info.TreasurePickerID.data(), Info.TreasurePickerID.size()); - if (!Info.TreasurePickerID2.empty()) - _worldPacket.append(Info.TreasurePickerID2.data(), Info.TreasurePickerID2.size()); + if (!Info.NonDisplayableTreasurePickerIDs.empty()) + _worldPacket.append(Info.NonDisplayableTreasurePickerIDs.data(), Info.NonDisplayableTreasurePickerIDs.size()); if (!Info.RewardHouseRoomIDs.empty()) _worldPacket.append(Info.RewardHouseRoomIDs.data(), Info.RewardHouseRoomIDs.size()); @@ -208,14 +209,14 @@ WorldPacket const* QueryQuestInfoResponse::Write() _worldPacket << Bits<1>(Info.ReadyForTranslation); _worldPacket.FlushBits(); - for (QuestObjective const& questObjective : Info.Objectives) + for (QuestInfoObjective const& questObjective : Info.Objectives) { _worldPacket << uint32(questObjective.ID); _worldPacket << int32(questObjective.Type); _worldPacket << int8(questObjective.StorageIndex); _worldPacket << int32(questObjective.ObjectID); _worldPacket << int32(questObjective.Amount); - _worldPacket << int32(questObjective.SecondaryAmount); // only objective type 22 + _worldPacket << int32(questObjective.ConditionalAmount); // only objective type 22 _worldPacket << uint32(questObjective.Flags); _worldPacket << uint32(questObjective.Flags2); _worldPacket << float(questObjective.ProgressBarWeight); @@ -630,6 +631,8 @@ WorldPacket const* QuestGiverQuestListMessage::Write() WorldPacket const* QuestUpdateComplete::Write() { _worldPacket << int32(QuestID); + _worldPacket << Bits<1>(HideCreditMessage); + _worldPacket.FlushBits(); return &_worldPacket; } diff --git a/src/server/game/Server/Packets/QuestPackets.h b/src/server/game/Server/Packets/QuestPackets.h index 66cf8d43a1..08ec1c6af9 100644 --- a/src/server/game/Server/Packets/QuestPackets.h +++ b/src/server/game/Server/Packets/QuestPackets.h @@ -115,6 +115,24 @@ namespace WorldPackets int32 Type = 0; }; + struct QuestInfoObjective + { + uint32 ID = 0; + uint32 QuestID = 0; + uint8 Type = 0; + int8 StorageIndex = 0; + int32 ObjectID = 0; + int32 Amount = 0; + int32 ConditionalAmount = 0; + uint32 Flags = 0; + uint32 Flags2 = 0; + float ProgressBarWeight = 0.0f; + int32 ParentObjectiveID = 0; + bool Visible = false; + std::string_view Description; + std::span VisualEffects; + }; + struct ConditionalQuestText { int32 PlayerConditionID = 0; @@ -142,6 +160,7 @@ namespace WorldPackets int32 RewardSpell = 0; int32 RewardHonor = 0; float RewardKillHonor = 0.0f; + int32 RewardFavor = 0; int32 RewardArtifactXPDifficulty = 0; float RewardArtifactXPMultiplier = 0.0f; int32 RewardArtifactCategoryID = 0; @@ -178,12 +197,12 @@ namespace WorldPackets int32 AreaGroupID = 0; int64 TimeAllowed = 0; std::span TreasurePickerID; - std::span TreasurePickerID2; // unknown purpose, used only sometimes and only if TreasurePickerID is empty + std::span NonDisplayableTreasurePickerIDs; int32 Expansion = 0; int32 ManagedWorldStateID = 0; int32 QuestSessionBonus = 0; int32 QuestGiverCreatureID = 0; // used to select ConditionalQuestText - std::vector Objectives; + std::vector Objectives; std::vector ConditionalQuestDescription; std::vector ConditionalQuestCompletionLog; std::span RewardHouseRoomIDs; @@ -555,6 +574,7 @@ namespace WorldPackets WorldPacket const* Write() override; int32 QuestID = 0; + bool HideCreditMessage = false; }; class QuestConfirmAcceptResponse final : public ServerPacket diff --git a/src/server/game/Server/Packets/SpellPackets.cpp b/src/server/game/Server/Packets/SpellPackets.cpp index f98326d56e..1f11c30e83 100644 --- a/src/server/game/Server/Packets/SpellPackets.cpp +++ b/src/server/game/Server/Packets/SpellPackets.cpp @@ -169,9 +169,9 @@ ByteBuffer& operator>>(ByteBuffer& buffer, SpellTargetData& targetData) buffer >> targetData.Flags; buffer >> targetData.Unit; buffer >> targetData.Item; - buffer >> targetData.Unknown1127_1; + buffer >> targetData.HousingGUID; - buffer >> Bits<1>(targetData.Unknown1127_2); + buffer >> Bits<1>(targetData.HousingIsResident); buffer >> OptionalInit(targetData.SrcLocation); buffer >> OptionalInit(targetData.DstLocation); buffer >> OptionalInit(targetData.Orientation); @@ -205,9 +205,9 @@ ByteBuffer& operator>>(ByteBuffer& buffer, MissileTrajectoryRequest& trajectory) ByteBuffer& operator>>(ByteBuffer& data, SpellCraftingReagent& optionalReagent) { - data >> optionalReagent.ItemID; - data >> optionalReagent.DataSlotIndex; + data >> optionalReagent.Slot; data >> optionalReagent.Quantity; + data >> optionalReagent.Reagent; data >> OptionalInit(optionalReagent.Source); if (optionalReagent.Source) data >> *optionalReagent.Source; @@ -229,16 +229,17 @@ ByteBuffer& operator>>(ByteBuffer& buffer, SpellCastRequest& request) buffer >> request.SendCastFlags; buffer >> request.Misc[0]; buffer >> request.Misc[1]; + buffer >> request.Misc[2]; buffer >> request.SpellID; buffer >> request.Visual; buffer >> request.MissileTrajectory; buffer >> request.CraftingNPC; - buffer >> Size(request.OptionalCurrencies); - buffer >> Size(request.OptionalReagents); - buffer >> Size(request.RemovedModifications); - buffer >> request.CraftingFlags; + buffer >> Size(request.ExtraCurrencyCosts); + buffer >> Size(request.CraftingReagents); + buffer >> Size(request.RemovedReagents); + buffer >> request.CraftingCastFlags; - for (SpellExtraCurrencyCost& optionalCurrency : request.OptionalCurrencies) + for (SpellExtraCurrencyCost& optionalCurrency : request.ExtraCurrencyCosts) buffer >> optionalCurrency; buffer >> request.Target; @@ -248,13 +249,13 @@ ByteBuffer& operator>>(ByteBuffer& buffer, SpellCastRequest& request) buffer >> BitsSize<2>(request.Weight); buffer >> OptionalInit(request.CraftingOrderID); - for (SpellCraftingReagent& optionalReagent : request.OptionalReagents) + for (SpellCraftingReagent& optionalReagent : request.CraftingReagents) buffer >> optionalReagent; if (request.CraftingOrderID) buffer >> *request.CraftingOrderID; - for (SpellCraftingReagent& optionalReagent : request.RemovedModifications) + for (SpellCraftingReagent& optionalReagent : request.RemovedReagents) buffer >> optionalReagent; if (request.MoveUpdate) @@ -311,9 +312,9 @@ ByteBuffer& operator<<(ByteBuffer& data, SpellTargetData const& spellTargetData) data << uint32(spellTargetData.Flags); data << spellTargetData.Unit; data << spellTargetData.Item; - data << spellTargetData.Unknown1127_1; + data << spellTargetData.HousingGUID; - data << Bits<1>(spellTargetData.Unknown1127_2); + data << Bits<1>(spellTargetData.HousingIsResident); data << OptionalInit(spellTargetData.SrcLocation); data << OptionalInit(spellTargetData.DstLocation); data << OptionalInit(spellTargetData.Orientation); @@ -518,6 +519,7 @@ WorldPacket const* SpellFailure::Write() _worldPacket << int32(SpellID); _worldPacket << Visual; _worldPacket << uint16(Reason); + _worldPacket << FailedBy; return &_worldPacket; } @@ -529,6 +531,7 @@ WorldPacket const* SpellFailedOther::Write() _worldPacket << uint32(SpellID); _worldPacket << Visual; _worldPacket << uint8(Reason); + _worldPacket << FailedBy; return &_worldPacket; } @@ -541,6 +544,7 @@ WorldPacket const* CastFailed::Write() _worldPacket << int32(Reason); _worldPacket << int32(FailedArg1); _worldPacket << int32(FailedArg2); + _worldPacket << FailedBy; return &_worldPacket; } @@ -895,6 +899,8 @@ WorldPacket const* SpellChannelUpdate::Write() { _worldPacket << CasterGUID; _worldPacket << int32(TimeRemaining); + _worldPacket << FailedBy; + return &_worldPacket; } @@ -936,7 +942,7 @@ WorldPacket const* SpellEmpowerUpdate::Write() _worldPacket << TimeRemaining; _worldPacket << Size(StageDurations); _worldPacket << uint8(Status); - _worldPacket.FlushBits(); + _worldPacket << FailedBy; for (Duration stageDuration : StageDurations) _worldPacket << stageDuration; diff --git a/src/server/game/Server/Packets/SpellPackets.h b/src/server/game/Server/Packets/SpellPackets.h index cf9808e431..c9be01434f 100644 --- a/src/server/game/Server/Packets/SpellPackets.h +++ b/src/server/game/Server/Packets/SpellPackets.h @@ -19,6 +19,8 @@ #define TRINITYCORE_SPELL_PACKETS_H #include "CombatLogPacketsCommon.h" +#include "CraftingPacketsCommon.h" +#include "ItemPacketsCommon.h" #include "MovementInfo.h" #include "ObjectGuid.h" #include "Optional.h" @@ -203,10 +205,10 @@ namespace WorldPackets struct SpellTargetData { uint32 Flags = 0; - bool Unknown1127_2 = false; + bool HousingIsResident = false; ObjectGuid Unit; ObjectGuid Item; - ObjectGuid Unknown1127_1; + ObjectGuid HousingGUID; Optional SrcLocation; Optional DstLocation; Optional Orientation; @@ -229,9 +231,9 @@ namespace WorldPackets struct SpellCraftingReagent { - int32 ItemID = 0; - int32 DataSlotIndex = 0; + int32 Slot = 0; int32 Quantity = 0; + Crafting::CraftingReagentBase Reagent; Optional Source; }; @@ -251,13 +253,13 @@ namespace WorldPackets MissileTrajectoryRequest MissileTrajectory; Optional MoveUpdate; std::vector Weight; - Array OptionalReagents; - Array RemovedModifications; - Array OptionalCurrencies; + Array CraftingReagents; + Array RemovedReagents; + Array ExtraCurrencyCosts; Optional CraftingOrderID; - uint8 CraftingFlags = 0; // 1 = ApplyConcentration + uint8 CraftingCastFlags = 0; // 1 = ApplyConcentration ObjectGuid CraftingNPC; - int32 Misc[2] = { }; + std::array Misc = { }; }; class CastSpell final : public ClientPacket @@ -435,7 +437,7 @@ namespace WorldPackets class SpellFailure final : public ServerPacket { public: - explicit SpellFailure() : ServerPacket(SMSG_SPELL_FAILURE, 16 + 4 + 8 + 2 + 16) { } + explicit SpellFailure() : ServerPacket(SMSG_SPELL_FAILURE, 16 + 4 + 8 + 2 + 16 + 16) { } WorldPacket const* Write() override; @@ -444,12 +446,13 @@ namespace WorldPackets SpellCastVisual Visual; uint16 Reason = 0; ObjectGuid CastID; + ObjectGuid FailedBy; ///< Unit that caused the spell to fail, set for SPELL_FAILED_INTERRUPTED_COMBAT TODO: port commit from 3.3.5 that implements SPELL_FAILED_INTERRUPTED_COMBAT }; class SpellFailedOther final : public ServerPacket { public: - explicit SpellFailedOther() : ServerPacket(SMSG_SPELL_FAILED_OTHER, 16 + 4 + 8 + 1 + 16) { } + explicit SpellFailedOther() : ServerPacket(SMSG_SPELL_FAILED_OTHER, 16 + 4 + 8 + 1 + 16 + 16) { } WorldPacket const* Write() override; @@ -458,12 +461,13 @@ namespace WorldPackets SpellCastVisual Visual; uint8 Reason = 0; ObjectGuid CastID; + ObjectGuid FailedBy; ///< Unit that caused the spell to fail, set for SPELL_FAILED_INTERRUPTED_COMBAT TODO: port commit from 3.3.5 that implements SPELL_FAILED_INTERRUPTED_COMBAT }; class TC_GAME_API CastFailed final : public ServerPacket { public: - explicit CastFailed() : ServerPacket(SMSG_CAST_FAILED, 4 + 4 + 4 + 4 + 1) { } + explicit CastFailed() : ServerPacket(SMSG_CAST_FAILED, 16 + 4 + 8 + 4 + 4 + 4 + 16) { } WorldPacket const* Write() override; @@ -473,12 +477,13 @@ namespace WorldPackets int32 Reason = 0; int32 FailedArg1 = -1; int32 FailedArg2 = -1; + ObjectGuid FailedBy; ///< Unit that caused the spell to fail, set for SPELL_FAILED_INTERRUPTED_COMBAT TODO: port commit from 3.3.5 that implements SPELL_FAILED_INTERRUPTED_COMBAT }; class TC_GAME_API PetCastFailed final : public ServerPacket { public: - explicit PetCastFailed() : ServerPacket(SMSG_PET_CAST_FAILED, 4 + 4 + 4 + 1) { } + explicit PetCastFailed() : ServerPacket(SMSG_PET_CAST_FAILED, 16+ 4 + 4 + 4 + 4) { } WorldPacket const* Write() override; @@ -860,6 +865,7 @@ namespace WorldPackets ObjectGuid CasterGUID; int32 TimeRemaining = 0; + ObjectGuid FailedBy; ///< Unit that caused the spell to fail, set for SPELL_FAILED_INTERRUPTED_COMBAT TODO: port commit from 3.3.5 that implements SPELL_FAILED_INTERRUPTED_COMBAT }; class SpellEmpowerStart final : public ServerPacket @@ -894,6 +900,7 @@ namespace WorldPackets Duration TimeRemaining; std::vector> StageDurations; uint8 Status = 0; + ObjectGuid FailedBy; ///< Unit that caused the spell to fail, set for SPELL_FAILED_INTERRUPTED_COMBAT TODO: port commit from 3.3.5 that implements SPELL_FAILED_INTERRUPTED_COMBAT }; class SetEmpowerMinHoldStagePercent final : public ClientPacket diff --git a/src/server/game/Server/Packets/SystemPackets.cpp b/src/server/game/Server/Packets/SystemPackets.cpp index c819429a30..e44b53878f 100644 --- a/src/server/game/Server/Packets/SystemPackets.cpp +++ b/src/server/game/Server/Packets/SystemPackets.cpp @@ -77,7 +77,7 @@ ByteBuffer& operator<<(ByteBuffer& data, EuropaTicketConfig const& europaTicketS data << Bits<1>(europaTicketSystemStatus.SuggestionsEnabled); data << europaTicketSystemStatus.ThrottleState; - data << europaTicketSystemStatus.Unused1127; + data << europaTicketSystemStatus.ExpensiveThrottleState; return data; } @@ -94,7 +94,7 @@ ByteBuffer& operator<<(ByteBuffer& data, SquelchInfo const& squelch) ByteBuffer& operator<<(ByteBuffer& data, GameModeData const& gameMode) { data << uint8(gameMode.GameMode); - data << int32(gameMode.Unused1127); + data << int32(gameMode.ContentSetID); data << int32(gameMode.GameModeRecordID); return data; @@ -173,13 +173,12 @@ WorldPacket const* FeatureSystemStatus::Write() _worldPacket << Bits<1>(VoiceEnabled); _worldPacket << OptionalInit(EuropaTicketSystemStatus); _worldPacket << Bits<1>(BpayStoreAvailable); - _worldPacket << Bits<1>(BpayStoreDisabledByParentalControls); _worldPacket << Bits<1>(ItemRestorationButtonEnabled); _worldPacket << OptionalInit(SessionAlert); _worldPacket << Bits<1>(RAFSystem.Enabled); _worldPacket << Bits<1>(RAFSystem.RecruitingEnabled); - _worldPacket << Bits<1>(CharUndeleteEnabled); + _worldPacket << Bits<1>(RestrictedAccount); _worldPacket << Bits<1>(CommerceServerEnabled); _worldPacket << Bits<1>(TutorialEnabled); @@ -187,8 +186,8 @@ WorldPacket const* FeatureSystemStatus::Write() _worldPacket << Bits<1>(WorldTokenRedeemWillKick); _worldPacket << Bits<1>(KioskModeEnabled); _worldPacket << Bits<1>(CompetitiveModeEnabled); - _worldPacket << Bits<1>(RedeemForBalanceAvailable); + _worldPacket << Bits<1>(WarModeEnabled); _worldPacket << Bits<1>(CommunitiesEnabled); _worldPacket << Bits<1>(BnetGroupsEnabled); @@ -196,8 +195,8 @@ WorldPacket const* FeatureSystemStatus::Write() _worldPacket << Bits<1>(ClubPresenceAllowSubscribeAll); _worldPacket << Bits<1>(VoiceChatParentalDisabled); _worldPacket << Bits<1>(VoiceChatParentalMuted); - _worldPacket << Bits<1>(QuestSessionEnabled); + _worldPacket << Bits<1>(IsChatMuted); _worldPacket << Bits<1>(ClubFinderEnabled); _worldPacket << Bits<1>(CommunityFinderEnabled); @@ -205,30 +204,29 @@ WorldPacket const* FeatureSystemStatus::Write() _worldPacket << Bits<1>(SpeakForMeAllowed); _worldPacket << Bits<1>(DoesAccountNeedAADCPrompt); _worldPacket << Bits<1>(IsAccountOptedInToAADC); - _worldPacket << Bits<1>(LfgRequireAuthenticatorEnabled); + _worldPacket << Bits<1>(ScriptsDisallowedForBeta); _worldPacket << Bits<1>(TimerunningEnabled); - _worldPacket << Bits<1>(WarGamesEnabled); + _worldPacket << Bits<1>(PlayerIdentityOptionsEnabled); _worldPacket << Bits<1>(IsPlayerContentTrackingEnabled); - _worldPacket << Bits<1>(SellAllJunkEnabled); - _worldPacket << Bits<1>(GroupFinderEnabled); - _worldPacket << Bits<1>(IsPremadeGroupEnabled); - - _worldPacket << Bits<1>(false); // unused 10.2.7 + _worldPacket << Bits<1>(LfdEnabled); + _worldPacket << Bits<1>(LfrEnabled); + _worldPacket << Bits<1>(PetHappinessEnabled); _worldPacket << Bits<1>(GuildEventsEditsEnabled); + _worldPacket << Bits<1>(GuildTradeSkillsEnabled); _worldPacket << SizedString::BitsSize<10>(Unknown1027); _worldPacket << Bits<1>(BNSendWhisperUseV2Services); _worldPacket << Bits<1>(BNSendGameDataUseV2Services); _worldPacket << Bits<1>(IsAccountCurrencyTransferEnabled); - - _worldPacket << Bits<1>(false); // unused 11.0.7 + _worldPacket << Bits<1>(NetEaseChatTelemetryEnabled); _worldPacket << Bits<1>(LobbyMatchmakerQueueFromMainlineEnabled); + _worldPacket << Bits<1>(CanSendLobbyMatchmakerPartyCustomizations); - _worldPacket << Bits<1>(AddonProfilerEnabled); - _worldPacket << Bits<1>(false); // unused 11.1.7 - _worldPacket << Bits<1>(false); // unused 11.1.7 + _worldPacket << Bits<1>(AddonProfilingEnabled); + _worldPacket << Bits<1>(GlobalUserGeneratedContentMuteEnabled); + _worldPacket << Bits<1>(AccountUserGeneratedContentIsRisky); _worldPacket.FlushBits(); @@ -250,9 +248,9 @@ WorldPacket const* FeatureSystemStatus::Write() WorldPacket const* FeatureSystemStatusGlueScreen::Write() { _worldPacket << Bits<1>(BpayStoreAvailable); - _worldPacket << Bits<1>(BpayStoreDisabledByParentalControls); _worldPacket << Bits<1>(CharUndeleteEnabled); _worldPacket << Bits<1>(CommerceServerEnabled); + _worldPacket << Bits<1>(PaidCharacterTransfersBetweenBnetAccountsEnabled); _worldPacket << Bits<1>(VeteranTokenRedeemWillKick); _worldPacket << Bits<1>(WorldTokenRedeemWillKick); _worldPacket << Bits<1>(ExpansionPreorderInStore); @@ -262,12 +260,11 @@ WorldPacket const* FeatureSystemStatusGlueScreen::Write() _worldPacket << Bits<1>(BoostEnabled); _worldPacket << Bits<1>(TrialBoostEnabled); _worldPacket << Bits<1>(RedeemForBalanceAvailable); - _worldPacket << Bits<1>(PaidCharacterTransfersBetweenBnetAccountsEnabled); _worldPacket << Bits<1>(LiveRegionCharacterListEnabled); _worldPacket << Bits<1>(LiveRegionCharacterCopyEnabled); _worldPacket << Bits<1>(LiveRegionAccountCopyEnabled); - _worldPacket << Bits<1>(LiveRegionKeyBindingsCopyEnabled); + _worldPacket << Bits<1>(BrowserCrashReporterEnabled); _worldPacket << Bits<1>(IsEmployeeAccount); _worldPacket << OptionalInit(EuropaTicketSystemStatus); @@ -275,8 +272,8 @@ WorldPacket const* FeatureSystemStatusGlueScreen::Write() _worldPacket << OptionalInit(LaunchDurationETA); _worldPacket << Bits<1>(TimerunningEnabled); _worldPacket << Bits<1>(ScriptsDisallowedForBeta); - _worldPacket << Bits<1>(PlayerIdentityOptionsEnabled); + _worldPacket << Bits<1>(AccountExportEnabled); _worldPacket << Bits<1>(AccountLockedPostExport); @@ -284,12 +281,12 @@ WorldPacket const* FeatureSystemStatusGlueScreen::Write() _worldPacket << Bits<1>(BNSendWhisperUseV2Services); _worldPacket << Bits<1>(BNSendGameDataUseV2Services); - _worldPacket << Bits<1>(CharacterSelectListModeRealmless); + _worldPacket << Bits<1>(WowTokenLimitedMode); - _worldPacket << Bits<1>(false); // unused 11.1.7 - _worldPacket << Bits<1>(false); // unused 11.1.7 - _worldPacket << Bits<1>(PandarenLevelBoostAllowed); + _worldPacket << Bits<1>(NavBarEnabled); + _worldPacket << Bits<1>(GlobalUserGeneratedContentMuteEnabled); + _worldPacket << Bits<1>(AccountUserGeneratedContentIsRisky); _worldPacket.FlushBits(); diff --git a/src/server/game/Server/Packets/SystemPackets.h b/src/server/game/Server/Packets/SystemPackets.h index a0210f4fbf..a166799dac 100644 --- a/src/server/game/Server/Packets/SystemPackets.h +++ b/src/server/game/Server/Packets/SystemPackets.h @@ -77,7 +77,7 @@ namespace WorldPackets bool SuggestionsEnabled = false; SavedThrottleObjectState ThrottleState; - SavedThrottleObjectState Unused1127; + SavedThrottleObjectState ExpensiveThrottleState; }; struct SquelchInfo @@ -90,7 +90,7 @@ namespace WorldPackets struct GameModeData { uint8 GameMode = 0; - int32 Unused1127 = 0; + int32 ContentSetID = 0; int32 GameModeRecordID = 0; }; @@ -145,7 +145,6 @@ namespace WorldPackets Duration NotFoundCacheTimeSeconds = 10s; bool ItemRestorationButtonEnabled = false; bool CharUndeleteEnabled = false; ///< Implemented - bool BpayStoreDisabledByParentalControls = false; bool CommerceServerEnabled = false; bool VeteranTokenRedeemWillKick = false; bool WorldTokenRedeemWillKick = false; @@ -173,19 +172,22 @@ namespace WorldPackets bool LfgRequireAuthenticatorEnabled = false; bool ScriptsDisallowedForBeta = false; bool TimerunningEnabled = false; - bool WarGamesEnabled = false; // classic only + bool PlayerIdentityOptionsEnabled = false; // classic only bool IsPlayerContentTrackingEnabled = false; - bool SellAllJunkEnabled = false; - bool GroupFinderEnabled = true; // classic only - bool IsPremadeGroupEnabled = true; // classic only + bool LfdEnabled = false; + bool LfrEnabled = true; // classic only + bool PetHappinessEnabled = true; // classic only bool GuildEventsEditsEnabled = true; bool GuildTradeSkillsEnabled = true; bool BNSendWhisperUseV2Services = true; ///< BNSendWhisper will send to v2.WhisperService instead of v1.NotificationService bool BNSendGameDataUseV2Services = true; ///< BNSendGameData will send to v2.NotificationService instead of v1.NotificationService bool IsAccountCurrencyTransferEnabled = false; + bool NetEaseChatTelemetryEnabled = false; bool LobbyMatchmakerQueueFromMainlineEnabled = false; bool CanSendLobbyMatchmakerPartyCustomizations = false; - bool AddonProfilerEnabled = false; + bool AddonProfilingEnabled = false; + bool GlobalUserGeneratedContentMuteEnabled = false; + bool AccountUserGeneratedContentIsRisky = false; SocialQueueConfig QuickJoinConfig; SquelchInfo Squelch; @@ -221,6 +223,7 @@ namespace WorldPackets bool BpayStoreDisabledByParentalControls = false; // NYI bool CharUndeleteEnabled = false; bool CommerceServerEnabled = false; // NYI + bool PaidCharacterTransfersBetweenBnetAccountsEnabled = false; bool VeteranTokenRedeemWillKick = false; // NYI bool WorldTokenRedeemWillKick = false; // NYI bool ExpansionPreorderInStore = false; // NYI @@ -229,7 +232,6 @@ namespace WorldPackets bool BoostEnabled = false; // classic only bool TrialBoostEnabled = false; // NYI bool RedeemForBalanceAvailable = false; // NYI - bool PaidCharacterTransfersBetweenBnetAccountsEnabled = false; bool LiveRegionCharacterListEnabled = false; // NYI bool LiveRegionCharacterCopyEnabled = false; // NYI bool LiveRegionAccountCopyEnabled = false; // NYI @@ -246,7 +248,9 @@ namespace WorldPackets bool BNSendGameDataUseV2Services = true; ///< BNSendGameData will send to v2.NotificationService instead of v1.NotificationService bool CharacterSelectListModeRealmless = false; bool WowTokenLimitedMode = false; // classic only - bool PandarenLevelBoostAllowed = false; // classic only + bool NavBarEnabled = false; + bool GlobalUserGeneratedContentMuteEnabled = false; + bool AccountUserGeneratedContentIsRisky = false; Optional EuropaTicketSystemStatus; std::vector LiveRegionCharacterCopySourceRegions; uint32 CommercePricePollTimeSeconds = 0; // NYI diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 7f037c3ab7..ca7faeda6e 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -248,6 +248,7 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_BLACK_MARKET_REQUEST_ITEMS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBlackMarketRequestItems); DEFINE_HANDLER(CMSG_BONUS_ROLL, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_BUG_REPORT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBugReportOpcode); + DEFINE_HANDLER(CMSG_BULK_PURCHASE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_BUSY_TRADE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBusyTradeOpcode); DEFINE_HANDLER(CMSG_BUY_ACCOUNT_BANK_TAB, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBuyBankTab); DEFINE_HANDLER(CMSG_BUY_BACK_ITEM, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleBuybackItem); @@ -282,6 +283,7 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_CAN_DUEL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCanDuel); DEFINE_HANDLER(CMSG_CAN_REDEEM_TOKEN_FOR_BALANCE, STATUS_IGNORED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_CAST_SPELL, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleCastSpellOpcode); + DEFINE_HANDLER(CMSG_CATALOG_SHOP_LICENSE_GAME_DATA_REQUEST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_CHALLENGE_MODE_REQUEST_LEADERS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_CHANGE_BAG_SLOT_FLAG, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleChangeBagSlotFlag); DEFINE_HANDLER(CMSG_CHANGE_BANK_BAG_SLOT_FLAG, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::Handle_NULL); @@ -370,13 +372,13 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_CLUB_FINDER_WHISPER_APPLICANT_REQUEST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_CLUB_PRESENCE_SUBSCRIBE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_COLLECTION_ITEM_SET_FAVORITE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCollectionItemSetFavorite); - DEFINE_HANDLER(CMSG_COMMENTATOR_SPECTATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_COMMENTATOR_ENABLE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_COMMENTATOR_ENTER_INSTANCE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_COMMENTATOR_EXIT_INSTANCE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_COMMENTATOR_GET_MAP_INFO, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_COMMENTATOR_GET_PLAYER_COOLDOWNS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_COMMENTATOR_GET_PLAYER_INFO, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_COMMENTATOR_SPECTATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_COMMENTATOR_START_WARGAME, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_COMMERCE_TOKEN_GET_COUNT, STATUS_IGNORED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_COMMERCE_TOKEN_GET_LOG, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCommerceTokenGetLog); @@ -485,9 +487,16 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_GENERATE_RANDOM_CHARACTER_NAME, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleRandomizeCharNameOpcode); DEFINE_HANDLER(CMSG_GET_ACCOUNT_CHARACTER_LIST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_GET_ACCOUNT_NOTIFICATIONS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_GET_ALL_LICENSED_DECOR_QUANTITIES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_GET_AVAILABLE_INITIATIVE_REQUEST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_GET_CHARACTER_CURRENCY_TRANSFER_LOG, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_GET_CLIENT_CHECKOUT_LICENSES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_GET_DECOR_REFUND_LIST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_GET_GARRISON_INFO, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGetGarrisonInfo); + DEFINE_HANDLER(CMSG_GET_INITIATIVE_ACTIVITY_LOG_REQUEST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_GET_ITEM_PURCHASE_DATA, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleGetItemPurchaseData); DEFINE_HANDLER(CMSG_GET_LANDING_PAGE_SHIPMENTS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_GET_LAST_CATALOG_FETCH, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_GET_MIRROR_IMAGE_DATA, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMirrorImageDataRequest); DEFINE_HANDLER(CMSG_GET_PVP_OPTIONS_ENABLED, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleGetPVPOptionsEnabled); DEFINE_HANDLER(CMSG_GET_RAF_ACCOUNT_INFO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); @@ -552,52 +561,59 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_HEARTH_AND_RESURRECT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleHearthAndResurrect); DEFINE_HANDLER(CMSG_HIDE_QUEST_CHOICE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_HOTFIX_REQUEST, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleHotfixRequest); - DEFINE_HANDLER(CMSG_HOUSE_EXTERIOR_COMMIT_POSITION, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSE_EXTERIOR_LOCK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSE_EXTERIOR_SET_HOUSE_POSITION, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_HOUSE_INTERIOR_LEAVE_HOUSE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_DECOR_CATALOG_CREATE_SEARCHER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_DECOR_CATALOG_DESTROY_ALL_ENTRY_COPIES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_DECOR_CATALOG_DESTROY_ENTRY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_DECOR_COMMIT_DYES_FOR_SELECTED_DECOR, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_DECOR_MOVE_DECOR, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_DECOR_PLACE_NEW_DECOR, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_DECOR_REMOVE_PLACED_DECOR_ENTRY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_DECOR_SELECT_DECOR, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_DECOR_START_PLACING_NEW_DECOR, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_FIXTURE_REMOVE_FIXTURE_FROM_SELECTED_POINT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_FIXTURE_SELECT_CORE_FIXTURE_OPTION, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_FIXTURE_SELECT_FIXTURE_OPTION, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_FIXTURE_SET_EDITOR_MODE_ACTIVE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_KIOSK_REQUEST_HOUSING_RESET, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_REQUEST_CURRENT_HOUSE_INFO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_ROOM_APPLY_THEME, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_ROOM_APPLY_WALLPAPER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_ROOM_MOVE_DRAGGED_ROOM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_ROOM_PLACE_ROOM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_ROOM_REMOVE_ROOM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_ROOM_ROTATE_ROOM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_ROOM_SET_EDITOR_MODE_ACTIVE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_ROOM_SET_ROOM_COMPONENT_CEILING_TYPE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_ROOM_SET_ROOM_COMPONENT_DOOR_TYPE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_SERVICES_ACCEPT_NEIGHBORHOOD_OWNERSHIP, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_SERVICES_CREATE_GUILD_NEIGHBORHOOD, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_SERVICES_DECLINE_NEIGHBORHOOD_OWNERSHIP, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_SERVICES_ENTER_HOUSE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_SERVICES_GET_OTHERS_BNET_ACCOUNT_OWNED_HOUSES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_SERVICES_GET_OTHERS_PLAYER_OWNED_HOUSES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_SERVICES_GET_PLAYER_OWNED_HOUSES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_SERVICES_HOUSE_FINDER_DECLINE_NEIGHBORHOOD_INVITATION, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_SERVICES_HOUSE_FINDER_REQUEST_NEIGHBORHOODS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_SERVICES_HOUSE_FINDER_REQUEST_RESERVATION_AND_PORT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_SERVICES_RELINQUISH_HOUSE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_SERVICES_REQUEST_HOUSE_FINDER_NEIGHBORHOOD_DATA, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_SERVICES_REQUEST_PLAYER_CHARACTER_LIST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_SERVICES_SAVE_HOUSE_SETTINGS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_SERVICES_SEARCH_BNET_FRIEND_NEIGHBORHOODS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_HOUSING_SERVICES_START_TUTORIAL, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_DECOR_DELETE_FROM_STORAGE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_DECOR_DELETE_FROM_STORAGE_BY_ID, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_DECOR_LOCK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_DECOR_MOVE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_DECOR_PLACE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_DECOR_REDEEM_DEFERRED_DECOR, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_DECOR_REMOVE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_DECOR_REQUEST_STORAGE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_DECOR_SET_DYE_SLOTS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_DECOR_SET_EDIT_MODE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_FIXTURE_CREATE_FIXTURE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_FIXTURE_DELETE_FIXTURE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_FIXTURE_SET_CORE_FIXTURE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_FIXTURE_SET_EDIT_MODE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_FIXTURE_SET_HOUSE_SIZE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_FIXTURE_SET_HOUSE_TYPE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_GET_CURRENT_HOUSE_INFO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_GET_PLAYER_PERMISSIONS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_HOUSE_STATUS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_RESET_KIOSK_MODE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_ROOM_ADD, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_ROOM_APPLY_COMPONENT_MATERIALS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_ROOM_MOVE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_ROOM_REMOVE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_ROOM_ROTATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_ROOM_SET_CEILING_TYPE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_ROOM_SET_COMPONENT_THEME, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_ROOM_SET_DOOR_TYPE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_ROOM_SET_LAYOUT_EDIT_MODE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_SVCS_ACCEPT_NEIGHBORHOOD_OWNERSHIP, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_SVCS_DELETE_ALL_NEIGHBORHOOD_INVITES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_SVCS_GET_BNET_FRIEND_NEIGHBORHOODS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_SVCS_GET_HOUSE_FINDER_INFO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_SVCS_GET_HOUSE_FINDER_NEIGHBORHOOD, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_SVCS_GET_PLAYER_HOUSES_INFO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_SVCS_GET_POTENTIAL_HOUSE_OWNERS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_SVCS_GUILD_CREATE_NEIGHBORHOOD, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_SVCS_NEIGHBORHOOD_RESERVE_PLOT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_SVCS_PLAYER_VIEW_HOUSES_BY_BNET_ACCOUNT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_SVCS_PLAYER_VIEW_HOUSES_BY_PLAYER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_SVCS_REJECT_NEIGHBORHOOD_OWNERSHIP, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_SVCS_RELINQUISH_HOUSE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_SVCS_RELINQUISH_HOUSE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_SVCS_START_TUTORIAL, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_SVCS_TELEPORT_TO_PLOT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_HOUSING_SVCS_UPDATE_HOUSE_SETTINGS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_IGNORE_TRADE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleIgnoreTradeOpcode); DEFINE_HANDLER(CMSG_INITIATE_ROLE_POLL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleInitiateRolePoll); DEFINE_HANDLER(CMSG_INITIATE_TRADE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleInitiateTradeOpcode); + DEFINE_HANDLER(CMSG_INITIATIVE_UPDATE_ACTIVE_NEIGHBORHOOD, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_INSPECT, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleInspectOpcode); DEFINE_HANDLER(CMSG_INSTANCE_ABANDON_VOTE_RESPONSE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_INSTANCE_LOCK_RESPONSE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleInstanceLockResponse); @@ -625,6 +641,7 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_LFG_LIST_LEAVE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_LFG_LIST_SEARCH, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_LFG_LIST_UPDATE_REQUEST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_LFG_LOREWALKING_UPDATE_REQUEST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_LIST_INVENTORY, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleListInventoryOpcode); DEFINE_HANDLER(CMSG_LIVE_REGION_ACCOUNT_RESTORE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_LIVE_REGION_CHARACTER_COPY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); @@ -691,6 +708,7 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_MOVE_FEATHER_FALL_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementAckMessage); DEFINE_HANDLER(CMSG_MOVE_FORCE_FLIGHT_BACK_SPEED_CHANGE_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleForceSpeedChangeAck); DEFINE_HANDLER(CMSG_MOVE_FORCE_FLIGHT_SPEED_CHANGE_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleForceSpeedChangeAck); + DEFINE_HANDLER(CMSG_MOVE_FORCE_GRAVITY_MODIFIER_CHANGE_ACK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_MOVE_FORCE_PITCH_RATE_CHANGE_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleForceSpeedChangeAck); DEFINE_HANDLER(CMSG_MOVE_FORCE_ROOT_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementAckMessage); DEFINE_HANDLER(CMSG_MOVE_FORCE_RUN_BACK_SPEED_CHANGE_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleForceSpeedChangeAck); @@ -707,6 +725,7 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_MOVE_HOVER_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementAckMessage); DEFINE_HANDLER(CMSG_MOVE_INERTIA_DISABLE_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementAckMessage); DEFINE_HANDLER(CMSG_MOVE_INERTIA_ENABLE_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementAckMessage); + DEFINE_HANDLER(CMSG_MOVE_INITIAL_OBJECT_UPDATE_COMPLETE_ACK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_MOVE_INIT_ACTIVE_MOVER_COMPLETE, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMoveInitActiveMoverComplete); DEFINE_HANDLER(CMSG_MOVE_JUMP, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes); DEFINE_HANDLER(CMSG_MOVE_KNOCK_BACK_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMoveKnockBackAck); @@ -727,6 +746,7 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_MOVE_SET_ADV_FLYING_PITCHING_RATE_UP_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleSetAdvFlyingSpeedRangeAck); DEFINE_HANDLER(CMSG_MOVE_SET_ADV_FLYING_SURFACE_FRICTION_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleSetAdvFlyingSpeedAck); DEFINE_HANDLER(CMSG_MOVE_SET_ADV_FLYING_TURN_VELOCITY_THRESHOLD_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleSetAdvFlyingSpeedRangeAck); + DEFINE_HANDLER(CMSG_MOVE_SET_CANNOT_SWIM_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementAckMessage); DEFINE_HANDLER(CMSG_MOVE_SET_CAN_ADV_FLY_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementAckMessage); DEFINE_HANDLER(CMSG_MOVE_SET_CAN_DRIVE_ACK, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_MOVE_SET_CAN_FLY_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementAckMessage); @@ -766,29 +786,31 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_MOVE_UPDATE_FALL_SPEED, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes); DEFINE_HANDLER(CMSG_MOVE_WATER_WALK_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementAckMessage); DEFINE_HANDLER(CMSG_MYTHIC_PLUS_REQUEST_MAP_STATS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_NEIGHBORHOOD_ADD_MANAGER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_NEIGHBORHOOD_CANCEL_RESIDENT_INVITATION, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_NEIGHBORHOOD_CHARTER_CONFIRMATION_RESPONSE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_NEIGHBORHOOD_CHARTER_CREATE_NEIGHBORHOOD_CHARTER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_NEIGHBORHOOD_CHARTER_EDIT_NEIGHBORHOOD_CHARTER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_NEIGHBORHOOD_CHARTER_OPEN_CHARTER_CONFIRMATION, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_NEIGHBORHOOD_CHARTER_REQUEST_SIGNATURE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_NEIGHBORHOOD_CHARTER_SIGN, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_NEIGHBORHOOD_DECLINE_NEIGHBORHOOD_INVITATION, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_NEIGHBORHOOD_EVICT_PLAYER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_NEIGHBORHOOD_GET_HOUSING_INVITATION, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_NEIGHBORHOOD_ADD_SECONDARY_OWNER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_NEIGHBORHOOD_BUY_HOUSE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_NEIGHBORHOOD_CANCEL_INVITATION, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_NEIGHBORHOOD_CHARTER_ADD_SIGNATURE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_NEIGHBORHOOD_CHARTER_CREATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_NEIGHBORHOOD_CHARTER_EDIT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_NEIGHBORHOOD_CHARTER_FINALIZE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_NEIGHBORHOOD_CHARTER_OPEN_CONFIRMATION_UI, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_NEIGHBORHOOD_CHARTER_SEND_SIGNATURE_REQUEST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_NEIGHBORHOOD_EVICT_PLOT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_NEIGHBORHOOD_GET_INVITES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_NEIGHBORHOOD_INTERACT_WITH_CORNERSTONE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_NEIGHBORHOOD_GET_ROSTER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_NEIGHBORHOOD_INITIATIVE_SERVICE_STATUS_CHECK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_NEIGHBORHOOD_INVITE_RESIDENT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_NEIGHBORHOOD_MOVE_HOUSE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_NEIGHBORHOOD_OFFER_NEIGHBORHOOD_OWNERSHIP, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_NEIGHBORHOOD_PURCHASE_PLOT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_NEIGHBORHOOD_REMOVE_MANAGER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_NEIGHBORHOOD_REQUEST_NEIGHBORHOOD_ROSTER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_NEIGHBORHOOD_SET_NAME, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_NEIGHBORHOOD_SET_PUBLIC, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_NEIGHBORHOOD_OFFER_OWNERSHIP, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_NEIGHBORHOOD_OPEN_CORNERSTONE_UI, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_NEIGHBORHOOD_PLAYER_DECLINE_INVITE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_NEIGHBORHOOD_PLAYER_GET_INVITE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_NEIGHBORHOOD_REMOVE_SECONDARY_OWNER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_NEIGHBORHOOD_SET_PUBLIC_FLAG, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_NEIGHBORHOOD_UPDATE_NAME, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_NEUTRAL_PLAYER_SELECT_FACTION, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_NEXT_CINEMATIC_CAMERA, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleNextCinematicCamera); + DEFINE_HANDLER(CMSG_NPC_CRAFTING_ORDER_REQUEST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_OBJECT_UPDATE_FAILED, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleObjectUpdateFailedOpcode); DEFINE_HANDLER(CMSG_OBJECT_UPDATE_RESCUED, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleObjectUpdateRescuedOpcode); DEFINE_HANDLER(CMSG_OFFER_PETITION, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleOfferPetition); @@ -803,6 +825,7 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_PARTY_INVITE_RESPONSE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePartyInviteResponseOpcode); DEFINE_HANDLER(CMSG_PARTY_UNINVITE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePartyUninviteOpcode); DEFINE_HANDLER(CMSG_PERFORM_ITEM_INTERACTION, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_PERKS_PROGRAM_GET_RECENT_PURCHASES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_PERKS_PROGRAM_ITEMS_REFRESHED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_PERKS_PROGRAM_REQUEST_CART_CHECKOUT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_PERKS_PROGRAM_REQUEST_PENDING_REWARDS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); @@ -865,6 +888,7 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_QUERY_TREASURE_PICKER, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQueryTreasurePicker); DEFINE_HANDLER(CMSG_QUERY_WOW_LABS_AREA_INFO, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_QUEST_CONFIRM_ACCEPT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestConfirmAccept); + DEFINE_HANDLER(CMSG_QUEST_DRIVEN_SCENARIO_STATE_CHANGE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_QUEST_GIVER_ACCEPT_QUEST, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQuestgiverAcceptQuestOpcode); DEFINE_HANDLER(CMSG_QUEST_GIVER_CHOOSE_REWARD, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQuestgiverChooseRewardOpcode); DEFINE_HANDLER(CMSG_QUEST_GIVER_CLOSE_QUEST, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQuestgiverCloseQuest); @@ -889,6 +913,7 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_RAF_CLAIM_ACTIVITY_REWARD, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_RAF_CLAIM_NEXT_REWARD, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_RAF_GENERATE_RECRUITMENT_LINK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_RAF_RECRUIT_PRESENCE_SUBSCRIBE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_RAF_UPDATE_RECRUITMENT_INFO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_RANDOM_ROLL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRandomRollOpcode); DEFINE_HANDLER(CMSG_READY_CHECK_RESPONSE, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleReadyCheckResponseOpcode); @@ -896,6 +921,8 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_RECENT_ALLY_REQUEST_DATA, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_RECENT_ALLY_SET_NOTE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_RECLAIM_CORPSE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleReclaimCorpse); + DEFINE_HANDLER(CMSG_REFRESH_ENTITLEMENTS_ON_ORDER_COMPLETE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_REGISTER_FAST_LOGIN, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_REMOVE_NEW_ITEM, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleRemoveNewItem); DEFINE_HANDLER(CMSG_REMOVE_RAF_RECRUIT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_REORDER_CHARACTERS, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleReorderCharacters); @@ -910,12 +937,14 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_REQUEST_BATTLEFIELD_STATUS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestBattlefieldStatusOpcode); DEFINE_HANDLER(CMSG_REQUEST_CEMETERY_LIST, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleRequestCemeteryList); DEFINE_HANDLER(CMSG_REQUEST_CHARACTER_GUILD_FOLLOW_INFO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_REQUEST_CHAT_LOGIN, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_REQUEST_COVENANT_CALLINGS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_REQUEST_CROWD_CONTROL_SPELL, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_REQUEST_CURRENCY_DATA_FOR_ACCOUNT_CHARACTERS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_REQUEST_GARRISON_TALENT_WORLD_QUEST_UNLOCKS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_REQUEST_GUILD_PARTY_STATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildRequestPartyState); DEFINE_HANDLER(CMSG_REQUEST_GUILD_REWARDS_LIST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestGuildRewardsList); + DEFINE_HANDLER(CMSG_REQUEST_INSTANCE_ENCOUNTER_EVENT_SYNC, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_REQUEST_LATEST_SPLASH_SCREEN, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleRequestLatestSplashScreen); DEFINE_HANDLER(CMSG_REQUEST_LFG_LIST_BLACKLIST, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_REQUEST_MYTHIC_PLUS_AFFIXES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); @@ -934,6 +963,7 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_REQUEST_STABLED_PETS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestStabledPets); DEFINE_HANDLER(CMSG_REQUEST_STORE_FRONT_INFO_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_REQUEST_SURVEY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_REQUEST_TREASURE_PUNCH_LIST_ITEMS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_REQUEST_VEHICLE_EXIT, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleRequestVehicleExit); DEFINE_HANDLER(CMSG_REQUEST_VEHICLE_NEXT_SEAT, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleRequestVehicleNextSeat); DEFINE_HANDLER(CMSG_REQUEST_VEHICLE_PREV_SEAT, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleRequestVehiclePrevSeat); @@ -946,8 +976,8 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_RESURRECT_RESPONSE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleResurrectResponse); DEFINE_HANDLER(CMSG_REVERT_MONUMENT_APPEARANCE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_RIDE_VEHICLE_INTERACT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRideVehicleInteract); + DEFINE_HANDLER(CMSG_SAVE_ACCOUNT_DATA_EXPORT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_SAVE_CUF_PROFILES, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSaveCUFProfiles); - DEFINE_HANDLER(CMSG_SAVE_ACCOUNT_DATA_EXPORT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_SAVE_EQUIPMENT_SET, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleEquipmentSetSave); DEFINE_HANDLER(CMSG_SAVE_GUILD_EMBLEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSaveGuildEmblem); DEFINE_HANDLER(CMSG_SAVE_PERSONAL_EMBLEM, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSavePersonalEmblem); @@ -966,6 +996,7 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_SEND_PING_WORLD_POINT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSendPingWorldPoint); DEFINE_HANDLER(CMSG_SEND_TEXT_EMOTE, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleTextEmoteOpcode); DEFINE_HANDLER(CMSG_SERVER_TIME_OFFSET_REQUEST, STATUS_AUTHED, PROCESS_INPLACE, &WorldSession::HandleServerTimeOffsetRequest); + DEFINE_HANDLER(CMSG_SERVER_VALIDATION_SIGNATURE_REQUEST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_SETUP_WARBAND_GROUPS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_SET_ACTION_BAR_TOGGLES, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetActionBarToggles); DEFINE_HANDLER(CMSG_SET_ACTION_BUTTON, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetActionButtonOpcode); @@ -1005,6 +1036,7 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_SET_SELECTION, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetSelectionOpcode); DEFINE_HANDLER(CMSG_SET_SHEATHED, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSetSheathedOpcode); DEFINE_HANDLER(CMSG_SET_SORT_BAGS_RIGHT_TO_LEFT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_SET_STOP_CONVERSATION, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_SET_TAXI_BENCHMARK_MODE, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSetTaxiBenchmark); DEFINE_HANDLER(CMSG_SET_TITLE, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSetTitleOpcode); DEFINE_HANDLER(CMSG_SET_TRADE_CURRENCY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetTradeCurrencyOpcode); @@ -1021,8 +1053,8 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_SORT_ACCOUNT_BANK_BAGS, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSortAccountBankBags); DEFINE_HANDLER(CMSG_SORT_BAGS, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSortBags); DEFINE_HANDLER(CMSG_SORT_BANK_BAGS, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSortBankBags); + DEFINE_HANDLER(CMSG_SPAWN_TRACKING_UPDATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_SPECTATE_CHANGE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_SPAWN_TRACKING_UPDATE, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSpawnTrackingUpdate); DEFINE_HANDLER(CMSG_SPELL_CLICK, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSpellClick); DEFINE_HANDLER(CMSG_SPELL_EMPOWER_RELEASE, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleSpellEmpowerRelease); DEFINE_HANDLER(CMSG_SPELL_EMPOWER_RESTART, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleSpellEmpowerRestart); @@ -1065,10 +1097,15 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_TRADE_SKILL_SET_FAVORITE, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleTradeSkillSetFavorite); DEFINE_HANDLER(CMSG_TRAINER_BUY_SPELL, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleTrainerBuySpellOpcode); DEFINE_HANDLER(CMSG_TRAINER_LIST, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleTrainerListOpcode); + DEFINE_HANDLER(CMSG_TRAINING_GROUNDS_JOIN, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_TRAITS_COMMIT_CONFIG, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleTraitsCommitConfig); DEFINE_HANDLER(CMSG_TRAITS_TALENT_TEST_UNLEARN_SPELLS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_TRANSFER_CURRENCY_FROM_ACCOUNT_CHARACTER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_TRANSMOGRIFY_ITEMS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleTransmogrifyItems); + DEFINE_HANDLER(CMSG_TRANSMOG_OUTFIT_NEW, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_TRANSMOG_OUTFIT_UPDATE_INFO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_TRANSMOG_OUTFIT_UPDATE_SITUATIONS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_TRANSMOG_OUTFIT_UPDATE_SLOTS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_TURN_IN_PETITION, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleTurnInPetition); DEFINE_HANDLER(CMSG_TUTORIAL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleTutorialFlag); DEFINE_HANDLER(CMSG_UI_MAP_QUEST_LINES_REQUEST, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleUiMapQuestLinesRequest); @@ -1081,6 +1118,7 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_UPDATE_ACCOUNT_DATA, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleUpdateAccountData); DEFINE_HANDLER(CMSG_UPDATE_AREA_TRIGGER_VISUAL, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleUpdateAreaTriggerVisual); DEFINE_HANDLER(CMSG_UPDATE_CRAFTING_NPC_RECIPES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_UPDATE_LAST_CATALOG_FETCH, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_UPDATE_MISSILE_TRAJECTORY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleUpdateMissileTrajectory); DEFINE_HANDLER(CMSG_UPDATE_RAID_TARGET, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleUpdateRaidTargetOpcode); DEFINE_HANDLER(CMSG_UPDATE_SPELL_VISUAL, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleUpdateAuraVisual); @@ -1115,1261 +1153,1389 @@ void OpcodeTable::InitializeServerOpcodes() static_assert((status) == STATUS_NEVER || (status) == STATUS_UNHANDLED, "Invalid status for server opcode"); \ ValidateAndSetServerOpcode(opcode, #opcode, status, con) - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ABORT_NEW_WORLD, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_CHARACTER_CURRENCY_LISTS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_CONVERSION_STATE_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_COSMETIC_ADDED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - 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_EXPORT_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_HEIRLOOM_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_ITEM_COLLECTION_DATA, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_HOUSING_FIXTURE_ADDED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_HOUSING_ROOM_ADDED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_HOUSING_ROOM_COMPONENT_TEXTURE_ADDED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_HOUSING_THEME_ADDED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - 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_STORE_CURRENCY_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_STORE_FRONT_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_STORE_ITEM_STATE_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_STORE_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_TOY_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_TRANSMOG_SET_FAVORITES_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_TRANSMOG_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_WARBAND_SCENE_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACHIEVEMENT_DELETED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACHIEVEMENT_EARNED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACTIVATE_ESSENCE_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACTIVATE_SOULBIND_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACTIVATE_TAXI_REPLY, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACTIVE_GLYPHS, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACTIVE_SCHEDULED_WORLD_STATE_INFO, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ADDON_LIST_REQUEST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ADD_BATTLENET_FRIEND_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ADD_ITEM_PASSIVE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ADD_LOSS_OF_CONTROL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ADD_RUNE_POWER, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ADJUST_SPLINE_DURATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ADVANCED_COMBAT_LOG, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ADVENTURE_JOURNAL_DATA_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_AE_LOOT_TARGETS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_AE_LOOT_TARGET_ACK, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_AI_REACTION, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ALLIED_RACE_DETAILS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ALL_ACCOUNT_CRITERIA, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ALL_ACHIEVEMENT_DATA, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ALL_GUILD_ACHIEVEMENTS, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_APPLY_MOUNT_EQUIPMENT_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ARCHAEOLOGY_SURVERY_CAST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_AREA_POI_UPDATE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_AREA_SPIRIT_HEALER_TIME, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_AREA_TRIGGER_DENIED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_AREA_TRIGGER_NO_CORPSE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_AREA_TRIGGER_PLAY_SPELL_VISUAL, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_AREA_TRIGGER_UPDATE_DECAL_PROPERTIES, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ARENA_CLEAR_OPPONENTS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ARENA_CROWD_CONTROL_SPELL_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ARENA_PREP_OPPONENT_SPECIALIZATIONS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ARTIFACT_ENDGAME_POWERS_REFUNDED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ARTIFACT_FORGE_ERROR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ARTIFACT_RESPEC_PROMPT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ARTIFACT_XP_GAIN, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ATTACKER_STATE_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ATTACK_START, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ATTACK_STOP, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ATTACK_SWING_ERROR, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ATTACK_SWING_LANDED_LOG, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTIONABLE_TOKEN_AUCTION_SOLD, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTIONABLE_TOKEN_SELL_AT_MARKET_PRICE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTIONABLE_TOKEN_SELL_CONFIRM_REQUIRED, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_CLOSED_NOTIFICATION, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_COMMAND_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_DISABLE_NEW_POSTINGS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_FAVORITE_LIST, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_GET_COMMODITY_QUOTE_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_HELLO_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_LIST_BIDDED_ITEMS_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_LIST_BUCKETS_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_LIST_ITEMS_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_LIST_OWNED_ITEMS_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_OUTBID_NOTIFICATION, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_OWNER_BID_NOTIFICATION, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_REPLICATE_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_WON_NOTIFICATION, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_AURA_POINTS_DEPLETED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_AURA_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUTH_CHALLENGE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUTH_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUTH_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_AVAILABLE_HOTFIXES, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BACKPACK_DEFAULT_SIZE_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BAG_CLEANUP_FINISHED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BARBER_SHOP_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATCH_PRESENCE_SUBSCRIPTION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_LIST, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_PORT_DENIED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_ACTIVE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_GROUP_PROPOSAL_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_NEED_CONFIRMATION, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_NONE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_QUEUED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_WAIT_FOR_GROUPS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEGROUND_INFO_THROTTLED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEGROUND_INIT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEGROUND_PLAYER_JOINED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEGROUND_PLAYER_LEFT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEGROUND_PLAYER_POSITIONS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEGROUND_POINTS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLENET_CHALLENGE_ABORT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLENET_CHALLENGE_START, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLENET_NOTIFICATION, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLENET_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_NET_CONNECTION_STATUS, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_ACK_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_BATTLE_PET_DELIVERED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_COLLECTION_ITEM_DELIVERED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_CONFIRM_PURCHASE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_DELIVERY_ENDED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_DELIVERY_STARTED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_VAS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_DISTRIBUTION_UNREVOKED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_DISTRIBUTION_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_GET_DISTRIBUTION_LIST_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_GET_PRODUCT_LIST_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_GET_PURCHASE_LIST_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_MOUNT_DELIVERED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_PURCHASE_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_START_CHECKOUT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_START_DISTRIBUTION_ASSIGN_TO_TARGET_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_START_PURCHASE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_VALIDATE_PURCHASE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PETS_HEALED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PET_CAGE_DATE_ERROR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PET_DELETED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PET_ERROR, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PET_JOURNAL, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PET_JOURNAL_LOCK_ACQUIRED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PET_JOURNAL_LOCK_DENIED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PET_RESTORED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PET_REVOKED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PET_TRAP_LEVEL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PET_UPDATES, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BIND_POINT_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BLACK_MARKET_BID_ON_ITEM_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BLACK_MARKET_OUTBID, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BLACK_MARKET_REQUEST_ITEMS_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BLACK_MARKET_WON, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BONUS_ROLL_EMPTY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BOSS_KILL, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BREAK_TARGET, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BROADCAST_ACHIEVEMENT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BROADCAST_SUMMON_CAST, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BROADCAST_SUMMON_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BUY_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BUY_SUCCEEDED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CACHE_INFO, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CACHE_VERSION, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_CLEAR_PENDING_ACTION, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_COMMAND_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_COMMUNITY_INVITE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_EVENT_REMOVED_ALERT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_EVENT_UPDATED_ALERT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_INVITE_ADDED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_INVITE_ALERT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_INVITE_NOTES, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_INVITE_NOTES_ALERT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_INVITE_REMOVED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_INVITE_REMOVED_ALERT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_INVITE_STATUS, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_INVITE_STATUS_ALERT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_MODERATOR_STATUS, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_RAID_LOCKOUT_ADDED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_RAID_LOCKOUT_REMOVED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_RAID_LOCKOUT_UPDATED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_SEND_CALENDAR, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_SEND_EVENT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_SEND_NUM_PENDING, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CAMERA_EFFECT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CANCEL_AUTO_REPEAT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CANCEL_COMBAT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CANCEL_ORPHAN_SPELL_VISUAL, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CANCEL_PING_PIN, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CANCEL_PRELOAD_WORLD, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CANCEL_SCENE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CANCEL_SPELL_VISUAL, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CANCEL_SPELL_VISUAL_KIT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CAN_DUEL_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CAN_REDEEM_TOKEN_FOR_BALANCE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CAPTURE_POINT_REMOVED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CAST_FAILED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CAS_REFRESH_REMOTE_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CATALOG_SHOP_LICENSE_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CATALOG_SHOP_OBTAIN_LICENSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CATALOG_SHOP_OPEN_CHECKOUT_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CAUTIONARY_CHANNEL_MESSAGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CAUTIONARY_CHAT_MESSAGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAIN_MISSILE_BOUNCE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHALLENGE_MODE_COMPLETE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHALLENGE_MODE_NEW_PLAYER_RECORD, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHALLENGE_MODE_REQUEST_LEADERBOARD_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHALLENGE_MODE_REQUEST_LEADERS_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHALLENGE_MODE_RESET, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHALLENGE_MODE_SET_LEAVER_PENALTY_TIMER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHALLENGE_MODE_START, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHALLENGE_MODE_UPDATE_DEATH_COUNT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANGE_PLAYER_DIFFICULTY_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANGE_REALM_TICKET_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANNEL_LIST, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANNEL_NOTIFY, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANNEL_NOTIFY_JOINED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANNEL_NOTIFY_LEFT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANNEL_NOTIFY_NPE_JOINED_BATCH, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHARACTER_CHECK_UPGRADE_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHARACTER_LOGIN_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHARACTER_OBJECT_TEST_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHARACTER_RENAME_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHARACTER_UPGRADE_ABORTED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHARACTER_UPGRADE_COMPLETE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHARACTER_UPGRADE_MANUAL_UNREVOKE_RESULT,STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHARACTER_UPGRADE_STARTED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAR_CUSTOMIZE_FAILURE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAR_CUSTOMIZE_SUCCESS, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAR_FACTION_CHANGE_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_AUTO_RESPONDED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_CAN_LOCAL_WHISPER_TARGET_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_DOWN, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_IGNORED_ACCOUNT_MUTED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_IS_DOWN, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_NOT_IN_GUILD, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_NOT_IN_PARTY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_PLAYER_AMBIGUOUS, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_PLAYER_NOTFOUND, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_RECONNECT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_REGIONAL_SERVICE_STATUS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_RESTRICTED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_SERVER_MESSAGE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHEAT_IGNORE_DIMISHING_RETURNS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHECK_ABANDON_NPE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHECK_CHARACTER_NAME_AVAILABILITY_RESULT,STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHECK_WARGAME_ENTRY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHROMIE_TIME_SELECT_EXPANSION_SUCCESS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLAIM_RAF_REWARD_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLEAR_ALL_SPELL_CHARGES, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLEAR_BOSS_EMOTES, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLEAR_COOLDOWN, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLEAR_COOLDOWNS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLEAR_RESURRECT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLEAR_SPELL_CHARGES, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLEAR_TARGET, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLEAR_TREASURE_PICKER_CACHE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLOSE_ARTIFACT_FORGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLUB_FINDER_ERROR_MESSAGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLUB_FINDER_GET_CLUB_POSTING_IDS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLUB_FINDER_LOOKUP_CLUB_POSTINGS_LIST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLUB_FINDER_RESPONSE_CHARACTER_APPLICATION_LIST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLUB_FINDER_RESPONSE_POST_RECRUITMENT_MESSAGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLUB_FINDER_UPDATE_APPLICATIONS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLUB_FINDER_WHISPER_APPLICANT_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_COIN_REMOVED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMBAT_EVENT_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMMENTATOR_MAP_INFO, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMMENTATOR_PLAYER_INFO, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMMENTATOR_STATE_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMMERCE_TOKEN_GET_COUNT_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMMERCE_TOKEN_GET_LOG_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMMERCE_TOKEN_GET_MARKET_PRICE_RESPONSE,STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMMERCE_TOKEN_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMPLAINT_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMPLETE_SHIPMENT_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMPRESSED_PACKET, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONFIRM_PARTY_INVITE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONNECT_TO, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONSOLE_WRITE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONSUMABLE_TOKEN_BUY_AT_MARKET_PRICE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONSUMABLE_TOKEN_BUY_CHOICE_REQUIRED, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONSUMABLE_TOKEN_CAN_VETERAN_BUY_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONSUMABLE_TOKEN_REDEEM_CONFIRM_REQUIRED,STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONSUMABLE_TOKEN_REDEEM_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONTACT_LIST, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONTRIBUTION_LAST_UPDATE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONTROL_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONVERT_ITEMS_TO_CURRENCY_VALUE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_COOLDOWN_CHEAT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_COOLDOWN_EVENT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CORPSE_LOCATION, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CORPSE_RECLAIM_DELAY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CORPSE_TRANSPORT_QUERY, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_COVENANT_CALLINGS_AVAILABILITY_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_COVENANT_PREVIEW_OPEN_NPC, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_COVENANT_RENOWN_SEND_CATCHUP_STATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CRAFTING_HOUSE_HELLO_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CRAFTING_ORDER_CANCEL_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CRAFTING_ORDER_CLAIM_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CRAFTING_ORDER_CRAFT_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CRAFTING_ORDER_CREATE_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CRAFTING_ORDER_FULFILL_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CRAFTING_ORDER_LIST_ORDERS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CRAFTING_ORDER_NPC_REWARD_INFO, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CRAFTING_ORDER_REJECT_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CRAFTING_ORDER_RELEASE_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CRAFTING_ORDER_UPDATE_STATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - 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); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CURRENCY_TRANSFER_LOG, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CURRENCY_TRANSFER_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CUSTOM_LOAD_SCREEN, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_DAILY_QUESTS_RESET, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_DAMAGE_CALC_LOG, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_DB_REPLY, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_DEATH_RELEASE_LOC, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_DEBUG_MENU_MANAGER_FULL_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_DEFENSE_MESSAGE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_DELETE_CHAR, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_DELETE_EXPIRED_MISSIONS_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_DELVES_ACCOUNT_DATA_ELEMENT_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_DESTROY_ARENA_UNIT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_DESTRUCTIBLE_BUILDING_DAMAGE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_DIFFERENT_INSTANCE_FROM_PARTY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_DISENCHANT_CREDIT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_DISMOUNT_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_DISPEL_FAILED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_DISPLAY_GAME_ERROR, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_DISPLAY_PLAYER_CHOICE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_DISPLAY_PROMOTION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_DISPLAY_QUEST_POPUP, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_DISPLAY_TOAST, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_DISPLAY_WORLD_TEXT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_DISPLAY_WORLD_TEXT_ON_TARGET, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_DONT_AUTO_PUSH_SPELLS_TO_ACTION_BAR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_DROP_NEW_CONNECTION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_DUEL_ARRANGED, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_DUEL_COMPLETE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_DUEL_COUNTDOWN, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_DUEL_IN_BOUNDS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_DUEL_OUT_OF_BOUNDS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_DUEL_REQUESTED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_DUEL_WINNER, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_DURABILITY_DAMAGE_DEATH, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_EMOTE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ENABLE_BARBER_SHOP, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ENCHANTMENT_LOG, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ENCOUNTER_END, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ENCOUNTER_START, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_END_LIGHTNING_STORM, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ENTER_ENCRYPTED_MODE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ENUM_CHARACTERS_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ENUM_VAS_PURCHASE_STATES_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ENVIRONMENTAL_DAMAGE_LOG, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_EQUIPMENT_SET_ID, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_EXPECTED_SPAM_RECORDS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_EXPLORATION_EXPERIENCE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_EXPORT_ACCOUNT_PROFILE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_EXTERNAL_TRANSACTION_ID_GENERATED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_FACTION_BONUS_INFO, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_FAILED_PLAYER_CONDITION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_FAILED_QUEST_TURN_IN, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_FEATURE_SYSTEM_STATUS, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_FEATURE_SYSTEM_STATUS2, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_FEATURE_SYSTEM_STATUS_GLUE_SCREEN, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_FEIGN_DEATH_RESISTED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_FISH_ESCAPED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_FISH_NOT_HOOKED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_FLIGHT_SPLINE_SYNC, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_FLUSH_COMBAT_LOG_FILE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_FORCED_DEATH_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_FORCE_ANIM, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_FORCE_ANIMATIONS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_FORCE_RANDOM_TRANSMOG_TOAST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_FORCE_SPAWN_TRACKING_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_FRIEND_STATUS, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAIN_MAW_POWER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_OBJECT_ACTIVATE_ANIM_KIT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_OBJECT_BASE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_OBJECT_CLOSE_INTERACTION, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_OBJECT_CUSTOM_ANIM, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_OBJECT_DESPAWN, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_OBJECT_INTERACTION, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_OBJECT_PLAY_SPELL_VISUAL, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_OBJECT_PLAY_SPELL_VISUAL_KIT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_OBJECT_RESET_STATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_OBJECT_SET_STATE_LOCAL, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_SPEED_SET, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_TIME_SET, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_TIME_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_ACTIVATE_MISSION_BONUS_ABILITY, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_ADD_EVENT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_ADD_FOLLOWER_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_ADD_MISSION_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_ADD_SPEC_GROUPS, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_APPLY_TALENT_SOCKET_DATA_CHANGES, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_ASSIGN_FOLLOWER_TO_BUILDING_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_AUTO_TROOP_MIN_LEVEL_UPDATE_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_BUILDING_ACTIVATED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_BUILDING_REMOVED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_BUILDING_SET_ACTIVE_SPECIALIZATION_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_CHANGE_MISSION_START_TIME_RESULT,STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_CLEAR_COLLECTION, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_CLEAR_EVENT_LIST, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_CLEAR_SPEC_GROUPS, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_COLLECTION_REMOVE_ENTRY, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_COLLECTION_UPDATE_ENTRY, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_COMPLETE_BUILDING_CONSTRUCTION_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_COMPLETE_MISSION_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_CREATE_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_DELETE_MISSION_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_DELETE_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_FOLLOWER_ACTIVATIONS_SET, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_FOLLOWER_CHANGED_FLAGS, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_FOLLOWER_CHANGED_ITEM_LEVEL, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_FOLLOWER_CHANGED_QUALITY, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_FOLLOWER_CHANGED_XP, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_FOLLOWER_FATIGUE_CLEARED, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_GENERATE_FOLLOWERS_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_GET_CLASS_SPEC_CATEGORY_INFO_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_GET_RECALL_PORTAL_LAST_USED_TIME_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_IS_UPGRADEABLE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_LEARN_BLUEPRINT_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_LEARN_SPECIALIZATION_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_LIST_COMPLETED_MISSIONS_CHEAT_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_LIST_FOLLOWERS_CHEAT_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_MAP_DATA_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_MISSION_BONUS_ROLL_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_MISSION_REQUEST_REWARD_INFO_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_MISSION_START_CONDITION_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_OPEN_CRAFTER, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_OPEN_RECRUITMENT_NPC, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_PLACE_BUILDING_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_PLOT_PLACED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_PLOT_REMOVED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_RECRUIT_FOLLOWER_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_REMOTE_INFO, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_REMOVE_EVENT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_REMOVE_FOLLOWER_ABILITY_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_REMOVE_FOLLOWER_FROM_BUILDING_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_REMOVE_FOLLOWER_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_RENAME_FOLLOWER_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_REQUEST_BLUEPRINT_AND_SPECIALIZATION_DATA_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_RESEARCH_TALENT_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_RESET_TALENT_TREE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_RESET_TALENT_TREE_SOCKET_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_START_MISSION_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_SWAP_BUILDINGS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_SWITCH_TALENT_TREE_BRANCH, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_TALENT_COMPLETED, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_TALENT_REMOVED, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_TALENT_REMOVE_SOCKET_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_TALENT_UPDATE_SOCKET_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_TALENT_WORLD_QUEST_UNLOCKS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_UNLEARN_BLUEPRINT_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_UPDATE_FOLLOWER, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_UPDATE_GARRISON_MONUMENT_SELECTIONS, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_UPDATE_MISSION_CHEAT_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_UPGRADE_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_USE_RECALL_PORTAL_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GENERATE_RANDOM_CHARACTER_NAME_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GENERATE_SSO_TOKEN_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_ACCOUNT_CHARACTER_LIST_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_GARRISON_INFO_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_LANDING_PAGE_SHIPMENTS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_REALM_HIDDEN_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_REMAINING_GAME_TIME_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_SELECTED_TROPHY_ID_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_SHIPMENTS_OF_TYPE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_SHIPMENT_INFO_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_TROPHY_LIST_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_VAS_ACCOUNT_CHARACTER_LIST_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_VAS_TRANSFER_TARGET_REALM_LIST_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GM_PLAYER_INFO, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GM_REQUEST_PLAYER_INFO, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GM_TICKET_CASE_STATUS, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GM_TICKET_SYSTEM_STATUS, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GOD_MODE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GOSSIP_COMPLETE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GOSSIP_MESSAGE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GOSSIP_OPTION_NPC_INTERACTION, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GOSSIP_POI, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GOSSIP_QUEST_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GOSSIP_REFRESH_OPTIONS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GROUP_ACTION_THROTTLED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GROUP_AUTO_KICK, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GROUP_DECLINE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GROUP_DESTROYED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GROUP_NEW_LEADER, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GROUP_REQUEST_DECLINE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GROUP_UNINVITE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_ACHIEVEMENT_DELETED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_ACHIEVEMENT_EARNED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_ACHIEVEMENT_MEMBERS, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_BANK_LOG_QUERY_RESULTS, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_BANK_QUERY_RESULTS, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_BANK_REMAINING_WITHDRAW_MONEY, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_BANK_TEXT_QUERY_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_CHALLENGE_COMPLETED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_CHALLENGE_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_CHANGE_NAME_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_COMMAND_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_CRITERIA_DELETED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_CRITERIA_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_BANK_CONTENTS_CHANGED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_BANK_MONEY_CHANGED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_DISBANDED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_LOG_QUERY_RESULTS, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_MOTD, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_NEW_LEADER, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_PLAYER_JOINED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_PLAYER_LEFT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_PRESENCE_CHANGE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_RANKS_UPDATED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_RANK_CHANGED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_STATUS_CHANGE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_TAB_ADDED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_TAB_DELETED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_TAB_MODIFIED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_TAB_TEXT_CHANGED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_FLAGGED_FOR_RENAME, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_HARDCORE_MEMBER_DEATH, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_INVITE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_INVITE_DECLINED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_INVITE_EXPIRED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_ITEM_LOOTED_NOTIFY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_KNOWN_RECIPES, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_MEMBERS_WITH_RECIPE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_MEMBER_DAILY_RESET, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_MEMBER_RECIPES, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_MEMBER_UPDATE_NOTE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_MOVED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_MOVE_STARTING, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_NAME_CHANGED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_NEWS, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_NEWS_DELETED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_OTHERS_OWNED_HOUSES_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_PARTY_STATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_PERMISSIONS_QUERY_RESULTS, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_RANKS, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_RENAME_NAME_CHECK, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_RENAME_REFUND_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_RENAME_REQUESTED_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_RENAME_STATUS_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_REPUTATION_REACTION_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_RESET, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_REWARD_LIST, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_ROSTER, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_SEND_RANK_CHANGE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_HARDCORE_DEATH_ALERT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_HEALTH_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_HIGHEST_THREAT_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOTFIX_CONNECT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOTFIX_MESSAGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INITIALIZE_FACTIONS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INITIAL_SETUP, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INIT_WORLD_STATES, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSPECT_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ABANDON_VOTE_COMPLETED, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ABANDON_VOTE_PLAYER_LEFT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ABANDON_VOTE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ABANDON_VOTE_STARTED, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_CHANGE_PRIORITY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_DISENGAGE_UNIT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_END, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_ENGAGE_UNIT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_GAIN_COMBAT_RESURRECTION_CHARGE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_IN_COMBAT_RESURRECTION, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_COMPLETE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_START, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_PHASE_SHIFT_CHANGED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_START, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_TIMER_START, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_UPDATE_ALLOW_RELEASE_IN_PROGRESS, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_UPDATE_SUPPRESS_RELEASE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_GROUP_SIZE_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_INFO, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_RESET, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_RESET_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_SAVE_CREATED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INTERRUPT_POWER_REGEN, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INVALIDATE_NEIGHBORHOOD_NAME, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INVALIDATE_PAGE_TEXT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INVALIDATE_PLAYER, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INVALID_PROMOTION_CODE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INVENTORY_CHANGE_FAILURE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INVENTORY_FIXUP_COMPLETE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_INVENTORY_FULL_OVERFLOW, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ISLAND_AZERITE_GAIN, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ISLAND_COMPLETE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_IS_QUEST_COMPLETE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ITEM_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ITEM_COOLDOWN, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ITEM_ENCHANT_TIME_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ITEM_EXPIRE_PURCHASE_REFUND, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ITEM_INTERACTION_COMPLETE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ITEM_PURCHASE_REFUND_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ITEM_PUSH_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ITEM_TIME_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_KICK_REASON, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LATENCY_REPORT_PING, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LEARNED_SPELLS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LEARN_PVP_TALENT_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LEARN_TALENT_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LEGACY_LOOT_RULES, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LEVEL_LINKING_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LEVEL_UP_INFO, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_BOOT_PLAYER, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_DISABLED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_EXPAND_SEARCH_PROMPT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_INSTANCE_SHUTDOWN_COUNTDOWN, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_JOIN_LOBBY_MATCHMAKER_QUEUE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_JOIN_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_LIST_APPLICANT_LIST_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_LIST_APPLICATION_STATUS_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_LIST_APPLY_TO_GROUP_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_LIST_JOIN_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_LIST_SEARCH_RESULTS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_LIST_SEARCH_RESULTS_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_LIST_SEARCH_STATUS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_LIST_UPDATE_BLACKLIST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_LIST_UPDATE_EXPIRATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_LIST_UPDATE_STATUS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_OFFER_CONTINUE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_PARTY_INFO, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_PLAYER_INFO, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_PLAYER_REWARD, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_PROPOSAL_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_QUEUE_STATUS, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_READY_CHECK_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_READY_CHECK_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_ROLE_CHECK_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_SLOT_INVALID, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_SUSPEND_LOREWALKING, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_TELEPORT_DENIED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_UPDATE_STATUS, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LIVE_REGION_ACCOUNT_RESTORE_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LIVE_REGION_CHARACTER_COPY_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LIVE_REGION_GET_ACCOUNT_CHARACTER_LIST_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LIVE_REGION_KEY_BINDINGS_COPY_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOAD_CUF_PROFILES, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOAD_EQUIPMENT_SET, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOBBY_MATCHMAKER_LOBBY_ACQUIRED_SERVER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOBBY_MATCHMAKER_PARTY_INFO, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOBBY_MATCHMAKER_PARTY_INVITE_REJECTED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOBBY_MATCHMAKER_QUEUE_PROPOSED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOBBY_MATCHMAKER_QUEUE_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOBBY_MATCHMAKER_RECEIVE_INVITE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOGIN_SET_TIME_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOGIN_VERIFY_WORLD, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOGOUT_CANCEL_ACK, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOGOUT_COMPLETE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOGOUT_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOG_XP_GAIN, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOOT_ALL_PASSED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOOT_LIST, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOOT_MONEY_NOTIFY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOOT_RELEASE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOOT_RELEASE_ALL, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOOT_REMOVED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOOT_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOOT_ROLL, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOOT_ROLLS_COMPLETE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOOT_ROLL_WON, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOSS_OF_CONTROL_AURA_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MAIL_COMMAND_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MAIL_LIST_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MAIL_QUERY_NEXT_TIME_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MAP_OBJECTIVES_INIT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MAP_OBJ_EVENTS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MASTER_LOOT_CANDIDATE_LIST, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MEETING_STONE_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MESSAGE_BOX, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MINIMAP_PING, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MIRROR_IMAGE_COMPONENTED_DATA, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MIRROR_IMAGE_CREATURE_DATA, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MIRROR_VARS, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MISSILE_CANCEL, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MODIFY_COOLDOWN, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOTD, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOUNT_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVEMENT_ENFORCEMENT_ALERT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_ADD_IMPULSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_APPLY_INERTIA, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_APPLY_MOVEMENT_FORCE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_DISABLE_COLLISION, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_DISABLE_DOUBLE_JUMP, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_DISABLE_FULL_SPEED_TURNING, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_DISABLE_INERTIA, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_DISABLE_GRAVITY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_DISABLE_TRANSITION_BETWEEN_SWIM_AND_FLY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_ENABLE_COLLISION, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_ENABLE_DOUBLE_JUMP, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_ENABLE_FULL_SPEED_TURNING, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_ENABLE_INERTIA, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_ENABLE_GRAVITY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_ENABLE_TRANSITION_BETWEEN_SWIM_AND_FLY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_KNOCK_BACK, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_REMOVE_INERTIA, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_REMOVE_MOVEMENT_FORCE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_ROOT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_ACTIVE_MOVER, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_ADV_FLYING_ADD_IMPULSE_MAX_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_ADV_FLYING_AIR_FRICTION, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_ADV_FLYING_BANKING_RATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_ADV_FLYING_DOUBLE_JUMP_VEL_MOD, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_ADV_FLYING_GLIDE_START_MIN_HEIGHT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_ADV_FLYING_LAUNCH_SPEED_COEFFICIENT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_ADV_FLYING_LIFT_COEFFICIENT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_ADV_FLYING_MAX_VEL, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_ADV_FLYING_OVER_MAX_DECELERATION, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_ADV_FLYING_PITCHING_RATE_DOWN, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_ADV_FLYING_PITCHING_RATE_UP, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_ADV_FLYING_SURFACE_FRICTION, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_ADV_FLYING_TURN_VELOCITY_THRESHOLD, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_CANT_SWIM, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_CAN_ADV_FLY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_CAN_DRIVE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_CAN_FLY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_CAN_TURN_WHILE_FALLING, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_COLLISION_HEIGHT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_COMPOUND_STATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_FEATHER_FALL, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_FLIGHT_BACK_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_FLIGHT_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_HOVERING, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_IGNORE_MOVEMENT_FORCES, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_LAND_WALK, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_MOD_MOVEMENT_FORCE_MAGNITUDE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_NORMAL_FALL, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_PITCH_RATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_RUN_BACK_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_RUN_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_SWIM_BACK_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_SWIM_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_TURN_RATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_VEHICLE_REC_ID, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_WALK_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_WATER_WALK, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SKIP_TIME, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_DISABLE_COLLISION, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_DISABLE_GRAVITY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_ENABLE_COLLISION, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_ENABLE_GRAVITY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_ROOT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_SET_FEATHER_FALL, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_SET_FLIGHT_BACK_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_SET_FLIGHT_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_SET_FLYING, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_SET_HOVER, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_SET_LAND_WALK, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_SET_NORMAL_FALL, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_SET_PITCH_RATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_SET_RUN_BACK_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_SET_RUN_MODE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_SET_RUN_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_SET_SWIM_BACK_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_SET_SWIM_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_SET_TURN_RATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_SET_WALK_MODE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_SET_WALK_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_SET_WATER_WALK, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_START_SWIM, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_STOP_SWIM, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_UNROOT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_UNSET_FLYING, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_UNSET_HOVER, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_TELEPORT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UNROOT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UNSET_CANT_SWIM, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UNSET_CAN_ADV_FLY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UNSET_CAN_DRIVE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UNSET_CAN_FLY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UNSET_CAN_TURN_WHILE_FALLING, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UNSET_HOVERING, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UNSET_IGNORE_MOVEMENT_FORCES, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_ADD_IMPULSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_APPLY_INERTIA, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_APPLY_MOVEMENT_FORCE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_COLLISION_HEIGHT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_FLIGHT_BACK_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_FLIGHT_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_KNOCK_BACK, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_MOD_MOVEMENT_FORCE_MAGNITUDE,STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_PITCH_RATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_REMOVE_INERTIA, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_REMOVE_MOVEMENT_FORCE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_RUN_BACK_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_RUN_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_SWIM_BACK_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_SWIM_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_TELEPORT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_TURN_RATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_WALK_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MULTIPLE_PACKETS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MULTI_FLOOR_LEAVE_FLOOR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MULTI_FLOOR_NEW_FLOOR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MYTHIC_PLUS_ALL_MAP_STATS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MYTHIC_PLUS_CURRENT_AFFIXES, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MYTHIC_PLUS_NEW_WEEK_RECORD, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MYTHIC_PLUS_SEASON_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEUTRAL_PLAYER_FACTION_SELECT_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEW_DATA_BUILD, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEW_TAXI_PATH, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEW_WORLD, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_NOTIFY_DEST_LOC_SPELL_CAST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_NOTIFY_MISSILE_TRAJECTORY_COLLISION, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_NOTIFY_MONEY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_NOTIFY_RECEIVED_MAIL, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_NPC_INTERACTION_OPEN_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_OFFER_PETITION_ERROR, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ON_MONSTER_MOVE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_OPEN_ARTIFACT_FORGE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_OPEN_CONTAINER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_OPEN_LFG_DUNGEON_FINDER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_OPEN_SHIPMENT_NPC_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_OVERRIDE_LIGHT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PAGE_TEXT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PARTY_COMMAND_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PARTY_ELIGIBILITY_FOR_DELVE_TIERS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PARTY_INVITE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PARTY_KILL_LOG, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PARTY_MEMBER_FULL_STATE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PARTY_MEMBER_PARTIAL_STATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PARTY_NOTIFY_LFG_LEADER_CHANGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PARTY_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM); - 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); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PETITION_SHOW_SIGNATURES, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PETITION_SIGN_RESULTS, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_ACTION_FEEDBACK, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_ACTION_SOUND, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_BATTLE_CHAT_RESTRICTED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_BATTLE_DEBUG_QUEUE_DUMP_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_BATTLE_FINALIZE_LOCATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_BATTLE_FINAL_ROUND, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_BATTLE_FINISHED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_BATTLE_FIRST_ROUND, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_BATTLE_INITIAL_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_BATTLE_MAX_GAME_LENGTH_WARNING, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_BATTLE_PVP_CHALLENGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_BATTLE_QUEUE_PROPOSE_MATCH, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_BATTLE_QUEUE_STATUS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_BATTLE_REPLACEMENTS_MADE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_BATTLE_REQUEST_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_BATTLE_ROUND_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_BATTLE_SLOT_UPDATES, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_CAST_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_CLEAR_SPELLS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_DISMISS_SOUND, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_GOD_MODE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_GUIDS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_LEARNED_SPELLS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_MODE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_NAME_INVALID, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_NEWLY_TAMED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_SPELLS_MESSAGE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_STABLE_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_TAME_FAILURE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_UNLEARNED_SPELLS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PHASE_SHIFT_CHANGE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYED_TIME, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_ACKNOWLEDGE_ARROW_CALLOUT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_AZERITE_ITEM_EQUIPPED_STATUS_CHANGED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_AZERITE_ITEM_GAINS, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_BONUS_ROLL_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_BOUND, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_CHOICE_CLEAR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_CHOICE_DISPLAY_ERROR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_CONDITION_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_END_OF_MATCH_DETAILS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_HIDE_ARROW_CALLOUT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_IS_ADVENTURE_MAP_POI_VALID, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_OPEN_SUBSCRIPTION_INTERSTITIAL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_SAVE_GUILD_EMBLEM, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_SAVE_PERSONAL_EMBLEM, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_SHOW_ARROW_CALLOUT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_SHOW_GENERIC_WIDGET_DISPLAY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_SHOW_PARTY_POSE_UI, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_SHOW_UI_EVENT_TOAST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_SKINNED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_TUTORIAL_HIGHLIGHT_SPELL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_TUTORIAL_UNHIGHLIGHT_SPELL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_MUSIC, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_OBJECT_SOUND, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_ONE_SHOT_ANIM_KIT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_ORPHAN_SPELL_VISUAL, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SCENE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SOUND, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SPEAKERBOT_SOUND, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SPELL_VISUAL, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SPELL_VISUAL_KIT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_TIME_WARNING, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PONG, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_POWER_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PRELOAD_CHILD_MAP, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PRELOAD_WORLD, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PREPOPULATE_NAME_CACHE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PRE_RESSURECT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PRINT_NOTIFICATION, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PROC_RESIST, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PROFESSION_GOSSIP, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PUSH_SPELL_TO_ACTION_BAR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_CREDIT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_MATCH_COMPLETE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_MATCH_INITIALIZE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_MATCH_SET_STATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_MATCH_START, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_MATCH_STATISTICS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_OPTIONS_ENABLED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_TIER_RECORD, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_BATTLE_PET_NAME_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_CREATURE_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_GAME_OBJECT_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_GARRISON_PET_NAME_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_GUILD_FOLLOW_INFO_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_GUILD_INFO_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_ITEM_TEXT_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_NEIGHBORHOOD_NAME_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_NPC_TEXT_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_PAGE_TEXT_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_PETITION_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_PET_NAME_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_PLAYER_NAME_BY_COMMUNITY_ID_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_PLAYER_NAMES_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_QUEST_INFO_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_REALM_GUILD_MASTER_INFO_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_TIME_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_COMPLETION_NPC_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_CONFIRM_ACCEPT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_FORCE_REMOVED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_GIVER_INVALID_QUEST, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_GIVER_OFFER_REWARD_MESSAGE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_GIVER_QUEST_COMPLETE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_GIVER_QUEST_DETAILS, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_GIVER_QUEST_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_GIVER_QUEST_LIST_MESSAGE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_GIVER_REQUEST_ITEMS, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_GIVER_STATUS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_GIVER_STATUS_MULTIPLE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_ITEM_USABILITY_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_LOG_FULL, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_NON_LOG_UPDATE_COMPLETE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_POI_QUERY_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_POI_UPDATE_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_PUSH_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_SESSION_INFO_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_SESSION_READY_CHECK, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_SESSION_READY_CHECK_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_SESSION_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_UPDATE_ADD_CREDIT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_UPDATE_ADD_CREDIT_SIMPLE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_UPDATE_ADD_PVP_CREDIT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_UPDATE_COMPLETE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_UPDATE_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_UPDATE_FAILED_TIMER, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEUE_SUMMARY_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_RAF_ACCOUNT_INFO, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_RAF_ACTIVITY_STATE_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_RAF_DEBUG_FRIEND_MONTHS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_RAID_DIFFICULTY_SET, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_RAID_GROUP_ONLY, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_RAID_INSTANCE_MESSAGE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_RAID_MARKERS_CHANGED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_RANDOM_ROLL, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_RATED_PVP_INFO, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_READY_CHECK_COMPLETED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_READY_CHECK_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_READY_CHECK_STARTED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_READ_ITEM_RESULT_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_READ_ITEM_RESULT_OK, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_REALM_QUERY_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_REATTACH_RESURRECT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_RECEIVE_PING_UNIT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_RECEIVE_PING_WORLD_POINT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_RECENT_ALLY_DATA_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_RECENT_ALLY_NOTE_UPDATED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_RECRAFT_ITEM_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_RECRUIT_A_FRIEND_FAILURE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_REFRESH_COMPONENT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_REGIONWIDE_CHARACTER_MAIL_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_REGIONWIDE_CHARACTER_RESTRICTIONS_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_REMOVE_ITEM_PASSIVE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_REMOVE_SPELL_FROM_ACTION_BAR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_REPLACE_TROPHY_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_REPORT_PVP_PLAYER_AFK_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_REQUEST_CEMETERY_LIST_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_REQUEST_PVP_REWARDS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_REQUEST_SCHEDULED_PVP_INFO_RESPONSE, 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); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESUME_CAST_BAR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESUME_COMMS, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESUME_TOKEN, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESURRECT_REQUEST, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESYNC_RUNES, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_RETURN_APPLICANT_LIST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_RETURN_RECRUITING_CLUBS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ROLE_CHANGED_INFORM, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ROLE_CHOSEN, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ROLE_POLL_INFORM, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_RUNEFORGE_LEGENDARY_CRAFTING_OPEN_NPC, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_RUNE_REGEN_DEBUG, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCENARIO_COMPLETED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCENARIO_POIS, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCENARIO_PROGRESS_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCENARIO_SHOW_CRITERIA, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCENARIO_STATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCENARIO_UI_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCENARIO_VACATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCENE_OBJECT_EVENT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCENE_OBJECT_PET_BATTLE_FINAL_ROUND, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCENE_OBJECT_PET_BATTLE_FINISHED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCENE_OBJECT_PET_BATTLE_FIRST_ROUND, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCENE_OBJECT_PET_BATTLE_INITIAL_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCENE_OBJECT_PET_BATTLE_REPLACEMENTS_MADE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCENE_OBJECT_PET_BATTLE_ROUND_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCHEDULED_AREA_POI_UPDATE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCRIPT_CAST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SEASON_INFO, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SELL_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SEND_ITEM_PASSIVES, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SEND_KNOWN_SPELLS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SEND_RAID_TARGET_UPDATE_ALL, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SEND_RAID_TARGET_UPDATE_SINGLE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SEND_SPELL_CHARGES, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SEND_SPELL_HISTORY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SEND_UNLEARN_SPELLS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SERVER_FIRST_ACHIEVEMENTS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SERVER_TIME, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SERVER_TIME_OFFSET, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SETUP_COMBAT_LOG_FILE_FLUSH, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SETUP_CURRENCY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_AI_ANIM_KIT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_ANIM_TIER, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_CHR_UPGRADE_TIER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_CTR_OPTIONS, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_CURRENCY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_DF_FAST_LAUNCH_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_DUNGEON_DIFFICULTY, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_FACTION_AT_WAR, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_FACTION_NOT_VISIBLE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_FACTION_STANDING, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_FACTION_VISIBLE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_FLAT_SPELL_MODIFIER, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_INSTANCE_LEAVER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_ITEM_PURCHASE_DATA, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_LOOT_METHOD_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_MAX_WEEKLY_QUANTITY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_MELEE_ANIM_KIT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_MOVEMENT_ANIM_KIT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_PCT_SPELL_MODIFIER, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_PET_SPECIALIZATION, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_PLAY_HOVER_ANIM, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_PROFICIENCY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_QUEST_REPLAY_COOLDOWN_OVERRIDE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_SHIPMENT_READY_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_SPELL_CHARGES, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_TIME_ZONE_INFORMATION, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_VEHICLE_REC_ID, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHADOWLANDS_CAPACITANCE_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHIPMENT_FACTION_UPDATE_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHOW_DELVES_COMPANION_CONFIGURATION_UI, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHOW_DELVES_DISPLAY_UI, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHOW_NEUTRAL_PLAYER_FACTION_SELECT_UI, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHOW_QUEST_COMPLETION_TEXT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHOW_TAXI_NODES, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHOW_TRADE_SKILL_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SOCIAL_CONTRACT_REQUEST_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SOCKET_GEMS_FAILURE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SOCKET_GEMS_SUCCESS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPECIAL_MOUNT_ANIM, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPEC_INVOLUNTARILY_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPECTATE_END, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPECTATE_PLAYER, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_ABSORB_LOG, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_CATEGORY_COOLDOWN, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_CHANNEL_START, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_CHANNEL_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_COOLDOWN, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_DAMAGE_SHIELD, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_DELAYED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_DISPELL_LOG, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_EMPOWER_SET_STAGE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_EMPOWER_START, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_EMPOWER_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_ENERGIZE_LOG, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_EXECUTE_LOG, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_FAILED_OTHER, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_FAILURE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_FAILURE_MESSAGE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_GO, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_HEAL_ABSORB_LOG, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_HEAL_LOG, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_INSTAKILL_LOG, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_INTERRUPT_LOG, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_MISS_LOG, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_NON_MELEE_DAMAGE_LOG, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_OR_DAMAGE_IMMUNE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_PERIODIC_AURA_LOG, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_PREPARE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_START, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_VISUAL_LOAD_SCREEN, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPLASH_SCREEN_SHOW_LATEST, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_STAND_STATE_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_STARTER_BUILD_ACTIVATE_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_START_ELAPSED_TIMER, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_START_ELAPSED_TIMERS, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_START_LIGHTNING_STORM, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_START_LOOT_ROLL, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_START_MIRROR_TIMER, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_START_TIMER, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_STOP_ELAPSED_TIMER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_STOP_MIRROR_TIMER, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_STOP_SPEAKERBOT_SOUND, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_STOP_TIMER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_STREAMING_MOVIES, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SUGGEST_INVITE_INFORM, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SUMMON_CANCEL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SUMMON_RAID_MEMBER_VALIDATE_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SUMMON_REQUEST, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SUPERCEDED_SPELLS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SURVEY_DELIVERED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SUSPEND_COMMS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SUSPEND_TOKEN, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SYNC_WOW_ENTITLEMENTS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_TAKE_SCREENSHOT_FOR_COMPLAINT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_TALENTS_INVOLUNTARILY_RESET, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_TAXI_NODE_STATUS, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_TEXT_EMOTE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_THREAT_CLEAR, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_THREAT_REMOVE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_THREAT_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_TIMERUNNING_SEASON_ENDED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_TIME_ADJUSTMENT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_TIME_SYNC_REQUEST, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_TITLE_EARNED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_TITLE_LOST, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_TOTEM_CREATED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_TOTEM_DURATION_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_TOTEM_MOVED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_TOTEM_REMOVED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_TRADE_STATUS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_TRADE_UPDATED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_TRAINER_BUY_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_TRAINER_LIST, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_TRAIT_CONFIG_COMMIT_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_TRANSFER_ABORTED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_TRANSFER_PENDING, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_TREASURE_PICKER_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_TRIGGER_CINEMATIC, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_TRIGGER_MOVIE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_TURN_IN_PETITION_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_TUTORIAL_FLAGS, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_UI_ACTION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_UI_MAP_QUEST_LINES_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_UNDELETE_CHARACTER_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_UNDELETE_COOLDOWN_STATUS_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_UNLEARNED_SPELLS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_UNLOAD_CHILD_MAP, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_UNSET_INSTANCE_LEAVER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_AADC_STATUS_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_ACCOUNT_DATA, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_ACCOUNT_DATA_COMPLETE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_ACTION_BUTTONS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_BNET_SESSION_KEY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_CAPTURE_POINT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_CELESTIAL_BODY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_CHARACTER_FLAGS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_CHARGE_CATEGORY_COOLDOWN, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_COOLDOWN, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_CRAFTING_NPC_RECIPES, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_DAILY_MISSION_COUNTER, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_EXPANSION_LEVEL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_GAME_TIME_STATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_INSTANCE_OWNERSHIP, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_LAST_INSTANCE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_OBJECT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_PRIMARY_SPEC, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_RECENT_PLAYER_GUIDS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_TALENT_DATA, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_WORLD_STATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_USERLIST_ADD, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_USERLIST_REMOVE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_USERLIST_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_USE_EQUIPMENT_SET_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_VAS_CHECK_TRANSFER_OK_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_VAS_GET_QUEUE_MINUTES_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_VAS_GET_SERVICE_STATUS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_VAS_PURCHASE_COMPLETE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_VAS_PURCHASE_STATE_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_VENDOR_INVENTORY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_VIGNETTE_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_VOICE_CHANNEL_INFO_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_VOICE_CHANNEL_STT_TOKEN_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_VOICE_LOGIN_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_VOID_ITEM_SWAP_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_VOID_STORAGE_CONTENTS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_VOID_STORAGE_FAILED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_VOID_STORAGE_TRANSFER_CHANGES, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_VOID_TRANSFER_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_WAIT_QUEUE_FINISH, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_WAIT_QUEUE_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_WALK_IN_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_WARDEN3_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_WARDEN3_DISABLED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_WARDEN3_ENABLED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_WARFRONT_COMPLETE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_WARGAME_REQUEST_OPPONENT_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_WARGAME_REQUEST_SUCCESSFULLY_SENT_TO_OPPONENT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_WEATHER, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_WEEKLY_REWARDS_PROGRESS_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_WEEKLY_REWARDS_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_WEEKLY_REWARD_CLAIM_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_WHO, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_WHO_IS, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_WILL_BE_KICKED_FOR_ADDED_SUBSCRIPTION_TIME, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_WORLD_QUEST_UPDATE_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_WORLD_SERVER_INFO, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_WOW_ENTITLEMENT_NOTIFICATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_WOW_LABS_AREA_INFO, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_WOW_LABS_NOTIFY_PLAYERS_MATCH_END, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_WOW_LABS_NOTIFY_PLAYERS_MATCH_STATE_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_WOW_LABS_PARTY_ERROR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_WOW_LABS_SET_AREA_ID_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_WOW_LABS_SET_PREDICTION_CIRCLE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_WOW_LABS_SET_SELECTED_AREA_ID, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_XP_AWARDED_FROM_CURRENCY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_XP_GAIN_ABORTED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_XP_GAIN_ENABLED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ZONE_UNDER_ATTACK, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ABORT_NEW_WORLD, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_CHARACTER_CURRENCY_LISTS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_CONVERSION_STATE_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_COSMETIC_ADDED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + 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_EXPORT_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_EXTERIOR_FIXTURE_COLLECTION_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_HEIRLOOM_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_HOUSE_TYPE_COLLECTION_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_ITEM_COLLECTION_DATA, STATUS_NEVER, CONNECTION_TYPE_REALM); + 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_ROOM_COLLECTION_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_ROOM_MATERIAL_COLLECTION_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_ROOM_THEME_COLLECTION_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_STORE_CURRENCY_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_STORE_FRONT_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_STORE_ITEM_STATE_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_STORE_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_TOY_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_TRANSMOG_SET_FAVORITES_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_TRANSMOG_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACCOUNT_WARBAND_SCENE_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACHIEVEMENT_DELETED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACHIEVEMENT_EARNED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACTIVATE_ESSENCE_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACTIVATE_SOULBIND_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACTIVATE_TAXI_REPLY, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACTIVE_GLYPHS, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACTIVE_SCHEDULED_WORLD_STATE_INFO, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ADDON_LIST_REQUEST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ADD_BATTLENET_FRIEND_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ADD_ITEM_PASSIVE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ADD_LOSS_OF_CONTROL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ADD_RUNE_POWER, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ADJUST_SPLINE_DURATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ADVANCED_COMBAT_LOG, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ADVENTURE_JOURNAL_DATA_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AE_LOOT_TARGETS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AE_LOOT_TARGET_ACK, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AI_REACTION, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ALLIED_RACE_DETAILS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ALL_ACCOUNT_CRITERIA, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ALL_ACHIEVEMENT_DATA, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ALL_GUILD_ACHIEVEMENTS, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_APPLY_MOUNT_EQUIPMENT_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ARCHAEOLOGY_SURVERY_CAST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AREA_POI_UPDATE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AREA_SPIRIT_HEALER_TIME, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AREA_TRIGGER_DENIED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AREA_TRIGGER_NO_CORPSE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AREA_TRIGGER_PLAY_SPELL_VISUAL, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AREA_TRIGGER_UPDATE_DECAL_PROPERTIES, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ARENA_CLEAR_OPPONENTS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ARENA_CROWD_CONTROL_SPELL_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ARENA_PREP_OPPONENT_SPECIALIZATIONS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ARTIFACT_ENDGAME_POWERS_REFUNDED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ARTIFACT_FORGE_ERROR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ARTIFACT_RESPEC_PROMPT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ARTIFACT_XP_GAIN, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ATTACKER_STATE_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ATTACK_START, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ATTACK_STOP, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ATTACK_SWING_ERROR, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ATTACK_SWING_LANDED_LOG, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTIONABLE_TOKEN_AUCTION_SOLD, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTIONABLE_TOKEN_SELL_AT_MARKET_PRICE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTIONABLE_TOKEN_SELL_CONFIRM_REQUIRED, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_CLOSED_NOTIFICATION, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_COMMAND_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_DISABLE_NEW_POSTINGS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_FAVORITE_LIST, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_GET_COMMODITY_QUOTE_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_HELLO_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_LIST_BIDDED_ITEMS_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_LIST_BUCKETS_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_LIST_ITEMS_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_LIST_OWNED_ITEMS_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_OUTBID_NOTIFICATION, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_OWNER_BID_NOTIFICATION, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_REPLICATE_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_WON_NOTIFICATION, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AURA_POINTS_DEPLETED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AURA_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUTH_CHALLENGE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUTH_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUTH_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AVAILABLE_HOTFIXES, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BACKPACK_DEFAULT_SIZE_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BAG_CLEANUP_FINISHED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BARBER_SHOP_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATCH_PRESENCE_SUBSCRIPTION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_LIST, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_PORT_DENIED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_ACTIVE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_GROUP_PROPOSAL_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_NEED_CONFIRMATION, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_NONE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_QUEUED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_WAIT_FOR_GROUPS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEGROUND_INFO_THROTTLED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEGROUND_INIT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEGROUND_PLAYER_JOINED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEGROUND_PLAYER_LEFT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEGROUND_PLAYER_POSITIONS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEGROUND_POINTS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLENET_CHALLENGE_ABORT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLENET_CHALLENGE_START, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLENET_NOTIFICATION, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLENET_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_NET_CONNECTION_STATUS, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_ACK_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_BATTLE_PET_DELIVERED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_COLLECTION_ITEM_DELIVERED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_CONFIRM_PURCHASE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_DELIVERY_ENDED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_DELIVERY_STARTED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_VAS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_DISTRIBUTION_UNREVOKED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_DISTRIBUTION_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_GET_DISTRIBUTION_LIST_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_GET_PRODUCT_LIST_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_GET_PURCHASE_LIST_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_MOUNT_DELIVERED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_PURCHASE_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_START_CHECKOUT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_START_DISTRIBUTION_ASSIGN_TO_TARGET_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_START_PURCHASE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_VALIDATE_PURCHASE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PETS_HEALED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PET_CAGE_DATE_ERROR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PET_DELETED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PET_ERROR, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PET_JOURNAL, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PET_JOURNAL_LOCK_ACQUIRED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PET_JOURNAL_LOCK_DENIED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PET_RESTORED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PET_REVOKED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PET_TRAP_LEVEL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PET_UPDATES, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BIND_POINT_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BLACK_MARKET_BID_ON_ITEM_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BLACK_MARKET_OUTBID, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BLACK_MARKET_REQUEST_ITEMS_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BLACK_MARKET_WON, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BONUS_ROLL_EMPTY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BOSS_KILL, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BREAK_TARGET, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BROADCAST_ACHIEVEMENT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BROADCAST_SUMMON_CAST, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BROADCAST_SUMMON_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BULK_PURCHASE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BULK_PURCHASE_UPDATE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BULK_REFUND_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BUY_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BUY_SUCCEEDED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CACHE_INFO, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CACHE_VERSION, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_CLEAR_PENDING_ACTION, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_COMMAND_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_COMMUNITY_INVITE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_EVENT_REMOVED_ALERT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_EVENT_UPDATED_ALERT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_INVITE_ADDED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_INVITE_ALERT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_INVITE_NOTES, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_INVITE_NOTES_ALERT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_INVITE_REMOVED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_INVITE_REMOVED_ALERT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_INVITE_STATUS, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_INVITE_STATUS_ALERT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_MODERATOR_STATUS, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_RAID_LOCKOUT_ADDED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_RAID_LOCKOUT_REMOVED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_RAID_LOCKOUT_UPDATED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_SEND_CALENDAR, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_SEND_EVENT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_SEND_NUM_PENDING, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CAMERA_EFFECT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CANCEL_AUTO_REPEAT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CANCEL_COMBAT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CANCEL_ORPHAN_SPELL_VISUAL, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CANCEL_PING_PIN, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CANCEL_PRELOAD_WORLD, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CANCEL_SCENE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CANCEL_SPELL_VISUAL, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CANCEL_SPELL_VISUAL_KIT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CAN_DUEL_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CAN_REDEEM_TOKEN_FOR_BALANCE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CAPTURE_POINT_REMOVED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CAST_FAILED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CAS_REFRESH_REMOTE_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CATALOG_SHOP_LICENSE_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CATALOG_SHOP_OBTAIN_LICENSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CATALOG_SHOP_OPEN_CHECKOUT_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CAUTIONARY_CHANNEL_MESSAGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CAUTIONARY_CHAT_MESSAGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAIN_MISSILE_BOUNCE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHALLENGE_MODE_COMPLETE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHALLENGE_MODE_NEW_PLAYER_RECORD, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHALLENGE_MODE_REQUEST_LEADERBOARD_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHALLENGE_MODE_REQUEST_LEADERS_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHALLENGE_MODE_RESET, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHALLENGE_MODE_SET_LEAVER_PENALTY_TIMER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHALLENGE_MODE_START, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHALLENGE_MODE_UPDATE_DEATH_COUNT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANGE_PLAYER_DIFFICULTY_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANGE_REALM_TICKET_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANNEL_LIST, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANNEL_NOTIFY, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANNEL_NOTIFY_JOINED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANNEL_NOTIFY_LEFT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANNEL_NOTIFY_NPE_JOINED_BATCH, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHARACTER_CHECK_UPGRADE_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHARACTER_LOGIN_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHARACTER_OBJECT_TEST_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHARACTER_RENAME_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHARACTER_UPGRADE_ABORTED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHARACTER_UPGRADE_COMPLETE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHARACTER_UPGRADE_MANUAL_UNREVOKE_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHARACTER_UPGRADE_STARTED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAR_CUSTOMIZE_FAILURE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAR_CUSTOMIZE_SUCCESS, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAR_FACTION_CHANGE_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_AUTO_RESPONDED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_CAN_LOCAL_WHISPER_TARGET_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_DOWN, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_IGNORED_ACCOUNT_MUTED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_IS_DOWN, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_NOT_IN_GUILD, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_NOT_IN_PARTY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_PLAYER_AMBIGUOUS, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_PLAYER_NOTFOUND, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_RECONNECT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_REGIONAL_SERVICE_STATUS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_RESTRICTED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_SERVER_MESSAGE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHEAT_IGNORE_DIMISHING_RETURNS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHECK_ABANDON_NPE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHECK_CHARACTER_NAME_AVAILABILITY_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHECK_WARGAME_ENTRY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHROMIE_TIME_SELECT_EXPANSION_SUCCESS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLAIM_RAF_REWARD_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLEAR_ALL_SPELL_CHARGES, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLEAR_BOSS_EMOTES, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLEAR_COOLDOWN, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLEAR_COOLDOWNS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLEAR_INITIATIVE_TASK_CRITERIA_PROGRESS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLEAR_RESURRECT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLEAR_SPELL_CHARGES, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLEAR_TARGET, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLEAR_TREASURE_PICKER_CACHE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLOSE_ARTIFACT_FORGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLUB_FINDER_ERROR_MESSAGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLUB_FINDER_GET_CLUB_POSTING_IDS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLUB_FINDER_LOOKUP_CLUB_POSTINGS_LIST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLUB_FINDER_RESPONSE_CHARACTER_APPLICATION_LIST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLUB_FINDER_RESPONSE_POST_RECRUITMENT_MESSAGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLUB_FINDER_UPDATE_APPLICATIONS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLUB_FINDER_WHISPER_APPLICANT_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_COIN_REMOVED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMBAT_EVENT_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMMENTATOR_MAP_INFO, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMMENTATOR_PLAYER_INFO, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMMENTATOR_STATE_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMMERCE_TOKEN_GET_COUNT_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMMERCE_TOKEN_GET_LOG_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMMERCE_TOKEN_GET_MARKET_PRICE_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMMERCE_TOKEN_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMPLAINT_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMPLETE_SHIPMENT_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMPRESSED_PACKET, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONFIRM_PARTY_INVITE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONNECT_TO, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONSOLE_WRITE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONSUMABLE_TOKEN_BUY_AT_MARKET_PRICE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONSUMABLE_TOKEN_BUY_CHOICE_REQUIRED, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONSUMABLE_TOKEN_CAN_VETERAN_BUY_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONSUMABLE_TOKEN_REDEEM_CONFIRM_REQUIRED, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONSUMABLE_TOKEN_REDEEM_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONTACT_LIST, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONTRIBUTION_LAST_UPDATE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONTROL_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONVERT_ITEMS_TO_CURRENCY_VALUE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_COOLDOWN_CHEAT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_COOLDOWN_EVENT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CORPSE_LOCATION, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CORPSE_RECLAIM_DELAY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CORPSE_TRANSPORT_QUERY, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_COVENANT_CALLINGS_AVAILABILITY_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_COVENANT_PREVIEW_OPEN_NPC, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_COVENANT_RENOWN_SEND_CATCHUP_STATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CRAFTING_HOUSE_HELLO_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CRAFTING_ORDER_CANCEL_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CRAFTING_ORDER_CLAIM_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CRAFTING_ORDER_CRAFT_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CRAFTING_ORDER_CREATE_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CRAFTING_ORDER_FULFILL_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CRAFTING_ORDER_LIST_ORDERS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CRAFTING_ORDER_NPC_REWARD_INFO, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CRAFTING_ORDER_REJECT_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CRAFTING_ORDER_RELEASE_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CRAFTING_ORDER_UPDATE_STATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + 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); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CURRENCY_TRANSFER_LOG, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CURRENCY_TRANSFER_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CUSTOM_LOAD_SCREEN, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_DAILY_QUESTS_RESET, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_DAMAGE_CALC_LOG, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_DB_REPLY, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_DEATH_RELEASE_LOC, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_DEBUG_MENU_MANAGER_FULL_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_DEFENSE_MESSAGE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_DELETE_CHAR, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_DELETE_EXPIRED_MISSIONS_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_DELVES_ACCOUNT_DATA_ELEMENT_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_DESTROY_ARENA_UNIT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_DESTRUCTIBLE_BUILDING_DAMAGE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_DIFFERENT_INSTANCE_FROM_PARTY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_DISENCHANT_CREDIT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_DISMOUNT_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_DISPEL_FAILED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_DISPLAY_GAME_ERROR, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_DISPLAY_PLAYER_CHOICE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_DISPLAY_PROMOTION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_DISPLAY_QUEST_POPUP, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_DISPLAY_TOAST, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_DISPLAY_WORLD_TEXT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_DISPLAY_WORLD_TEXT_ON_TARGET, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_DONT_AUTO_PUSH_SPELLS_TO_ACTION_BAR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_DROP_NEW_CONNECTION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_DUEL_ARRANGED, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_DUEL_COMPLETE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_DUEL_COUNTDOWN, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_DUEL_IN_BOUNDS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_DUEL_OUT_OF_BOUNDS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_DUEL_REQUESTED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_DUEL_WINNER, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_DURABILITY_DAMAGE_DEATH, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_EMOTE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ENABLE_BARBER_SHOP, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ENCHANTMENT_LOG, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ENCOUNTER_END, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ENCOUNTER_START, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_END_LIGHTNING_STORM, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ENTER_ENCRYPTED_MODE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ENUM_CHARACTERS_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ENUM_VAS_PURCHASE_STATES_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ENVIRONMENTAL_DAMAGE_LOG, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_EQUIPMENT_SET_ID, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_EXPECTED_SPAM_RECORDS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_EXPLORATION_EXPERIENCE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_EXPORT_ACCOUNT_PROFILE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_EXTERNAL_TRANSACTION_ID_GENERATED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_FACTION_BONUS_INFO, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_FAILED_PLAYER_CONDITION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_FAILED_QUEST_TURN_IN, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_FEATURE_SYSTEM_STATUS, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_FEATURE_SYSTEM_STATUS_GLUE_SCREEN, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_FEIGN_DEATH_RESISTED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_FISH_ESCAPED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_FISH_NOT_HOOKED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_FLIGHT_SPLINE_SYNC, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_FLUSH_COMBAT_LOG_FILE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_FORCED_DEATH_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_FORCE_ANIM, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_FORCE_ANIMATIONS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_FORCE_RANDOM_TRANSMOG_TOAST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_FORCE_SPAWN_TRACKING_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_FRIEND_STATUS, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAIN_MAW_POWER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_OBJECT_ACTIVATE_ANIM_KIT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_OBJECT_BASE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_OBJECT_CLOSE_INTERACTION, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_OBJECT_CUSTOM_ANIM, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_OBJECT_DESPAWN, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_OBJECT_INTERACTION, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_OBJECT_PLAY_SPELL_VISUAL, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_OBJECT_PLAY_SPELL_VISUAL_KIT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_OBJECT_RESET_STATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_OBJECT_SET_STATE_LOCAL, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_SPEED_SET, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_TIME_SET, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_TIME_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_ACTIVATE_MISSION_BONUS_ABILITY, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_ADD_EVENT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_ADD_FOLLOWER_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_ADD_MISSION_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_ADD_SPEC_GROUPS, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_APPLY_TALENT_SOCKET_DATA_CHANGES, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_ASSIGN_FOLLOWER_TO_BUILDING_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_AUTO_TROOP_MIN_LEVEL_UPDATE_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_BUILDING_ACTIVATED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_BUILDING_REMOVED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_BUILDING_SET_ACTIVE_SPECIALIZATION_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_CHANGE_MISSION_START_TIME_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_CLEAR_COLLECTION, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_CLEAR_EVENT_LIST, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_CLEAR_SPEC_GROUPS, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_COLLECTION_REMOVE_ENTRY, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_COLLECTION_UPDATE_ENTRY, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_COMPLETE_BUILDING_CONSTRUCTION_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_COMPLETE_MISSION_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_CREATE_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_DELETE_MISSION_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_DELETE_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_FOLLOWER_ACTIVATIONS_SET, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_FOLLOWER_CHANGED_FLAGS, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_FOLLOWER_CHANGED_ITEM_LEVEL, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_FOLLOWER_CHANGED_QUALITY, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_FOLLOWER_CHANGED_XP, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_FOLLOWER_FATIGUE_CLEARED, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_GENERATE_FOLLOWERS_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_GET_CLASS_SPEC_CATEGORY_INFO_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_GET_RECALL_PORTAL_LAST_USED_TIME_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_IS_UPGRADEABLE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_LEARN_BLUEPRINT_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_LEARN_SPECIALIZATION_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_LIST_COMPLETED_MISSIONS_CHEAT_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_LIST_FOLLOWERS_CHEAT_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_MAP_DATA_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_MISSION_BONUS_ROLL_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_MISSION_REQUEST_REWARD_INFO_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_MISSION_START_CONDITION_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_OPEN_CRAFTER, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_OPEN_RECRUITMENT_NPC, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_PLACE_BUILDING_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_PLOT_PLACED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_PLOT_REMOVED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_RECRUIT_FOLLOWER_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_REMOTE_INFO, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_REMOVE_EVENT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_REMOVE_FOLLOWER_ABILITY_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_REMOVE_FOLLOWER_FROM_BUILDING_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_REMOVE_FOLLOWER_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_RENAME_FOLLOWER_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_REQUEST_BLUEPRINT_AND_SPECIALIZATION_DATA_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_RESEARCH_TALENT_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_RESET_TALENT_TREE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_RESET_TALENT_TREE_SOCKET_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_START_MISSION_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_SWAP_BUILDINGS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_SWITCH_TALENT_TREE_BRANCH, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_TALENT_COMPLETED, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_TALENT_REMOVED, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_TALENT_REMOVE_SOCKET_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_TALENT_UPDATE_SOCKET_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_TALENT_WORLD_QUEST_UNLOCKS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_UNLEARN_BLUEPRINT_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_UPDATE_FOLLOWER, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_UPDATE_GARRISON_MONUMENT_SELECTIONS, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_UPDATE_MISSION_CHEAT_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_UPGRADE_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_USE_RECALL_PORTAL_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GENERATE_RANDOM_CHARACTER_NAME_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GENERATE_SSO_TOKEN_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_ACCOUNT_CHARACTER_LIST_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_ALL_LICENSED_DECOR_QUANTITIES_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_DECOR_REFUND_LIST_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_GARRISON_INFO_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_INITIATIVE_ACTIVITY_LOG_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_INITIATIVE_REWARDS_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_LANDING_PAGE_SHIPMENTS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_PLAYER_INITIATIVE_INFO_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_REALM_HIDDEN_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_REMAINING_GAME_TIME_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_SELECTED_TROPHY_ID_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_SHIPMENTS_OF_TYPE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_SHIPMENT_INFO_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_TROPHY_LIST_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_VAS_ACCOUNT_CHARACTER_LIST_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_VAS_TRANSFER_TARGET_REALM_LIST_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GM_PLAYER_INFO, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GM_REQUEST_PLAYER_INFO, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GM_TICKET_CASE_STATUS, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GM_TICKET_SYSTEM_STATUS, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GOD_MODE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GOSSIP_COMPLETE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GOSSIP_MESSAGE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GOSSIP_OPTION_NPC_INTERACTION, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GOSSIP_POI, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GOSSIP_QUEST_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GOSSIP_REFRESH_OPTIONS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GROUP_ACTION_THROTTLED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GROUP_AUTO_KICK, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GROUP_DECLINE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GROUP_DESTROYED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GROUP_NEW_LEADER, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GROUP_REQUEST_DECLINE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GROUP_UNINVITE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_ACHIEVEMENT_DELETED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_ACHIEVEMENT_EARNED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_ACHIEVEMENT_MEMBERS, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_BANK_LOG_QUERY_RESULTS, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_BANK_QUERY_RESULTS, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_BANK_REMAINING_WITHDRAW_MONEY, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_BANK_TEXT_QUERY_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_CHALLENGE_COMPLETED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_CHALLENGE_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_CHANGE_NAME_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_COMMAND_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_CRITERIA_DELETED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_CRITERIA_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_BANK_CONTENTS_CHANGED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_BANK_MONEY_CHANGED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_DISBANDED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_LOG_QUERY_RESULTS, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_MOTD, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_NEW_LEADER, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_PLAYER_JOINED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_PLAYER_LEFT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_PRESENCE_CHANGE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_RANKS_UPDATED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_RANK_CHANGED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_STATUS_CHANGE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_TAB_ADDED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_TAB_DELETED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_TAB_MODIFIED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_TAB_TEXT_CHANGED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_FLAGGED_FOR_RENAME, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_HARDCORE_MEMBER_DEATH, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_INVITE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_INVITE_DECLINED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_INVITE_EXPIRED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_ITEM_LOOTED_NOTIFY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_KNOWN_RECIPES, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_MEMBERS_WITH_RECIPE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_MEMBER_DAILY_RESET, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_MEMBER_RECIPES, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_MEMBER_UPDATE_NOTE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_MOVED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_MOVE_STARTING, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_NAME_CHANGED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_NEWS, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_NEWS_DELETED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_OTHERS_OWNED_HOUSES_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_PARTY_STATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_PERMISSIONS_QUERY_RESULTS, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_RANKS, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_RENAME_NAME_CHECK, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_RENAME_REFUND_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_RENAME_REQUESTED_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_RENAME_STATUS_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_REPUTATION_REACTION_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_RESET, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_REWARD_LIST, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_ROSTER, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_SEND_RANK_CHANGE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HARDCORE_DEATH_ALERT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HEALTH_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HIGHEST_THREAT_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOTFIX_CONNECT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOTFIX_MESSAGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSE_EXTERIOR_LOCK_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSE_EXTERIOR_SET_HOUSE_POSITION_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_DECOR_ADD_TO_HOUSE_CHEST_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_DECOR_DELETE_FROM_STORAGE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_DECOR_LOCK_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_DECOR_MOVE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_DECOR_PLACE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_DECOR_REMOVE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_DECOR_REQUEST_STORAGE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_DECOR_SET_EDIT_MODE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_DECOR_SYSTEM_SET_DYE_SLOTS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_EXPORT_HOUSE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_FIRST_TIME_DECOR_ACQUISITION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_FIXTURE_CREATE_BASIC_HOUSE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_FIXTURE_CREATE_FIXTURE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_FIXTURE_DELETE_FIXTURE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_FIXTURE_DELETE_HOUSE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_FIXTURE_SET_CORE_FIXTURE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_FIXTURE_SET_EDIT_MODE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_FIXTURE_SET_HOUSE_SIZE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_FIXTURE_SET_HOUSE_TYPE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_GET_CURRENT_HOUSE_INFO_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_GET_PLAYER_PERMISSIONS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_HOUSE_STATUS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_REDEEM_DEFERRED_DECOR_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_RESET_KIOSK_MODE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_ROOM_ADD_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_ROOM_APPLY_COMPONENT_MATERIALS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_ROOM_REMOVE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_ROOM_SET_CEILING_TYPE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_ROOM_SET_COMPONENT_THEME_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_ROOM_SET_DOOR_TYPE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_ROOM_SET_LAYOUT_EDIT_MODE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_ROOM_UPDATE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_ACCEPT_NEIGHBORHOOD_OWNERSHIP_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_CANCEL_RELINQUISH_HOUSE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_CHANGE_HOUSE_COSMETIC_OWNER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_CLEAR_PLOT_RESERVATION_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_CREATE_CHARTER_NEIGHBORHOOD_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_DELETE_ALL_NEIGHBORHOOD_INVITES_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_GET_BNET_FRIEND_NEIGHBORHOODS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_GET_HOUSE_FINDER_INFO_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_GET_HOUSE_FINDER_NEIGHBORHOOD_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_GET_PLAYER_HOUSES_INFO_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_GET_POTENTIAL_HOUSE_OWNERS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_GUILD_ADD_HOUSE_NOTIFICATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_GUILD_APPEND_NEIGHBORHOOD_NOTIFICATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_GUILD_CREATE_NEIGHBORHOOD_NOTIFICATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_GUILD_GET_HOUSING_INFO_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_GUILD_REMOVE_HOUSE_NOTIFICATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_GUILD_RENAME_NEIGHBORHOOD_NOTIFICATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_HOUSE_FINDER_FORCE_REFRESH, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_NEIGHBORHOOD_OWNERSHIP_TRANSFERRED_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_NEIGHBORHOOD_RESERVE_PLOT_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_NOTIFY_PERMISSIONS_FAILURE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_PLAYER_VIEW_HOUSES_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_REJECT_NEIGHBORHOOD_OWNERSHIP_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_RELINQUISH_HOUSE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_UPDATE_HOUSES_LEVEL_FAVOR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_UPDATE_HOUSE_SETTINGS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVC_REQUEST_PLAYER_RELOAD_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INITIALIZE_FACTIONS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INITIAL_SETUP, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INITIATIVE_COMPLETE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INITIATIVE_REWARD_AVAILABLE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INITIATIVE_SERVICE_STATUS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INITIATIVE_TASK_COMPLETE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INIT_WORLD_STATES, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSPECT_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ABANDON_VOTE_COMPLETED, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ABANDON_VOTE_PLAYER_LEFT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ABANDON_VOTE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ABANDON_VOTE_STARTED, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_CHANGE_PRIORITY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_DISENGAGE_UNIT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_END, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_ENGAGE_UNIT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_EVENT_APPEND, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_EVENT_BLOCKED_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_EVENT_CAST_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_EVENT_RESPAWN, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_EVENT_SEQUENCE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_GAIN_COMBAT_RESURRECTION_CHARGE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_IN_COMBAT_RESURRECTION, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_COMPLETE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_START, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_PHASE_SHIFT_CHANGED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_START, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_TIMELINE_SYNC, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_TIMER_START, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_UPDATE_ALLOW_RELEASE_IN_PROGRESS, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_UPDATE_SUPPRESS_RELEASE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_GROUP_SIZE_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_INFO, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_RESET, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_RESET_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_SAVE_CREATED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INTERRUPT_POWER_REGEN, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INVALIDATE_NEIGHBORHOOD, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INVALIDATE_NEIGHBORHOOD_NAME, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INVALIDATE_PAGE_TEXT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INVALIDATE_PLAYER, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INVALID_PROMOTION_CODE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INVENTORY_CHANGE_FAILURE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INVENTORY_FIXUP_COMPLETE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_INVENTORY_FULL_OVERFLOW, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ISLAND_AZERITE_GAIN, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ISLAND_COMPLETE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_IS_QUEST_COMPLETE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ITEM_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ITEM_COOLDOWN, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ITEM_ENCHANT_TIME_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ITEM_EXPIRE_PURCHASE_REFUND, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ITEM_INTERACTION_COMPLETE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ITEM_PURCHASE_REFUND_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ITEM_PUSH_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ITEM_TIME_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_KICK_REASON, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LAST_CATALOG_FETCH_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LATENCY_REPORT_PING, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LEARNED_SPELLS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LEARN_PVP_TALENT_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LEARN_TALENT_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LEGACY_LOOT_RULES, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LEVEL_LINKING_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LEVEL_UP_INFO, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_BOOT_PLAYER, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_DISABLED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_EXPAND_SEARCH_PROMPT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_INSTANCE_SHUTDOWN_COUNTDOWN, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_JOIN_LOBBY_MATCHMAKER_QUEUE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_JOIN_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_LIST_APPLICANT_LIST_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_LIST_APPLICATION_STATUS_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_LIST_APPLY_TO_GROUP_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_LIST_JOIN_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_LIST_SEARCH_RESULTS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_LIST_SEARCH_RESULTS_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_LIST_SEARCH_STATUS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_LIST_UPDATE_BLACKLIST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_LIST_UPDATE_EXPIRATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_LIST_UPDATE_STATUS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_OFFER_CONTINUE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_PARTY_INFO, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_PLAYER_INFO, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_PLAYER_REWARD, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_PROPOSAL_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_QUEUE_STATUS, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_READY_CHECK_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_READY_CHECK_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_ROLE_CHECK_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_SLOT_INVALID, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_SUSPEND_LOREWALKING, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_TELEPORT_DENIED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LFG_UPDATE_STATUS, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LICENSED_DECOR_QUANTITIES_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LIVE_REGION_ACCOUNT_RESTORE_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LIVE_REGION_CHARACTER_COPY_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LIVE_REGION_GET_ACCOUNT_CHARACTER_LIST_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LIVE_REGION_KEY_BINDINGS_COPY_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOAD_CUF_PROFILES, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOAD_EQUIPMENT_SET, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOBBY_MATCHMAKER_LOBBY_ACQUIRED_SERVER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOBBY_MATCHMAKER_PARTY_INFO, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOBBY_MATCHMAKER_PARTY_INVITE_REJECTED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOBBY_MATCHMAKER_QUEUE_PROPOSED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOBBY_MATCHMAKER_QUEUE_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOBBY_MATCHMAKER_RECEIVE_INVITE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOGIN_SET_TIME_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOGIN_VERIFY_WORLD, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOGOUT_CANCEL_ACK, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOGOUT_COMPLETE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOGOUT_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOG_XP_GAIN, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOOT_ALL_PASSED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOOT_LIST, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOOT_MONEY_NOTIFY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOOT_RELEASE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOOT_RELEASE_ALL, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOOT_REMOVED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOOT_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOOT_ROLL, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOOT_ROLLS_COMPLETE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOOT_ROLL_WON, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOSS_OF_CONTROL_AURA_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MAIL_COMMAND_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MAIL_LIST_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MAIL_QUERY_NEXT_TIME_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MAP_OBJECTIVES_INIT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MAP_OBJ_EVENTS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MASTER_LOOT_CANDIDATE_LIST, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MEETING_STONE_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MESSAGE_BOX, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MINIMAP_PING, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MIRROR_IMAGE_COMPONENTED_DATA, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MIRROR_IMAGE_CREATURE_DATA, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MIRROR_VARS, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MISSILE_CANCEL, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MODIFY_COOLDOWN, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOTD, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOUNT_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVEMENT_ENFORCEMENT_ALERT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_ADD_IMPULSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_APPLY_INERTIA, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_APPLY_MOVEMENT_FORCE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_DISABLE_COLLISION, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_DISABLE_DOUBLE_JUMP, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_DISABLE_FULL_SPEED_TURNING, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_DISABLE_GRAVITY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_DISABLE_INERTIA, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_DISABLE_TRANSITION_BETWEEN_SWIM_AND_FLY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_ENABLE_COLLISION, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_ENABLE_DOUBLE_JUMP, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_ENABLE_FULL_SPEED_TURNING, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_ENABLE_GRAVITY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_ENABLE_INERTIA, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_ENABLE_TRANSITION_BETWEEN_SWIM_AND_FLY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_INITIAL_OBJECT_UPDATE_COMPLETE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_KNOCK_BACK, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_MARK_REMOTE_TIME_INVALID, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_REMOVE_INERTIA, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_REMOVE_MOVEMENT_FORCE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_ROOT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_ACTIVE_MOVER, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_ADV_FLYING_ADD_IMPULSE_MAX_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_ADV_FLYING_AIR_FRICTION, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_ADV_FLYING_BANKING_RATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_ADV_FLYING_DOUBLE_JUMP_VEL_MOD, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_ADV_FLYING_GLIDE_START_MIN_HEIGHT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_ADV_FLYING_LAUNCH_SPEED_COEFFICIENT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_ADV_FLYING_LIFT_COEFFICIENT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_ADV_FLYING_MAX_VEL, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_ADV_FLYING_OVER_MAX_DECELERATION, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_ADV_FLYING_PITCHING_RATE_DOWN, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_ADV_FLYING_PITCHING_RATE_UP, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_ADV_FLYING_SURFACE_FRICTION, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_ADV_FLYING_TURN_VELOCITY_THRESHOLD, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_CANNOT_SWIM, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_CAN_ADV_FLY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_CAN_DRIVE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_CAN_FLY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_CAN_TURN_WHILE_FALLING, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_COLLISION_HEIGHT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_COMPOUND_STATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_FEATHER_FALL, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_FLIGHT_BACK_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_FLIGHT_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_GRAVITY_MODIFIER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_HOVERING, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_IGNORE_MOVEMENT_FORCES, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_LAND_WALK, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_MOD_MOVEMENT_FORCE_MAGNITUDE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_NORMAL_FALL, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_PITCH_RATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_RUN_BACK_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_RUN_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_SWIM_BACK_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_SWIM_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_TURN_RATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_VEHICLE_REC_ID, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_WALK_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_WATER_WALK, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SKIP_TIME, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_DISABLE_COLLISION, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_DISABLE_GRAVITY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_ENABLE_COLLISION, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_ENABLE_GRAVITY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_ROOT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_SET_FEATHER_FALL, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_SET_FLIGHT_BACK_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_SET_FLIGHT_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_SET_FLYING, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_SET_HOVER, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_SET_LAND_WALK, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_SET_NORMAL_FALL, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_SET_PITCH_RATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_SET_RUN_BACK_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_SET_RUN_MODE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_SET_RUN_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_SET_SWIM_BACK_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_SET_SWIM_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_SET_TURN_RATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_SET_WALK_MODE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_SET_WALK_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_SET_WATER_WALK, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_START_SWIM, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_STOP_SWIM, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_UNROOT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_UNSET_FLYING, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SPLINE_UNSET_HOVER, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_TELEPORT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UNROOT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UNSET_CANNOT_SWIM, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UNSET_CAN_ADV_FLY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UNSET_CAN_DRIVE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UNSET_CAN_FLY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UNSET_CAN_TURN_WHILE_FALLING, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UNSET_HOVERING, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UNSET_IGNORE_MOVEMENT_FORCES, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_ADD_IMPULSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_APPLY_INERTIA, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_APPLY_MOVEMENT_FORCE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_COLLISION_HEIGHT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_FLIGHT_BACK_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_FLIGHT_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_KNOCK_BACK, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_MOD_MOVEMENT_FORCE_MAGNITUDE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_PITCH_RATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_REMOVE_INERTIA, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_REMOVE_MOVEMENT_FORCE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_RUN_BACK_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_RUN_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_SET_GRAVITY_MODIFIER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_SWIM_BACK_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_SWIM_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_TELEPORT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_TURN_RATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_WALK_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MULTIPLE_PACKETS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MULTI_FLOOR_LEAVE_FLOOR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MULTI_FLOOR_NEW_FLOOR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MYTHIC_PLUS_ALL_MAP_STATS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MYTHIC_PLUS_CURRENT_AFFIXES, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MYTHIC_PLUS_NEW_WEEK_RECORD, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MYTHIC_PLUS_SEASON_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEIGHBORHOOD_ADD_SECONDARY_OWNER_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEIGHBORHOOD_BUY_HOUSE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEIGHBORHOOD_CANCEL_INVITATION_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEIGHBORHOOD_CHARTER_ADD_SIGNATURE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEIGHBORHOOD_CHARTER_OPEN_CONFIRMATION_UI_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEIGHBORHOOD_CHARTER_OPEN_UI_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEIGHBORHOOD_CHARTER_SIGNATURE_REMOVED_NOTIFICATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEIGHBORHOOD_CHARTER_SIGN_REQUEST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEIGHBORHOOD_CHARTER_UPDATE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEIGHBORHOOD_DECLINE_INVITATION_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEIGHBORHOOD_EVICT_PLAYER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEIGHBORHOOD_EVICT_PLOT_NOTICE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEIGHBORHOOD_EVICT_PLOT_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEIGHBORHOOD_GET_INVITES_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEIGHBORHOOD_GET_ROSTER_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEIGHBORHOOD_INVITE_NAME_LOOKUP_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEIGHBORHOOD_INVITE_NOTIFICATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEIGHBORHOOD_INVITE_RESIDENT_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEIGHBORHOOD_MOVE_HOUSE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEIGHBORHOOD_OFFER_OWNERSHIP_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEIGHBORHOOD_OPEN_CORNERSTONE_UI_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEIGHBORHOOD_PLAYER_ENTER_PLOT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEIGHBORHOOD_PLAYER_GET_INVITE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEIGHBORHOOD_PLAYER_LEAVE_PLOT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEIGHBORHOOD_REMOVE_SECONDARY_OWNER_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEIGHBORHOOD_ROSTER_RESIDENT_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEIGHBORHOOD_UPDATE_NAME_NOTIFICATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEIGHBORHOOD_UPDATE_NAME_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEUTRAL_PLAYER_FACTION_SELECT_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEW_DATA_BUILD, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEW_TAXI_PATH, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEW_WORLD, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NOTIFY_DEST_LOC_SPELL_CAST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NOTIFY_MISSILE_TRAJECTORY_COLLISION, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NOTIFY_MONEY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NOTIFY_RECEIVED_MAIL, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NPC_INTERACTION_OPEN_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_OFFER_PETITION_ERROR, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ON_MONSTER_MOVE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_OPEN_ARTIFACT_FORGE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_OPEN_CONTAINER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_OPEN_LFG_DUNGEON_FINDER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_OPEN_SHIPMENT_NPC_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_OVERRIDE_LIGHT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PAGE_TEXT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PARTY_COMMAND_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PARTY_ELIGIBILITY_FOR_DELVE_TIERS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PARTY_INVITE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PARTY_KILL_LOG, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PARTY_MEMBER_FULL_STATE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PARTY_MEMBER_PARTIAL_STATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PARTY_NOTIFY_LFG_LEADER_CHANGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PARTY_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM); + 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_ANIM_TOGGLE_KILL_SWITCH, STATUS_UNHANDLED, 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); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PETITION_SHOW_SIGNATURES, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PETITION_SIGN_RESULTS, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_ACTION_FEEDBACK, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_ACTION_SOUND, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_BATTLE_CHAT_RESTRICTED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_BATTLE_DEBUG_QUEUE_DUMP_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_BATTLE_FINALIZE_LOCATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_BATTLE_FINAL_ROUND, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_BATTLE_FINISHED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_BATTLE_FIRST_ROUND, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_BATTLE_INITIAL_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_BATTLE_MAX_GAME_LENGTH_WARNING, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_BATTLE_PVP_CHALLENGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_BATTLE_QUEUE_PROPOSE_MATCH, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_BATTLE_QUEUE_STATUS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_BATTLE_REPLACEMENTS_MADE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_BATTLE_REQUEST_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_BATTLE_ROUND_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_BATTLE_SLOT_UPDATES, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_CAST_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_CLEAR_SPELLS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_DISMISS_SOUND, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_GOD_MODE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_GUIDS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_LEARNED_SPELLS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_MODE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_NAME_INVALID, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_NEWLY_TAMED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_SPELLS_MESSAGE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_STABLE_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_TAME_FAILURE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_UNLEARNED_SPELLS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PHASE_SHIFT_CHANGE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYED_TIME, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_ACKNOWLEDGE_ARROW_CALLOUT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_AZERITE_ITEM_EQUIPPED_STATUS_CHANGED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_AZERITE_ITEM_GAINS, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_BONUS_ROLL_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_BOUND, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_CHOICE_CLEAR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_CHOICE_DISPLAY_ERROR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_CONDITION_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_DELAYED_UPLOAD_SCREENSHOT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_END_OF_MATCH_DETAILS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_HIDE_ARROW_CALLOUT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_IS_ADVENTURE_MAP_POI_VALID, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_OPEN_SUBSCRIPTION_INTERSTITIAL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_SAVE_GUILD_EMBLEM, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_SAVE_PERSONAL_EMBLEM, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_SHOW_ARROW_CALLOUT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_SHOW_GENERIC_WIDGET_DISPLAY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_SHOW_PARTY_POSE_UI, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_SHOW_UI_EVENT_TOAST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_SKINNED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_TUTORIAL_HIGHLIGHT_SPELL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_TUTORIAL_UNHIGHLIGHT_SPELL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAYER_UPLOAD_SCREENSHOT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_MUSIC, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_OBJECT_SOUND, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_ONE_SHOT_ANIM_KIT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_ORPHAN_SPELL_VISUAL, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SCENE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SOUND, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SPEAKERBOT_SOUND, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SPELL_VISUAL, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SPELL_VISUAL_KIT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_TIME_WARNING, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PONG, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_POWER_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PRELOAD_CHILD_MAP, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PRELOAD_WORLD, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PREPOPULATE_NAME_CACHE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PRE_RESSURECT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PRINT_NOTIFICATION, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PROC_RESIST, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PROFESSION_GOSSIP, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PUSH_SPELL_TO_ACTION_BAR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_CREDIT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_MATCH_COMPLETE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_MATCH_INITIALIZE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_MATCH_SET_STATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_MATCH_START, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_MATCH_STATISTICS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_OPTIONS_ENABLED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_TIER_RECORD, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_BATTLE_PET_NAME_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_CREATURE_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_GAME_OBJECT_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_GARRISON_PET_NAME_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_GUILD_FOLLOW_INFO_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_GUILD_INFO_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_ITEM_TEXT_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_NEIGHBORHOOD_NAME_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_NPC_TEXT_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_PAGE_TEXT_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_PETITION_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_PET_NAME_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_PLAYER_NAMES_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_PLAYER_NAME_BY_COMMUNITY_ID_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_QUEST_INFO_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_REALM_GUILD_MASTER_INFO_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_SELECTED_WOW_LABS_AREA_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_TIME_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_WOW_LABS_AREA_INFO_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_COMPLETION_NPC_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_CONFIRM_ACCEPT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_FORCE_REMOVED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_GIVER_INVALID_QUEST, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_GIVER_OFFER_REWARD_MESSAGE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_GIVER_QUEST_COMPLETE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_GIVER_QUEST_DETAILS, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_GIVER_QUEST_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_GIVER_QUEST_LIST_MESSAGE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_GIVER_REQUEST_ITEMS, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_GIVER_STATUS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_GIVER_STATUS_MULTIPLE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_ITEM_USABILITY_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_LOG_FULL, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_NON_LOG_UPDATE_COMPLETE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_POI_QUERY_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_POI_UPDATE_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_PUSH_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_SESSION_INFO_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_SESSION_READY_CHECK, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_SESSION_READY_CHECK_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_SESSION_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_UPDATE_ADD_CREDIT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_UPDATE_ADD_CREDIT_SIMPLE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_UPDATE_ADD_PVP_CREDIT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_UPDATE_COMPLETE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_UPDATE_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_UPDATE_FAILED_TIMER, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEUE_SUMMARY_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_RAF_ACCOUNT_INFO, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_RAF_ACTIVITY_STATE_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_RAF_DEBUG_FRIEND_MONTHS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_RAID_DIFFICULTY_SET, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_RAID_GROUP_ONLY, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_RAID_INSTANCE_MESSAGE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_RAID_MARKERS_CHANGED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_RANDOM_ROLL, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_RATED_PVP_INFO, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_READY_CHECK_COMPLETED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_READY_CHECK_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_READY_CHECK_STARTED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_READ_ITEM_RESULT_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_READ_ITEM_RESULT_OK, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_REALM_QUERY_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_REATTACH_RESURRECT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_RECEIVE_PING_UNIT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_RECEIVE_PING_WORLD_POINT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_RECENT_ALLY_DATA_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_RECENT_ALLY_NOTE_UPDATED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_RECRAFT_ITEM_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_RECRUIT_A_FRIEND_FAILURE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_REFETCH_TACT_KEYS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_REFRESH_COMPONENT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_REGIONWIDE_CHARACTER_MAIL_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_REGIONWIDE_CHARACTER_RESTRICTIONS_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_REMOVE_ITEM_PASSIVE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_REMOVE_SPELL_FROM_ACTION_BAR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_REPLACE_TROPHY_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_REPORT_PVP_PLAYER_AFK_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_REQUEST_CEMETERY_LIST_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_REQUEST_PVP_REWARDS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_REQUEST_SCHEDULED_PVP_INFO_RESPONSE, 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); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESUME_CAST_BAR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESUME_COMMS, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESUME_TOKEN, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESURRECT_REQUEST, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESYNC_RUNES, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_RETURN_APPLICANT_LIST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_RETURN_RECRUITING_CLUBS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ROLE_CHANGED_INFORM, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ROLE_CHOSEN, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ROLE_POLL_INFORM, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_RUNEFORGE_LEGENDARY_CRAFTING_OPEN_NPC, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_RUNE_REGEN_DEBUG, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCENARIO_COMPLETED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCENARIO_POIS, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCENARIO_PROGRESS_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCENARIO_SHOW_CRITERIA, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCENARIO_STATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCENARIO_UI_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCENARIO_VACATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCENE_OBJECT_EVENT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCENE_OBJECT_PET_BATTLE_FINAL_ROUND, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCENE_OBJECT_PET_BATTLE_FINISHED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCENE_OBJECT_PET_BATTLE_FIRST_ROUND, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCENE_OBJECT_PET_BATTLE_INITIAL_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCENE_OBJECT_PET_BATTLE_REPLACEMENTS_MADE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCENE_OBJECT_PET_BATTLE_ROUND_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCHEDULED_AREA_POI_UPDATE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCRIPT_CAST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SEASON_INFO, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SELL_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SEND_FORCE_PITCH_CHANGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SEND_ITEM_PASSIVES, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SEND_KNOWN_SPELLS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SEND_RAID_TARGET_UPDATE_ALL, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SEND_RAID_TARGET_UPDATE_SINGLE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SEND_SPELL_CHARGES, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SEND_SPELL_HISTORY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SEND_UNLEARN_SPELLS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SERVER_FIRST_ACHIEVEMENTS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SERVER_TIME, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SERVER_TIME_OFFSET, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SETUP_COMBAT_LOG_FILE_FLUSH, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SETUP_CURRENCY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_AI_ANIM_KIT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_ANIM_TIER, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_CHR_UPGRADE_TIER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_CTR_OPTIONS, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_CURRENCY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_DF_FAST_LAUNCH_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_DUNGEON_DIFFICULTY, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_FACTION_AT_WAR, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_FACTION_NOT_VISIBLE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_FACTION_STANDING, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_FACTION_VISIBLE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_FLAT_SPELL_MODIFIER, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_FLAT_SPELL_PVP_MODIFIER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_INSTANCE_LEAVER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_ITEM_PURCHASE_DATA, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_LOOT_METHOD_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_MAX_WEEKLY_QUANTITY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_MELEE_ANIM_KIT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_MOVEMENT_ANIM_KIT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_PCT_SPELL_MODIFIER, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_PCT_SPELL_PVP_MODIFIER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_PET_SPECIALIZATION, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_PLAY_HOVER_ANIM, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_PROFICIENCY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_QUEST_REPLAY_COOLDOWN_OVERRIDE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_SHIPMENT_READY_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_SPELL_CHARGES, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_TIME_ZONE_INFORMATION, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_VEHICLE_REC_ID, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHADOWLANDS_CAPACITANCE_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHIPMENT_FACTION_UPDATE_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHOW_DELVES_COMPANION_CONFIGURATION_UI, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHOW_DELVES_DISPLAY_UI, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHOW_NEUTRAL_PLAYER_FACTION_SELECT_UI, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHOW_QUEST_COMPLETION_TEXT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHOW_TAXI_NODES, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHOW_TRADE_SKILL_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SOCIAL_CONTRACT_REQUEST_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SOCKET_GEMS_FAILURE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SOCKET_GEMS_SUCCESS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPECIAL_MOUNT_ANIM, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPECTATE_END, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPECTATE_PLAYER, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPEC_INVOLUNTARILY_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_ABSORB_LOG, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_CATEGORY_COOLDOWN, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_CHANNEL_START, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_CHANNEL_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_COOLDOWN, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_DAMAGE_SHIELD, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_DELAYED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_DISPELL_LOG, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_EMPOWER_SET_STAGE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_EMPOWER_START, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_EMPOWER_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_ENERGIZE_LOG, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_EXECUTE_LOG, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_FAILED_OTHER, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_FAILURE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_FAILURE_MESSAGE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_GO, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_HEAL_ABSORB_LOG, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_HEAL_LOG, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_INSTAKILL_LOG, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_INTERRUPT_LOG, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_MISS_LOG, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_NON_MELEE_DAMAGE_LOG, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_OR_DAMAGE_IMMUNE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_PERIODIC_AURA_LOG, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_PREPARE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_START, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_VISUAL_LOAD_SCREEN, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPLASH_SCREEN_SHOW_LATEST, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_STAND_STATE_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_STARTER_BUILD_ACTIVATE_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_START_ELAPSED_TIMER, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_START_ELAPSED_TIMERS, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_START_LIGHTNING_STORM, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_START_LOOT_ROLL, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_START_MIRROR_TIMER, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_START_TIMER, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_STOP_ELAPSED_TIMER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_STOP_MIRROR_TIMER, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_STOP_SPEAKERBOT_SOUND, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_STOP_TIMER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_STREAMING_MOVIES, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SUGGEST_INVITE_INFORM, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SUMMON_CANCEL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SUMMON_RAID_MEMBER_VALIDATE_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SUMMON_REQUEST, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SUPERCEDED_SPELLS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SURVEY_DELIVERED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SUSPEND_COMMS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SUSPEND_TOKEN, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SYNC_WOW_ENTITLEMENTS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_TALENTS_INVOLUNTARILY_RESET, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_TAXI_NODE_STATUS, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_TEXT_EMOTE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_THREAT_CLEAR, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_THREAT_REMOVE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_THREAT_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_TIMERUNNING_SEASON_ENDED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_TIME_ADJUSTMENT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_TIME_SYNC_REQUEST, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_TITLE_EARNED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_TITLE_LOST, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_TOTEM_CREATED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_TOTEM_DURATION_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_TOTEM_MOVED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_TOTEM_REMOVED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_TRADE_STATUS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_TRADE_UPDATED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_TRAINER_BUY_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_TRAINER_LIST, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_TRAIT_CONFIG_COMMIT_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_TRANSFER_ABORTED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_TRANSFER_PENDING, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_TRANSMOG_OUTFIT_INFO_UPDATED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_TRANSMOG_OUTFIT_NEW_ENTRY_ADDED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_TRANSMOG_OUTFIT_SITUATIONS_UPDATED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_TRANSMOG_OUTFIT_SLOTS_UPDATED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_TREASURE_PICKER_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_TREASURE_PUNCH_LIST_ITEMS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_TRIGGER_CINEMATIC, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_TRIGGER_MOVIE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_TURN_IN_PETITION_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_TUTORIAL_FLAGS, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_UI_ACTION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_UI_MAP_QUEST_LINES_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_UNDELETE_CHARACTER_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_UNDELETE_COOLDOWN_STATUS_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_UNIT_DIMINISHING_RETURN_START, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_UNLEARNED_SPELLS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_UNLOAD_CHILD_MAP, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_UNSET_INSTANCE_LEAVER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_AADC_STATUS_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_ACCOUNT_DATA, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_ACCOUNT_DATA_COMPLETE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_ACTION_BUTTONS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_BNET_SESSION_KEY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_CAPTURE_POINT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_CELESTIAL_BODY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_CHARACTER_FLAGS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_CHARGE_CATEGORY_COOLDOWN, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_COOLDOWN, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_CRAFTING_NPC_RECIPES, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_DAILY_MISSION_COUNTER, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_EXPANSION_LEVEL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_GAME_TIME_STATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_INSTANCE_OWNERSHIP, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_LAST_INSTANCE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_OBJECT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_PRIMARY_SPEC, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_RECENT_PLAYER_GUIDS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_TALENT_DATA, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_WORLD_STATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_USERLIST_ADD, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_USERLIST_REMOVE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_USERLIST_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_USE_EQUIPMENT_SET_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_VAS_CHECK_TRANSFER_OK_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_VAS_GET_QUEUE_MINUTES_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_VAS_GET_SERVICE_STATUS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_VAS_PURCHASE_COMPLETE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_VAS_PURCHASE_STATE_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_VENDOR_INVENTORY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_VIGNETTE_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_VOICE_CHANNEL_INFO_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_VOICE_CHANNEL_STT_TOKEN_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_VOICE_LOGIN_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_VOID_ITEM_SWAP_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_VOID_STORAGE_CONTENTS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_VOID_STORAGE_FAILED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_VOID_STORAGE_TRANSFER_CHANGES, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_VOID_TRANSFER_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_WAIT_QUEUE_FINISH, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_WAIT_QUEUE_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_WALK_IN_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_WARDEN3_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_WARDEN3_DISABLED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_WARDEN3_ENABLED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_WARFRONT_COMPLETE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_WARGAME_REQUEST_OPPONENT_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_WARGAME_REQUEST_SUCCESSFULLY_SENT_TO_OPPONENT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_WEATHER, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_WEEKLY_REWARDS_PROGRESS_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_WEEKLY_REWARDS_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_WEEKLY_REWARD_CLAIM_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_WHO, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_WHO_IS, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_WILL_BE_KICKED_FOR_ADDED_SUBSCRIPTION_TIME, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_WORLD_QUEST_UPDATE_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_WORLD_SERVER_INFO, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_WOW_ENTITLEMENT_NOTIFICATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_WOW_LABS_AREA_SELECTED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_WOW_LABS_NOTIFY_PLAYERS_MATCH_END, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_WOW_LABS_NOTIFY_PLAYERS_MATCH_STATE_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_WOW_LABS_PARTY_ERROR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_WOW_LABS_SET_PREDICTION_CIRCLE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_WOW_LABS_SET_WOW_LABS_AREA_ID_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_XP_AWARDED_FROM_CURRENCY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_XP_GAIN_ABORTED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_XP_GAIN_ENABLED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ZONE_UNDER_ATTACK, STATUS_NEVER, CONNECTION_TYPE_REALM); #undef DEFINE_SERVER_OPCODE_HANDLER } diff --git a/src/server/game/Server/Protocol/Opcodes.h b/src/server/game/Server/Protocol/Opcodes.h index 4a45eeeb6a..2d743d302d 100644 --- a/src/server/game/Server/Protocol/Opcodes.h +++ b/src/server/game/Server/Protocol/Opcodes.h @@ -36,2293 +36,2464 @@ constexpr uint32 UNKNOWN_OPCODE = 0xBADD; // special marker value for uninitia enum OpcodeClient : uint32 { - CMSG_ABANDON_NPE_RESPONSE = 0x39029A, - CMSG_ACCEPT_GUILD_INVITE = 0x3E0029, - CMSG_ACCEPT_SOCIAL_CONTRACT = 0x3E0177, - CMSG_ACCEPT_TRADE = 0x390004, - CMSG_ACCEPT_WARGAME_INVITE = 0x3E000C, - CMSG_ACCOUNT_BANK_DEPOSIT_MONEY = 0x3902DC, - CMSG_ACCOUNT_BANK_WITHDRAW_MONEY = 0x3902DD, - CMSG_ACCOUNT_NOTIFICATION_ACKNOWLEDGED = 0x3E0163, - CMSG_ACCOUNT_STORE_BEGIN_PURCHASE_OR_REFUND = 0x3E00C1, - CMSG_ACTIVATE_SOULBIND = 0x390289, - CMSG_ACTIVATE_TAXI = 0x3A003E, - CMSG_ADDON_LIST = 0x3E0004, - CMSG_ADD_ACCOUNT_COSMETIC = 0x390172, - CMSG_ADD_BATTLENET_FRIEND = 0x3E0086, - CMSG_ADD_FRIEND = 0x3E0100, - CMSG_ADD_IGNORE = 0x3E0104, - CMSG_ADD_TOY = 0x390171, - CMSG_ADVENTURE_JOURNAL_OPEN_QUEST = 0x3900B4, - CMSG_ADVENTURE_JOURNAL_UPDATE_SUGGESTIONS = 0x39028C, - CMSG_ADVENTURE_MAP_START_QUEST = 0x39022C, - CMSG_ALTER_APPEARANCE = 0x3A008D, - CMSG_AREA_SPIRIT_HEALER_QUERY = 0x3A0043, - CMSG_AREA_SPIRIT_HEALER_QUEUE = 0x3A0044, - CMSG_AREA_TRIGGER = 0x390087, - CMSG_ARTIFACT_ADD_POWER = 0x390056, - CMSG_ARTIFACT_SET_APPEARANCE = 0x390058, - CMSG_ASSIGN_EQUIPMENT_SET_SPEC = 0x3900C0, - CMSG_ATTACK_STOP = 0x39011E, - CMSG_ATTACK_SWING = 0x39011D, - CMSG_AUCTIONABLE_TOKEN_SELL = 0x3E0116, - CMSG_AUCTIONABLE_TOKEN_SELL_AT_MARKET_PRICE = 0x3E0117, - CMSG_AUCTION_BROWSE_QUERY = 0x3A0061, - CMSG_AUCTION_CANCEL_COMMODITIES_PURCHASE = 0x3A0069, - CMSG_AUCTION_CONFIRM_COMMODITIES_PURCHASE = 0x3A0068, - CMSG_AUCTION_GET_COMMODITY_QUOTE = 0x3A0067, - CMSG_AUCTION_HELLO_REQUEST = 0x3A005C, - CMSG_AUCTION_LIST_BIDDED_ITEMS = 0x3A0065, - CMSG_AUCTION_LIST_BUCKETS_BY_BUCKET_KEYS = 0x3A0066, - CMSG_AUCTION_LIST_ITEMS_BY_BUCKET_KEY = 0x3A0062, - CMSG_AUCTION_LIST_ITEMS_BY_ITEM_ID = 0x3A0063, - CMSG_AUCTION_LIST_OWNED_ITEMS = 0x3A0064, - CMSG_AUCTION_PLACE_BID = 0x3A0060, - CMSG_AUCTION_REMOVE_ITEM = 0x3A005E, - CMSG_AUCTION_REPLICATE_ITEMS = 0x3A005F, - CMSG_AUCTION_SELL_COMMODITY = 0x3A006A, - CMSG_AUCTION_SELL_ITEM = 0x3A005D, - CMSG_AUCTION_SET_FAVORITE_ITEM = 0x3E0164, - CMSG_AUTH_CONTINUED_SESSION = 0x3F0003, - CMSG_AUTH_SESSION = 0x3F0001, - CMSG_AUTOBANK_ITEM = 0x3B0003, - CMSG_AUTOSTORE_BANK_ITEM = 0x3B0002, - CMSG_AUTO_DEPOSIT_ACCOUNT_BANK = 0x3902E6, - CMSG_AUTO_DEPOSIT_CHARACTER_BANK = 0x3902EE, - CMSG_AUTO_EQUIP_ITEM = 0x3B0004, - CMSG_AUTO_EQUIP_ITEM_SLOT = 0x3B0009, - CMSG_AUTO_GUILD_BANK_ITEM = 0x3A0048, - CMSG_AUTO_STORE_BAG_ITEM = 0x3B0005, - CMSG_AUTO_STORE_GUILD_BANK_ITEM = 0x3A0051, - CMSG_AZERITE_EMPOWERED_ITEM_SELECT_POWER = 0x390258, - CMSG_AZERITE_EMPOWERED_ITEM_VIEWED = 0x390238, - CMSG_AZERITE_ESSENCE_ACTIVATE_ESSENCE = 0x39025A, - CMSG_AZERITE_ESSENCE_UNLOCK_MILESTONE = 0x390259, - CMSG_BANKER_ACTIVATE = 0x3A0046, - CMSG_BATTLEFIELD_LEAVE = 0x39001F, - CMSG_BATTLEFIELD_LIST = 0x39002A, - CMSG_BATTLEFIELD_PORT = 0x3A00C3, - CMSG_BATTLEMASTER_HELLO = 0x390190, - CMSG_BATTLEMASTER_JOIN = 0x3A00BA, - CMSG_BATTLEMASTER_JOIN_ARENA = 0x3A00BB, - CMSG_BATTLEMASTER_JOIN_BRAWL = 0x3A00C1, - CMSG_BATTLEMASTER_JOIN_RATED_BG_BLITZ = 0x3A00BD, - CMSG_BATTLEMASTER_JOIN_RATED_SOLO_SHUFFLE = 0x3A00BC, - CMSG_BATTLEMASTER_JOIN_SKIRMISH = 0x3A00BE, - CMSG_BATTLENET_CHALLENGE_RESPONSE = 0x3E0103, - CMSG_BATTLENET_REQUEST = 0x3E0124, - CMSG_BATTLE_PAY_ACK_FAILED_RESPONSE = 0x3E00FC, - CMSG_BATTLE_PAY_CANCEL_OPEN_CHECKOUT = 0x3E0141, - CMSG_BATTLE_PAY_CONFIRM_PURCHASE_RESPONSE = 0x3E00FB, - CMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_TO_TARGET = 0x3E00F2, - CMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_VAS = 0x3E0167, - CMSG_BATTLE_PAY_GET_PRODUCT_LIST = 0x3E00E9, - CMSG_BATTLE_PAY_GET_PURCHASE_LIST = 0x3E00EA, - CMSG_BATTLE_PAY_OPEN_CHECKOUT = 0x3E013A, - CMSG_BATTLE_PAY_REQUEST_PRICE_INFO = 0x3E0135, - CMSG_BATTLE_PAY_START_PURCHASE = 0x3E00FA, - CMSG_BATTLE_PAY_START_VAS_PURCHASE = 0x3E0122, - CMSG_BATTLE_PET_CLEAR_FANFARE = 0x290002, - CMSG_BATTLE_PET_DELETE_PET = 0x3E004F, - CMSG_BATTLE_PET_DELETE_PET_CHEAT = 0x3E0050, - CMSG_BATTLE_PET_MODIFY_NAME = 0x3E0052, - CMSG_BATTLE_PET_REQUEST_JOURNAL = 0x3E004E, - CMSG_BATTLE_PET_REQUEST_JOURNAL_LOCK = 0x3E004D, - CMSG_BATTLE_PET_SET_BATTLE_SLOT = 0x3E0057, - CMSG_BATTLE_PET_SET_FLAGS = 0x3E005A, - CMSG_BATTLE_PET_SUMMON = 0x3E0053, - CMSG_BATTLE_PET_UPDATE_DISPLAY_NOTIFY = 0x390091, - CMSG_BATTLE_PET_UPDATE_NOTIFY = 0x390090, - CMSG_BEGIN_TRADE = 0x390001, - CMSG_BINDER_ACTIVATE = 0x3A0045, - CMSG_BLACK_MARKET_BID_ON_ITEM = 0x3A00CB, - CMSG_BLACK_MARKET_OPEN = 0x3A00C9, - CMSG_BLACK_MARKET_REQUEST_ITEMS = 0x3A00CA, - CMSG_BONUS_ROLL = 0x39025B, - CMSG_BUG_REPORT = 0x3E00B1, - CMSG_BUSY_TRADE = 0x390002, - CMSG_BUY_ACCOUNT_BANK_TAB = 0x3A0123, - CMSG_BUY_BACK_ITEM = 0x3A0037, - CMSG_BUY_ITEM = 0x3A0036, - CMSG_CAGE_BATTLE_PET = 0x3900A4, - CMSG_CALENDAR_ADD_EVENT = 0x3E00A9, - CMSG_CALENDAR_COMMUNITY_INVITE = 0x3E009D, - CMSG_CALENDAR_COMPLAIN = 0x3E00A5, - CMSG_CALENDAR_COPY_EVENT = 0x3E00A4, - CMSG_CALENDAR_EVENT_SIGN_UP = 0x3E00A7, - CMSG_CALENDAR_GET = 0x3E009B, - CMSG_CALENDAR_GET_EVENT = 0x3E009C, - CMSG_CALENDAR_GET_NUM_PENDING = 0x3E00A6, - CMSG_CALENDAR_INVITE = 0x3E009E, - CMSG_CALENDAR_MODERATOR_STATUS = 0x3E00A2, - CMSG_CALENDAR_REMOVE_EVENT = 0x3E00A3, - CMSG_CALENDAR_REMOVE_INVITE = 0x3E009F, - CMSG_CALENDAR_RSVP = 0x3E00A0, - CMSG_CALENDAR_STATUS = 0x3E00A1, - CMSG_CALENDAR_UPDATE_EVENT = 0x3E00AA, - CMSG_CANCEL_AURA = 0x39005A, - CMSG_CANCEL_AUTO_REPEAT_SPELL = 0x3A007F, - CMSG_CANCEL_CAST = 0x390178, - CMSG_CANCEL_CHANNELLING = 0x390139, - CMSG_CANCEL_GROWTH_AURA = 0x390141, - CMSG_CANCEL_MASTER_LOOT_ROLL = 0x3900CD, - CMSG_CANCEL_MOD_SPEED_NO_CONTROL_AURAS = 0x390059, - CMSG_CANCEL_MOUNT_AURA = 0x390154, - CMSG_CANCEL_QUEUED_SPELL = 0x39002B, - CMSG_CANCEL_TEMP_ENCHANTMENT = 0x3A008A, - CMSG_CANCEL_TRADE = 0x390006, - CMSG_CAN_DUEL = 0x3E008E, - CMSG_CAN_REDEEM_TOKEN_FOR_BALANCE = 0x3E0134, - CMSG_CAST_SPELL = 0x390175, - CMSG_CHALLENGE_MODE_REQUEST_LEADERS = 0x2C0002, - CMSG_CHANGE_BAG_SLOT_FLAG = 0x390212, - CMSG_CHANGE_BANK_BAG_SLOT_FLAG = 0x390213, - CMSG_CHANGE_MONUMENT_APPEARANCE = 0x3901F3, - CMSG_CHANGE_REALM_TICKET = 0x3E0129, - CMSG_CHANGE_SUB_GROUP = 0x3E0078, - CMSG_CHARACTER_CHECK_UPGRADE = 0x3E00F5, - CMSG_CHARACTER_RENAME_REQUEST = 0x3E00F0, - CMSG_CHARACTER_UPGRADE_MANUAL_UNREVOKE_REQUEST = 0x3E00F3, - CMSG_CHARACTER_UPGRADE_START = 0x3E00F4, - CMSG_CHAR_CUSTOMIZE = 0x3E00B9, - CMSG_CHAR_DELETE = 0x3E00CB, - CMSG_CHAR_RACE_OR_FACTION_CHANGE = 0x3E00BF, - CMSG_CHAT_ADDON_MESSAGE = 0x2B002A, - CMSG_CHAT_ADDON_MESSAGE_TARGETED = 0x2B002B, - CMSG_CHAT_CAN_LOCAL_WHISPER_TARGET_REQUEST = 0x2B0032, - CMSG_CHAT_CHANNEL_ANNOUNCEMENTS = 0x2B001F, - CMSG_CHAT_CHANNEL_BAN = 0x2B001D, - CMSG_CHAT_CHANNEL_DECLINE_INVITE = 0x2B0022, - CMSG_CHAT_CHANNEL_DISPLAY_LIST = 0x2B0012, - CMSG_CHAT_CHANNEL_INVITE = 0x2B001B, - CMSG_CHAT_CHANNEL_KICK = 0x2B001C, - CMSG_CHAT_CHANNEL_LIST = 0x2B0011, - CMSG_CHAT_CHANNEL_MODERATE = 0x2B0016, - CMSG_CHAT_CHANNEL_MODERATOR = 0x2B0017, - CMSG_CHAT_CHANNEL_OWNER = 0x2B0015, - CMSG_CHAT_CHANNEL_PASSWORD = 0x2B0013, - CMSG_CHAT_CHANNEL_SET_OWNER = 0x2B0014, - CMSG_CHAT_CHANNEL_SILENCE_ALL = 0x2B0020, - CMSG_CHAT_CHANNEL_UNBAN = 0x2B001E, - CMSG_CHAT_CHANNEL_UNMODERATOR = 0x2B0018, - CMSG_CHAT_CHANNEL_UNSILENCE_ALL = 0x2B0021, - CMSG_CHAT_DROP_CAUTIONARY_CHAT_MESSAGE = 0x2B000A, - CMSG_CHAT_JOIN_CHANNEL = 0x2B0000, - CMSG_CHAT_LEAVE_CHANNEL = 0x2B0001, - CMSG_CHAT_LOBBY_MATCHMAKER_MESSAGE_INSTANCE_CHAT = 0x2B0031, - CMSG_CHAT_LOBBY_MATCHMAKER_MESSAGE_PARTY = 0x2B0030, - CMSG_CHAT_MESSAGE_AFK = 0x2B000F, - CMSG_CHAT_MESSAGE_CHANNEL = 0x2B0007, - CMSG_CHAT_MESSAGE_DND = 0x2B0010, - CMSG_CHAT_MESSAGE_EMOTE = 0x2B0024, - CMSG_CHAT_MESSAGE_GUILD = 0x2B000D, - CMSG_CHAT_MESSAGE_INSTANCE_CHAT = 0x2B0028, - CMSG_CHAT_MESSAGE_OFFICER = 0x2B000E, - CMSG_CHAT_MESSAGE_PARTY = 0x2B0026, - CMSG_CHAT_MESSAGE_RAID = 0x2B0027, - CMSG_CHAT_MESSAGE_RAID_WARNING = 0x2B0029, - CMSG_CHAT_MESSAGE_SAY = 0x2B0023, - CMSG_CHAT_MESSAGE_WHISPER = 0x2B0008, - CMSG_CHAT_MESSAGE_YELL = 0x2B0025, - CMSG_CHAT_REGISTER_ADDON_PREFIXES = 0x2B0005, - CMSG_CHAT_REPORT_FILTERED = 0x2B0004, - CMSG_CHAT_REPORT_IGNORED = 0x2B0003, - CMSG_CHAT_SEND_CAUTIONARY_CHANNEL_MESSAGE = 0x2B000B, - CMSG_CHAT_SEND_CAUTIONARY_CHAT_MESSAGE = 0x2B0009, - CMSG_CHAT_UNREGISTER_ALL_ADDON_PREFIXES = 0x2B0006, - CMSG_CHECK_CHARACTER_NAME_AVAILABILITY = 0x3E0071, - CMSG_CHECK_IS_ADVENTURE_MAP_POI_VALID = 0x39010F, - CMSG_CHOICE_RESPONSE = 0x39017D, - CMSG_CHROMIE_TIME_SELECT_EXPANSION = 0x390288, - CMSG_CLAIM_WEEKLY_REWARD = 0x390265, - CMSG_CLASS_TALENTS_DELETE_CONFIG = 0x3902C2, - CMSG_CLASS_TALENTS_NOTIFY_EMPTY_CONFIG = 0x3900C4, - CMSG_CLASS_TALENTS_NOTIFY_VALIDATION_FAILED = 0x3902C4, - CMSG_CLASS_TALENTS_RENAME_CONFIG = 0x3902C1, - CMSG_CLASS_TALENTS_REQUEST_NEW_CONFIG = 0x3902C0, - CMSG_CLASS_TALENTS_SET_STARTER_BUILD_ACTIVE = 0x3902C5, - CMSG_CLASS_TALENTS_SET_USES_SHARED_ACTION_BARS = 0x3900C3, - CMSG_CLEAR_NEW_APPEARANCE = 0x290005, - CMSG_CLEAR_RAID_MARKER = 0x390052, - CMSG_CLEAR_TRADE_ITEM = 0x390008, - CMSG_CLIENT_PORT_GRAVEYARD = 0x3A00C5, - CMSG_CLOSE_INTERACTION = 0x3A0025, - CMSG_CLOSE_QUEST_CHOICE = 0x39017E, - CMSG_CLOSE_RUNEFORGE_INTERACTION = 0x390290, - CMSG_CLOSE_TRAIT_SYSTEM_INTERACTION = 0x3902C6, - CMSG_CLUB_FINDER_APPLICATION_RESPONSE = 0x3E014C, - CMSG_CLUB_FINDER_GET_APPLICANTS_LIST = 0x3E014A, - CMSG_CLUB_FINDER_POST = 0x3E0147, - CMSG_CLUB_FINDER_REQUEST_CLUBS_DATA = 0x3E014E, - CMSG_CLUB_FINDER_REQUEST_CLUBS_LIST = 0x3E0148, - CMSG_CLUB_FINDER_REQUEST_MEMBERSHIP_TO_CLUB = 0x3E0149, - CMSG_CLUB_FINDER_REQUEST_PENDING_CLUBS_LIST = 0x3E014D, - CMSG_CLUB_FINDER_REQUEST_SUBSCRIBED_CLUB_POSTING_IDS = 0x3E014F, - CMSG_CLUB_FINDER_RESPOND_TO_APPLICANT = 0x3E014B, - CMSG_CLUB_FINDER_WHISPER_APPLICANT_REQUEST = 0x3E016A, - CMSG_CLUB_PRESENCE_SUBSCRIBE = 0x3E0126, - CMSG_COLLECTION_ITEM_SET_FAVORITE = 0x3E005D, - CMSG_COMMENTATOR_ENABLE = 0x3E001C, - CMSG_COMMENTATOR_ENTER_INSTANCE = 0x3E0020, - CMSG_COMMENTATOR_EXIT_INSTANCE = 0x3E0021, - CMSG_COMMENTATOR_GET_MAP_INFO = 0x3E001D, - CMSG_COMMENTATOR_GET_PLAYER_COOLDOWNS = 0x3E001F, - CMSG_COMMENTATOR_GET_PLAYER_INFO = 0x3E001E, - CMSG_COMMENTATOR_SPECTATE = 0x3E0168, - CMSG_COMMENTATOR_START_WARGAME = 0x3E001B, - CMSG_COMMERCE_TOKEN_GET_COUNT = 0x3E0114, - CMSG_COMMERCE_TOKEN_GET_LOG = 0x3E011E, - CMSG_COMMERCE_TOKEN_GET_MARKET_PRICE = 0x3E0115, - CMSG_COMPLAINT = 0x3E0098, - CMSG_COMPLETE_CINEMATIC = 0x3A00E3, - CMSG_COMPLETE_MOVIE = 0x3A0075, - CMSG_CONFIRM_ARTIFACT_RESPEC = 0x390057, - CMSG_CONFIRM_PROFESSION_RESPEC = 0x3900C7, - CMSG_CONFIRM_RESPEC_WIPE = 0x3900C6, - CMSG_CONNECT_TO_FAILED = 0x3E0000, - CMSG_CONSUMABLE_TOKEN_BUY = 0x3E0119, - CMSG_CONSUMABLE_TOKEN_BUY_AT_MARKET_PRICE = 0x3E011A, - CMSG_CONSUMABLE_TOKEN_CAN_VETERAN_BUY = 0x3E0118, - CMSG_CONSUMABLE_TOKEN_REDEEM = 0x3E011C, - CMSG_CONSUMABLE_TOKEN_REDEEM_CONFIRMATION = 0x3E011D, - CMSG_CONTENT_TRACKING_START_TRACKING = 0x3902D5, - CMSG_CONTENT_TRACKING_STOP_TRACKING = 0x3902D6, - CMSG_CONTRIBUTION_CONTRIBUTE = 0x3A00FB, - CMSG_CONTRIBUTION_LAST_UPDATE_REQUEST = 0x3A00FC, - CMSG_CONVERSATION_CINEMATIC_READY = 0x3A00E5, - CMSG_CONVERSATION_LINE_STARTED = 0x3A00E4, - CMSG_CONVERT_ITEM_TO_BIND_TO_ACCOUNT = 0x3902E5, - CMSG_CONVERT_RAID = 0x3E007A, - CMSG_CONVERT_TIMERUNNING_CHARACTER = 0x3E018D, - CMSG_COVENANT_RENOWN_REQUEST_CATCHUP_STATE = 0x3A010F, - CMSG_CRAFTING_ORDER_CANCEL = 0x3A011B, - CMSG_CRAFTING_ORDER_CLAIM = 0x3A0118, - CMSG_CRAFTING_ORDER_CREATE = 0x3A0114, - CMSG_CRAFTING_ORDER_FULFILL = 0x3A011A, - CMSG_CRAFTING_ORDER_GET_NPC_REWARD_INFO = 0x3A0117, - CMSG_CRAFTING_ORDER_LIST_CRAFTER_ORDERS = 0x3A0116, - CMSG_CRAFTING_ORDER_LIST_MY_ORDERS = 0x3A0115, - CMSG_CRAFTING_ORDER_REJECT = 0x3A011C, - CMSG_CRAFTING_ORDER_RELEASE = 0x3A0119, - CMSG_CRAFTING_ORDER_REPORT_PLAYER = 0x3A011D, - CMSG_CRAFTING_ORDER_UPDATE_IGNORE_LIST = 0x3A011E, - CMSG_CREATE_CHARACTER = 0x3E0070, - CMSG_CREATE_SHIPMENT = 0x3901DC, - CMSG_DB_QUERY_BULK = 0x3E0010, - CMSG_DECLINE_GUILD_INVITES = 0x3A00B7, - CMSG_DECLINE_NEIGHBORHOOD_INVITES = 0x3A012F, - CMSG_DECLINE_PETITION = 0x3A00D2, - CMSG_DELETE_EQUIPMENT_SET = 0x3A00A3, - CMSG_DELVE_TELEPORT_OUT = 0x3A012B, - CMSG_DEL_FRIEND = 0x3E0101, - CMSG_DEL_IGNORE = 0x3E0105, - CMSG_DESTROY_ITEM = 0x39016B, - CMSG_DF_BOOT_PLAYER_VOTE = 0x3E0044, - CMSG_DF_CONFIRM_EXPAND_SEARCH = 0x3E0036, - CMSG_DF_GET_JOIN_STATUS = 0x3E0042, - CMSG_DF_GET_SYSTEM_INFO = 0x3E0041, - CMSG_DF_JOIN = 0x3E0037, - CMSG_DF_LEAVE = 0x3E0040, - CMSG_DF_PROPOSAL_RESPONSE = 0x3E0035, - CMSG_DF_READY_CHECK_RESPONSE = 0x3E0048, - CMSG_DF_SET_ROLES = 0x3E0043, - CMSG_DF_TELEPORT = 0x3E0045, - CMSG_DISCARDED_TIME_SYNC_ACKS = 0x3C005E, - CMSG_DISMISS_CRITTER = 0x3A0091, - CMSG_DO_COUNTDOWN = 0x3E0146, - CMSG_DO_MASTER_LOOT_ROLL = 0x3900CC, - CMSG_DO_READY_CHECK = 0x3E005E, - CMSG_DUEL_RESPONSE = 0x3A007A, - CMSG_EJECT_PASSENGER = 0x390104, - CMSG_EMOTE = 0x3A00DF, - CMSG_ENABLE_NAGLE = 0x3F0009, - CMSG_ENABLE_TAXI_NODE = 0x3A003C, - CMSG_ENCOUNTER_JOURNAL_START_ARATHI_RPE = 0x3902FE, - CMSG_ENGINE_SURVEY = 0x3E0113, - CMSG_ENTER_ENCRYPTED_MODE_ACK = 0x3F0005, - CMSG_ENUM_CHARACTERS = 0x3E0014, - CMSG_ENUM_CHARACTERS_DELETED_BY_CLIENT = 0x3E010D, - CMSG_FAR_SIGHT = 0x3A0080, - CMSG_GAME_EVENT_DEBUG_DISABLE = 0x39005E, - CMSG_GAME_EVENT_DEBUG_ENABLE = 0x39005D, - CMSG_GAME_OBJ_REPORT_USE = 0x3A0087, - CMSG_GAME_OBJ_USE = 0x3A0086, - CMSG_GARRISON_ADD_FOLLOWER_HEALTH = 0x3901D7, - CMSG_GARRISON_ASSIGN_FOLLOWER_TO_BUILDING = 0x3901BD, - CMSG_GARRISON_CANCEL_CONSTRUCTION = 0x3901AA, - CMSG_GARRISON_CHECK_UPGRADEABLE = 0x39020E, - CMSG_GARRISON_COMPLETE_MISSION = 0x390200, - CMSG_GARRISON_FULLY_HEAL_ALL_FOLLOWERS = 0x3901D8, - CMSG_GARRISON_GENERATE_RECRUITS = 0x3901C0, - CMSG_GARRISON_GET_CLASS_SPEC_CATEGORY_INFO = 0x3901CF, - CMSG_GARRISON_GET_MAP_DATA = 0x3901D6, - CMSG_GARRISON_GET_MISSION_REWARD = 0x390230, - CMSG_GARRISON_LEARN_TALENT = 0x3901CB, - CMSG_GARRISON_MISSION_BONUS_ROLL = 0x390202, - CMSG_GARRISON_PURCHASE_BUILDING = 0x3901A6, - CMSG_GARRISON_RECRUIT_FOLLOWER = 0x3901C2, - CMSG_GARRISON_REMOVE_FOLLOWER = 0x3901F7, - CMSG_GARRISON_REMOVE_FOLLOWER_FROM_BUILDING = 0x3901BE, - CMSG_GARRISON_RENAME_FOLLOWER = 0x3901BF, - CMSG_GARRISON_REQUEST_BLUEPRINT_AND_SPECIALIZATION_DATA = 0x3901A5, - CMSG_GARRISON_REQUEST_SHIPMENT_INFO = 0x3901DA, - CMSG_GARRISON_RESEARCH_TALENT = 0x3901C3, - CMSG_GARRISON_SET_BUILDING_ACTIVE = 0x3901A7, - CMSG_GARRISON_SET_FOLLOWER_FAVORITE = 0x3901BB, - CMSG_GARRISON_SET_FOLLOWER_INACTIVE = 0x3901B3, - CMSG_GARRISON_SET_RECRUITMENT_PREFERENCES = 0x3901C1, - CMSG_GARRISON_SOCKET_TALENT = 0x39029D, - CMSG_GARRISON_START_MISSION = 0x3901FF, - CMSG_GARRISON_SWAP_BUILDINGS = 0x3901AB, - CMSG_GENERATE_RANDOM_CHARACTER_NAME = 0x3E0013, - CMSG_GET_ACCOUNT_CHARACTER_LIST = 0x3E00E4, - CMSG_GET_ACCOUNT_NOTIFICATIONS = 0x3E0162, - CMSG_GET_GARRISON_INFO = 0x3901A0, - CMSG_GET_ITEM_PURCHASE_DATA = 0x3A00CD, - CMSG_GET_LANDING_PAGE_SHIPMENTS = 0x3901DB, - CMSG_GET_MIRROR_IMAGE_DATA = 0x39016F, - CMSG_GET_PVP_OPTIONS_ENABLED = 0x3E001A, - CMSG_GET_RAF_ACCOUNT_INFO = 0x3E0150, - CMSG_GET_REGIONWIDE_CHARACTER_RESTRICTION_AND_MAIL_DATA = 0x3E0193, - CMSG_GET_REMAINING_GAME_TIME = 0x3E011B, - CMSG_GET_TROPHY_LIST = 0x3901F0, - CMSG_GET_UNDELETE_CHARACTER_COOLDOWN_STATUS = 0x3E010F, - CMSG_GET_VAS_ACCOUNT_CHARACTER_LIST = 0x3E0120, - CMSG_GET_VAS_TRANSFER_TARGET_REALM_LIST = 0x3E0121, - CMSG_GM_TICKET_ACKNOWLEDGE_SURVEY = 0x3E00BD, - CMSG_GM_TICKET_GET_CASE_STATUS = 0x3E00BC, - CMSG_GM_TICKET_GET_SYSTEM_STATUS = 0x3E00BB, - CMSG_GOSSIP_REFRESH_OPTIONS = 0x3A010E, - CMSG_GOSSIP_SELECT_OPTION = 0x3A0026, - CMSG_GUILD_ADD_BATTLENET_FRIEND = 0x2D0020, - CMSG_GUILD_ADD_RANK = 0x2D0005, - CMSG_GUILD_ASSIGN_MEMBER_RANK = 0x2D0002, - CMSG_GUILD_BANK_ACTIVATE = 0x3A0047, - CMSG_GUILD_BANK_BUY_TAB = 0x3A0055, - CMSG_GUILD_BANK_DEPOSIT_MONEY = 0x3A0057, - CMSG_GUILD_BANK_LOG_QUERY = 0x2D0019, - CMSG_GUILD_BANK_QUERY_TAB = 0x3A0054, - CMSG_GUILD_BANK_REMAINING_WITHDRAW_MONEY_QUERY = 0x2D001A, - CMSG_GUILD_BANK_SET_TAB_TEXT = 0x2D001D, - CMSG_GUILD_BANK_TEXT_QUERY = 0x2D001E, - CMSG_GUILD_BANK_UPDATE_TAB = 0x3A0056, - CMSG_GUILD_BANK_WITHDRAW_MONEY = 0x3A0058, - CMSG_GUILD_CHALLENGE_UPDATE_REQUEST = 0x2D0017, - CMSG_GUILD_CHANGE_NAME_REQUEST = 0x2D0018, - CMSG_GUILD_DECLINE_INVITATION = 0x3E002A, - CMSG_GUILD_DELETE = 0x2D0009, - CMSG_GUILD_DELETE_RANK = 0x2D0006, - CMSG_GUILD_DEMOTE_MEMBER = 0x2D0001, - CMSG_GUILD_EVENT_LOG_QUERY = 0x2D001C, - CMSG_GUILD_GET_ACHIEVEMENT_MEMBERS = 0x2D0012, - CMSG_GUILD_GET_OTHERS_OWNED_HOUSES = 0x2D0026, - CMSG_GUILD_GET_RANKS = 0x2D000E, - CMSG_GUILD_GET_ROSTER = 0x2D0014, - CMSG_GUILD_INVITE_BY_NAME = 0x3E0034, - CMSG_GUILD_LEAVE = 0x2D0003, - CMSG_GUILD_NEWS_UPDATE_STICKY = 0x2D000F, - CMSG_GUILD_OFFICER_REMOVE_MEMBER = 0x2D0004, - CMSG_GUILD_PERMISSIONS_QUERY = 0x2D001B, - CMSG_GUILD_PROMOTE_MEMBER = 0x2D0000, - CMSG_GUILD_QUERY_MEMBERS_FOR_RECIPE = 0x2D000C, - CMSG_GUILD_QUERY_MEMBER_RECIPES = 0x2D000A, - CMSG_GUILD_QUERY_NEWS = 0x2D000D, - CMSG_GUILD_QUERY_RECIPES = 0x2D000B, - CMSG_GUILD_REPLACE_GUILD_MASTER = 0x2D001F, - CMSG_GUILD_REQUEST_RENAME = 0x2D0023, - CMSG_GUILD_REQUEST_RENAME_NAME_CHECK = 0x2D0022, - CMSG_GUILD_REQUEST_RENAME_REFUND = 0x2D0024, - CMSG_GUILD_REQUEST_RENAME_STATUS = 0x2D0021, - CMSG_GUILD_SET_ACHIEVEMENT_TRACKING = 0x2D0010, - CMSG_GUILD_SET_FOCUSED_ACHIEVEMENT = 0x2D0011, - CMSG_GUILD_SET_GUILD_MASTER = 0x3E00F7, - CMSG_GUILD_SET_MEMBER_NOTE = 0x2D0013, - CMSG_GUILD_SET_RANK_PERMISSIONS = 0x2D0008, - CMSG_GUILD_SHIFT_RANK = 0x2D0007, - CMSG_GUILD_UPDATE_INFO_TEXT = 0x2D0016, - CMSG_GUILD_UPDATE_MOTD_TEXT = 0x2D0015, - CMSG_HEARTH_AND_RESURRECT = 0x3A009F, - CMSG_HIDE_QUEST_CHOICE = 0x39017F, - CMSG_HOTFIX_REQUEST = 0x3E0011, - CMSG_HOUSE_EXTERIOR_COMMIT_POSITION = 0x2E0001, - CMSG_HOUSE_INTERIOR_LEAVE_HOUSE = 0x2F0001, - CMSG_HOUSING_DECOR_CATALOG_CREATE_SEARCHER = 0x30000E, - CMSG_HOUSING_DECOR_CATALOG_DESTROY_ALL_ENTRY_COPIES = 0x30000A, - CMSG_HOUSING_DECOR_CATALOG_DESTROY_ENTRY = 0x300009, - CMSG_HOUSING_DECOR_COMMIT_DYES_FOR_SELECTED_DECOR = 0x300006, - CMSG_HOUSING_DECOR_MOVE_DECOR = 0x300002, - CMSG_HOUSING_DECOR_PLACE_NEW_DECOR = 0x300001, - CMSG_HOUSING_DECOR_REMOVE_PLACED_DECOR_ENTRY = 0x300003, - CMSG_HOUSING_DECOR_SELECT_DECOR = 0x300004, - CMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE = 0x300000, - CMSG_HOUSING_DECOR_START_PLACING_NEW_DECOR = 0x300010, - CMSG_HOUSING_FIXTURE_REMOVE_FIXTURE_FROM_SELECTED_POINT = 0x310007, - CMSG_HOUSING_FIXTURE_SELECT_CORE_FIXTURE_OPTION = 0x310005, - CMSG_HOUSING_FIXTURE_SELECT_FIXTURE_OPTION = 0x310006, - CMSG_HOUSING_FIXTURE_SET_EDITOR_MODE_ACTIVE = 0x310000, - CMSG_HOUSING_KIOSK_REQUEST_HOUSING_RESET = 0x350008, - CMSG_HOUSING_REQUEST_CURRENT_HOUSE_INFO = 0x350006, - CMSG_HOUSING_ROOM_APPLY_THEME = 0x320005, - CMSG_HOUSING_ROOM_APPLY_WALLPAPER = 0x320006, - CMSG_HOUSING_ROOM_MOVE_DRAGGED_ROOM = 0x320004, - CMSG_HOUSING_ROOM_PLACE_ROOM = 0x320001, - CMSG_HOUSING_ROOM_REMOVE_ROOM = 0x320002, - CMSG_HOUSING_ROOM_ROTATE_ROOM = 0x320003, - CMSG_HOUSING_ROOM_SET_EDITOR_MODE_ACTIVE = 0x320000, - CMSG_HOUSING_ROOM_SET_ROOM_COMPONENT_CEILING_TYPE = 0x320008, - CMSG_HOUSING_ROOM_SET_ROOM_COMPONENT_DOOR_TYPE = 0x320007, - CMSG_HOUSING_SERVICES_ACCEPT_NEIGHBORHOOD_OWNERSHIP = 0x33001C, - CMSG_HOUSING_SERVICES_CREATE_GUILD_NEIGHBORHOOD = 0x330001, - CMSG_HOUSING_SERVICES_DECLINE_NEIGHBORHOOD_OWNERSHIP = 0x33001D, - CMSG_HOUSING_SERVICES_ENTER_HOUSE = 0x330017, - CMSG_HOUSING_SERVICES_GET_OTHERS_BNET_ACCOUNT_OWNED_HOUSES = 0x33000F, - CMSG_HOUSING_SERVICES_GET_OTHERS_PLAYER_OWNED_HOUSES = 0x33000E, - CMSG_HOUSING_SERVICES_GET_PLAYER_OWNED_HOUSES = 0x330011, - CMSG_HOUSING_SERVICES_HOUSE_FINDER_DECLINE_NEIGHBORHOOD_INVITATION = 0x330024, - CMSG_HOUSING_SERVICES_HOUSE_FINDER_REQUEST_NEIGHBORHOODS = 0x330020, - CMSG_HOUSING_SERVICES_HOUSE_FINDER_REQUEST_RESERVATION_AND_PORT = 0x330006, - CMSG_HOUSING_SERVICES_RELINQUISH_HOUSE = 0x330009, - CMSG_HOUSING_SERVICES_REQUEST_HOUSE_FINDER_NEIGHBORHOOD_DATA = 0x330021, - CMSG_HOUSING_SERVICES_REQUEST_PLAYER_CHARACTER_LIST = 0x33001F, - CMSG_HOUSING_SERVICES_SAVE_HOUSE_SETTINGS = 0x33000A, - CMSG_HOUSING_SERVICES_SEARCH_BNET_FRIEND_NEIGHBORHOODS = 0x330022, - CMSG_HOUSING_SERVICES_START_TUTORIAL = 0x330018, - CMSG_IGNORE_TRADE = 0x390003, - CMSG_INITIATE_ROLE_POLL = 0x3E0006, - CMSG_INITIATE_TRADE = 0x390000, - CMSG_INSPECT = 0x3A00C7, - CMSG_INSTANCE_ABANDON_VOTE_RESPONSE = 0x3E0061, - CMSG_INSTANCE_LOCK_RESPONSE = 0x3A00A4, - CMSG_INVITE_PLAYER_TO_NEIGHBORHOOD = 0x3E019B, - CMSG_ISLAND_QUEUE = 0x390261, - CMSG_ITEM_PURCHASE_REFUND = 0x3A00CE, - CMSG_ITEM_TEXT_QUERY = 0x39020F, - CMSG_JOIN_PET_BATTLE_QUEUE = 0x39008E, - CMSG_JOIN_RATED_BATTLEGROUND = 0x390025, - CMSG_KEEP_ALIVE = 0x3E00AB, - CMSG_KEYBOUND_OVERRIDE = 0x3900E2, - CMSG_KIOSK_ENABLE_GOD_MODE = 0x390098, - CMSG_LATENCY_REPORT = 0x3F000F, - CMSG_LEARN_PVP_TALENTS = 0x3A00FA, - CMSG_LEARN_TALENTS = 0x3A00F8, - CMSG_LEAVE_GROUP = 0x3E0075, - CMSG_LEAVE_PET_BATTLE_QUEUE = 0x39008F, - CMSG_LFG_LIST_APPLY_TO_GROUP = 0x3E003B, - CMSG_LFG_LIST_CANCEL_APPLICATION = 0x3E003C, - CMSG_LFG_LIST_DECLINE_APPLICANT = 0x3E003D, - CMSG_LFG_LIST_GET_STATUS = 0x3E0039, - CMSG_LFG_LIST_INVITE_APPLICANT = 0x3E003E, - CMSG_LFG_LIST_INVITE_RESPONSE = 0x3E003F, - CMSG_LFG_LIST_JOIN = 0x390255, - CMSG_LFG_LIST_LEAVE = 0x3E0038, - CMSG_LFG_LIST_SEARCH = 0x3E003A, - CMSG_LFG_LIST_UPDATE_REQUEST = 0x390256, - CMSG_LIST_INVENTORY = 0x3A0033, - CMSG_LIVE_REGION_ACCOUNT_RESTORE = 0x3E00E7, - CMSG_LIVE_REGION_CHARACTER_COPY = 0x3E00E6, - CMSG_LIVE_REGION_GET_ACCOUNT_CHARACTER_LIST = 0x3E00E5, - CMSG_LIVE_REGION_KEY_BINDINGS_COPY = 0x3E00E8, - CMSG_LOADING_SCREEN_NOTIFY = 0x3E0024, - CMSG_LOAD_SELECTED_TROPHY = 0x3901F1, - CMSG_LOBBY_MATCHMAKER_ABANDON_QUEUE = 0x3E0175, - CMSG_LOBBY_MATCHMAKER_ACCEPT_PARTY_INVITE = 0x3E016C, - CMSG_LOBBY_MATCHMAKER_CREATE_CHARACTER = 0x3E017E, - CMSG_LOBBY_MATCHMAKER_ENTER_QUEUE = 0x3E0173, - CMSG_LOBBY_MATCHMAKER_LEAVE_PARTY = 0x3E016F, - CMSG_LOBBY_MATCHMAKER_PARTY_INVITE = 0x3E016B, - CMSG_LOBBY_MATCHMAKER_PARTY_UNINVITE = 0x3E016E, - CMSG_LOBBY_MATCHMAKER_QUEUE_PROPSAL_RESPONSE = 0x3E0174, - CMSG_LOBBY_MATCHMAKER_REJECT_PARTY_INVITE = 0x3E016D, - CMSG_LOBBY_MATCHMAKER_SET_PARTY_PLAYLIST_ENTRY = 0x3E0170, - CMSG_LOBBY_MATCHMAKER_SET_PLAYER_READY = 0x3E0171, - CMSG_LOGOUT_CANCEL = 0x3A0070, - CMSG_LOGOUT_INSTANT = 0x3A0071, - CMSG_LOGOUT_LOBBY_MATCHMAKER = 0x3A0122, - CMSG_LOGOUT_REQUEST = 0x3A006F, - CMSG_LOG_DISCONNECT = 0x3F0007, - CMSG_LOG_STREAMING_ERROR = 0x3F000B, - CMSG_LOOT_ITEM = 0x3900CA, - CMSG_LOOT_MONEY = 0x3900C9, - CMSG_LOOT_RELEASE = 0x3900CE, - CMSG_LOOT_ROLL = 0x3900CF, - CMSG_LOOT_UNIT = 0x3900C8, - CMSG_LOW_LEVEL_RAID1 = 0x3E00CF, - CMSG_LOW_LEVEL_RAID2 = 0x3A00AB, - CMSG_MAIL_CREATE_TEXT_ITEM = 0x3A00D9, - CMSG_MAIL_DELETE = 0x3900E4, - CMSG_MAIL_GET_LIST = 0x3A00D4, - CMSG_MAIL_MARK_AS_READ = 0x3A00D8, - CMSG_MAIL_RETURN_TO_SENDER = 0x3E0081, - CMSG_MAIL_TAKE_ITEM = 0x3A00D6, - CMSG_MAIL_TAKE_MONEY = 0x3A00D5, - CMSG_MAKE_CONTITIONAL_APPEARANCE_PERMANENT = 0x3900E5, - CMSG_MASTER_LOOT_ITEM = 0x3900CB, - CMSG_MERGE_GUILD_BANK_ITEM_WITH_GUILD_BANK_ITEM = 0x3A0052, - CMSG_MERGE_GUILD_BANK_ITEM_WITH_ITEM = 0x3A004F, - CMSG_MERGE_ITEM_WITH_GUILD_BANK_ITEM = 0x3A004D, - CMSG_MESSAGE_WHISPER = 0x3F0011, - CMSG_MINIMAP_PING = 0x3E0077, - CMSG_MISSILE_TRAJECTORY_COLLISION = 0x390036, - CMSG_MOUNT_CLEAR_FANFARE = 0x290003, - CMSG_MOUNT_SET_FAVORITE = 0x3E005C, - CMSG_MOUNT_SPECIAL_ANIM = 0x390155, - CMSG_MOVE_ADD_IMPULSE_ACK = 0x3C006D, - CMSG_MOVE_APPLY_INERTIA_ACK = 0x3C006B, - CMSG_MOVE_APPLY_MOVEMENT_FORCE_ACK = 0x3C0031, - CMSG_MOVE_CHANGE_TRANSPORT = 0x3C004C, - CMSG_MOVE_CHANGE_VEHICLE_SEATS = 0x3C0051, - CMSG_MOVE_COLLISION_DISABLE_ACK = 0x3C0056, - CMSG_MOVE_COLLISION_ENABLE_ACK = 0x3C0057, - CMSG_MOVE_DISMISS_VEHICLE = 0x3C0050, - CMSG_MOVE_DOUBLE_JUMP = 0x3C0007, - CMSG_MOVE_ENABLE_DOUBLE_JUMP_ACK = 0x3C003A, - CMSG_MOVE_ENABLE_FULL_SPEED_TURNING_ACK = 0x3C0083, - CMSG_MOVE_ENABLE_SWIM_TO_FLY_TRANS_ACK = 0x3C0040, - CMSG_MOVE_FALL_LAND = 0x3C0017, - CMSG_MOVE_FALL_RESET = 0x3C0035, - CMSG_MOVE_FEATHER_FALL_ACK = 0x3C0038, - CMSG_MOVE_FORCE_FLIGHT_BACK_SPEED_CHANGE_ACK = 0x3C004B, - CMSG_MOVE_FORCE_FLIGHT_SPEED_CHANGE_ACK = 0x3C004A, - CMSG_MOVE_FORCE_PITCH_RATE_CHANGE_ACK = 0x3C004F, - CMSG_MOVE_FORCE_ROOT_ACK = 0x3C002A, - CMSG_MOVE_FORCE_RUN_BACK_SPEED_CHANGE_ACK = 0x3C0028, - CMSG_MOVE_FORCE_RUN_SPEED_CHANGE_ACK = 0x3C0027, - CMSG_MOVE_FORCE_SWIM_BACK_SPEED_CHANGE_ACK = 0x3C003E, - CMSG_MOVE_FORCE_SWIM_SPEED_CHANGE_ACK = 0x3C0029, - CMSG_MOVE_FORCE_TURN_RATE_CHANGE_ACK = 0x3C003F, - CMSG_MOVE_FORCE_UNROOT_ACK = 0x3C002B, - CMSG_MOVE_FORCE_WALK_SPEED_CHANGE_ACK = 0x3C003D, - CMSG_MOVE_GRAVITY_DISABLE_ACK = 0x3C0052, - CMSG_MOVE_GRAVITY_ENABLE_ACK = 0x3C0053, - CMSG_MOVE_GUILD_BANK_ITEM = 0x3A004C, - CMSG_MOVE_HEARTBEAT = 0x3C002C, - CMSG_MOVE_HOVER_ACK = 0x3C002F, - CMSG_MOVE_INERTIA_DISABLE_ACK = 0x3C0054, - CMSG_MOVE_INERTIA_ENABLE_ACK = 0x3C0055, - CMSG_MOVE_INIT_ACTIVE_MOVER_COMPLETE = 0x3C0063, - CMSG_MOVE_JUMP = 0x3C0006, - CMSG_MOVE_KNOCK_BACK_ACK = 0x3C002E, - CMSG_MOVE_REMOVE_INERTIA_ACK = 0x3C006C, - CMSG_MOVE_REMOVE_MOVEMENT_FORCES = 0x3C0033, - CMSG_MOVE_REMOVE_MOVEMENT_FORCE_ACK = 0x3C0032, - CMSG_MOVE_SET_ADV_FLY = 0x3C006F, - CMSG_MOVE_SET_ADV_FLYING_ADD_IMPULSE_MAX_SPEED_ACK = 0x3C0077, - CMSG_MOVE_SET_ADV_FLYING_AIR_FRICTION_ACK = 0x3C0072, - CMSG_MOVE_SET_ADV_FLYING_BANKING_RATE_ACK = 0x3C0078, - CMSG_MOVE_SET_ADV_FLYING_DOUBLE_JUMP_VEL_MOD_ACK = 0x3C0075, - CMSG_MOVE_SET_ADV_FLYING_GLIDE_START_MIN_HEIGHT_ACK = 0x3C0076, - CMSG_MOVE_SET_ADV_FLYING_LAUNCH_SPEED_COEFFICIENT_ACK = 0x3C007F, - CMSG_MOVE_SET_ADV_FLYING_LIFT_COEFFICIENT_ACK = 0x3C0074, - CMSG_MOVE_SET_ADV_FLYING_MAX_VEL_ACK = 0x3C0073, - CMSG_MOVE_SET_ADV_FLYING_OVER_MAX_DECELERATION_ACK = 0x3C007D, - CMSG_MOVE_SET_ADV_FLYING_PITCHING_RATE_DOWN_ACK = 0x3C0079, - CMSG_MOVE_SET_ADV_FLYING_PITCHING_RATE_UP_ACK = 0x3C007A, - CMSG_MOVE_SET_ADV_FLYING_SURFACE_FRICTION_ACK = 0x3C007C, - CMSG_MOVE_SET_ADV_FLYING_TURN_VELOCITY_THRESHOLD_ACK = 0x3C007B, - CMSG_MOVE_SET_CAN_ADV_FLY_ACK = 0x3C006E, - CMSG_MOVE_SET_CAN_DRIVE_ACK = 0x3C0070, - CMSG_MOVE_SET_CAN_FLY_ACK = 0x3C0043, - CMSG_MOVE_SET_CAN_TURN_WHILE_FALLING_ACK = 0x3C0041, - CMSG_MOVE_SET_COLLISION_HEIGHT_ACK = 0x3C0058, - CMSG_MOVE_SET_FACING = 0x3C0025, - CMSG_MOVE_SET_FACING_HEARTBEAT = 0x3C007E, - CMSG_MOVE_SET_FLY = 0x3C0045, - CMSG_MOVE_SET_IGNORE_MOVEMENT_FORCES_ACK = 0x3C0042, - CMSG_MOVE_SET_MOD_MOVEMENT_FORCE_MAGNITUDE_ACK = 0x3C005F, - CMSG_MOVE_SET_PITCH = 0x3C0026, - CMSG_MOVE_SET_RUN_MODE = 0x3C000E, - CMSG_MOVE_SET_TURN_RATE_CHEAT = 0x3C0022, - CMSG_MOVE_SET_VEHICLE_REC_ID_ACK = 0x3C0030, - CMSG_MOVE_SET_WALK_MODE = 0x3C000F, - CMSG_MOVE_SPLINE_DONE = 0x3C0034, - CMSG_MOVE_START_ASCEND = 0x3C0046, - CMSG_MOVE_START_BACKWARD = 0x3C0001, - CMSG_MOVE_START_DESCEND = 0x3C004D, - CMSG_MOVE_START_DRIVE_FORWARD = 0x3C0071, - CMSG_MOVE_START_FORWARD = 0x3C0000, - CMSG_MOVE_START_PITCH_DOWN = 0x3C000C, - CMSG_MOVE_START_PITCH_UP = 0x3C000B, - CMSG_MOVE_START_STRAFE_LEFT = 0x3C0003, - CMSG_MOVE_START_STRAFE_RIGHT = 0x3C0004, - CMSG_MOVE_START_SWIM = 0x3C0018, - CMSG_MOVE_START_TURN_LEFT = 0x3C0008, - CMSG_MOVE_START_TURN_RIGHT = 0x3C0009, - CMSG_MOVE_STOP = 0x3C0002, - CMSG_MOVE_STOP_ASCEND = 0x3C0047, - CMSG_MOVE_STOP_PITCH = 0x3C000D, - CMSG_MOVE_STOP_STRAFE = 0x3C0005, - CMSG_MOVE_STOP_SWIM = 0x3C0019, - CMSG_MOVE_STOP_TURN = 0x3C000A, - CMSG_MOVE_TELEPORT_ACK = 0x3C0016, - CMSG_MOVE_TIME_SKIPPED = 0x3C0037, - CMSG_MOVE_UPDATE_FALL_SPEED = 0x3C0036, - CMSG_MOVE_WATER_WALK_ACK = 0x3C0039, - CMSG_MYTHIC_PLUS_REQUEST_MAP_STATS = 0x2C0001, - CMSG_NEIGHBORHOOD_ADD_MANAGER = 0x380002, - CMSG_NEIGHBORHOOD_CANCEL_RESIDENT_INVITATION = 0x380005, - CMSG_NEIGHBORHOOD_CHARTER_CONFIRMATION_RESPONSE = 0x370004, - CMSG_NEIGHBORHOOD_CHARTER_CREATE_NEIGHBORHOOD_CHARTER = 0x370001, - CMSG_NEIGHBORHOOD_CHARTER_EDIT_NEIGHBORHOOD_CHARTER = 0x370003, - CMSG_NEIGHBORHOOD_CHARTER_OPEN_CHARTER_CONFIRMATION = 0x370000, - CMSG_NEIGHBORHOOD_CHARTER_REQUEST_SIGNATURE = 0x370007, - CMSG_NEIGHBORHOOD_CHARTER_SIGN = 0x370006, - CMSG_NEIGHBORHOOD_DECLINE_NEIGHBORHOOD_INVITATION = 0x380006, - CMSG_NEIGHBORHOOD_EVICT_PLAYER = 0x38000F, - CMSG_NEIGHBORHOOD_GET_HOUSING_INVITATION = 0x380007, - CMSG_NEIGHBORHOOD_GET_INVITES = 0x380008, - CMSG_NEIGHBORHOOD_INTERACT_WITH_CORNERSTONE = 0x38000B, - CMSG_NEIGHBORHOOD_INVITE_RESIDENT = 0x380004, - CMSG_NEIGHBORHOOD_MOVE_HOUSE = 0x38000A, - CMSG_NEIGHBORHOOD_OFFER_NEIGHBORHOOD_OWNERSHIP = 0x38000D, - CMSG_NEIGHBORHOOD_PURCHASE_PLOT = 0x380009, - CMSG_NEIGHBORHOOD_REMOVE_MANAGER = 0x380003, - CMSG_NEIGHBORHOOD_REQUEST_NEIGHBORHOOD_ROSTER = 0x38000E, - CMSG_NEIGHBORHOOD_SET_NAME = 0x380000, - CMSG_NEIGHBORHOOD_SET_PUBLIC = 0x380001, - CMSG_NEUTRAL_PLAYER_SELECT_FACTION = 0x390084, - CMSG_NEXT_CINEMATIC_CAMERA = 0x3A00E2, - CMSG_OBJECT_UPDATE_FAILED = 0x39002C, - CMSG_OBJECT_UPDATE_RESCUED = 0x39002D, - CMSG_OFFER_PETITION = 0x390287, - CMSG_OPENING_CINEMATIC = 0x3A00E1, - CMSG_OPEN_ITEM = 0x390210, - CMSG_OPEN_MISSION_NPC = 0x3901D1, - CMSG_OPEN_SHIPMENT_NPC = 0x3901D9, - CMSG_OPEN_TRADESKILL_NPC = 0x3901E4, - CMSG_OPT_OUT_OF_LOOT = 0x3A008E, - CMSG_OVERRIDE_SCREEN_FLASH = 0x3A00B8, - CMSG_PARTY_INVITE = 0x3E0030, - CMSG_PARTY_INVITE_RESPONSE = 0x3E0032, - CMSG_PARTY_UNINVITE = 0x3E0073, - CMSG_PERFORM_ITEM_INTERACTION = 0x3900ED, - CMSG_PERKS_PROGRAM_ITEMS_REFRESHED = 0x3902AF, - CMSG_PERKS_PROGRAM_REQUEST_CART_CHECKOUT = 0x3902B2, - CMSG_PERKS_PROGRAM_REQUEST_PENDING_REWARDS = 0x290016, - CMSG_PERKS_PROGRAM_REQUEST_PURCHASE = 0x3902B1, - CMSG_PERKS_PROGRAM_REQUEST_REFUND = 0x3902B3, - CMSG_PERKS_PROGRAM_SET_FROZEN_VENDOR_ITEM = 0x3902B4, - CMSG_PERKS_PROGRAM_STATUS_REQUEST = 0x3902B0, - CMSG_PETITION_BUY = 0x3A005A, - CMSG_PETITION_RENAME_GUILD = 0x3E00F8, - CMSG_PETITION_SHOW_LIST = 0x3A0059, - CMSG_PETITION_SHOW_SIGNATURES = 0x3A005B, - CMSG_PET_ABANDON = 0x3A001E, - CMSG_PET_ABANDON_BY_NUMBER = 0x3A001F, - CMSG_PET_ACTION = 0x3A001C, - CMSG_PET_BATTLE_FINAL_NOTIFY = 0x390093, - CMSG_PET_BATTLE_INPUT = 0x3E006D, - CMSG_PET_BATTLE_QUEUE_PROPOSE_MATCH_RESULT = 0x3900E3, - CMSG_PET_BATTLE_QUIT_NOTIFY = 0x390092, - CMSG_PET_BATTLE_REPLACE_FRONT_PET = 0x3E006E, - CMSG_PET_BATTLE_REQUEST_PVP = 0x39008C, - CMSG_PET_BATTLE_REQUEST_UPDATE = 0x39008D, - CMSG_PET_BATTLE_REQUEST_WILD = 0x39008A, - CMSG_PET_BATTLE_SCRIPT_ERROR_NOTIFY = 0x390094, - CMSG_PET_BATTLE_WILD_LOCATION_FAIL = 0x39008B, - CMSG_PET_CANCEL_AURA = 0x3A0020, - CMSG_PET_CAST_SPELL = 0x390174, - CMSG_PET_RENAME = 0x3E00B0, - CMSG_PET_SET_ACTION = 0x3A001B, - CMSG_PET_SPELL_AUTOCAST = 0x3A0021, - CMSG_PET_STOP_ATTACK = 0x3A001D, - CMSG_PING = 0x3F0006, - CMSG_PLAYER_LOGIN = 0x3E0016, - CMSG_PUSH_QUEST_TO_PARTY = 0x3A0031, - CMSG_PVP_LOG_DATA = 0x390028, - CMSG_QUERY_BATTLE_PET_NAME = 0x390148, - CMSG_QUERY_CORPSE_LOCATION_FROM_CLIENT = 0x3E008C, - CMSG_QUERY_CORPSE_TRANSPORT = 0x3E008D, - CMSG_QUERY_COUNTDOWN_TIMER = 0x390055, - CMSG_QUERY_CREATURE = 0x390142, - CMSG_QUERY_GAME_OBJECT = 0x390143, - CMSG_QUERY_GARRISON_PET_NAME = 0x390149, - CMSG_QUERY_GUILD_INFO = 0x3E00B6, - CMSG_QUERY_INSPECT_ACHIEVEMENTS = 0x3A0098, - CMSG_QUERY_NEIGHBORHOOD_INFO = 0x3E00B7, - CMSG_QUERY_NEXT_MAIL_TIME = 0x3A00D7, - CMSG_QUERY_NPC_TEXT = 0x390144, - CMSG_QUERY_PAGE_TEXT = 0x390146, - CMSG_QUERY_PETITION = 0x39014A, - CMSG_QUERY_PET_NAME = 0x390147, - CMSG_QUERY_PLAYER_NAMES = 0x3F0010, - CMSG_QUERY_PLAYER_NAMES_FOR_COMMUNITY = 0x3F000E, - CMSG_QUERY_PLAYER_NAME_BY_COMMUNITY_ID = 0x3F000D, - CMSG_QUERY_QUEST_COMPLETION_NPCS = 0x390021, - CMSG_QUERY_QUEST_INFO = 0x390145, - CMSG_QUERY_QUEST_ITEM_USABILITY = 0x390022, - CMSG_QUERY_REALM_NAME = 0x3E00B5, - CMSG_QUERY_SCENARIO_POI = 0x3E0082, - CMSG_QUERY_SELECTED_WOW_LABS_AREA = 0x3902EA, - CMSG_QUERY_TIME = 0x3A006E, - CMSG_QUERY_TREASURE_PICKER = 0x390233, - CMSG_QUERY_WOW_LABS_AREA_INFO = 0x3902EB, - CMSG_QUEST_CONFIRM_ACCEPT = 0x3A0030, - CMSG_QUEST_GIVER_ACCEPT_QUEST = 0x3A002A, - CMSG_QUEST_GIVER_CHOOSE_REWARD = 0x3A002C, - CMSG_QUEST_GIVER_CLOSE_QUEST = 0x3A00E8, - CMSG_QUEST_GIVER_COMPLETE_QUEST = 0x3A002B, - CMSG_QUEST_GIVER_HELLO = 0x3A0028, - CMSG_QUEST_GIVER_QUERY_QUEST = 0x3A0029, - CMSG_QUEST_GIVER_REQUEST_REWARD = 0x3A002D, - CMSG_QUEST_GIVER_STATUS_MULTIPLE_QUERY = 0x3A002F, - CMSG_QUEST_GIVER_STATUS_QUERY = 0x3A002E, - CMSG_QUEST_LOG_REMOVE_QUEST = 0x3A00CC, - CMSG_QUEST_POI_QUERY = 0x3E00DE, - CMSG_QUEST_PUSH_RESULT = 0x3A0032, - CMSG_QUEST_SESSION_BEGIN_RESPONSE = 0x390279, - CMSG_QUEST_SESSION_REQUEST_START = 0x390278, - CMSG_QUEST_SESSION_REQUEST_STOP = 0x3E015B, - CMSG_QUEUED_MESSAGES_END = 0x3F000A, - CMSG_QUICK_JOIN_AUTO_ACCEPT_REQUESTS = 0x3E0132, - CMSG_QUICK_JOIN_REQUEST_INVITE = 0x3E0131, - CMSG_QUICK_JOIN_REQUEST_INVITE_WITH_CONFIRMATION = 0x3E0160, - CMSG_QUICK_JOIN_RESPOND_TO_INVITE = 0x3E0130, - CMSG_QUICK_JOIN_SIGNAL_TOAST_DISPLAYED = 0x3E012F, - CMSG_RAF_CLAIM_ACTIVITY_REWARD = 0x3A009C, - CMSG_RAF_CLAIM_NEXT_REWARD = 0x3E0151, - CMSG_RAF_GENERATE_RECRUITMENT_LINK = 0x3E0153, - CMSG_RAF_UPDATE_RECRUITMENT_INFO = 0x3E0152, - CMSG_RANDOM_ROLL = 0x3E0080, - CMSG_READY_CHECK_RESPONSE = 0x3E005F, - CMSG_READ_ITEM = 0x390211, - CMSG_RECENT_ALLY_REQUEST_DATA = 0x3E0198, - CMSG_RECENT_ALLY_SET_NOTE = 0x3E0199, - CMSG_RECLAIM_CORPSE = 0x3A0073, - CMSG_REMOVE_NEW_ITEM = 0x390237, - CMSG_REMOVE_RAF_RECRUIT = 0x3E0154, - CMSG_REORDER_CHARACTERS = 0x3E0015, - CMSG_REPAIR_ITEM = 0x3A0084, - CMSG_REPLACE_TROPHY = 0x3901F2, - CMSG_REPOP_REQUEST = 0x3A00C4, - CMSG_REPORT_PVP_PLAYER_AFK = 0x3A008C, - CMSG_REPORT_SERVER_LAG = 0x390271, - CMSG_REPORT_STUCK_IN_COMBAT = 0x390272, - CMSG_REQUEST_ACCOUNT_DATA = 0x3E00C3, - CMSG_REQUEST_AREA_POI_UPDATE = 0x390235, - CMSG_REQUEST_BATTLEFIELD_STATUS = 0x3E0008, - CMSG_REQUEST_CEMETERY_LIST = 0x390023, - CMSG_REQUEST_CHARACTER_GUILD_FOLLOW_INFO = 0x3E00B8, - CMSG_REQUEST_COVENANT_CALLINGS = 0x390263, - CMSG_REQUEST_CROWD_CONTROL_SPELL = 0x3A00C8, - CMSG_REQUEST_CURRENCY_DATA_FOR_ACCOUNT_CHARACTERS = 0x29001D, - CMSG_REQUEST_GARRISON_TALENT_WORLD_QUEST_UNLOCKS = 0x39029C, - CMSG_REQUEST_GUILD_PARTY_STATE = 0x390054, - CMSG_REQUEST_GUILD_REWARDS_LIST = 0x390053, - CMSG_REQUEST_LATEST_SPLASH_SCREEN = 0x390273, - CMSG_REQUEST_LFG_LIST_BLACKLIST = 0x390180, - CMSG_REQUEST_MYTHIC_PLUS_AFFIXES = 0x3900B8, - CMSG_REQUEST_MYTHIC_PLUS_SEASON_DATA = 0x3900B9, - CMSG_REQUEST_PARTY_ELIGIBILITY_FOR_DELVE_TIERS = 0x3902E9, - CMSG_REQUEST_PARTY_JOIN_UPDATES = 0x3E0023, - CMSG_REQUEST_PARTY_MEMBER_STATS = 0x3E007F, - CMSG_REQUEST_PET_INFO = 0x3A0022, - CMSG_REQUEST_PLAYED_TIME = 0x39014D, - CMSG_REQUEST_PVP_REWARDS = 0x390041, - CMSG_REQUEST_RAID_INFO = 0x3E00F9, - CMSG_REQUEST_RATED_PVP_INFO = 0x3E000F, - CMSG_REQUEST_REALM_GUILD_MASTER_INFO = 0x3E0196, - CMSG_REQUEST_SCHEDULED_AREA_POI_UPDATE = 0x390236, - CMSG_REQUEST_SCHEDULED_PVP_INFO = 0x390042, - CMSG_REQUEST_STABLED_PETS = 0x3A0023, - CMSG_REQUEST_STORE_FRONT_INFO_UPDATE = 0x290022, - CMSG_REQUEST_SURVEY = 0x3902FD, - CMSG_REQUEST_VEHICLE_EXIT = 0x3900FF, - CMSG_REQUEST_VEHICLE_NEXT_SEAT = 0x390101, - CMSG_REQUEST_VEHICLE_PREV_SEAT = 0x390100, - CMSG_REQUEST_VEHICLE_SWITCH_SEAT = 0x390102, - CMSG_REQUEST_WEEKLY_REWARDS = 0x390266, - CMSG_REQUEST_WORLD_QUEST_UPDATE = 0x390234, - CMSG_RESET_CHALLENGE_MODE = 0x3900B6, - CMSG_RESET_CHALLENGE_MODE_CHEAT = 0x3900B7, - CMSG_RESET_INSTANCES = 0x3E0094, - CMSG_RESURRECT_RESPONSE = 0x3E00AF, - CMSG_REVERT_MONUMENT_APPEARANCE = 0x3901F4, - CMSG_RIDE_VEHICLE_INTERACT = 0x390103, - CMSG_SAVE_ACCOUNT_DATA_EXPORT = 0x3E017B, - CMSG_SAVE_CUF_PROFILES = 0x390037, - CMSG_SAVE_EQUIPMENT_SET = 0x3A00A2, - CMSG_SAVE_GUILD_EMBLEM = 0x390185, - CMSG_SAVE_PERSONAL_EMBLEM = 0x390186, - CMSG_SCENE_PLAYBACK_CANCELED = 0x3900DF, - CMSG_SCENE_PLAYBACK_COMPLETE = 0x3900DE, - CMSG_SCENE_TRIGGER_EVENT = 0x3900E0, - CMSG_SEAMLESS_TRANSFER_COMPLETE = 0x3902D8, - CMSG_SELECT_WOW_LABS_AREA = 0x3902EC, - CMSG_SELF_RES = 0x3A00CF, - CMSG_SELL_ALL_JUNK_ITEMS = 0x3A0035, - CMSG_SELL_ITEM = 0x3A0034, - CMSG_SEND_CHARACTER_CLUB_INVITATION = 0x3E0128, - CMSG_SEND_CONTACT_LIST = 0x3E00FF, - CMSG_SEND_MAIL = 0x3E0026, - CMSG_SEND_PING_UNIT = 0x3902DA, - CMSG_SEND_PING_WORLD_POINT = 0x3902DB, - CMSG_SEND_TEXT_EMOTE = 0x3A0019, - CMSG_SERVER_TIME_OFFSET_REQUEST = 0x3E00CA, - CMSG_SETUP_WARBAND_GROUPS = 0x3E018F, - CMSG_SET_ACTION_BAR_TOGGLES = 0x3A00D0, - CMSG_SET_ACTION_BUTTON = 0x3E0062, - CMSG_SET_ACTIVE_MOVER = 0x3C0059, - CMSG_SET_ADVANCED_COMBAT_LOGGING = 0x390193, - CMSG_SET_ALLOW_RECENT_ALLIES_SEE_LOCATION = 0x3902FF, - CMSG_SET_ASSISTANT_LEADER = 0x3E007B, - CMSG_SET_BACKPACK_AUTOSORT_DISABLED = 0x390214, - CMSG_SET_BACKPACK_SELL_JUNK_DISABLED = 0x390215, - CMSG_SET_BANK_AUTOSORT_DISABLED = 0x390216, - CMSG_SET_CONTACT_NOTES = 0x3E0102, - CMSG_SET_CURRENCY_FLAGS = 0x390015, - CMSG_SET_DIFFICULTY_ID = 0x3900E1, - CMSG_SET_DUNGEON_DIFFICULTY = 0x3E00AE, - CMSG_SET_EMPOWER_MIN_HOLD_STAGE_PERCENT = 0x39013C, - CMSG_SET_EVERYONE_IS_ASSISTANT = 0x3E0046, - CMSG_SET_EXCLUDED_CHAT_CENSOR_SOURCES = 0x3E0133, - CMSG_SET_FACTION_AT_WAR = 0x3A0076, - CMSG_SET_FACTION_INACTIVE = 0x3A0078, - CMSG_SET_FACTION_NOT_AT_WAR = 0x3A0077, - CMSG_SET_GAME_EVENT_DEBUG_VIEW_STATE = 0x390065, - CMSG_SET_INSERT_ITEMS_LEFT_TO_RIGHT = 0x390218, - CMSG_SET_LOOT_METHOD = 0x3E0074, - CMSG_SET_LOOT_SPECIALIZATION = 0x3A00DD, - CMSG_SET_PARTY_ASSIGNMENT = 0x3E007D, - CMSG_SET_PARTY_LEADER = 0x3E0076, - CMSG_SET_PET_FAVORITE = 0x390012, - CMSG_SET_PET_SLOT = 0x390011, - CMSG_SET_PET_SPECIALIZATION = 0x390013, - CMSG_SET_PLAYER_DECLINED_NAMES = 0x3E00B4, - CMSG_SET_PREFERRED_CEMETERY = 0x390024, - CMSG_SET_PVP = 0x39018A, - CMSG_SET_RAID_DIFFICULTY = 0x3E010B, - CMSG_SET_RESTRICT_PINGS_TO_ASSISTANTS = 0x3E0047, - CMSG_SET_ROLE = 0x3E0005, - CMSG_SET_SAVED_INSTANCE_EXTEND = 0x3E00B2, - CMSG_SET_SELECTION = 0x3A00C6, - CMSG_SET_SHEATHED = 0x3A001A, - CMSG_SET_SORT_BAGS_RIGHT_TO_LEFT = 0x390217, - CMSG_SET_TAXI_BENCHMARK_MODE = 0x3A008B, - CMSG_SET_TITLE = 0x390153, - CMSG_SET_TRADE_CURRENCY = 0x39000A, - CMSG_SET_TRADE_GOLD = 0x390009, - CMSG_SET_TRADE_ITEM = 0x390007, - CMSG_SET_USING_PARTY_GARRISON = 0x3901D3, - CMSG_SET_WAR_MODE = 0x39018B, - CMSG_SET_WATCHED_FACTION = 0x3A0079, - CMSG_SHOW_TRADE_SKILL = 0x3E00F1, - CMSG_SIGN_PETITION = 0x3A00D1, - CMSG_SILENCE_PARTY_TALKER = 0x3E007E, - CMSG_SOCIAL_CONTRACT_REQUEST = 0x3E0176, - CMSG_SOCKET_GEMS = 0x3A0083, - CMSG_SORT_ACCOUNT_BANK_BAGS = 0x3902DE, - CMSG_SORT_BAGS = 0x390219, - CMSG_SORT_BANK_BAGS = 0x39021A, - CMSG_SPAWN_TRACKING_UPDATE = 0x390168, - CMSG_SPECTATE_CHANGE = 0x3902D1, - CMSG_SPELL_CLICK = 0x3A0027, - CMSG_SPELL_EMPOWER_RELEASE = 0x39013A, - CMSG_SPELL_EMPOWER_RESTART = 0x39013B, - CMSG_SPIRIT_HEALER_ACTIVATE = 0x3A0042, - CMSG_SPLIT_GUILD_BANK_ITEM = 0x3A0053, - CMSG_SPLIT_GUILD_BANK_ITEM_TO_INVENTORY = 0x3A0050, - CMSG_SPLIT_ITEM = 0x3B0008, - CMSG_SPLIT_ITEM_TO_GUILD_BANK = 0x3A004E, - CMSG_STAND_STATE_CHANGE = 0x390035, - CMSG_START_CHALLENGE_MODE = 0x3A00E9, - CMSG_START_INSTANCE_ABANDON_VOTE = 0x3E0060, - CMSG_START_SPECTATOR_WAR_GAME = 0x3E000B, - CMSG_START_WAR_GAME = 0x3E000A, - CMSG_STORE_GUILD_BANK_ITEM = 0x3A0049, - CMSG_SUBMIT_USER_FEEDBACK = 0x3E00C2, - CMSG_SUBSCRIPTION_INTERSTITIAL_RESPONSE = 0x390291, - CMSG_SUMMON_RESPONSE = 0x3E0096, - CMSG_SUPPORT_TICKET_SUBMIT_COMPLAINT = 0x3E0072, - CMSG_SURRENDER_ARENA = 0x390020, - CMSG_SUSPEND_COMMS_ACK = 0x3F0000, - CMSG_SUSPEND_TOKEN_RESPONSE = 0x3F0008, - CMSG_SWAP_GUILD_BANK_ITEM_WITH_GUILD_BANK_ITEM = 0x3A004B, - CMSG_SWAP_INV_ITEM = 0x3B0007, - CMSG_SWAP_ITEM = 0x3B0006, - CMSG_SWAP_ITEM_WITH_GUILD_BANK_ITEM = 0x3A004A, - CMSG_SWAP_SUB_GROUPS = 0x3E0079, - CMSG_TABARD_VENDOR_ACTIVATE = 0x390187, - CMSG_TALK_TO_GOSSIP = 0x3A0024, - CMSG_TAXI_NODE_STATUS_QUERY = 0x3A003B, - CMSG_TAXI_QUERY_AVAILABLE_NODES = 0x3A003D, - CMSG_TAXI_REQUEST_EARLY_LANDING = 0x3A003F, - CMSG_TIME_ADJUSTMENT_RESPONSE = 0x3C005D, - CMSG_TIME_SYNC_RESPONSE = 0x3C005A, - CMSG_TIME_SYNC_RESPONSE_DROPPED = 0x3C005C, - CMSG_TIME_SYNC_RESPONSE_FAILED = 0x3C005B, - CMSG_TOGGLE_DIFFICULTY = 0x3E0083, - CMSG_TOGGLE_PVP = 0x390189, - CMSG_TOTEM_DESTROYED = 0x3A0090, - CMSG_TOY_CLEAR_FANFARE = 0x290004, - CMSG_TRADE_SKILL_SET_FAVORITE = 0x390232, - CMSG_TRAINER_BUY_SPELL = 0x3A0041, - CMSG_TRAINER_LIST = 0x3A0040, - CMSG_TRAITS_COMMIT_CONFIG = 0x3902BA, - CMSG_TRAITS_TALENT_TEST_UNLEARN_SPELLS = 0x3902B8, - CMSG_TRANSFER_CURRENCY_FROM_ACCOUNT_CHARACTER = 0x3902E7, - CMSG_TRANSMOGRIFY_ITEMS = 0x390043, - CMSG_TURN_IN_PETITION = 0x3A00D3, - CMSG_TUTORIAL = 0x3E010C, - CMSG_UI_MAP_QUEST_LINES_REQUEST = 0x390262, - CMSG_UNACCEPT_TRADE = 0x390005, - CMSG_UNDELETE_CHARACTER = 0x3E010E, - CMSG_UNLEARN_SKILL = 0x3A007D, - CMSG_UNLEARN_SPECIALIZATION = 0x390051, - CMSG_UPDATE_AADC_STATUS = 0x3E0166, - CMSG_UPDATE_ACCOUNT_BANK_TAB_SETTINGS = 0x3A012A, - CMSG_UPDATE_ACCOUNT_DATA = 0x3E00C4, - CMSG_UPDATE_AREA_TRIGGER_VISUAL = 0x390177, - CMSG_UPDATE_CRAFTING_NPC_RECIPES = 0x3901E5, - CMSG_UPDATE_MISSILE_TRAJECTORY = 0x3C0060, - CMSG_UPDATE_RAID_TARGET = 0x3E007C, - CMSG_UPDATE_SPELL_VISUAL = 0x390176, - CMSG_UPDATE_VAS_PURCHASE_STATES = 0x3E0123, - CMSG_UPGRADE_GARRISON = 0x39019B, - CMSG_UPGRADE_RUNEFORGE_LEGENDARY = 0x39028F, - CMSG_USED_FOLLOW = 0x390032, - CMSG_USE_CRITTER_ITEM = 0x390109, - CMSG_USE_EQUIPMENT_SET = 0x3B0001, - CMSG_USE_ITEM = 0x390170, - CMSG_USE_TOY = 0x390173, - CMSG_VAS_CHECK_TRANSFER_OK = 0x3E0139, - CMSG_VAS_GET_QUEUE_MINUTES = 0x3E0138, - CMSG_VAS_GET_SERVICE_STATUS = 0x3E0137, - CMSG_VIOLENCE_LEVEL = 0x390030, - CMSG_VOICE_CHANNEL_STT_TOKEN_REQUEST = 0x3E013D, - CMSG_VOICE_CHAT_JOIN_CHANNEL = 0x3E013E, - CMSG_VOICE_CHAT_LOGIN = 0x3E013C, - CMSG_WARDEN3_DATA = 0x3E0018, - CMSG_WHO = 0x3E00AD, - CMSG_WHO_IS = 0x3E00AC, - CMSG_WORLD_LOOT_OBJECT_CLICK = 0x3902D4, - CMSG_WORLD_PORT_RESPONSE = 0x3E0025, - CMSG_WRAP_ITEM = 0x3B0000, + CMSG_ABANDON_NPE_RESPONSE = 0x3A02A4, + CMSG_ACCEPT_GUILD_INVITE = 0x400029, + CMSG_ACCEPT_SOCIAL_CONTRACT = 0x400177, + CMSG_ACCEPT_TRADE = 0x3A0004, + CMSG_ACCEPT_WARGAME_INVITE = 0x40000C, + CMSG_ACCOUNT_BANK_DEPOSIT_MONEY = 0x3A02E6, + CMSG_ACCOUNT_BANK_WITHDRAW_MONEY = 0x3A02E7, + CMSG_ACCOUNT_NOTIFICATION_ACKNOWLEDGED = 0x400163, + CMSG_ACCOUNT_STORE_BEGIN_PURCHASE_OR_REFUND = 0x4000C1, + CMSG_ACTIVATE_SOULBIND = 0x3A0293, + CMSG_ACTIVATE_TAXI = 0x3B003E, + CMSG_ADDON_LIST = 0x400004, + CMSG_ADD_ACCOUNT_COSMETIC = 0x3A0179, + CMSG_ADD_BATTLENET_FRIEND = 0x400086, + CMSG_ADD_FRIEND = 0x400100, + CMSG_ADD_IGNORE = 0x400104, + CMSG_ADD_TOY = 0x3A0178, + CMSG_ADVENTURE_JOURNAL_OPEN_QUEST = 0x3A00BB, + CMSG_ADVENTURE_JOURNAL_UPDATE_SUGGESTIONS = 0x3A0296, + CMSG_ADVENTURE_MAP_START_QUEST = 0x3A0236, + CMSG_ALTER_APPEARANCE = 0x3B008D, + CMSG_AREA_SPIRIT_HEALER_QUERY = 0x3B0043, + CMSG_AREA_SPIRIT_HEALER_QUEUE = 0x3B0044, + CMSG_AREA_TRIGGER = 0x3A008D, + CMSG_ARTIFACT_ADD_POWER = 0x3A005C, + CMSG_ARTIFACT_SET_APPEARANCE = 0x3A005E, + CMSG_ASSIGN_EQUIPMENT_SET_SPEC = 0x3A00C7, + CMSG_ATTACK_STOP = 0x3A0125, + CMSG_ATTACK_SWING = 0x3A0124, + CMSG_AUCTIONABLE_TOKEN_SELL = 0x400116, + CMSG_AUCTIONABLE_TOKEN_SELL_AT_MARKET_PRICE = 0x400117, + CMSG_AUCTION_BROWSE_QUERY = 0x3B0061, + CMSG_AUCTION_CANCEL_COMMODITIES_PURCHASE = 0x3B0069, + CMSG_AUCTION_CONFIRM_COMMODITIES_PURCHASE = 0x3B0068, + CMSG_AUCTION_GET_COMMODITY_QUOTE = 0x3B0067, + CMSG_AUCTION_HELLO_REQUEST = 0x3B005C, + CMSG_AUCTION_LIST_BIDDED_ITEMS = 0x3B0065, + CMSG_AUCTION_LIST_BUCKETS_BY_BUCKET_KEYS = 0x3B0066, + CMSG_AUCTION_LIST_ITEMS_BY_BUCKET_KEY = 0x3B0062, + CMSG_AUCTION_LIST_ITEMS_BY_ITEM_ID = 0x3B0063, + CMSG_AUCTION_LIST_OWNED_ITEMS = 0x3B0064, + CMSG_AUCTION_PLACE_BID = 0x3B0060, + CMSG_AUCTION_REMOVE_ITEM = 0x3B005E, + CMSG_AUCTION_REPLICATE_ITEMS = 0x3B005F, + CMSG_AUCTION_SELL_COMMODITY = 0x3B006A, + CMSG_AUCTION_SELL_ITEM = 0x3B005D, + CMSG_AUCTION_SET_FAVORITE_ITEM = 0x400164, + CMSG_AUTH_CONTINUED_SESSION = 0x410003, + CMSG_AUTH_SESSION = 0x410001, + CMSG_AUTOBANK_ITEM = 0x3D0003, + CMSG_AUTOSTORE_BANK_ITEM = 0x3D0002, + CMSG_AUTO_DEPOSIT_ACCOUNT_BANK = 0x3A02F0, + CMSG_AUTO_DEPOSIT_CHARACTER_BANK = 0x3A02FA, + CMSG_AUTO_EQUIP_ITEM = 0x3D0004, + CMSG_AUTO_EQUIP_ITEM_SLOT = 0x3D0009, + CMSG_AUTO_GUILD_BANK_ITEM = 0x3B0048, + CMSG_AUTO_STORE_BAG_ITEM = 0x3D0005, + CMSG_AUTO_STORE_GUILD_BANK_ITEM = 0x3B0051, + CMSG_AZERITE_EMPOWERED_ITEM_SELECT_POWER = 0x3A0262, + CMSG_AZERITE_EMPOWERED_ITEM_VIEWED = 0x3A0242, + CMSG_AZERITE_ESSENCE_ACTIVATE_ESSENCE = 0x3A0264, + CMSG_AZERITE_ESSENCE_UNLOCK_MILESTONE = 0x3A0263, + CMSG_BANKER_ACTIVATE = 0x3B0046, + CMSG_BATTLEFIELD_LEAVE = 0x3A001F, + CMSG_BATTLEFIELD_LIST = 0x3A002A, + CMSG_BATTLEFIELD_PORT = 0x3B00C4, + CMSG_BATTLEMASTER_HELLO = 0x3A0197, + CMSG_BATTLEMASTER_JOIN = 0x3B00BA, + CMSG_BATTLEMASTER_JOIN_ARENA = 0x3B00BB, + CMSG_BATTLEMASTER_JOIN_BRAWL = 0x3B00C1, + CMSG_BATTLEMASTER_JOIN_RATED_BG_BLITZ = 0x3B00BD, + CMSG_BATTLEMASTER_JOIN_RATED_SOLO_SHUFFLE = 0x3B00BC, + CMSG_BATTLEMASTER_JOIN_SKIRMISH = 0x3B00BE, + CMSG_BATTLENET_CHALLENGE_RESPONSE = 0x400103, + CMSG_BATTLENET_REQUEST = 0x400124, + CMSG_BATTLE_PAY_ACK_FAILED_RESPONSE = 0x4000FC, + CMSG_BATTLE_PAY_CANCEL_OPEN_CHECKOUT = 0x400141, + CMSG_BATTLE_PAY_CONFIRM_PURCHASE_RESPONSE = 0x4000FB, + CMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_TO_TARGET = 0x4000F2, + CMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_VAS = 0x400167, + CMSG_BATTLE_PAY_GET_PRODUCT_LIST = 0x4000E9, + CMSG_BATTLE_PAY_GET_PURCHASE_LIST = 0x4000EA, + CMSG_BATTLE_PAY_OPEN_CHECKOUT = 0x40013A, + CMSG_BATTLE_PAY_REQUEST_PRICE_INFO = 0x400135, + CMSG_BATTLE_PAY_START_PURCHASE = 0x4000FA, + CMSG_BATTLE_PAY_START_VAS_PURCHASE = 0x400122, + CMSG_BATTLE_PET_CLEAR_FANFARE = 0x290002, + CMSG_BATTLE_PET_DELETE_PET = 0x40004F, + CMSG_BATTLE_PET_MODIFY_NAME = 0x400052, + CMSG_BATTLE_PET_REQUEST_JOURNAL = 0x40004E, + CMSG_BATTLE_PET_REQUEST_JOURNAL_LOCK = 0x40004D, + CMSG_BATTLE_PET_SET_BATTLE_SLOT = 0x400057, + CMSG_BATTLE_PET_SET_FLAGS = 0x40005A, + CMSG_BATTLE_PET_SUMMON = 0x400053, + CMSG_BATTLE_PET_UPDATE_DISPLAY_NOTIFY = 0x3A0097, + CMSG_BATTLE_PET_UPDATE_NOTIFY = 0x3A0096, + CMSG_BEGIN_TRADE = 0x3A0001, + CMSG_BINDER_ACTIVATE = 0x3B0045, + CMSG_BLACK_MARKET_BID_ON_ITEM = 0x3B00CC, + CMSG_BLACK_MARKET_OPEN = 0x3B00CA, + CMSG_BLACK_MARKET_REQUEST_ITEMS = 0x3B00CB, + CMSG_BONUS_ROLL = 0x3A0265, + CMSG_BUG_REPORT = 0x4000B1, + CMSG_BULK_PURCHASE = 0x290032, + CMSG_BUSY_TRADE = 0x3A0002, + CMSG_BUY_ACCOUNT_BANK_TAB = 0x3B0124, + CMSG_BUY_BACK_ITEM = 0x3B0037, + CMSG_BUY_ITEM = 0x3B0036, + CMSG_CAGE_BATTLE_PET = 0x3A00AA, + CMSG_CALENDAR_ADD_EVENT = 0x4000A9, + CMSG_CALENDAR_COMMUNITY_INVITE = 0x40009D, + CMSG_CALENDAR_COMPLAIN = 0x4000A5, + CMSG_CALENDAR_COPY_EVENT = 0x4000A4, + CMSG_CALENDAR_EVENT_SIGN_UP = 0x4000A7, + CMSG_CALENDAR_GET = 0x40009B, + CMSG_CALENDAR_GET_EVENT = 0x40009C, + CMSG_CALENDAR_GET_NUM_PENDING = 0x4000A6, + CMSG_CALENDAR_INVITE = 0x40009E, + CMSG_CALENDAR_MODERATOR_STATUS = 0x4000A2, + CMSG_CALENDAR_REMOVE_EVENT = 0x4000A3, + CMSG_CALENDAR_REMOVE_INVITE = 0x40009F, + CMSG_CALENDAR_RSVP = 0x4000A0, + CMSG_CALENDAR_STATUS = 0x4000A1, + CMSG_CALENDAR_UPDATE_EVENT = 0x4000AA, + CMSG_CANCEL_AURA = 0x3A0060, + CMSG_CANCEL_AUTO_REPEAT_SPELL = 0x3B007F, + CMSG_CANCEL_CAST = 0x3A017F, + CMSG_CANCEL_CHANNELLING = 0x3A0140, + CMSG_CANCEL_GROWTH_AURA = 0x3A0148, + CMSG_CANCEL_MASTER_LOOT_ROLL = 0x3A00D4, + CMSG_CANCEL_MOD_SPEED_NO_CONTROL_AURAS = 0x3A005F, + CMSG_CANCEL_MOUNT_AURA = 0x3A015B, + CMSG_CANCEL_QUEUED_SPELL = 0x3A002B, + CMSG_CANCEL_TEMP_ENCHANTMENT = 0x3B008A, + CMSG_CANCEL_TRADE = 0x3A0006, + CMSG_CAN_DUEL = 0x40008E, + CMSG_CAN_REDEEM_TOKEN_FOR_BALANCE = 0x400134, + CMSG_CAST_SPELL = 0x3A017C, + CMSG_CATALOG_SHOP_LICENSE_GAME_DATA_REQUEST = 0x4000FD, + CMSG_CHALLENGE_MODE_REQUEST_LEADERS = 0x2C0002, + CMSG_CHANGE_BAG_SLOT_FLAG = 0x3A021B, + CMSG_CHANGE_BANK_BAG_SLOT_FLAG = 0x3A021C, + CMSG_CHANGE_MONUMENT_APPEARANCE = 0x3A01FC, + CMSG_CHANGE_REALM_TICKET = 0x400129, + CMSG_CHANGE_SUB_GROUP = 0x400078, + CMSG_CHARACTER_CHECK_UPGRADE = 0x4000F5, + CMSG_CHARACTER_RENAME_REQUEST = 0x4000F0, + CMSG_CHARACTER_UPGRADE_MANUAL_UNREVOKE_REQUEST = 0x4000F3, + CMSG_CHARACTER_UPGRADE_START = 0x4000F4, + CMSG_CHAR_CUSTOMIZE = 0x4000B9, + CMSG_CHAR_DELETE = 0x4000CB, + CMSG_CHAR_RACE_OR_FACTION_CHANGE = 0x4000BF, + CMSG_CHAT_ADDON_MESSAGE = 0x2B002A, + CMSG_CHAT_ADDON_MESSAGE_TARGETED = 0x2B002B, + CMSG_CHAT_CAN_LOCAL_WHISPER_TARGET_REQUEST = 0x2B0032, + CMSG_CHAT_CHANNEL_ANNOUNCEMENTS = 0x2B001F, + CMSG_CHAT_CHANNEL_BAN = 0x2B001D, + CMSG_CHAT_CHANNEL_DECLINE_INVITE = 0x2B0022, + CMSG_CHAT_CHANNEL_DISPLAY_LIST = 0x2B0012, + CMSG_CHAT_CHANNEL_INVITE = 0x2B001B, + CMSG_CHAT_CHANNEL_KICK = 0x2B001C, + CMSG_CHAT_CHANNEL_LIST = 0x2B0011, + CMSG_CHAT_CHANNEL_MODERATE = 0x2B0016, + CMSG_CHAT_CHANNEL_MODERATOR = 0x2B0017, + CMSG_CHAT_CHANNEL_OWNER = 0x2B0015, + CMSG_CHAT_CHANNEL_PASSWORD = 0x2B0013, + CMSG_CHAT_CHANNEL_SET_OWNER = 0x2B0014, + CMSG_CHAT_CHANNEL_SILENCE_ALL = 0x2B0020, + CMSG_CHAT_CHANNEL_UNBAN = 0x2B001E, + CMSG_CHAT_CHANNEL_UNMODERATOR = 0x2B0018, + CMSG_CHAT_CHANNEL_UNSILENCE_ALL = 0x2B0021, + CMSG_CHAT_DROP_CAUTIONARY_CHAT_MESSAGE = 0x2B000A, + CMSG_CHAT_JOIN_CHANNEL = 0x2B0000, + CMSG_CHAT_LEAVE_CHANNEL = 0x2B0001, + CMSG_CHAT_LOBBY_MATCHMAKER_MESSAGE_INSTANCE_CHAT = 0x2B0031, + CMSG_CHAT_LOBBY_MATCHMAKER_MESSAGE_PARTY = 0x2B0030, + CMSG_CHAT_MESSAGE_AFK = 0x2B000F, + CMSG_CHAT_MESSAGE_CHANNEL = 0x2B0007, + CMSG_CHAT_MESSAGE_DND = 0x2B0010, + CMSG_CHAT_MESSAGE_EMOTE = 0x2B0024, + CMSG_CHAT_MESSAGE_GUILD = 0x2B000D, + CMSG_CHAT_MESSAGE_INSTANCE_CHAT = 0x2B0028, + CMSG_CHAT_MESSAGE_OFFICER = 0x2B000E, + CMSG_CHAT_MESSAGE_PARTY = 0x2B0026, + CMSG_CHAT_MESSAGE_RAID = 0x2B0027, + CMSG_CHAT_MESSAGE_RAID_WARNING = 0x2B0029, + CMSG_CHAT_MESSAGE_SAY = 0x2B0023, + CMSG_CHAT_MESSAGE_WHISPER = 0x2B0008, + CMSG_CHAT_MESSAGE_YELL = 0x2B0025, + CMSG_CHAT_REGISTER_ADDON_PREFIXES = 0x2B0005, + CMSG_CHAT_REPORT_FILTERED = 0x2B0004, + CMSG_CHAT_REPORT_IGNORED = 0x2B0003, + CMSG_CHAT_SEND_CAUTIONARY_CHANNEL_MESSAGE = 0x2B000B, + CMSG_CHAT_SEND_CAUTIONARY_CHAT_MESSAGE = 0x2B0009, + CMSG_CHAT_UNREGISTER_ALL_ADDON_PREFIXES = 0x2B0006, + CMSG_CHECK_CHARACTER_NAME_AVAILABILITY = 0x400071, + CMSG_CHECK_IS_ADVENTURE_MAP_POI_VALID = 0x3A0116, + CMSG_CHOICE_RESPONSE = 0x3A0184, + CMSG_CHROMIE_TIME_SELECT_EXPANSION = 0x3A0292, + CMSG_CLAIM_WEEKLY_REWARD = 0x3A026F, + CMSG_CLASS_TALENTS_DELETE_CONFIG = 0x3A02CC, + CMSG_CLASS_TALENTS_NOTIFY_EMPTY_CONFIG = 0x3A00CB, + CMSG_CLASS_TALENTS_NOTIFY_VALIDATION_FAILED = 0x3A02CE, + CMSG_CLASS_TALENTS_RENAME_CONFIG = 0x3A02CB, + CMSG_CLASS_TALENTS_REQUEST_NEW_CONFIG = 0x3A02CA, + CMSG_CLASS_TALENTS_SET_STARTER_BUILD_ACTIVE = 0x3A02CF, + CMSG_CLASS_TALENTS_SET_USES_SHARED_ACTION_BARS = 0x3A00CA, + CMSG_CLEAR_NEW_APPEARANCE = 0x290005, + CMSG_CLEAR_RAID_MARKER = 0x3A0058, + CMSG_CLEAR_TRADE_ITEM = 0x3A0008, + CMSG_CLIENT_PORT_GRAVEYARD = 0x3B00C6, + CMSG_CLOSE_INTERACTION = 0x3B0025, + CMSG_CLOSE_QUEST_CHOICE = 0x3A0185, + CMSG_CLOSE_RUNEFORGE_INTERACTION = 0x3A029A, + CMSG_CLOSE_TRAIT_SYSTEM_INTERACTION = 0x3A02D0, + CMSG_CLUB_FINDER_APPLICATION_RESPONSE = 0x40014C, + CMSG_CLUB_FINDER_GET_APPLICANTS_LIST = 0x40014A, + CMSG_CLUB_FINDER_POST = 0x400147, + CMSG_CLUB_FINDER_REQUEST_CLUBS_DATA = 0x40014E, + CMSG_CLUB_FINDER_REQUEST_CLUBS_LIST = 0x400148, + CMSG_CLUB_FINDER_REQUEST_MEMBERSHIP_TO_CLUB = 0x400149, + CMSG_CLUB_FINDER_REQUEST_PENDING_CLUBS_LIST = 0x40014D, + CMSG_CLUB_FINDER_REQUEST_SUBSCRIBED_CLUB_POSTING_IDS = 0x40014F, + CMSG_CLUB_FINDER_RESPOND_TO_APPLICANT = 0x40014B, + CMSG_CLUB_FINDER_WHISPER_APPLICANT_REQUEST = 0x40016A, + CMSG_CLUB_PRESENCE_SUBSCRIBE = 0x400126, + CMSG_COLLECTION_ITEM_SET_FAVORITE = 0x40005D, + CMSG_COMMENTATOR_ENABLE = 0x40001C, + CMSG_COMMENTATOR_ENTER_INSTANCE = 0x400020, + CMSG_COMMENTATOR_EXIT_INSTANCE = 0x400021, + CMSG_COMMENTATOR_GET_MAP_INFO = 0x40001D, + CMSG_COMMENTATOR_GET_PLAYER_COOLDOWNS = 0x40001F, + CMSG_COMMENTATOR_GET_PLAYER_INFO = 0x40001E, + CMSG_COMMENTATOR_SPECTATE = 0x400168, + CMSG_COMMENTATOR_START_WARGAME = 0x40001B, + CMSG_COMMERCE_TOKEN_GET_COUNT = 0x400114, + CMSG_COMMERCE_TOKEN_GET_LOG = 0x40011E, + CMSG_COMMERCE_TOKEN_GET_MARKET_PRICE = 0x400115, + CMSG_COMPLAINT = 0x400098, + CMSG_COMPLETE_CINEMATIC = 0x3B00E4, + CMSG_COMPLETE_MOVIE = 0x3B0075, + CMSG_CONFIRM_ARTIFACT_RESPEC = 0x3A005D, + CMSG_CONFIRM_PROFESSION_RESPEC = 0x3A00CE, + CMSG_CONFIRM_RESPEC_WIPE = 0x3A00CD, + CMSG_CONNECT_TO_FAILED = 0x400000, + CMSG_CONSUMABLE_TOKEN_BUY = 0x400119, + CMSG_CONSUMABLE_TOKEN_BUY_AT_MARKET_PRICE = 0x40011A, + CMSG_CONSUMABLE_TOKEN_CAN_VETERAN_BUY = 0x400118, + CMSG_CONSUMABLE_TOKEN_REDEEM = 0x40011C, + CMSG_CONSUMABLE_TOKEN_REDEEM_CONFIRMATION = 0x40011D, + CMSG_CONTENT_TRACKING_START_TRACKING = 0x3A02DF, + CMSG_CONTENT_TRACKING_STOP_TRACKING = 0x3A02E0, + CMSG_CONTRIBUTION_CONTRIBUTE = 0x3B00FC, + CMSG_CONTRIBUTION_LAST_UPDATE_REQUEST = 0x3B00FD, + CMSG_CONVERSATION_CINEMATIC_READY = 0x3B00E6, + CMSG_CONVERSATION_LINE_STARTED = 0x3B00E5, + CMSG_CONVERT_ITEM_TO_BIND_TO_ACCOUNT = 0x3A02EF, + CMSG_CONVERT_RAID = 0x40007A, + CMSG_CONVERT_TIMERUNNING_CHARACTER = 0x40018D, + CMSG_COVENANT_RENOWN_REQUEST_CATCHUP_STATE = 0x3B0110, + CMSG_CRAFTING_ORDER_CANCEL = 0x3B011C, + CMSG_CRAFTING_ORDER_CLAIM = 0x3B0119, + CMSG_CRAFTING_ORDER_CREATE = 0x3B0115, + CMSG_CRAFTING_ORDER_FULFILL = 0x3B011B, + CMSG_CRAFTING_ORDER_GET_NPC_REWARD_INFO = 0x3B0118, + CMSG_CRAFTING_ORDER_LIST_CRAFTER_ORDERS = 0x3B0117, + CMSG_CRAFTING_ORDER_LIST_MY_ORDERS = 0x3B0116, + CMSG_CRAFTING_ORDER_REJECT = 0x3B011D, + CMSG_CRAFTING_ORDER_RELEASE = 0x3B011A, + CMSG_CRAFTING_ORDER_REPORT_PLAYER = 0x3B011E, + CMSG_CRAFTING_ORDER_UPDATE_IGNORE_LIST = 0x3B011F, + CMSG_CREATE_CHARACTER = 0x400070, + CMSG_CREATE_SHIPMENT = 0x3A01E5, + CMSG_DB_QUERY_BULK = 0x400010, + CMSG_DECLINE_GUILD_INVITES = 0x3B00B7, + CMSG_DECLINE_NEIGHBORHOOD_INVITES = 0x3B0130, + CMSG_DECLINE_PETITION = 0x3B00D3, + CMSG_DELETE_EQUIPMENT_SET = 0x3B00A3, + CMSG_DELVE_TELEPORT_OUT = 0x3B012C, + CMSG_DEL_FRIEND = 0x400101, + CMSG_DEL_IGNORE = 0x400105, + CMSG_DESTROY_ITEM = 0x3A0172, + CMSG_DF_BOOT_PLAYER_VOTE = 0x400044, + CMSG_DF_CONFIRM_EXPAND_SEARCH = 0x400036, + CMSG_DF_GET_JOIN_STATUS = 0x400042, + CMSG_DF_GET_SYSTEM_INFO = 0x400041, + CMSG_DF_JOIN = 0x400037, + CMSG_DF_LEAVE = 0x400040, + CMSG_DF_PROPOSAL_RESPONSE = 0x400035, + CMSG_DF_READY_CHECK_RESPONSE = 0x400048, + CMSG_DF_SET_ROLES = 0x400043, + CMSG_DF_TELEPORT = 0x400045, + CMSG_DISCARDED_TIME_SYNC_ACKS = 0x3E0060, + CMSG_DISMISS_CRITTER = 0x3B0091, + CMSG_DO_COUNTDOWN = 0x400146, + CMSG_DO_MASTER_LOOT_ROLL = 0x3A00D3, + CMSG_DO_READY_CHECK = 0x40005E, + CMSG_DUEL_RESPONSE = 0x3B007A, + CMSG_EJECT_PASSENGER = 0x3A010B, + CMSG_EMOTE = 0x3B00E0, + CMSG_ENABLE_NAGLE = 0x410009, + CMSG_ENABLE_TAXI_NODE = 0x3B003C, + CMSG_ENCOUNTER_JOURNAL_START_ARATHI_RPE = 0x3A030A, + CMSG_ENGINE_SURVEY = 0x400113, + CMSG_ENTER_ENCRYPTED_MODE_ACK = 0x410005, + CMSG_ENUM_CHARACTERS = 0x400014, + CMSG_ENUM_CHARACTERS_DELETED_BY_CLIENT = 0x40010D, + CMSG_FAR_SIGHT = 0x3B0080, + CMSG_GAME_EVENT_DEBUG_DISABLE = 0x3A0064, + CMSG_GAME_EVENT_DEBUG_ENABLE = 0x3A0063, + CMSG_GAME_OBJ_REPORT_USE = 0x3B0087, + CMSG_GAME_OBJ_USE = 0x3B0086, + CMSG_GARRISON_ADD_FOLLOWER_HEALTH = 0x3A01E0, + CMSG_GARRISON_ASSIGN_FOLLOWER_TO_BUILDING = 0x3A01C6, + CMSG_GARRISON_CANCEL_CONSTRUCTION = 0x3A01B2, + CMSG_GARRISON_CHECK_UPGRADEABLE = 0x3A0217, + CMSG_GARRISON_COMPLETE_MISSION = 0x3A0209, + CMSG_GARRISON_FULLY_HEAL_ALL_FOLLOWERS = 0x3A01E1, + CMSG_GARRISON_GENERATE_RECRUITS = 0x3A01C9, + CMSG_GARRISON_GET_CLASS_SPEC_CATEGORY_INFO = 0x3A01D8, + CMSG_GARRISON_GET_MAP_DATA = 0x3A01DF, + CMSG_GARRISON_GET_MISSION_REWARD = 0x3A023A, + CMSG_GARRISON_LEARN_TALENT = 0x3A01D4, + CMSG_GARRISON_MISSION_BONUS_ROLL = 0x3A020B, + CMSG_GARRISON_PURCHASE_BUILDING = 0x3A01AE, + CMSG_GARRISON_RECRUIT_FOLLOWER = 0x3A01CB, + CMSG_GARRISON_REMOVE_FOLLOWER = 0x3A0200, + CMSG_GARRISON_REMOVE_FOLLOWER_FROM_BUILDING = 0x3A01C7, + CMSG_GARRISON_RENAME_FOLLOWER = 0x3A01C8, + CMSG_GARRISON_REQUEST_BLUEPRINT_AND_SPECIALIZATION_DATA = 0x3A01AD, + CMSG_GARRISON_REQUEST_SHIPMENT_INFO = 0x3A01E3, + CMSG_GARRISON_RESEARCH_TALENT = 0x3A01CC, + CMSG_GARRISON_SET_BUILDING_ACTIVE = 0x3A01AF, + CMSG_GARRISON_SET_FOLLOWER_FAVORITE = 0x3A01C4, + CMSG_GARRISON_SET_FOLLOWER_INACTIVE = 0x3A01BB, + CMSG_GARRISON_SET_RECRUITMENT_PREFERENCES = 0x3A01CA, + CMSG_GARRISON_SOCKET_TALENT = 0x3A02A7, + CMSG_GARRISON_START_MISSION = 0x3A0208, + CMSG_GARRISON_SWAP_BUILDINGS = 0x3A01B3, + CMSG_GENERATE_RANDOM_CHARACTER_NAME = 0x400013, + CMSG_GET_ACCOUNT_CHARACTER_LIST = 0x4000E4, + CMSG_GET_ACCOUNT_NOTIFICATIONS = 0x400162, + CMSG_GET_ALL_LICENSED_DECOR_QUANTITIES = 0x290034, + CMSG_GET_AVAILABLE_INITIATIVE_REQUEST = 0x380002, + CMSG_GET_CHARACTER_CURRENCY_TRANSFER_LOG = 0x29001F, + CMSG_GET_CLIENT_CHECKOUT_LICENSES = 0x400140, + CMSG_GET_DECOR_REFUND_LIST = 0x290031, + CMSG_GET_GARRISON_INFO = 0x3A01A8, + CMSG_GET_INITIATIVE_ACTIVITY_LOG_REQUEST = 0x380004, + CMSG_GET_ITEM_PURCHASE_DATA = 0x3B00CE, + CMSG_GET_LANDING_PAGE_SHIPMENTS = 0x3A01E4, + CMSG_GET_LAST_CATALOG_FETCH = 0x290036, + CMSG_GET_MIRROR_IMAGE_DATA = 0x3A0176, + CMSG_GET_PVP_OPTIONS_ENABLED = 0x40001A, + CMSG_GET_RAF_ACCOUNT_INFO = 0x400150, + CMSG_GET_REGIONWIDE_CHARACTER_RESTRICTION_AND_MAIL_DATA = 0x400193, + CMSG_GET_REMAINING_GAME_TIME = 0x40011B, + CMSG_GET_TROPHY_LIST = 0x3A01F9, + CMSG_GET_UNDELETE_CHARACTER_COOLDOWN_STATUS = 0x40010F, + CMSG_GET_VAS_ACCOUNT_CHARACTER_LIST = 0x400120, + CMSG_GET_VAS_TRANSFER_TARGET_REALM_LIST = 0x400121, + CMSG_GM_TICKET_ACKNOWLEDGE_SURVEY = 0x4000BD, + CMSG_GM_TICKET_GET_CASE_STATUS = 0x4000BC, + CMSG_GM_TICKET_GET_SYSTEM_STATUS = 0x4000BB, + CMSG_GOSSIP_REFRESH_OPTIONS = 0x3B010F, + CMSG_GOSSIP_SELECT_OPTION = 0x3B0026, + CMSG_GUILD_ADD_BATTLENET_FRIEND = 0x2D0020, + CMSG_GUILD_ADD_RANK = 0x2D0005, + CMSG_GUILD_ASSIGN_MEMBER_RANK = 0x2D0002, + CMSG_GUILD_BANK_ACTIVATE = 0x3B0047, + CMSG_GUILD_BANK_BUY_TAB = 0x3B0055, + CMSG_GUILD_BANK_DEPOSIT_MONEY = 0x3B0057, + CMSG_GUILD_BANK_LOG_QUERY = 0x2D0019, + CMSG_GUILD_BANK_QUERY_TAB = 0x3B0054, + CMSG_GUILD_BANK_REMAINING_WITHDRAW_MONEY_QUERY = 0x2D001A, + CMSG_GUILD_BANK_SET_TAB_TEXT = 0x2D001D, + CMSG_GUILD_BANK_TEXT_QUERY = 0x2D001E, + CMSG_GUILD_BANK_UPDATE_TAB = 0x3B0056, + CMSG_GUILD_BANK_WITHDRAW_MONEY = 0x3B0058, + CMSG_GUILD_CHALLENGE_UPDATE_REQUEST = 0x2D0017, + CMSG_GUILD_CHANGE_NAME_REQUEST = 0x2D0018, + CMSG_GUILD_DECLINE_INVITATION = 0x40002A, + CMSG_GUILD_DELETE = 0x2D0009, + CMSG_GUILD_DELETE_RANK = 0x2D0006, + CMSG_GUILD_DEMOTE_MEMBER = 0x2D0001, + CMSG_GUILD_EVENT_LOG_QUERY = 0x2D001C, + CMSG_GUILD_GET_ACHIEVEMENT_MEMBERS = 0x2D0012, + CMSG_GUILD_GET_OTHERS_OWNED_HOUSES = 0x2D0026, + CMSG_GUILD_GET_RANKS = 0x2D000E, + CMSG_GUILD_GET_ROSTER = 0x2D0014, + CMSG_GUILD_INVITE_BY_NAME = 0x400034, + CMSG_GUILD_LEAVE = 0x2D0003, + CMSG_GUILD_NEWS_UPDATE_STICKY = 0x2D000F, + CMSG_GUILD_OFFICER_REMOVE_MEMBER = 0x2D0004, + CMSG_GUILD_PERMISSIONS_QUERY = 0x2D001B, + CMSG_GUILD_PROMOTE_MEMBER = 0x2D0000, + CMSG_GUILD_QUERY_MEMBERS_FOR_RECIPE = 0x2D000C, + CMSG_GUILD_QUERY_MEMBER_RECIPES = 0x2D000A, + CMSG_GUILD_QUERY_NEWS = 0x2D000D, + CMSG_GUILD_QUERY_RECIPES = 0x2D000B, + CMSG_GUILD_REPLACE_GUILD_MASTER = 0x2D001F, + CMSG_GUILD_REQUEST_RENAME = 0x2D0023, + CMSG_GUILD_REQUEST_RENAME_NAME_CHECK = 0x2D0022, + CMSG_GUILD_REQUEST_RENAME_REFUND = 0x2D0024, + CMSG_GUILD_REQUEST_RENAME_STATUS = 0x2D0021, + CMSG_GUILD_SET_ACHIEVEMENT_TRACKING = 0x2D0010, + CMSG_GUILD_SET_FOCUSED_ACHIEVEMENT = 0x2D0011, + CMSG_GUILD_SET_GUILD_MASTER = 0x4000F7, + CMSG_GUILD_SET_MEMBER_NOTE = 0x2D0013, + CMSG_GUILD_SET_RANK_PERMISSIONS = 0x2D0008, + CMSG_GUILD_SHIFT_RANK = 0x2D0007, + CMSG_GUILD_UPDATE_INFO_TEXT = 0x2D0016, + CMSG_GUILD_UPDATE_MOTD_TEXT = 0x2D0015, + CMSG_HEARTH_AND_RESURRECT = 0x3B009F, + CMSG_HIDE_QUEST_CHOICE = 0x3A0186, + CMSG_HOTFIX_REQUEST = 0x400011, + CMSG_HOUSE_EXTERIOR_LOCK = 0x2E0000, + CMSG_HOUSE_EXTERIOR_SET_HOUSE_POSITION = 0x2E0001, + CMSG_HOUSE_INTERIOR_LEAVE_HOUSE = 0x2F0001, + CMSG_HOUSING_DECOR_DELETE_FROM_STORAGE = 0x300009, + CMSG_HOUSING_DECOR_DELETE_FROM_STORAGE_BY_ID = 0x30000A, + CMSG_HOUSING_DECOR_LOCK = 0x300004, + CMSG_HOUSING_DECOR_MOVE = 0x300002, + CMSG_HOUSING_DECOR_PLACE = 0x300001, + CMSG_HOUSING_DECOR_REDEEM_DEFERRED_DECOR = 0x300010, + CMSG_HOUSING_DECOR_REMOVE = 0x300003, + CMSG_HOUSING_DECOR_REQUEST_STORAGE = 0x30000E, + CMSG_HOUSING_DECOR_SET_DYE_SLOTS = 0x300006, + CMSG_HOUSING_DECOR_SET_EDIT_MODE = 0x300000, + CMSG_HOUSING_FIXTURE_CREATE_FIXTURE = 0x310006, + CMSG_HOUSING_FIXTURE_DELETE_FIXTURE = 0x310007, + CMSG_HOUSING_FIXTURE_SET_CORE_FIXTURE = 0x310005, + CMSG_HOUSING_FIXTURE_SET_EDIT_MODE = 0x310000, + CMSG_HOUSING_FIXTURE_SET_HOUSE_SIZE = 0x310003, + CMSG_HOUSING_FIXTURE_SET_HOUSE_TYPE = 0x310004, + CMSG_HOUSING_GET_CURRENT_HOUSE_INFO = 0x350006, + CMSG_HOUSING_GET_PLAYER_PERMISSIONS = 0x350007, + CMSG_HOUSING_HOUSE_STATUS = 0x350005, + CMSG_HOUSING_RESET_KIOSK_MODE = 0x350008, + CMSG_HOUSING_ROOM_ADD = 0x320001, + CMSG_HOUSING_ROOM_APPLY_COMPONENT_MATERIALS = 0x320006, + CMSG_HOUSING_ROOM_MOVE = 0x320004, + CMSG_HOUSING_ROOM_REMOVE = 0x320002, + CMSG_HOUSING_ROOM_ROTATE = 0x320003, + CMSG_HOUSING_ROOM_SET_CEILING_TYPE = 0x320008, + CMSG_HOUSING_ROOM_SET_COMPONENT_THEME = 0x320005, + CMSG_HOUSING_ROOM_SET_DOOR_TYPE = 0x320007, + CMSG_HOUSING_ROOM_SET_LAYOUT_EDIT_MODE = 0x320000, + CMSG_HOUSING_SVCS_ACCEPT_NEIGHBORHOOD_OWNERSHIP = 0x33001C, + CMSG_HOUSING_SVCS_DELETE_ALL_NEIGHBORHOOD_INVITES = 0x330023, + CMSG_HOUSING_SVCS_GET_BNET_FRIEND_NEIGHBORHOODS = 0x330021, + CMSG_HOUSING_SVCS_GET_HOUSE_FINDER_INFO = 0x33001F, + CMSG_HOUSING_SVCS_GET_HOUSE_FINDER_NEIGHBORHOOD = 0x330020, + CMSG_HOUSING_SVCS_GET_PLAYER_HOUSES_INFO = 0x330011, + CMSG_HOUSING_SVCS_GET_POTENTIAL_HOUSE_OWNERS = 0x33001E, + CMSG_HOUSING_SVCS_GUILD_CREATE_NEIGHBORHOOD = 0x330001, + CMSG_HOUSING_SVCS_NEIGHBORHOOD_RESERVE_PLOT = 0x330006, + CMSG_HOUSING_SVCS_PLAYER_VIEW_HOUSES_BY_BNET_ACCOUNT = 0x33000F, + CMSG_HOUSING_SVCS_PLAYER_VIEW_HOUSES_BY_PLAYER = 0x33000E, + CMSG_HOUSING_SVCS_REJECT_NEIGHBORHOOD_OWNERSHIP = 0x33001D, + CMSG_HOUSING_SVCS_RELINQUISH_HOUSE = 0x330009, + CMSG_HOUSING_SVCS_START_TUTORIAL = 0x330018, + CMSG_HOUSING_SVCS_TELEPORT_TO_PLOT = 0x330017, + CMSG_HOUSING_SVCS_UPDATE_HOUSE_SETTINGS = 0x33000A, + CMSG_IGNORE_TRADE = 0x3A0003, + CMSG_INITIATE_ROLE_POLL = 0x400006, + CMSG_INITIATE_TRADE = 0x3A0000, + CMSG_INITIATIVE_UPDATE_ACTIVE_NEIGHBORHOOD = 0x3C0000, + CMSG_INSPECT = 0x3B00C8, + CMSG_INSTANCE_ABANDON_VOTE_RESPONSE = 0x400061, + CMSG_INSTANCE_LOCK_RESPONSE = 0x3B00A4, + CMSG_INVITE_PLAYER_TO_NEIGHBORHOOD = 0x40019B, + CMSG_ISLAND_QUEUE = 0x3A026B, + CMSG_ITEM_PURCHASE_REFUND = 0x3B00CF, + CMSG_ITEM_TEXT_QUERY = 0x3A0218, + CMSG_JOIN_PET_BATTLE_QUEUE = 0x3A0094, + CMSG_JOIN_RATED_BATTLEGROUND = 0x3A0025, + CMSG_KEEP_ALIVE = 0x4000AB, + CMSG_KEYBOUND_OVERRIDE = 0x3A00E9, + CMSG_KIOSK_ENABLE_GOD_MODE = 0x3A009E, + CMSG_LATENCY_REPORT = 0x41000F, + CMSG_LEARN_PVP_TALENTS = 0x3B00FB, + CMSG_LEARN_TALENTS = 0x3B00F9, + CMSG_LEAVE_GROUP = 0x400075, + CMSG_LEAVE_PET_BATTLE_QUEUE = 0x3A0095, + CMSG_LFG_LIST_APPLY_TO_GROUP = 0x40003B, + CMSG_LFG_LIST_CANCEL_APPLICATION = 0x40003C, + CMSG_LFG_LIST_DECLINE_APPLICANT = 0x40003D, + CMSG_LFG_LIST_GET_STATUS = 0x400039, + CMSG_LFG_LIST_INVITE_APPLICANT = 0x40003E, + CMSG_LFG_LIST_INVITE_RESPONSE = 0x40003F, + CMSG_LFG_LIST_JOIN = 0x3A025F, + CMSG_LFG_LIST_LEAVE = 0x400038, + CMSG_LFG_LIST_SEARCH = 0x40003A, + CMSG_LFG_LIST_UPDATE_REQUEST = 0x3A0260, + CMSG_LFG_LOREWALKING_UPDATE_REQUEST = 0x3A0261, + CMSG_LIST_INVENTORY = 0x3B0033, + CMSG_LIVE_REGION_ACCOUNT_RESTORE = 0x4000E7, + CMSG_LIVE_REGION_CHARACTER_COPY = 0x4000E6, + CMSG_LIVE_REGION_GET_ACCOUNT_CHARACTER_LIST = 0x4000E5, + CMSG_LIVE_REGION_KEY_BINDINGS_COPY = 0x4000E8, + CMSG_LOADING_SCREEN_NOTIFY = 0x400024, + CMSG_LOAD_SELECTED_TROPHY = 0x3A01FA, + CMSG_LOBBY_MATCHMAKER_ABANDON_QUEUE = 0x400175, + CMSG_LOBBY_MATCHMAKER_ACCEPT_PARTY_INVITE = 0x40016C, + CMSG_LOBBY_MATCHMAKER_CREATE_CHARACTER = 0x40017E, + CMSG_LOBBY_MATCHMAKER_ENTER_QUEUE = 0x400173, + CMSG_LOBBY_MATCHMAKER_LEAVE_PARTY = 0x40016F, + CMSG_LOBBY_MATCHMAKER_PARTY_INVITE = 0x40016B, + CMSG_LOBBY_MATCHMAKER_PARTY_UNINVITE = 0x40016E, + CMSG_LOBBY_MATCHMAKER_QUEUE_PROPSAL_RESPONSE = 0x400174, + CMSG_LOBBY_MATCHMAKER_REJECT_PARTY_INVITE = 0x40016D, + CMSG_LOBBY_MATCHMAKER_SET_PARTY_PLAYLIST_ENTRY = 0x400170, + CMSG_LOBBY_MATCHMAKER_SET_PLAYER_READY = 0x400171, + CMSG_LOGOUT_CANCEL = 0x3B0070, + CMSG_LOGOUT_INSTANT = 0x3B0071, + CMSG_LOGOUT_LOBBY_MATCHMAKER = 0x3B0123, + CMSG_LOGOUT_REQUEST = 0x3B006F, + CMSG_LOG_DISCONNECT = 0x410007, + CMSG_LOG_STREAMING_ERROR = 0x41000B, + CMSG_LOOT_ITEM = 0x3A00D1, + CMSG_LOOT_MONEY = 0x3A00D0, + CMSG_LOOT_RELEASE = 0x3A00D5, + CMSG_LOOT_ROLL = 0x3A00D6, + CMSG_LOOT_UNIT = 0x3A00CF, + CMSG_LOW_LEVEL_RAID1 = 0x4000CF, + CMSG_LOW_LEVEL_RAID2 = 0x3B00AB, + CMSG_MAIL_CREATE_TEXT_ITEM = 0x3B00DA, + CMSG_MAIL_DELETE = 0x3A00EB, + CMSG_MAIL_GET_LIST = 0x3B00D5, + CMSG_MAIL_MARK_AS_READ = 0x3B00D9, + CMSG_MAIL_RETURN_TO_SENDER = 0x400081, + CMSG_MAIL_TAKE_ITEM = 0x3B00D7, + CMSG_MAIL_TAKE_MONEY = 0x3B00D6, + CMSG_MAKE_CONTITIONAL_APPEARANCE_PERMANENT = 0x3A00EC, + CMSG_MASTER_LOOT_ITEM = 0x3A00D2, + CMSG_MERGE_GUILD_BANK_ITEM_WITH_GUILD_BANK_ITEM = 0x3B0052, + CMSG_MERGE_GUILD_BANK_ITEM_WITH_ITEM = 0x3B004F, + CMSG_MERGE_ITEM_WITH_GUILD_BANK_ITEM = 0x3B004D, + CMSG_MESSAGE_WHISPER = 0x410011, + CMSG_MINIMAP_PING = 0x400077, + CMSG_MISSILE_TRAJECTORY_COLLISION = 0x3A0036, + CMSG_MOUNT_CLEAR_FANFARE = 0x290003, + CMSG_MOUNT_SET_FAVORITE = 0x40005C, + CMSG_MOUNT_SPECIAL_ANIM = 0x3A015C, + CMSG_MOVE_ADD_IMPULSE_ACK = 0x3E006F, + CMSG_MOVE_APPLY_INERTIA_ACK = 0x3E006D, + CMSG_MOVE_APPLY_MOVEMENT_FORCE_ACK = 0x3E0033, + CMSG_MOVE_CHANGE_TRANSPORT = 0x3E004E, + CMSG_MOVE_CHANGE_VEHICLE_SEATS = 0x3E0053, + CMSG_MOVE_COLLISION_DISABLE_ACK = 0x3E0058, + CMSG_MOVE_COLLISION_ENABLE_ACK = 0x3E0059, + CMSG_MOVE_DISMISS_VEHICLE = 0x3E0052, + CMSG_MOVE_DOUBLE_JUMP = 0x3E0007, + CMSG_MOVE_ENABLE_DOUBLE_JUMP_ACK = 0x3E003C, + CMSG_MOVE_ENABLE_FULL_SPEED_TURNING_ACK = 0x3E0085, + CMSG_MOVE_ENABLE_SWIM_TO_FLY_TRANS_ACK = 0x3E0042, + CMSG_MOVE_FALL_LAND = 0x3E0017, + CMSG_MOVE_FALL_RESET = 0x3E0037, + CMSG_MOVE_FEATHER_FALL_ACK = 0x3E003A, + CMSG_MOVE_FORCE_FLIGHT_BACK_SPEED_CHANGE_ACK = 0x3E004D, + CMSG_MOVE_FORCE_FLIGHT_SPEED_CHANGE_ACK = 0x3E004C, + CMSG_MOVE_FORCE_GRAVITY_MODIFIER_CHANGE_ACK = 0x3E0022, + CMSG_MOVE_FORCE_PITCH_RATE_CHANGE_ACK = 0x3E0051, + CMSG_MOVE_FORCE_ROOT_ACK = 0x3E002C, + CMSG_MOVE_FORCE_RUN_BACK_SPEED_CHANGE_ACK = 0x3E002A, + CMSG_MOVE_FORCE_RUN_SPEED_CHANGE_ACK = 0x3E0029, + CMSG_MOVE_FORCE_SWIM_BACK_SPEED_CHANGE_ACK = 0x3E0040, + CMSG_MOVE_FORCE_SWIM_SPEED_CHANGE_ACK = 0x3E002B, + CMSG_MOVE_FORCE_TURN_RATE_CHANGE_ACK = 0x3E0041, + CMSG_MOVE_FORCE_UNROOT_ACK = 0x3E002D, + CMSG_MOVE_FORCE_WALK_SPEED_CHANGE_ACK = 0x3E003F, + CMSG_MOVE_GRAVITY_DISABLE_ACK = 0x3E0054, + CMSG_MOVE_GRAVITY_ENABLE_ACK = 0x3E0055, + CMSG_MOVE_GUILD_BANK_ITEM = 0x3B004C, + CMSG_MOVE_HEARTBEAT = 0x3E002E, + CMSG_MOVE_HOVER_ACK = 0x3E0031, + CMSG_MOVE_INERTIA_DISABLE_ACK = 0x3E0056, + CMSG_MOVE_INERTIA_ENABLE_ACK = 0x3E0057, + CMSG_MOVE_INITIAL_OBJECT_UPDATE_COMPLETE_ACK = 0x3E0084, + CMSG_MOVE_INIT_ACTIVE_MOVER_COMPLETE = 0x3E0065, + CMSG_MOVE_JUMP = 0x3E0006, + CMSG_MOVE_KNOCK_BACK_ACK = 0x3E0030, + CMSG_MOVE_REMOVE_INERTIA_ACK = 0x3E006E, + CMSG_MOVE_REMOVE_MOVEMENT_FORCES = 0x3E0035, + CMSG_MOVE_REMOVE_MOVEMENT_FORCE_ACK = 0x3E0034, + CMSG_MOVE_SET_ADV_FLY = 0x3E0071, + CMSG_MOVE_SET_ADV_FLYING_ADD_IMPULSE_MAX_SPEED_ACK = 0x3E0079, + CMSG_MOVE_SET_ADV_FLYING_AIR_FRICTION_ACK = 0x3E0074, + CMSG_MOVE_SET_ADV_FLYING_BANKING_RATE_ACK = 0x3E007A, + CMSG_MOVE_SET_ADV_FLYING_DOUBLE_JUMP_VEL_MOD_ACK = 0x3E0077, + CMSG_MOVE_SET_ADV_FLYING_GLIDE_START_MIN_HEIGHT_ACK = 0x3E0078, + CMSG_MOVE_SET_ADV_FLYING_LAUNCH_SPEED_COEFFICIENT_ACK = 0x3E0081, + CMSG_MOVE_SET_ADV_FLYING_LIFT_COEFFICIENT_ACK = 0x3E0076, + CMSG_MOVE_SET_ADV_FLYING_MAX_VEL_ACK = 0x3E0075, + CMSG_MOVE_SET_ADV_FLYING_OVER_MAX_DECELERATION_ACK = 0x3E007F, + CMSG_MOVE_SET_ADV_FLYING_PITCHING_RATE_DOWN_ACK = 0x3E007B, + CMSG_MOVE_SET_ADV_FLYING_PITCHING_RATE_UP_ACK = 0x3E007C, + CMSG_MOVE_SET_ADV_FLYING_SURFACE_FRICTION_ACK = 0x3E007E, + CMSG_MOVE_SET_ADV_FLYING_TURN_VELOCITY_THRESHOLD_ACK = 0x3E007D, + CMSG_MOVE_SET_CANNOT_SWIM_ACK = 0x3E0046, + CMSG_MOVE_SET_CAN_ADV_FLY_ACK = 0x3E0070, + CMSG_MOVE_SET_CAN_DRIVE_ACK = 0x3E0072, + CMSG_MOVE_SET_CAN_FLY_ACK = 0x3E0045, + CMSG_MOVE_SET_CAN_TURN_WHILE_FALLING_ACK = 0x3E0043, + CMSG_MOVE_SET_COLLISION_HEIGHT_ACK = 0x3E005A, + CMSG_MOVE_SET_FACING = 0x3E0027, + CMSG_MOVE_SET_FACING_HEARTBEAT = 0x3E0080, + CMSG_MOVE_SET_FLY = 0x3E0047, + CMSG_MOVE_SET_IGNORE_MOVEMENT_FORCES_ACK = 0x3E0044, + CMSG_MOVE_SET_MOD_MOVEMENT_FORCE_MAGNITUDE_ACK = 0x3E0061, + CMSG_MOVE_SET_PITCH = 0x3E0028, + CMSG_MOVE_SET_RUN_MODE = 0x3E000E, + CMSG_MOVE_SET_TURN_RATE_CHEAT = 0x3E0024, + CMSG_MOVE_SET_VEHICLE_REC_ID_ACK = 0x3E0032, + CMSG_MOVE_SET_WALK_MODE = 0x3E000F, + CMSG_MOVE_SPLINE_DONE = 0x3E0036, + CMSG_MOVE_START_ASCEND = 0x3E0048, + CMSG_MOVE_START_BACKWARD = 0x3E0001, + CMSG_MOVE_START_DESCEND = 0x3E004F, + CMSG_MOVE_START_DRIVE_FORWARD = 0x3E0073, + CMSG_MOVE_START_FORWARD = 0x3E0000, + CMSG_MOVE_START_PITCH_DOWN = 0x3E000C, + CMSG_MOVE_START_PITCH_UP = 0x3E000B, + CMSG_MOVE_START_STRAFE_LEFT = 0x3E0003, + CMSG_MOVE_START_STRAFE_RIGHT = 0x3E0004, + CMSG_MOVE_START_SWIM = 0x3E0018, + CMSG_MOVE_START_TURN_LEFT = 0x3E0008, + CMSG_MOVE_START_TURN_RIGHT = 0x3E0009, + CMSG_MOVE_STOP = 0x3E0002, + CMSG_MOVE_STOP_ASCEND = 0x3E0049, + CMSG_MOVE_STOP_PITCH = 0x3E000D, + CMSG_MOVE_STOP_STRAFE = 0x3E0005, + CMSG_MOVE_STOP_SWIM = 0x3E0019, + CMSG_MOVE_STOP_TURN = 0x3E000A, + CMSG_MOVE_TELEPORT_ACK = 0x3E0016, + CMSG_MOVE_TIME_SKIPPED = 0x3E0039, + CMSG_MOVE_UPDATE_FALL_SPEED = 0x3E0038, + CMSG_MOVE_WATER_WALK_ACK = 0x3E003B, + CMSG_MYTHIC_PLUS_REQUEST_MAP_STATS = 0x2C0001, + CMSG_NEIGHBORHOOD_ADD_SECONDARY_OWNER = 0x390002, + CMSG_NEIGHBORHOOD_BUY_HOUSE = 0x390009, + CMSG_NEIGHBORHOOD_CANCEL_INVITATION = 0x390005, + CMSG_NEIGHBORHOOD_CHARTER_ADD_SIGNATURE = 0x370006, + CMSG_NEIGHBORHOOD_CHARTER_CREATE = 0x370001, + CMSG_NEIGHBORHOOD_CHARTER_EDIT = 0x370003, + CMSG_NEIGHBORHOOD_CHARTER_FINALIZE = 0x370004, + CMSG_NEIGHBORHOOD_CHARTER_OPEN_CONFIRMATION_UI = 0x370000, + CMSG_NEIGHBORHOOD_CHARTER_SEND_SIGNATURE_REQUEST = 0x370007, + CMSG_NEIGHBORHOOD_EVICT_PLOT = 0x39000F, + CMSG_NEIGHBORHOOD_GET_INVITES = 0x390008, + CMSG_NEIGHBORHOOD_GET_ROSTER = 0x39000E, + CMSG_NEIGHBORHOOD_INITIATIVE_SERVICE_STATUS_CHECK = 0x380000, + CMSG_NEIGHBORHOOD_INVITE_RESIDENT = 0x390004, + CMSG_NEIGHBORHOOD_MOVE_HOUSE = 0x39000A, + CMSG_NEIGHBORHOOD_OFFER_OWNERSHIP = 0x39000D, + CMSG_NEIGHBORHOOD_OPEN_CORNERSTONE_UI = 0x39000B, + CMSG_NEIGHBORHOOD_PLAYER_DECLINE_INVITE = 0x390006, + CMSG_NEIGHBORHOOD_PLAYER_GET_INVITE = 0x390007, + CMSG_NEIGHBORHOOD_REMOVE_SECONDARY_OWNER = 0x390003, + CMSG_NEIGHBORHOOD_SET_PUBLIC_FLAG = 0x390001, + CMSG_NEIGHBORHOOD_UPDATE_NAME = 0x390000, + CMSG_NEUTRAL_PLAYER_SELECT_FACTION = 0x3A008A, + CMSG_NEXT_CINEMATIC_CAMERA = 0x3B00E3, + CMSG_NPC_CRAFTING_ORDER_REQUEST = 0x3B012D, + CMSG_OBJECT_UPDATE_FAILED = 0x3A002C, + CMSG_OBJECT_UPDATE_RESCUED = 0x3A002D, + CMSG_OFFER_PETITION = 0x3A0291, + CMSG_OPENING_CINEMATIC = 0x3B00E2, + CMSG_OPEN_ITEM = 0x3A0219, + CMSG_OPEN_MISSION_NPC = 0x3A01DA, + CMSG_OPEN_SHIPMENT_NPC = 0x3A01E2, + CMSG_OPEN_TRADESKILL_NPC = 0x3A01ED, + CMSG_OPT_OUT_OF_LOOT = 0x3B008E, + CMSG_OVERRIDE_SCREEN_FLASH = 0x3B00B8, + CMSG_PARTY_INVITE = 0x400030, + CMSG_PARTY_INVITE_RESPONSE = 0x400032, + CMSG_PARTY_UNINVITE = 0x400073, + CMSG_PERFORM_ITEM_INTERACTION = 0x3A00F4, + CMSG_PERKS_PROGRAM_GET_RECENT_PURCHASES = 0x290018, + CMSG_PERKS_PROGRAM_ITEMS_REFRESHED = 0x3A02B9, + CMSG_PERKS_PROGRAM_REQUEST_CART_CHECKOUT = 0x3A02BC, + CMSG_PERKS_PROGRAM_REQUEST_PENDING_REWARDS = 0x290017, + CMSG_PERKS_PROGRAM_REQUEST_PURCHASE = 0x3A02BB, + CMSG_PERKS_PROGRAM_REQUEST_REFUND = 0x3A02BD, + CMSG_PERKS_PROGRAM_SET_FROZEN_VENDOR_ITEM = 0x3A02BE, + CMSG_PERKS_PROGRAM_STATUS_REQUEST = 0x3A02BA, + CMSG_PETITION_BUY = 0x3B005A, + CMSG_PETITION_RENAME_GUILD = 0x4000F8, + CMSG_PETITION_SHOW_LIST = 0x3B0059, + CMSG_PETITION_SHOW_SIGNATURES = 0x3B005B, + CMSG_PET_ABANDON = 0x3B001E, + CMSG_PET_ABANDON_BY_NUMBER = 0x3B001F, + CMSG_PET_ACTION = 0x3B001C, + CMSG_PET_BATTLE_FINAL_NOTIFY = 0x3A0099, + CMSG_PET_BATTLE_INPUT = 0x40006D, + CMSG_PET_BATTLE_QUEUE_PROPOSE_MATCH_RESULT = 0x3A00EA, + CMSG_PET_BATTLE_QUIT_NOTIFY = 0x3A0098, + CMSG_PET_BATTLE_REPLACE_FRONT_PET = 0x40006E, + CMSG_PET_BATTLE_REQUEST_PVP = 0x3A0092, + CMSG_PET_BATTLE_REQUEST_UPDATE = 0x3A0093, + CMSG_PET_BATTLE_REQUEST_WILD = 0x3A0090, + CMSG_PET_BATTLE_SCRIPT_ERROR_NOTIFY = 0x3A009A, + CMSG_PET_CANCEL_AURA = 0x3B0020, + CMSG_PET_CAST_SPELL = 0x3A017B, + CMSG_PET_RENAME = 0x4000B0, + CMSG_PET_SET_ACTION = 0x3B001B, + CMSG_PET_SPELL_AUTOCAST = 0x3B0021, + CMSG_PET_STOP_ATTACK = 0x3B001D, + CMSG_PING = 0x410006, + CMSG_PLAYER_LOGIN = 0x400016, + CMSG_PUSH_QUEST_TO_PARTY = 0x3B0031, + CMSG_PVP_LOG_DATA = 0x3A0028, + CMSG_QUERY_BATTLE_PET_NAME = 0x3A014F, + CMSG_QUERY_CORPSE_LOCATION_FROM_CLIENT = 0x40008C, + CMSG_QUERY_CORPSE_TRANSPORT = 0x40008D, + CMSG_QUERY_COUNTDOWN_TIMER = 0x3A005B, + CMSG_QUERY_CREATURE = 0x3A0149, + CMSG_QUERY_GAME_OBJECT = 0x3A014A, + CMSG_QUERY_GARRISON_PET_NAME = 0x3A0150, + CMSG_QUERY_GUILD_INFO = 0x4000B6, + CMSG_QUERY_INSPECT_ACHIEVEMENTS = 0x3B0098, + CMSG_QUERY_NEIGHBORHOOD_INFO = 0x4000B7, + CMSG_QUERY_NEXT_MAIL_TIME = 0x3B00D8, + CMSG_QUERY_NPC_TEXT = 0x3A014B, + CMSG_QUERY_PAGE_TEXT = 0x3A014D, + CMSG_QUERY_PETITION = 0x3A0151, + CMSG_QUERY_PET_NAME = 0x3A014E, + CMSG_QUERY_PLAYER_NAMES = 0x410010, + CMSG_QUERY_PLAYER_NAMES_FOR_COMMUNITY = 0x41000E, + CMSG_QUERY_PLAYER_NAME_BY_COMMUNITY_ID = 0x41000D, + CMSG_QUERY_QUEST_COMPLETION_NPCS = 0x3A0021, + CMSG_QUERY_QUEST_INFO = 0x3A014C, + CMSG_QUERY_QUEST_ITEM_USABILITY = 0x3A0022, + CMSG_QUERY_REALM_NAME = 0x4000B5, + CMSG_QUERY_SCENARIO_POI = 0x400082, + CMSG_QUERY_SELECTED_WOW_LABS_AREA = 0x3A02F6, + CMSG_QUERY_TIME = 0x3B006E, + CMSG_QUERY_TREASURE_PICKER = 0x3A023D, + CMSG_QUERY_WOW_LABS_AREA_INFO = 0x3A02F7, + CMSG_QUEST_CONFIRM_ACCEPT = 0x3B0030, + CMSG_QUEST_DRIVEN_SCENARIO_STATE_CHANGE = 0x3A02F2, + CMSG_QUEST_GIVER_ACCEPT_QUEST = 0x3B002A, + CMSG_QUEST_GIVER_CHOOSE_REWARD = 0x3B002C, + CMSG_QUEST_GIVER_CLOSE_QUEST = 0x3B00E9, + CMSG_QUEST_GIVER_COMPLETE_QUEST = 0x3B002B, + CMSG_QUEST_GIVER_HELLO = 0x3B0028, + CMSG_QUEST_GIVER_QUERY_QUEST = 0x3B0029, + CMSG_QUEST_GIVER_REQUEST_REWARD = 0x3B002D, + CMSG_QUEST_GIVER_STATUS_MULTIPLE_QUERY = 0x3B002F, + CMSG_QUEST_GIVER_STATUS_QUERY = 0x3B002E, + CMSG_QUEST_LOG_REMOVE_QUEST = 0x3B00CD, + CMSG_QUEST_POI_QUERY = 0x4000DE, + CMSG_QUEST_PUSH_RESULT = 0x3B0032, + CMSG_QUEST_SESSION_BEGIN_RESPONSE = 0x3A0283, + CMSG_QUEST_SESSION_REQUEST_START = 0x3A0282, + CMSG_QUEST_SESSION_REQUEST_STOP = 0x40015B, + CMSG_QUEUED_MESSAGES_END = 0x41000A, + CMSG_QUICK_JOIN_AUTO_ACCEPT_REQUESTS = 0x400132, + CMSG_QUICK_JOIN_REQUEST_INVITE = 0x400131, + CMSG_QUICK_JOIN_REQUEST_INVITE_WITH_CONFIRMATION = 0x400160, + CMSG_QUICK_JOIN_RESPOND_TO_INVITE = 0x400130, + CMSG_QUICK_JOIN_SIGNAL_TOAST_DISPLAYED = 0x40012F, + CMSG_RAF_CLAIM_ACTIVITY_REWARD = 0x3B009C, + CMSG_RAF_CLAIM_NEXT_REWARD = 0x400151, + CMSG_RAF_GENERATE_RECRUITMENT_LINK = 0x400153, + CMSG_RAF_RECRUIT_PRESENCE_SUBSCRIBE = 0x400127, + CMSG_RAF_UPDATE_RECRUITMENT_INFO = 0x400152, + CMSG_RANDOM_ROLL = 0x400080, + CMSG_READY_CHECK_RESPONSE = 0x40005F, + CMSG_READ_ITEM = 0x3A021A, + CMSG_RECENT_ALLY_REQUEST_DATA = 0x400198, + CMSG_RECENT_ALLY_SET_NOTE = 0x400199, + CMSG_RECLAIM_CORPSE = 0x3B0073, + CMSG_REFRESH_ENTITLEMENTS_ON_ORDER_COMPLETE = 0x40019C, + CMSG_REGISTER_FAST_LOGIN = 0x400172, + CMSG_REMOVE_NEW_ITEM = 0x3A0241, + CMSG_REMOVE_RAF_RECRUIT = 0x400154, + CMSG_REORDER_CHARACTERS = 0x400015, + CMSG_REPAIR_ITEM = 0x3B0084, + CMSG_REPLACE_TROPHY = 0x3A01FB, + CMSG_REPOP_REQUEST = 0x3B00C5, + CMSG_REPORT_PVP_PLAYER_AFK = 0x3B008C, + CMSG_REPORT_SERVER_LAG = 0x3A027B, + CMSG_REPORT_STUCK_IN_COMBAT = 0x3A027C, + CMSG_REQUEST_ACCOUNT_DATA = 0x4000C3, + CMSG_REQUEST_AREA_POI_UPDATE = 0x3A023F, + CMSG_REQUEST_BATTLEFIELD_STATUS = 0x400008, + CMSG_REQUEST_CEMETERY_LIST = 0x3A0023, + CMSG_REQUEST_CHARACTER_GUILD_FOLLOW_INFO = 0x4000B8, + CMSG_REQUEST_CHAT_LOGIN = 0x400028, + CMSG_REQUEST_COVENANT_CALLINGS = 0x3A026D, + CMSG_REQUEST_CROWD_CONTROL_SPELL = 0x3B00C9, + CMSG_REQUEST_CURRENCY_DATA_FOR_ACCOUNT_CHARACTERS = 0x29001E, + CMSG_REQUEST_GARRISON_TALENT_WORLD_QUEST_UNLOCKS = 0x3A02A6, + CMSG_REQUEST_GUILD_PARTY_STATE = 0x3A005A, + CMSG_REQUEST_GUILD_REWARDS_LIST = 0x3A0059, + CMSG_REQUEST_INSTANCE_ENCOUNTER_EVENT_SYNC = 0x3A019A, + CMSG_REQUEST_LATEST_SPLASH_SCREEN = 0x3A027D, + CMSG_REQUEST_LFG_LIST_BLACKLIST = 0x3A0187, + CMSG_REQUEST_MYTHIC_PLUS_AFFIXES = 0x3A00BF, + CMSG_REQUEST_MYTHIC_PLUS_SEASON_DATA = 0x3A00C0, + CMSG_REQUEST_PARTY_ELIGIBILITY_FOR_DELVE_TIERS = 0x3A02F3, + CMSG_REQUEST_PARTY_JOIN_UPDATES = 0x400023, + CMSG_REQUEST_PARTY_MEMBER_STATS = 0x40007F, + CMSG_REQUEST_PET_INFO = 0x3B0022, + CMSG_REQUEST_PLAYED_TIME = 0x3A0154, + CMSG_REQUEST_PVP_REWARDS = 0x3A0041, + CMSG_REQUEST_RAID_INFO = 0x4000F9, + CMSG_REQUEST_RATED_PVP_INFO = 0x40000F, + CMSG_REQUEST_REALM_GUILD_MASTER_INFO = 0x400196, + CMSG_REQUEST_SCHEDULED_AREA_POI_UPDATE = 0x3A0240, + CMSG_REQUEST_SCHEDULED_PVP_INFO = 0x3A0042, + CMSG_REQUEST_STABLED_PETS = 0x3B0023, + CMSG_REQUEST_STORE_FRONT_INFO_UPDATE = 0x290023, + CMSG_REQUEST_SURVEY = 0x3A0309, + CMSG_REQUEST_TREASURE_PUNCH_LIST_ITEMS = 0x3A030D, + CMSG_REQUEST_VEHICLE_EXIT = 0x3A0106, + CMSG_REQUEST_VEHICLE_NEXT_SEAT = 0x3A0108, + CMSG_REQUEST_VEHICLE_PREV_SEAT = 0x3A0107, + CMSG_REQUEST_VEHICLE_SWITCH_SEAT = 0x3A0109, + CMSG_REQUEST_WEEKLY_REWARDS = 0x3A0270, + CMSG_REQUEST_WORLD_QUEST_UPDATE = 0x3A023E, + CMSG_RESET_CHALLENGE_MODE = 0x3A00BD, + CMSG_RESET_CHALLENGE_MODE_CHEAT = 0x3A00BE, + CMSG_RESET_INSTANCES = 0x400094, + CMSG_RESURRECT_RESPONSE = 0x4000AF, + CMSG_REVERT_MONUMENT_APPEARANCE = 0x3A01FD, + CMSG_RIDE_VEHICLE_INTERACT = 0x3A010A, + CMSG_SAVE_ACCOUNT_DATA_EXPORT = 0x40017B, + CMSG_SAVE_CUF_PROFILES = 0x3A0037, + CMSG_SAVE_EQUIPMENT_SET = 0x3B00A2, + CMSG_SAVE_GUILD_EMBLEM = 0x3A018C, + CMSG_SAVE_PERSONAL_EMBLEM = 0x3A018D, + CMSG_SCENE_PLAYBACK_CANCELED = 0x3A00E6, + CMSG_SCENE_PLAYBACK_COMPLETE = 0x3A00E5, + CMSG_SCENE_TRIGGER_EVENT = 0x3A00E7, + CMSG_SEAMLESS_TRANSFER_COMPLETE = 0x3A02E2, + CMSG_SELECT_WOW_LABS_AREA = 0x3A02F8, + CMSG_SELF_RES = 0x3B00D0, + CMSG_SELL_ALL_JUNK_ITEMS = 0x3B0035, + CMSG_SELL_ITEM = 0x3B0034, + CMSG_SEND_CHARACTER_CLUB_INVITATION = 0x400128, + CMSG_SEND_CONTACT_LIST = 0x4000FF, + CMSG_SEND_MAIL = 0x400026, + CMSG_SEND_PING_UNIT = 0x3A02E4, + CMSG_SEND_PING_WORLD_POINT = 0x3A02E5, + CMSG_SEND_TEXT_EMOTE = 0x3B0019, + CMSG_SERVER_TIME_OFFSET_REQUEST = 0x4000CA, + CMSG_SERVER_VALIDATION_SIGNATURE_REQUEST = 0x400197, + CMSG_SETUP_WARBAND_GROUPS = 0x40018F, + CMSG_SET_ACTION_BAR_TOGGLES = 0x3B00D1, + CMSG_SET_ACTION_BUTTON = 0x400062, + CMSG_SET_ACTIVE_MOVER = 0x3E005B, + CMSG_SET_ADVANCED_COMBAT_LOGGING = 0x3A019B, + CMSG_SET_ALLOW_RECENT_ALLIES_SEE_LOCATION = 0x3A030B, + CMSG_SET_ASSISTANT_LEADER = 0x40007B, + CMSG_SET_BACKPACK_AUTOSORT_DISABLED = 0x3A021D, + CMSG_SET_BACKPACK_SELL_JUNK_DISABLED = 0x3A021E, + CMSG_SET_BANK_AUTOSORT_DISABLED = 0x3A021F, + CMSG_SET_CONTACT_NOTES = 0x400102, + CMSG_SET_CURRENCY_FLAGS = 0x3A0015, + CMSG_SET_DIFFICULTY_ID = 0x3A00E8, + CMSG_SET_DUNGEON_DIFFICULTY = 0x4000AE, + CMSG_SET_EMPOWER_MIN_HOLD_STAGE_PERCENT = 0x3A0143, + CMSG_SET_EVERYONE_IS_ASSISTANT = 0x400046, + CMSG_SET_EXCLUDED_CHAT_CENSOR_SOURCES = 0x400133, + CMSG_SET_FACTION_AT_WAR = 0x3B0076, + CMSG_SET_FACTION_INACTIVE = 0x3B0078, + CMSG_SET_FACTION_NOT_AT_WAR = 0x3B0077, + CMSG_SET_GAME_EVENT_DEBUG_VIEW_STATE = 0x3A006B, + CMSG_SET_INSERT_ITEMS_LEFT_TO_RIGHT = 0x3A0221, + CMSG_SET_LOOT_METHOD = 0x400074, + CMSG_SET_LOOT_SPECIALIZATION = 0x3B00DE, + CMSG_SET_PARTY_ASSIGNMENT = 0x40007D, + CMSG_SET_PARTY_LEADER = 0x400076, + CMSG_SET_PET_FAVORITE = 0x3A0012, + CMSG_SET_PET_SLOT = 0x3A0011, + CMSG_SET_PET_SPECIALIZATION = 0x3A0013, + CMSG_SET_PLAYER_DECLINED_NAMES = 0x4000B4, + CMSG_SET_PREFERRED_CEMETERY = 0x3A0024, + CMSG_SET_PVP = 0x3A0191, + CMSG_SET_RAID_DIFFICULTY = 0x40010B, + CMSG_SET_RESTRICT_PINGS_TO_ASSISTANTS = 0x400047, + CMSG_SET_ROLE = 0x400005, + CMSG_SET_SAVED_INSTANCE_EXTEND = 0x4000B2, + CMSG_SET_SELECTION = 0x3B00C7, + CMSG_SET_SHEATHED = 0x3B001A, + CMSG_SET_SORT_BAGS_RIGHT_TO_LEFT = 0x3A0220, + CMSG_SET_STOP_CONVERSATION = 0x3A0226, + CMSG_SET_TAXI_BENCHMARK_MODE = 0x3B008B, + CMSG_SET_TITLE = 0x3A015A, + CMSG_SET_TRADE_CURRENCY = 0x3A000A, + CMSG_SET_TRADE_GOLD = 0x3A0009, + CMSG_SET_TRADE_ITEM = 0x3A0007, + CMSG_SET_USING_PARTY_GARRISON = 0x3A01DC, + CMSG_SET_WAR_MODE = 0x3A0192, + CMSG_SET_WATCHED_FACTION = 0x3B0079, + CMSG_SHOW_TRADE_SKILL = 0x4000F1, + CMSG_SIGN_PETITION = 0x3B00D2, + CMSG_SILENCE_PARTY_TALKER = 0x40007E, + CMSG_SOCIAL_CONTRACT_REQUEST = 0x400176, + CMSG_SOCKET_GEMS = 0x3B0083, + CMSG_SORT_ACCOUNT_BANK_BAGS = 0x3A02E8, + CMSG_SORT_BAGS = 0x3A0222, + CMSG_SORT_BANK_BAGS = 0x3A0223, + CMSG_SPAWN_TRACKING_UPDATE = 0x3A016F, + CMSG_SPECTATE_CHANGE = 0x3A02DB, + CMSG_SPELL_CLICK = 0x3B0027, + CMSG_SPELL_EMPOWER_RELEASE = 0x3A0141, + CMSG_SPELL_EMPOWER_RESTART = 0x3A0142, + CMSG_SPIRIT_HEALER_ACTIVATE = 0x3B0042, + CMSG_SPLIT_GUILD_BANK_ITEM = 0x3B0053, + CMSG_SPLIT_GUILD_BANK_ITEM_TO_INVENTORY = 0x3B0050, + CMSG_SPLIT_ITEM = 0x3D0008, + CMSG_SPLIT_ITEM_TO_GUILD_BANK = 0x3B004E, + CMSG_STAND_STATE_CHANGE = 0x3A0035, + CMSG_START_CHALLENGE_MODE = 0x3B00EA, + CMSG_START_INSTANCE_ABANDON_VOTE = 0x400060, + CMSG_START_SPECTATOR_WAR_GAME = 0x40000B, + CMSG_START_WAR_GAME = 0x40000A, + CMSG_STORE_GUILD_BANK_ITEM = 0x3B0049, + CMSG_SUBMIT_USER_FEEDBACK = 0x4000C2, + CMSG_SUBSCRIPTION_INTERSTITIAL_RESPONSE = 0x3A029B, + CMSG_SUMMON_RESPONSE = 0x400096, + CMSG_SUPPORT_TICKET_SUBMIT_COMPLAINT = 0x400072, + CMSG_SURRENDER_ARENA = 0x3A0020, + CMSG_SUSPEND_COMMS_ACK = 0x410000, + CMSG_SUSPEND_TOKEN_RESPONSE = 0x410008, + CMSG_SWAP_GUILD_BANK_ITEM_WITH_GUILD_BANK_ITEM = 0x3B004B, + CMSG_SWAP_INV_ITEM = 0x3D0007, + CMSG_SWAP_ITEM = 0x3D0006, + CMSG_SWAP_ITEM_WITH_GUILD_BANK_ITEM = 0x3B004A, + CMSG_SWAP_SUB_GROUPS = 0x400079, + CMSG_TABARD_VENDOR_ACTIVATE = 0x3A018E, + CMSG_TALK_TO_GOSSIP = 0x3B0024, + CMSG_TAXI_NODE_STATUS_QUERY = 0x3B003B, + CMSG_TAXI_QUERY_AVAILABLE_NODES = 0x3B003D, + CMSG_TAXI_REQUEST_EARLY_LANDING = 0x3B003F, + CMSG_TIME_ADJUSTMENT_RESPONSE = 0x3E005F, + CMSG_TIME_SYNC_RESPONSE = 0x3E005C, + CMSG_TIME_SYNC_RESPONSE_DROPPED = 0x3E005E, + CMSG_TIME_SYNC_RESPONSE_FAILED = 0x3E005D, + CMSG_TOGGLE_DIFFICULTY = 0x400083, + CMSG_TOGGLE_PVP = 0x3A0190, + CMSG_TOTEM_DESTROYED = 0x3B0090, + CMSG_TOY_CLEAR_FANFARE = 0x290004, + CMSG_TRADE_SKILL_SET_FAVORITE = 0x3A023C, + CMSG_TRAINER_BUY_SPELL = 0x3B0041, + CMSG_TRAINER_LIST = 0x3B0040, + CMSG_TRAINING_GROUNDS_JOIN = 0x3B00C3, + CMSG_TRAITS_COMMIT_CONFIG = 0x3A02C4, + CMSG_TRAITS_TALENT_TEST_UNLEARN_SPELLS = 0x3A02C2, + CMSG_TRANSFER_CURRENCY_FROM_ACCOUNT_CHARACTER = 0x3A02F1, + CMSG_TRANSMOG_OUTFIT_NEW = 0x3A0044, + CMSG_TRANSMOG_OUTFIT_UPDATE_INFO = 0x3A0045, + CMSG_TRANSMOG_OUTFIT_UPDATE_SITUATIONS = 0x3A0046, + CMSG_TRANSMOG_OUTFIT_UPDATE_SLOTS = 0x3A0047, + CMSG_TURN_IN_PETITION = 0x3B00D4, + CMSG_TUTORIAL = 0x40010C, + CMSG_UI_MAP_QUEST_LINES_REQUEST = 0x3A026C, + CMSG_UNACCEPT_TRADE = 0x3A0005, + CMSG_UNDELETE_CHARACTER = 0x40010E, + CMSG_UNLEARN_SKILL = 0x3B007D, + CMSG_UNLEARN_SPECIALIZATION = 0x3A0057, + CMSG_UPDATE_AADC_STATUS = 0x400166, + CMSG_UPDATE_ACCOUNT_BANK_TAB_SETTINGS = 0x3B012B, + CMSG_UPDATE_ACCOUNT_DATA = 0x4000C4, + CMSG_UPDATE_AREA_TRIGGER_VISUAL = 0x3A017E, + CMSG_UPDATE_CRAFTING_NPC_RECIPES = 0x3A01EE, + CMSG_UPDATE_LAST_CATALOG_FETCH = 0x290035, + CMSG_UPDATE_MISSILE_TRAJECTORY = 0x3E0062, + CMSG_UPDATE_RAID_TARGET = 0x40007C, + CMSG_UPDATE_SPELL_VISUAL = 0x3A017D, + CMSG_UPDATE_VAS_PURCHASE_STATES = 0x400123, + CMSG_UPGRADE_GARRISON = 0x3A01A3, + CMSG_UPGRADE_RUNEFORGE_LEGENDARY = 0x3A0299, + CMSG_USED_FOLLOW = 0x3A0032, + CMSG_USE_CRITTER_ITEM = 0x3A0110, + CMSG_USE_EQUIPMENT_SET = 0x3D0001, + CMSG_USE_ITEM = 0x3A0177, + CMSG_USE_TOY = 0x3A017A, + CMSG_VAS_CHECK_TRANSFER_OK = 0x400139, + CMSG_VAS_GET_QUEUE_MINUTES = 0x400138, + CMSG_VAS_GET_SERVICE_STATUS = 0x400137, + CMSG_VIOLENCE_LEVEL = 0x3A0030, + CMSG_VOICE_CHANNEL_STT_TOKEN_REQUEST = 0x40013D, + CMSG_VOICE_CHAT_JOIN_CHANNEL = 0x40013E, + CMSG_VOICE_CHAT_LOGIN = 0x40013C, + CMSG_WARDEN3_DATA = 0x400018, + CMSG_WHO = 0x4000AD, + CMSG_WHO_IS = 0x4000AC, + CMSG_WORLD_LOOT_OBJECT_CLICK = 0x3A02DE, + CMSG_WORLD_PORT_RESPONSE = 0x400025, + CMSG_WRAP_ITEM = 0x3D0000, + + CMSG_BATTLE_PET_DELETE_PET_CHEAT = CMSG_BATTLE_PET_DELETE_PET + 1, + CMSG_PET_BATTLE_WILD_LOCATION_FAIL = CMSG_PET_BATTLE_REQUEST_WILD + 1, + + // Deleted opcodes, here only to allow compile + CMSG_TRANSMOGRIFY_ITEMS = CMSG_REQUEST_SCHEDULED_PVP_INFO + 1, }; -inline constexpr std::size_t NUM_CMSG_OPCODES = 1881; +inline constexpr std::size_t NUM_CMSG_OPCODES = 1934; inline constexpr std::ptrdiff_t GetOpcodeArrayIndex(OpcodeClient opcode) { uint32 idInGroup = opcode & 0xFFFF; switch (opcode >> 16) { - case 0x29: return idInGroup < 35 ? idInGroup + 0 : -1; - case 0x2B: return idInGroup < 51 ? idInGroup + 35 : -1; - case 0x2C: return idInGroup < 3 ? idInGroup + 86 : -1; - case 0x2D: return idInGroup < 39 ? idInGroup + 89 : -1; - case 0x2E: return idInGroup < 2 ? idInGroup + 128 : -1; - case 0x2F: return idInGroup < 2 ? idInGroup + 130 : -1; - case 0x30: return idInGroup < 17 ? idInGroup + 132 : -1; - case 0x31: return idInGroup < 8 ? idInGroup + 149 : -1; - case 0x32: return idInGroup < 9 ? idInGroup + 157 : -1; - case 0x33: return idInGroup < 37 ? idInGroup + 166 : -1; - case 0x35: return idInGroup < 9 ? idInGroup + 203 : -1; - case 0x37: return idInGroup < 8 ? idInGroup + 212 : -1; - case 0x38: return idInGroup < 16 ? idInGroup + 220 : -1; - case 0x39: return idInGroup < 768 ? idInGroup + 236 : -1; - case 0x3A: return idInGroup < 304 ? idInGroup + 1004 : -1; - case 0x3B: return idInGroup < 10 ? idInGroup + 1308 : -1; - case 0x3C: return idInGroup < 132 ? idInGroup + 1318 : -1; - case 0x3E: return idInGroup < 413 ? idInGroup + 1450 : -1; - case 0x3F: return idInGroup < 18 ? idInGroup + 1863 : -1; + case 0x29: return idInGroup < 55 ? idInGroup + 0 : -1; + case 0x2B: return idInGroup < 51 ? idInGroup + 55 : -1; + case 0x2C: return idInGroup < 3 ? idInGroup + 106 : -1; + case 0x2D: return idInGroup < 39 ? idInGroup + 109 : -1; + case 0x2E: return idInGroup < 2 ? idInGroup + 148 : -1; + case 0x2F: return idInGroup < 2 ? idInGroup + 150 : -1; + case 0x30: return idInGroup < 17 ? idInGroup + 152 : -1; + case 0x31: return idInGroup < 8 ? idInGroup + 169 : -1; + case 0x32: return idInGroup < 9 ? idInGroup + 177 : -1; + case 0x33: return idInGroup < 36 ? idInGroup + 186 : -1; + case 0x35: return idInGroup < 9 ? idInGroup + 222 : -1; + case 0x37: return idInGroup < 8 ? idInGroup + 231 : -1; + case 0x38: return idInGroup < 16 ? idInGroup + 239 : -1; + case 0x39: return idInGroup < 16 ? idInGroup + 255 : -1; + case 0x3A: return idInGroup < 782 ? idInGroup + 271 : -1; + case 0x3B: return idInGroup < 305 ? idInGroup + 1053 : -1; + case 0x3C: return idInGroup < 1 ? idInGroup + 1358 : -1; + case 0x3D: return idInGroup < 10 ? idInGroup + 1359 : -1; + case 0x3E: return idInGroup < 134 ? idInGroup + 1369 : -1; + case 0x40: return idInGroup < 413 ? idInGroup + 1503 : -1; + case 0x41: return idInGroup < 18 ? idInGroup + 1916 : -1; default: return -1; } } enum OpcodeServer : uint32 { - SMSG_ABORT_NEW_WORLD = 0x400030, - SMSG_ACCOUNT_CHARACTER_CURRENCY_LISTS = 0x40034B, - SMSG_ACCOUNT_CONVERSION_STATE_UPDATE = 0x400350, - SMSG_ACCOUNT_COSMETIC_ADDED = 0x400304, - SMSG_ACCOUNT_CRITERIA_UPDATE = 0x4002EC, - SMSG_ACCOUNT_DATA_TIMES = 0x4001AD, - SMSG_ACCOUNT_EXPORT_RESPONSE = 0x40033C, - SMSG_ACCOUNT_HEIRLOOM_UPDATE = 0x400049, - SMSG_ACCOUNT_HOUSING_FIXTURE_ADDED = 0x400050, - SMSG_ACCOUNT_HOUSING_ROOM_ADDED = 0x40004F, - SMSG_ACCOUNT_HOUSING_ROOM_COMPONENT_TEXTURE_ADDED = 0x400052, - SMSG_ACCOUNT_HOUSING_THEME_ADDED = 0x400051, - SMSG_ACCOUNT_ITEM_COLLECTION_DATA = 0x400356, - SMSG_ACCOUNT_MOUNT_REMOVED = 0x400047, - SMSG_ACCOUNT_MOUNT_UPDATE = 0x400046, - SMSG_ACCOUNT_NOTIFICATIONS_RESPONSE = 0x400303, - SMSG_ACCOUNT_STORE_CURRENCY_UPDATE = 0x400325, - SMSG_ACCOUNT_STORE_FRONT_UPDATE = 0x400326, - SMSG_ACCOUNT_STORE_ITEM_STATE_CHANGED = 0x400327, - SMSG_ACCOUNT_STORE_RESULT = 0x400328, - SMSG_ACCOUNT_TOY_UPDATE = 0x400048, - SMSG_ACCOUNT_TRANSMOG_SET_FAVORITES_UPDATE = 0x40004C, - SMSG_ACCOUNT_TRANSMOG_UPDATE = 0x40004B, - SMSG_ACCOUNT_WARBAND_SCENE_UPDATE = 0x40004E, - SMSG_ACHIEVEMENT_DELETED = 0x40018A, - SMSG_ACHIEVEMENT_EARNED = 0x4000E5, - SMSG_ACTIVATE_ESSENCE_FAILED = 0x5C0021, - SMSG_ACTIVATE_SOULBIND_FAILED = 0x5C0023, - SMSG_ACTIVATE_TAXI_REPLY = 0x400121, - SMSG_ACTIVE_GLYPHS = 0x5F0045, - SMSG_ACTIVE_SCHEDULED_WORLD_STATE_INFO = 0x4001E8, - SMSG_ADDON_LIST_REQUEST = 0x4000E4, - SMSG_ADD_BATTLENET_FRIEND_RESPONSE = 0x4000DF, - SMSG_ADD_ITEM_PASSIVE = 0x400042, - SMSG_ADD_LOSS_OF_CONTROL = 0x400114, - SMSG_ADD_RUNE_POWER = 0x40015B, - SMSG_ADJUST_SPLINE_DURATION = 0x40006D, - SMSG_ADVANCED_COMBAT_LOG = 0x400301, - SMSG_ADVENTURE_JOURNAL_DATA_RESPONSE = 0x4002FC, - SMSG_AE_LOOT_TARGETS = 0x4000BA, - SMSG_AE_LOOT_TARGET_ACK = 0x4000BB, - SMSG_AI_REACTION = 0x400158, - SMSG_ALLIED_RACE_DETAILS = 0x400295, - SMSG_ALL_ACCOUNT_CRITERIA = 0x400005, - SMSG_ALL_ACHIEVEMENT_DATA = 0x400004, - SMSG_ALL_GUILD_ACHIEVEMENTS = 0x4C0000, - SMSG_APPLY_MOUNT_EQUIPMENT_RESULT = 0x4002D9, - SMSG_ARCHAEOLOGY_SURVERY_CAST = 0x40001D, - SMSG_AREA_POI_UPDATE_RESPONSE = 0x5C0019, - SMSG_AREA_SPIRIT_HEALER_TIME = 0x4001E1, - SMSG_AREA_TRIGGER_DENIED = 0x410004, - SMSG_AREA_TRIGGER_NO_CORPSE = 0x4001B9, - SMSG_AREA_TRIGGER_PLAY_SPELL_VISUAL = 0x410002, - SMSG_AREA_TRIGGER_UPDATE_DECAL_PROPERTIES = 0x410003, - SMSG_ARENA_CLEAR_OPPONENTS = 0x4000EB, - SMSG_ARENA_CROWD_CONTROL_SPELL_RESULT = 0x4000D4, - SMSG_ARENA_PREP_OPPONENT_SPECIALIZATIONS = 0x4000EA, - SMSG_ARTIFACT_ENDGAME_POWERS_REFUNDED = 0x400243, - SMSG_ARTIFACT_FORGE_ERROR = 0x400241, - SMSG_ARTIFACT_RESPEC_PROMPT = 0x400242, - SMSG_ARTIFACT_XP_GAIN = 0x400288, - SMSG_ATTACKER_STATE_UPDATE = 0x46002C, - SMSG_ATTACK_START = 0x460017, - SMSG_ATTACK_STOP = 0x460018, - SMSG_ATTACK_SWING_ERROR = 0x460026, - SMSG_ATTACK_SWING_LANDED_LOG = 0x460027, - SMSG_AUCTIONABLE_TOKEN_AUCTION_SOLD = 0x400271, - SMSG_AUCTIONABLE_TOKEN_SELL_AT_MARKET_PRICE_RESPONSE = 0x400270, - SMSG_AUCTIONABLE_TOKEN_SELL_CONFIRM_REQUIRED = 0x40026F, - SMSG_AUCTION_CLOSED_NOTIFICATION = 0x400195, - SMSG_AUCTION_COMMAND_RESULT = 0x400192, - SMSG_AUCTION_DISABLE_NEW_POSTINGS = 0x400329, - SMSG_AUCTION_FAVORITE_LIST = 0x4002F3, - SMSG_AUCTION_GET_COMMODITY_QUOTE_RESULT = 0x4002EB, - SMSG_AUCTION_HELLO_RESPONSE = 0x400190, - SMSG_AUCTION_LIST_BIDDED_ITEMS_RESULT = 0x4002EA, - SMSG_AUCTION_LIST_BUCKETS_RESULT = 0x4002E6, - SMSG_AUCTION_LIST_ITEMS_RESULT = 0x4002E7, - SMSG_AUCTION_LIST_OWNED_ITEMS_RESULT = 0x4002E9, - SMSG_AUCTION_OUTBID_NOTIFICATION = 0x400194, - SMSG_AUCTION_OWNER_BID_NOTIFICATION = 0x400196, - SMSG_AUCTION_REPLICATE_RESPONSE = 0x400191, - SMSG_AUCTION_WON_NOTIFICATION = 0x400193, - SMSG_AURA_POINTS_DEPLETED = 0x5F0012, - SMSG_AURA_UPDATE = 0x5F0011, - SMSG_AUTH_CHALLENGE = 0x470000, - SMSG_AUTH_FAILED = 0x400000, - SMSG_AUTH_RESPONSE = 0x400001, - SMSG_AVAILABLE_HOTFIXES = 0x440001, - SMSG_BACKPACK_DEFAULT_SIZE_CHANGED = 0x40032A, - SMSG_BAG_CLEANUP_FINISHED = 0x600007, - SMSG_BARBER_SHOP_RESULT = 0x400160, - SMSG_BATCH_PRESENCE_SUBSCRIPTION = 0x4002CA, - SMSG_BATTLEFIELD_LIST = 0x460005, - SMSG_BATTLEFIELD_PORT_DENIED = 0x46000B, - SMSG_BATTLEFIELD_STATUS_ACTIVE = 0x460001, - SMSG_BATTLEFIELD_STATUS_FAILED = 0x460004, - SMSG_BATTLEFIELD_STATUS_GROUP_PROPOSAL_FAILED = 0x46000E, - SMSG_BATTLEFIELD_STATUS_NEED_CONFIRMATION = 0x460000, - SMSG_BATTLEFIELD_STATUS_NONE = 0x460003, - SMSG_BATTLEFIELD_STATUS_QUEUED = 0x460002, - SMSG_BATTLEFIELD_STATUS_WAIT_FOR_GROUPS = 0x46000D, - SMSG_BATTLEGROUND_INFO_THROTTLED = 0x46000C, - SMSG_BATTLEGROUND_INIT = 0x460029, - SMSG_BATTLEGROUND_PLAYER_JOINED = 0x460009, - SMSG_BATTLEGROUND_PLAYER_LEFT = 0x46000A, - SMSG_BATTLEGROUND_PLAYER_POSITIONS = 0x460006, - SMSG_BATTLEGROUND_POINTS = 0x460028, - SMSG_BATTLENET_CHALLENGE_ABORT = 0x40022B, - SMSG_BATTLENET_CHALLENGE_START = 0x40022A, - SMSG_BATTLENET_NOTIFICATION = 0x4002A1, - SMSG_BATTLENET_RESPONSE = 0x4002A0, - SMSG_BATTLE_NET_CONNECTION_STATUS = 0x4002A2, - SMSG_BATTLE_PAY_ACK_FAILED = 0x400226, - SMSG_BATTLE_PAY_BATTLE_PET_DELIVERED = 0x40021B, - SMSG_BATTLE_PAY_COLLECTION_ITEM_DELIVERED = 0x40021C, - SMSG_BATTLE_PAY_CONFIRM_PURCHASE = 0x400225, - SMSG_BATTLE_PAY_DELIVERY_ENDED = 0x400219, - SMSG_BATTLE_PAY_DELIVERY_STARTED = 0x400218, - SMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_VAS_RESPONSE = 0x400309, - SMSG_BATTLE_PAY_DISTRIBUTION_UNREVOKED = 0x400216, - SMSG_BATTLE_PAY_DISTRIBUTION_UPDATE = 0x400217, - SMSG_BATTLE_PAY_GET_DISTRIBUTION_LIST_RESPONSE = 0x400215, - SMSG_BATTLE_PAY_GET_PRODUCT_LIST_RESPONSE = 0x400213, - SMSG_BATTLE_PAY_GET_PURCHASE_LIST_RESPONSE = 0x400214, - SMSG_BATTLE_PAY_MOUNT_DELIVERED = 0x40021A, - SMSG_BATTLE_PAY_PURCHASE_UPDATE = 0x400224, - SMSG_BATTLE_PAY_START_CHECKOUT = 0x4002BE, - SMSG_BATTLE_PAY_START_DISTRIBUTION_ASSIGN_TO_TARGET_RESPONSE = 0x400222, - SMSG_BATTLE_PAY_START_PURCHASE_RESPONSE = 0x400221, - SMSG_BATTLE_PAY_VALIDATE_PURCHASE_RESPONSE = 0x4002B1, - SMSG_BATTLE_PETS_HEALED = 0x40008F, - SMSG_BATTLE_PET_CAGE_DATE_ERROR = 0x40011C, - SMSG_BATTLE_PET_DELETED = 0x40008C, - SMSG_BATTLE_PET_ERROR = 0x4000DA, - SMSG_BATTLE_PET_JOURNAL = 0x40008B, - SMSG_BATTLE_PET_JOURNAL_LOCK_ACQUIRED = 0x400089, - SMSG_BATTLE_PET_JOURNAL_LOCK_DENIED = 0x40008A, - SMSG_BATTLE_PET_RESTORED = 0x40008E, - SMSG_BATTLE_PET_REVOKED = 0x40008D, - SMSG_BATTLE_PET_TRAP_LEVEL = 0x400087, - SMSG_BATTLE_PET_UPDATES = 0x400086, - SMSG_BIND_POINT_UPDATE = 0x400011, - SMSG_BLACK_MARKET_BID_ON_ITEM_RESULT = 0x4000CA, - SMSG_BLACK_MARKET_OUTBID = 0x4000CB, - SMSG_BLACK_MARKET_REQUEST_ITEMS_RESULT = 0x4000C9, - SMSG_BLACK_MARKET_WON = 0x4000CC, - SMSG_BONUS_ROLL_EMPTY = 0x4000E7, - SMSG_BOSS_KILL = 0x46002B, - SMSG_BREAK_TARGET = 0x460016, - SMSG_BROADCAST_ACHIEVEMENT = 0x450012, - SMSG_BROADCAST_SUMMON_CAST = 0x4002CC, - SMSG_BROADCAST_SUMMON_RESPONSE = 0x4002CD, - SMSG_BUY_FAILED = 0x400169, - SMSG_BUY_SUCCEEDED = 0x400168, - SMSG_CACHE_INFO = 0x44000F, - SMSG_CACHE_VERSION = 0x44000E, - SMSG_CALENDAR_CLEAR_PENDING_ACTION = 0x400141, - SMSG_CALENDAR_COMMAND_RESULT = 0x400142, - SMSG_CALENDAR_COMMUNITY_INVITE = 0x400131, - SMSG_CALENDAR_EVENT_REMOVED_ALERT = 0x400139, - SMSG_CALENDAR_EVENT_UPDATED_ALERT = 0x40013A, - SMSG_CALENDAR_INVITE_ADDED = 0x400132, - SMSG_CALENDAR_INVITE_ALERT = 0x400136, - SMSG_CALENDAR_INVITE_NOTES = 0x40013B, - SMSG_CALENDAR_INVITE_NOTES_ALERT = 0x40013C, - SMSG_CALENDAR_INVITE_REMOVED = 0x400133, - SMSG_CALENDAR_INVITE_REMOVED_ALERT = 0x400138, - SMSG_CALENDAR_INVITE_STATUS = 0x400134, - SMSG_CALENDAR_INVITE_STATUS_ALERT = 0x400137, - SMSG_CALENDAR_MODERATOR_STATUS = 0x400135, - SMSG_CALENDAR_RAID_LOCKOUT_ADDED = 0x40013D, - SMSG_CALENDAR_RAID_LOCKOUT_REMOVED = 0x40013E, - SMSG_CALENDAR_RAID_LOCKOUT_UPDATED = 0x40013F, - SMSG_CALENDAR_SEND_CALENDAR = 0x40012F, - SMSG_CALENDAR_SEND_EVENT = 0x400130, - SMSG_CALENDAR_SEND_NUM_PENDING = 0x400140, - SMSG_CAMERA_EFFECT = 0x4001C7, - SMSG_CANCEL_AUTO_REPEAT = 0x400180, - SMSG_CANCEL_COMBAT = 0x460025, - SMSG_CANCEL_ORPHAN_SPELL_VISUAL = 0x5F0037, - SMSG_CANCEL_PING_PIN = 0x40003B, - SMSG_CANCEL_PRELOAD_WORLD = 0x40002E, - SMSG_CANCEL_SCENE = 0x4000D9, - SMSG_CANCEL_SPELL_VISUAL = 0x5F0035, - SMSG_CANCEL_SPELL_VISUAL_KIT = 0x5F0039, - SMSG_CAN_DUEL_RESULT = 0x460021, - SMSG_CAN_REDEEM_TOKEN_FOR_BALANCE_RESPONSE = 0x4002B0, - SMSG_CAPTURE_POINT_REMOVED = 0x460008, - SMSG_CAST_FAILED = 0x5F0048, - SMSG_CAS_REFRESH_REMOTE_DATA = 0x40011A, - SMSG_CATALOG_SHOP_LICENSE_DATA = 0x4002B2, - SMSG_CATALOG_SHOP_OBTAIN_LICENSE = 0x40035C, - SMSG_CATALOG_SHOP_OPEN_CHECKOUT_RESULT = 0x400357, - SMSG_CAUTIONARY_CHANNEL_MESSAGE = 0x450009, - SMSG_CAUTIONARY_CHAT_MESSAGE = 0x450008, - SMSG_CHAIN_MISSILE_BOUNCE = 0x400065, - SMSG_CHALLENGE_MODE_COMPLETE = 0x4000AA, - SMSG_CHALLENGE_MODE_NEW_PLAYER_RECORD = 0x4000AB, - SMSG_CHALLENGE_MODE_REQUEST_LEADERBOARD_RESULT = 0x4000B2, - SMSG_CHALLENGE_MODE_REQUEST_LEADERS_RESULT = 0x4000B1, - SMSG_CHALLENGE_MODE_RESET = 0x4000A9, - SMSG_CHALLENGE_MODE_SET_LEAVER_PENALTY_TIMER = 0x5C0031, - SMSG_CHALLENGE_MODE_START = 0x4000A7, - SMSG_CHALLENGE_MODE_UPDATE_DEATH_COUNT = 0x4000A8, - SMSG_CHANGE_PLAYER_DIFFICULTY_RESULT = 0x5C000D, - SMSG_CHANGE_REALM_TICKET_RESPONSE = 0x4002A3, - SMSG_CHANNEL_LIST = 0x45001B, - SMSG_CHANNEL_NOTIFY = 0x450017, - SMSG_CHANNEL_NOTIFY_JOINED = 0x450019, - SMSG_CHANNEL_NOTIFY_LEFT = 0x45001A, - SMSG_CHANNEL_NOTIFY_NPE_JOINED_BATCH = 0x450018, - SMSG_CHARACTER_CHECK_UPGRADE_RESULT = 0x40025D, - SMSG_CHARACTER_LOGIN_FAILED = 0x4001A7, - SMSG_CHARACTER_OBJECT_TEST_RESPONSE = 0x400229, - SMSG_CHARACTER_RENAME_RESULT = 0x400204, - SMSG_CHARACTER_UPGRADE_ABORTED = 0x40025C, - SMSG_CHARACTER_UPGRADE_COMPLETE = 0x40025B, - SMSG_CHARACTER_UPGRADE_MANUAL_UNREVOKE_RESULT = 0x40025E, - SMSG_CHARACTER_UPGRADE_STARTED = 0x40025A, - SMSG_CHAR_CUSTOMIZE_FAILURE = 0x400184, - SMSG_CHAR_CUSTOMIZE_SUCCESS = 0x400185, - SMSG_CHAR_FACTION_CHANGE_RESULT = 0x400247, - SMSG_CHAT = 0x450001, - SMSG_CHAT_AUTO_RESPONDED = 0x45000E, - SMSG_CHAT_CAN_LOCAL_WHISPER_TARGET_RESPONSE = 0x450022, - SMSG_CHAT_DOWN = 0x450014, - SMSG_CHAT_IGNORED_ACCOUNT_MUTED = 0x450000, - SMSG_CHAT_IS_DOWN = 0x450015, - SMSG_CHAT_NOT_IN_GUILD = 0x450023, - SMSG_CHAT_NOT_IN_PARTY = 0x450006, - SMSG_CHAT_PLAYER_AMBIGUOUS = 0x450004, - SMSG_CHAT_PLAYER_NOTFOUND = 0x45000D, - SMSG_CHAT_RECONNECT = 0x450016, - SMSG_CHAT_REGIONAL_SERVICE_STATUS = 0x45001D, - SMSG_CHAT_RESTRICTED = 0x450007, - SMSG_CHAT_SERVER_MESSAGE = 0x45001C, - SMSG_CHEAT_IGNORE_DIMISHING_RETURNS = 0x5F0002, - SMSG_CHECK_ABANDON_NPE = 0x5C0024, - SMSG_CHECK_CHARACTER_NAME_AVAILABILITY_RESULT = 0x40001B, - SMSG_CHECK_WARGAME_ENTRY = 0x400027, - SMSG_CHROMIE_TIME_SELECT_EXPANSION_SUCCESS = 0x4002F6, - SMSG_CLAIM_RAF_REWARD_RESPONSE = 0x4002DD, - SMSG_CLEAR_ALL_SPELL_CHARGES = 0x5F0016, - SMSG_CLEAR_BOSS_EMOTES = 0x400058, - SMSG_CLEAR_COOLDOWN = 0x40015D, - SMSG_CLEAR_COOLDOWNS = 0x5F0015, - SMSG_CLEAR_RESURRECT = 0x400013, - SMSG_CLEAR_SPELL_CHARGES = 0x5F0017, - SMSG_CLEAR_TARGET = 0x460022, - SMSG_CLEAR_TREASURE_PICKER_CACHE = 0x5D0022, - SMSG_CLOSE_ARTIFACT_FORGE = 0x400240, - SMSG_CLUB_FINDER_ERROR_MESSAGE = 0x4002D5, - SMSG_CLUB_FINDER_GET_CLUB_POSTING_IDS_RESPONSE = 0x4002D8, - SMSG_CLUB_FINDER_LOOKUP_CLUB_POSTINGS_LIST = 0x4002D6, - SMSG_CLUB_FINDER_RESPONSE_CHARACTER_APPLICATION_LIST = 0x4002D3, - SMSG_CLUB_FINDER_RESPONSE_POST_RECRUITMENT_MESSAGE = 0x4002D7, - SMSG_CLUB_FINDER_UPDATE_APPLICATIONS = 0x4002D4, - SMSG_CLUB_FINDER_WHISPER_APPLICANT_RESPONSE = 0x400315, - SMSG_COIN_REMOVED = 0x4000B9, - SMSG_COMBAT_EVENT_FAILED = 0x460019, - SMSG_COMMENTATOR_MAP_INFO = 0x4001A9, - SMSG_COMMENTATOR_PLAYER_INFO = 0x4001AA, - SMSG_COMMENTATOR_STATE_CHANGED = 0x4001A8, - SMSG_COMMERCE_TOKEN_GET_COUNT_RESPONSE = 0x40026C, - SMSG_COMMERCE_TOKEN_GET_LOG_RESPONSE = 0x400278, - SMSG_COMMERCE_TOKEN_GET_MARKET_PRICE_RESPONSE = 0x40026E, - SMSG_COMMERCE_TOKEN_UPDATE = 0x40026D, - SMSG_COMPLAINT_RESULT = 0x40014F, - SMSG_COMPLETE_SHIPMENT_RESPONSE = 0x400239, - SMSG_COMPRESSED_PACKET = 0x47000C, - SMSG_CONFIRM_PARTY_INVITE = 0x4002AF, - SMSG_CONNECT_TO = 0x470007, - SMSG_CONSOLE_WRITE = 0x4000D7, - SMSG_CONSUMABLE_TOKEN_BUY_AT_MARKET_PRICE_RESPONSE = 0x400274, - SMSG_CONSUMABLE_TOKEN_BUY_CHOICE_REQUIRED = 0x400273, - SMSG_CONSUMABLE_TOKEN_CAN_VETERAN_BUY_RESPONSE = 0x400272, - SMSG_CONSUMABLE_TOKEN_REDEEM_CONFIRM_REQUIRED = 0x400276, - SMSG_CONSUMABLE_TOKEN_REDEEM_RESPONSE = 0x400277, - SMSG_CONTACT_LIST = 0x400227, - SMSG_CONTRIBUTION_LAST_UPDATE_RESPONSE = 0x4002B7, - SMSG_CONTROL_UPDATE = 0x4000E9, - SMSG_CONVERT_ITEMS_TO_CURRENCY_VALUE = 0x4002FF, - SMSG_COOLDOWN_CHEAT = 0x4001DA, - SMSG_COOLDOWN_EVENT = 0x40015C, - SMSG_CORPSE_LOCATION = 0x4000F0, - SMSG_CORPSE_RECLAIM_DELAY = 0x4001EB, - SMSG_CORPSE_TRANSPORT_QUERY = 0x4001B5, - SMSG_COVENANT_CALLINGS_AVAILABILITY_RESPONSE = 0x5D0024, - SMSG_COVENANT_PREVIEW_OPEN_NPC = 0x400298, - SMSG_COVENANT_RENOWN_SEND_CATCHUP_STATE = 0x400300, - SMSG_CRAFTING_HOUSE_HELLO_RESPONSE = 0x400336, - SMSG_CRAFTING_ORDER_CANCEL_RESULT = 0x400332, - SMSG_CRAFTING_ORDER_CLAIM_RESULT = 0x40032E, - SMSG_CRAFTING_ORDER_CRAFT_RESULT = 0x400330, - SMSG_CRAFTING_ORDER_CREATE_RESULT = 0x40032C, - SMSG_CRAFTING_ORDER_FULFILL_RESULT = 0x400331, - SMSG_CRAFTING_ORDER_LIST_ORDERS_RESPONSE = 0x40032D, - SMSG_CRAFTING_ORDER_NPC_REWARD_INFO = 0x400338, - SMSG_CRAFTING_ORDER_REJECT_RESULT = 0x400334, - SMSG_CRAFTING_ORDER_RELEASE_RESULT = 0x40032F, - SMSG_CRAFTING_ORDER_UPDATE_STATE = 0x400337, - SMSG_CRAFT_ENCHANT_RESULT = 0x400335, - SMSG_CREATE_CHAR = 0x4001A3, - SMSG_CREATE_SHIPMENT_RESPONSE = 0x400238, - SMSG_CREATOR_VISUALS_OVERRIDE = 0x40033B, - SMSG_CRITERIA_DELETED = 0x400189, - SMSG_CRITERIA_UPDATE = 0x400183, - SMSG_CROSSED_INEBRIATION_THRESHOLD = 0x400164, - SMSG_CURRENCY_TRANSFER_LOG = 0x40034D, - SMSG_CURRENCY_TRANSFER_RESULT = 0x40034C, - SMSG_CUSTOM_LOAD_SCREEN = 0x400068, - SMSG_DAILY_QUESTS_RESET = 0x5D0000, - SMSG_DAMAGE_CALC_LOG = 0x5F0054, - SMSG_DB_REPLY = 0x440000, - SMSG_DEATH_RELEASE_LOC = 0x400176, - SMSG_DEBUG_MENU_MANAGER_FULL_UPDATE = 0x4000F8, - SMSG_DEFENSE_MESSAGE = 0x45000C, - SMSG_DELETE_CHAR = 0x4001A4, - SMSG_DELETE_EXPIRED_MISSIONS_RESULT = 0x4A0022, - SMSG_DELVES_ACCOUNT_DATA_ELEMENT_CHANGED = 0x400352, - SMSG_DESTROY_ARENA_UNIT = 0x4001E3, - SMSG_DESTRUCTIBLE_BUILDING_DAMAGE = 0x40019B, - SMSG_DIFFERENT_INSTANCE_FROM_PARTY = 0x400020, - SMSG_DISENCHANT_CREDIT = 0x40003F, - SMSG_DISMOUNT_RESULT = 0x400010, - SMSG_DISPEL_FAILED = 0x5F001E, - SMSG_DISPLAY_GAME_ERROR = 0x400035, - SMSG_DISPLAY_PLAYER_CHOICE = 0x5C0004, - SMSG_DISPLAY_PROMOTION = 0x4000ED, - SMSG_DISPLAY_QUEST_POPUP = 0x5D001E, - SMSG_DISPLAY_TOAST = 0x4000C6, - SMSG_DISPLAY_WORLD_TEXT = 0x400289, - SMSG_DISPLAY_WORLD_TEXT_ON_TARGET = 0x5F0053, - SMSG_DONT_AUTO_PUSH_SPELLS_TO_ACTION_BAR = 0x40007D, - SMSG_DROP_NEW_CONNECTION = 0x470006, - SMSG_DUEL_ARRANGED = 0x46001B, - SMSG_DUEL_COMPLETE = 0x46001F, - SMSG_DUEL_COUNTDOWN = 0x46001E, - SMSG_DUEL_IN_BOUNDS = 0x46001D, - SMSG_DUEL_OUT_OF_BOUNDS = 0x46001C, - SMSG_DUEL_REQUESTED = 0x46001A, - SMSG_DUEL_WINNER = 0x460020, - SMSG_DURABILITY_DAMAGE_DEATH = 0x4001E6, - SMSG_EMOTE = 0x400264, - SMSG_ENABLE_BARBER_SHOP = 0x40015F, - SMSG_ENCHANTMENT_LOG = 0x4001B6, - SMSG_ENCOUNTER_END = 0x400220, - SMSG_ENCOUNTER_START = 0x40021F, - SMSG_END_LIGHTNING_STORM = 0x40014C, - SMSG_ENTER_ENCRYPTED_MODE = 0x470003, - SMSG_ENUM_CHARACTERS_RESULT = 0x400018, - SMSG_ENUM_VAS_PURCHASE_STATES_RESPONSE = 0x40028E, - SMSG_ENVIRONMENTAL_DAMAGE_LOG = 0x5F000E, - SMSG_EQUIPMENT_SET_ID = 0x400155, - SMSG_EXPECTED_SPAM_RECORDS = 0x450005, - SMSG_EXPLORATION_EXPERIENCE = 0x400200, - SMSG_EXPORT_ACCOUNT_PROFILE = 0x4000F5, - SMSG_EXTERNAL_TRANSACTION_ID_GENERATED = 0x4002FD, - SMSG_FACTION_BONUS_INFO = 0x4001C6, - SMSG_FAILED_PLAYER_CONDITION = 0x5C0002, - SMSG_FAILED_QUEST_TURN_IN = 0x4002AC, - SMSG_FEATURE_SYSTEM_STATUS = 0x40005C, - SMSG_FEATURE_SYSTEM_STATUS2 = 0x40034A, - SMSG_FEATURE_SYSTEM_STATUS_GLUE_SCREEN = 0x40005D, - SMSG_FEIGN_DEATH_RESISTED = 0x4001E5, - SMSG_FISH_ESCAPED = 0x400173, - SMSG_FISH_NOT_HOOKED = 0x400172, - SMSG_FLIGHT_SPLINE_SYNC = 0x58005B, - SMSG_FLUSH_COMBAT_LOG_FILE = 0x5F0010, - SMSG_FORCED_DEATH_UPDATE = 0x400177, - SMSG_FORCE_ANIM = 0x4001F2, - SMSG_FORCE_ANIMATIONS = 0x4001F3, - SMSG_FORCE_RANDOM_TRANSMOG_TOAST = 0x40004A, - SMSG_FORCE_SPAWN_TRACKING_UPDATE = 0x5D0021, - SMSG_FRIEND_STATUS = 0x400228, - SMSG_GAIN_MAW_POWER = 0x40027D, - SMSG_GAME_OBJECT_ACTIVATE_ANIM_KIT = 0x400060, - SMSG_GAME_OBJECT_BASE = 0x4002C4, - SMSG_GAME_OBJECT_CLOSE_INTERACTION = 0x400314, - SMSG_GAME_OBJECT_CUSTOM_ANIM = 0x400061, - SMSG_GAME_OBJECT_DESPAWN = 0x400062, - SMSG_GAME_OBJECT_INTERACTION = 0x400313, - SMSG_GAME_OBJECT_PLAY_SPELL_VISUAL = 0x5F003C, - SMSG_GAME_OBJECT_PLAY_SPELL_VISUAL_KIT = 0x5F003B, - SMSG_GAME_OBJECT_RESET_STATE = 0x4001C0, - SMSG_GAME_OBJECT_SET_STATE_LOCAL = 0x40029F, - SMSG_GAME_SPEED_SET = 0x400125, - SMSG_GAME_TIME_SET = 0x4001AF, - SMSG_GAME_TIME_UPDATE = 0x4001AE, - SMSG_GARRISON_ACTIVATE_MISSION_BONUS_ABILITY = 0x4A0024, - SMSG_GARRISON_ADD_EVENT = 0x4A0048, - SMSG_GARRISON_ADD_FOLLOWER_RESULT = 0x4A0016, - SMSG_GARRISON_ADD_MISSION_RESULT = 0x4A001A, - SMSG_GARRISON_ADD_SPEC_GROUPS = 0x4A004B, - SMSG_GARRISON_APPLY_TALENT_SOCKET_DATA_CHANGES = 0x4A004F, - SMSG_GARRISON_ASSIGN_FOLLOWER_TO_BUILDING_RESULT = 0x4A002C, - SMSG_GARRISON_AUTO_TROOP_MIN_LEVEL_UPDATE_RESULT = 0x4A0051, - SMSG_GARRISON_BUILDING_ACTIVATED = 0x4A000B, - SMSG_GARRISON_BUILDING_REMOVED = 0x4A0004, - SMSG_GARRISON_BUILDING_SET_ACTIVE_SPECIALIZATION_RESULT = 0x4A0006, - SMSG_GARRISON_CHANGE_MISSION_START_TIME_RESULT = 0x4A001D, - SMSG_GARRISON_CLEAR_COLLECTION = 0x4A0047, - SMSG_GARRISON_CLEAR_EVENT_LIST = 0x4A004A, - SMSG_GARRISON_CLEAR_SPEC_GROUPS = 0x4A004C, - SMSG_GARRISON_COLLECTION_REMOVE_ENTRY = 0x4A0046, - SMSG_GARRISON_COLLECTION_UPDATE_ENTRY = 0x4A0045, - SMSG_GARRISON_COMPLETE_BUILDING_CONSTRUCTION_RESULT = 0x4A003D, - SMSG_GARRISON_COMPLETE_MISSION_RESULT = 0x4A001C, - SMSG_GARRISON_CREATE_RESULT = 0x4A000C, - SMSG_GARRISON_DELETE_MISSION_RESULT = 0x4A0023, - SMSG_GARRISON_DELETE_RESULT = 0x4A0035, - SMSG_GARRISON_FOLLOWER_ACTIVATIONS_SET = 0x4A002B, - SMSG_GARRISON_FOLLOWER_CHANGED_FLAGS = 0x4A0029, - SMSG_GARRISON_FOLLOWER_CHANGED_ITEM_LEVEL = 0x4A0027, - SMSG_GARRISON_FOLLOWER_CHANGED_QUALITY = 0x4A0028, - SMSG_GARRISON_FOLLOWER_CHANGED_XP = 0x4A0026, - SMSG_GARRISON_FOLLOWER_FATIGUE_CLEARED = 0x4A002A, - SMSG_GARRISON_GENERATE_FOLLOWERS_RESULT = 0x4A0033, - SMSG_GARRISON_GET_CLASS_SPEC_CATEGORY_INFO_RESULT = 0x4A0015, - SMSG_GARRISON_GET_RECALL_PORTAL_LAST_USED_TIME_RESULT = 0x4A001E, - SMSG_GARRISON_IS_UPGRADEABLE_RESPONSE = 0x4A003F, - SMSG_GARRISON_LEARN_BLUEPRINT_RESULT = 0x4A0007, - SMSG_GARRISON_LEARN_SPECIALIZATION_RESULT = 0x4A0005, - SMSG_GARRISON_LIST_COMPLETED_MISSIONS_CHEAT_RESULT = 0x4A0040, - SMSG_GARRISON_LIST_FOLLOWERS_CHEAT_RESULT = 0x4A0019, - SMSG_GARRISON_MAP_DATA_RESPONSE = 0x4A0042, - SMSG_GARRISON_MISSION_BONUS_ROLL_RESULT = 0x4A0020, - SMSG_GARRISON_MISSION_REQUEST_REWARD_INFO_RESPONSE = 0x4A0043, - SMSG_GARRISON_MISSION_START_CONDITION_UPDATE = 0x4A0025, - SMSG_GARRISON_OPEN_CRAFTER = 0x4A0037, - SMSG_GARRISON_OPEN_RECRUITMENT_NPC = 0x4A0030, - SMSG_GARRISON_PLACE_BUILDING_RESULT = 0x4A0003, - SMSG_GARRISON_PLOT_PLACED = 0x4A0001, - SMSG_GARRISON_PLOT_REMOVED = 0x4A0002, - SMSG_GARRISON_RECRUIT_FOLLOWER_RESULT = 0x4A0034, - SMSG_GARRISON_REMOTE_INFO = 0x4A000A, - SMSG_GARRISON_REMOVE_EVENT = 0x4A0049, - SMSG_GARRISON_REMOVE_FOLLOWER_ABILITY_RESULT = 0x4A002F, - SMSG_GARRISON_REMOVE_FOLLOWER_FROM_BUILDING_RESULT = 0x4A002D, - SMSG_GARRISON_REMOVE_FOLLOWER_RESULT = 0x4A0017, - SMSG_GARRISON_RENAME_FOLLOWER_RESULT = 0x4A002E, - SMSG_GARRISON_REQUEST_BLUEPRINT_AND_SPECIALIZATION_DATA_RESULT = 0x4A0009, - SMSG_GARRISON_RESEARCH_TALENT_RESULT = 0x4A000E, - SMSG_GARRISON_RESET_TALENT_TREE = 0x4A0013, - SMSG_GARRISON_RESET_TALENT_TREE_SOCKET_DATA = 0x4A0014, - SMSG_GARRISON_START_MISSION_RESULT = 0x4A001B, - SMSG_GARRISON_SWAP_BUILDINGS_RESPONSE = 0x4A003C, - SMSG_GARRISON_SWITCH_TALENT_TREE_BRANCH = 0x4A004D, - SMSG_GARRISON_TALENT_COMPLETED = 0x4A000F, - SMSG_GARRISON_TALENT_REMOVED = 0x4A0010, - SMSG_GARRISON_TALENT_REMOVE_SOCKET_DATA = 0x4A0012, - SMSG_GARRISON_TALENT_UPDATE_SOCKET_DATA = 0x4A0011, - SMSG_GARRISON_TALENT_WORLD_QUEST_UNLOCKS_RESPONSE = 0x4A004E, - SMSG_GARRISON_UNLEARN_BLUEPRINT_RESULT = 0x4A0008, - SMSG_GARRISON_UPDATE_FOLLOWER = 0x4A0018, - SMSG_GARRISON_UPDATE_GARRISON_MONUMENT_SELECTIONS = 0x4A003E, - SMSG_GARRISON_UPDATE_MISSION_CHEAT_RESULT = 0x4A0050, - SMSG_GARRISON_UPGRADE_RESULT = 0x4A000D, - SMSG_GARRISON_USE_RECALL_PORTAL_RESULT = 0x4A001F, - SMSG_GENERATE_RANDOM_CHARACTER_NAME_RESULT = 0x40001C, - SMSG_GENERATE_SSO_TOKEN_RESPONSE = 0x4002B8, - SMSG_GET_ACCOUNT_CHARACTER_LIST_RESULT = 0x400202, - SMSG_GET_GARRISON_INFO_RESULT = 0x4A0000, - SMSG_GET_LANDING_PAGE_SHIPMENTS_RESPONSE = 0x40023B, - SMSG_GET_REALM_HIDDEN_RESULT = 0x400341, - SMSG_GET_REMAINING_GAME_TIME_RESPONSE = 0x400275, - SMSG_GET_SELECTED_TROPHY_ID_RESPONSE = 0x400262, - SMSG_GET_SHIPMENTS_OF_TYPE_RESPONSE = 0x40023A, - SMSG_GET_SHIPMENT_INFO_RESPONSE = 0x400236, - SMSG_GET_TROPHY_LIST_RESPONSE = 0x400261, - SMSG_GET_VAS_ACCOUNT_CHARACTER_LIST_RESULT = 0x40028A, - SMSG_GET_VAS_TRANSFER_TARGET_REALM_LIST_RESULT = 0x40028B, - SMSG_GM_PLAYER_INFO = 0x5C000E, - SMSG_GM_REQUEST_PLAYER_INFO = 0x5C0003, - SMSG_GM_TICKET_CASE_STATUS = 0x400147, - SMSG_GM_TICKET_SYSTEM_STATUS = 0x400146, - SMSG_GOD_MODE = 0x40019E, - SMSG_GOSSIP_COMPLETE = 0x5D0017, - SMSG_GOSSIP_MESSAGE = 0x5D0018, - SMSG_GOSSIP_OPTION_NPC_INTERACTION = 0x5D0028, - SMSG_GOSSIP_POI = 0x400233, - SMSG_GOSSIP_QUEST_UPDATE = 0x5D0019, - SMSG_GOSSIP_REFRESH_OPTIONS = 0x5D0027, - SMSG_GROUP_ACTION_THROTTLED = 0x400024, - SMSG_GROUP_AUTO_KICK = 0x400230, - SMSG_GROUP_DECLINE = 0x40022C, - SMSG_GROUP_DESTROYED = 0x40022F, - SMSG_GROUP_NEW_LEADER = 0x4000CF, - SMSG_GROUP_REQUEST_DECLINE = 0x40022D, - SMSG_GROUP_UNINVITE = 0x40022E, - SMSG_GUILD_ACHIEVEMENT_DELETED = 0x4C000D, - SMSG_GUILD_ACHIEVEMENT_EARNED = 0x4C000C, - SMSG_GUILD_ACHIEVEMENT_MEMBERS = 0x4C000F, - SMSG_GUILD_BANK_LOG_QUERY_RESULTS = 0x4C0027, - SMSG_GUILD_BANK_QUERY_RESULTS = 0x4C0026, - SMSG_GUILD_BANK_REMAINING_WITHDRAW_MONEY = 0x4C0028, - SMSG_GUILD_BANK_TEXT_QUERY_RESULT = 0x4C002B, - SMSG_GUILD_CHALLENGE_COMPLETED = 0x4C001B, - SMSG_GUILD_CHALLENGE_UPDATE = 0x4C001A, - SMSG_GUILD_CHANGE_NAME_RESULT = 0x4C0025, - SMSG_GUILD_COMMAND_RESULT = 0x4C0002, - SMSG_GUILD_CRITERIA_DELETED = 0x4C000E, - SMSG_GUILD_CRITERIA_UPDATE = 0x4C000B, - SMSG_GUILD_EVENT_BANK_CONTENTS_CHANGED = 0x4C0040, - SMSG_GUILD_EVENT_BANK_MONEY_CHANGED = 0x4C003F, - SMSG_GUILD_EVENT_DISBANDED = 0x4C0035, - SMSG_GUILD_EVENT_LOG_QUERY_RESULTS = 0x4C002A, - SMSG_GUILD_EVENT_MOTD = 0x4C0036, - SMSG_GUILD_EVENT_NEW_LEADER = 0x4C0034, - SMSG_GUILD_EVENT_PLAYER_JOINED = 0x4C0032, - SMSG_GUILD_EVENT_PLAYER_LEFT = 0x4C0033, - SMSG_GUILD_EVENT_PRESENCE_CHANGE = 0x4C0037, - SMSG_GUILD_EVENT_RANKS_UPDATED = 0x4C0039, - SMSG_GUILD_EVENT_RANK_CHANGED = 0x4C003A, - SMSG_GUILD_EVENT_STATUS_CHANGE = 0x4C0038, - SMSG_GUILD_EVENT_TAB_ADDED = 0x4C003B, - SMSG_GUILD_EVENT_TAB_DELETED = 0x4C003C, - SMSG_GUILD_EVENT_TAB_MODIFIED = 0x4C003D, - SMSG_GUILD_EVENT_TAB_TEXT_CHANGED = 0x4C003E, - SMSG_GUILD_FLAGGED_FOR_RENAME = 0x4C0024, - SMSG_GUILD_HARDCORE_MEMBER_DEATH = 0x4C0004, - SMSG_GUILD_INVITE = 0x4C0012, - SMSG_GUILD_INVITE_DECLINED = 0x4C0030, - SMSG_GUILD_INVITE_EXPIRED = 0x4C0031, - SMSG_GUILD_ITEM_LOOTED_NOTIFY = 0x4C001C, - SMSG_GUILD_KNOWN_RECIPES = 0x4C0006, - SMSG_GUILD_MEMBERS_WITH_RECIPE = 0x4C0007, - SMSG_GUILD_MEMBER_DAILY_RESET = 0x4C002C, - SMSG_GUILD_MEMBER_RECIPES = 0x4C0005, - SMSG_GUILD_MEMBER_UPDATE_NOTE = 0x4C0011, - SMSG_GUILD_MOVED = 0x4C0022, - SMSG_GUILD_MOVE_STARTING = 0x4C0021, - SMSG_GUILD_NAME_CHANGED = 0x4C0023, - SMSG_GUILD_NEWS = 0x4C0009, - SMSG_GUILD_NEWS_DELETED = 0x4C000A, - SMSG_GUILD_OTHERS_OWNED_HOUSES_RESULT = 0x4C0047, - SMSG_GUILD_PARTY_STATE = 0x4C0013, - SMSG_GUILD_PERMISSIONS_QUERY_RESULTS = 0x4C0029, - SMSG_GUILD_RANKS = 0x4C0010, - SMSG_GUILD_RENAME_NAME_CHECK = 0x4C0044, - SMSG_GUILD_RENAME_REFUND_RESULT = 0x4C0046, - SMSG_GUILD_RENAME_REQUESTED_RESULT = 0x4C0045, - SMSG_GUILD_RENAME_STATUS_UPDATE = 0x4C0043, - SMSG_GUILD_REPUTATION_REACTION_CHANGED = 0x4C0014, - SMSG_GUILD_RESET = 0x4C0020, - SMSG_GUILD_REWARD_LIST = 0x4C0008, - SMSG_GUILD_ROSTER = 0x4C0003, - SMSG_GUILD_SEND_RANK_CHANGE = 0x4C0001, - SMSG_HARDCORE_DEATH_ALERT = 0x400349, - SMSG_HEALTH_UPDATE = 0x400174, - SMSG_HIGHEST_THREAT_UPDATE = 0x40017C, - SMSG_HOTFIX_CONNECT = 0x440003, - SMSG_HOTFIX_MESSAGE = 0x440002, - SMSG_INITIALIZE_FACTIONS = 0x4001C5, - SMSG_INITIAL_SETUP = 0x400014, - SMSG_INIT_WORLD_STATES = 0x4001E7, - SMSG_INSPECT_RESULT = 0x4000D3, - SMSG_INSTANCE_ABANDON_VOTE_COMPLETED = 0x400097, - SMSG_INSTANCE_ABANDON_VOTE_PLAYER_LEFT = 0x400098, - SMSG_INSTANCE_ABANDON_VOTE_RESPONSE = 0x400096, - SMSG_INSTANCE_ABANDON_VOTE_STARTED = 0x400095, - SMSG_INSTANCE_ENCOUNTER_CHANGE_PRIORITY = 0x40024D, - SMSG_INSTANCE_ENCOUNTER_DISENGAGE_UNIT = 0x40024C, - SMSG_INSTANCE_ENCOUNTER_END = 0x400255, - SMSG_INSTANCE_ENCOUNTER_ENGAGE_UNIT = 0x40024B, - SMSG_INSTANCE_ENCOUNTER_GAIN_COMBAT_RESURRECTION_CHARGE = 0x400257, - SMSG_INSTANCE_ENCOUNTER_IN_COMBAT_RESURRECTION = 0x400256, - SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_COMPLETE = 0x400250, - SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_START = 0x40024F, - SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_UPDATE = 0x400254, - SMSG_INSTANCE_ENCOUNTER_PHASE_SHIFT_CHANGED = 0x400258, - SMSG_INSTANCE_ENCOUNTER_START = 0x400251, - SMSG_INSTANCE_ENCOUNTER_TIMER_START = 0x40024E, - SMSG_INSTANCE_ENCOUNTER_UPDATE_ALLOW_RELEASE_IN_PROGRESS = 0x400253, - SMSG_INSTANCE_ENCOUNTER_UPDATE_SUPPRESS_RELEASE = 0x400252, - SMSG_INSTANCE_GROUP_SIZE_CHANGED = 0x40019C, - SMSG_INSTANCE_INFO = 0x4000D6, - SMSG_INSTANCE_RESET = 0x40012A, - SMSG_INSTANCE_RESET_FAILED = 0x40012B, - SMSG_INSTANCE_SAVE_CREATED = 0x40021E, - SMSG_INTERRUPT_POWER_REGEN = 0x5F004A, - SMSG_INVALIDATE_NEIGHBORHOOD_NAME = 0x440013, - SMSG_INVALIDATE_PAGE_TEXT = 0x44000A, - SMSG_INVALIDATE_PLAYER = 0x5C0007, - SMSG_INVALID_PROMOTION_CODE = 0x4001F4, - SMSG_INVENTORY_CHANGE_FAILURE = 0x600005, - SMSG_INVENTORY_FIXUP_COMPLETE = 0x4002AE, - SMSG_INVENTORY_FULL_OVERFLOW = 0x4002C0, - SMSG_ISLAND_AZERITE_GAIN = 0x4001FD, - SMSG_ISLAND_COMPLETE = 0x4001FE, - SMSG_IS_QUEST_COMPLETE_RESPONSE = 0x5D0004, - SMSG_ITEM_CHANGED = 0x40018D, - SMSG_ITEM_COOLDOWN = 0x400263, - SMSG_ITEM_ENCHANT_TIME_UPDATE = 0x4001F6, - SMSG_ITEM_EXPIRE_PURCHASE_REFUND = 0x400034, - SMSG_ITEM_INTERACTION_COMPLETE = 0x4002F5, - SMSG_ITEM_PURCHASE_REFUND_RESULT = 0x400032, - SMSG_ITEM_PUSH_RESULT = 0x4000C5, - SMSG_ITEM_TIME_UPDATE = 0x4001F5, - SMSG_KICK_REASON = 0x40012D, - SMSG_LATENCY_REPORT_PING = 0x400305, - SMSG_LEARNED_SPELLS = 0x5F003E, - SMSG_LEARN_PVP_TALENT_FAILED = 0x400071, - SMSG_LEARN_TALENT_FAILED = 0x400070, - SMSG_LEGACY_LOOT_RULES = 0x4002C5, - SMSG_LEVEL_LINKING_RESULT = 0x4002DB, - SMSG_LEVEL_UP_INFO = 0x40018B, - SMSG_LFG_BOOT_PLAYER = 0x540019, - SMSG_LFG_DISABLED = 0x540017, - SMSG_LFG_EXPAND_SEARCH_PROMPT = 0x54001F, - SMSG_LFG_INSTANCE_SHUTDOWN_COUNTDOWN = 0x540009, - SMSG_LFG_JOIN_LOBBY_MATCHMAKER_QUEUE = 0x540020, - SMSG_LFG_JOIN_RESULT = 0x540000, - SMSG_LFG_LIST_APPLICANT_LIST_UPDATE = 0x54000F, - SMSG_LFG_LIST_APPLICATION_STATUS_UPDATE = 0x54000C, - SMSG_LFG_LIST_APPLY_TO_GROUP_RESULT = 0x54000D, - SMSG_LFG_LIST_JOIN_RESULT = 0x540001, - SMSG_LFG_LIST_SEARCH_RESULTS = 0x540002, - SMSG_LFG_LIST_SEARCH_RESULTS_UPDATE = 0x540010, - SMSG_LFG_LIST_SEARCH_STATUS = 0x540003, - SMSG_LFG_LIST_UPDATE_BLACKLIST = 0x54000E, - SMSG_LFG_LIST_UPDATE_EXPIRATION = 0x54000B, - SMSG_LFG_LIST_UPDATE_STATUS = 0x54000A, - SMSG_LFG_OFFER_CONTINUE = 0x540018, - SMSG_LFG_PARTY_INFO = 0x54001A, - SMSG_LFG_PLAYER_INFO = 0x54001B, - SMSG_LFG_PLAYER_REWARD = 0x54001C, - SMSG_LFG_PROPOSAL_UPDATE = 0x540011, - SMSG_LFG_QUEUE_STATUS = 0x540004, - SMSG_LFG_READY_CHECK_RESULT = 0x54001E, - SMSG_LFG_READY_CHECK_UPDATE = 0x540006, - SMSG_LFG_ROLE_CHECK_UPDATE = 0x540005, - SMSG_LFG_SLOT_INVALID = 0x540014, - SMSG_LFG_SUSPEND_LOREWALKING = 0x540021, - SMSG_LFG_TELEPORT_DENIED = 0x540016, - SMSG_LFG_UPDATE_STATUS = 0x540008, - SMSG_LIVE_REGION_ACCOUNT_RESTORE_RESULT = 0x400210, - SMSG_LIVE_REGION_CHARACTER_COPY_RESULT = 0x40020F, - SMSG_LIVE_REGION_GET_ACCOUNT_CHARACTER_LIST_RESULT = 0x400203, - SMSG_LIVE_REGION_KEY_BINDINGS_COPY_RESULT = 0x400211, - SMSG_LOAD_CUF_PROFILES = 0x400059, - SMSG_LOAD_EQUIPMENT_SET = 0x4001B1, - SMSG_LOBBY_MATCHMAKER_LOBBY_ACQUIRED_SERVER = 0x400316, - SMSG_LOBBY_MATCHMAKER_PARTY_INFO = 0x400317, - SMSG_LOBBY_MATCHMAKER_PARTY_INVITE_REJECTED = 0x400318, - SMSG_LOBBY_MATCHMAKER_QUEUE_PROPOSED = 0x40031A, - SMSG_LOBBY_MATCHMAKER_QUEUE_RESULT = 0x40031B, - SMSG_LOBBY_MATCHMAKER_RECEIVE_INVITE = 0x400319, - SMSG_LOGIN_SET_TIME_SPEED = 0x4001B0, - SMSG_LOGIN_VERIFY_WORLD = 0x40002F, - SMSG_LOGOUT_CANCEL_ACK = 0x400129, - SMSG_LOGOUT_COMPLETE = 0x400128, - SMSG_LOGOUT_RESPONSE = 0x400127, - SMSG_LOG_XP_GAIN = 0x400187, - SMSG_LOOT_ALL_PASSED = 0x4000C3, - SMSG_LOOT_LIST = 0x4001E2, - SMSG_LOOT_MONEY_NOTIFY = 0x4000BE, - SMSG_LOOT_RELEASE = 0x4000BD, - SMSG_LOOT_RELEASE_ALL = 0x4000BC, - SMSG_LOOT_REMOVED = 0x4000B8, - SMSG_LOOT_RESPONSE = 0x4000B7, - SMSG_LOOT_ROLL = 0x4000C0, - SMSG_LOOT_ROLLS_COMPLETE = 0x4000C2, - SMSG_LOOT_ROLL_WON = 0x4000C4, - SMSG_LOSS_OF_CONTROL_AURA_UPDATE = 0x400113, - SMSG_MAIL_COMMAND_RESULT = 0x4000DD, - SMSG_MAIL_LIST_RESULT = 0x4001F7, - SMSG_MAIL_QUERY_NEXT_TIME_RESULT = 0x4001F8, - SMSG_MAP_OBJECTIVES_INIT = 0x46002A, - SMSG_MAP_OBJ_EVENTS = 0x400063, - SMSG_MASTER_LOOT_CANDIDATE_LIST = 0x4000C1, - SMSG_MEETING_STONE_FAILED = 0x40031C, - SMSG_MESSAGE_BOX = 0x40000A, - SMSG_MINIMAP_PING = 0x400171, - SMSG_MIRROR_IMAGE_COMPONENTED_DATA = 0x5F0004, - SMSG_MIRROR_IMAGE_CREATURE_DATA = 0x5F0003, - SMSG_MIRROR_VARS = 0x40035D, - SMSG_MISSILE_CANCEL = 0x400064, - SMSG_MODIFY_COOLDOWN = 0x400205, - SMSG_MOTD = 0x450003, - SMSG_MOUNT_RESULT = 0x40000F, - SMSG_MOVEMENT_ENFORCEMENT_ALERT = 0x4002CB, - SMSG_MOVE_ADD_IMPULSE = 0x580062, - SMSG_MOVE_APPLY_INERTIA = 0x58005E, - SMSG_MOVE_APPLY_MOVEMENT_FORCE = 0x580045, - SMSG_MOVE_DISABLE_COLLISION = 0x580041, - SMSG_MOVE_DISABLE_DOUBLE_JUMP = 0x58002B, - SMSG_MOVE_DISABLE_FULL_SPEED_TURNING = 0x580075, - SMSG_MOVE_DISABLE_GRAVITY = 0x58003D, - SMSG_MOVE_DISABLE_INERTIA = 0x58003F, - SMSG_MOVE_DISABLE_TRANSITION_BETWEEN_SWIM_AND_FLY = 0x58003C, - SMSG_MOVE_ENABLE_COLLISION = 0x580042, - SMSG_MOVE_ENABLE_DOUBLE_JUMP = 0x58002A, - SMSG_MOVE_ENABLE_FULL_SPEED_TURNING = 0x580074, - SMSG_MOVE_ENABLE_GRAVITY = 0x58003E, - SMSG_MOVE_ENABLE_INERTIA = 0x580040, - SMSG_MOVE_ENABLE_TRANSITION_BETWEEN_SWIM_AND_FLY = 0x58003B, - SMSG_MOVE_KNOCK_BACK = 0x580031, - SMSG_MOVE_REMOVE_INERTIA = 0x58005F, - SMSG_MOVE_REMOVE_MOVEMENT_FORCE = 0x580046, - SMSG_MOVE_ROOT = 0x580027, - SMSG_MOVE_SET_ACTIVE_MOVER = 0x580003, - SMSG_MOVE_SET_ADV_FLYING_ADD_IMPULSE_MAX_SPEED = 0x58006B, - SMSG_MOVE_SET_ADV_FLYING_AIR_FRICTION = 0x580066, - SMSG_MOVE_SET_ADV_FLYING_BANKING_RATE = 0x58006C, - SMSG_MOVE_SET_ADV_FLYING_DOUBLE_JUMP_VEL_MOD = 0x580069, - SMSG_MOVE_SET_ADV_FLYING_GLIDE_START_MIN_HEIGHT = 0x58006A, - SMSG_MOVE_SET_ADV_FLYING_LAUNCH_SPEED_COEFFICIENT = 0x580072, - SMSG_MOVE_SET_ADV_FLYING_LIFT_COEFFICIENT = 0x580068, - SMSG_MOVE_SET_ADV_FLYING_MAX_VEL = 0x580067, - SMSG_MOVE_SET_ADV_FLYING_OVER_MAX_DECELERATION = 0x580071, - SMSG_MOVE_SET_ADV_FLYING_PITCHING_RATE_DOWN = 0x58006D, - SMSG_MOVE_SET_ADV_FLYING_PITCHING_RATE_UP = 0x58006E, - SMSG_MOVE_SET_ADV_FLYING_SURFACE_FRICTION = 0x580070, - SMSG_MOVE_SET_ADV_FLYING_TURN_VELOCITY_THRESHOLD = 0x58006F, - SMSG_MOVE_SET_CANT_SWIM = 0x580035, - SMSG_MOVE_SET_CAN_ADV_FLY = 0x580064, - SMSG_MOVE_SET_CAN_DRIVE = 0x580076, - SMSG_MOVE_SET_CAN_FLY = 0x580033, - SMSG_MOVE_SET_CAN_TURN_WHILE_FALLING = 0x580037, - SMSG_MOVE_SET_COLLISION_HEIGHT = 0x580043, - SMSG_MOVE_SET_COMPOUND_STATE = 0x580047, - SMSG_MOVE_SET_FEATHER_FALL = 0x58002D, - SMSG_MOVE_SET_FLIGHT_BACK_SPEED = 0x580023, - SMSG_MOVE_SET_FLIGHT_SPEED = 0x580022, - SMSG_MOVE_SET_HOVERING = 0x58002F, - SMSG_MOVE_SET_IGNORE_MOVEMENT_FORCES = 0x580039, - SMSG_MOVE_SET_LAND_WALK = 0x58002C, - SMSG_MOVE_SET_MOD_MOVEMENT_FORCE_MAGNITUDE = 0x580014, - SMSG_MOVE_SET_NORMAL_FALL = 0x58002E, - SMSG_MOVE_SET_PITCH_RATE = 0x580026, - SMSG_MOVE_SET_RUN_BACK_SPEED = 0x58001F, - SMSG_MOVE_SET_RUN_SPEED = 0x58001E, - SMSG_MOVE_SET_SWIM_BACK_SPEED = 0x580021, - SMSG_MOVE_SET_SWIM_SPEED = 0x580020, - SMSG_MOVE_SET_TURN_RATE = 0x580025, - SMSG_MOVE_SET_VEHICLE_REC_ID = 0x580044, - SMSG_MOVE_SET_WALK_SPEED = 0x580024, - SMSG_MOVE_SET_WATER_WALK = 0x580029, - SMSG_MOVE_SKIP_TIME = 0x580048, - SMSG_MOVE_SPLINE_DISABLE_COLLISION = 0x58004D, - SMSG_MOVE_SPLINE_DISABLE_GRAVITY = 0x58004B, - SMSG_MOVE_SPLINE_ENABLE_COLLISION = 0x58004E, - SMSG_MOVE_SPLINE_ENABLE_GRAVITY = 0x58004C, - SMSG_MOVE_SPLINE_ROOT = 0x580049, - SMSG_MOVE_SPLINE_SET_FEATHER_FALL = 0x58004F, - SMSG_MOVE_SPLINE_SET_FLIGHT_BACK_SPEED = 0x58001A, - SMSG_MOVE_SPLINE_SET_FLIGHT_SPEED = 0x580019, - SMSG_MOVE_SPLINE_SET_FLYING = 0x580059, - SMSG_MOVE_SPLINE_SET_HOVER = 0x580051, - SMSG_MOVE_SPLINE_SET_LAND_WALK = 0x580054, - SMSG_MOVE_SPLINE_SET_NORMAL_FALL = 0x580050, - SMSG_MOVE_SPLINE_SET_PITCH_RATE = 0x58001D, - SMSG_MOVE_SPLINE_SET_RUN_BACK_SPEED = 0x580016, - SMSG_MOVE_SPLINE_SET_RUN_MODE = 0x580057, - SMSG_MOVE_SPLINE_SET_RUN_SPEED = 0x580015, - SMSG_MOVE_SPLINE_SET_SWIM_BACK_SPEED = 0x580018, - SMSG_MOVE_SPLINE_SET_SWIM_SPEED = 0x580017, - SMSG_MOVE_SPLINE_SET_TURN_RATE = 0x58001C, - SMSG_MOVE_SPLINE_SET_WALK_MODE = 0x580058, - SMSG_MOVE_SPLINE_SET_WALK_SPEED = 0x58001B, - SMSG_MOVE_SPLINE_SET_WATER_WALK = 0x580053, - SMSG_MOVE_SPLINE_START_SWIM = 0x580055, - SMSG_MOVE_SPLINE_STOP_SWIM = 0x580056, - SMSG_MOVE_SPLINE_UNROOT = 0x58004A, - SMSG_MOVE_SPLINE_UNSET_FLYING = 0x58005A, - SMSG_MOVE_SPLINE_UNSET_HOVER = 0x580052, - SMSG_MOVE_TELEPORT = 0x580032, - SMSG_MOVE_UNROOT = 0x580028, - SMSG_MOVE_UNSET_CANT_SWIM = 0x580036, - SMSG_MOVE_UNSET_CAN_ADV_FLY = 0x580065, - SMSG_MOVE_UNSET_CAN_DRIVE = 0x580077, - SMSG_MOVE_UNSET_CAN_FLY = 0x580034, - SMSG_MOVE_UNSET_CAN_TURN_WHILE_FALLING = 0x580038, - SMSG_MOVE_UNSET_HOVERING = 0x580030, - SMSG_MOVE_UNSET_IGNORE_MOVEMENT_FORCES = 0x58003A, - SMSG_MOVE_UPDATE = 0x58000E, - SMSG_MOVE_UPDATE_ADD_IMPULSE = 0x580063, - SMSG_MOVE_UPDATE_APPLY_INERTIA = 0x580060, - SMSG_MOVE_UPDATE_APPLY_MOVEMENT_FORCE = 0x580012, - SMSG_MOVE_UPDATE_COLLISION_HEIGHT = 0x58000D, - SMSG_MOVE_UPDATE_FLIGHT_BACK_SPEED = 0x58000A, - SMSG_MOVE_UPDATE_FLIGHT_SPEED = 0x580009, - SMSG_MOVE_UPDATE_KNOCK_BACK = 0x580010, - SMSG_MOVE_UPDATE_MOD_MOVEMENT_FORCE_MAGNITUDE = 0x580011, - SMSG_MOVE_UPDATE_PITCH_RATE = 0x58000C, - SMSG_MOVE_UPDATE_REMOVE_INERTIA = 0x580061, - SMSG_MOVE_UPDATE_REMOVE_MOVEMENT_FORCE = 0x580013, - SMSG_MOVE_UPDATE_RUN_BACK_SPEED = 0x580005, - SMSG_MOVE_UPDATE_RUN_SPEED = 0x580004, - SMSG_MOVE_UPDATE_SWIM_BACK_SPEED = 0x580008, - SMSG_MOVE_UPDATE_SWIM_SPEED = 0x580007, - SMSG_MOVE_UPDATE_TELEPORT = 0x58000F, - SMSG_MOVE_UPDATE_TURN_RATE = 0x58000B, - SMSG_MOVE_UPDATE_WALK_SPEED = 0x580006, - SMSG_MULTIPLE_PACKETS = 0x47000B, - SMSG_MULTI_FLOOR_LEAVE_FLOOR = 0x40027A, - SMSG_MULTI_FLOOR_NEW_FLOOR = 0x400279, - SMSG_MYTHIC_PLUS_ALL_MAP_STATS = 0x4000AC, - SMSG_MYTHIC_PLUS_CURRENT_AFFIXES = 0x4000AE, - SMSG_MYTHIC_PLUS_NEW_WEEK_RECORD = 0x4000B4, - SMSG_MYTHIC_PLUS_SEASON_DATA = 0x4000AD, - SMSG_NEUTRAL_PLAYER_FACTION_SELECT_RESULT = 0x400078, - SMSG_NEW_DATA_BUILD = 0x400340, - SMSG_NEW_TAXI_PATH = 0x400122, - SMSG_NEW_WORLD = 0x40002B, - SMSG_NOTIFY_DEST_LOC_SPELL_CAST = 0x5F0034, - SMSG_NOTIFY_MISSILE_TRAJECTORY_COLLISION = 0x40014E, - SMSG_NOTIFY_MONEY = 0x400031, - SMSG_NOTIFY_RECEIVED_MAIL = 0x4000DE, - SMSG_NPC_INTERACTION_OPEN_RESULT = 0x400312, - SMSG_OFFER_PETITION_ERROR = 0x400159, - SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA = 0x400188, - SMSG_ON_MONSTER_MOVE = 0x580002, - SMSG_OPEN_ARTIFACT_FORGE = 0x40023F, - SMSG_OPEN_CONTAINER = 0x600006, - SMSG_OPEN_LFG_DUNGEON_FINDER = 0x540015, - SMSG_OPEN_SHIPMENT_NPC_RESULT = 0x400237, - SMSG_OVERRIDE_LIGHT = 0x40015E, - SMSG_PAGE_TEXT = 0x4001BC, - SMSG_PARTY_COMMAND_RESULT = 0x400231, - SMSG_PARTY_ELIGIBILITY_FOR_DELVE_TIERS_RESPONSE = 0x400355, - SMSG_PARTY_INVITE = 0x40005A, - SMSG_PARTY_KILL_LOG = 0x4001FB, - SMSG_PARTY_MEMBER_FULL_STATE = 0x4001FA, - SMSG_PARTY_MEMBER_PARTIAL_STATE = 0x4001F9, - SMSG_PARTY_NOTIFY_LFG_LEADER_CHANGE = 0x4002FB, - SMSG_PARTY_UPDATE = 0x400090, - SMSG_PAST_TIME_EVENTS = 0x40005F, - SMSG_PAUSE_MIRROR_TIMER = 0x4001B3, - SMSG_PENDING_RAID_LOCK = 0x40019A, - SMSG_PERKS_PROGRAM_ACTIVITY_COMPLETE = 0x40030F, - SMSG_PERKS_PROGRAM_ACTIVITY_UPDATE = 0x40030B, - SMSG_PERKS_PROGRAM_DISABLED = 0x400310, - SMSG_PERKS_PROGRAM_RESULT = 0x40030C, - SMSG_PERKS_PROGRAM_VENDOR_UPDATE = 0x40030A, - SMSG_PETITION_ALREADY_SIGNED = 0x400037, - SMSG_PETITION_RENAME_GUILD_RESPONSE = 0x4C0042, - SMSG_PETITION_SHOW_LIST = 0x400161, - SMSG_PETITION_SHOW_SIGNATURES = 0x400162, - SMSG_PETITION_SIGN_RESULTS = 0x4001ED, - SMSG_PET_ACTION_FEEDBACK = 0x4001EA, - SMSG_PET_ACTION_SOUND = 0x400144, - SMSG_PET_BATTLE_CHAT_RESTRICTED = 0x4000A2, - SMSG_PET_BATTLE_DEBUG_QUEUE_DUMP_RESPONSE = 0x400118, - SMSG_PET_BATTLE_FINALIZE_LOCATION = 0x40009B, - SMSG_PET_BATTLE_FINAL_ROUND = 0x4000A0, - SMSG_PET_BATTLE_FINISHED = 0x4000A1, - SMSG_PET_BATTLE_FIRST_ROUND = 0x40009D, - SMSG_PET_BATTLE_INITIAL_UPDATE = 0x40009C, - SMSG_PET_BATTLE_MAX_GAME_LENGTH_WARNING = 0x4000A3, - SMSG_PET_BATTLE_PVP_CHALLENGE = 0x40009A, - SMSG_PET_BATTLE_QUEUE_PROPOSE_MATCH = 0x4000DB, - SMSG_PET_BATTLE_QUEUE_STATUS = 0x4000DC, - SMSG_PET_BATTLE_REPLACEMENTS_MADE = 0x40009F, - SMSG_PET_BATTLE_REQUEST_FAILED = 0x400099, - SMSG_PET_BATTLE_ROUND_RESULT = 0x40009E, - SMSG_PET_BATTLE_SLOT_UPDATES = 0x400088, - SMSG_PET_CAST_FAILED = 0x5F0049, - SMSG_PET_CLEAR_SPELLS = 0x5F0013, - SMSG_PET_DISMISS_SOUND = 0x400145, - SMSG_PET_GOD_MODE = 0x40011F, - SMSG_PET_GUIDS = 0x4001A6, - SMSG_PET_LEARNED_SPELLS = 0x5F0040, - SMSG_PET_MODE = 0x40001F, - SMSG_PET_NAME_INVALID = 0x400166, - SMSG_PET_NEWLY_TAMED = 0x40001E, - SMSG_PET_SPELLS_MESSAGE = 0x5F0014, - SMSG_PET_STABLE_RESULT = 0x40002A, - SMSG_PET_TAME_FAILURE = 0x400156, - SMSG_PET_UNLEARNED_SPELLS = 0x5F0041, - SMSG_PHASE_SHIFT_CHANGE = 0x40000C, - SMSG_PLAYED_TIME = 0x400178, - SMSG_PLAYER_ACKNOWLEDGE_ARROW_CALLOUT = 0x5C002E, - SMSG_PLAYER_AZERITE_ITEM_EQUIPPED_STATUS_CHANGED = 0x5C0020, - SMSG_PLAYER_AZERITE_ITEM_GAINS = 0x5C001F, - SMSG_PLAYER_BONUS_ROLL_FAILED = 0x5C0022, - SMSG_PLAYER_BOUND = 0x5C0000, - SMSG_PLAYER_CHOICE_CLEAR = 0x5C0006, - SMSG_PLAYER_CHOICE_DISPLAY_ERROR = 0x5C0005, - SMSG_PLAYER_CONDITION_RESULT = 0x5C0013, - SMSG_PLAYER_END_OF_MATCH_DETAILS = 0x5C0030, - SMSG_PLAYER_HIDE_ARROW_CALLOUT = 0x5C002D, - SMSG_PLAYER_IS_ADVENTURE_MAP_POI_VALID = 0x5C0012, - SMSG_PLAYER_OPEN_SUBSCRIPTION_INTERSTITIAL = 0x5C0017, - SMSG_PLAYER_SAVE_GUILD_EMBLEM = 0x4C0041, - SMSG_PLAYER_SAVE_PERSONAL_EMBLEM = 0x5C002F, - SMSG_PLAYER_SHOW_ARROW_CALLOUT = 0x5C002C, - SMSG_PLAYER_SHOW_GENERIC_WIDGET_DISPLAY = 0x5C002A, - SMSG_PLAYER_SHOW_PARTY_POSE_UI = 0x5C002B, - SMSG_PLAYER_SHOW_UI_EVENT_TOAST = 0x5C0025, - SMSG_PLAYER_SKINNED = 0x5C000F, - SMSG_PLAYER_TUTORIAL_HIGHLIGHT_SPELL = 0x5C0016, - SMSG_PLAYER_TUTORIAL_UNHIGHLIGHT_SPELL = 0x5C0015, - SMSG_PLAY_MUSIC = 0x40020A, - SMSG_PLAY_OBJECT_SOUND = 0x40020C, - SMSG_PLAY_ONE_SHOT_ANIM_KIT = 0x4001D2, - SMSG_PLAY_ORPHAN_SPELL_VISUAL = 0x5F0038, - SMSG_PLAY_SCENE = 0x4000D8, - SMSG_PLAY_SOUND = 0x400209, - SMSG_PLAY_SPEAKERBOT_SOUND = 0x40020D, - SMSG_PLAY_SPELL_VISUAL = 0x5F0036, - SMSG_PLAY_SPELL_VISUAL_KIT = 0x5F003A, - SMSG_PLAY_TIME_WARNING = 0x4001A0, - SMSG_PONG = 0x470008, - SMSG_POWER_UPDATE = 0x400175, - SMSG_PRELOAD_CHILD_MAP = 0x40000D, - SMSG_PRELOAD_WORLD = 0x40002C, - SMSG_PREPOPULATE_NAME_CACHE = 0x4002CE, - SMSG_PRE_RESSURECT = 0x400208, - SMSG_PRINT_NOTIFICATION = 0x400067, - SMSG_PROC_RESIST = 0x4001FC, - SMSG_PROFESSION_GOSSIP = 0x40029A, - SMSG_PUSH_SPELL_TO_ACTION_BAR = 0x5F0042, - SMSG_PVP_CREDIT = 0x460024, - SMSG_PVP_MATCH_COMPLETE = 0x46002F, - SMSG_PVP_MATCH_INITIALIZE = 0x460030, - SMSG_PVP_MATCH_SET_STATE = 0x46002E, - SMSG_PVP_MATCH_START = 0x46002D, - SMSG_PVP_MATCH_STATISTICS = 0x460010, - SMSG_PVP_OPTIONS_ENABLED = 0x460013, - SMSG_PVP_TIER_RECORD = 0x400306, - SMSG_QUERY_BATTLE_PET_NAME_RESPONSE = 0x44000C, - SMSG_QUERY_CREATURE_RESPONSE = 0x440006, - SMSG_QUERY_GAME_OBJECT_RESPONSE = 0x440007, - SMSG_QUERY_GARRISON_PET_NAME_RESPONSE = 0x4A0041, - SMSG_QUERY_GUILD_FOLLOW_INFO_RESPONSE = 0x4C002F, - SMSG_QUERY_GUILD_INFO_RESPONSE = 0x4C002D, - SMSG_QUERY_ITEM_TEXT_RESPONSE = 0x440010, - SMSG_QUERY_NEIGHBORHOOD_NAME_RESPONSE = 0x440012, - SMSG_QUERY_NPC_TEXT_RESPONSE = 0x440008, - SMSG_QUERY_PAGE_TEXT_RESPONSE = 0x440009, - SMSG_QUERY_PETITION_RESPONSE = 0x44000D, - SMSG_QUERY_PET_NAME_RESPONSE = 0x44000B, - SMSG_QUERY_PLAYER_NAMES_RESPONSE = 0x5C0027, - SMSG_QUERY_PLAYER_NAME_BY_COMMUNITY_ID_RESPONSE = 0x5C000B, - SMSG_QUERY_QUEST_INFO_RESPONSE = 0x5D0016, - SMSG_QUERY_REALM_GUILD_MASTER_INFO_RESPONSE = 0x4C002E, - SMSG_QUERY_TIME_RESPONSE = 0x400186, - SMSG_QUEST_COMPLETION_NPC_RESPONSE = 0x5D0001, - SMSG_QUEST_CONFIRM_ACCEPT = 0x5D000F, - SMSG_QUEST_FORCE_REMOVED = 0x5D001C, - SMSG_QUEST_GIVER_INVALID_QUEST = 0x5D0005, - SMSG_QUEST_GIVER_OFFER_REWARD_MESSAGE = 0x5D0014, - SMSG_QUEST_GIVER_QUEST_COMPLETE = 0x5D0003, - SMSG_QUEST_GIVER_QUEST_DETAILS = 0x5D0012, - SMSG_QUEST_GIVER_QUEST_FAILED = 0x5D0006, - SMSG_QUEST_GIVER_QUEST_LIST_MESSAGE = 0x5D001A, - SMSG_QUEST_GIVER_REQUEST_ITEMS = 0x5D0013, - SMSG_QUEST_GIVER_STATUS = 0x5D001B, - SMSG_QUEST_GIVER_STATUS_MULTIPLE = 0x5D0011, - SMSG_QUEST_ITEM_USABILITY_RESPONSE = 0x5D0002, - SMSG_QUEST_LOG_FULL = 0x5D0007, - SMSG_QUEST_NON_LOG_UPDATE_COMPLETE = 0x5D0008, - SMSG_QUEST_POI_QUERY_RESPONSE = 0x5D001D, - SMSG_QUEST_POI_UPDATE_RESPONSE = 0x5D001F, - SMSG_QUEST_PUSH_RESULT = 0x5D0010, - SMSG_QUEST_SESSION_INFO_RESPONSE = 0x4002F1, - SMSG_QUEST_SESSION_READY_CHECK = 0x4002DF, - SMSG_QUEST_SESSION_READY_CHECK_RESPONSE = 0x4002E0, - SMSG_QUEST_SESSION_RESULT = 0x4002DE, - SMSG_QUEST_UPDATE_ADD_CREDIT = 0x5D000C, - SMSG_QUEST_UPDATE_ADD_CREDIT_SIMPLE = 0x5D000D, - SMSG_QUEST_UPDATE_ADD_PVP_CREDIT = 0x5D000E, - SMSG_QUEST_UPDATE_COMPLETE = 0x5D0009, - SMSG_QUEST_UPDATE_FAILED = 0x5D000A, - SMSG_QUEST_UPDATE_FAILED_TIMER = 0x5D000B, - SMSG_QUEUE_SUMMARY_UPDATE = 0x4002AD, - SMSG_RAF_ACCOUNT_INFO = 0x4002DC, - SMSG_RAF_ACTIVITY_STATE_CHANGED = 0x4002ED, - SMSG_RAF_DEBUG_FRIEND_MONTHS = 0x40033D, - SMSG_RAID_DIFFICULTY_SET = 0x400248, - SMSG_RAID_GROUP_ONLY = 0x40024A, - SMSG_RAID_INSTANCE_MESSAGE = 0x45000A, - SMSG_RAID_MARKERS_CHANGED = 0x400038, - SMSG_RANDOM_ROLL = 0x4000D2, - SMSG_RATED_PVP_INFO = 0x46000F, - SMSG_READY_CHECK_COMPLETED = 0x400094, - SMSG_READY_CHECK_RESPONSE = 0x400093, - SMSG_READY_CHECK_STARTED = 0x400092, - SMSG_READ_ITEM_RESULT_FAILED = 0x400244, - SMSG_READ_ITEM_RESULT_OK = 0x40023C, - SMSG_REALM_QUERY_RESPONSE = 0x440005, - SMSG_REATTACH_RESURRECT = 0x4001EC, - SMSG_RECEIVE_PING_UNIT = 0x400039, - SMSG_RECEIVE_PING_WORLD_POINT = 0x40003A, - SMSG_RECENT_ALLY_DATA_RESPONSE = 0x400358, - SMSG_RECENT_ALLY_NOTE_UPDATED = 0x400359, - SMSG_RECRAFT_ITEM_RESULT = 0x400333, - SMSG_RECRUIT_A_FRIEND_FAILURE = 0x400163, - SMSG_REFRESH_COMPONENT = 0x4000F2, - SMSG_REGIONWIDE_CHARACTER_MAIL_DATA = 0x40001A, - SMSG_REGIONWIDE_CHARACTER_RESTRICTIONS_DATA = 0x400019, - SMSG_REMOVE_ITEM_PASSIVE = 0x400043, - SMSG_REMOVE_SPELL_FROM_ACTION_BAR = 0x5F0043, - SMSG_REPLACE_TROPHY_RESPONSE = 0x400260, - SMSG_REPORT_PVP_PLAYER_AFK_RESULT = 0x5C000A, - SMSG_REQUEST_CEMETERY_LIST_RESPONSE = 0x400025, - SMSG_REQUEST_PVP_REWARDS_RESPONSE = 0x460014, - SMSG_REQUEST_SCHEDULED_PVP_INFO_RESPONSE = 0x460015, - SMSG_RESET_COMPRESSION_CONTEXT = 0x470009, - SMSG_RESET_FAILED_NOTIFY = 0x40015A, - SMSG_RESET_LAST_LOADED_CONFIG_CVARS = 0x40033A, - SMSG_RESET_QUEST_POI = 0x5D0020, - SMSG_RESET_RANGED_COMBAT_TIMER = 0x460023, - SMSG_RESET_WEEKLY_CURRENCY = 0x400009, - SMSG_RESPEC_WIPE_CONFIRM = 0x4000B5, - SMSG_RESPOND_INSPECT_ACHIEVEMENTS = 0x400006, - SMSG_RESPONSE_PERK_PENDING_REWARDS = 0x40030D, - SMSG_RESPONSE_PERK_RECENT_PURCHASES = 0x40030E, - SMSG_RESTART_GLOBAL_COOLDOWN = 0x5F0052, - SMSG_RESTRICTED_ACCOUNT_WARNING = 0x400056, - SMSG_RESUME_CAST = 0x5F002C, - SMSG_RESUME_CAST_BAR = 0x5F002F, - SMSG_RESUME_COMMS = 0x470005, - SMSG_RESUME_TOKEN = 0x400041, - SMSG_RESURRECT_REQUEST = 0x400012, - SMSG_RESYNC_RUNES = 0x5F0050, - SMSG_RETURN_APPLICANT_LIST = 0x4002D2, - SMSG_RETURN_RECRUITING_CLUBS = 0x4002D1, - SMSG_ROLE_CHANGED_INFORM = 0x400021, - SMSG_ROLE_CHOSEN = 0x54001D, - SMSG_ROLE_POLL_INFORM = 0x400022, - SMSG_RUNEFORGE_LEGENDARY_CRAFTING_OPEN_NPC = 0x400299, - SMSG_RUNE_REGEN_DEBUG = 0x400053, - SMSG_SCENARIO_COMPLETED = 0x400287, - SMSG_SCENARIO_POIS = 0x4000D5, - SMSG_SCENARIO_PROGRESS_UPDATE = 0x4000CE, - SMSG_SCENARIO_SHOW_CRITERIA = 0x40029D, - SMSG_SCENARIO_STATE = 0x4000CD, - SMSG_SCENARIO_UI_UPDATE = 0x40029C, - SMSG_SCENARIO_VACATE = 0x400245, - SMSG_SCENE_OBJECT_EVENT = 0x40007E, - SMSG_SCENE_OBJECT_PET_BATTLE_FINAL_ROUND = 0x400083, - SMSG_SCENE_OBJECT_PET_BATTLE_FINISHED = 0x400084, - SMSG_SCENE_OBJECT_PET_BATTLE_FIRST_ROUND = 0x400080, - SMSG_SCENE_OBJECT_PET_BATTLE_INITIAL_UPDATE = 0x40007F, - SMSG_SCENE_OBJECT_PET_BATTLE_REPLACEMENTS_MADE = 0x400082, - SMSG_SCENE_OBJECT_PET_BATTLE_ROUND_RESULT = 0x400081, - SMSG_SCHEDULED_AREA_POI_UPDATE_RESPONSE = 0x5C001A, - SMSG_SCRIPT_CAST = 0x5F0047, - SMSG_SEASON_INFO = 0x40005E, - SMSG_SELL_RESPONSE = 0x400167, - SMSG_SEND_ITEM_PASSIVES = 0x400044, - SMSG_SEND_KNOWN_SPELLS = 0x5F0019, - SMSG_SEND_RAID_TARGET_UPDATE_ALL = 0x4000D0, - SMSG_SEND_RAID_TARGET_UPDATE_SINGLE = 0x4000D1, - SMSG_SEND_SPELL_CHARGES = 0x5F001B, - SMSG_SEND_SPELL_HISTORY = 0x5F001A, - SMSG_SEND_UNLEARN_SPELLS = 0x5F001C, - SMSG_SERVER_FIRST_ACHIEVEMENTS = 0x4000EF, - SMSG_SERVER_TIME = 0x400126, - SMSG_SERVER_TIME_OFFSET = 0x4001B7, - SMSG_SETUP_COMBAT_LOG_FILE_FLUSH = 0x5F000F, - SMSG_SETUP_CURRENCY = 0x400007, - SMSG_SET_AI_ANIM_KIT = 0x4001D1, - SMSG_SET_ANIM_TIER = 0x4001D5, - SMSG_SET_CHR_UPGRADE_TIER = 0x40007B, - SMSG_SET_CTR_OPTIONS = 0x400362, - SMSG_SET_CURRENCY = 0x400008, - SMSG_SET_DF_FAST_LAUNCH_RESULT = 0x540012, - SMSG_SET_DUNGEON_DIFFICULTY = 0x400148, - SMSG_SET_FACTION_AT_WAR = 0x4001A2, - SMSG_SET_FACTION_NOT_VISIBLE = 0x4001CC, - SMSG_SET_FACTION_STANDING = 0x4001CD, - SMSG_SET_FACTION_VISIBLE = 0x4001CB, - SMSG_SET_FLAT_SPELL_MODIFIER = 0x5F0027, - SMSG_SET_INSTANCE_LEAVER = 0x40035E, - SMSG_SET_ITEM_PURCHASE_DATA = 0x400033, - SMSG_SET_LOOT_METHOD_FAILED = 0x40026B, - SMSG_SET_MAX_WEEKLY_QUANTITY = 0x400036, - SMSG_SET_MELEE_ANIM_KIT = 0x4001D4, - SMSG_SET_MOVEMENT_ANIM_KIT = 0x4001D3, - SMSG_SET_PCT_SPELL_MODIFIER = 0x5F0028, - SMSG_SET_PET_SPECIALIZATION = 0x4000C7, - SMSG_SET_PLAYER_DECLINED_NAMES_RESULT = 0x5C000C, - SMSG_SET_PLAY_HOVER_ANIM = 0x400057, - SMSG_SET_PROFICIENCY = 0x4001D6, - SMSG_SET_QUEST_REPLAY_COOLDOWN_OVERRIDE = 0x4002E5, - SMSG_SET_SHIPMENT_READY_RESPONSE = 0x4A003A, - SMSG_SET_SPELL_CHARGES = 0x5F0018, - SMSG_SET_TIME_ZONE_INFORMATION = 0x40011B, - SMSG_SET_VEHICLE_REC_ID = 0x400199, - SMSG_SHADOWLANDS_CAPACITANCE_UPDATE = 0x400311, - SMSG_SHIPMENT_FACTION_UPDATE_RESULT = 0x4A003B, - SMSG_SHOW_DELVES_COMPANION_CONFIGURATION_UI = 0x400353, - SMSG_SHOW_DELVES_DISPLAY_UI = 0x400351, - SMSG_SHOW_NEUTRAL_PLAYER_FACTION_SELECT_UI = 0x400077, - SMSG_SHOW_QUEST_COMPLETION_TEXT = 0x5D0015, - SMSG_SHOW_TAXI_NODES = 0x400170, - SMSG_SHOW_TRADE_SKILL_RESPONSE = 0x400212, - SMSG_SOCIAL_CONTRACT_REQUEST_RESPONSE = 0x40031D, - SMSG_SOCKET_GEMS_FAILURE = 0x4001C9, - SMSG_SOCKET_GEMS_SUCCESS = 0x4001C8, - SMSG_SPECIAL_MOUNT_ANIM = 0x400143, - SMSG_SPECTATE_END = 0x40033F, - SMSG_SPECTATE_PLAYER = 0x40033E, - SMSG_SPEC_INVOLUNTARILY_CHANGED = 0x4001BB, - SMSG_SPELL_ABSORB_LOG = 0x5F000C, - SMSG_SPELL_CATEGORY_COOLDOWN = 0x5F0006, - SMSG_SPELL_CHANNEL_START = 0x5F0022, - SMSG_SPELL_CHANNEL_UPDATE = 0x5F0023, - SMSG_SPELL_COOLDOWN = 0x5F0005, - SMSG_SPELL_DAMAGE_SHIELD = 0x5F001F, - SMSG_SPELL_DELAYED = 0x5F0030, - SMSG_SPELL_DISPELL_LOG = 0x5F0007, - SMSG_SPELL_EMPOWER_SET_STAGE = 0x5F0026, - SMSG_SPELL_EMPOWER_START = 0x5F0024, - SMSG_SPELL_EMPOWER_UPDATE = 0x5F0025, - SMSG_SPELL_ENERGIZE_LOG = 0x5F0009, - SMSG_SPELL_EXECUTE_LOG = 0x5F0031, - SMSG_SPELL_FAILED_OTHER = 0x5F0046, - SMSG_SPELL_FAILURE = 0x5F0044, - SMSG_SPELL_FAILURE_MESSAGE = 0x5F004B, - SMSG_SPELL_GO = 0x5F002A, - SMSG_SPELL_HEAL_ABSORB_LOG = 0x5F000B, - SMSG_SPELL_HEAL_LOG = 0x5F000A, - SMSG_SPELL_INSTAKILL_LOG = 0x5F0021, - SMSG_SPELL_INTERRUPT_LOG = 0x5F000D, - SMSG_SPELL_MISS_LOG = 0x5F0032, - SMSG_SPELL_NON_MELEE_DAMAGE_LOG = 0x5F0020, - SMSG_SPELL_OR_DAMAGE_IMMUNE = 0x5F001D, - SMSG_SPELL_PERIODIC_AURA_LOG = 0x5F0008, - SMSG_SPELL_PREPARE = 0x5F0029, - SMSG_SPELL_START = 0x5F002B, - SMSG_SPELL_VISUAL_LOAD_SCREEN = 0x400069, - SMSG_SPLASH_SCREEN_SHOW_LATEST = 0x4002F7, - SMSG_STAND_STATE_UPDATE = 0x4001BF, - SMSG_STARTER_BUILD_ACTIVATE_FAILED = 0x40006F, - SMSG_START_ELAPSED_TIMER = 0x4000A4, - SMSG_START_ELAPSED_TIMERS = 0x4000A6, - SMSG_START_LIGHTNING_STORM = 0x40014B, - SMSG_START_LOOT_ROLL = 0x4000BF, - SMSG_START_MIRROR_TIMER = 0x4001B2, - SMSG_START_TIMER = 0x40003D, - SMSG_STOP_ELAPSED_TIMER = 0x4000A5, - SMSG_STOP_MIRROR_TIMER = 0x4001B4, - SMSG_STOP_SPEAKERBOT_SOUND = 0x40020E, - SMSG_STOP_TIMER = 0x40003E, - SMSG_STREAMING_MOVIES = 0x40003C, - SMSG_SUGGEST_INVITE_INFORM = 0x400232, - SMSG_SUMMON_CANCEL = 0x400154, - SMSG_SUMMON_RAID_MEMBER_VALIDATE_FAILED = 0x400023, - SMSG_SUMMON_REQUEST = 0x4001C3, - SMSG_SUPERCEDED_SPELLS = 0x5F003D, - SMSG_SURVEY_DELIVERED = 0x40035B, - SMSG_SUSPEND_COMMS = 0x470004, - SMSG_SUSPEND_TOKEN = 0x400040, - SMSG_SYNC_WOW_ENTITLEMENTS = 0x4002EF, - SMSG_TAKE_SCREENSHOT_FOR_COMPLAINT = 0x5C0032, - SMSG_TALENTS_INVOLUNTARILY_RESET = 0x4001BA, - SMSG_TAXI_NODE_STATUS = 0x400120, - SMSG_TEXT_EMOTE = 0x40011E, - SMSG_THREAT_CLEAR = 0x40017F, - SMSG_THREAT_REMOVE = 0x40017E, - SMSG_THREAT_UPDATE = 0x40017D, - SMSG_TIMERUNNING_SEASON_ENDED = 0x400354, - SMSG_TIME_ADJUSTMENT = 0x580001, - SMSG_TIME_SYNC_REQUEST = 0x580000, - SMSG_TITLE_EARNED = 0x40017A, - SMSG_TITLE_LOST = 0x40017B, - SMSG_TOTEM_CREATED = 0x40016A, - SMSG_TOTEM_DURATION_CHANGED = 0x40016C, - SMSG_TOTEM_MOVED = 0x40016D, - SMSG_TOTEM_REMOVED = 0x40016B, - SMSG_TRADE_STATUS = 0x400017, - SMSG_TRADE_UPDATED = 0x400016, - SMSG_TRAINER_BUY_FAILED = 0x400182, - SMSG_TRAINER_LIST = 0x400181, - SMSG_TRAIT_CONFIG_COMMIT_FAILED = 0x40006E, - SMSG_TRANSFER_ABORTED = 0x4001A5, - SMSG_TRANSFER_PENDING = 0x40006A, - SMSG_TREASURE_PICKER_RESPONSE = 0x440011, - SMSG_TRIGGER_CINEMATIC = 0x400265, - SMSG_TRIGGER_MOVIE = 0x40016E, - SMSG_TURN_IN_PETITION_RESULT = 0x4001EF, - SMSG_TUTORIAL_FLAGS = 0x400259, - SMSG_UI_ACTION = 0x40020B, - SMSG_UI_MAP_QUEST_LINES_RESPONSE = 0x5D0023, - SMSG_UNDELETE_CHARACTER_RESPONSE = 0x400266, - SMSG_UNDELETE_COOLDOWN_STATUS_RESPONSE = 0x400267, - SMSG_UNLEARNED_SPELLS = 0x5F003F, - SMSG_UNLOAD_CHILD_MAP = 0x40000E, - SMSG_UNSET_INSTANCE_LEAVER = 0x40035F, - SMSG_UPDATE_AADC_STATUS_RESPONSE = 0x400307, - SMSG_UPDATE_ACCOUNT_DATA = 0x4001AB, - SMSG_UPDATE_ACCOUNT_DATA_COMPLETE = 0x4001AC, - SMSG_UPDATE_ACTION_BUTTONS = 0x40007C, - SMSG_UPDATE_BNET_SESSION_KEY = 0x4002BF, - SMSG_UPDATE_CAPTURE_POINT = 0x460007, - SMSG_UPDATE_CELESTIAL_BODY = 0x4002BB, - SMSG_UPDATE_CHARACTER_FLAGS = 0x40025F, - SMSG_UPDATE_CHARGE_CATEGORY_COOLDOWN = 0x400207, - SMSG_UPDATE_COOLDOWN = 0x400206, - SMSG_UPDATE_CRAFTING_NPC_RECIPES = 0x4A0038, - SMSG_UPDATE_DAILY_MISSION_COUNTER = 0x4A0021, - SMSG_UPDATE_EXPANSION_LEVEL = 0x4000E8, - SMSG_UPDATE_GAME_TIME_STATE = 0x4002C2, - SMSG_UPDATE_INSTANCE_OWNERSHIP = 0x40014D, - SMSG_UPDATE_LAST_INSTANCE = 0x40012C, - SMSG_UPDATE_OBJECT = 0x560000, - SMSG_UPDATE_PRIMARY_SPEC = 0x400074, - SMSG_UPDATE_RECENT_PLAYER_GUIDS = 0x400091, - SMSG_UPDATE_TALENT_DATA = 0x400073, - SMSG_UPDATE_WORLD_STATE = 0x4001E9, - SMSG_USERLIST_ADD = 0x45000F, - SMSG_USERLIST_REMOVE = 0x450010, - SMSG_USERLIST_UPDATE = 0x450011, - SMSG_USE_EQUIPMENT_SET_RESULT = 0x4001F0, - SMSG_VAS_CHECK_TRANSFER_OK_RESPONSE = 0x4002B6, - SMSG_VAS_GET_QUEUE_MINUTES_RESPONSE = 0x4002B4, - SMSG_VAS_GET_SERVICE_STATUS_RESPONSE = 0x4002B3, - SMSG_VAS_PURCHASE_COMPLETE = 0x40028D, - SMSG_VAS_PURCHASE_STATE_UPDATE = 0x40028C, - SMSG_VENDOR_INVENTORY = 0x400055, - SMSG_VIGNETTE_UPDATE = 0x5C0011, - SMSG_VOICE_CHANNEL_INFO_RESPONSE = 0x4002BA, - SMSG_VOICE_CHANNEL_STT_TOKEN_RESPONSE = 0x400302, - SMSG_VOICE_LOGIN_RESPONSE = 0x4002B9, - SMSG_VOID_ITEM_SWAP_RESPONSE = 0x600004, - SMSG_VOID_STORAGE_CONTENTS = 0x600001, - SMSG_VOID_STORAGE_FAILED = 0x600000, - SMSG_VOID_STORAGE_TRANSFER_CHANGES = 0x600002, - SMSG_VOID_TRANSFER_RESULT = 0x600003, - SMSG_WAIT_QUEUE_FINISH = 0x400003, - SMSG_WAIT_QUEUE_UPDATE = 0x400002, - SMSG_WALK_IN_RESULT = 0x620000, - SMSG_WARDEN3_DATA = 0x40000B, - SMSG_WARDEN3_DISABLED = 0x4002BD, - SMSG_WARDEN3_ENABLED = 0x4002BC, - SMSG_WARFRONT_COMPLETE = 0x4001FF, - SMSG_WARGAME_REQUEST_OPPONENT_RESPONSE = 0x460012, - SMSG_WARGAME_REQUEST_SUCCESSFULLY_SENT_TO_OPPONENT = 0x460011, - SMSG_WEATHER = 0x40014A, - SMSG_WEEKLY_REWARDS_PROGRESS_RESULT = 0x4002FA, - SMSG_WEEKLY_REWARDS_RESULT = 0x4002F8, - SMSG_WEEKLY_REWARD_CLAIM_RESULT = 0x4002F9, - SMSG_WHO = 0x450002, - SMSG_WHO_IS = 0x400149, - SMSG_WILL_BE_KICKED_FOR_ADDED_SUBSCRIPTION_TIME = 0x4002C1, - SMSG_WORLD_QUEST_UPDATE_RESPONSE = 0x5C0018, - SMSG_WORLD_SERVER_INFO = 0x400045, - SMSG_WOW_ENTITLEMENT_NOTIFICATION = 0x4002F0, - SMSG_WOW_LABS_AREA_INFO = 0x400322, - SMSG_WOW_LABS_NOTIFY_PLAYERS_MATCH_END = 0x40031E, - SMSG_WOW_LABS_NOTIFY_PLAYERS_MATCH_STATE_CHANGED = 0x40031F, - SMSG_WOW_LABS_PARTY_ERROR = 0x40032B, - SMSG_WOW_LABS_SET_AREA_ID_RESULT = 0x400320, - SMSG_WOW_LABS_SET_PREDICTION_CIRCLE = 0x400324, - SMSG_WOW_LABS_SET_SELECTED_AREA_ID = 0x400321, - SMSG_XP_AWARDED_FROM_CURRENCY = 0x400339, - SMSG_XP_GAIN_ABORTED = 0x400066, - SMSG_XP_GAIN_ENABLED = 0x400249, - SMSG_ZONE_UNDER_ATTACK = 0x45000B, + SMSG_ABORT_NEW_WORLD = 0x420030, + SMSG_ACCOUNT_CHARACTER_CURRENCY_LISTS = 0x420350, + SMSG_ACCOUNT_CONVERSION_STATE_UPDATE = 0x420355, + SMSG_ACCOUNT_COSMETIC_ADDED = 0x420311, + SMSG_ACCOUNT_CRITERIA_UPDATE = 0x4202F9, + SMSG_ACCOUNT_DATA_TIMES = 0x4201B4, + SMSG_ACCOUNT_EXPORT_RESPONSE = 0x420342, + SMSG_ACCOUNT_EXTERIOR_FIXTURE_COLLECTION_UPDATE = 0x420054, + SMSG_ACCOUNT_HEIRLOOM_UPDATE = 0x420049, + SMSG_ACCOUNT_HOUSE_TYPE_COLLECTION_UPDATE = 0x420057, + SMSG_ACCOUNT_ITEM_COLLECTION_DATA = 0x42035B, + SMSG_ACCOUNT_MOUNT_REMOVED = 0x420047, + SMSG_ACCOUNT_MOUNT_UPDATE = 0x420046, + SMSG_ACCOUNT_NOTIFICATIONS_RESPONSE = 0x420310, + SMSG_ACCOUNT_ROOM_COLLECTION_UPDATE = 0x420053, + SMSG_ACCOUNT_ROOM_MATERIAL_COLLECTION_UPDATE = 0x420056, + SMSG_ACCOUNT_ROOM_THEME_COLLECTION_UPDATE = 0x420055, + SMSG_ACCOUNT_STORE_CURRENCY_UPDATE = 0x42032B, + SMSG_ACCOUNT_STORE_FRONT_UPDATE = 0x42032C, + SMSG_ACCOUNT_STORE_ITEM_STATE_CHANGED = 0x42032D, + SMSG_ACCOUNT_STORE_RESULT = 0x42032E, + SMSG_ACCOUNT_TOY_UPDATE = 0x420048, + SMSG_ACCOUNT_TRANSMOG_SET_FAVORITES_UPDATE = 0x420050, + SMSG_ACCOUNT_TRANSMOG_UPDATE = 0x42004F, + SMSG_ACCOUNT_WARBAND_SCENE_UPDATE = 0x420052, + SMSG_ACHIEVEMENT_DELETED = 0x420191, + SMSG_ACHIEVEMENT_EARNED = 0x4200EB, + SMSG_ACTIVATE_ESSENCE_FAILED = 0x5F0021, + SMSG_ACTIVATE_SOULBIND_FAILED = 0x5F0023, + SMSG_ACTIVATE_TAXI_REPLY = 0x420127, + SMSG_ACTIVE_GLYPHS = 0x620047, + SMSG_ACTIVE_SCHEDULED_WORLD_STATE_INFO = 0x4201EF, + SMSG_ADDON_LIST_REQUEST = 0x4200EA, + SMSG_ADD_BATTLENET_FRIEND_RESPONSE = 0x4200E5, + SMSG_ADD_ITEM_PASSIVE = 0x420042, + SMSG_ADD_LOSS_OF_CONTROL = 0x42011A, + SMSG_ADD_RUNE_POWER = 0x420162, + SMSG_ADJUST_SPLINE_DURATION = 0x420073, + SMSG_ADVANCED_COMBAT_LOG = 0x42030E, + SMSG_ADVENTURE_JOURNAL_DATA_RESPONSE = 0x420309, + SMSG_AE_LOOT_TARGETS = 0x4200C0, + SMSG_AE_LOOT_TARGET_ACK = 0x4200C1, + SMSG_AI_REACTION = 0x42015F, + SMSG_ALLIED_RACE_DETAILS = 0x4202A2, + SMSG_ALL_ACCOUNT_CRITERIA = 0x420005, + SMSG_ALL_ACHIEVEMENT_DATA = 0x420004, + SMSG_ALL_GUILD_ACHIEVEMENTS = 0x4E0000, + SMSG_APPLY_MOUNT_EQUIPMENT_RESULT = 0x4202E6, + SMSG_ARCHAEOLOGY_SURVERY_CAST = 0x42001D, + SMSG_AREA_POI_UPDATE_RESPONSE = 0x5F0019, + SMSG_AREA_SPIRIT_HEALER_TIME = 0x4201E8, + SMSG_AREA_TRIGGER_DENIED = 0x430004, + SMSG_AREA_TRIGGER_NO_CORPSE = 0x4201C0, + SMSG_AREA_TRIGGER_PLAY_SPELL_VISUAL = 0x430002, + SMSG_AREA_TRIGGER_UPDATE_DECAL_PROPERTIES = 0x430003, + SMSG_ARENA_CLEAR_OPPONENTS = 0x4200F1, + SMSG_ARENA_CROWD_CONTROL_SPELL_RESULT = 0x4200DA, + SMSG_ARENA_PREP_OPPONENT_SPECIALIZATIONS = 0x4200F0, + SMSG_ARTIFACT_ENDGAME_POWERS_REFUNDED = 0x420250, + SMSG_ARTIFACT_FORGE_ERROR = 0x42024E, + SMSG_ARTIFACT_RESPEC_PROMPT = 0x42024F, + SMSG_ARTIFACT_XP_GAIN = 0x420295, + SMSG_ATTACKER_STATE_UPDATE = 0x48002C, + SMSG_ATTACK_START = 0x480017, + SMSG_ATTACK_STOP = 0x480018, + SMSG_ATTACK_SWING_ERROR = 0x480026, + SMSG_ATTACK_SWING_LANDED_LOG = 0x480027, + SMSG_AUCTIONABLE_TOKEN_AUCTION_SOLD = 0x42027E, + SMSG_AUCTIONABLE_TOKEN_SELL_AT_MARKET_PRICE_RESPONSE = 0x42027D, + SMSG_AUCTIONABLE_TOKEN_SELL_CONFIRM_REQUIRED = 0x42027C, + SMSG_AUCTION_CLOSED_NOTIFICATION = 0x42019C, + SMSG_AUCTION_COMMAND_RESULT = 0x420199, + SMSG_AUCTION_DISABLE_NEW_POSTINGS = 0x42032F, + SMSG_AUCTION_FAVORITE_LIST = 0x420300, + SMSG_AUCTION_GET_COMMODITY_QUOTE_RESULT = 0x4202F8, + SMSG_AUCTION_HELLO_RESPONSE = 0x420197, + SMSG_AUCTION_LIST_BIDDED_ITEMS_RESULT = 0x4202F7, + SMSG_AUCTION_LIST_BUCKETS_RESULT = 0x4202F3, + SMSG_AUCTION_LIST_ITEMS_RESULT = 0x4202F4, + SMSG_AUCTION_LIST_OWNED_ITEMS_RESULT = 0x4202F6, + SMSG_AUCTION_OUTBID_NOTIFICATION = 0x42019B, + SMSG_AUCTION_OWNER_BID_NOTIFICATION = 0x42019D, + SMSG_AUCTION_REPLICATE_RESPONSE = 0x420198, + SMSG_AUCTION_WON_NOTIFICATION = 0x42019A, + SMSG_AURA_POINTS_DEPLETED = 0x620012, + SMSG_AURA_UPDATE = 0x620011, + SMSG_AUTH_CHALLENGE = 0x490000, + SMSG_AUTH_FAILED = 0x420000, + SMSG_AUTH_RESPONSE = 0x420001, + SMSG_AVAILABLE_HOTFIXES = 0x460001, + SMSG_BACKPACK_DEFAULT_SIZE_CHANGED = 0x420330, + SMSG_BAG_CLEANUP_FINISHED = 0x630007, + SMSG_BARBER_SHOP_RESULT = 0x420167, + SMSG_BATCH_PRESENCE_SUBSCRIPTION = 0x4202D7, + SMSG_BATTLEFIELD_LIST = 0x480005, + SMSG_BATTLEFIELD_PORT_DENIED = 0x48000B, + SMSG_BATTLEFIELD_STATUS_ACTIVE = 0x480001, + SMSG_BATTLEFIELD_STATUS_FAILED = 0x480004, + SMSG_BATTLEFIELD_STATUS_GROUP_PROPOSAL_FAILED = 0x48000E, + SMSG_BATTLEFIELD_STATUS_NEED_CONFIRMATION = 0x480000, + SMSG_BATTLEFIELD_STATUS_NONE = 0x480003, + SMSG_BATTLEFIELD_STATUS_QUEUED = 0x480002, + SMSG_BATTLEFIELD_STATUS_WAIT_FOR_GROUPS = 0x48000D, + SMSG_BATTLEGROUND_INFO_THROTTLED = 0x48000C, + SMSG_BATTLEGROUND_INIT = 0x480029, + SMSG_BATTLEGROUND_PLAYER_JOINED = 0x480009, + SMSG_BATTLEGROUND_PLAYER_LEFT = 0x48000A, + SMSG_BATTLEGROUND_PLAYER_POSITIONS = 0x480006, + SMSG_BATTLEGROUND_POINTS = 0x480028, + SMSG_BATTLENET_CHALLENGE_ABORT = 0x420238, + SMSG_BATTLENET_CHALLENGE_START = 0x420237, + SMSG_BATTLENET_NOTIFICATION = 0x4202AE, + SMSG_BATTLENET_RESPONSE = 0x4202AD, + SMSG_BATTLE_NET_CONNECTION_STATUS = 0x4202AF, + SMSG_BATTLE_PAY_ACK_FAILED = 0x420233, + SMSG_BATTLE_PAY_BATTLE_PET_DELIVERED = 0x420222, + SMSG_BATTLE_PAY_COLLECTION_ITEM_DELIVERED = 0x420223, + SMSG_BATTLE_PAY_CONFIRM_PURCHASE = 0x420232, + SMSG_BATTLE_PAY_DELIVERY_ENDED = 0x420220, + SMSG_BATTLE_PAY_DELIVERY_STARTED = 0x42021F, + SMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_VAS_RESPONSE = 0x420316, + SMSG_BATTLE_PAY_DISTRIBUTION_UNREVOKED = 0x42021D, + SMSG_BATTLE_PAY_DISTRIBUTION_UPDATE = 0x42021E, + SMSG_BATTLE_PAY_GET_DISTRIBUTION_LIST_RESPONSE = 0x42021C, + SMSG_BATTLE_PAY_GET_PRODUCT_LIST_RESPONSE = 0x42021A, + SMSG_BATTLE_PAY_GET_PURCHASE_LIST_RESPONSE = 0x42021B, + SMSG_BATTLE_PAY_MOUNT_DELIVERED = 0x420221, + SMSG_BATTLE_PAY_PURCHASE_UPDATE = 0x420231, + SMSG_BATTLE_PAY_START_CHECKOUT = 0x4202CB, + SMSG_BATTLE_PAY_START_DISTRIBUTION_ASSIGN_TO_TARGET_RESPONSE = 0x42022F, + SMSG_BATTLE_PAY_START_PURCHASE_RESPONSE = 0x42022E, + SMSG_BATTLE_PAY_VALIDATE_PURCHASE_RESPONSE = 0x4202BE, + SMSG_BATTLE_PETS_HEALED = 0x420095, + SMSG_BATTLE_PET_CAGE_DATE_ERROR = 0x420122, + SMSG_BATTLE_PET_DELETED = 0x420092, + SMSG_BATTLE_PET_ERROR = 0x4200E0, + SMSG_BATTLE_PET_JOURNAL = 0x420091, + SMSG_BATTLE_PET_JOURNAL_LOCK_ACQUIRED = 0x42008F, + SMSG_BATTLE_PET_JOURNAL_LOCK_DENIED = 0x420090, + SMSG_BATTLE_PET_RESTORED = 0x420094, + SMSG_BATTLE_PET_REVOKED = 0x420093, + SMSG_BATTLE_PET_TRAP_LEVEL = 0x42008D, + SMSG_BATTLE_PET_UPDATES = 0x42008C, + SMSG_BIND_POINT_UPDATE = 0x420011, + SMSG_BLACK_MARKET_BID_ON_ITEM_RESULT = 0x4200D0, + SMSG_BLACK_MARKET_OUTBID = 0x4200D1, + SMSG_BLACK_MARKET_REQUEST_ITEMS_RESULT = 0x4200CF, + SMSG_BLACK_MARKET_WON = 0x4200D2, + SMSG_BONUS_ROLL_EMPTY = 0x4200ED, + SMSG_BOSS_KILL = 0x48002B, + SMSG_BREAK_TARGET = 0x480016, + SMSG_BROADCAST_ACHIEVEMENT = 0x470012, + SMSG_BROADCAST_SUMMON_CAST = 0x4202D9, + SMSG_BROADCAST_SUMMON_RESPONSE = 0x4202DA, + SMSG_BULK_PURCHASE_RESPONSE = 0x420373, + SMSG_BULK_PURCHASE_UPDATE_RESPONSE = 0x420374, + SMSG_BULK_REFUND_RESPONSE = 0x420375, + SMSG_BUY_FAILED = 0x420170, + SMSG_BUY_SUCCEEDED = 0x42016F, + SMSG_CACHE_INFO = 0x46000F, + SMSG_CACHE_VERSION = 0x46000E, + SMSG_CALENDAR_CLEAR_PENDING_ACTION = 0x420147, + SMSG_CALENDAR_COMMAND_RESULT = 0x420148, + SMSG_CALENDAR_COMMUNITY_INVITE = 0x420137, + SMSG_CALENDAR_EVENT_REMOVED_ALERT = 0x42013F, + SMSG_CALENDAR_EVENT_UPDATED_ALERT = 0x420140, + SMSG_CALENDAR_INVITE_ADDED = 0x420138, + SMSG_CALENDAR_INVITE_ALERT = 0x42013C, + SMSG_CALENDAR_INVITE_NOTES = 0x420141, + SMSG_CALENDAR_INVITE_NOTES_ALERT = 0x420142, + SMSG_CALENDAR_INVITE_REMOVED = 0x420139, + SMSG_CALENDAR_INVITE_REMOVED_ALERT = 0x42013E, + SMSG_CALENDAR_INVITE_STATUS = 0x42013A, + SMSG_CALENDAR_INVITE_STATUS_ALERT = 0x42013D, + SMSG_CALENDAR_MODERATOR_STATUS = 0x42013B, + SMSG_CALENDAR_RAID_LOCKOUT_ADDED = 0x420143, + SMSG_CALENDAR_RAID_LOCKOUT_REMOVED = 0x420144, + SMSG_CALENDAR_RAID_LOCKOUT_UPDATED = 0x420145, + SMSG_CALENDAR_SEND_CALENDAR = 0x420135, + SMSG_CALENDAR_SEND_EVENT = 0x420136, + SMSG_CALENDAR_SEND_NUM_PENDING = 0x420146, + SMSG_CAMERA_EFFECT = 0x4201CE, + SMSG_CANCEL_AUTO_REPEAT = 0x420187, + SMSG_CANCEL_COMBAT = 0x480025, + SMSG_CANCEL_ORPHAN_SPELL_VISUAL = 0x620039, + SMSG_CANCEL_PING_PIN = 0x42003B, + SMSG_CANCEL_PRELOAD_WORLD = 0x42002E, + SMSG_CANCEL_SCENE = 0x4200DF, + SMSG_CANCEL_SPELL_VISUAL = 0x620037, + SMSG_CANCEL_SPELL_VISUAL_KIT = 0x62003B, + SMSG_CAN_DUEL_RESULT = 0x480021, + SMSG_CAN_REDEEM_TOKEN_FOR_BALANCE_RESPONSE = 0x4202BD, + SMSG_CAPTURE_POINT_REMOVED = 0x480008, + SMSG_CAST_FAILED = 0x62004A, + SMSG_CAS_REFRESH_REMOTE_DATA = 0x420120, + SMSG_CATALOG_SHOP_LICENSE_DATA = 0x4202BF, + SMSG_CATALOG_SHOP_OBTAIN_LICENSE = 0x420369, + SMSG_CATALOG_SHOP_OPEN_CHECKOUT_RESULT = 0x42035C, + SMSG_CAUTIONARY_CHANNEL_MESSAGE = 0x470009, + SMSG_CAUTIONARY_CHAT_MESSAGE = 0x470008, + SMSG_CHAIN_MISSILE_BOUNCE = 0x42006B, + SMSG_CHALLENGE_MODE_COMPLETE = 0x4200B0, + SMSG_CHALLENGE_MODE_NEW_PLAYER_RECORD = 0x4200B1, + SMSG_CHALLENGE_MODE_REQUEST_LEADERBOARD_RESULT = 0x4200B8, + SMSG_CHALLENGE_MODE_REQUEST_LEADERS_RESULT = 0x4200B7, + SMSG_CHALLENGE_MODE_RESET = 0x4200AF, + SMSG_CHALLENGE_MODE_SET_LEAVER_PENALTY_TIMER = 0x5F0031, + SMSG_CHALLENGE_MODE_START = 0x4200AD, + SMSG_CHALLENGE_MODE_UPDATE_DEATH_COUNT = 0x4200AE, + SMSG_CHANGE_PLAYER_DIFFICULTY_RESULT = 0x5F000D, + SMSG_CHANGE_REALM_TICKET_RESPONSE = 0x4202B0, + SMSG_CHANNEL_LIST = 0x47001B, + SMSG_CHANNEL_NOTIFY = 0x470017, + SMSG_CHANNEL_NOTIFY_JOINED = 0x470019, + SMSG_CHANNEL_NOTIFY_LEFT = 0x47001A, + SMSG_CHANNEL_NOTIFY_NPE_JOINED_BATCH = 0x470018, + SMSG_CHARACTER_CHECK_UPGRADE_RESULT = 0x42026A, + SMSG_CHARACTER_LOGIN_FAILED = 0x4201AE, + SMSG_CHARACTER_OBJECT_TEST_RESPONSE = 0x420236, + SMSG_CHARACTER_RENAME_RESULT = 0x42020B, + SMSG_CHARACTER_UPGRADE_ABORTED = 0x420269, + SMSG_CHARACTER_UPGRADE_COMPLETE = 0x420268, + SMSG_CHARACTER_UPGRADE_MANUAL_UNREVOKE_RESULT = 0x42026B, + SMSG_CHARACTER_UPGRADE_STARTED = 0x420267, + SMSG_CHAR_CUSTOMIZE_FAILURE = 0x42018B, + SMSG_CHAR_CUSTOMIZE_SUCCESS = 0x42018C, + SMSG_CHAR_FACTION_CHANGE_RESULT = 0x420254, + SMSG_CHAT = 0x470001, + SMSG_CHAT_AUTO_RESPONDED = 0x47000E, + SMSG_CHAT_CAN_LOCAL_WHISPER_TARGET_RESPONSE = 0x470022, + SMSG_CHAT_DOWN = 0x470014, + SMSG_CHAT_IGNORED_ACCOUNT_MUTED = 0x470000, + SMSG_CHAT_IS_DOWN = 0x470015, + SMSG_CHAT_NOT_IN_GUILD = 0x470023, + SMSG_CHAT_NOT_IN_PARTY = 0x470006, + SMSG_CHAT_PLAYER_AMBIGUOUS = 0x470004, + SMSG_CHAT_PLAYER_NOTFOUND = 0x47000D, + SMSG_CHAT_RECONNECT = 0x470016, + SMSG_CHAT_REGIONAL_SERVICE_STATUS = 0x47001D, + SMSG_CHAT_RESTRICTED = 0x470007, + SMSG_CHAT_SERVER_MESSAGE = 0x47001C, + SMSG_CHEAT_IGNORE_DIMISHING_RETURNS = 0x620002, + SMSG_CHECK_ABANDON_NPE = 0x5F0024, + SMSG_CHECK_CHARACTER_NAME_AVAILABILITY_RESULT = 0x42001B, + SMSG_CHECK_WARGAME_ENTRY = 0x420027, + SMSG_CHROMIE_TIME_SELECT_EXPANSION_SUCCESS = 0x420303, + SMSG_CLAIM_RAF_REWARD_RESPONSE = 0x4202EA, + SMSG_CLEAR_ALL_SPELL_CHARGES = 0x620016, + SMSG_CLEAR_BOSS_EMOTES = 0x42005E, + SMSG_CLEAR_COOLDOWN = 0x420164, + SMSG_CLEAR_COOLDOWNS = 0x620015, + SMSG_CLEAR_INITIATIVE_TASK_CRITERIA_PROGRESS = 0x420364, + SMSG_CLEAR_RESURRECT = 0x420013, + SMSG_CLEAR_SPELL_CHARGES = 0x620017, + SMSG_CLEAR_TARGET = 0x480022, + SMSG_CLEAR_TREASURE_PICKER_CACHE = 0x600022, + SMSG_CLOSE_ARTIFACT_FORGE = 0x42024D, + SMSG_CLUB_FINDER_ERROR_MESSAGE = 0x4202E2, + SMSG_CLUB_FINDER_GET_CLUB_POSTING_IDS_RESPONSE = 0x4202E5, + SMSG_CLUB_FINDER_LOOKUP_CLUB_POSTINGS_LIST = 0x4202E3, + SMSG_CLUB_FINDER_RESPONSE_CHARACTER_APPLICATION_LIST = 0x4202E0, + SMSG_CLUB_FINDER_RESPONSE_POST_RECRUITMENT_MESSAGE = 0x4202E4, + SMSG_CLUB_FINDER_UPDATE_APPLICATIONS = 0x4202E1, + SMSG_CLUB_FINDER_WHISPER_APPLICANT_RESPONSE = 0x42031B, + SMSG_COIN_REMOVED = 0x4200BF, + SMSG_COMBAT_EVENT_FAILED = 0x480019, + SMSG_COMMENTATOR_MAP_INFO = 0x4201B0, + SMSG_COMMENTATOR_PLAYER_INFO = 0x4201B1, + SMSG_COMMENTATOR_STATE_CHANGED = 0x4201AF, + SMSG_COMMERCE_TOKEN_GET_COUNT_RESPONSE = 0x420279, + SMSG_COMMERCE_TOKEN_GET_LOG_RESPONSE = 0x420285, + SMSG_COMMERCE_TOKEN_GET_MARKET_PRICE_RESPONSE = 0x42027B, + SMSG_COMMERCE_TOKEN_UPDATE = 0x42027A, + SMSG_COMPLAINT_RESULT = 0x420155, + SMSG_COMPLETE_SHIPMENT_RESPONSE = 0x420246, + SMSG_COMPRESSED_PACKET = 0x49000C, + SMSG_CONFIRM_PARTY_INVITE = 0x4202BC, + SMSG_CONNECT_TO = 0x490007, + SMSG_CONSOLE_WRITE = 0x4200DD, + SMSG_CONSUMABLE_TOKEN_BUY_AT_MARKET_PRICE_RESPONSE = 0x420281, + SMSG_CONSUMABLE_TOKEN_BUY_CHOICE_REQUIRED = 0x420280, + SMSG_CONSUMABLE_TOKEN_CAN_VETERAN_BUY_RESPONSE = 0x42027F, + SMSG_CONSUMABLE_TOKEN_REDEEM_CONFIRM_REQUIRED = 0x420283, + SMSG_CONSUMABLE_TOKEN_REDEEM_RESPONSE = 0x420284, + SMSG_CONTACT_LIST = 0x420234, + SMSG_CONTRIBUTION_LAST_UPDATE_RESPONSE = 0x4202C4, + SMSG_CONTROL_UPDATE = 0x4200EF, + SMSG_CONVERT_ITEMS_TO_CURRENCY_VALUE = 0x42030C, + SMSG_COOLDOWN_CHEAT = 0x4201E1, + SMSG_COOLDOWN_EVENT = 0x420163, + SMSG_CORPSE_LOCATION = 0x4200F6, + SMSG_CORPSE_RECLAIM_DELAY = 0x4201F2, + SMSG_CORPSE_TRANSPORT_QUERY = 0x4201BC, + SMSG_COVENANT_CALLINGS_AVAILABILITY_RESPONSE = 0x600024, + SMSG_COVENANT_PREVIEW_OPEN_NPC = 0x4202A5, + SMSG_COVENANT_RENOWN_SEND_CATCHUP_STATE = 0x42030D, + SMSG_CRAFTING_HOUSE_HELLO_RESPONSE = 0x42033C, + SMSG_CRAFTING_ORDER_CANCEL_RESULT = 0x420338, + SMSG_CRAFTING_ORDER_CLAIM_RESULT = 0x420334, + SMSG_CRAFTING_ORDER_CRAFT_RESULT = 0x420336, + SMSG_CRAFTING_ORDER_CREATE_RESULT = 0x420332, + SMSG_CRAFTING_ORDER_FULFILL_RESULT = 0x420337, + SMSG_CRAFTING_ORDER_LIST_ORDERS_RESPONSE = 0x420333, + SMSG_CRAFTING_ORDER_NPC_REWARD_INFO = 0x42033E, + SMSG_CRAFTING_ORDER_REJECT_RESULT = 0x42033A, + SMSG_CRAFTING_ORDER_RELEASE_RESULT = 0x420335, + SMSG_CRAFTING_ORDER_UPDATE_STATE = 0x42033D, + SMSG_CRAFT_ENCHANT_RESULT = 0x42033B, + SMSG_CREATE_CHAR = 0x4201AA, + SMSG_CREATE_SHIPMENT_RESPONSE = 0x420245, + SMSG_CREATOR_VISUALS_OVERRIDE = 0x420341, + SMSG_CRITERIA_DELETED = 0x420190, + SMSG_CRITERIA_UPDATE = 0x42018A, + SMSG_CROSSED_INEBRIATION_THRESHOLD = 0x42016B, + SMSG_CURRENCY_TRANSFER_LOG = 0x420352, + SMSG_CURRENCY_TRANSFER_RESULT = 0x420351, + SMSG_CUSTOM_LOAD_SCREEN = 0x42006E, + SMSG_DAILY_QUESTS_RESET = 0x600000, + SMSG_DAMAGE_CALC_LOG = 0x620056, + SMSG_DB_REPLY = 0x460000, + SMSG_DEATH_RELEASE_LOC = 0x42017D, + SMSG_DEBUG_MENU_MANAGER_FULL_UPDATE = 0x4200FE, + SMSG_DEFENSE_MESSAGE = 0x47000C, + SMSG_DELETE_CHAR = 0x4201AB, + SMSG_DELETE_EXPIRED_MISSIONS_RESULT = 0x4C0022, + SMSG_DELVES_ACCOUNT_DATA_ELEMENT_CHANGED = 0x420357, + SMSG_DESTROY_ARENA_UNIT = 0x4201EA, + SMSG_DESTRUCTIBLE_BUILDING_DAMAGE = 0x4201A2, + SMSG_DIFFERENT_INSTANCE_FROM_PARTY = 0x420020, + SMSG_DISENCHANT_CREDIT = 0x42003F, + SMSG_DISMOUNT_RESULT = 0x420010, + SMSG_DISPEL_FAILED = 0x62001E, + SMSG_DISPLAY_GAME_ERROR = 0x420035, + SMSG_DISPLAY_PLAYER_CHOICE = 0x5F0004, + SMSG_DISPLAY_PROMOTION = 0x4200F3, + SMSG_DISPLAY_QUEST_POPUP = 0x60001E, + SMSG_DISPLAY_TOAST = 0x4200CC, + SMSG_DISPLAY_WORLD_TEXT = 0x420296, + SMSG_DISPLAY_WORLD_TEXT_ON_TARGET = 0x620055, + SMSG_DONT_AUTO_PUSH_SPELLS_TO_ACTION_BAR = 0x420083, + SMSG_DROP_NEW_CONNECTION = 0x490006, + SMSG_DUEL_ARRANGED = 0x48001B, + SMSG_DUEL_COMPLETE = 0x48001F, + SMSG_DUEL_COUNTDOWN = 0x48001E, + SMSG_DUEL_IN_BOUNDS = 0x48001D, + SMSG_DUEL_OUT_OF_BOUNDS = 0x48001C, + SMSG_DUEL_REQUESTED = 0x48001A, + SMSG_DUEL_WINNER = 0x480020, + SMSG_DURABILITY_DAMAGE_DEATH = 0x4201ED, + SMSG_EMOTE = 0x420271, + SMSG_ENABLE_BARBER_SHOP = 0x420166, + SMSG_ENCHANTMENT_LOG = 0x4201BD, + SMSG_ENCOUNTER_END = 0x420227, + SMSG_ENCOUNTER_START = 0x420226, + SMSG_END_LIGHTNING_STORM = 0x420152, + SMSG_ENTER_ENCRYPTED_MODE = 0x490003, + SMSG_ENUM_CHARACTERS_RESULT = 0x420018, + SMSG_ENUM_VAS_PURCHASE_STATES_RESPONSE = 0x42029B, + SMSG_ENVIRONMENTAL_DAMAGE_LOG = 0x62000E, + SMSG_EQUIPMENT_SET_ID = 0x42015B, + SMSG_EXPECTED_SPAM_RECORDS = 0x470005, + SMSG_EXPLORATION_EXPERIENCE = 0x420207, + SMSG_EXPORT_ACCOUNT_PROFILE = 0x4200FB, + SMSG_EXTERNAL_TRANSACTION_ID_GENERATED = 0x42030A, + SMSG_FACTION_BONUS_INFO = 0x4201CD, + SMSG_FAILED_PLAYER_CONDITION = 0x5F0002, + SMSG_FAILED_QUEST_TURN_IN = 0x4202B9, + SMSG_FEATURE_SYSTEM_STATUS = 0x420062, + SMSG_FEATURE_SYSTEM_STATUS_GLUE_SCREEN = 0x420063, + SMSG_FEIGN_DEATH_RESISTED = 0x4201EC, + SMSG_FISH_ESCAPED = 0x42017A, + SMSG_FISH_NOT_HOOKED = 0x420179, + SMSG_FLIGHT_SPLINE_SYNC = 0x5A005D, + SMSG_FLUSH_COMBAT_LOG_FILE = 0x620010, + SMSG_FORCED_DEATH_UPDATE = 0x42017E, + SMSG_FORCE_ANIM = 0x4201F9, + SMSG_FORCE_ANIMATIONS = 0x4201FA, + SMSG_FORCE_RANDOM_TRANSMOG_TOAST = 0x42004E, + SMSG_FORCE_SPAWN_TRACKING_UPDATE = 0x600021, + SMSG_FRIEND_STATUS = 0x420235, + SMSG_GAIN_MAW_POWER = 0x42028A, + SMSG_GAME_OBJECT_ACTIVATE_ANIM_KIT = 0x420066, + SMSG_GAME_OBJECT_BASE = 0x4202D1, + SMSG_GAME_OBJECT_CLOSE_INTERACTION = 0x42031A, + SMSG_GAME_OBJECT_CUSTOM_ANIM = 0x420067, + SMSG_GAME_OBJECT_DESPAWN = 0x420068, + SMSG_GAME_OBJECT_INTERACTION = 0x420319, + SMSG_GAME_OBJECT_PLAY_SPELL_VISUAL = 0x62003E, + SMSG_GAME_OBJECT_PLAY_SPELL_VISUAL_KIT = 0x62003D, + SMSG_GAME_OBJECT_RESET_STATE = 0x4201C7, + SMSG_GAME_OBJECT_SET_STATE_LOCAL = 0x4202AC, + SMSG_GAME_SPEED_SET = 0x42012B, + SMSG_GAME_TIME_SET = 0x4201B6, + SMSG_GAME_TIME_UPDATE = 0x4201B5, + SMSG_GARRISON_ACTIVATE_MISSION_BONUS_ABILITY = 0x4C0024, + SMSG_GARRISON_ADD_EVENT = 0x4C0048, + SMSG_GARRISON_ADD_FOLLOWER_RESULT = 0x4C0016, + SMSG_GARRISON_ADD_MISSION_RESULT = 0x4C001A, + SMSG_GARRISON_ADD_SPEC_GROUPS = 0x4C004B, + SMSG_GARRISON_APPLY_TALENT_SOCKET_DATA_CHANGES = 0x4C004F, + SMSG_GARRISON_ASSIGN_FOLLOWER_TO_BUILDING_RESULT = 0x4C002C, + SMSG_GARRISON_AUTO_TROOP_MIN_LEVEL_UPDATE_RESULT = 0x4C0051, + SMSG_GARRISON_BUILDING_ACTIVATED = 0x4C000B, + SMSG_GARRISON_BUILDING_REMOVED = 0x4C0004, + SMSG_GARRISON_BUILDING_SET_ACTIVE_SPECIALIZATION_RESULT = 0x4C0006, + SMSG_GARRISON_CHANGE_MISSION_START_TIME_RESULT = 0x4C001D, + SMSG_GARRISON_CLEAR_COLLECTION = 0x4C0047, + SMSG_GARRISON_CLEAR_EVENT_LIST = 0x4C004A, + SMSG_GARRISON_CLEAR_SPEC_GROUPS = 0x4C004C, + SMSG_GARRISON_COLLECTION_REMOVE_ENTRY = 0x4C0046, + SMSG_GARRISON_COLLECTION_UPDATE_ENTRY = 0x4C0045, + SMSG_GARRISON_COMPLETE_BUILDING_CONSTRUCTION_RESULT = 0x4C003D, + SMSG_GARRISON_COMPLETE_MISSION_RESULT = 0x4C001C, + SMSG_GARRISON_CREATE_RESULT = 0x4C000C, + SMSG_GARRISON_DELETE_MISSION_RESULT = 0x4C0023, + SMSG_GARRISON_DELETE_RESULT = 0x4C0035, + SMSG_GARRISON_FOLLOWER_ACTIVATIONS_SET = 0x4C002B, + SMSG_GARRISON_FOLLOWER_CHANGED_FLAGS = 0x4C0029, + SMSG_GARRISON_FOLLOWER_CHANGED_ITEM_LEVEL = 0x4C0027, + SMSG_GARRISON_FOLLOWER_CHANGED_QUALITY = 0x4C0028, + SMSG_GARRISON_FOLLOWER_CHANGED_XP = 0x4C0026, + SMSG_GARRISON_FOLLOWER_FATIGUE_CLEARED = 0x4C002A, + SMSG_GARRISON_GENERATE_FOLLOWERS_RESULT = 0x4C0033, + SMSG_GARRISON_GET_CLASS_SPEC_CATEGORY_INFO_RESULT = 0x4C0015, + SMSG_GARRISON_GET_RECALL_PORTAL_LAST_USED_TIME_RESULT = 0x4C001E, + SMSG_GARRISON_IS_UPGRADEABLE_RESPONSE = 0x4C003F, + SMSG_GARRISON_LEARN_BLUEPRINT_RESULT = 0x4C0007, + SMSG_GARRISON_LEARN_SPECIALIZATION_RESULT = 0x4C0005, + SMSG_GARRISON_LIST_COMPLETED_MISSIONS_CHEAT_RESULT = 0x4C0040, + SMSG_GARRISON_LIST_FOLLOWERS_CHEAT_RESULT = 0x4C0019, + SMSG_GARRISON_MAP_DATA_RESPONSE = 0x4C0042, + SMSG_GARRISON_MISSION_BONUS_ROLL_RESULT = 0x4C0020, + SMSG_GARRISON_MISSION_REQUEST_REWARD_INFO_RESPONSE = 0x4C0043, + SMSG_GARRISON_MISSION_START_CONDITION_UPDATE = 0x4C0025, + SMSG_GARRISON_OPEN_CRAFTER = 0x4C0037, + SMSG_GARRISON_OPEN_RECRUITMENT_NPC = 0x4C0030, + SMSG_GARRISON_PLACE_BUILDING_RESULT = 0x4C0003, + SMSG_GARRISON_PLOT_PLACED = 0x4C0001, + SMSG_GARRISON_PLOT_REMOVED = 0x4C0002, + SMSG_GARRISON_RECRUIT_FOLLOWER_RESULT = 0x4C0034, + SMSG_GARRISON_REMOTE_INFO = 0x4C000A, + SMSG_GARRISON_REMOVE_EVENT = 0x4C0049, + SMSG_GARRISON_REMOVE_FOLLOWER_ABILITY_RESULT = 0x4C002F, + SMSG_GARRISON_REMOVE_FOLLOWER_FROM_BUILDING_RESULT = 0x4C002D, + SMSG_GARRISON_REMOVE_FOLLOWER_RESULT = 0x4C0017, + SMSG_GARRISON_RENAME_FOLLOWER_RESULT = 0x4C002E, + SMSG_GARRISON_REQUEST_BLUEPRINT_AND_SPECIALIZATION_DATA_RESULT = 0x4C0009, + SMSG_GARRISON_RESEARCH_TALENT_RESULT = 0x4C000E, + SMSG_GARRISON_RESET_TALENT_TREE = 0x4C0013, + SMSG_GARRISON_RESET_TALENT_TREE_SOCKET_DATA = 0x4C0014, + SMSG_GARRISON_START_MISSION_RESULT = 0x4C001B, + SMSG_GARRISON_SWAP_BUILDINGS_RESPONSE = 0x4C003C, + SMSG_GARRISON_SWITCH_TALENT_TREE_BRANCH = 0x4C004D, + SMSG_GARRISON_TALENT_COMPLETED = 0x4C000F, + SMSG_GARRISON_TALENT_REMOVED = 0x4C0010, + SMSG_GARRISON_TALENT_REMOVE_SOCKET_DATA = 0x4C0012, + SMSG_GARRISON_TALENT_UPDATE_SOCKET_DATA = 0x4C0011, + SMSG_GARRISON_TALENT_WORLD_QUEST_UNLOCKS_RESPONSE = 0x4C004E, + SMSG_GARRISON_UNLEARN_BLUEPRINT_RESULT = 0x4C0008, + SMSG_GARRISON_UPDATE_FOLLOWER = 0x4C0018, + SMSG_GARRISON_UPDATE_GARRISON_MONUMENT_SELECTIONS = 0x4C003E, + SMSG_GARRISON_UPDATE_MISSION_CHEAT_RESULT = 0x4C0050, + SMSG_GARRISON_UPGRADE_RESULT = 0x4C000D, + SMSG_GARRISON_USE_RECALL_PORTAL_RESULT = 0x4C001F, + SMSG_GENERATE_RANDOM_CHARACTER_NAME_RESULT = 0x42001C, + SMSG_GENERATE_SSO_TOKEN_RESPONSE = 0x4202C5, + SMSG_GET_ACCOUNT_CHARACTER_LIST_RESULT = 0x420209, + SMSG_GET_ALL_LICENSED_DECOR_QUANTITIES_RESPONSE = 0x420377, + SMSG_GET_DECOR_REFUND_LIST_RESPONSE = 0x420372, + SMSG_GET_GARRISON_INFO_RESULT = 0x4C0000, + SMSG_GET_INITIATIVE_ACTIVITY_LOG_RESULT = 0x420366, + SMSG_GET_INITIATIVE_REWARDS_RESULT = 0x420367, + SMSG_GET_LANDING_PAGE_SHIPMENTS_RESPONSE = 0x420248, + SMSG_GET_PLAYER_INITIATIVE_INFO_RESULT = 0x420365, + SMSG_GET_REALM_HIDDEN_RESULT = 0x420347, + SMSG_GET_REMAINING_GAME_TIME_RESPONSE = 0x420282, + SMSG_GET_SELECTED_TROPHY_ID_RESPONSE = 0x42026F, + SMSG_GET_SHIPMENTS_OF_TYPE_RESPONSE = 0x420247, + SMSG_GET_SHIPMENT_INFO_RESPONSE = 0x420243, + SMSG_GET_TROPHY_LIST_RESPONSE = 0x42026E, + SMSG_GET_VAS_ACCOUNT_CHARACTER_LIST_RESULT = 0x420297, + SMSG_GET_VAS_TRANSFER_TARGET_REALM_LIST_RESULT = 0x420298, + SMSG_GM_PLAYER_INFO = 0x5F000E, + SMSG_GM_REQUEST_PLAYER_INFO = 0x5F0003, + SMSG_GM_TICKET_CASE_STATUS = 0x42014D, + SMSG_GM_TICKET_SYSTEM_STATUS = 0x42014C, + SMSG_GOD_MODE = 0x4201A5, + SMSG_GOSSIP_COMPLETE = 0x600017, + SMSG_GOSSIP_MESSAGE = 0x600018, + SMSG_GOSSIP_OPTION_NPC_INTERACTION = 0x600028, + SMSG_GOSSIP_POI = 0x420240, + SMSG_GOSSIP_QUEST_UPDATE = 0x600019, + SMSG_GOSSIP_REFRESH_OPTIONS = 0x600027, + SMSG_GROUP_ACTION_THROTTLED = 0x420024, + SMSG_GROUP_AUTO_KICK = 0x42023D, + SMSG_GROUP_DECLINE = 0x420239, + SMSG_GROUP_DESTROYED = 0x42023C, + SMSG_GROUP_NEW_LEADER = 0x4200D5, + SMSG_GROUP_REQUEST_DECLINE = 0x42023A, + SMSG_GROUP_UNINVITE = 0x42023B, + SMSG_GUILD_ACHIEVEMENT_DELETED = 0x4E000D, + SMSG_GUILD_ACHIEVEMENT_EARNED = 0x4E000C, + SMSG_GUILD_ACHIEVEMENT_MEMBERS = 0x4E000F, + SMSG_GUILD_BANK_LOG_QUERY_RESULTS = 0x4E0027, + SMSG_GUILD_BANK_QUERY_RESULTS = 0x4E0026, + SMSG_GUILD_BANK_REMAINING_WITHDRAW_MONEY = 0x4E0028, + SMSG_GUILD_BANK_TEXT_QUERY_RESULT = 0x4E002B, + SMSG_GUILD_CHALLENGE_COMPLETED = 0x4E001B, + SMSG_GUILD_CHALLENGE_UPDATE = 0x4E001A, + SMSG_GUILD_CHANGE_NAME_RESULT = 0x4E0025, + SMSG_GUILD_COMMAND_RESULT = 0x4E0002, + SMSG_GUILD_CRITERIA_DELETED = 0x4E000E, + SMSG_GUILD_CRITERIA_UPDATE = 0x4E000B, + SMSG_GUILD_EVENT_BANK_CONTENTS_CHANGED = 0x4E0040, + SMSG_GUILD_EVENT_BANK_MONEY_CHANGED = 0x4E003F, + SMSG_GUILD_EVENT_DISBANDED = 0x4E0035, + SMSG_GUILD_EVENT_LOG_QUERY_RESULTS = 0x4E002A, + SMSG_GUILD_EVENT_MOTD = 0x4E0036, + SMSG_GUILD_EVENT_NEW_LEADER = 0x4E0034, + SMSG_GUILD_EVENT_PLAYER_JOINED = 0x4E0032, + SMSG_GUILD_EVENT_PLAYER_LEFT = 0x4E0033, + SMSG_GUILD_EVENT_PRESENCE_CHANGE = 0x4E0037, + SMSG_GUILD_EVENT_RANKS_UPDATED = 0x4E0039, + SMSG_GUILD_EVENT_RANK_CHANGED = 0x4E003A, + SMSG_GUILD_EVENT_STATUS_CHANGE = 0x4E0038, + SMSG_GUILD_EVENT_TAB_ADDED = 0x4E003B, + SMSG_GUILD_EVENT_TAB_DELETED = 0x4E003C, + SMSG_GUILD_EVENT_TAB_MODIFIED = 0x4E003D, + SMSG_GUILD_EVENT_TAB_TEXT_CHANGED = 0x4E003E, + SMSG_GUILD_FLAGGED_FOR_RENAME = 0x4E0024, + SMSG_GUILD_HARDCORE_MEMBER_DEATH = 0x4E0004, + SMSG_GUILD_INVITE = 0x4E0012, + SMSG_GUILD_INVITE_DECLINED = 0x4E0030, + SMSG_GUILD_INVITE_EXPIRED = 0x4E0031, + SMSG_GUILD_ITEM_LOOTED_NOTIFY = 0x4E001C, + SMSG_GUILD_KNOWN_RECIPES = 0x4E0006, + SMSG_GUILD_MEMBERS_WITH_RECIPE = 0x4E0007, + SMSG_GUILD_MEMBER_DAILY_RESET = 0x4E002C, + SMSG_GUILD_MEMBER_RECIPES = 0x4E0005, + SMSG_GUILD_MEMBER_UPDATE_NOTE = 0x4E0011, + SMSG_GUILD_MOVED = 0x4E0022, + SMSG_GUILD_MOVE_STARTING = 0x4E0021, + SMSG_GUILD_NAME_CHANGED = 0x4E0023, + SMSG_GUILD_NEWS = 0x4E0009, + SMSG_GUILD_NEWS_DELETED = 0x4E000A, + SMSG_GUILD_OTHERS_OWNED_HOUSES_RESULT = 0x4E0047, + SMSG_GUILD_PARTY_STATE = 0x4E0013, + SMSG_GUILD_PERMISSIONS_QUERY_RESULTS = 0x4E0029, + SMSG_GUILD_RANKS = 0x4E0010, + SMSG_GUILD_RENAME_NAME_CHECK = 0x4E0044, + SMSG_GUILD_RENAME_REFUND_RESULT = 0x4E0046, + SMSG_GUILD_RENAME_REQUESTED_RESULT = 0x4E0045, + SMSG_GUILD_RENAME_STATUS_UPDATE = 0x4E0043, + SMSG_GUILD_REPUTATION_REACTION_CHANGED = 0x4E0014, + SMSG_GUILD_RESET = 0x4E0020, + SMSG_GUILD_REWARD_LIST = 0x4E0008, + SMSG_GUILD_ROSTER = 0x4E0003, + SMSG_GUILD_SEND_RANK_CHANGE = 0x4E0001, + SMSG_HARDCORE_DEATH_ALERT = 0x42034F, + SMSG_HEALTH_UPDATE = 0x42017B, + SMSG_HIGHEST_THREAT_UPDATE = 0x420183, + SMSG_HOTFIX_CONNECT = 0x460003, + SMSG_HOTFIX_MESSAGE = 0x460002, + SMSG_HOUSE_EXTERIOR_LOCK_RESPONSE = 0x500000, + SMSG_HOUSE_EXTERIOR_SET_HOUSE_POSITION_RESPONSE = 0x500001, + SMSG_HOUSING_DECOR_ADD_TO_HOUSE_CHEST_RESPONSE = 0x510007, + SMSG_HOUSING_DECOR_DELETE_FROM_STORAGE_RESPONSE = 0x510005, + SMSG_HOUSING_DECOR_LOCK_RESPONSE = 0x510004, + SMSG_HOUSING_DECOR_MOVE_RESPONSE = 0x510001, + SMSG_HOUSING_DECOR_PLACE_RESPONSE = 0x510002, + SMSG_HOUSING_DECOR_REMOVE_RESPONSE = 0x510003, + SMSG_HOUSING_DECOR_REQUEST_STORAGE_RESPONSE = 0x510006, + SMSG_HOUSING_DECOR_SET_EDIT_MODE_RESPONSE = 0x510000, + SMSG_HOUSING_DECOR_SYSTEM_SET_DYE_SLOTS_RESPONSE = 0x510008, + SMSG_HOUSING_EXPORT_HOUSE_RESPONSE = 0x550003, + SMSG_HOUSING_FIRST_TIME_DECOR_ACQUISITION = 0x51000A, + SMSG_HOUSING_FIXTURE_CREATE_BASIC_HOUSE_RESPONSE = 0x520001, + SMSG_HOUSING_FIXTURE_CREATE_FIXTURE_RESPONSE = 0x520006, + SMSG_HOUSING_FIXTURE_DELETE_FIXTURE_RESPONSE = 0x520007, + SMSG_HOUSING_FIXTURE_DELETE_HOUSE_RESPONSE = 0x520002, + SMSG_HOUSING_FIXTURE_SET_CORE_FIXTURE_RESPONSE = 0x520005, + SMSG_HOUSING_FIXTURE_SET_EDIT_MODE_RESPONSE = 0x520000, + SMSG_HOUSING_FIXTURE_SET_HOUSE_SIZE_RESPONSE = 0x520003, + SMSG_HOUSING_FIXTURE_SET_HOUSE_TYPE_RESPONSE = 0x520004, + SMSG_HOUSING_GET_CURRENT_HOUSE_INFO_RESPONSE = 0x550001, + SMSG_HOUSING_GET_PLAYER_PERMISSIONS_RESPONSE = 0x550006, + SMSG_HOUSING_HOUSE_STATUS_RESPONSE = 0x550000, + SMSG_HOUSING_REDEEM_DEFERRED_DECOR_RESPONSE = 0x510009, + SMSG_HOUSING_RESET_KIOSK_MODE_RESPONSE = 0x550007, + SMSG_HOUSING_ROOM_ADD_RESPONSE = 0x530001, + SMSG_HOUSING_ROOM_APPLY_COMPONENT_MATERIALS_RESPONSE = 0x530005, + SMSG_HOUSING_ROOM_REMOVE_RESPONSE = 0x530002, + SMSG_HOUSING_ROOM_SET_CEILING_TYPE_RESPONSE = 0x530007, + SMSG_HOUSING_ROOM_SET_COMPONENT_THEME_RESPONSE = 0x530004, + SMSG_HOUSING_ROOM_SET_DOOR_TYPE_RESPONSE = 0x530006, + SMSG_HOUSING_ROOM_SET_LAYOUT_EDIT_MODE_RESPONSE = 0x530000, + SMSG_HOUSING_ROOM_UPDATE_RESPONSE = 0x530003, + SMSG_HOUSING_SVCS_ACCEPT_NEIGHBORHOOD_OWNERSHIP_RESPONSE = 0x540018, + SMSG_HOUSING_SVCS_CANCEL_RELINQUISH_HOUSE_RESPONSE = 0x540008, + SMSG_HOUSING_SVCS_CHANGE_HOUSE_COSMETIC_OWNER = 0x540011, + SMSG_HOUSING_SVCS_CLEAR_PLOT_RESERVATION_RESPONSE = 0x540005, + SMSG_HOUSING_SVCS_CREATE_CHARTER_NEIGHBORHOOD_RESPONSE = 0x540003, + SMSG_HOUSING_SVCS_DELETE_ALL_NEIGHBORHOOD_INVITES_RESPONSE = 0x540022, + SMSG_HOUSING_SVCS_GET_BNET_FRIEND_NEIGHBORHOODS_RESPONSE = 0x54001F, + SMSG_HOUSING_SVCS_GET_HOUSE_FINDER_INFO_RESPONSE = 0x54001D, + SMSG_HOUSING_SVCS_GET_HOUSE_FINDER_NEIGHBORHOOD_RESPONSE = 0x54001E, + SMSG_HOUSING_SVCS_GET_PLAYER_HOUSES_INFO_RESPONSE = 0x54000C, + SMSG_HOUSING_SVCS_GET_POTENTIAL_HOUSE_OWNERS_RESPONSE = 0x54001B, + SMSG_HOUSING_SVCS_GUILD_ADD_HOUSE_NOTIFICATION = 0x540013, + SMSG_HOUSING_SVCS_GUILD_APPEND_NEIGHBORHOOD_NOTIFICATION = 0x540015, + SMSG_HOUSING_SVCS_GUILD_CREATE_NEIGHBORHOOD_NOTIFICATION = 0x540001, + SMSG_HOUSING_SVCS_GUILD_GET_HOUSING_INFO_RESPONSE = 0x540017, + SMSG_HOUSING_SVCS_GUILD_REMOVE_HOUSE_NOTIFICATION = 0x540014, + SMSG_HOUSING_SVCS_GUILD_RENAME_NEIGHBORHOOD_NOTIFICATION = 0x540016, + SMSG_HOUSING_SVCS_HOUSE_FINDER_FORCE_REFRESH = 0x540020, + SMSG_HOUSING_SVCS_NEIGHBORHOOD_OWNERSHIP_TRANSFERRED_RESPONSE = 0x54001A, + SMSG_HOUSING_SVCS_NEIGHBORHOOD_RESERVE_PLOT_RESPONSE = 0x540004, + SMSG_HOUSING_SVCS_NOTIFY_PERMISSIONS_FAILURE = 0x540000, + SMSG_HOUSING_SVCS_PLAYER_VIEW_HOUSES_RESPONSE = 0x54000D, + SMSG_HOUSING_SVCS_REJECT_NEIGHBORHOOD_OWNERSHIP_RESPONSE = 0x540019, + SMSG_HOUSING_SVCS_RELINQUISH_HOUSE_RESPONSE = 0x540007, + SMSG_HOUSING_SVCS_UPDATE_HOUSES_LEVEL_FAVOR = 0x540012, + SMSG_HOUSING_SVCS_UPDATE_HOUSE_SETTINGS_RESPONSE = 0x54001C, + SMSG_HOUSING_SVC_REQUEST_PLAYER_RELOAD_DATA = 0x540021, + SMSG_INITIALIZE_FACTIONS = 0x4201CC, + SMSG_INITIAL_SETUP = 0x420014, + SMSG_INITIATIVE_COMPLETE = 0x420363, + SMSG_INITIATIVE_REWARD_AVAILABLE = 0x420368, + SMSG_INITIATIVE_SERVICE_STATUS = 0x420361, + SMSG_INITIATIVE_TASK_COMPLETE = 0x420362, + SMSG_INIT_WORLD_STATES = 0x4201EE, + SMSG_INSPECT_RESULT = 0x4200D9, + SMSG_INSTANCE_ABANDON_VOTE_COMPLETED = 0x42009D, + SMSG_INSTANCE_ABANDON_VOTE_PLAYER_LEFT = 0x42009E, + SMSG_INSTANCE_ABANDON_VOTE_RESPONSE = 0x42009C, + SMSG_INSTANCE_ABANDON_VOTE_STARTED = 0x42009B, + SMSG_INSTANCE_ENCOUNTER_CHANGE_PRIORITY = 0x42025A, + SMSG_INSTANCE_ENCOUNTER_DISENGAGE_UNIT = 0x420259, + SMSG_INSTANCE_ENCOUNTER_END = 0x420262, + SMSG_INSTANCE_ENCOUNTER_ENGAGE_UNIT = 0x420258, + SMSG_INSTANCE_ENCOUNTER_EVENT_APPEND = 0x42022A, + SMSG_INSTANCE_ENCOUNTER_EVENT_BLOCKED_CHANGED = 0x42022C, + SMSG_INSTANCE_ENCOUNTER_EVENT_CAST_UPDATE = 0x42022D, + SMSG_INSTANCE_ENCOUNTER_EVENT_RESPAWN = 0x42022B, + SMSG_INSTANCE_ENCOUNTER_EVENT_SEQUENCE = 0x420228, + SMSG_INSTANCE_ENCOUNTER_GAIN_COMBAT_RESURRECTION_CHARGE = 0x420264, + SMSG_INSTANCE_ENCOUNTER_IN_COMBAT_RESURRECTION = 0x420263, + SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_COMPLETE = 0x42025D, + SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_START = 0x42025C, + SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_UPDATE = 0x420261, + SMSG_INSTANCE_ENCOUNTER_PHASE_SHIFT_CHANGED = 0x420265, + SMSG_INSTANCE_ENCOUNTER_START = 0x42025E, + SMSG_INSTANCE_ENCOUNTER_TIMELINE_SYNC = 0x420229, + SMSG_INSTANCE_ENCOUNTER_TIMER_START = 0x42025B, + SMSG_INSTANCE_ENCOUNTER_UPDATE_ALLOW_RELEASE_IN_PROGRESS = 0x420260, + SMSG_INSTANCE_ENCOUNTER_UPDATE_SUPPRESS_RELEASE = 0x42025F, + SMSG_INSTANCE_GROUP_SIZE_CHANGED = 0x4201A3, + SMSG_INSTANCE_INFO = 0x4200DC, + SMSG_INSTANCE_RESET = 0x420130, + SMSG_INSTANCE_RESET_FAILED = 0x420131, + SMSG_INSTANCE_SAVE_CREATED = 0x420225, + SMSG_INTERRUPT_POWER_REGEN = 0x62004C, + SMSG_INVALIDATE_NEIGHBORHOOD = 0x5F0008, + SMSG_INVALIDATE_NEIGHBORHOOD_NAME = 0x460013, + SMSG_INVALIDATE_PAGE_TEXT = 0x46000A, + SMSG_INVALIDATE_PLAYER = 0x5F0007, + SMSG_INVALID_PROMOTION_CODE = 0x4201FB, + SMSG_INVENTORY_CHANGE_FAILURE = 0x630005, + SMSG_INVENTORY_FIXUP_COMPLETE = 0x4202BB, + SMSG_INVENTORY_FULL_OVERFLOW = 0x4202CD, + SMSG_ISLAND_AZERITE_GAIN = 0x420204, + SMSG_ISLAND_COMPLETE = 0x420205, + SMSG_IS_QUEST_COMPLETE_RESPONSE = 0x600004, + SMSG_ITEM_CHANGED = 0x420194, + SMSG_ITEM_COOLDOWN = 0x420270, + SMSG_ITEM_ENCHANT_TIME_UPDATE = 0x4201FD, + SMSG_ITEM_EXPIRE_PURCHASE_REFUND = 0x420034, + SMSG_ITEM_INTERACTION_COMPLETE = 0x420302, + SMSG_ITEM_PURCHASE_REFUND_RESULT = 0x420032, + SMSG_ITEM_PUSH_RESULT = 0x4200CB, + SMSG_ITEM_TIME_UPDATE = 0x4201FC, + SMSG_KICK_REASON = 0x420133, + SMSG_LAST_CATALOG_FETCH_RESPONSE = 0x42037A, + SMSG_LATENCY_REPORT_PING = 0x420312, + SMSG_LEARNED_SPELLS = 0x620040, + SMSG_LEARN_PVP_TALENT_FAILED = 0x420077, + SMSG_LEARN_TALENT_FAILED = 0x420076, + SMSG_LEGACY_LOOT_RULES = 0x4202D2, + SMSG_LEVEL_LINKING_RESULT = 0x4202E8, + SMSG_LEVEL_UP_INFO = 0x420192, + SMSG_LFG_BOOT_PLAYER = 0x560019, + SMSG_LFG_DISABLED = 0x560017, + SMSG_LFG_EXPAND_SEARCH_PROMPT = 0x56001F, + SMSG_LFG_INSTANCE_SHUTDOWN_COUNTDOWN = 0x560009, + SMSG_LFG_JOIN_LOBBY_MATCHMAKER_QUEUE = 0x560020, + SMSG_LFG_JOIN_RESULT = 0x560000, + SMSG_LFG_LIST_APPLICANT_LIST_UPDATE = 0x56000F, + SMSG_LFG_LIST_APPLICATION_STATUS_UPDATE = 0x56000C, + SMSG_LFG_LIST_APPLY_TO_GROUP_RESULT = 0x56000D, + SMSG_LFG_LIST_JOIN_RESULT = 0x560001, + SMSG_LFG_LIST_SEARCH_RESULTS = 0x560002, + SMSG_LFG_LIST_SEARCH_RESULTS_UPDATE = 0x560010, + SMSG_LFG_LIST_SEARCH_STATUS = 0x560003, + SMSG_LFG_LIST_UPDATE_BLACKLIST = 0x56000E, + SMSG_LFG_LIST_UPDATE_EXPIRATION = 0x56000B, + SMSG_LFG_LIST_UPDATE_STATUS = 0x56000A, + SMSG_LFG_OFFER_CONTINUE = 0x560018, + SMSG_LFG_PARTY_INFO = 0x56001A, + SMSG_LFG_PLAYER_INFO = 0x56001B, + SMSG_LFG_PLAYER_REWARD = 0x56001C, + SMSG_LFG_PROPOSAL_UPDATE = 0x560011, + SMSG_LFG_QUEUE_STATUS = 0x560004, + SMSG_LFG_READY_CHECK_RESULT = 0x56001E, + SMSG_LFG_READY_CHECK_UPDATE = 0x560006, + SMSG_LFG_ROLE_CHECK_UPDATE = 0x560005, + SMSG_LFG_SLOT_INVALID = 0x560014, + SMSG_LFG_SUSPEND_LOREWALKING = 0x560021, + SMSG_LFG_TELEPORT_DENIED = 0x560016, + SMSG_LFG_UPDATE_STATUS = 0x560008, + SMSG_LICENSED_DECOR_QUANTITIES_UPDATE = 0x420378, + SMSG_LIVE_REGION_ACCOUNT_RESTORE_RESULT = 0x420217, + SMSG_LIVE_REGION_CHARACTER_COPY_RESULT = 0x420216, + SMSG_LIVE_REGION_GET_ACCOUNT_CHARACTER_LIST_RESULT = 0x42020A, + SMSG_LIVE_REGION_KEY_BINDINGS_COPY_RESULT = 0x420218, + SMSG_LOAD_CUF_PROFILES = 0x42005F, + SMSG_LOAD_EQUIPMENT_SET = 0x4201B8, + SMSG_LOBBY_MATCHMAKER_LOBBY_ACQUIRED_SERVER = 0x42031C, + SMSG_LOBBY_MATCHMAKER_PARTY_INFO = 0x42031D, + SMSG_LOBBY_MATCHMAKER_PARTY_INVITE_REJECTED = 0x42031E, + SMSG_LOBBY_MATCHMAKER_QUEUE_PROPOSED = 0x420320, + SMSG_LOBBY_MATCHMAKER_QUEUE_RESULT = 0x420321, + SMSG_LOBBY_MATCHMAKER_RECEIVE_INVITE = 0x42031F, + SMSG_LOGIN_SET_TIME_SPEED = 0x4201B7, + SMSG_LOGIN_VERIFY_WORLD = 0x42002F, + SMSG_LOGOUT_CANCEL_ACK = 0x42012F, + SMSG_LOGOUT_COMPLETE = 0x42012E, + SMSG_LOGOUT_RESPONSE = 0x42012D, + SMSG_LOG_XP_GAIN = 0x42018E, + SMSG_LOOT_ALL_PASSED = 0x4200C9, + SMSG_LOOT_LIST = 0x4201E9, + SMSG_LOOT_MONEY_NOTIFY = 0x4200C4, + SMSG_LOOT_RELEASE = 0x4200C3, + SMSG_LOOT_RELEASE_ALL = 0x4200C2, + SMSG_LOOT_REMOVED = 0x4200BE, + SMSG_LOOT_RESPONSE = 0x4200BD, + SMSG_LOOT_ROLL = 0x4200C6, + SMSG_LOOT_ROLLS_COMPLETE = 0x4200C8, + SMSG_LOOT_ROLL_WON = 0x4200CA, + SMSG_LOSS_OF_CONTROL_AURA_UPDATE = 0x420119, + SMSG_MAIL_COMMAND_RESULT = 0x4200E3, + SMSG_MAIL_LIST_RESULT = 0x4201FE, + SMSG_MAIL_QUERY_NEXT_TIME_RESULT = 0x4201FF, + SMSG_MAP_OBJECTIVES_INIT = 0x48002A, + SMSG_MAP_OBJ_EVENTS = 0x420069, + SMSG_MASTER_LOOT_CANDIDATE_LIST = 0x4200C7, + SMSG_MEETING_STONE_FAILED = 0x420322, + SMSG_MESSAGE_BOX = 0x42000A, + SMSG_MINIMAP_PING = 0x420178, + SMSG_MIRROR_IMAGE_COMPONENTED_DATA = 0x620004, + SMSG_MIRROR_IMAGE_CREATURE_DATA = 0x620003, + SMSG_MIRROR_VARS = 0x42036A, + SMSG_MISSILE_CANCEL = 0x42006A, + SMSG_MODIFY_COOLDOWN = 0x42020C, + SMSG_MOTD = 0x470003, + SMSG_MOUNT_RESULT = 0x42000F, + SMSG_MOVEMENT_ENFORCEMENT_ALERT = 0x4202D8, + SMSG_MOVE_ADD_IMPULSE = 0x5A0064, + SMSG_MOVE_APPLY_INERTIA = 0x5A0060, + SMSG_MOVE_APPLY_MOVEMENT_FORCE = 0x5A0047, + SMSG_MOVE_DISABLE_COLLISION = 0x5A0043, + SMSG_MOVE_DISABLE_DOUBLE_JUMP = 0x5A002D, + SMSG_MOVE_DISABLE_FULL_SPEED_TURNING = 0x5A0077, + SMSG_MOVE_DISABLE_GRAVITY = 0x5A003F, + SMSG_MOVE_DISABLE_INERTIA = 0x5A0041, + SMSG_MOVE_DISABLE_TRANSITION_BETWEEN_SWIM_AND_FLY = 0x5A003E, + SMSG_MOVE_ENABLE_COLLISION = 0x5A0044, + SMSG_MOVE_ENABLE_DOUBLE_JUMP = 0x5A002C, + SMSG_MOVE_ENABLE_FULL_SPEED_TURNING = 0x5A0076, + SMSG_MOVE_ENABLE_GRAVITY = 0x5A0040, + SMSG_MOVE_ENABLE_INERTIA = 0x5A0042, + SMSG_MOVE_ENABLE_TRANSITION_BETWEEN_SWIM_AND_FLY = 0x5A003D, + SMSG_MOVE_INITIAL_OBJECT_UPDATE_COMPLETE = 0x5A0075, + SMSG_MOVE_KNOCK_BACK = 0x5A0033, + SMSG_MOVE_MARK_REMOTE_TIME_INVALID = 0x5A005F, + SMSG_MOVE_REMOVE_INERTIA = 0x5A0061, + SMSG_MOVE_REMOVE_MOVEMENT_FORCE = 0x5A0048, + SMSG_MOVE_ROOT = 0x5A0029, + SMSG_MOVE_SET_ACTIVE_MOVER = 0x5A0003, + SMSG_MOVE_SET_ADV_FLYING_ADD_IMPULSE_MAX_SPEED = 0x5A006D, + SMSG_MOVE_SET_ADV_FLYING_AIR_FRICTION = 0x5A0068, + SMSG_MOVE_SET_ADV_FLYING_BANKING_RATE = 0x5A006E, + SMSG_MOVE_SET_ADV_FLYING_DOUBLE_JUMP_VEL_MOD = 0x5A006B, + SMSG_MOVE_SET_ADV_FLYING_GLIDE_START_MIN_HEIGHT = 0x5A006C, + SMSG_MOVE_SET_ADV_FLYING_LAUNCH_SPEED_COEFFICIENT = 0x5A0074, + SMSG_MOVE_SET_ADV_FLYING_LIFT_COEFFICIENT = 0x5A006A, + SMSG_MOVE_SET_ADV_FLYING_MAX_VEL = 0x5A0069, + SMSG_MOVE_SET_ADV_FLYING_OVER_MAX_DECELERATION = 0x5A0073, + SMSG_MOVE_SET_ADV_FLYING_PITCHING_RATE_DOWN = 0x5A006F, + SMSG_MOVE_SET_ADV_FLYING_PITCHING_RATE_UP = 0x5A0070, + SMSG_MOVE_SET_ADV_FLYING_SURFACE_FRICTION = 0x5A0072, + SMSG_MOVE_SET_ADV_FLYING_TURN_VELOCITY_THRESHOLD = 0x5A0071, + SMSG_MOVE_SET_CANNOT_SWIM = 0x5A0037, + SMSG_MOVE_SET_CAN_ADV_FLY = 0x5A0066, + SMSG_MOVE_SET_CAN_DRIVE = 0x5A0078, + SMSG_MOVE_SET_CAN_FLY = 0x5A0035, + SMSG_MOVE_SET_CAN_TURN_WHILE_FALLING = 0x5A0039, + SMSG_MOVE_SET_COLLISION_HEIGHT = 0x5A0045, + SMSG_MOVE_SET_COMPOUND_STATE = 0x5A0049, + SMSG_MOVE_SET_FEATHER_FALL = 0x5A002F, + SMSG_MOVE_SET_FLIGHT_BACK_SPEED = 0x5A0025, + SMSG_MOVE_SET_FLIGHT_SPEED = 0x5A0024, + SMSG_MOVE_SET_GRAVITY_MODIFIER = 0x5A001A, + SMSG_MOVE_SET_HOVERING = 0x5A0031, + SMSG_MOVE_SET_IGNORE_MOVEMENT_FORCES = 0x5A003B, + SMSG_MOVE_SET_LAND_WALK = 0x5A002E, + SMSG_MOVE_SET_MOD_MOVEMENT_FORCE_MAGNITUDE = 0x5A0014, + SMSG_MOVE_SET_NORMAL_FALL = 0x5A0030, + SMSG_MOVE_SET_PITCH_RATE = 0x5A0028, + SMSG_MOVE_SET_RUN_BACK_SPEED = 0x5A0021, + SMSG_MOVE_SET_RUN_SPEED = 0x5A0020, + SMSG_MOVE_SET_SWIM_BACK_SPEED = 0x5A0023, + SMSG_MOVE_SET_SWIM_SPEED = 0x5A0022, + SMSG_MOVE_SET_TURN_RATE = 0x5A0027, + SMSG_MOVE_SET_VEHICLE_REC_ID = 0x5A0046, + SMSG_MOVE_SET_WALK_SPEED = 0x5A0026, + SMSG_MOVE_SET_WATER_WALK = 0x5A002B, + SMSG_MOVE_SKIP_TIME = 0x5A004A, + SMSG_MOVE_SPLINE_DISABLE_COLLISION = 0x5A004F, + SMSG_MOVE_SPLINE_DISABLE_GRAVITY = 0x5A004D, + SMSG_MOVE_SPLINE_ENABLE_COLLISION = 0x5A0050, + SMSG_MOVE_SPLINE_ENABLE_GRAVITY = 0x5A004E, + SMSG_MOVE_SPLINE_ROOT = 0x5A004B, + SMSG_MOVE_SPLINE_SET_FEATHER_FALL = 0x5A0051, + SMSG_MOVE_SPLINE_SET_FLIGHT_BACK_SPEED = 0x5A001C, + SMSG_MOVE_SPLINE_SET_FLIGHT_SPEED = 0x5A001B, + SMSG_MOVE_SPLINE_SET_FLYING = 0x5A005B, + SMSG_MOVE_SPLINE_SET_HOVER = 0x5A0053, + SMSG_MOVE_SPLINE_SET_LAND_WALK = 0x5A0056, + SMSG_MOVE_SPLINE_SET_NORMAL_FALL = 0x5A0052, + SMSG_MOVE_SPLINE_SET_PITCH_RATE = 0x5A001F, + SMSG_MOVE_SPLINE_SET_RUN_BACK_SPEED = 0x5A0016, + SMSG_MOVE_SPLINE_SET_RUN_MODE = 0x5A0059, + SMSG_MOVE_SPLINE_SET_RUN_SPEED = 0x5A0015, + SMSG_MOVE_SPLINE_SET_SWIM_BACK_SPEED = 0x5A0018, + SMSG_MOVE_SPLINE_SET_SWIM_SPEED = 0x5A0017, + SMSG_MOVE_SPLINE_SET_TURN_RATE = 0x5A001E, + SMSG_MOVE_SPLINE_SET_WALK_MODE = 0x5A005A, + SMSG_MOVE_SPLINE_SET_WALK_SPEED = 0x5A001D, + SMSG_MOVE_SPLINE_SET_WATER_WALK = 0x5A0055, + SMSG_MOVE_SPLINE_START_SWIM = 0x5A0057, + SMSG_MOVE_SPLINE_STOP_SWIM = 0x5A0058, + SMSG_MOVE_SPLINE_UNROOT = 0x5A004C, + SMSG_MOVE_SPLINE_UNSET_FLYING = 0x5A005C, + SMSG_MOVE_SPLINE_UNSET_HOVER = 0x5A0054, + SMSG_MOVE_TELEPORT = 0x5A0034, + SMSG_MOVE_UNROOT = 0x5A002A, + SMSG_MOVE_UNSET_CANNOT_SWIM = 0x5A0038, + SMSG_MOVE_UNSET_CAN_ADV_FLY = 0x5A0067, + SMSG_MOVE_UNSET_CAN_DRIVE = 0x5A0079, + SMSG_MOVE_UNSET_CAN_FLY = 0x5A0036, + SMSG_MOVE_UNSET_CAN_TURN_WHILE_FALLING = 0x5A003A, + SMSG_MOVE_UNSET_HOVERING = 0x5A0032, + SMSG_MOVE_UNSET_IGNORE_MOVEMENT_FORCES = 0x5A003C, + SMSG_MOVE_UPDATE = 0x5A000E, + SMSG_MOVE_UPDATE_ADD_IMPULSE = 0x5A0065, + SMSG_MOVE_UPDATE_APPLY_INERTIA = 0x5A0062, + SMSG_MOVE_UPDATE_APPLY_MOVEMENT_FORCE = 0x5A0012, + SMSG_MOVE_UPDATE_COLLISION_HEIGHT = 0x5A000D, + SMSG_MOVE_UPDATE_FLIGHT_BACK_SPEED = 0x5A000A, + SMSG_MOVE_UPDATE_FLIGHT_SPEED = 0x5A0009, + SMSG_MOVE_UPDATE_KNOCK_BACK = 0x5A0010, + SMSG_MOVE_UPDATE_MOD_MOVEMENT_FORCE_MAGNITUDE = 0x5A0011, + SMSG_MOVE_UPDATE_PITCH_RATE = 0x5A000C, + SMSG_MOVE_UPDATE_REMOVE_INERTIA = 0x5A0063, + SMSG_MOVE_UPDATE_REMOVE_MOVEMENT_FORCE = 0x5A0013, + SMSG_MOVE_UPDATE_RUN_BACK_SPEED = 0x5A0005, + SMSG_MOVE_UPDATE_RUN_SPEED = 0x5A0004, + SMSG_MOVE_UPDATE_SET_GRAVITY_MODIFIER = 0x5A0019, + SMSG_MOVE_UPDATE_SWIM_BACK_SPEED = 0x5A0008, + SMSG_MOVE_UPDATE_SWIM_SPEED = 0x5A0007, + SMSG_MOVE_UPDATE_TELEPORT = 0x5A000F, + SMSG_MOVE_UPDATE_TURN_RATE = 0x5A000B, + SMSG_MOVE_UPDATE_WALK_SPEED = 0x5A0006, + SMSG_MULTIPLE_PACKETS = 0x49000B, + SMSG_MULTI_FLOOR_LEAVE_FLOOR = 0x420287, + SMSG_MULTI_FLOOR_NEW_FLOOR = 0x420286, + SMSG_MYTHIC_PLUS_ALL_MAP_STATS = 0x4200B2, + SMSG_MYTHIC_PLUS_CURRENT_AFFIXES = 0x4200B4, + SMSG_MYTHIC_PLUS_NEW_WEEK_RECORD = 0x4200BA, + SMSG_MYTHIC_PLUS_SEASON_DATA = 0x4200B3, + SMSG_NEIGHBORHOOD_ADD_SECONDARY_OWNER_RESPONSE = 0x5C0006, + SMSG_NEIGHBORHOOD_BUY_HOUSE_RESPONSE = 0x5C0008, + SMSG_NEIGHBORHOOD_CANCEL_INVITATION_RESPONSE = 0x5C000C, + SMSG_NEIGHBORHOOD_CHARTER_ADD_SIGNATURE_RESPONSE = 0x5B0003, + SMSG_NEIGHBORHOOD_CHARTER_OPEN_CONFIRMATION_UI_RESPONSE = 0x5B0004, + SMSG_NEIGHBORHOOD_CHARTER_OPEN_UI_RESPONSE = 0x5B0001, + SMSG_NEIGHBORHOOD_CHARTER_SIGNATURE_REMOVED_NOTIFICATION = 0x5B0005, + SMSG_NEIGHBORHOOD_CHARTER_SIGN_REQUEST = 0x5B0002, + SMSG_NEIGHBORHOOD_CHARTER_UPDATE_RESPONSE = 0x5B0000, + SMSG_NEIGHBORHOOD_DECLINE_INVITATION_RESPONSE = 0x5C000D, + SMSG_NEIGHBORHOOD_EVICT_PLAYER = 0x5C0002, + SMSG_NEIGHBORHOOD_EVICT_PLOT_NOTICE = 0x5C0016, + SMSG_NEIGHBORHOOD_EVICT_PLOT_RESPONSE = 0x5C0015, + SMSG_NEIGHBORHOOD_GET_INVITES_RESPONSE = 0x5C000F, + SMSG_NEIGHBORHOOD_GET_ROSTER_RESPONSE = 0x5C0012, + SMSG_NEIGHBORHOOD_INVITE_NAME_LOOKUP_RESULT = 0x5C0014, + SMSG_NEIGHBORHOOD_INVITE_NOTIFICATION = 0x5C0010, + SMSG_NEIGHBORHOOD_INVITE_RESIDENT_RESPONSE = 0x5C000B, + SMSG_NEIGHBORHOOD_MOVE_HOUSE_RESPONSE = 0x5C0009, + SMSG_NEIGHBORHOOD_OFFER_OWNERSHIP_RESPONSE = 0x5C0011, + SMSG_NEIGHBORHOOD_OPEN_CORNERSTONE_UI_RESPONSE = 0x5C000A, + SMSG_NEIGHBORHOOD_PLAYER_ENTER_PLOT = 0x5C0000, + SMSG_NEIGHBORHOOD_PLAYER_GET_INVITE_RESPONSE = 0x5C000E, + SMSG_NEIGHBORHOOD_PLAYER_LEAVE_PLOT = 0x5C0001, + SMSG_NEIGHBORHOOD_REMOVE_SECONDARY_OWNER_RESPONSE = 0x5C0007, + SMSG_NEIGHBORHOOD_ROSTER_RESIDENT_UPDATE = 0x5C0013, + SMSG_NEIGHBORHOOD_UPDATE_NAME_NOTIFICATION = 0x5C0004, + SMSG_NEIGHBORHOOD_UPDATE_NAME_RESPONSE = 0x5C0003, + SMSG_NEUTRAL_PLAYER_FACTION_SELECT_RESULT = 0x42007E, + SMSG_NEW_DATA_BUILD = 0x420346, + SMSG_NEW_TAXI_PATH = 0x420128, + SMSG_NEW_WORLD = 0x42002B, + SMSG_NOTIFY_DEST_LOC_SPELL_CAST = 0x620036, + SMSG_NOTIFY_MISSILE_TRAJECTORY_COLLISION = 0x420154, + SMSG_NOTIFY_MONEY = 0x420031, + SMSG_NOTIFY_RECEIVED_MAIL = 0x4200E4, + SMSG_NPC_INTERACTION_OPEN_RESULT = 0x420318, + SMSG_OFFER_PETITION_ERROR = 0x420160, + SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA = 0x42018F, + SMSG_ON_MONSTER_MOVE = 0x5A0002, + SMSG_OPEN_ARTIFACT_FORGE = 0x42024C, + SMSG_OPEN_CONTAINER = 0x630006, + SMSG_OPEN_LFG_DUNGEON_FINDER = 0x560015, + SMSG_OPEN_SHIPMENT_NPC_RESULT = 0x420244, + SMSG_OVERRIDE_LIGHT = 0x420165, + SMSG_PAGE_TEXT = 0x4201C3, + SMSG_PARTY_COMMAND_RESULT = 0x42023E, + SMSG_PARTY_ELIGIBILITY_FOR_DELVE_TIERS_RESPONSE = 0x42035A, + SMSG_PARTY_INVITE = 0x420060, + SMSG_PARTY_KILL_LOG = 0x420202, + SMSG_PARTY_MEMBER_FULL_STATE = 0x420201, + SMSG_PARTY_MEMBER_PARTIAL_STATE = 0x420200, + SMSG_PARTY_NOTIFY_LFG_LEADER_CHANGE = 0x420308, + SMSG_PARTY_UPDATE = 0x420096, + SMSG_PAST_TIME_EVENTS = 0x420065, + SMSG_PAUSE_MIRROR_TIMER = 0x4201BA, + SMSG_PENDING_RAID_LOCK = 0x4201A1, + SMSG_PERKS_ANIM_TOGGLE_KILL_SWITCH = 0x5E0007, + SMSG_PERKS_PROGRAM_ACTIVITY_COMPLETE = 0x5E0005, + SMSG_PERKS_PROGRAM_ACTIVITY_UPDATE = 0x5E0001, + SMSG_PERKS_PROGRAM_DISABLED = 0x5E0006, + SMSG_PERKS_PROGRAM_RESULT = 0x5E0002, + SMSG_PERKS_PROGRAM_VENDOR_UPDATE = 0x5E0000, + SMSG_PETITION_ALREADY_SIGNED = 0x420037, + SMSG_PETITION_RENAME_GUILD_RESPONSE = 0x4E0042, + SMSG_PETITION_SHOW_LIST = 0x420168, + SMSG_PETITION_SHOW_SIGNATURES = 0x420169, + SMSG_PETITION_SIGN_RESULTS = 0x4201F4, + SMSG_PET_ACTION_FEEDBACK = 0x4201F1, + SMSG_PET_ACTION_SOUND = 0x42014A, + SMSG_PET_BATTLE_CHAT_RESTRICTED = 0x4200A8, + SMSG_PET_BATTLE_DEBUG_QUEUE_DUMP_RESPONSE = 0x42011E, + SMSG_PET_BATTLE_FINALIZE_LOCATION = 0x4200A1, + SMSG_PET_BATTLE_FINAL_ROUND = 0x4200A6, + SMSG_PET_BATTLE_FINISHED = 0x4200A7, + SMSG_PET_BATTLE_FIRST_ROUND = 0x4200A3, + SMSG_PET_BATTLE_INITIAL_UPDATE = 0x4200A2, + SMSG_PET_BATTLE_MAX_GAME_LENGTH_WARNING = 0x4200A9, + SMSG_PET_BATTLE_PVP_CHALLENGE = 0x4200A0, + SMSG_PET_BATTLE_QUEUE_PROPOSE_MATCH = 0x4200E1, + SMSG_PET_BATTLE_QUEUE_STATUS = 0x4200E2, + SMSG_PET_BATTLE_REPLACEMENTS_MADE = 0x4200A5, + SMSG_PET_BATTLE_REQUEST_FAILED = 0x42009F, + SMSG_PET_BATTLE_ROUND_RESULT = 0x4200A4, + SMSG_PET_BATTLE_SLOT_UPDATES = 0x42008E, + SMSG_PET_CAST_FAILED = 0x62004B, + SMSG_PET_CLEAR_SPELLS = 0x620013, + SMSG_PET_DISMISS_SOUND = 0x42014B, + SMSG_PET_GOD_MODE = 0x420125, + SMSG_PET_GUIDS = 0x4201AD, + SMSG_PET_LEARNED_SPELLS = 0x620042, + SMSG_PET_MODE = 0x42001F, + SMSG_PET_NAME_INVALID = 0x42016D, + SMSG_PET_NEWLY_TAMED = 0x42001E, + SMSG_PET_SPELLS_MESSAGE = 0x620014, + SMSG_PET_STABLE_RESULT = 0x42002A, + SMSG_PET_TAME_FAILURE = 0x42015C, + SMSG_PET_UNLEARNED_SPELLS = 0x620043, + SMSG_PHASE_SHIFT_CHANGE = 0x42000C, + SMSG_PLAYED_TIME = 0x42017F, + SMSG_PLAYER_ACKNOWLEDGE_ARROW_CALLOUT = 0x5F002E, + SMSG_PLAYER_AZERITE_ITEM_EQUIPPED_STATUS_CHANGED = 0x5F0020, + SMSG_PLAYER_AZERITE_ITEM_GAINS = 0x5F001F, + SMSG_PLAYER_BONUS_ROLL_FAILED = 0x5F0022, + SMSG_PLAYER_BOUND = 0x5F0000, + SMSG_PLAYER_CHOICE_CLEAR = 0x5F0006, + SMSG_PLAYER_CHOICE_DISPLAY_ERROR = 0x5F0005, + SMSG_PLAYER_CONDITION_RESULT = 0x5F0013, + SMSG_PLAYER_DELAYED_UPLOAD_SCREENSHOT = 0x5F0033, + SMSG_PLAYER_END_OF_MATCH_DETAILS = 0x5F0030, + SMSG_PLAYER_HIDE_ARROW_CALLOUT = 0x5F002D, + SMSG_PLAYER_IS_ADVENTURE_MAP_POI_VALID = 0x5F0012, + SMSG_PLAYER_OPEN_SUBSCRIPTION_INTERSTITIAL = 0x5F0017, + SMSG_PLAYER_SAVE_GUILD_EMBLEM = 0x4E0041, + SMSG_PLAYER_SAVE_PERSONAL_EMBLEM = 0x5F002F, + SMSG_PLAYER_SHOW_ARROW_CALLOUT = 0x5F002C, + SMSG_PLAYER_SHOW_GENERIC_WIDGET_DISPLAY = 0x5F002A, + SMSG_PLAYER_SHOW_PARTY_POSE_UI = 0x5F002B, + SMSG_PLAYER_SHOW_UI_EVENT_TOAST = 0x5F0025, + SMSG_PLAYER_SKINNED = 0x5F000F, + SMSG_PLAYER_TUTORIAL_HIGHLIGHT_SPELL = 0x5F0016, + SMSG_PLAYER_TUTORIAL_UNHIGHLIGHT_SPELL = 0x5F0015, + SMSG_PLAYER_UPLOAD_SCREENSHOT = 0x5F0032, + SMSG_PLAY_MUSIC = 0x420211, + SMSG_PLAY_OBJECT_SOUND = 0x420213, + SMSG_PLAY_ONE_SHOT_ANIM_KIT = 0x4201D9, + SMSG_PLAY_ORPHAN_SPELL_VISUAL = 0x62003A, + SMSG_PLAY_SCENE = 0x4200DE, + SMSG_PLAY_SOUND = 0x420210, + SMSG_PLAY_SPEAKERBOT_SOUND = 0x420214, + SMSG_PLAY_SPELL_VISUAL = 0x620038, + SMSG_PLAY_SPELL_VISUAL_KIT = 0x62003C, + SMSG_PLAY_TIME_WARNING = 0x4201A7, + SMSG_PONG = 0x490008, + SMSG_POWER_UPDATE = 0x42017C, + SMSG_PRELOAD_CHILD_MAP = 0x42000D, + SMSG_PRELOAD_WORLD = 0x42002C, + SMSG_PREPOPULATE_NAME_CACHE = 0x4202DB, + SMSG_PRE_RESSURECT = 0x42020F, + SMSG_PRINT_NOTIFICATION = 0x42006D, + SMSG_PROC_RESIST = 0x420203, + SMSG_PROFESSION_GOSSIP = 0x4202A7, + SMSG_PUSH_SPELL_TO_ACTION_BAR = 0x620044, + SMSG_PVP_CREDIT = 0x480024, + SMSG_PVP_MATCH_COMPLETE = 0x48002F, + SMSG_PVP_MATCH_INITIALIZE = 0x480030, + SMSG_PVP_MATCH_SET_STATE = 0x48002E, + SMSG_PVP_MATCH_START = 0x48002D, + SMSG_PVP_MATCH_STATISTICS = 0x480010, + SMSG_PVP_OPTIONS_ENABLED = 0x480013, + SMSG_PVP_TIER_RECORD = 0x420313, + SMSG_QUERY_BATTLE_PET_NAME_RESPONSE = 0x46000C, + SMSG_QUERY_CREATURE_RESPONSE = 0x460006, + SMSG_QUERY_GAME_OBJECT_RESPONSE = 0x460007, + SMSG_QUERY_GARRISON_PET_NAME_RESPONSE = 0x4C0041, + SMSG_QUERY_GUILD_FOLLOW_INFO_RESPONSE = 0x4E002F, + SMSG_QUERY_GUILD_INFO_RESPONSE = 0x4E002D, + SMSG_QUERY_ITEM_TEXT_RESPONSE = 0x460010, + SMSG_QUERY_NEIGHBORHOOD_NAME_RESPONSE = 0x460012, + SMSG_QUERY_NPC_TEXT_RESPONSE = 0x460008, + SMSG_QUERY_PAGE_TEXT_RESPONSE = 0x460009, + SMSG_QUERY_PETITION_RESPONSE = 0x46000D, + SMSG_QUERY_PET_NAME_RESPONSE = 0x46000B, + SMSG_QUERY_PLAYER_NAMES_RESPONSE = 0x5F0027, + SMSG_QUERY_PLAYER_NAME_BY_COMMUNITY_ID_RESPONSE = 0x5F000B, + SMSG_QUERY_QUEST_INFO_RESPONSE = 0x600016, + SMSG_QUERY_REALM_GUILD_MASTER_INFO_RESPONSE = 0x4E002E, + SMSG_QUERY_SELECTED_WOW_LABS_AREA_RESPONSE = 0x420327, + SMSG_QUERY_TIME_RESPONSE = 0x42018D, + SMSG_QUERY_WOW_LABS_AREA_INFO_RESPONSE = 0x420328, + SMSG_QUEST_COMPLETION_NPC_RESPONSE = 0x600001, + SMSG_QUEST_CONFIRM_ACCEPT = 0x60000F, + SMSG_QUEST_FORCE_REMOVED = 0x60001C, + SMSG_QUEST_GIVER_INVALID_QUEST = 0x600005, + SMSG_QUEST_GIVER_OFFER_REWARD_MESSAGE = 0x600014, + SMSG_QUEST_GIVER_QUEST_COMPLETE = 0x600003, + SMSG_QUEST_GIVER_QUEST_DETAILS = 0x600012, + SMSG_QUEST_GIVER_QUEST_FAILED = 0x600006, + SMSG_QUEST_GIVER_QUEST_LIST_MESSAGE = 0x60001A, + SMSG_QUEST_GIVER_REQUEST_ITEMS = 0x600013, + SMSG_QUEST_GIVER_STATUS = 0x60001B, + SMSG_QUEST_GIVER_STATUS_MULTIPLE = 0x600011, + SMSG_QUEST_ITEM_USABILITY_RESPONSE = 0x600002, + SMSG_QUEST_LOG_FULL = 0x600007, + SMSG_QUEST_NON_LOG_UPDATE_COMPLETE = 0x600008, + SMSG_QUEST_POI_QUERY_RESPONSE = 0x60001D, + SMSG_QUEST_POI_UPDATE_RESPONSE = 0x60001F, + SMSG_QUEST_PUSH_RESULT = 0x600010, + SMSG_QUEST_SESSION_INFO_RESPONSE = 0x4202FE, + SMSG_QUEST_SESSION_READY_CHECK = 0x4202EC, + SMSG_QUEST_SESSION_READY_CHECK_RESPONSE = 0x4202ED, + SMSG_QUEST_SESSION_RESULT = 0x4202EB, + SMSG_QUEST_UPDATE_ADD_CREDIT = 0x60000C, + SMSG_QUEST_UPDATE_ADD_CREDIT_SIMPLE = 0x60000D, + SMSG_QUEST_UPDATE_ADD_PVP_CREDIT = 0x60000E, + SMSG_QUEST_UPDATE_COMPLETE = 0x600009, + SMSG_QUEST_UPDATE_FAILED = 0x60000A, + SMSG_QUEST_UPDATE_FAILED_TIMER = 0x60000B, + SMSG_QUEUE_SUMMARY_UPDATE = 0x4202BA, + SMSG_RAF_ACCOUNT_INFO = 0x4202E9, + SMSG_RAF_ACTIVITY_STATE_CHANGED = 0x4202FA, + SMSG_RAF_DEBUG_FRIEND_MONTHS = 0x420343, + SMSG_RAID_DIFFICULTY_SET = 0x420255, + SMSG_RAID_GROUP_ONLY = 0x420257, + SMSG_RAID_INSTANCE_MESSAGE = 0x47000A, + SMSG_RAID_MARKERS_CHANGED = 0x420038, + SMSG_RANDOM_ROLL = 0x4200D8, + SMSG_RATED_PVP_INFO = 0x48000F, + SMSG_READY_CHECK_COMPLETED = 0x42009A, + SMSG_READY_CHECK_RESPONSE = 0x420099, + SMSG_READY_CHECK_STARTED = 0x420098, + SMSG_READ_ITEM_RESULT_FAILED = 0x420251, + SMSG_READ_ITEM_RESULT_OK = 0x420249, + SMSG_REALM_QUERY_RESPONSE = 0x460005, + SMSG_REATTACH_RESURRECT = 0x4201F3, + SMSG_RECEIVE_PING_UNIT = 0x420039, + SMSG_RECEIVE_PING_WORLD_POINT = 0x42003A, + SMSG_RECENT_ALLY_DATA_RESPONSE = 0x42035D, + SMSG_RECENT_ALLY_NOTE_UPDATED = 0x42035E, + SMSG_RECRAFT_ITEM_RESULT = 0x420339, + SMSG_RECRUIT_A_FRIEND_FAILURE = 0x42016A, + SMSG_REFETCH_TACT_KEYS = 0x420371, + SMSG_REFRESH_COMPONENT = 0x4200F8, + SMSG_REGIONWIDE_CHARACTER_MAIL_DATA = 0x42001A, + SMSG_REGIONWIDE_CHARACTER_RESTRICTIONS_DATA = 0x420019, + SMSG_REMOVE_ITEM_PASSIVE = 0x420043, + SMSG_REMOVE_SPELL_FROM_ACTION_BAR = 0x620045, + SMSG_REPLACE_TROPHY_RESPONSE = 0x42026D, + SMSG_REPORT_PVP_PLAYER_AFK_RESULT = 0x5F000A, + SMSG_REQUEST_CEMETERY_LIST_RESPONSE = 0x420025, + SMSG_REQUEST_PVP_REWARDS_RESPONSE = 0x480014, + SMSG_REQUEST_SCHEDULED_PVP_INFO_RESPONSE = 0x480015, + SMSG_RESET_COMPRESSION_CONTEXT = 0x490009, + SMSG_RESET_FAILED_NOTIFY = 0x420161, + SMSG_RESET_LAST_LOADED_CONFIG_CVARS = 0x420340, + SMSG_RESET_QUEST_POI = 0x600020, + SMSG_RESET_RANGED_COMBAT_TIMER = 0x480023, + SMSG_RESET_WEEKLY_CURRENCY = 0x420009, + SMSG_RESPEC_WIPE_CONFIRM = 0x4200BB, + SMSG_RESPOND_INSPECT_ACHIEVEMENTS = 0x420006, + SMSG_RESPONSE_PERK_PENDING_REWARDS = 0x5E0003, + SMSG_RESPONSE_PERK_RECENT_PURCHASES = 0x5E0004, + SMSG_RESTART_GLOBAL_COOLDOWN = 0x620054, + SMSG_RESTRICTED_ACCOUNT_WARNING = 0x42005C, + SMSG_RESUME_CAST = 0x62002E, + SMSG_RESUME_CAST_BAR = 0x620031, + SMSG_RESUME_COMMS = 0x490005, + SMSG_RESUME_TOKEN = 0x420041, + SMSG_RESURRECT_REQUEST = 0x420012, + SMSG_RESYNC_RUNES = 0x620052, + SMSG_RETURN_APPLICANT_LIST = 0x4202DF, + SMSG_RETURN_RECRUITING_CLUBS = 0x4202DE, + SMSG_ROLE_CHANGED_INFORM = 0x420021, + SMSG_ROLE_CHOSEN = 0x56001D, + SMSG_ROLE_POLL_INFORM = 0x420022, + SMSG_RUNEFORGE_LEGENDARY_CRAFTING_OPEN_NPC = 0x4202A6, + SMSG_RUNE_REGEN_DEBUG = 0x420059, + SMSG_SCENARIO_COMPLETED = 0x420294, + SMSG_SCENARIO_POIS = 0x4200DB, + SMSG_SCENARIO_PROGRESS_UPDATE = 0x4200D4, + SMSG_SCENARIO_SHOW_CRITERIA = 0x4202AA, + SMSG_SCENARIO_STATE = 0x4200D3, + SMSG_SCENARIO_UI_UPDATE = 0x4202A9, + SMSG_SCENARIO_VACATE = 0x420252, + SMSG_SCENE_OBJECT_EVENT = 0x420084, + SMSG_SCENE_OBJECT_PET_BATTLE_FINAL_ROUND = 0x420089, + SMSG_SCENE_OBJECT_PET_BATTLE_FINISHED = 0x42008A, + SMSG_SCENE_OBJECT_PET_BATTLE_FIRST_ROUND = 0x420086, + SMSG_SCENE_OBJECT_PET_BATTLE_INITIAL_UPDATE = 0x420085, + SMSG_SCENE_OBJECT_PET_BATTLE_REPLACEMENTS_MADE = 0x420088, + SMSG_SCENE_OBJECT_PET_BATTLE_ROUND_RESULT = 0x420087, + SMSG_SCHEDULED_AREA_POI_UPDATE_RESPONSE = 0x5F001A, + SMSG_SCRIPT_CAST = 0x620049, + SMSG_SEASON_INFO = 0x420064, + SMSG_SELL_RESPONSE = 0x42016E, + SMSG_SEND_FORCE_PITCH_CHANGE = 0x42002D, + SMSG_SEND_ITEM_PASSIVES = 0x420044, + SMSG_SEND_KNOWN_SPELLS = 0x620019, + SMSG_SEND_RAID_TARGET_UPDATE_ALL = 0x4200D6, + SMSG_SEND_RAID_TARGET_UPDATE_SINGLE = 0x4200D7, + SMSG_SEND_SPELL_CHARGES = 0x62001B, + SMSG_SEND_SPELL_HISTORY = 0x62001A, + SMSG_SEND_UNLEARN_SPELLS = 0x62001C, + SMSG_SERVER_FIRST_ACHIEVEMENTS = 0x4200F5, + SMSG_SERVER_TIME = 0x42012C, + SMSG_SERVER_TIME_OFFSET = 0x4201BE, + SMSG_SETUP_COMBAT_LOG_FILE_FLUSH = 0x62000F, + SMSG_SETUP_CURRENCY = 0x420007, + SMSG_SET_AI_ANIM_KIT = 0x4201D8, + SMSG_SET_ANIM_TIER = 0x4201DC, + SMSG_SET_CHR_UPGRADE_TIER = 0x420081, + SMSG_SET_CTR_OPTIONS = 0x42036E, + SMSG_SET_CURRENCY = 0x420008, + SMSG_SET_DF_FAST_LAUNCH_RESULT = 0x560012, + SMSG_SET_DUNGEON_DIFFICULTY = 0x42014E, + SMSG_SET_FACTION_AT_WAR = 0x4201A9, + SMSG_SET_FACTION_NOT_VISIBLE = 0x4201D3, + SMSG_SET_FACTION_STANDING = 0x4201D4, + SMSG_SET_FACTION_VISIBLE = 0x4201D2, + SMSG_SET_FLAT_SPELL_MODIFIER = 0x620027, + SMSG_SET_FLAT_SPELL_PVP_MODIFIER = 0x620029, + SMSG_SET_INSTANCE_LEAVER = 0x42036B, + SMSG_SET_ITEM_PURCHASE_DATA = 0x420033, + SMSG_SET_LOOT_METHOD_FAILED = 0x420278, + SMSG_SET_MAX_WEEKLY_QUANTITY = 0x420036, + SMSG_SET_MELEE_ANIM_KIT = 0x4201DB, + SMSG_SET_MOVEMENT_ANIM_KIT = 0x4201DA, + SMSG_SET_PCT_SPELL_MODIFIER = 0x620028, + SMSG_SET_PCT_SPELL_PVP_MODIFIER = 0x62002A, + SMSG_SET_PET_SPECIALIZATION = 0x4200CD, + SMSG_SET_PLAYER_DECLINED_NAMES_RESULT = 0x5F000C, + SMSG_SET_PLAY_HOVER_ANIM = 0x42005D, + SMSG_SET_PROFICIENCY = 0x4201DD, + SMSG_SET_QUEST_REPLAY_COOLDOWN_OVERRIDE = 0x4202F2, + SMSG_SET_SHIPMENT_READY_RESPONSE = 0x4C003A, + SMSG_SET_SPELL_CHARGES = 0x620018, + SMSG_SET_TIME_ZONE_INFORMATION = 0x420121, + SMSG_SET_VEHICLE_REC_ID = 0x4201A0, + SMSG_SHADOWLANDS_CAPACITANCE_UPDATE = 0x420317, + SMSG_SHIPMENT_FACTION_UPDATE_RESULT = 0x4C003B, + SMSG_SHOW_DELVES_COMPANION_CONFIGURATION_UI = 0x420358, + SMSG_SHOW_DELVES_DISPLAY_UI = 0x420356, + SMSG_SHOW_NEUTRAL_PLAYER_FACTION_SELECT_UI = 0x42007D, + SMSG_SHOW_QUEST_COMPLETION_TEXT = 0x600015, + SMSG_SHOW_TAXI_NODES = 0x420177, + SMSG_SHOW_TRADE_SKILL_RESPONSE = 0x420219, + SMSG_SOCIAL_CONTRACT_REQUEST_RESPONSE = 0x420323, + SMSG_SOCKET_GEMS_FAILURE = 0x4201D0, + SMSG_SOCKET_GEMS_SUCCESS = 0x4201CF, + SMSG_SPECIAL_MOUNT_ANIM = 0x420149, + SMSG_SPECTATE_END = 0x420345, + SMSG_SPECTATE_PLAYER = 0x420344, + SMSG_SPEC_INVOLUNTARILY_CHANGED = 0x4201C2, + SMSG_SPELL_ABSORB_LOG = 0x62000C, + SMSG_SPELL_CATEGORY_COOLDOWN = 0x620006, + SMSG_SPELL_CHANNEL_START = 0x620022, + SMSG_SPELL_CHANNEL_UPDATE = 0x620023, + SMSG_SPELL_COOLDOWN = 0x620005, + SMSG_SPELL_DAMAGE_SHIELD = 0x62001F, + SMSG_SPELL_DELAYED = 0x620032, + SMSG_SPELL_DISPELL_LOG = 0x620007, + SMSG_SPELL_EMPOWER_SET_STAGE = 0x620026, + SMSG_SPELL_EMPOWER_START = 0x620024, + SMSG_SPELL_EMPOWER_UPDATE = 0x620025, + SMSG_SPELL_ENERGIZE_LOG = 0x620009, + SMSG_SPELL_EXECUTE_LOG = 0x620033, + SMSG_SPELL_FAILED_OTHER = 0x620048, + SMSG_SPELL_FAILURE = 0x620046, + SMSG_SPELL_FAILURE_MESSAGE = 0x62004D, + SMSG_SPELL_GO = 0x62002C, + SMSG_SPELL_HEAL_ABSORB_LOG = 0x62000B, + SMSG_SPELL_HEAL_LOG = 0x62000A, + SMSG_SPELL_INSTAKILL_LOG = 0x620021, + SMSG_SPELL_INTERRUPT_LOG = 0x62000D, + SMSG_SPELL_MISS_LOG = 0x620034, + SMSG_SPELL_NON_MELEE_DAMAGE_LOG = 0x620020, + SMSG_SPELL_OR_DAMAGE_IMMUNE = 0x62001D, + SMSG_SPELL_PERIODIC_AURA_LOG = 0x620008, + SMSG_SPELL_PREPARE = 0x62002B, + SMSG_SPELL_START = 0x62002D, + SMSG_SPELL_VISUAL_LOAD_SCREEN = 0x42006F, + SMSG_SPLASH_SCREEN_SHOW_LATEST = 0x420304, + SMSG_STAND_STATE_UPDATE = 0x4201C6, + SMSG_STARTER_BUILD_ACTIVATE_FAILED = 0x420075, + SMSG_START_ELAPSED_TIMER = 0x4200AA, + SMSG_START_ELAPSED_TIMERS = 0x4200AC, + SMSG_START_LIGHTNING_STORM = 0x420151, + SMSG_START_LOOT_ROLL = 0x4200C5, + SMSG_START_MIRROR_TIMER = 0x4201B9, + SMSG_START_TIMER = 0x42003D, + SMSG_STOP_ELAPSED_TIMER = 0x4200AB, + SMSG_STOP_MIRROR_TIMER = 0x4201BB, + SMSG_STOP_SPEAKERBOT_SOUND = 0x420215, + SMSG_STOP_TIMER = 0x42003E, + SMSG_STREAMING_MOVIES = 0x42003C, + SMSG_SUGGEST_INVITE_INFORM = 0x42023F, + SMSG_SUMMON_CANCEL = 0x42015A, + SMSG_SUMMON_RAID_MEMBER_VALIDATE_FAILED = 0x420023, + SMSG_SUMMON_REQUEST = 0x4201CA, + SMSG_SUPERCEDED_SPELLS = 0x62003F, + SMSG_SURVEY_DELIVERED = 0x420360, + SMSG_SUSPEND_COMMS = 0x490004, + SMSG_SUSPEND_TOKEN = 0x420040, + SMSG_SYNC_WOW_ENTITLEMENTS = 0x4202FC, + SMSG_TALENTS_INVOLUNTARILY_RESET = 0x4201C1, + SMSG_TAXI_NODE_STATUS = 0x420126, + SMSG_TEXT_EMOTE = 0x420124, + SMSG_THREAT_CLEAR = 0x420186, + SMSG_THREAT_REMOVE = 0x420185, + SMSG_THREAT_UPDATE = 0x420184, + SMSG_TIMERUNNING_SEASON_ENDED = 0x420359, + SMSG_TIME_ADJUSTMENT = 0x5A0001, + SMSG_TIME_SYNC_REQUEST = 0x5A0000, + SMSG_TITLE_EARNED = 0x420181, + SMSG_TITLE_LOST = 0x420182, + SMSG_TOTEM_CREATED = 0x420171, + SMSG_TOTEM_DURATION_CHANGED = 0x420173, + SMSG_TOTEM_MOVED = 0x420174, + SMSG_TOTEM_REMOVED = 0x420172, + SMSG_TRADE_STATUS = 0x420017, + SMSG_TRADE_UPDATED = 0x420016, + SMSG_TRAINER_BUY_FAILED = 0x420189, + SMSG_TRAINER_LIST = 0x420188, + SMSG_TRAIT_CONFIG_COMMIT_FAILED = 0x420074, + SMSG_TRANSFER_ABORTED = 0x4201AC, + SMSG_TRANSFER_PENDING = 0x420070, + SMSG_TRANSMOG_OUTFIT_INFO_UPDATED = 0x42004B, + SMSG_TRANSMOG_OUTFIT_NEW_ENTRY_ADDED = 0x42004A, + SMSG_TRANSMOG_OUTFIT_SITUATIONS_UPDATED = 0x42004C, + SMSG_TRANSMOG_OUTFIT_SLOTS_UPDATED = 0x42004D, + SMSG_TREASURE_PICKER_RESPONSE = 0x460011, + SMSG_TREASURE_PUNCH_LIST_ITEMS_RESPONSE = 0x420379, + SMSG_TRIGGER_CINEMATIC = 0x420272, + SMSG_TRIGGER_MOVIE = 0x420175, + SMSG_TURN_IN_PETITION_RESULT = 0x4201F6, + SMSG_TUTORIAL_FLAGS = 0x420266, + SMSG_UI_ACTION = 0x420212, + SMSG_UI_MAP_QUEST_LINES_RESPONSE = 0x600023, + SMSG_UNDELETE_CHARACTER_RESPONSE = 0x420273, + SMSG_UNDELETE_COOLDOWN_STATUS_RESPONSE = 0x420274, + SMSG_UNIT_DIMINISHING_RETURN_START = 0x420376, + SMSG_UNLEARNED_SPELLS = 0x620041, + SMSG_UNLOAD_CHILD_MAP = 0x42000E, + SMSG_UNSET_INSTANCE_LEAVER = 0x42036C, + SMSG_UPDATE_AADC_STATUS_RESPONSE = 0x420314, + SMSG_UPDATE_ACCOUNT_DATA = 0x4201B2, + SMSG_UPDATE_ACCOUNT_DATA_COMPLETE = 0x4201B3, + SMSG_UPDATE_ACTION_BUTTONS = 0x420082, + SMSG_UPDATE_BNET_SESSION_KEY = 0x4202CC, + SMSG_UPDATE_CAPTURE_POINT = 0x480007, + SMSG_UPDATE_CELESTIAL_BODY = 0x4202C8, + SMSG_UPDATE_CHARACTER_FLAGS = 0x42026C, + SMSG_UPDATE_CHARGE_CATEGORY_COOLDOWN = 0x42020E, + SMSG_UPDATE_COOLDOWN = 0x42020D, + SMSG_UPDATE_CRAFTING_NPC_RECIPES = 0x4C0038, + SMSG_UPDATE_DAILY_MISSION_COUNTER = 0x4C0021, + SMSG_UPDATE_EXPANSION_LEVEL = 0x4200EE, + SMSG_UPDATE_GAME_TIME_STATE = 0x4202CF, + SMSG_UPDATE_INSTANCE_OWNERSHIP = 0x420153, + SMSG_UPDATE_LAST_INSTANCE = 0x420132, + SMSG_UPDATE_OBJECT = 0x580000, + SMSG_UPDATE_PRIMARY_SPEC = 0x42007A, + SMSG_UPDATE_RECENT_PLAYER_GUIDS = 0x420097, + SMSG_UPDATE_TALENT_DATA = 0x420079, + SMSG_UPDATE_WORLD_STATE = 0x4201F0, + SMSG_USERLIST_ADD = 0x47000F, + SMSG_USERLIST_REMOVE = 0x470010, + SMSG_USERLIST_UPDATE = 0x470011, + SMSG_USE_EQUIPMENT_SET_RESULT = 0x4201F7, + SMSG_VAS_CHECK_TRANSFER_OK_RESPONSE = 0x4202C3, + SMSG_VAS_GET_QUEUE_MINUTES_RESPONSE = 0x4202C1, + SMSG_VAS_GET_SERVICE_STATUS_RESPONSE = 0x4202C0, + SMSG_VAS_PURCHASE_COMPLETE = 0x42029A, + SMSG_VAS_PURCHASE_STATE_UPDATE = 0x420299, + SMSG_VENDOR_INVENTORY = 0x42005B, + SMSG_VIGNETTE_UPDATE = 0x5F0011, + SMSG_VOICE_CHANNEL_INFO_RESPONSE = 0x4202C7, + SMSG_VOICE_CHANNEL_STT_TOKEN_RESPONSE = 0x42030F, + SMSG_VOICE_LOGIN_RESPONSE = 0x4202C6, + SMSG_VOID_ITEM_SWAP_RESPONSE = 0x630004, + SMSG_VOID_STORAGE_CONTENTS = 0x630001, + SMSG_VOID_STORAGE_FAILED = 0x630000, + SMSG_VOID_STORAGE_TRANSFER_CHANGES = 0x630002, + SMSG_VOID_TRANSFER_RESULT = 0x630003, + SMSG_WAIT_QUEUE_FINISH = 0x420003, + SMSG_WAIT_QUEUE_UPDATE = 0x420002, + SMSG_WALK_IN_RESULT = 0x650000, + SMSG_WARDEN3_DATA = 0x42000B, + SMSG_WARDEN3_DISABLED = 0x4202CA, + SMSG_WARDEN3_ENABLED = 0x4202C9, + SMSG_WARFRONT_COMPLETE = 0x420206, + SMSG_WARGAME_REQUEST_OPPONENT_RESPONSE = 0x480012, + SMSG_WARGAME_REQUEST_SUCCESSFULLY_SENT_TO_OPPONENT = 0x480011, + SMSG_WEATHER = 0x420150, + SMSG_WEEKLY_REWARDS_PROGRESS_RESULT = 0x420307, + SMSG_WEEKLY_REWARDS_RESULT = 0x420305, + SMSG_WEEKLY_REWARD_CLAIM_RESULT = 0x420306, + SMSG_WHO = 0x470002, + SMSG_WHO_IS = 0x42014F, + SMSG_WILL_BE_KICKED_FOR_ADDED_SUBSCRIPTION_TIME = 0x4202CE, + SMSG_WORLD_QUEST_UPDATE_RESPONSE = 0x5F0018, + SMSG_WORLD_SERVER_INFO = 0x420045, + SMSG_WOW_ENTITLEMENT_NOTIFICATION = 0x4202FD, + SMSG_WOW_LABS_AREA_SELECTED = 0x420329, + SMSG_WOW_LABS_NOTIFY_PLAYERS_MATCH_END = 0x420324, + SMSG_WOW_LABS_NOTIFY_PLAYERS_MATCH_STATE_CHANGED = 0x420325, + SMSG_WOW_LABS_PARTY_ERROR = 0x420331, + SMSG_WOW_LABS_SET_PREDICTION_CIRCLE = 0x42032A, + SMSG_WOW_LABS_SET_WOW_LABS_AREA_ID_RESPONSE = 0x420326, + SMSG_XP_AWARDED_FROM_CURRENCY = 0x42033F, + SMSG_XP_GAIN_ABORTED = 0x42006C, + SMSG_XP_GAIN_ENABLED = 0x420256, + SMSG_ZONE_UNDER_ATTACK = 0x47000B, // Deleted opcodes, here only to allow compile - SMSG_ARENA_TEAM_STATS = UNKNOWN_OPCODE, + SMSG_ARENA_TEAM_STATS = UNKNOWN_OPCODE, }; -inline constexpr std::size_t NUM_SMSG_OPCODES = 1600; +inline constexpr std::size_t NUM_SMSG_OPCODES = 1636; inline constexpr std::ptrdiff_t GetOpcodeArrayIndex(OpcodeServer opcode) { uint32 idInGroup = opcode & 0xFFFF; switch (opcode >> 16) { - case 0x40: return idInGroup < 869 ? idInGroup + 0 : -1; - case 0x41: return idInGroup < 5 ? idInGroup + 869 : -1; - case 0x44: return idInGroup < 20 ? idInGroup + 874 : -1; - case 0x45: return idInGroup < 36 ? idInGroup + 894 : -1; - case 0x46: return idInGroup < 49 ? idInGroup + 930 : -1; - case 0x47: return idInGroup < 13 ? idInGroup + 979 : -1; - case 0x48: return idInGroup < 12 ? idInGroup + 992 : -1; - case 0x4A: return idInGroup < 82 ? idInGroup + 1004 : -1; - case 0x4C: return idInGroup < 72 ? idInGroup + 1086 : -1; - case 0x4E: return idInGroup < 2 ? idInGroup + 1158 : -1; - case 0x4F: return idInGroup < 11 ? idInGroup + 1160 : -1; - case 0x50: return idInGroup < 8 ? idInGroup + 1171 : -1; - case 0x51: return idInGroup < 8 ? idInGroup + 1179 : -1; - case 0x52: return idInGroup < 36 ? idInGroup + 1187 : -1; - case 0x53: return idInGroup < 8 ? idInGroup + 1223 : -1; - case 0x54: return idInGroup < 34 ? idInGroup + 1231 : -1; - case 0x56: return idInGroup < 1 ? idInGroup + 1265 : -1; - case 0x58: return idInGroup < 120 ? idInGroup + 1266 : -1; - case 0x59: return idInGroup < 5 ? idInGroup + 1386 : -1; - case 0x5A: return idInGroup < 22 ? idInGroup + 1391 : -1; - case 0x5C: return idInGroup < 52 ? idInGroup + 1413 : -1; - case 0x5D: return idInGroup < 41 ? idInGroup + 1465 : -1; - case 0x5F: return idInGroup < 85 ? idInGroup + 1506 : -1; - case 0x60: return idInGroup < 8 ? idInGroup + 1591 : -1; - case 0x62: return idInGroup < 1 ? idInGroup + 1599 : -1; + case 0x42: return idInGroup < 891 ? idInGroup + 0 : -1; + case 0x43: return idInGroup < 5 ? idInGroup + 891 : -1; + case 0x46: return idInGroup < 20 ? idInGroup + 896 : -1; + case 0x47: return idInGroup < 36 ? idInGroup + 916 : -1; + case 0x48: return idInGroup < 49 ? idInGroup + 952 : -1; + case 0x49: return idInGroup < 13 ? idInGroup + 1001 : -1; + case 0x4A: return idInGroup < 12 ? idInGroup + 1014 : -1; + case 0x4C: return idInGroup < 82 ? idInGroup + 1026 : -1; + case 0x4E: return idInGroup < 72 ? idInGroup + 1108 : -1; + case 0x50: return idInGroup < 2 ? idInGroup + 1180 : -1; + case 0x51: return idInGroup < 11 ? idInGroup + 1182 : -1; + case 0x52: return idInGroup < 8 ? idInGroup + 1193 : -1; + case 0x53: return idInGroup < 8 ? idInGroup + 1201 : -1; + case 0x54: return idInGroup < 36 ? idInGroup + 1209 : -1; + case 0x55: return idInGroup < 8 ? idInGroup + 1245 : -1; + case 0x56: return idInGroup < 34 ? idInGroup + 1253 : -1; + case 0x58: return idInGroup < 1 ? idInGroup + 1287 : -1; + case 0x5A: return idInGroup < 122 ? idInGroup + 1288 : -1; + case 0x5B: return idInGroup < 6 ? idInGroup + 1410 : -1; + case 0x5C: return idInGroup < 23 ? idInGroup + 1416 : -1; + case 0x5E: return idInGroup < 8 ? idInGroup + 1439 : -1; + case 0x5F: return idInGroup < 52 ? idInGroup + 1447 : -1; + case 0x60: return idInGroup < 41 ? idInGroup + 1499 : -1; + case 0x62: return idInGroup < 87 ? idInGroup + 1540 : -1; + case 0x63: return idInGroup < 8 ? idInGroup + 1627 : -1; + case 0x65: return idInGroup < 1 ? idInGroup + 1635 : -1; default: return -1; } } diff --git a/src/server/game/Spells/Auras/SpellAuraDefines.h b/src/server/game/Spells/Auras/SpellAuraDefines.h index 26d569da5b..248d3aa7f5 100644 --- a/src/server/game/Spells/Auras/SpellAuraDefines.h +++ b/src/server/game/Spells/Auras/SpellAuraDefines.h @@ -730,6 +730,16 @@ enum AuraType : uint32 SPELL_AURA_MOD_RANGED_ATTACK_SPEED_FLAT = 643, // NYI SPELL_AURA_644 = 644, SPELL_AURA_645 = 645, + SPELL_AURA_ADD_FLAT_PVP_MODIFIER = 646, + SPELL_AURA_ADD_PCT_PVP_MODIFIER = 647, + SPELL_AURA_ADD_FLAT_PVP_MODIFIER_BY_SPELL_LABEL = 648, + SPELL_AURA_ADD_PCT_PVP_MODIFIER_BY_SPELL_LABEL = 649, + SPELL_AURA_650 = 650, + SPELL_AURA_651 = 651, + SPELL_AURA_652 = 652, + SPELL_AURA_653 = 653, + SPELL_AURA_654 = 654, + SPELL_AURA_REMOVE_TRANSMOG_OUTFIT_UPDATE_COST = 655, TOTAL_AURAS }; diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index 2d9c4e9626..45f7bb3f96 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -715,6 +715,16 @@ NonDefaultConstructible AuraEffectHandler[TOTAL_AURAS]= &AuraEffect::HandleNULL, //643 SPELL_AURA_MOD_RANGED_ATTACK_SPEED_FLAT &AuraEffect::HandleNULL, //644 &AuraEffect::HandleNULL, //645 + &AuraEffect::HandleNULL, //646 SPELL_AURA_ADD_FLAT_PVP_MODIFIER + &AuraEffect::HandleNULL, //647 SPELL_AURA_ADD_PCT_PVP_MODIFIER + &AuraEffect::HandleNULL, //648 SPELL_AURA_ADD_FLAT_PVP_MODIFIER_BY_SPELL_LABEL + &AuraEffect::HandleNULL, //649 SPELL_AURA_ADD_PCT_PVP_MODIFIER_BY_SPELL_LABEL + &AuraEffect::HandleNULL, //650 + &AuraEffect::HandleNULL, //651 + &AuraEffect::HandleNULL, //652 + &AuraEffect::HandleNULL, //653 + &AuraEffect::HandleNULL, //654 + &AuraEffect::HandleNULL, //655 SPELL_AURA_REMOVE_TRANSMOG_OUTFIT_UPDATE_COST }; AuraEffect::AuraEffect(Aura* base, SpellEffectInfo const& spellEfffectInfo, int32 const* baseAmount, Unit* caster) : diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 0f54193e3a..8c3ca136d3 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -499,7 +499,10 @@ m_spellValue(new SpellValue(m_spellInfo, caster)), _spellEvent(nullptr) } if (Player const* modOwner = caster->GetSpellModOwner()) + { modOwner->ApplySpellMod(info, SpellModOp::Doses, m_spellValue->AuraStackAmount, this); + modOwner->ApplySpellMod(info, SpellModOp::MaxTargets, m_spellValue->MaxAffectedTargets, this); + } if (!originalCasterGUID.IsEmpty()) m_originalCasterGUID = originalCasterGUID; diff --git a/src/server/game/Spells/Spell.h b/src/server/game/Spells/Spell.h index 74fcf9a794..06d667bb21 100644 --- a/src/server/game/Spells/Spell.h +++ b/src/server/game/Spells/Spell.h @@ -632,7 +632,7 @@ class TC_GAME_API Spell struct { - uint32 Data[2]; + uint32 Data[3]; } Raw; } m_misc; std::any m_customArg; diff --git a/src/server/game/Spells/SpellDefines.h b/src/server/game/Spells/SpellDefines.h index 95ebfe2955..27c4257dc2 100644 --- a/src/server/game/Spells/SpellDefines.h +++ b/src/server/game/Spells/SpellDefines.h @@ -36,7 +36,7 @@ class Player; class Spell; class Unit; class WorldObject; -enum Difficulty : uint8; +enum Difficulty : int16; enum ProcFlags : uint32; enum ProcFlags2 : int32; enum SpellCastResult : int32; @@ -190,9 +190,24 @@ enum class SpellModOp : uint8 MaxAuraStacks = 37, ProcCooldown = 38, PowerCost2 = 39, // Used when SpellPowerEntry::PowerIndex == 2 + MaxTargets = 40 }; -#define MAX_SPELLMOD 40 +#define MAX_SPELLMOD 41 + +enum class SpellPvpModifier : uint8 +{ + HealingAndDamage = 0, + PeriodicHealingAndDamage = 1, + BonusCoefficient = 2, + + Points = 4, + PointsIndex0 = 5, + PointsIndex1 = 6, + PointsIndex2 = 7, + PointsIndex3 = 8, + PointsIndex4 = 9, +}; enum SpellValueMod : int32 { diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 6d950f1570..f9dacfebe3 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -441,6 +441,8 @@ NonDefaultConstructible SpellEffectHandlers[TOTAL_SPELL_EF &Spell::EffectNULL, //350 SPELL_EFFECT_LEARN_HOUSE_EXTERIOR_COMPONENT &Spell::EffectNULL, //351 SPELL_EFFECT_LEARN_HOUSE_THEME &Spell::EffectNULL, //352 SPELL_EFFECT_LEARN_HOUSE_ROOM_COMPONENT_TEXTURE + &Spell::EffectCreateAreaTrigger, //353 SPELL_EFFECT_CREATE_AREATRIGGER_2 + &Spell::EffectNULL, //354 SPELL_EFFECT_SET_NEIGHBORHOOD_INITIATIVE }; void Spell::EffectNULL() diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp index 698c2f23af..e63e84ca22 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -629,11 +629,8 @@ int32 SpellEffectInfo::CalcBaseValue(WorldObject const* caster, Unit const* targ return 0; uint32 effectiveItemLevel = itemLevel != -1 ? uint32(itemLevel) : 1u; - if (_spellInfo->Scaling.ScalesFromItemLevel || _spellInfo->HasAttribute(SPELL_ATTR11_SCALES_WITH_ITEM_LEVEL)) + if (_spellInfo->HasAttribute(SPELL_ATTR11_SCALES_WITH_ITEM_LEVEL)) { - if (_spellInfo->Scaling.ScalesFromItemLevel) - effectiveItemLevel = _spellInfo->Scaling.ScalesFromItemLevel; - if (Scaling.Class == -8 || Scaling.Class == -9) { RandPropPointsEntry const* randPropPoints = sRandPropPointsStore.LookupEntry(effectiveItemLevel); @@ -1285,6 +1282,8 @@ std::array SpellEffectInfo::_d {EFFECT_IMPLICIT_TARGET_NONE, TARGET_OBJECT_TYPE_NONE}, // 350 SPELL_EFFECT_LEARN_HOUSE_EXTERIOR_COMPONENT {EFFECT_IMPLICIT_TARGET_NONE, TARGET_OBJECT_TYPE_NONE}, // 351 SPELL_EFFECT_LEARN_HOUSE_THEME {EFFECT_IMPLICIT_TARGET_NONE, TARGET_OBJECT_TYPE_NONE}, // 352 SPELL_EFFECT_LEARN_HOUSE_ROOM_COMPONENT_TEXTURE + {EFFECT_IMPLICIT_TARGET_NONE, TARGET_OBJECT_TYPE_DEST}, // 353 SPELL_EFFECT_CREATE_AREATRIGGER_2 + {EFFECT_IMPLICIT_TARGET_NONE, TARGET_OBJECT_TYPE_NONE}, // 354 SPELL_EFFECT_SET_NEIGHBORHOOD_INITIATIVE } }; SpellInfo::SpellInfo(SpellNameEntry const* spellName, ::Difficulty difficulty, SpellInfoLoadHelper const& data) @@ -1329,6 +1328,7 @@ SpellInfo::SpellInfo(SpellNameEntry const* spellName, ::Difficulty difficulty, S AttributesEx13 = _misc->Attributes[13]; AttributesEx14 = _misc->Attributes[14]; AttributesEx15 = _misc->Attributes[15]; + AttributesEx16 = _misc->Attributes[16]; CastTimeEntry = sSpellCastTimesStore.LookupEntry(_misc->CastingTimeIndex); DurationEntry = sSpellDurationStore.LookupEntry(_misc->DurationIndex); RangeEntry = sSpellRangeStore.LookupEntry(_misc->RangeIndex); @@ -1347,7 +1347,6 @@ SpellInfo::SpellInfo(SpellNameEntry const* spellName, ::Difficulty difficulty, S { Scaling.MinScalingLevel = _scaling->MinScalingLevel; Scaling.MaxScalingLevel = _scaling->MaxScalingLevel; - Scaling.ScalesFromItemLevel = _scaling->ScalesFromItemLevel; } // SpellAuraOptionsEntry diff --git a/src/server/game/Spells/SpellInfo.h b/src/server/game/Spells/SpellInfo.h index 6897435a46..1af2abf6cd 100644 --- a/src/server/game/Spells/SpellInfo.h +++ b/src/server/game/Spells/SpellInfo.h @@ -343,6 +343,7 @@ class TC_GAME_API SpellInfo uint32 AttributesEx13 = 0; uint32 AttributesEx14 = 0; uint32 AttributesEx15 = 0; + uint32 AttributesEx16 = 0; uint32 AttributesCu = 0; std::bitset NegativeEffects; uint64 Stances = 0; @@ -422,7 +423,6 @@ class TC_GAME_API SpellInfo { uint32 MinScalingLevel = 0; uint32 MaxScalingLevel = 0; - uint32 ScalesFromItemLevel = 0; } Scaling; uint32 ExplicitTargetMask = 0; @@ -466,6 +466,7 @@ class TC_GAME_API SpellInfo bool HasAttribute(SpellAttr13 attribute) const { return !!(AttributesEx13 & attribute); } bool HasAttribute(SpellAttr14 attribute) const { return !!(AttributesEx14 & attribute); } bool HasAttribute(SpellAttr15 attribute) const { return !!(AttributesEx15 & attribute); } + bool HasAttribute(SpellAttr16 attribute) const { return !!(AttributesEx16 & attribute); } bool HasAttribute(SpellCustomAttributes customAttribute) const { return !!(AttributesCu & customAttribute); } bool CanBeInterrupted(WorldObject const* interruptCaster, Unit const* interruptTarget, bool ignoreImmunity = false) const; diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index d1c51b71b2..ce58745679 100644 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -66,7 +66,7 @@ namespace class ServersideSpellName { public: - explicit ServersideSpellName(uint32 id, std::string name) : _nameStorage(std::move(name)) + explicit ServersideSpellName(uint32 id, std::string_view name) : _nameStorage(name) { Name.ID = id; InitPointers(); @@ -2855,21 +2855,21 @@ void SpellMgr::LoadSpellInfoServerside() QueryResult spellsResult = WorldDatabase.Query("SELECT Id, DifficultyID, CategoryId, Dispel, Mechanic, Attributes, AttributesEx, AttributesEx2, AttributesEx3, " // 9 10 11 12 13 14 15 16 17 18 "AttributesEx4, AttributesEx5, AttributesEx6, AttributesEx7, AttributesEx8, AttributesEx9, AttributesEx10, AttributesEx11, AttributesEx12, AttributesEx13, " - // 19 20 21 22 23 24 25 26 27 28 - "AttributesEx14, AttributesEx15, Stances, StancesNot, Targets, TargetCreatureType, RequiresSpellFocus, FacingCasterFlags, CasterAuraState, TargetAuraState, " - // 29 30 31 32 33 34 - "ExcludeCasterAuraState, ExcludeTargetAuraState, CasterAuraSpell, TargetAuraSpell, ExcludeCasterAuraSpell, ExcludeTargetAuraSpell, " - // 35 36 37 38 39 + // 19 20 21 22 23 24 25 26 27 + "AttributesEx14, AttributesEx15, AttributesEx16, Stances, StancesNot, Targets, TargetCreatureType, RequiresSpellFocus, FacingCasterFlags, " + // 28 29 30 31 32 33 34 35 + "CasterAuraState, TargetAuraState, ExcludeCasterAuraState, ExcludeTargetAuraState, CasterAuraSpell, TargetAuraSpell, ExcludeCasterAuraSpell, ExcludeTargetAuraSpell, " + // 36 37 38 39 40 "CasterAuraType, TargetAuraType, ExcludeCasterAuraType, ExcludeTargetAuraType, CastingTimeIndex, " - // 40 41 42 43 44 45 46 + // 41 42 43 44 45 46 47 "RecoveryTime, CategoryRecoveryTime, StartRecoveryCategory, StartRecoveryTime, InterruptFlags, AuraInterruptFlags1, AuraInterruptFlags2, " - // 47 48 49 50 51 52 53 54 55 56 57 + // 48 49 50 51 52 53 54 55 56 57 58 "ChannelInterruptFlags1, ChannelInterruptFlags2, ProcFlags, ProcFlags2, ProcChance, ProcCharges, ProcCooldown, ProcBasePPM, MaxLevel, BaseLevel, SpellLevel, " - // 58 59 60 61 62 63 64 65 66 + // 59 60 61 62 63 64 65 66 67 "DurationIndex, RangeIndex, Speed, LaunchDelay, StackAmount, EquippedItemClass, EquippedItemSubClassMask, EquippedItemInventoryTypeMask, ContentTuningId, " - // 67 68 69 70 71 72 73 74 75 76 + // 68 69 70 71 72 73 74 75 76 77 "SpellName, ConeAngle, ConeWidth, MaxTargetLevel, MaxAffectedTargets, SpellFamilyName, SpellFamilyFlags1, SpellFamilyFlags2, SpellFamilyFlags3, SpellFamilyFlags4, " - // 77 78 79 80 81 + // 78 79 80 81 82 "DmgClass, PreventionType, AreaGroupId, SchoolMask, ChargeCategoryId FROM serverside_spell"); if (spellsResult) { @@ -2887,7 +2887,7 @@ void SpellMgr::LoadSpellInfoServerside() continue; } - mServersideSpellNames.emplace_back(spellId, fields[67].GetString()); + mServersideSpellNames.emplace_back(spellId, fields[68].GetStringView()); SpellInfo& spellInfo = const_cast(*mSpellInfoMap.emplace(&mServersideSpellNames.back().Name, difficulty, spellEffects[{ spellId, difficulty }]).first); spellInfo.CategoryId = fields[2].GetUInt32(); @@ -2909,63 +2909,64 @@ void SpellMgr::LoadSpellInfoServerside() spellInfo.AttributesEx13 = fields[18].GetUInt32(); spellInfo.AttributesEx14 = fields[19].GetUInt32(); spellInfo.AttributesEx15 = fields[20].GetUInt32(); - spellInfo.Stances = fields[21].GetUInt64(); - spellInfo.StancesNot = fields[22].GetUInt64(); - spellInfo.Targets = fields[23].GetUInt32(); - spellInfo.TargetCreatureType = fields[24].GetUInt32(); - spellInfo.RequiresSpellFocus = fields[25].GetUInt32(); - spellInfo.FacingCasterFlags = fields[26].GetUInt32(); - spellInfo.CasterAuraState = fields[27].GetUInt32(); - spellInfo.TargetAuraState = fields[28].GetUInt32(); - spellInfo.ExcludeCasterAuraState = fields[29].GetUInt32(); - spellInfo.ExcludeTargetAuraState = fields[30].GetUInt32(); - spellInfo.CasterAuraSpell = fields[31].GetUInt32(); - spellInfo.TargetAuraSpell = fields[32].GetUInt32(); - spellInfo.ExcludeCasterAuraSpell = fields[33].GetUInt32(); - spellInfo.ExcludeTargetAuraSpell = fields[34].GetUInt32(); - spellInfo.CasterAuraType = AuraType(fields[35].GetInt32()); - spellInfo.TargetAuraType = AuraType(fields[36].GetInt32()); - spellInfo.ExcludeCasterAuraType = AuraType(fields[37].GetInt32()); - spellInfo.ExcludeTargetAuraType = AuraType(fields[38].GetInt32()); - spellInfo.CastTimeEntry = sSpellCastTimesStore.LookupEntry(fields[39].GetUInt32()); - spellInfo.RecoveryTime = fields[40].GetUInt32(); - spellInfo.CategoryRecoveryTime = fields[41].GetUInt32(); - spellInfo.StartRecoveryCategory = fields[42].GetUInt32(); - spellInfo.StartRecoveryTime = fields[43].GetUInt32(); - spellInfo.InterruptFlags = SpellInterruptFlags(fields[44].GetUInt32()); - spellInfo.AuraInterruptFlags = SpellAuraInterruptFlags(fields[45].GetUInt32()); - spellInfo.AuraInterruptFlags2 = SpellAuraInterruptFlags2(fields[46].GetUInt32()); - spellInfo.ChannelInterruptFlags = SpellAuraInterruptFlags(fields[47].GetUInt32()); - spellInfo.ChannelInterruptFlags2 = SpellAuraInterruptFlags2(fields[48].GetUInt32()); - spellInfo.ProcFlags[0] = fields[49].GetUInt32(); - spellInfo.ProcFlags[1] = fields[50].GetUInt32(); - spellInfo.ProcChance = fields[51].GetUInt32(); - spellInfo.ProcCharges = fields[52].GetUInt32(); - spellInfo.ProcCooldown = fields[53].GetUInt32(); - spellInfo.ProcBasePPM = fields[54].GetFloat(); - spellInfo.MaxLevel = fields[55].GetUInt32(); - spellInfo.BaseLevel = fields[56].GetUInt32(); - spellInfo.SpellLevel = fields[57].GetUInt32(); - spellInfo.DurationEntry = sSpellDurationStore.LookupEntry(fields[58].GetUInt32()); - spellInfo.RangeEntry = sSpellRangeStore.LookupEntry(fields[59].GetUInt32()); - spellInfo.Speed = fields[60].GetFloat(); - spellInfo.LaunchDelay = fields[61].GetFloat(); - spellInfo.StackAmount = fields[62].GetUInt32(); - spellInfo.EquippedItemClass = fields[63].GetInt32(); - spellInfo.EquippedItemSubClassMask = fields[64].GetInt32(); - spellInfo.EquippedItemInventoryTypeMask = fields[65].GetInt32(); - spellInfo.ContentTuningId = fields[66].GetUInt32(); - spellInfo.ConeAngle = fields[68].GetFloat(); - spellInfo.Width = fields[69].GetFloat(); - spellInfo.MaxTargetLevel = fields[70].GetUInt32(); - spellInfo.MaxAffectedTargets = fields[71].GetUInt32(); - spellInfo.SpellFamilyName = fields[72].GetUInt32(); - spellInfo.SpellFamilyFlags = flag128(fields[73].GetUInt32(), fields[74].GetUInt32(), fields[75].GetUInt32(), fields[76].GetUInt32()); - spellInfo.DmgClass = fields[77].GetUInt32(); - spellInfo.PreventionType = fields[78].GetUInt32(); - spellInfo.RequiredAreasID = fields[79].GetInt32(); - spellInfo.SchoolMask = fields[80].GetUInt32(); - spellInfo.ChargeCategoryId = fields[81].GetUInt32(); + spellInfo.AttributesEx16 = fields[21].GetUInt32(); + spellInfo.Stances = fields[22].GetUInt64(); + spellInfo.StancesNot = fields[23].GetUInt64(); + spellInfo.Targets = fields[24].GetUInt32(); + spellInfo.TargetCreatureType = fields[25].GetUInt32(); + spellInfo.RequiresSpellFocus = fields[26].GetUInt32(); + spellInfo.FacingCasterFlags = fields[27].GetUInt32(); + spellInfo.CasterAuraState = fields[28].GetUInt32(); + spellInfo.TargetAuraState = fields[29].GetUInt32(); + spellInfo.ExcludeCasterAuraState = fields[30].GetUInt32(); + spellInfo.ExcludeTargetAuraState = fields[31].GetUInt32(); + spellInfo.CasterAuraSpell = fields[32].GetUInt32(); + spellInfo.TargetAuraSpell = fields[33].GetUInt32(); + spellInfo.ExcludeCasterAuraSpell = fields[34].GetUInt32(); + spellInfo.ExcludeTargetAuraSpell = fields[35].GetUInt32(); + spellInfo.CasterAuraType = AuraType(fields[36].GetInt32()); + spellInfo.TargetAuraType = AuraType(fields[37].GetInt32()); + spellInfo.ExcludeCasterAuraType = AuraType(fields[38].GetInt32()); + spellInfo.ExcludeTargetAuraType = AuraType(fields[39].GetInt32()); + spellInfo.CastTimeEntry = sSpellCastTimesStore.LookupEntry(fields[40].GetUInt32()); + spellInfo.RecoveryTime = fields[41].GetUInt32(); + spellInfo.CategoryRecoveryTime = fields[42].GetUInt32(); + spellInfo.StartRecoveryCategory = fields[43].GetUInt32(); + spellInfo.StartRecoveryTime = fields[44].GetUInt32(); + spellInfo.InterruptFlags = SpellInterruptFlags(fields[45].GetUInt32()); + spellInfo.AuraInterruptFlags = SpellAuraInterruptFlags(fields[46].GetUInt32()); + spellInfo.AuraInterruptFlags2 = SpellAuraInterruptFlags2(fields[47].GetUInt32()); + spellInfo.ChannelInterruptFlags = SpellAuraInterruptFlags(fields[48].GetUInt32()); + spellInfo.ChannelInterruptFlags2 = SpellAuraInterruptFlags2(fields[49].GetUInt32()); + spellInfo.ProcFlags[0] = fields[50].GetUInt32(); + spellInfo.ProcFlags[1] = fields[51].GetUInt32(); + spellInfo.ProcChance = fields[52].GetUInt32(); + spellInfo.ProcCharges = fields[53].GetUInt32(); + spellInfo.ProcCooldown = fields[54].GetUInt32(); + spellInfo.ProcBasePPM = fields[55].GetFloat(); + spellInfo.MaxLevel = fields[56].GetUInt32(); + spellInfo.BaseLevel = fields[57].GetUInt32(); + spellInfo.SpellLevel = fields[58].GetUInt32(); + spellInfo.DurationEntry = sSpellDurationStore.LookupEntry(fields[59].GetUInt32()); + spellInfo.RangeEntry = sSpellRangeStore.LookupEntry(fields[60].GetUInt32()); + spellInfo.Speed = fields[61].GetFloat(); + spellInfo.LaunchDelay = fields[62].GetFloat(); + spellInfo.StackAmount = fields[63].GetUInt32(); + spellInfo.EquippedItemClass = fields[64].GetInt32(); + spellInfo.EquippedItemSubClassMask = fields[65].GetInt32(); + spellInfo.EquippedItemInventoryTypeMask = fields[66].GetInt32(); + spellInfo.ContentTuningId = fields[67].GetUInt32(); + spellInfo.ConeAngle = fields[69].GetFloat(); + spellInfo.Width = fields[70].GetFloat(); + spellInfo.MaxTargetLevel = fields[71].GetUInt32(); + spellInfo.MaxAffectedTargets = fields[72].GetUInt32(); + spellInfo.SpellFamilyName = fields[73].GetUInt32(); + spellInfo.SpellFamilyFlags = flag128(fields[74].GetUInt32(), fields[75].GetUInt32(), fields[76].GetUInt32(), fields[77].GetUInt32()); + spellInfo.DmgClass = fields[78].GetUInt32(); + spellInfo.PreventionType = fields[79].GetUInt32(); + spellInfo.RequiredAreasID = fields[80].GetInt32(); + spellInfo.SchoolMask = fields[81].GetUInt32(); + spellInfo.ChargeCategoryId = fields[82].GetUInt32(); } while (spellsResult->NextRow()); } diff --git a/src/server/game/Spells/SpellScript.h b/src/server/game/Spells/SpellScript.h index 8d30ec3486..19b30ef995 100644 --- a/src/server/game/Spells/SpellScript.h +++ b/src/server/game/Spells/SpellScript.h @@ -52,7 +52,7 @@ class WorldObject; struct SpellDestination; struct SpellModifier; struct SpellValue; -enum Difficulty : uint8; +enum Difficulty : int16; enum class ItemContext : uint8; #define SPELL_EFFECT_ANY ((uint16)-1) diff --git a/src/tools/extractor_common/ExtractorDB2LoadInfo.h b/src/tools/extractor_common/ExtractorDB2LoadInfo.h index 2b19dab7f6..4aff83b9a4 100644 --- a/src/tools/extractor_common/ExtractorDB2LoadInfo.h +++ b/src/tools/extractor_common/ExtractorDB2LoadInfo.h @@ -80,7 +80,7 @@ struct GameobjectDisplayInfoLoadInfo .ParentIndexField = -1, .FieldCount = 9, .FileFieldCount = 9, - .LayoutHash = 0xD85414D1, + .LayoutHash = 0x16D1DD61, .Fields = MetaFields }; @@ -191,8 +191,8 @@ struct LiquidTypeLoadInfo { .Type = FT_BYTE, .ArraySize = 1, .IsSigned = false }, { .Type = FT_INT, .ArraySize = 1, .IsSigned = true }, { .Type = FT_BYTE, .ArraySize = 6, .IsSigned = false }, - { .Type = FT_INT, .ArraySize = 2, .IsSigned = true }, - { .Type = FT_FLOAT, .ArraySize = 18, .IsSigned = true }, + { .Type = FT_INT, .ArraySize = 3, .IsSigned = true }, + { .Type = FT_FLOAT, .ArraySize = 38, .IsSigned = true }, { .Type = FT_INT, .ArraySize = 4, .IsSigned = false }, { .Type = FT_FLOAT, .ArraySize = 4, .IsSigned = true }, }; @@ -204,11 +204,11 @@ struct LiquidTypeLoadInfo .ParentIndexField = -1, .FieldCount = 21, .FileFieldCount = 21, - .LayoutHash = 0x4397CEE6, + .LayoutHash = 0xD1ECEEC9, .Fields = MetaFields }; - static constexpr DB2FieldMeta Fields[56] = + static constexpr DB2FieldMeta Fields[77] = { { .IsSigned = false, .Type = FT_INT, .Name = "ID" }, { .IsSigned = false, .Type = FT_STRING_NOT_LOCALIZED, .Name = "Name" }, @@ -240,6 +240,7 @@ struct LiquidTypeLoadInfo { .IsSigned = false, .Type = FT_BYTE, .Name = "FrameCountTexture6" }, { .IsSigned = true, .Type = FT_INT, .Name = "Color1" }, { .IsSigned = true, .Type = FT_INT, .Name = "Color2" }, + { .IsSigned = true, .Type = FT_INT, .Name = "Color3" }, { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float1" }, { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float2" }, { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float3" }, @@ -258,6 +259,26 @@ struct LiquidTypeLoadInfo { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float16" }, { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float17" }, { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float18" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float19" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float20" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float21" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float22" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float23" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float24" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float25" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float26" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float27" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float28" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float29" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float30" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float31" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float32" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float33" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float34" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float35" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float36" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float37" }, + { .IsSigned = false, .Type = FT_FLOAT, .Name = "Float38" }, { .IsSigned = false, .Type = FT_INT, .Name = "Int1" }, { .IsSigned = false, .Type = FT_INT, .Name = "Int2" }, { .IsSigned = false, .Type = FT_INT, .Name = "Int3" }, @@ -268,7 +289,7 @@ struct LiquidTypeLoadInfo { .IsSigned = false, .Type = FT_FLOAT, .Name = "Coefficient4" }, }; - static constexpr DB2FileLoadInfo Instance{ Fields, 56, &MetaInstance }; + static constexpr DB2FileLoadInfo Instance{ Fields, 77, &MetaInstance }; }; struct MapLoadInfo diff --git a/src/tools/map_extractor/loadlib/DBFilesClientList.h b/src/tools/map_extractor/loadlib/DBFilesClientList.h index ef4e02be69..f6d937298c 100644 --- a/src/tools/map_extractor/loadlib/DBFilesClientList.h +++ b/src/tools/map_extractor/loadlib/DBFilesClientList.h @@ -227,6 +227,7 @@ constexpr DB2FileInfo DBFilesClientList[] = { .FileDataId = 2098645, .Name = "CommunityIcon.db2" }, { .FileDataId = 1349053, .Name = "ComponentModelFileData.db2" }, { .FileDataId = 1278239, .Name = "ComponentTextureFileData.db2" }, + { .FileDataId = 7556242, .Name = "CompositeSpellsUIRedirect.db2" }, { .FileDataId = 5211412, .Name = "ConditionalChrModel.db2" }, { .FileDataId = 3501965, .Name = "ConditionalContentTuning.db2" }, { .FileDataId = 5525474, .Name = "ConditionalCreatureModelData.db2" }, @@ -257,6 +258,7 @@ constexpr DB2FileInfo DBFilesClientList[] = { .FileDataId = 4688652, .Name = "CraftingOrderHouse.db2" }, { .FileDataId = 5875491, .Name = "CraftingOrderXLabel.db2" }, { .FileDataId = 4373538, .Name = "CraftingQuality.db2" }, + { .FileDataId = 7012110, .Name = "CraftingQualityAtlasSet.db2" }, { .FileDataId = 4541803, .Name = "CraftingReagentEffect.db2" }, { .FileDataId = 4382197, .Name = "CraftingReagentQuality.db2" }, { .FileDataId = 5049814, .Name = "CraftingReagentRequirement.db2" }, @@ -293,9 +295,11 @@ constexpr DB2FileInfo DBFilesClientList[] = { .FileDataId = 1095531, .Name = "CurrencyTypes.db2" }, { .FileDataId = 892585, .Name = "Curve.db2" }, { .FileDataId = 892586, .Name = "CurvePoint.db2" }, + { .FileDataId = 7580602, .Name = "DamageMeterOverride.db2" }, { .FileDataId = 6653645, .Name = "DataTagGroup.db2" }, { .FileDataId = 6653584, .Name = "DataTagGroupXDataTag.db2" }, { .FileDataId = 6652252, .Name = "DataTagInfo.db2" }, + { .FileDataId = 7570371, .Name = "DataTagXHouseDecorRecord.db2" }, { .FileDataId = 6860787, .Name = "DataTagXRecord.db2" }, { .FileDataId = 1279415, .Name = "DeathThudLookups.db2" }, { .FileDataId = 1278176, .Name = "DecalProperties.db2" }, @@ -308,13 +312,11 @@ constexpr DB2FileInfo DBFilesClientList[] = { .FileDataId = 5920079, .Name = "DelvesSeason.db2" }, { .FileDataId = 5920080, .Name = "DelvesSeasonXSpell.db2" }, { .FileDataId = 1122116, .Name = "DestructibleModelData.db2" }, - { .FileDataId = 922722, .Name = "DeviceBlacklist.db2" }, { .FileDataId = 1352127, .Name = "Difficulty.db2" }, { .FileDataId = 4279827, .Name = "DisplaySeason.db2" }, { .FileDataId = 1304325, .Name = "DissolveEffect.db2" }, { .FileDataId = 6320418, .Name = "DriveCapability.db2" }, { .FileDataId = 6336219, .Name = "DriveCapabilityTier.db2" }, - { .FileDataId = 922720, .Name = "DriverBlacklist.db2" }, { .FileDataId = 1347279, .Name = "DungeonEncounter.db2" }, { .FileDataId = 1283019, .Name = "DurabilityCosts.db2" }, { .FileDataId = 1130268, .Name = "DurabilityQuality.db2" }, @@ -325,7 +327,12 @@ constexpr DB2FileInfo DBFilesClientList[] = { .FileDataId = 1347273, .Name = "EmotesText.db2" }, { .FileDataId = 1283024, .Name = "EmotesTextData.db2" }, { .FileDataId = 1286524, .Name = "EmotesTextSound.db2" }, + { .FileDataId = 7571075, .Name = "EncounterEvent.db2" }, + { .FileDataId = 5609253, .Name = "EntryNode.db2" }, + { .FileDataId = 5609255, .Name = "EntryTemplate.db2" }, { .FileDataId = 1278398, .Name = "EnvironmentalDamage.db2" }, + { .FileDataId = 7499494, .Name = "EventSchedulerCategory.db2" }, + { .FileDataId = 7499495, .Name = "EventSchedulerEvent.db2" }, { .FileDataId = 1343313, .Name = "Exhaustion.db2" }, { .FileDataId = 1937326, .Name = "ExpectedStat.db2" }, { .FileDataId = 1969773, .Name = "ExpectedStatMod.db2" }, @@ -476,6 +483,13 @@ constexpr DB2FileInfo DBFilesClientList[] = { .FileDataId = 1121228, .Name = "ImportPriceQuality.db2" }, { .FileDataId = 1121227, .Name = "ImportPriceShield.db2" }, { .FileDataId = 1121230, .Name = "ImportPriceWeapon.db2" }, + { .FileDataId = 6880277, .Name = "InitiativeCycle.db2" }, + { .FileDataId = 6880278, .Name = "InitiativeCyclePriority.db2" }, + { .FileDataId = 6880279, .Name = "InitiativeMilestone.db2" }, + { .FileDataId = 6880280, .Name = "InitiativeReward.db2" }, + { .FileDataId = 6914777, .Name = "InitiativeRewardXMilestone.db2" }, + { .FileDataId = 6880281, .Name = "InitiativeTask.db2" }, + { .FileDataId = 6880282, .Name = "InitiativeXTask.db2" }, { .FileDataId = 1336651, .Name = "InvasionClientData.db2" }, { .FileDataId = 841626, .Name = "Item.db2" }, { .FileDataId = 982462, .Name = "ItemAppearance.db2" }, @@ -587,6 +601,7 @@ constexpr DB2FileInfo DBFilesClientList[] = { .FileDataId = 1308501, .Name = "LightSkybox.db2" }, { .FileDataId = 4680119, .Name = "LightWorldShadow.db2" }, { .FileDataId = 2003383, .Name = "Lightning.db2" }, + { .FileDataId = 5609261, .Name = "Link.db2" }, { .FileDataId = 1132538, .Name = "LiquidMaterial.db2" }, { .FileDataId = 1308058, .Name = "LiquidObject.db2" }, { .FileDataId = 1371380, .Name = "LiquidType.db2" }, @@ -602,6 +617,7 @@ constexpr DB2FileInfo DBFilesClientList[] = { .FileDataId = 1098785, .Name = "LookAtController.db2" }, { .FileDataId = 3311370, .Name = "LoreText.db2" }, { .FileDataId = 3479846, .Name = "LoreTextPublic.db2" }, + { .FileDataId = 7449895, .Name = "MCRCurrency.db2" }, { .FileDataId = 3390955, .Name = "MCRSlotXMCRCategory.db2" }, { .FileDataId = 1240344, .Name = "MailTemplate.db2" }, { .FileDataId = 1587159, .Name = "ManagedWorldState.db2" }, @@ -628,8 +644,8 @@ constexpr DB2FileInfo DBFilesClientList[] = { .FileDataId = 1465904, .Name = "ModelAnimCloakDampening.db2" }, { .FileDataId = 1337833, .Name = "ModelFileData.db2" }, { .FileDataId = 1399953, .Name = "ModelRibbonQuality.db2" }, - { .FileDataId = 5682517, .Name = "ModelSoundSettings.db2" }, - { .FileDataId = 5393277, .Name = "ModelSoundTagEntry.db2" }, + { .FileDataId = 5393274, .Name = "ModelSoundAnimEntry.db2" }, + { .FileDataId = 5393275, .Name = "ModelSoundEntry.db2" }, { .FileDataId = 3386486, .Name = "ModifiedCraftingCategory.db2" }, { .FileDataId = 4530643, .Name = "ModifiedCraftingItem.db2" }, { .FileDataId = 3386487, .Name = "ModifiedCraftingReagentItem.db2" }, @@ -667,12 +683,14 @@ constexpr DB2FileInfo DBFilesClientList[] = { .FileDataId = 1117085, .Name = "NamesReserved.db2" }, { .FileDataId = 1117087, .Name = "NamesReservedLocale.db2" }, { .FileDataId = 6699736, .Name = "NeighborhoodInitiative.db2" }, - { .FileDataId = 6702594, .Name = "NeighborhoodInitiativeReward.db2" }, - { .FileDataId = 6702595, .Name = "NeighborhoodInitiativeTask.db2" }, - { .FileDataId = 6708736, .Name = "NeighborhoodInitiativeXTask.db2" }, { .FileDataId = 5550624, .Name = "NeighborhoodMap.db2" }, { .FileDataId = 6237720, .Name = "NeighborhoodNameGen.db2" }, { .FileDataId = 5550625, .Name = "NeighborhoodPlot.db2" }, + { .FileDataId = 5609263, .Name = "Node.db2" }, + { .FileDataId = 7183970, .Name = "NodeGraphParam.db2" }, + { .FileDataId = 7183971, .Name = "NodeGraphParamValue.db2" }, + { .FileDataId = 5609279, .Name = "NodeTemplate.db2" }, + { .FileDataId = 5609267, .Name = "NodeTemplateXPinTemplate.db2" }, { .FileDataId = 1953326, .Name = "NumTalentsAtLevel.db2" }, { .FileDataId = 1090577, .Name = "ObjectEffect.db2" }, { .FileDataId = 1090575, .Name = "ObjectEffectModifier.db2" }, @@ -685,7 +703,6 @@ constexpr DB2FileInfo DBFilesClientList[] = { .FileDataId = 1002186, .Name = "OverrideSpellData.db2" }, { .FileDataId = 1394275, .Name = "PVPBracketTypes.db2" }, { .FileDataId = 1339820, .Name = "PVPDifficulty.db2" }, - { .FileDataId = 972287, .Name = "PVPItem.db2" }, { .FileDataId = 2992916, .Name = "PVPScoreboardCellInfo.db2" }, { .FileDataId = 2992917, .Name = "PVPScoreboardColumnHeader.db2" }, { .FileDataId = 2992918, .Name = "PVPScoreboardLayout.db2" }, @@ -718,6 +735,8 @@ constexpr DB2FileInfo DBFilesClientList[] = { .FileDataId = 1348558, .Name = "Phase.db2" }, { .FileDataId = 1267336, .Name = "PhaseShiftZoneSounds.db2" }, { .FileDataId = 987581, .Name = "PhaseXPhaseGroup.db2" }, + { .FileDataId = 5609269, .Name = "Pin.db2" }, + { .FileDataId = 5609270, .Name = "PinTemplate.db2" }, { .FileDataId = 5152358, .Name = "PingType.db2" }, { .FileDataId = 5922429, .Name = "PlayerCompanionInfo.db2" }, { .FileDataId = 1045411, .Name = "PlayerCondition.db2" }, @@ -882,6 +901,7 @@ constexpr DB2FileInfo DBFilesClientList[] = { .FileDataId = 2428698, .Name = "SpellClutterWeaponTrailDist.db2" }, { .FileDataId = 1139924, .Name = "SpellCooldowns.db2" }, { .FileDataId = 1140004, .Name = "SpellDescriptionVariables.db2" }, + { .FileDataId = 3055891, .Name = "SpellDiminish.db2" }, { .FileDataId = 1137829, .Name = "SpellDispelType.db2" }, { .FileDataId = 1137828, .Name = "SpellDuration.db2" }, { .FileDataId = 1140088, .Name = "SpellEffect.db2" }, @@ -923,6 +943,11 @@ constexpr DB2FileInfo DBFilesClientList[] = { .FileDataId = 1280618, .Name = "SpellShapeshiftForm.db2" }, { .FileDataId = 1268903, .Name = "SpellSpecialUnitEffect.db2" }, { .FileDataId = 1139993, .Name = "SpellTargetRestrictions.db2" }, + { .FileDataId = 6031283, .Name = "SpellTgtFilterRuleNode.db2" }, + { .FileDataId = 6031284, .Name = "SpellTgtFilterRuleSetNode.db2" }, + { .FileDataId = 6031285, .Name = "SpellTgtFilterRuleTemplate.db2" }, + { .FileDataId = 6031286, .Name = "SpellTgtGatherNode.db2" }, + { .FileDataId = 6031287, .Name = "SpellTgtGatherTemplate.db2" }, { .FileDataId = 1002162, .Name = "SpellTotems.db2" }, { .FileDataId = 897952, .Name = "SpellVisual.db2" }, { .FileDataId = 1140479, .Name = "SpellVisualAnim.db2" }, @@ -931,6 +956,7 @@ constexpr DB2FileInfo DBFilesClientList[] = { .FileDataId = 1685317, .Name = "SpellVisualEvent.db2" }, { .FileDataId = 897949, .Name = "SpellVisualKit.db2" }, { .FileDataId = 897951, .Name = "SpellVisualKitAreaModel.db2" }, + { .FileDataId = 7412806, .Name = "SpellVisualKitDecalAttach.db2" }, { .FileDataId = 1140480, .Name = "SpellVisualKitEffect.db2" }, { .FileDataId = 897953, .Name = "SpellVisualKitModelAttach.db2" }, { .FileDataId = 3989478, .Name = "SpellVisualKitPicker.db2" }, @@ -942,6 +968,7 @@ constexpr DB2FileInfo DBFilesClientList[] = { .FileDataId = 5735565, .Name = "SpotLightConditionMap.db2" }, { .FileDataId = 1604265, .Name = "StartupFiles.db2" }, { .FileDataId = 1140758, .Name = "Stationery.db2" }, + { .FileDataId = 5636015, .Name = "SubgraphNode.db2" }, { .FileDataId = 1345276, .Name = "SummonProperties.db2" }, { .FileDataId = 1302850, .Name = "TactKey.db2" }, { .FileDataId = 1302851, .Name = "TactKeyLookup.db2" }, @@ -993,9 +1020,15 @@ constexpr DB2FileInfo DBFilesClientList[] = { .FileDataId = 2399695, .Name = "TransmogDefaultLevel.db2" }, { .FileDataId = 1589454, .Name = "TransmogHoliday.db2" }, { .FileDataId = 3580450, .Name = "TransmogIllusion.db2" }, + { .FileDataId = 7320164, .Name = "TransmogOutfitEntry.db2" }, + { .FileDataId = 7300046, .Name = "TransmogOutfitSlotInfo.db2" }, + { .FileDataId = 7299793, .Name = "TransmogOutfitSlotOption.db2" }, { .FileDataId = 1376213, .Name = "TransmogSet.db2" }, { .FileDataId = 1576116, .Name = "TransmogSetGroup.db2" }, { .FileDataId = 1376212, .Name = "TransmogSetItem.db2" }, + { .FileDataId = 7211446, .Name = "TransmogSituation.db2" }, + { .FileDataId = 7212733, .Name = "TransmogSituationGroup.db2" }, + { .FileDataId = 7210468, .Name = "TransmogSituationTrigger.db2" }, { .FileDataId = 1140686, .Name = "TransportAnimation.db2" }, { .FileDataId = 1121973, .Name = "TransportPhysics.db2" }, { .FileDataId = 1140687, .Name = "TransportRotation.db2" }, @@ -1005,6 +1038,7 @@ constexpr DB2FileInfo DBFilesClientList[] = { .FileDataId = 3488582, .Name = "UIChromieTimeExpansionInfo.db2" }, { .FileDataId = 6155772, .Name = "UICinematicIntroInfo.db2" }, { .FileDataId = 3502042, .Name = "UICovenantAbility.db2" }, + { .FileDataId = 7265906, .Name = "UICovenantHighlight.db2" }, { .FileDataId = 3502043, .Name = "UICovenantPreview.db2" }, { .FileDataId = 4579858, .Name = "UIDeadlyDebuff.db2" }, { .FileDataId = 4065278, .Name = "UIDungeonScoreRarity.db2" },