diff --git a/WowPacketParser/Enums/ClientVersionBuild.cs b/WowPacketParser/Enums/ClientVersionBuild.cs index 1639ff96f8..1296e56cf7 100644 --- a/WowPacketParser/Enums/ClientVersionBuild.cs +++ b/WowPacketParser/Enums/ClientVersionBuild.cs @@ -1025,6 +1025,12 @@ public enum ClientVersionBuild V5_5_2_64271 = 64271, // live V5_5_2_64481 = 64481, // live + V5_5_3_64802 = 64802, // both live and ptr + V5_5_3_64857 = 64857, // live + V5_5_3_65703 = 65703, // live + V5_5_3_65746 = 65746, // live + V5_5_3_65890 = 65890, // live + V5_5_3_65988 = 65988, // live // Battle.net - should probably not mix this but oh well BattleNetV37165 = 37165, diff --git a/WowPacketParser/Enums/Version/Opcodes.cs b/WowPacketParser/Enums/Version/Opcodes.cs index 68489895e6..41ab410daa 100644 --- a/WowPacketParser/Enums/Version/Opcodes.cs +++ b/WowPacketParser/Enums/Version/Opcodes.cs @@ -50,6 +50,7 @@ using WowPacketParser.Enums.Version.V5_5_0_61735; using WowPacketParser.Enums.Version.V5_5_1_63311; using WowPacketParser.Enums.Version.V5_5_2_64068; +using WowPacketParser.Enums.Version.V5_5_3_64802; using WowPacketParser.Enums.Version.V6_0_2_19033; using WowPacketParser.Enums.Version.V6_0_3_19103; using WowPacketParser.Enums.Version.V6_1_0_19678; @@ -1195,6 +1196,13 @@ public static ClientVersionBuild GetOpcodeDefiningBuild(ClientVersionBuild build case ClientVersionBuild.V5_5_2_64271: case ClientVersionBuild.V5_5_2_64481: return ClientVersionBuild.V5_5_2_64068; + case ClientVersionBuild.V5_5_3_64802: + case ClientVersionBuild.V5_5_3_64857: + case ClientVersionBuild.V5_5_3_65703: + case ClientVersionBuild.V5_5_3_65746: + case ClientVersionBuild.V5_5_3_65890: + case ClientVersionBuild.V5_5_3_65988: + return ClientVersionBuild.V5_5_3_64802; default: return ClientVersionBuild.V3_3_5a_12340; } @@ -1412,6 +1420,8 @@ public static BiDictionary GetOpcodeDictionary(ClientVersionBuild b return Opcodes_5_5_1.Opcodes(direction); case ClientVersionBuild.V5_5_2_64068: return Opcodes_5_5_2.Opcodes(direction); + case ClientVersionBuild.V5_5_3_64802: + return Opcodes_5_5_3.Opcodes(direction); default: return Opcodes_3_3_5.Opcodes(direction); } diff --git a/WowPacketParser/Enums/Version/V5_5_3_64802/Opcodes.cs b/WowPacketParser/Enums/Version/V5_5_3_64802/Opcodes.cs new file mode 100644 index 0000000000..a4531544a9 --- /dev/null +++ b/WowPacketParser/Enums/Version/V5_5_3_64802/Opcodes.cs @@ -0,0 +1,1866 @@ +using WowPacketParser.Misc; + +namespace WowPacketParser.Enums.Version.V5_5_3_64802 +{ + public static class Opcodes_5_5_3 + { + public static BiDictionary Opcodes(Direction direction) + { + switch (direction) + { + case Direction.ClientToServer: + return ClientOpcodes; + case Direction.ServerToClient: + return ServerOpcodes; + default: + return MiscOpcodes; + } + } + + private static readonly BiDictionary ClientOpcodes = new() + { + { Opcode.CMSG_BATTLE_PET_CLEAR_FANFARE, 0x2D0002 }, + { Opcode.CMSG_MOUNT_CLEAR_FANFARE, 0x2D0003 }, + { Opcode.CMSG_TOY_CLEAR_FANFARE, 0x2D0004 }, + { Opcode.CMSG_CLEAR_NEW_APPEARANCE, 0x2D0005 }, + { Opcode.CMSG_REQUEST_STORE_FRONT_INFO_UPDATE, 0x2D001E }, + + { Opcode.CMSG_CHAT_JOIN_CHANNEL, 0x2F0000 }, + { Opcode.CMSG_CHAT_LEAVE_CHANNEL, 0x2F0001 }, + { Opcode.CMSG_CHAT_REPORT_IGNORED, 0x2F0003 }, + { Opcode.CMSG_CHAT_REPORT_FILTERED, 0x2F0004 }, + { Opcode.CMSG_CHAT_REGISTER_ADDON_PREFIXES, 0x2F0005 }, + { Opcode.CMSG_CHAT_UNREGISTER_ALL_ADDON_PREFIXES, 0x2F0006 }, + { Opcode.CMSG_CHAT_MESSAGE_CHANNEL, 0x2F0007 }, + { Opcode.CMSG_CHAT_MESSAGE_WHISPER, 0x2F0008 }, + { Opcode.CMSG_CHAT_SEND_CAUTIONARY_CHAT_MESSAGE, 0x2F0009 }, + { Opcode.CMSG_CHAT_DROP_CAUTIONARY_CHAT_MESSAGE, 0x2F000A }, + { Opcode.CMSG_CHAT_SEND_CAUTIONARY_CHANNEL_MESSAGE, 0x2F000B }, + { Opcode.CMSG_CHAT_MESSAGE_GUILD, 0x2F000D }, + { Opcode.CMSG_CHAT_MESSAGE_OFFICER, 0x2F000E }, + { Opcode.CMSG_CHAT_MESSAGE_AFK, 0x2F000F }, + { Opcode.CMSG_CHAT_MESSAGE_DND, 0x2F0010 }, + { Opcode.CMSG_CHAT_CHANNEL_LIST, 0x2F0011 }, + { Opcode.CMSG_CHAT_CHANNEL_DISPLAY_LIST, 0x2F0012 }, + { Opcode.CMSG_CHAT_CHANNEL_PASSWORD, 0x2F0013 }, + { Opcode.CMSG_CHAT_CHANNEL_SET_OWNER, 0x2F0014 }, + { Opcode.CMSG_CHAT_CHANNEL_OWNER, 0x2F0015 }, + { Opcode.CMSG_CHAT_CHANNEL_MODERATE, 0x2F0016 }, + { Opcode.CMSG_CHAT_CHANNEL_MODERATOR, 0x2F0017 }, + { Opcode.CMSG_CHAT_CHANNEL_UNMODERATOR, 0x2F0018 }, + { Opcode.CMSG_CHAT_CHANNEL_INVITE, 0x2F001B }, + { Opcode.CMSG_CHAT_CHANNEL_KICK, 0x2F001C }, + { Opcode.CMSG_CHAT_CHANNEL_BAN, 0x2F001D }, + { Opcode.CMSG_CHAT_CHANNEL_UNBAN, 0x2F001E }, + { Opcode.CMSG_CHAT_CHANNEL_ANNOUNCEMENTS, 0x2F001F }, + { Opcode.CMSG_CHAT_CHANNEL_SILENCE_ALL, 0x2F0020 }, + { Opcode.CMSG_CHAT_CHANNEL_UNSILENCE_ALL, 0x2F0021 }, + { Opcode.CMSG_CHAT_CHANNEL_DECLINE_INVITE, 0x2F0022 }, + { Opcode.CMSG_CHAT_MESSAGE_SAY, 0x2F0023 }, + { Opcode.CMSG_CHAT_MESSAGE_EMOTE, 0x2F0024 }, + { Opcode.CMSG_CHAT_MESSAGE_YELL, 0x2F0025 }, + { Opcode.CMSG_CHAT_MESSAGE_PARTY, 0x2F0026 }, + { Opcode.CMSG_CHAT_MESSAGE_RAID, 0x2F0027 }, + { Opcode.CMSG_CHAT_MESSAGE_INSTANCE_CHAT, 0x2F0028 }, + { Opcode.CMSG_CHAT_MESSAGE_RAID_WARNING, 0x2F0029 }, + { Opcode.CMSG_CHAT_ADDON_MESSAGE, 0x2F002A }, + { Opcode.CMSG_CHAT_ADDON_MESSAGE_TARGETED, 0x2F002B }, + + { Opcode.CMSG_MYTHIC_PLUS_REQUEST_MAP_STATS, 0x300000 }, + { Opcode.CMSG_CHALLENGE_MODE_REQUEST_LEADERS, 0x300001 }, + + { Opcode.CMSG_GUILD_PROMOTE_MEMBER, 0x310000 }, + { Opcode.CMSG_GUILD_DEMOTE_MEMBER, 0x310001 }, + { Opcode.CMSG_GUILD_ASSIGN_MEMBER_RANK, 0x310002 }, + { Opcode.CMSG_GUILD_LEAVE, 0x310003 }, + { Opcode.CMSG_GUILD_OFFICER_REMOVE_MEMBER, 0x310004 }, + { Opcode.CMSG_GUILD_ADD_RANK, 0x310005 }, + { Opcode.CMSG_GUILD_DELETE_RANK, 0x310006 }, + { Opcode.CMSG_GUILD_SHIFT_RANK, 0x310007 }, + { Opcode.CMSG_GUILD_SET_RANK_PERMISSIONS, 0x310008 }, + { Opcode.CMSG_GUILD_DELETE, 0x310009 }, + { Opcode.CMSG_GUILD_QUERY_MEMBER_RECIPES, 0x31000A }, + { Opcode.CMSG_GUILD_QUERY_RECIPES, 0x31000B }, + { Opcode.CMSG_GUILD_QUERY_NEWS, 0x31000D }, + { Opcode.CMSG_GUILD_GET_RANKS, 0x31000E }, + { Opcode.CMSG_GUILD_NEWS_UPDATE_STICKY, 0x31000F }, + { Opcode.CMSG_GUILD_SET_ACHIEVEMENT_TRACKING, 0x310010 }, + { Opcode.CMSG_GUILD_SET_FOCUSED_ACHIEVEMENT, 0x310011 }, + { Opcode.CMSG_GUILD_GET_ACHIEVEMENT_MEMBERS, 0x310012 }, + { Opcode.CMSG_GUILD_SET_MEMBER_NOTE, 0x310013 }, + { Opcode.CMSG_GUILD_GET_ROSTER, 0x310014 }, + { Opcode.CMSG_GUILD_UPDATE_MOTD_TEXT, 0x310015 }, + { Opcode.CMSG_GUILD_UPDATE_INFO_TEXT, 0x310016 }, + { Opcode.CMSG_GUILD_CHALLENGE_UPDATE_REQUEST, 0x310017 }, + { Opcode.CMSG_GUILD_CHANGE_NAME_REQUEST, 0x310018 }, + { Opcode.CMSG_GUILD_BANK_LOG_QUERY, 0x310019 }, + { Opcode.CMSG_GUILD_BANK_REMAINING_WITHDRAW_MONEY_QUERY, 0x31001A }, + { Opcode.CMSG_GUILD_PERMISSIONS_QUERY, 0x31001B }, + { Opcode.CMSG_GUILD_EVENT_LOG_QUERY, 0x31001C }, + { Opcode.CMSG_GUILD_BANK_SET_TAB_TEXT, 0x31001D }, + { Opcode.CMSG_GUILD_BANK_TEXT_QUERY, 0x31001E }, + { Opcode.CMSG_GUILD_REPLACE_GUILD_MASTER, 0x31001F }, + { Opcode.CMSG_GUILD_ADD_BATTLENET_FRIEND, 0x310020 }, + { Opcode.CMSG_GUILD_REQUEST_RENAME_STATUS, 0x310021 }, + { Opcode.CMSG_GUILD_REQUEST_RENAME_NAME_CHECK, 0x310022 }, + { Opcode.CMSG_GUILD_REQUEST_RENAME, 0x310023 }, + { Opcode.CMSG_GUILD_REQUEST_RENAME_REFUND, 0x310024 }, + + { Opcode.CMSG_REFORGE_ITEM, 0x330000 }, + { Opcode.CMSG_INITIATE_TRADE, 0x330001 }, + { Opcode.CMSG_BEGIN_TRADE, 0x330002 }, + { Opcode.CMSG_BUSY_TRADE, 0x330003 }, + { Opcode.CMSG_IGNORE_TRADE, 0x330004 }, + { Opcode.CMSG_ACCEPT_TRADE, 0x330005 }, + { Opcode.CMSG_UNACCEPT_TRADE, 0x330006 }, + { Opcode.CMSG_CANCEL_TRADE, 0x330007 }, + { Opcode.CMSG_SET_TRADE_ITEM, 0x330008 }, + { Opcode.CMSG_CLEAR_TRADE_ITEM, 0x330009 }, + { Opcode.CMSG_SET_TRADE_GOLD, 0x33000A }, + { Opcode.CMSG_BUY_STABLE_SLOT, 0x330013 }, + { Opcode.CMSG_SET_PET_SLOT, 0x330014 }, + { Opcode.CMSG_SET_PET_SPECIALIZATION, 0x330015 }, + { Opcode.CMSG_LEARN_PET_SPECIALIZATION_GROUP, 0x330016 }, + { Opcode.CMSG_SET_CURRENCY_FLAGS, 0x330017 }, + { Opcode.CMSG_BATTLEFIELD_LEAVE, 0x330020 }, + { Opcode.CMSG_QUERY_QUEST_COMPLETION_NPCS, 0x330022 }, + { Opcode.CMSG_QUERY_QUEST_ITEM_USABILITY, 0x330023 }, + { Opcode.CMSG_REQUEST_CEMETERY_LIST, 0x330024 }, + { Opcode.CMSG_SET_PREFERRED_CEMETERY, 0x330025 }, + { Opcode.CMSG_JOIN_RATED_BATTLEGROUND, 0x330026 }, + { Opcode.CMSG_REQUEST_HONOR_STATS, 0x330029 }, + { Opcode.CMSG_PVP_LOG_DATA, 0x33002A }, + { Opcode.CMSG_BATTLEFIELD_LIST, 0x33002C }, + { Opcode.CMSG_CANCEL_QUEUED_SPELL, 0x33002D }, + { Opcode.CMSG_OBJECT_UPDATE_FAILED, 0x33002E }, + { Opcode.CMSG_OBJECT_UPDATE_RESCUED, 0x33002F }, + { Opcode.CMSG_VIOLENCE_LEVEL, 0x330032 }, + { Opcode.CMSG_USED_FOLLOW, 0x330034 }, + { Opcode.CMSG_STAND_STATE_CHANGE, 0x330037 }, + { Opcode.CMSG_MISSILE_TRAJECTORY_COLLISION, 0x330038 }, + { Opcode.CMSG_SAVE_CUF_PROFILES, 0x330039 }, + { Opcode.CMSG_REQUEST_PVP_REWARDS, 0x330041 }, + { Opcode.CMSG_REQUEST_SCHEDULED_PVP_INFO, 0x330042 }, + { Opcode.CMSG_TRANSMOGRIFY_ITEMS, 0x330043 }, + { Opcode.CMSG_UNLEARN_SPECIALIZATION, 0x330051 }, + { Opcode.CMSG_CLEAR_RAID_MARKER, 0x330052 }, + { Opcode.CMSG_REQUEST_GUILD_REWARDS_LIST, 0x330053 }, + { Opcode.CMSG_REQUEST_GUILD_PARTY_STATE, 0x330054 }, + { Opcode.CMSG_QUERY_COUNTDOWN_TIMER, 0x330055 }, + { Opcode.CMSG_CANCEL_AURA, 0x33005A }, + { Opcode.CMSG_GAME_EVENT_DEBUG_ENABLE, 0x33005C }, + { Opcode.CMSG_GAME_EVENT_DEBUG_DISABLE, 0x33005D }, + { Opcode.CMSG_SET_GAME_EVENT_DEBUG_VIEW_STATE, 0x330064 }, + { Opcode.CMSG_NEUTRAL_PLAYER_SELECT_FACTION, 0x330081 }, + { Opcode.CMSG_AREA_TRIGGER, 0x330084 }, + { Opcode.CMSG_PET_BATTLE_REQUEST_WILD, 0x330087 }, + { Opcode.CMSG_PET_BATTLE_REQUEST_PVP, 0x330089 }, + { Opcode.CMSG_PET_BATTLE_REQUEST_UPDATE, 0x33008A }, + { Opcode.CMSG_JOIN_PET_BATTLE_QUEUE, 0x33008B }, + { Opcode.CMSG_LEAVE_PET_BATTLE_QUEUE, 0x33008C }, + { Opcode.CMSG_BATTLE_PET_UPDATE_NOTIFY, 0x33008D }, + { Opcode.CMSG_BATTLE_PET_UPDATE_DISPLAY_NOTIFY, 0x33008E }, + { Opcode.CMSG_PET_BATTLE_QUIT_NOTIFY, 0x33008F }, + { Opcode.CMSG_PET_BATTLE_FINAL_NOTIFY, 0x330090 }, + { Opcode.CMSG_PET_BATTLE_SCRIPT_ERROR_NOTIFY, 0x330091 }, + { Opcode.CMSG_CAGE_BATTLE_PET, 0x33009F }, + { Opcode.CMSG_ADVENTURE_JOURNAL_OPEN_QUEST, 0x3300B0 }, + { Opcode.CMSG_RESET_CHALLENGE_MODE, 0x3300B1 }, + { Opcode.CMSG_REQUEST_MYTHIC_PLUS_AFFIXES, 0x3300B2 }, + { Opcode.CMSG_REQUEST_MYTHIC_PLUS_SEASON_DATA, 0x3300B3 }, + { Opcode.CMSG_ASSIGN_EQUIPMENT_SET_SPEC, 0x3300B9 }, + { Opcode.CMSG_CONFIRM_RESPEC_WIPE, 0x3300BF }, + { Opcode.CMSG_CONFIRM_BARBERS_CHOICE, 0x3300C0 }, + { Opcode.CMSG_LOOT_UNIT, 0x3300C1 }, + { Opcode.CMSG_LOOT_MONEY, 0x3300C2 }, + { Opcode.CMSG_LOOT_ITEM, 0x3300C3 }, + { Opcode.CMSG_MASTER_LOOT_ITEM, 0x3300C4 }, + { Opcode.CMSG_LOOT_RELEASE, 0x3300C5 }, + { Opcode.CMSG_LOOT_ROLL, 0x3300C6 }, + { Opcode.CMSG_SCENE_PLAYBACK_COMPLETE, 0x3300D4 }, + { Opcode.CMSG_SCENE_PLAYBACK_CANCELED, 0x3300D5 }, + { Opcode.CMSG_SCENE_TRIGGER_EVENT, 0x3300D6 }, + { Opcode.CMSG_SET_DIFFICULTY_ID, 0x3300D7 }, + { Opcode.CMSG_KEYBOUND_OVERRIDE, 0x3300D8 }, + { Opcode.CMSG_PET_BATTLE_QUEUE_PROPOSE_MATCH_RESULT, 0x3300D9 }, + { Opcode.CMSG_MAIL_DELETE, 0x3300DA }, + { Opcode.CMSG_UPGRADE_ITEM, 0x3300DB }, + { Opcode.CMSG_MAKE_CONTITIONAL_APPEARANCE_PERMANENT, 0x3300DC }, + { Opcode.CMSG_REQUEST_VEHICLE_EXIT, 0x3300F1 }, + { Opcode.CMSG_REQUEST_VEHICLE_PREV_SEAT, 0x3300F2 }, + { Opcode.CMSG_REQUEST_VEHICLE_NEXT_SEAT, 0x3300F3 }, + { Opcode.CMSG_REQUEST_VEHICLE_SWITCH_SEAT, 0x3300F4 }, + { Opcode.CMSG_RIDE_VEHICLE_INTERACT, 0x3300F5 }, + { Opcode.CMSG_EJECT_PASSENGER, 0x3300F6 }, + { Opcode.CMSG_USE_CRITTER_ITEM, 0x3300FB }, + { Opcode.CMSG_CHECK_IS_ADVENTURE_MAP_POI_VALID, 0x330101 }, + { Opcode.CMSG_ATTACK_SWING, 0x33010F }, + { Opcode.CMSG_ATTACK_STOP, 0x330110 }, + { Opcode.CMSG_CANCEL_CHANNELLING, 0x330127 }, + { Opcode.CMSG_CANCEL_GROWTH_AURA, 0x33012C }, + { Opcode.CMSG_QUERY_CREATURE, 0x33012D }, + { Opcode.CMSG_QUERY_GAME_OBJECT, 0x33012E }, + { Opcode.CMSG_QUERY_NPC_TEXT, 0x33012F }, + { Opcode.CMSG_QUERY_QUEST_INFO, 0x330130 }, + { Opcode.CMSG_QUERY_PAGE_TEXT, 0x330131 }, + { Opcode.CMSG_QUERY_PET_NAME, 0x330132 }, + { Opcode.CMSG_QUERY_BATTLE_PET_NAME, 0x330133 }, + { Opcode.CMSG_QUERY_PETITION, 0x330134 }, + { Opcode.CMSG_REQUEST_PLAYED_TIME, 0x330137 }, + { Opcode.CMSG_SET_TITLE, 0x33013B }, + { Opcode.CMSG_CANCEL_MOUNT_AURA, 0x33013C }, + { Opcode.CMSG_MOUNT_SPECIAL_ANIM, 0x33013D }, + { Opcode.CMSG_SPAWN_TRACKING_UPDATE, 0x33014F }, + { Opcode.CMSG_DESTROY_ITEM, 0x330152 }, + { Opcode.CMSG_GET_MIRROR_IMAGE_DATA, 0x330156 }, + { Opcode.CMSG_USE_ITEM, 0x330157 }, + { Opcode.CMSG_ADD_TOY, 0x330158 }, + { Opcode.CMSG_USE_TOY, 0x330159 }, + { Opcode.CMSG_PET_CAST_SPELL, 0x33015A }, + { Opcode.CMSG_CAST_SPELL, 0x33015B }, + { Opcode.CMSG_UPDATE_SPELL_VISUAL, 0x33015C }, + { Opcode.CMSG_UPDATE_AREA_TRIGGER_VISUAL, 0x33015D }, + { Opcode.CMSG_CANCEL_CAST, 0x33015E }, + { Opcode.CMSG_CHOICE_RESPONSE, 0x330161 }, + { Opcode.CMSG_CLOSE_QUEST_CHOICE, 0x330162 }, + { Opcode.CMSG_REQUEST_LFG_LIST_BLACKLIST, 0x330164 }, + { Opcode.CMSG_SAVE_GUILD_EMBLEM, 0x330169 }, + { Opcode.CMSG_TABARD_VENDOR_ACTIVATE, 0x33016A }, + { Opcode.CMSG_TOGGLE_PVP, 0x33016C }, + { Opcode.CMSG_SET_PVP, 0x33016D }, + { Opcode.CMSG_BATTLEMASTER_HELLO, 0x330172 }, + { Opcode.CMSG_SET_ADVANCED_COMBAT_LOGGING, 0x330175 }, + { Opcode.CMSG_ITEM_TEXT_QUERY, 0x330187 }, + { Opcode.CMSG_OPEN_ITEM, 0x330188 }, + { Opcode.CMSG_READ_ITEM, 0x330189 }, + { Opcode.CMSG_SET_INSERT_ITEMS_LEFT_TO_RIGHT, 0x33018C }, + { Opcode.CMSG_ADVENTURE_MAP_START_QUEST, 0x33019B }, + { Opcode.CMSG_QUERY_TREASURE_PICKER, 0x33019E }, + { Opcode.CMSG_REQUEST_WORLD_QUEST_UPDATE, 0x33019F }, + { Opcode.CMSG_REQUEST_AREA_POI_UPDATE, 0x3301A0 }, + { Opcode.CMSG_REMOVE_NEW_ITEM, 0x3301A2 }, + { Opcode.CMSG_AZERITE_EMPOWERED_ITEM_VIEWED, 0x3301A3 }, + { Opcode.CMSG_LFG_LIST_JOIN, 0x3301B3 }, + { Opcode.CMSG_LFG_LIST_UPDATE_REQUEST, 0x3301B4 }, + { Opcode.CMSG_AZERITE_EMPOWERED_ITEM_SELECT_POWER, 0x3301B5 }, + { Opcode.CMSG_AZERITE_ESSENCE_UNLOCK_MILESTONE, 0x3301B6 }, + { Opcode.CMSG_AZERITE_ESSENCE_ACTIVATE_ESSENCE, 0x3301B7 }, + { Opcode.CMSG_REPORT_SERVER_LAG, 0x3301BE }, + { Opcode.CMSG_OFFER_PETITION, 0x3301C0 }, + { Opcode.CMSG_REMOVE_GLYPH, 0x3301C3 }, + { Opcode.CMSG_LFG_LIST_SET_ROLES, 0x3301C5 }, + { Opcode.CMSG_TRAITS_COMMIT_CONFIG, 0x3301C6 }, + { Opcode.CMSG_CLOSE_TRAIT_SYSTEM_INTERACTION, 0x3301D1 }, + { Opcode.CMSG_SEAMLESS_TRANSFER_COMPLETE, 0x3301D5 }, + { Opcode.CMSG_CHALLENGE_MODE_REQUEST_LEADERBOARD, 0x3301F3 }, + + { Opcode.CMSG_SEND_TEXT_EMOTE, 0x340013 }, + { Opcode.CMSG_SET_SHEATHED, 0x340014 }, + { Opcode.CMSG_PET_SET_ACTION, 0x340015 }, + { Opcode.CMSG_PET_ACTION, 0x340016 }, + { Opcode.CMSG_PET_STOP_ATTACK, 0x340017 }, + { Opcode.CMSG_PET_ABANDON, 0x340018 }, + { Opcode.CMSG_PET_CANCEL_AURA, 0x340019 }, + { Opcode.CMSG_PET_SPELL_AUTOCAST, 0x34001A }, + { Opcode.CMSG_REQUEST_PET_INFO, 0x34001B }, + { Opcode.CMSG_REQUEST_STABLED_PETS, 0x34001C }, + { Opcode.CMSG_TALK_TO_GOSSIP, 0x34001D }, + { Opcode.CMSG_CLOSE_INTERACTION, 0x34001E }, + { Opcode.CMSG_GOSSIP_SELECT_OPTION, 0x34001F }, + { Opcode.CMSG_SPELL_CLICK, 0x340020 }, + { Opcode.CMSG_QUEST_GIVER_HELLO, 0x340021 }, + { Opcode.CMSG_QUEST_GIVER_QUERY_QUEST, 0x340022 }, + { Opcode.CMSG_QUEST_GIVER_ACCEPT_QUEST, 0x340023 }, + { Opcode.CMSG_QUEST_GIVER_COMPLETE_QUEST, 0x340024 }, + { Opcode.CMSG_QUEST_GIVER_CHOOSE_REWARD, 0x340025 }, + { Opcode.CMSG_QUEST_GIVER_REQUEST_REWARD, 0x340026 }, + { Opcode.CMSG_QUEST_GIVER_STATUS_QUERY, 0x340027 }, + { Opcode.CMSG_QUEST_GIVER_STATUS_MULTIPLE_QUERY, 0x340028 }, + { Opcode.CMSG_QUEST_CONFIRM_ACCEPT, 0x340029 }, + { Opcode.CMSG_PUSH_QUEST_TO_PARTY, 0x34002A }, + { Opcode.CMSG_QUEST_PUSH_RESULT, 0x34002B }, + { Opcode.CMSG_LIST_INVENTORY, 0x34002C }, + { Opcode.CMSG_SELL_ITEM, 0x34002D }, + { Opcode.CMSG_BUY_ITEM, 0x34002E }, + { Opcode.CMSG_BUY_BACK_ITEM, 0x34002F }, + { Opcode.CMSG_TAXI_NODE_STATUS_QUERY, 0x340033 }, + { Opcode.CMSG_ENABLE_TAXI_NODE, 0x340034 }, + { Opcode.CMSG_TAXI_QUERY_AVAILABLE_NODES, 0x340035 }, + { Opcode.CMSG_ACTIVATE_TAXI, 0x340036 }, + { Opcode.CMSG_TAXI_REQUEST_EARLY_LANDING, 0x340037 }, + { Opcode.CMSG_TRAINER_LIST, 0x340038 }, + { Opcode.CMSG_TRAINER_BUY_SPELL, 0x340039 }, + { Opcode.CMSG_SPIRIT_HEALER_ACTIVATE, 0x34003A }, + { Opcode.CMSG_AREA_SPIRIT_HEALER_QUERY, 0x34003B }, + { Opcode.CMSG_AREA_SPIRIT_HEALER_QUEUE, 0x34003C }, + { Opcode.CMSG_BINDER_ACTIVATE, 0x34003D }, + { Opcode.CMSG_BANKER_ACTIVATE, 0x34003E }, + { Opcode.CMSG_BUY_BANK_SLOT, 0x34003F }, + { Opcode.CMSG_GUILD_BANK_ACTIVATE, 0x340040 }, + { Opcode.CMSG_AUTO_GUILD_BANK_ITEM, 0x340041 }, + { Opcode.CMSG_STORE_GUILD_BANK_ITEM, 0x340042 }, + { Opcode.CMSG_SWAP_ITEM_WITH_GUILD_BANK_ITEM, 0x340043 }, + { Opcode.CMSG_SWAP_GUILD_BANK_ITEM_WITH_GUILD_BANK_ITEM, 0x340044 }, + { Opcode.CMSG_MOVE_GUILD_BANK_ITEM, 0x340045 }, + { Opcode.CMSG_MERGE_ITEM_WITH_GUILD_BANK_ITEM, 0x340046 }, + { Opcode.CMSG_SPLIT_ITEM_TO_GUILD_BANK, 0x340047 }, + { Opcode.CMSG_MERGE_GUILD_BANK_ITEM_WITH_ITEM, 0x340048 }, + { Opcode.CMSG_SPLIT_GUILD_BANK_ITEM_TO_INVENTORY, 0x340049 }, + { Opcode.CMSG_AUTO_STORE_GUILD_BANK_ITEM, 0x34004A }, + { Opcode.CMSG_MERGE_GUILD_BANK_ITEM_WITH_GUILD_BANK_ITEM, 0x34004B }, + { Opcode.CMSG_SPLIT_GUILD_BANK_ITEM, 0x34004C }, + { Opcode.CMSG_GUILD_BANK_QUERY_TAB, 0x34004D }, + { Opcode.CMSG_GUILD_BANK_BUY_TAB, 0x34004E }, + { Opcode.CMSG_GUILD_BANK_UPDATE_TAB, 0x34004F }, + { Opcode.CMSG_GUILD_BANK_DEPOSIT_MONEY, 0x340050 }, + { Opcode.CMSG_GUILD_BANK_WITHDRAW_MONEY, 0x340051 }, + { Opcode.CMSG_PETITION_SHOW_LIST, 0x340052 }, + { Opcode.CMSG_PETITION_BUY, 0x340053 }, + { Opcode.CMSG_PETITION_SHOW_SIGNATURES, 0x340054 }, + { Opcode.CMSG_AUCTION_HELLO_REQUEST, 0x340055 }, + { Opcode.CMSG_AUCTION_SELL_ITEM, 0x340056 }, + { Opcode.CMSG_AUCTION_REMOVE_ITEM, 0x340057 }, + { Opcode.CMSG_AUCTION_LIST_ITEMS, 0x340058 }, + { Opcode.CMSG_AUCTION_REPLICATE_ITEMS, 0x340059 }, + { Opcode.CMSG_AUCTION_LIST_OWNER_ITEMS, 0x34005A }, + { Opcode.CMSG_AUCTION_LIST_BIDDER_ITEMS, 0x34005B }, + { Opcode.CMSG_AUCTION_PLACE_BID, 0x34005C }, + { Opcode.CMSG_AUCTION_BROWSE_QUERY, 0x34005D }, + { Opcode.CMSG_AUCTION_LIST_ITEMS_BY_BUCKET_KEY, 0x34005E }, + { Opcode.CMSG_AUCTION_LIST_ITEMS_BY_ITEM_ID, 0x34005F }, + { Opcode.CMSG_AUCTION_LIST_OWNED_ITEMS, 0x340060 }, + { Opcode.CMSG_AUCTION_LIST_BIDDED_ITEMS, 0x340061 }, + { Opcode.CMSG_AUCTION_LIST_BUCKETS_BY_BUCKET_KEYS, 0x340062 }, + { Opcode.CMSG_AUCTION_GET_COMMODITY_QUOTE, 0x340063 }, + { Opcode.CMSG_AUCTION_CONFIRM_COMMODITIES_PURCHASE, 0x340064 }, + { Opcode.CMSG_AUCTION_CANCEL_COMMODITIES_PURCHASE, 0x340065 }, + { Opcode.CMSG_AUCTION_SELL_COMMODITY, 0x340066 }, + { Opcode.CMSG_AUCTION_LIST_PENDING_SALES, 0x340067 }, + { Opcode.CMSG_QUERY_TIME, 0x34006A }, + { Opcode.CMSG_LOGOUT_REQUEST, 0x34006B }, + { Opcode.CMSG_LOGOUT_CANCEL, 0x34006C }, + { Opcode.CMSG_LOGOUT_INSTANT, 0x34006D }, + { Opcode.CMSG_RECLAIM_CORPSE, 0x34006F }, + { Opcode.CMSG_COMPLETE_MOVIE, 0x340071 }, + { Opcode.CMSG_SET_FACTION_AT_WAR, 0x340072 }, + { Opcode.CMSG_SET_FACTION_NOT_AT_WAR, 0x340073 }, + { Opcode.CMSG_SET_FACTION_INACTIVE, 0x340074 }, + { Opcode.CMSG_SET_WATCHED_FACTION, 0x340075 }, + { Opcode.CMSG_DUEL_RESPONSE, 0x340076 }, + { Opcode.CMSG_UNLEARN_SKILL, 0x340079 }, + { Opcode.CMSG_CANCEL_AUTO_REPEAT_SPELL, 0x34007B }, + { Opcode.CMSG_FAR_SIGHT, 0x34007C }, + { Opcode.CMSG_SOCKET_GEMS, 0x34007F }, + { Opcode.CMSG_REPAIR_ITEM, 0x340080 }, + { Opcode.CMSG_GAME_OBJ_USE, 0x340082 }, + { Opcode.CMSG_GAME_OBJ_REPORT_USE, 0x340083 }, + { Opcode.CMSG_CANCEL_TEMP_ENCHANTMENT, 0x340086 }, + { Opcode.CMSG_SET_TAXI_BENCHMARK_MODE, 0x340087 }, + { Opcode.CMSG_REPORT_PVP_PLAYER_AFK, 0x340088 }, + { Opcode.CMSG_ALTER_APPEARANCE, 0x340089 }, + { Opcode.CMSG_OPT_OUT_OF_LOOT, 0x34008A }, + { Opcode.CMSG_TOTEM_DESTROYED, 0x34008C }, + { Opcode.CMSG_DISMISS_CRITTER, 0x34008D }, + { Opcode.CMSG_QUERY_INSPECT_ACHIEVEMENTS, 0x340094 }, + { Opcode.CMSG_RAF_CLAIM_ACTIVITY_REWARD, 0x340098 }, + { Opcode.CMSG_HEARTH_AND_RESURRECT, 0x34009B }, + { Opcode.CMSG_SAVE_EQUIPMENT_SET, 0x34009E }, + { Opcode.CMSG_DELETE_EQUIPMENT_SET, 0x34009F }, + { Opcode.CMSG_INSTANCE_LOCK_RESPONSE, 0x3400A0 }, + { Opcode.CMSG_LOW_LEVEL_RAID2, 0x3400A7 }, + { Opcode.CMSG_DECLINE_GUILD_INVITES, 0x3400B2 }, + { Opcode.CMSG_OVERRIDE_SCREEN_FLASH, 0x3400B3 }, + { Opcode.CMSG_BATTLEMASTER_JOIN, 0x3400B5 }, + { Opcode.CMSG_BATTLEMASTER_JOIN_ARENA, 0x3400B6 }, + { Opcode.CMSG_BATTLEMASTER_JOIN_SKIRMISH, 0x3400B7 }, + { Opcode.CMSG_BATTLEFIELD_PORT, 0x3400BC }, + { Opcode.CMSG_REPOP_REQUEST, 0x3400BD }, + { Opcode.CMSG_CLIENT_PORT_GRAVEYARD, 0x3400BE }, + { Opcode.CMSG_SET_SELECTION, 0x3400BF }, + { Opcode.CMSG_INSPECT, 0x3400C0 }, + { Opcode.CMSG_REQUEST_CROWD_CONTROL_SPELL, 0x3400C1 }, + { Opcode.CMSG_BLACK_MARKET_OPEN, 0x3400C2 }, + { Opcode.CMSG_BLACK_MARKET_REQUEST_ITEMS, 0x3400C3 }, + { Opcode.CMSG_BLACK_MARKET_BID_ON_ITEM, 0x3400C4 }, + { Opcode.CMSG_QUEST_LOG_REMOVE_QUEST, 0x3400C5 }, + { Opcode.CMSG_GET_ITEM_PURCHASE_DATA, 0x3400C6 }, + { Opcode.CMSG_ITEM_PURCHASE_REFUND, 0x3400C7 }, + { Opcode.CMSG_SELF_RES, 0x3400C8 }, + { Opcode.CMSG_SET_ACTION_BAR_TOGGLES, 0x3400C9 }, + { Opcode.CMSG_SIGN_PETITION, 0x3400CA }, + { Opcode.CMSG_DECLINE_PETITION, 0x3400CB }, + { Opcode.CMSG_TURN_IN_PETITION, 0x3400CC }, + { Opcode.CMSG_MAIL_GET_LIST, 0x3400CD }, + { Opcode.CMSG_MAIL_TAKE_MONEY, 0x3400CE }, + { Opcode.CMSG_MAIL_TAKE_ITEM, 0x3400CF }, + { Opcode.CMSG_QUERY_NEXT_MAIL_TIME, 0x3400D0 }, + { Opcode.CMSG_MAIL_MARK_AS_READ, 0x3400D1 }, + { Opcode.CMSG_MAIL_CREATE_TEXT_ITEM, 0x3400D2 }, + { Opcode.CMSG_SET_LOOT_SPECIALIZATION, 0x3400D6 }, + { Opcode.CMSG_EMOTE, 0x3400D8 }, + { Opcode.CMSG_OPENING_CINEMATIC, 0x3400DA }, + { Opcode.CMSG_NEXT_CINEMATIC_CAMERA, 0x3400DB }, + { Opcode.CMSG_COMPLETE_CINEMATIC, 0x3400DC }, + { Opcode.CMSG_CONVERSATION_LINE_STARTED, 0x3400DD }, + { Opcode.CMSG_QUEST_GIVER_CLOSE_QUEST, 0x3400E0 }, + { Opcode.CMSG_LEARN_TALENT, 0x3400EC }, + { Opcode.CMSG_LEARN_PREVIEW_TALENTS, 0x3400ED }, + { Opcode.CMSG_PET_LEARN_TALENT, 0x3400EE }, + { Opcode.CMSG_LEARN_PREVIEW_TALENTS_PET, 0x3400EF }, + { Opcode.CMSG_SET_PRIMARY_TALENT_TREE, 0x3400F1 }, + { Opcode.CMSG_LEARN_TALENTS, 0x3400F2 }, + { Opcode.CMSG_CONTRIBUTION_LAST_UPDATE_REQUEST, 0x3400F6 }, + { Opcode.CMSG_SET_ACTION_BUTTON, 0x3400F8 }, + { Opcode.CMSG_SET_AMMO, 0x3400F9 }, + { Opcode.CMSG_SHOWING_HELM, 0x340107 }, + { Opcode.CMSG_SHOWING_CLOAK, 0x340108 }, + { Opcode.CMSG_QUEST_GIVER_STATUS_TRACKED_QUERY, 0x34010A }, + + { Opcode.CMSG_WRAP_ITEM, 0x350000 }, + { Opcode.CMSG_USE_EQUIPMENT_SET, 0x350001 }, + { Opcode.CMSG_AUTOSTORE_BANK_ITEM, 0x350002 }, + { Opcode.CMSG_AUTOBANK_ITEM, 0x350003 }, + { Opcode.CMSG_AUTO_EQUIP_ITEM, 0x350004 }, + { Opcode.CMSG_AUTO_STORE_BAG_ITEM, 0x350005 }, + { Opcode.CMSG_SWAP_ITEM, 0x350006 }, + { Opcode.CMSG_SWAP_INV_ITEM, 0x350007 }, + { Opcode.CMSG_SPLIT_ITEM, 0x350008 }, + { Opcode.CMSG_AUTO_EQUIP_ITEM_SLOT, 0x350009 }, + + { Opcode.CMSG_MOVE_START_FORWARD, 0x360000 }, + { Opcode.CMSG_MOVE_START_BACKWARD, 0x360001 }, + { Opcode.CMSG_MOVE_STOP, 0x360002 }, + { Opcode.CMSG_MOVE_START_STRAFE_LEFT, 0x360003 }, + { Opcode.CMSG_MOVE_START_STRAFE_RIGHT, 0x360004 }, + { Opcode.CMSG_MOVE_STOP_STRAFE, 0x360005 }, + { Opcode.CMSG_MOVE_JUMP, 0x360006 }, + { Opcode.CMSG_MOVE_DOUBLE_JUMP, 0x360007 }, + { Opcode.CMSG_MOVE_START_TURN_LEFT, 0x360008 }, + { Opcode.CMSG_MOVE_START_TURN_RIGHT, 0x360009 }, + { Opcode.CMSG_MOVE_STOP_TURN, 0x36000A }, + { Opcode.CMSG_MOVE_START_PITCH_UP, 0x36000B }, + { Opcode.CMSG_MOVE_START_PITCH_DOWN, 0x36000C }, + { Opcode.CMSG_MOVE_STOP_PITCH, 0x36000D }, + { Opcode.CMSG_MOVE_SET_RUN_MODE, 0x36000E }, + { Opcode.CMSG_MOVE_SET_WALK_MODE, 0x36000F }, + { Opcode.CMSG_MOVE_TELEPORT_ACK, 0x360016 }, + { Opcode.CMSG_MOVE_FALL_LAND, 0x360017 }, + { Opcode.CMSG_MOVE_START_SWIM, 0x360018 }, + { Opcode.CMSG_MOVE_STOP_SWIM, 0x360019 }, + { Opcode.CMSG_MOVE_SET_TURN_RATE_CHEAT, 0x360022 }, + { Opcode.CMSG_MOVE_SET_FACING, 0x360025 }, + { Opcode.CMSG_MOVE_SET_PITCH, 0x360026 }, + { Opcode.CMSG_MOVE_FORCE_RUN_SPEED_CHANGE_ACK, 0x360027 }, + { Opcode.CMSG_MOVE_FORCE_RUN_BACK_SPEED_CHANGE_ACK, 0x360028 }, + { Opcode.CMSG_MOVE_FORCE_SWIM_SPEED_CHANGE_ACK, 0x360029 }, + { Opcode.CMSG_MOVE_FORCE_ROOT_ACK, 0x36002A }, + { Opcode.CMSG_MOVE_FORCE_UNROOT_ACK, 0x36002B }, + { Opcode.CMSG_MOVE_HEARTBEAT, 0x36002C }, + { Opcode.CMSG_MOVE_KNOCK_BACK_ACK, 0x36002E }, + { Opcode.CMSG_MOVE_HOVER_ACK, 0x36002F }, + { Opcode.CMSG_MOVE_SET_VEHICLE_REC_ID_ACK, 0x360030 }, + { Opcode.CMSG_MOVE_APPLY_MOVEMENT_FORCE_ACK, 0x360031 }, + { Opcode.CMSG_MOVE_REMOVE_MOVEMENT_FORCE_ACK, 0x360032 }, + { Opcode.CMSG_MOVE_REMOVE_MOVEMENT_FORCES, 0x360033 }, + { Opcode.CMSG_MOVE_SPLINE_DONE, 0x360034 }, + { Opcode.CMSG_MOVE_FALL_RESET, 0x360035 }, + { Opcode.CMSG_MOVE_UPDATE_FALL_SPEED, 0x360036 }, + { Opcode.CMSG_MOVE_TIME_SKIPPED, 0x360037 }, + { Opcode.CMSG_MOVE_FEATHER_FALL_ACK, 0x360038 }, + { Opcode.CMSG_MOVE_WATER_WALK_ACK, 0x360039 }, + { Opcode.CMSG_MOVE_ENABLE_DOUBLE_JUMP_ACK, 0x36003A }, + { Opcode.CMSG_MOVE_FORCE_WALK_SPEED_CHANGE_ACK, 0x36003D }, + { Opcode.CMSG_MOVE_FORCE_SWIM_BACK_SPEED_CHANGE_ACK, 0x36003E }, + { Opcode.CMSG_MOVE_FORCE_TURN_RATE_CHANGE_ACK, 0x36003F }, + { Opcode.CMSG_MOVE_ENABLE_SWIM_TO_FLY_TRANS_ACK, 0x360040 }, + { Opcode.CMSG_MOVE_SET_CAN_TURN_WHILE_FALLING_ACK, 0x360041 }, + { Opcode.CMSG_MOVE_SET_IGNORE_MOVEMENT_FORCES_ACK, 0x360042 }, + { Opcode.CMSG_MOVE_SET_CAN_FLY_ACK, 0x360043 }, + { Opcode.CMSG_MOVE_SET_FLY, 0x360045 }, + { Opcode.CMSG_MOVE_START_ASCEND, 0x360046 }, + { Opcode.CMSG_MOVE_STOP_ASCEND, 0x360047 }, + { Opcode.CMSG_MOVE_FORCE_FLIGHT_SPEED_CHANGE_ACK, 0x36004A }, + { Opcode.CMSG_MOVE_FORCE_FLIGHT_BACK_SPEED_CHANGE_ACK, 0x36004B }, + { Opcode.CMSG_MOVE_CHANGE_TRANSPORT, 0x36004C }, + { Opcode.CMSG_MOVE_START_DESCEND, 0x36004D }, + { Opcode.CMSG_MOVE_FORCE_PITCH_RATE_CHANGE_ACK, 0x36004F }, + { Opcode.CMSG_MOVE_DISMISS_VEHICLE, 0x360050 }, + { Opcode.CMSG_MOVE_CHANGE_VEHICLE_SEATS, 0x360051 }, + { Opcode.CMSG_MOVE_GRAVITY_DISABLE_ACK, 0x360052 }, + { Opcode.CMSG_MOVE_GRAVITY_ENABLE_ACK, 0x360053 }, + { Opcode.CMSG_MOVE_INERTIA_DISABLE_ACK, 0x360054 }, + { Opcode.CMSG_MOVE_INERTIA_ENABLE_ACK, 0x360055 }, + { Opcode.CMSG_MOVE_COLLISION_DISABLE_ACK, 0x360056 }, + { Opcode.CMSG_MOVE_COLLISION_ENABLE_ACK, 0x360057 }, + { Opcode.CMSG_MOVE_SET_COLLISION_HEIGHT_ACK, 0x360058 }, + { Opcode.CMSG_SET_ACTIVE_MOVER, 0x360059 }, + { Opcode.CMSG_TIME_SYNC_RESPONSE, 0x36005A }, + { Opcode.CMSG_TIME_SYNC_RESPONSE_FAILED, 0x36005B }, + { Opcode.CMSG_TIME_SYNC_RESPONSE_DROPPED, 0x36005C }, + { Opcode.CMSG_TIME_ADJUSTMENT_RESPONSE, 0x36005D }, + { Opcode.CMSG_DISCARDED_TIME_SYNC_ACKS, 0x36005E }, + { Opcode.CMSG_MOVE_SET_MOD_MOVEMENT_FORCE_MAGNITUDE_ACK, 0x36005F }, + { Opcode.CMSG_UPDATE_MISSILE_TRAJECTORY, 0x360060 }, + { Opcode.CMSG_MOVE_INIT_ACTIVE_MOVER_COMPLETE, 0x360063 }, + { Opcode.CMSG_MOVE_APPLY_INERTIA_ACK, 0x36006B }, + { Opcode.CMSG_MOVE_REMOVE_INERTIA_ACK, 0x36006C }, + { Opcode.CMSG_MOVE_ADD_IMPULSE_ACK, 0x36006D }, + { Opcode.CMSG_MOVE_SET_CAN_ADV_FLY_ACK, 0x36006E }, + { Opcode.CMSG_MOVE_SET_ADV_FLY, 0x36006F }, + { Opcode.CMSG_MOVE_SET_CAN_DRIVE_ACK, 0x360070 }, + { Opcode.CMSG_MOVE_START_DRIVE_FORWARD, 0x360071 }, + { Opcode.CMSG_MOVE_SET_ADV_FLYING_AIR_FRICTION_ACK, 0x360072 }, + { Opcode.CMSG_MOVE_SET_ADV_FLYING_MAX_VEL_ACK, 0x360073 }, + { Opcode.CMSG_MOVE_SET_ADV_FLYING_LIFT_COEFFICIENT_ACK, 0x360074 }, + { Opcode.CMSG_MOVE_SET_ADV_FLYING_DOUBLE_JUMP_VEL_MOD_ACK, 0x360075 }, + { Opcode.CMSG_MOVE_SET_ADV_FLYING_GLIDE_START_MIN_HEIGHT_ACK, 0x360076 }, + { Opcode.CMSG_MOVE_SET_ADV_FLYING_ADD_IMPULSE_MAX_SPEED_ACK, 0x360077 }, + { Opcode.CMSG_MOVE_SET_ADV_FLYING_BANKING_RATE_ACK, 0x360078 }, + { Opcode.CMSG_MOVE_SET_ADV_FLYING_PITCHING_RATE_DOWN_ACK, 0x360079 }, + { Opcode.CMSG_MOVE_SET_ADV_FLYING_PITCHING_RATE_UP_ACK, 0x36007A }, + { Opcode.CMSG_MOVE_SET_ADV_FLYING_TURN_VELOCITY_THRESHOLD_ACK, 0x36007B }, + { Opcode.CMSG_MOVE_SET_ADV_FLYING_SURFACE_FRICTION_ACK, 0x36007C }, + { Opcode.CMSG_MOVE_SET_ADV_FLYING_OVER_MAX_DECELERATION_ACK, 0x36007D }, + { Opcode.CMSG_MOVE_SET_FACING_HEARTBEAT, 0x36007E }, + { Opcode.CMSG_MOVE_SET_ADV_FLYING_LAUNCH_SPEED_COEFFICIENT_ACK, 0x36007F }, + { Opcode.CMSG_MOVE_ENABLE_FULL_SPEED_TURNING_ACK, 0x360083 }, + + { Opcode.CMSG_CONNECT_TO_FAILED, 0x380000 }, + { Opcode.CMSG_ADDON_LIST, 0x380004 }, + { Opcode.CMSG_SET_ROLE, 0x380005 }, + { Opcode.CMSG_INITIATE_ROLE_POLL, 0x380006 }, + { Opcode.CMSG_REQUEST_BATTLEFIELD_STATUS, 0x380008 }, + { Opcode.CMSG_START_WAR_GAME, 0x38000A }, + { Opcode.CMSG_START_SPECTATOR_WAR_GAME, 0x38000B }, + { Opcode.CMSG_ACCEPT_WARGAME_INVITE, 0x38000C }, + { Opcode.CMSG_REQUEST_RATED_PVP_INFO, 0x38000F }, + { Opcode.CMSG_DB_QUERY_BULK, 0x380010 }, + { Opcode.CMSG_HOTFIX_REQUEST, 0x380011 }, + { Opcode.CMSG_GENERATE_RANDOM_CHARACTER_NAME, 0x380013 }, + { Opcode.CMSG_ENUM_CHARACTERS, 0x380014 }, + { Opcode.CMSG_REORDER_CHARACTERS, 0x380015 }, + { Opcode.CMSG_PLAYER_LOGIN, 0x380016 }, + { Opcode.CMSG_WARDEN3_DATA, 0x380018 }, + { Opcode.CMSG_GET_PVP_OPTIONS_ENABLED, 0x38001A }, + { Opcode.CMSG_COMMENTATOR_START_WARGAME, 0x38001B }, + { Opcode.CMSG_COMMENTATOR_ENABLE, 0x38001C }, + { Opcode.CMSG_COMMENTATOR_GET_MAP_INFO, 0x38001D }, + { Opcode.CMSG_COMMENTATOR_GET_PLAYER_INFO, 0x38001E }, + { Opcode.CMSG_COMMENTATOR_GET_PLAYER_COOLDOWNS, 0x38001F }, + { Opcode.CMSG_COMMENTATOR_ENTER_INSTANCE, 0x380020 }, + { Opcode.CMSG_COMMENTATOR_EXIT_INSTANCE, 0x380021 }, + { Opcode.CMSG_REQUEST_PARTY_JOIN_UPDATES, 0x380023 }, + { Opcode.CMSG_LOADING_SCREEN_NOTIFY, 0x380024 }, + { Opcode.CMSG_WORLD_PORT_RESPONSE, 0x380025 }, + { Opcode.CMSG_SEND_MAIL, 0x380026 }, + { Opcode.CMSG_ACCEPT_GUILD_INVITE, 0x380029 }, + { Opcode.CMSG_GUILD_DECLINE_INVITATION, 0x38002A }, + { Opcode.CMSG_PARTY_INVITE, 0x380030 }, + { Opcode.CMSG_PARTY_INVITE_RESPONSE, 0x380032 }, + { Opcode.CMSG_GUILD_INVITE_BY_NAME, 0x380034 }, + { Opcode.CMSG_DF_PROPOSAL_RESPONSE, 0x380035 }, + { Opcode.CMSG_DF_JOIN, 0x380037 }, + { Opcode.CMSG_LFG_LIST_LEAVE, 0x380038 }, + { Opcode.CMSG_LFG_LIST_GET_STATUS, 0x380039 }, + { Opcode.CMSG_LFG_LIST_SEARCH, 0x38003A }, + { Opcode.CMSG_LFG_LIST_APPLY_TO_GROUP, 0x38003B }, + { Opcode.CMSG_LFG_LIST_CANCEL_APPLICATION, 0x38003C }, + { Opcode.CMSG_LFG_LIST_DECLINE_APPLICANT, 0x38003D }, + { Opcode.CMSG_LFG_LIST_INVITE_APPLICANT, 0x38003E }, + { Opcode.CMSG_LFG_LIST_INVITE_RESPONSE, 0x38003F }, + { Opcode.CMSG_DF_LEAVE, 0x380040 }, + { Opcode.CMSG_DF_GET_SYSTEM_INFO, 0x380041 }, + { Opcode.CMSG_DF_GET_JOIN_STATUS, 0x380042 }, + { Opcode.CMSG_DF_SET_ROLES, 0x380043 }, + { Opcode.CMSG_DF_BOOT_PLAYER_VOTE, 0x380044 }, + { Opcode.CMSG_DF_TELEPORT, 0x380045 }, + { Opcode.CMSG_SET_EVERYONE_IS_ASSISTANT, 0x380046 }, + { Opcode.CMSG_DF_READY_CHECK_RESPONSE, 0x380048 }, + { Opcode.CMSG_BATTLE_PET_REQUEST_JOURNAL_LOCK, 0x38004D }, + { Opcode.CMSG_BATTLE_PET_REQUEST_JOURNAL, 0x38004E }, + { Opcode.CMSG_BATTLE_PET_DELETE_PET, 0x38004F }, + { Opcode.CMSG_BATTLE_PET_DELETE_PET_CHEAT, 0x380050 }, + { Opcode.CMSG_BATTLE_PET_MODIFY_NAME, 0x380052 }, + { Opcode.CMSG_BATTLE_PET_SUMMON, 0x380053 }, + { Opcode.CMSG_BATTLE_PET_SET_BATTLE_SLOT, 0x380057 }, + { Opcode.CMSG_BATTLE_PET_SET_FLAGS, 0x38005A }, + { Opcode.CMSG_MOUNT_SET_FAVORITE, 0x38005C }, + { Opcode.CMSG_COLLECTION_ITEM_SET_FAVORITE, 0x38005D }, + { Opcode.CMSG_DO_READY_CHECK, 0x38005E }, + { Opcode.CMSG_READY_CHECK_RESPONSE, 0x38005F }, + { Opcode.CMSG_PET_BATTLE_INPUT, 0x38006D }, + { Opcode.CMSG_PET_BATTLE_REPLACE_FRONT_PET, 0x38006E }, + { Opcode.CMSG_CREATE_CHARACTER, 0x380070 }, + { Opcode.CMSG_SUPPORT_TICKET_SUBMIT_COMPLAINT, 0x380072 }, + { Opcode.CMSG_SUPPORT_TICKET_SUBMIT_BUG, 0x380073 }, + { Opcode.CMSG_SUPPORT_TICKET_SUBMIT_SUGGESTION, 0x380074 }, + { Opcode.CMSG_PARTY_UNINVITE, 0x380075 }, + { Opcode.CMSG_SET_LOOT_METHOD, 0x380076 }, + { Opcode.CMSG_LEAVE_GROUP, 0x380077 }, + { Opcode.CMSG_SET_PARTY_LEADER, 0x380078 }, + { Opcode.CMSG_MINIMAP_PING, 0x380079 }, + { Opcode.CMSG_CHANGE_SUB_GROUP, 0x38007A }, + { Opcode.CMSG_SWAP_SUB_GROUPS, 0x38007B }, + { Opcode.CMSG_CONVERT_RAID, 0x38007C }, + { Opcode.CMSG_SET_ASSISTANT_LEADER, 0x38007D }, + { Opcode.CMSG_UPDATE_RAID_TARGET, 0x38007E }, + { Opcode.CMSG_SET_PARTY_ASSIGNMENT, 0x38007F }, + { Opcode.CMSG_SILENCE_PARTY_TALKER, 0x380080 }, + { Opcode.CMSG_REQUEST_PARTY_MEMBER_STATS, 0x380081 }, + { Opcode.CMSG_RANDOM_ROLL, 0x380082 }, + { Opcode.CMSG_MAIL_RETURN_TO_SENDER, 0x380083 }, + { Opcode.CMSG_QUERY_SCENARIO_POI, 0x380084 }, + { Opcode.CMSG_TOGGLE_DIFFICULTY, 0x380085 }, + { Opcode.CMSG_ADD_BATTLENET_FRIEND, 0x380088 }, + { Opcode.CMSG_QUERY_CORPSE_LOCATION_FROM_CLIENT, 0x38008E }, + { Opcode.CMSG_QUERY_CORPSE_TRANSPORT, 0x38008F }, + { Opcode.CMSG_CAN_DUEL, 0x380090 }, + { Opcode.CMSG_UPDATE_CLIENT_SETTINGS, 0x380092 }, + { Opcode.CMSG_RESET_INSTANCES, 0x380096 }, + { Opcode.CMSG_SUMMON_RESPONSE, 0x380098 }, + { Opcode.CMSG_COMPLAINT, 0x38009A }, + { Opcode.CMSG_CALENDAR_GET, 0x38009D }, + { Opcode.CMSG_CALENDAR_GET_EVENT, 0x38009E }, + { Opcode.CMSG_CALENDAR_COMMUNITY_INVITE, 0x38009F }, + { Opcode.CMSG_CALENDAR_INVITE, 0x3800A0 }, + { Opcode.CMSG_CALENDAR_REMOVE_INVITE, 0x3800A1 }, + { Opcode.CMSG_CALENDAR_RSVP, 0x3800A2 }, + { Opcode.CMSG_CALENDAR_STATUS, 0x3800A3 }, + { Opcode.CMSG_CALENDAR_MODERATOR_STATUS, 0x3800A4 }, + { Opcode.CMSG_CALENDAR_REMOVE_EVENT, 0x3800A5 }, + { Opcode.CMSG_CALENDAR_COPY_EVENT, 0x3800A6 }, + { Opcode.CMSG_CALENDAR_COMPLAIN, 0x3800A7 }, + { Opcode.CMSG_CALENDAR_GET_NUM_PENDING, 0x3800A8 }, + { Opcode.CMSG_CALENDAR_EVENT_SIGN_UP, 0x3800A9 }, + { Opcode.CMSG_CALENDAR_ADD_EVENT, 0x3800AB }, + { Opcode.CMSG_CALENDAR_UPDATE_EVENT, 0x3800AC }, + { Opcode.CMSG_KEEP_ALIVE, 0x3800AD }, + { Opcode.CMSG_WHO_IS, 0x3800AE }, + { Opcode.CMSG_WHO, 0x3800AF }, + { Opcode.CMSG_SET_DUNGEON_DIFFICULTY, 0x3800B0 }, + { Opcode.CMSG_RESURRECT_RESPONSE, 0x3800B1 }, + { Opcode.CMSG_PET_RENAME, 0x3800B2 }, + { Opcode.CMSG_BUG_REPORT, 0x3800B3 }, + { Opcode.CMSG_SET_SAVED_INSTANCE_EXTEND, 0x3800B4 }, + { Opcode.CMSG_SET_PLAYER_DECLINED_NAMES, 0x3800B6 }, + { Opcode.CMSG_QUERY_REALM_NAME, 0x3800B7 }, + { Opcode.CMSG_QUERY_GUILD_INFO, 0x3800B8 }, + { Opcode.CMSG_CHAR_CUSTOMIZE, 0x3800B9 }, + { Opcode.CMSG_GM_TICKET_GET_SYSTEM_STATUS, 0x3800BB }, + { Opcode.CMSG_GM_TICKET_GET_CASE_STATUS, 0x3800BC }, + { Opcode.CMSG_GM_TICKET_ACKNOWLEDGE_SURVEY, 0x3800BD }, + { Opcode.CMSG_CHAR_RACE_OR_FACTION_CHANGE, 0x3800BF }, + { Opcode.CMSG_ACCOUNT_STORE_BEGIN_PURCHASE_OR_REFUND, 0x3800C1 }, + { Opcode.CMSG_SUBMIT_USER_FEEDBACK, 0x3800C2 }, + { Opcode.CMSG_REQUEST_ACCOUNT_DATA, 0x3800C3 }, + { Opcode.CMSG_UPDATE_ACCOUNT_DATA, 0x3800C4 }, + { Opcode.CMSG_SERVER_TIME_OFFSET_REQUEST, 0x3800CB }, + { Opcode.CMSG_CHAR_DELETE, 0x3800CC }, + { Opcode.CMSG_LOW_LEVEL_RAID1, 0x3800D0 }, + { Opcode.CMSG_INSPECT_PVP, 0x3800D2 }, + { Opcode.CMSG_QUERY_ARENA_TEAM, 0x3800D3 }, + { Opcode.CMSG_QUEST_POI_QUERY, 0x3800E2 }, + { Opcode.CMSG_ARENA_TEAM_ROSTER, 0x3800E8 }, + { Opcode.CMSG_ARENA_TEAM_ACCEPT, 0x3800E9 }, + { Opcode.CMSG_ARENA_TEAM_DECLINE, 0x3800EA }, + { Opcode.CMSG_ARENA_TEAM_LEAVE, 0x3800EB }, + { Opcode.CMSG_ARENA_TEAM_REMOVE, 0x3800EC }, + { Opcode.CMSG_ARENA_TEAM_DISBAND, 0x3800ED }, + { Opcode.CMSG_ARENA_TEAM_LEADER, 0x3800EE }, + { Opcode.CMSG_GET_ACCOUNT_CHARACTER_LIST, 0x3800EF }, + { Opcode.CMSG_LIVE_REGION_GET_ACCOUNT_CHARACTER_LIST, 0x3800F0 }, + { Opcode.CMSG_LIVE_REGION_CHARACTER_COPY, 0x3800F1 }, + { Opcode.CMSG_LIVE_REGION_ACCOUNT_RESTORE, 0x3800F2 }, + { Opcode.CMSG_BATTLE_PAY_GET_PRODUCT_LIST, 0x3800F4 }, + { Opcode.CMSG_BATTLE_PAY_GET_PURCHASE_LIST, 0x3800F5 }, + { Opcode.CMSG_CHARACTER_RENAME_REQUEST, 0x3800FA }, + { Opcode.CMSG_SHOW_TRADE_SKILL, 0x3800FB }, + { Opcode.CMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_TO_TARGET, 0x3800FC }, + { Opcode.CMSG_CHARACTER_UPGRADE_MANUAL_UNREVOKE_REQUEST, 0x3800FD }, + { Opcode.CMSG_CHARACTER_UPGRADE_START, 0x3800FE }, + { Opcode.CMSG_CHARACTER_CHECK_UPGRADE, 0x3800FF }, + { Opcode.CMSG_GUILD_SET_GUILD_MASTER, 0x380101 }, + { Opcode.CMSG_PETITION_RENAME_GUILD, 0x380102 }, + { Opcode.CMSG_REQUEST_RAID_INFO, 0x380103 }, + { Opcode.CMSG_BATTLE_PAY_START_PURCHASE, 0x380104 }, + { Opcode.CMSG_BATTLE_PAY_CONFIRM_PURCHASE_RESPONSE, 0x380105 }, + { Opcode.CMSG_BATTLE_PAY_ACK_FAILED_RESPONSE, 0x380106 }, + { Opcode.CMSG_SEND_CONTACT_LIST, 0x380108 }, + { Opcode.CMSG_ADD_FRIEND, 0x380109 }, + { Opcode.CMSG_DEL_FRIEND, 0x38010A }, + { Opcode.CMSG_SET_CONTACT_NOTES, 0x38010B }, + { Opcode.CMSG_BATTLENET_CHALLENGE_RESPONSE, 0x38010C }, + { Opcode.CMSG_ADD_IGNORE, 0x38010D }, + { Opcode.CMSG_DEL_IGNORE, 0x38010E }, + { Opcode.CMSG_SET_RAID_DIFFICULTY, 0x380114 }, + { Opcode.CMSG_TUTORIAL, 0x380115 }, + { Opcode.CMSG_ENUM_CHARACTERS_DELETED_BY_CLIENT, 0x380116 }, + { Opcode.CMSG_UNDELETE_CHARACTER, 0x380117 }, + { Opcode.CMSG_GET_UNDELETE_CHARACTER_COOLDOWN_STATUS, 0x380118 }, + { Opcode.CMSG_ENGINE_SURVEY, 0x38011C }, + { Opcode.CMSG_COMMERCE_TOKEN_GET_COUNT, 0x38011D }, + { Opcode.CMSG_COMMERCE_TOKEN_GET_MARKET_PRICE, 0x38011E }, + { Opcode.CMSG_AUCTIONABLE_TOKEN_SELL, 0x38011F }, + { Opcode.CMSG_AUCTIONABLE_TOKEN_SELL_AT_MARKET_PRICE, 0x380120 }, + { Opcode.CMSG_CONSUMABLE_TOKEN_CAN_VETERAN_BUY, 0x380121 }, + { Opcode.CMSG_CONSUMABLE_TOKEN_BUY, 0x380122 }, + { Opcode.CMSG_CONSUMABLE_TOKEN_BUY_AT_MARKET_PRICE, 0x380123 }, + { Opcode.CMSG_GET_REMAINING_GAME_TIME, 0x380124 }, + { Opcode.CMSG_CONSUMABLE_TOKEN_REDEEM, 0x380125 }, + { Opcode.CMSG_CONSUMABLE_TOKEN_REDEEM_CONFIRMATION, 0x380126 }, + { Opcode.CMSG_COMMERCE_TOKEN_GET_LOG, 0x380127 }, + { Opcode.CMSG_GET_VAS_ACCOUNT_CHARACTER_LIST, 0x380129 }, + { Opcode.CMSG_GET_VAS_TRANSFER_TARGET_REALM_LIST, 0x38012A }, + { Opcode.CMSG_BATTLE_PAY_START_VAS_PURCHASE, 0x38012B }, + { Opcode.CMSG_UPDATE_VAS_PURCHASE_STATES, 0x38012C }, + { Opcode.CMSG_BATTLENET_REQUEST, 0x38012D }, + { Opcode.CMSG_CLUB_PRESENCE_SUBSCRIBE, 0x38012F }, + { Opcode.CMSG_CHANGE_REALM_TICKET, 0x380131 }, + { Opcode.CMSG_QUICK_JOIN_RESPOND_TO_INVITE, 0x380138 }, + { Opcode.CMSG_QUICK_JOIN_REQUEST_INVITE, 0x380139 }, + { Opcode.CMSG_QUICK_JOIN_AUTO_ACCEPT_REQUESTS, 0x38013A }, + { Opcode.CMSG_CAN_REDEEM_TOKEN_FOR_BALANCE, 0x38013C }, + { Opcode.CMSG_BATTLE_PAY_REQUEST_PRICE_INFO, 0x38013D }, + { Opcode.CMSG_VAS_GET_SERVICE_STATUS, 0x38013E }, + { Opcode.CMSG_VAS_GET_QUEUE_MINUTES, 0x38013F }, + { Opcode.CMSG_VAS_CHECK_TRANSFER_OK, 0x380140 }, + { Opcode.CMSG_BATTLE_PAY_OPEN_CHECKOUT, 0x380141 }, + { Opcode.CMSG_VOICE_CHAT_LOGIN, 0x380143 }, + { Opcode.CMSG_VOICE_CHANNEL_STT_TOKEN_REQUEST, 0x380144 }, + { Opcode.CMSG_VOICE_CHAT_JOIN_CHANNEL, 0x380145 }, + { Opcode.CMSG_BATTLE_PAY_CANCEL_OPEN_CHECKOUT, 0x380148 }, + { Opcode.CMSG_DO_COUNTDOWN, 0x38014D }, + { Opcode.CMSG_CLUB_FINDER_POST, 0x38014E }, + { Opcode.CMSG_CLUB_FINDER_REQUEST_CLUBS_LIST, 0x38014F }, + { Opcode.CMSG_CLUB_FINDER_REQUEST_MEMBERSHIP_TO_CLUB, 0x380150 }, + { Opcode.CMSG_CLUB_FINDER_GET_APPLICANTS_LIST, 0x380151 }, + { Opcode.CMSG_CLUB_FINDER_RESPOND_TO_APPLICANT, 0x380152 }, + { Opcode.CMSG_CLUB_FINDER_APPLICATION_RESPONSE, 0x380153 }, + { Opcode.CMSG_CLUB_FINDER_REQUEST_PENDING_CLUBS_LIST, 0x380154 }, + { Opcode.CMSG_CLUB_FINDER_REQUEST_CLUBS_DATA, 0x380155 }, + { Opcode.CMSG_CLUB_FINDER_REQUEST_SUBSCRIBED_CLUB_POSTING_IDS, 0x380156 }, + { Opcode.CMSG_RAF_CLAIM_NEXT_REWARD, 0x380158 }, + { Opcode.CMSG_RAF_UPDATE_RECRUITMENT_INFO, 0x380159 }, + { Opcode.CMSG_RAF_GENERATE_RECRUITMENT_LINK, 0x38015A }, + { Opcode.CMSG_REMOVE_RAF_RECRUIT, 0x38015B }, + { Opcode.CMSG_GET_ACCOUNT_NOTIFICATIONS, 0x380169 }, + { Opcode.CMSG_ACCOUNT_NOTIFICATION_ACKNOWLEDGED, 0x38016A }, + { Opcode.CMSG_AUCTION_SET_FAVORITE_ITEM, 0x38016B }, + { Opcode.CMSG_UPDATE_AADC_STATUS, 0x38016D }, + { Opcode.CMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_VAS, 0x38016E }, + { Opcode.CMSG_CLUB_FINDER_WHISPER_APPLICANT_REQUEST, 0x380170 }, + { Opcode.CMSG_LOBBY_MATCHMAKER_ENTER_QUEUE, 0x380179 }, + { Opcode.CMSG_SOCIAL_CONTRACT_REQUEST, 0x38017C }, + { Opcode.CMSG_ACCEPT_SOCIAL_CONTRACT, 0x38017D }, + { Opcode.CMSG_SAVE_ACCOUNT_DATA_EXPORT, 0x380181 }, + { Opcode.CMSG_CHAR_CREATE_FINALIZE_REINCARNATION, 0x380196 }, + + { Opcode.CMSG_SUSPEND_COMMS_ACK, 0x390000 }, + { Opcode.CMSG_AUTH_SESSION, 0x390001 }, + { Opcode.CMSG_AUTH_CONTINUED_SESSION, 0x390002 }, + { Opcode.CMSG_ENTER_ENCRYPTED_MODE_ACK, 0x390003 }, + { Opcode.CMSG_PING, 0x390004 }, + { Opcode.CMSG_LOG_DISCONNECT, 0x390005 }, + { Opcode.CMSG_SUSPEND_TOKEN_RESPONSE, 0x390006 }, + { Opcode.CMSG_ENABLE_NAGLE, 0x390007 }, + { Opcode.CMSG_QUEUED_MESSAGES_END, 0x390008 }, + { Opcode.CMSG_LOG_STREAMING_ERROR, 0x390009 }, + { Opcode.CMSG_QUERY_PLAYER_NAME_BY_COMMUNITY_ID, 0x39000B }, + { Opcode.CMSG_QUERY_PLAYER_NAMES_FOR_COMMUNITY, 0x39000C }, + { Opcode.CMSG_LATENCY_REPORT, 0x39000D }, + { Opcode.CMSG_QUERY_PLAYER_NAMES, 0x39000E }, + }; + + private static readonly BiDictionary ServerOpcodes = new() + { + { Opcode.SMSG_AREA_TRIGGER_RE_PATH, 0x390003 }, + { Opcode.SMSG_AREA_TRIGGER_PLAY_SPELL_VISUAL, 0x390004 }, // NYI + { Opcode.SMSG_AREA_TRIGGER_UPDATE_DECAL_PROPERTIES, 0x390005 }, // NYI + { Opcode.SMSG_AREA_TRIGGER_FORCE_SET_POSITION_AND_FACING, 0x390006 }, // NYI + { Opcode.SMSG_AREA_TRIGGER_UNATTACH, 0x390007 }, // NYI + { Opcode.SMSG_AREA_TRIGGER_RE_SHAPE, 0x390008 }, // NYI + { Opcode.SMSG_AREA_TRIGGER_DENIED, 0x390009 }, + + { Opcode.SMSG_AUTH_FAILED, 0x3A0000 }, // NYI + { Opcode.SMSG_AUTH_RESPONSE, 0x3A0001 }, + { Opcode.SMSG_WAIT_QUEUE_UPDATE, 0x3A0002 }, + { Opcode.SMSG_WAIT_QUEUE_FINISH, 0x3A0003 }, + { Opcode.SMSG_ALL_ACHIEVEMENT_DATA, 0x3A0004 }, + { Opcode.SMSG_ALL_ACCOUNT_CRITERIA, 0x3A0005 }, + { Opcode.SMSG_RESPOND_INSPECT_ACHIEVEMENTS, 0x3A0006 }, + { Opcode.SMSG_SETUP_CURRENCY, 0x3A0007 }, + { Opcode.SMSG_SET_CURRENCY, 0x3A0008 }, + { Opcode.SMSG_RESET_WEEKLY_CURRENCY, 0x3A0009 }, + { Opcode.SMSG_MESSAGE_BOX, 0x3A000A }, // NYI + { Opcode.SMSG_WARDEN3_DATA, 0x3A000B }, + { Opcode.SMSG_PHASE_SHIFT_CHANGE, 0x3A000C }, + { Opcode.SMSG_PRELOAD_CHILD_MAP, 0x3A000D }, // NYI + { Opcode.SMSG_UNLOAD_CHILD_MAP, 0x3A000E }, // NYI + { Opcode.SMSG_MOUNT_RESULT, 0x3A000F }, + { Opcode.SMSG_DISMOUNT_RESULT, 0x3A0010 }, + { Opcode.SMSG_BIND_POINT_UPDATE, 0x3A0011 }, + { Opcode.SMSG_RESURRECT_REQUEST, 0x3A0012 }, + { Opcode.SMSG_INITIAL_SETUP, 0x3A0014 }, + { Opcode.SMSG_REFORGE_RESULT, 0x3A0015 }, + { Opcode.SMSG_TRADE_UPDATED, 0x3A0016 }, + { Opcode.SMSG_TRADE_STATUS, 0x3A0017 }, + { Opcode.SMSG_ENUM_CHARACTERS_RESULT, 0x3A0018 }, + { Opcode.SMSG_GENERATE_RANDOM_CHARACTER_NAME_RESULT, 0x3A001C }, + { Opcode.SMSG_ARCHAEOLOGY_SURVERY_CAST, 0x3A001D }, + { Opcode.SMSG_PET_NEWLY_TAMED, 0x3A001E }, + { Opcode.SMSG_PET_MODE, 0x3A001F }, + { Opcode.SMSG_DIFFERENT_INSTANCE_FROM_PARTY, 0x3A0020 }, // NYI + { Opcode.SMSG_ROLE_CHANGED_INFORM, 0x3A0021 }, + { Opcode.SMSG_ROLE_POLL_INFORM, 0x3A0022 }, + { Opcode.SMSG_TALENT_GROUP_ROLE_CHANGED, 0x3A0023 }, // NYI + { Opcode.SMSG_SUMMON_RAID_MEMBER_VALIDATE_FAILED, 0x3A0024 }, // NYI + { Opcode.SMSG_GROUP_ACTION_THROTTLED, 0x3A0025 }, // NYI + { Opcode.SMSG_REQUEST_CEMETERY_LIST_RESPONSE, 0x3A0026 }, + { Opcode.SMSG_SET_FORGE_MASTER, 0x3A0027 }, // NYI + { Opcode.SMSG_CHECK_WARGAME_ENTRY, 0x3A0028 }, // NYI + { Opcode.SMSG_PET_STABLE_RESULT, 0x3A002B }, + { Opcode.SMSG_NEW_WORLD, 0x3A002C }, + { Opcode.SMSG_PRELOAD_WORLD, 0x3A002D }, // NYI + { Opcode.SMSG_CANCEL_PRELOAD_WORLD, 0x3A002F }, // NYI + { Opcode.SMSG_LOGIN_VERIFY_WORLD, 0x3A0030 }, + { Opcode.SMSG_ABORT_NEW_WORLD, 0x3A0031 }, + { Opcode.SMSG_NOTIFY_MONEY, 0x3A0032 }, + { Opcode.SMSG_ITEM_PURCHASE_REFUND_RESULT, 0x3A0033 }, + { Opcode.SMSG_SET_ITEM_PURCHASE_DATA, 0x3A0034 }, + { Opcode.SMSG_ITEM_EXPIRE_PURCHASE_REFUND, 0x3A0035 }, + { Opcode.SMSG_DISPLAY_GAME_ERROR, 0x3A0036 }, + { Opcode.SMSG_SET_MAX_WEEKLY_QUANTITY, 0x3A0037 }, + { Opcode.SMSG_PETITION_ALREADY_SIGNED, 0x3A0038 }, + { Opcode.SMSG_RAID_MARKERS_CHANGED, 0x3A0039 }, + { Opcode.SMSG_STREAMING_MOVIES, 0x3A003D }, + { Opcode.SMSG_START_TIMER, 0x3A003E }, + { Opcode.SMSG_DISENCHANT_CREDIT, 0x3A0040 }, + { Opcode.SMSG_SUSPEND_TOKEN, 0x3A0041 }, + { Opcode.SMSG_RESUME_TOKEN, 0x3A0042 }, + { Opcode.SMSG_ADD_ITEM_PASSIVE, 0x3A0043 }, + { Opcode.SMSG_REMOVE_ITEM_PASSIVE, 0x3A0044 }, + { Opcode.SMSG_SEND_ITEM_PASSIVES, 0x3A0045 }, + { Opcode.SMSG_WORLD_SERVER_INFO, 0x3A0046 }, + { Opcode.SMSG_ACCOUNT_MOUNT_UPDATE, 0x3A0047 }, + { Opcode.SMSG_ACCOUNT_MOUNT_REMOVED, 0x3A0048 }, // NYI + { Opcode.SMSG_ACCOUNT_TOY_UPDATE, 0x3A0049 }, + { Opcode.SMSG_FORCE_RANDOM_TRANSMOG_TOAST, 0x3A004B }, // NYI + { Opcode.SMSG_ACCOUNT_TRANSMOG_UPDATE, 0x3A004C }, + { Opcode.SMSG_ACCOUNT_TRANSMOG_SET_FAVORITES_UPDATE, 0x3A004D }, + { Opcode.SMSG_RUNE_REGEN_DEBUG, 0x3A0050 }, // NYI + { Opcode.SMSG_VENDOR_INVENTORY, 0x3A0052 }, + { Opcode.SMSG_SET_PLAY_HOVER_ANIM, 0x3A0054 }, + { Opcode.SMSG_CLEAR_BOSS_EMOTES, 0x3A0055 }, + { Opcode.SMSG_LOAD_CUF_PROFILES, 0x3A0056 }, + { Opcode.SMSG_PARTY_INVITE, 0x3A0057 }, + { Opcode.SMSG_FEATURE_SYSTEM_STATUS, 0x3A0059 }, + { Opcode.SMSG_FEATURE_SYSTEM_STATUS_GLUE_SCREEN, 0x3A005A }, + { Opcode.SMSG_SEASON_INFO, 0x3A005B }, + { Opcode.SMSG_PAST_TIME_EVENTS, 0x3A005C }, // NYI + { Opcode.SMSG_GAME_OBJECT_ACTIVATE_ANIM_KIT, 0x3A005D }, + { Opcode.SMSG_GAME_OBJECT_CUSTOM_ANIM, 0x3A005E }, + { Opcode.SMSG_GAME_OBJECT_DESPAWN, 0x3A005F }, + { Opcode.SMSG_MAP_OBJ_EVENTS, 0x3A0060 }, + { Opcode.SMSG_MISSILE_CANCEL, 0x3A0061 }, + { Opcode.SMSG_XP_GAIN_ABORTED, 0x3A0063 }, + { Opcode.SMSG_PRINT_NOTIFICATION, 0x3A0064 }, + { Opcode.SMSG_CUSTOM_LOAD_SCREEN, 0x3A0065 }, + { Opcode.SMSG_SPELL_VISUAL_LOAD_SCREEN, 0x3A0066 }, + { Opcode.SMSG_TRANSFER_PENDING, 0x3A0067 }, + { Opcode.SMSG_ADJUST_SPLINE_DURATION, 0x3A006A }, + { Opcode.SMSG_TRAIT_CONFIG_COMMIT_FAILED, 0x3A006B }, + { Opcode.SMSG_LEARN_TALENT_FAILED, 0x3A006D }, + { Opcode.SMSG_LEARN_PVP_TALENT_FAILED, 0x3A006E }, + { Opcode.SMSG_UPDATE_TALENT_DATA, 0x3A0070 }, + { Opcode.SMSG_UPDATE_CLASSIC_TALENT_DATA, 0x3A0071 }, + { Opcode.SMSG_UPDATE_PRIMARY_SPEC, 0x3A0072 }, // NYI + { Opcode.SMSG_SHOW_NEUTRAL_PLAYER_FACTION_SELECT_UI, 0x3A0075 }, + { Opcode.SMSG_NEUTRAL_PLAYER_FACTION_SELECT_RESULT, 0x3A0076 }, + { Opcode.SMSG_SOR_START_EXPERIENCE_INCOMPLETE, 0x3A0077 }, // NYI + { Opcode.SMSG_SET_CHR_UPGRADE_TIER, 0x3A0079 }, // NYI + { Opcode.SMSG_UPDATE_ACTION_BUTTONS, 0x3A007A }, + { Opcode.SMSG_DONT_AUTO_PUSH_SPELLS_TO_ACTION_BAR, 0x3A007B }, // NYI + { Opcode.SMSG_SCENE_OBJECT_EVENT, 0x3A007C }, // NYI + { Opcode.SMSG_SCENE_OBJECT_PET_BATTLE_INITIAL_UPDATE, 0x3A007D }, + { Opcode.SMSG_SCENE_OBJECT_PET_BATTLE_FIRST_ROUND, 0x3A007E }, + { Opcode.SMSG_SCENE_OBJECT_PET_BATTLE_ROUND_RESULT, 0x3A007F }, + { Opcode.SMSG_SCENE_OBJECT_PET_BATTLE_REPLACEMENTS_MADE, 0x3A0080 }, + { Opcode.SMSG_SCENE_OBJECT_PET_BATTLE_FINAL_ROUND, 0x3A0081 }, + { Opcode.SMSG_SCENE_OBJECT_PET_BATTLE_FINISHED, 0x3A0082 }, + { Opcode.SMSG_BATTLE_PET_UPDATES, 0x3A0084 }, + { Opcode.SMSG_BATTLE_PET_TRAP_LEVEL, 0x3A0085 }, // NYI + { Opcode.SMSG_PET_BATTLE_SLOT_UPDATES, 0x3A0086 }, + { Opcode.SMSG_BATTLE_PET_JOURNAL_LOCK_ACQUIRED, 0x3A0087 }, + { Opcode.SMSG_BATTLE_PET_JOURNAL_LOCK_DENIED, 0x3A0088 }, + { Opcode.SMSG_BATTLE_PET_JOURNAL, 0x3A0089 }, + { Opcode.SMSG_BATTLE_PET_DELETED, 0x3A008A }, + { Opcode.SMSG_BATTLE_PET_REVOKED, 0x3A008B }, + { Opcode.SMSG_BATTLE_PET_RESTORED, 0x3A008C }, + { Opcode.SMSG_BATTLE_PETS_HEALED, 0x3A008D }, + { Opcode.SMSG_PARTY_UPDATE, 0x3A008E }, + { Opcode.SMSG_READY_CHECK_STARTED, 0x3A0090 }, + { Opcode.SMSG_READY_CHECK_RESPONSE, 0x3A0091 }, + { Opcode.SMSG_READY_CHECK_COMPLETED, 0x3A0092 }, + + { Opcode.SMSG_PET_BATTLE_REQUEST_FAILED, 0x3A0097 }, + { Opcode.SMSG_PET_BATTLE_PVP_CHALLENGE, 0x3A0098 }, + { Opcode.SMSG_PET_BATTLE_FINALIZE_LOCATION, 0x3A0099 }, + { Opcode.SMSG_PET_BATTLE_INITIAL_UPDATE, 0x3A009A }, + { Opcode.SMSG_PET_BATTLE_FIRST_ROUND, 0x3A009B }, + { Opcode.SMSG_PET_BATTLE_ROUND_RESULT, 0x3A009C }, + { Opcode.SMSG_PET_BATTLE_REPLACEMENTS_MADE, 0x3A009D }, + { Opcode.SMSG_PET_BATTLE_FINAL_ROUND, 0x3A009E }, + { Opcode.SMSG_PET_BATTLE_FINISHED, 0x3A009F }, + { Opcode.SMSG_PET_BATTLE_CHAT_RESTRICTED, 0x3A00A0 }, + { Opcode.SMSG_PET_BATTLE_MAX_GAME_LENGTH_WARNING, 0x3A00A1 }, + { Opcode.SMSG_START_ELAPSED_TIMER, 0x3A00A2 }, + { Opcode.SMSG_STOP_ELAPSED_TIMER, 0x3A00A3 }, + { Opcode.SMSG_START_ELAPSED_TIMERS, 0x3A00A4 }, + { Opcode.SMSG_CHALLENGE_MODE_START, 0x3A00A5 }, // NYI + { Opcode.SMSG_CHALLENGE_MODE_UPDATE_DEATH_COUNT, 0x3A00A6 }, + { Opcode.SMSG_CHALLENGE_MODE_RESET, 0x3A00A7 }, + { Opcode.SMSG_CHALLENGE_MODE_COMPLETE, 0x3A00A8 }, // NYI + { Opcode.SMSG_CHALLENGE_MODE_NEW_PLAYER_RECORD, 0x3A00A9 }, // NYI + { Opcode.SMSG_MYTHIC_PLUS_ALL_MAP_STATS, 0x3A00AB }, // NYI + { Opcode.SMSG_MYTHIC_PLUS_SEASON_DATA, 0x3A00AC }, + { Opcode.SMSG_MYTHIC_PLUS_CURRENT_AFFIXES, 0x3A00AD }, + { Opcode.SMSG_CHALLENGE_MODE_REQUEST_LEADERS_RESULT, 0x3A00AF }, + { Opcode.SMSG_MYTHIC_PLUS_NEW_WEEK_RECORD, 0x3A00B1 }, + { Opcode.SMSG_RESPEC_WIPE_CONFIRM, 0x3A00B2 }, + { Opcode.SMSG_LOOT_RESPONSE, 0x3A00B4 }, + { Opcode.SMSG_LOOT_REMOVED, 0x3A00B5 }, + { Opcode.SMSG_COIN_REMOVED, 0x3A00B7 }, + { Opcode.SMSG_AE_LOOT_TARGETS, 0x3A00B8 }, + { Opcode.SMSG_AE_LOOT_TARGET_ACK, 0x3A00B9 }, + { Opcode.SMSG_LOOT_RELEASE_ALL, 0x3A00BA }, + { Opcode.SMSG_LOOT_RELEASE, 0x3A00BB }, + { Opcode.SMSG_LOOT_MONEY_NOTIFY, 0x3A00BC }, + { Opcode.SMSG_START_LOOT_ROLL, 0x3A00BD }, + { Opcode.SMSG_LOOT_ROLL, 0x3A00BE }, + { Opcode.SMSG_MASTER_LOOT_CANDIDATE_LIST, 0x3A00BF }, + { Opcode.SMSG_LOOT_ROLLS_COMPLETE, 0x3A00C0 }, + { Opcode.SMSG_LOOT_ALL_PASSED, 0x3A00C1 }, + { Opcode.SMSG_LOOT_ROLL_WON, 0x3A00C2 }, + { Opcode.SMSG_ITEM_PUSH_RESULT, 0x3A00C3 }, + { Opcode.SMSG_DISPLAY_TOAST, 0x3A00C4 }, + { Opcode.SMSG_SET_PET_SPECIALIZATION, 0x3A00C5 }, + { Opcode.SMSG_BLACK_MARKET_REQUEST_ITEMS_RESULT, 0x3A00C7 }, + { Opcode.SMSG_BLACK_MARKET_BID_ON_ITEM_RESULT, 0x3A00C8 }, + { Opcode.SMSG_BLACK_MARKET_OUTBID, 0x3A00C9 }, + { Opcode.SMSG_BLACK_MARKET_WON, 0x3A00CA }, + { Opcode.SMSG_SCENARIO_STATE, 0x3A00CB }, + { Opcode.SMSG_SCENARIO_PROGRESS_UPDATE, 0x3A00CC }, + { Opcode.SMSG_GROUP_NEW_LEADER, 0x3A00CD }, + { Opcode.SMSG_SEND_RAID_TARGET_UPDATE_ALL, 0x3A00CE }, + { Opcode.SMSG_SEND_RAID_TARGET_UPDATE_SINGLE, 0x3A00CF }, + { Opcode.SMSG_RANDOM_ROLL, 0x3A00D0 }, + { Opcode.SMSG_INSPECT_RESULT, 0x3A00D1 }, + { Opcode.SMSG_ARENA_CROWD_CONTROL_SPELL_RESULT, 0x3A00D2 }, // NYI + { Opcode.SMSG_SCENARIO_POIS, 0x3A00D3 }, + { Opcode.SMSG_INSTANCE_INFO, 0x3A00D4 }, + { Opcode.SMSG_CONSOLE_WRITE, 0x3A00D5 }, // NYI + { Opcode.SMSG_PLAY_SCENE, 0x3A00D6 }, + { Opcode.SMSG_CANCEL_SCENE, 0x3A00D7 }, + { Opcode.SMSG_BATTLE_PET_ERROR, 0x3A00D8 }, + { Opcode.SMSG_PET_BATTLE_QUEUE_PROPOSE_MATCH, 0x3A00D9 }, + { Opcode.SMSG_PET_BATTLE_QUEUE_STATUS, 0x3A00DA }, + { Opcode.SMSG_MAIL_COMMAND_RESULT, 0x3A00DB }, + { Opcode.SMSG_NOTIFY_RECEIVED_MAIL, 0x3A00DC }, + { Opcode.SMSG_ADD_BATTLENET_FRIEND_RESPONSE, 0x3A00DD }, // NYI + { Opcode.SMSG_ADDON_LIST_REQUEST, 0x3A00E2 }, // NYI + { Opcode.SMSG_ACHIEVEMENT_EARNED, 0x3A00E3 }, + { Opcode.SMSG_BONUS_ROLL_EMPTY, 0x3A00E5 }, // NYI + { Opcode.SMSG_UPDATE_EXPANSION_LEVEL, 0x3A00E6 }, + { Opcode.SMSG_CONTROL_UPDATE, 0x3A00E7 }, + { Opcode.SMSG_DISPLAY_PROMOTION, 0x3A00EC }, + { Opcode.SMSG_SERVER_FIRST_ACHIEVEMENTS, 0x3A00EE }, // NYI + { Opcode.SMSG_CORPSE_LOCATION, 0x3A00EF }, + { Opcode.SMSG_REFRESH_COMPONENT, 0x3A00F1 }, // NYI + { Opcode.SMSG_DEBUG_MENU_MANAGER_FULL_UPDATE, 0x3A00F7 }, // NYI + { Opcode.SMSG_LOSS_OF_CONTROL_AURA_UPDATE, 0x3A0112 }, + { Opcode.SMSG_ADD_LOSS_OF_CONTROL, 0x3A0113 }, + { Opcode.SMSG_PET_BATTLE_DEBUG_QUEUE_DUMP_RESPONSE, 0x3A0117 }, // NYI + { Opcode.SMSG_SET_TIME_ZONE_INFORMATION, 0x3A011A }, + { Opcode.SMSG_BATTLE_PET_CAGE_DATE_ERROR, 0x3A011B }, // NYI + { Opcode.SMSG_TEXT_EMOTE, 0x3A011D }, + { Opcode.SMSG_PET_GOD_MODE, 0x3A011E }, // NYI + { Opcode.SMSG_TAXI_NODE_STATUS, 0x3A011F }, + { Opcode.SMSG_ACTIVATE_TAXI_REPLY, 0x3A0120 }, + { Opcode.SMSG_NEW_TAXI_PATH, 0x3A0121 }, + { Opcode.SMSG_GAME_SPEED_SET, 0x3A0124 }, // NYI + { Opcode.SMSG_SERVER_TIME, 0x3A0125 }, // NYI + { Opcode.SMSG_LOGOUT_RESPONSE, 0x3A0126 }, + { Opcode.SMSG_LOGOUT_COMPLETE, 0x3A0127 }, + { Opcode.SMSG_LOGOUT_CANCEL_ACK, 0x3A0128 }, + { Opcode.SMSG_INSTANCE_RESET, 0x3A0129 }, + { Opcode.SMSG_INSTANCE_RESET_FAILED, 0x3A012A }, + { Opcode.SMSG_UPDATE_LAST_INSTANCE, 0x3A012B }, + { Opcode.SMSG_KICK_REASON, 0x3A012C }, // NYI + { Opcode.SMSG_CALENDAR_SEND_CALENDAR, 0x3A012E }, + { Opcode.SMSG_CALENDAR_SEND_EVENT, 0x3A012F }, + { Opcode.SMSG_CALENDAR_COMMUNITY_INVITE, 0x3A0130 }, + { Opcode.SMSG_CALENDAR_INVITE_ADDED, 0x3A0131 }, + { Opcode.SMSG_CALENDAR_INVITE_REMOVED, 0x3A0132 }, + { Opcode.SMSG_CALENDAR_INVITE_STATUS, 0x3A0133 }, + { Opcode.SMSG_CALENDAR_MODERATOR_STATUS, 0x3A0134 }, + { Opcode.SMSG_CALENDAR_INVITE_ALERT, 0x3A0135 }, + { Opcode.SMSG_CALENDAR_INVITE_STATUS_ALERT, 0x3A0136 }, + { Opcode.SMSG_CALENDAR_INVITE_REMOVED_ALERT, 0x3A0137 }, + { Opcode.SMSG_CALENDAR_EVENT_REMOVED_ALERT, 0x3A0138 }, + { Opcode.SMSG_CALENDAR_EVENT_UPDATED_ALERT, 0x3A0139 }, + { Opcode.SMSG_CALENDAR_INVITE_NOTES, 0x3A013A }, + { Opcode.SMSG_CALENDAR_INVITE_NOTES_ALERT, 0x3A013B }, + { Opcode.SMSG_CALENDAR_RAID_LOCKOUT_ADDED, 0x3A013C }, + { Opcode.SMSG_CALENDAR_RAID_LOCKOUT_REMOVED, 0x3A013D }, + { Opcode.SMSG_CALENDAR_RAID_LOCKOUT_UPDATED, 0x3A013E }, + { Opcode.SMSG_CALENDAR_SEND_NUM_PENDING, 0x3A013F }, + { Opcode.SMSG_CALENDAR_CLEAR_PENDING_ACTION, 0x3A0140 }, + { Opcode.SMSG_CALENDAR_COMMAND_RESULT, 0x3A0141 }, + { Opcode.SMSG_SPECIAL_MOUNT_ANIM, 0x3A0142 }, + { Opcode.SMSG_PET_ACTION_SOUND, 0x3A0143 }, + { Opcode.SMSG_PET_DISMISS_SOUND, 0x3A0144 }, + { Opcode.SMSG_GM_TICKET_SYSTEM_STATUS, 0x3A0145 }, + { Opcode.SMSG_GM_TICKET_CASE_STATUS, 0x3A0146 }, + { Opcode.SMSG_SET_DUNGEON_DIFFICULTY, 0x3A0147 }, + { Opcode.SMSG_WHO_IS, 0x3A0148 }, + { Opcode.SMSG_WEATHER, 0x3A0149 }, + { Opcode.SMSG_START_LIGHTNING_STORM, 0x3A014A }, + { Opcode.SMSG_END_LIGHTNING_STORM, 0x3A014B }, + { Opcode.SMSG_UPDATE_INSTANCE_OWNERSHIP, 0x3A014C }, + { Opcode.SMSG_NOTIFY_MISSILE_TRAJECTORY_COLLISION, 0x3A014D }, + { Opcode.SMSG_COMPLAINT_RESULT, 0x3A014E }, + { Opcode.SMSG_SUMMON_CANCEL, 0x3A0153 }, + { Opcode.SMSG_DISMOUNT, 0x3A0154 }, + { Opcode.SMSG_EQUIPMENT_SET_ID, 0x3A0155 }, + { Opcode.SMSG_PET_TAME_FAILURE, 0x3A0156 }, + { Opcode.SMSG_AI_REACTION, 0x3A0158 }, + { Opcode.SMSG_OFFER_PETITION_ERROR, 0x3A0159 }, + { Opcode.SMSG_RESET_FAILED_NOTIFY, 0x3A015A }, + { Opcode.SMSG_ADD_RUNE_POWER, 0x3A015B }, + { Opcode.SMSG_COOLDOWN_EVENT, 0x3A015C }, + { Opcode.SMSG_CLEAR_COOLDOWN, 0x3A015D }, + { Opcode.SMSG_OVERRIDE_LIGHT, 0x3A015E }, + { Opcode.SMSG_ENABLE_BARBER_SHOP, 0x3A015F }, + { Opcode.SMSG_CONFIRM_BARBERS_CHOICE, 0x3A0160 }, + { Opcode.SMSG_BARBER_SHOP_RESULT, 0x3A0161 }, + { Opcode.SMSG_PETITION_SHOW_LIST, 0x3A0162 }, + { Opcode.SMSG_PETITION_SHOW_SIGNATURES, 0x3A0163 }, + { Opcode.SMSG_RECRUIT_A_FRIEND_FAILURE, 0x3A0164 }, + { Opcode.SMSG_CROSSED_INEBRIATION_THRESHOLD, 0x3A0165 }, + { Opcode.SMSG_PET_NAME_INVALID, 0x3A0167 }, + { Opcode.SMSG_SELL_RESPONSE, 0x3A0168 }, + { Opcode.SMSG_BUY_SUCCEEDED, 0x3A0169 }, + { Opcode.SMSG_BUY_FAILED, 0x3A016A }, + { Opcode.SMSG_TOTEM_CREATED, 0x3A016B }, + { Opcode.SMSG_TOTEM_MOVED, 0x3A016D }, + { Opcode.SMSG_TRIGGER_MOVIE, 0x3A016E }, + { Opcode.SMSG_SHOW_TAXI_NODES, 0x3A0170 }, + { Opcode.SMSG_MINIMAP_PING, 0x3A0171 }, + { Opcode.SMSG_FISH_NOT_HOOKED, 0x3A0172 }, + { Opcode.SMSG_FISH_ESCAPED, 0x3A0173 }, + { Opcode.SMSG_HEALTH_UPDATE, 0x3A0174 }, + { Opcode.SMSG_POWER_UPDATE, 0x3A0175 }, + { Opcode.SMSG_DEATH_RELEASE_LOC, 0x3A0176 }, + { Opcode.SMSG_FORCED_DEATH_UPDATE, 0x3A0177 }, // NYI + { Opcode.SMSG_PLAYED_TIME, 0x3A0178 }, + { Opcode.SMSG_TITLE_EARNED, 0x3A017A }, + { Opcode.SMSG_TITLE_LOST, 0x3A017B }, + { Opcode.SMSG_HIGHEST_THREAT_UPDATE, 0x3A017C }, + { Opcode.SMSG_THREAT_UPDATE, 0x3A017D }, + { Opcode.SMSG_THREAT_REMOVE, 0x3A017E }, + { Opcode.SMSG_THREAT_CLEAR, 0x3A017F }, + { Opcode.SMSG_PROPOSE_LEVEL_GRANT, 0x3A0180 }, + { Opcode.SMSG_CANCEL_AUTO_REPEAT, 0x3A0181 }, + { Opcode.SMSG_TRAINER_LIST, 0x3A0182 }, + { Opcode.SMSG_TRAINER_BUY_FAILED, 0x3A0183 }, + { Opcode.SMSG_CRITERIA_UPDATE, 0x3A0184 }, + { Opcode.SMSG_CHAR_CUSTOMIZE_FAILURE, 0x3A0185 }, + { Opcode.SMSG_CHAR_CUSTOMIZE_SUCCESS, 0x3A0186 }, + { Opcode.SMSG_QUERY_TIME_RESPONSE, 0x3A0187 }, + { Opcode.SMSG_LOG_XP_GAIN, 0x3A0188 }, + { Opcode.SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA, 0x3A0189 }, + { Opcode.SMSG_CRITERIA_DELETED, 0x3A018A }, + { Opcode.SMSG_ACHIEVEMENT_DELETED, 0x3A018B }, + { Opcode.SMSG_LEVEL_UP_INFO, 0x3A018C }, + { Opcode.SMSG_ITEM_CHANGED, 0x3A018E }, + { Opcode.SMSG_AUCTION_HELLO_RESPONSE, 0x3A0191 }, + { Opcode.SMSG_AUCTION_REPLICATE_RESPONSE, 0x3A0192 }, + { Opcode.SMSG_AUCTION_COMMAND_RESULT, 0x3A0193 }, + { Opcode.SMSG_AUCTION_WON_NOTIFICATION, 0x3A0194 }, + { Opcode.SMSG_AUCTION_OUTBID_NOTIFICATION, 0x3A0195 }, + { Opcode.SMSG_AUCTION_CLOSED_NOTIFICATION, 0x3A0196 }, + { Opcode.SMSG_AUCTION_OWNER_BID_NOTIFICATION, 0x3A0197 }, + { Opcode.SMSG_SET_VEHICLE_REC_ID, 0x3A019A }, + { Opcode.SMSG_PENDING_RAID_LOCK, 0x3A019B }, + { Opcode.SMSG_DESTRUCTIBLE_BUILDING_DAMAGE, 0x3A019C }, + { Opcode.SMSG_INSTANCE_GROUP_SIZE_CHANGED, 0x3A019D }, + { Opcode.SMSG_GOD_MODE, 0x3A019F }, // NYI + { Opcode.SMSG_SET_FACTION_AT_WAR, 0x3A01A3 }, // NYI + { Opcode.SMSG_CREATE_CHAR, 0x3A01A4 }, + { Opcode.SMSG_DELETE_CHAR, 0x3A01A5 }, + { Opcode.SMSG_TRANSFER_ABORTED, 0x3A01A6 }, + { Opcode.SMSG_PET_GUIDS, 0x3A01A7 }, + { Opcode.SMSG_CHARACTER_LOGIN_FAILED, 0x3A01A8 }, + { Opcode.SMSG_COMMENTATOR_STATE_CHANGED, 0x3A01A9 }, // NYI + { Opcode.SMSG_COMMENTATOR_MAP_INFO, 0x3A01AA }, // NYI + { Opcode.SMSG_COMMENTATOR_PLAYER_INFO, 0x3A01AB }, // NYI + { Opcode.SMSG_UPDATE_ACCOUNT_DATA, 0x3A01AC }, + { Opcode.SMSG_UPDATE_ACCOUNT_DATA_COMPLETE, 0x3A01AD }, + { Opcode.SMSG_ACCOUNT_DATA_TIMES, 0x3A01AE }, + { Opcode.SMSG_GAME_TIME_UPDATE, 0x3A01AF }, + { Opcode.SMSG_GAME_TIME_SET, 0x3A01B0 }, + { Opcode.SMSG_LOGIN_SET_TIME_SPEED, 0x3A01B1 }, + { Opcode.SMSG_LOAD_EQUIPMENT_SET, 0x3A01B2 }, + { Opcode.SMSG_START_MIRROR_TIMER, 0x3A01B3 }, + { Opcode.SMSG_PAUSE_MIRROR_TIMER, 0x3A01B4 }, + { Opcode.SMSG_STOP_MIRROR_TIMER, 0x3A01B5 }, + { Opcode.SMSG_CORPSE_TRANSPORT_QUERY, 0x3A01B6 }, + { Opcode.SMSG_ENCHANTMENT_LOG, 0x3A01B7 }, + { Opcode.SMSG_SERVER_TIME_OFFSET, 0x3A01B8 }, + { Opcode.SMSG_AREA_TRIGGER_NO_CORPSE, 0x3A01BA }, + { Opcode.SMSG_TALENTS_INVOLUNTARILY_RESET, 0x3A01BB }, + { Opcode.SMSG_SPEC_INVOLUNTARILY_CHANGED, 0x3A01BC }, // NYI + { Opcode.SMSG_PAGE_TEXT, 0x3A01BD }, + { Opcode.SMSG_GAME_OBJECT_UI_LINK, 0x3A01BE }, // NYI + { Opcode.SMSG_STAND_STATE_UPDATE, 0x3A01C0 }, + { Opcode.SMSG_GAME_OBJECT_RESET_STATE, 0x3A01C1 }, + { Opcode.SMSG_SUMMON_REQUEST, 0x3A01C4 }, + { Opcode.SMSG_INSPECT_PVP, 0x3A01C5 }, + { Opcode.SMSG_REFER_A_FRIEND_EXPIRED, 0x3A01C6 }, + { Opcode.SMSG_INITIALIZE_FACTIONS, 0x3A01C7 }, + { Opcode.SMSG_FACTION_BONUS_INFO, 0x3A01C8 }, + { Opcode.SMSG_CAMERA_EFFECT, 0x3A01C9 }, // NYI + { Opcode.SMSG_SOCKET_GEMS_SUCCESS, 0x3A01CA }, + { Opcode.SMSG_SOCKET_GEMS_FAILURE, 0x3A01CB }, // NYI + { Opcode.SMSG_SET_FACTION_VISIBLE, 0x3A01CD }, + { Opcode.SMSG_SET_FACTION_NOT_VISIBLE, 0x3A01CE }, + { Opcode.SMSG_SET_FACTION_STANDING, 0x3A01CF }, + { Opcode.SMSG_SET_AI_ANIM_KIT, 0x3A01D3 }, + { Opcode.SMSG_PLAY_ONE_SHOT_ANIM_KIT, 0x3A01D4 }, + { Opcode.SMSG_SET_MOVEMENT_ANIM_KIT, 0x3A01D5 }, + { Opcode.SMSG_SET_MELEE_ANIM_KIT, 0x3A01D6 }, + { Opcode.SMSG_SET_ANIM_TIER, 0x3A01D7 }, + { Opcode.SMSG_SET_PROFICIENCY, 0x3A01D8 }, + { Opcode.SMSG_COOLDOWN_CHEAT, 0x3A01DC }, + { Opcode.SMSG_AREA_SPIRIT_HEALER_TIME, 0x3A01E3 }, + { Opcode.SMSG_LOOT_LIST, 0x3A01E4 }, + { Opcode.SMSG_DESTROY_ARENA_UNIT, 0x3A01E5 }, + { Opcode.SMSG_FEIGN_DEATH_RESISTED, 0x3A01E7 }, // NYI + { Opcode.SMSG_DURABILITY_DAMAGE_DEATH, 0x3A01E8 }, + { Opcode.SMSG_INIT_WORLD_STATES, 0x3A01E9 }, + { Opcode.SMSG_UPDATE_WORLD_STATE, 0x3A01EB }, + { Opcode.SMSG_PET_ACTION_FEEDBACK, 0x3A01EC }, + { Opcode.SMSG_CORPSE_RECLAIM_DELAY, 0x3A01ED }, + { Opcode.SMSG_REATTACH_RESURRECT, 0x3A01EE }, // NYI + { Opcode.SMSG_PETITION_SIGN_RESULTS, 0x3A01EF }, + { Opcode.SMSG_TURN_IN_PETITION_RESULT, 0x3A01F1 }, + { Opcode.SMSG_USE_EQUIPMENT_SET_RESULT, 0x3A01F2 }, + { Opcode.SMSG_FORCE_ANIM, 0x3A01F4 }, // NYI + { Opcode.SMSG_INVALID_PROMOTION_CODE, 0x3A01F6 }, + { Opcode.SMSG_ITEM_TIME_UPDATE, 0x3A01F7 }, + { Opcode.SMSG_ITEM_ENCHANT_TIME_UPDATE, 0x3A01F8 }, + { Opcode.SMSG_MAIL_LIST_RESULT, 0x3A01F9 }, + { Opcode.SMSG_MAIL_QUERY_NEXT_TIME_RESULT, 0x3A01FA }, + { Opcode.SMSG_PARTY_MEMBER_PARTIAL_STATE, 0x3A01FB }, + { Opcode.SMSG_PARTY_MEMBER_FULL_STATE, 0x3A01FC }, + { Opcode.SMSG_PARTY_KILL_LOG, 0x3A01FD }, + { Opcode.SMSG_PROC_RESIST, 0x3A01FE }, + { Opcode.SMSG_ISLAND_AZERITE_GAIN, 0x3A01FF }, + { Opcode.SMSG_ISLAND_COMPLETE, 0x3A0200 }, + { Opcode.SMSG_WARFRONT_COMPLETE, 0x3A0201 }, // NYI + { Opcode.SMSG_EXPLORATION_EXPERIENCE, 0x3A0202 }, + { Opcode.SMSG_ARENA_TEAM_ROSTER, 0x3A0203 }, // NYI + { Opcode.SMSG_ARENA_TEAM_INVITE, 0x3A0204 }, // NYI + { Opcode.SMSG_ARENA_TEAM_EVENT, 0x3A0205 }, // NYI + { Opcode.SMSG_ARENA_TEAM_COMMAND_RESULT, 0x3A0206 }, // NYI + { Opcode.SMSG_ARENA_TEAM_STATS, 0x3A0207 }, // NYI + { Opcode.SMSG_GET_ACCOUNT_CHARACTER_LIST_RESULT, 0x3A0208 }, + { Opcode.SMSG_LIVE_REGION_GET_ACCOUNT_CHARACTER_LIST_RESULT, 0x3A0209 }, // NYI + { Opcode.SMSG_CHARACTER_RENAME_RESULT, 0x3A020A }, + { Opcode.SMSG_MODIFY_COOLDOWN, 0x3A020B }, + { Opcode.SMSG_UPDATE_COOLDOWN, 0x3A020C }, + { Opcode.SMSG_UPDATE_CHARGE_CATEGORY_COOLDOWN, 0x3A020D }, + { Opcode.SMSG_PRE_RESSURECT, 0x3A020E }, + { Opcode.SMSG_PLAY_SOUND, 0x3A020F }, + { Opcode.SMSG_PLAY_MUSIC, 0x3A0210 }, + { Opcode.SMSG_UI_ACTION, 0x3A0211 }, // NYI + { Opcode.SMSG_PLAY_OBJECT_SOUND, 0x3A0212 }, + { Opcode.SMSG_PLAY_SPEAKERBOT_SOUND, 0x3A0213 }, + { Opcode.SMSG_STOP_SPEAKERBOT_SOUND, 0x3A0214 }, + { Opcode.SMSG_LIVE_REGION_CHARACTER_COPY_RESULT, 0x3A0215 }, // NYI + { Opcode.SMSG_LIVE_REGION_ACCOUNT_RESTORE_RESULT, 0x3A0216 }, // NYI + { Opcode.SMSG_SHOW_TRADE_SKILL_RESPONSE, 0x3A0218 }, // NYI + { Opcode.SMSG_BATTLE_PAY_GET_PRODUCT_LIST_RESPONSE, 0x3A0219 }, + { Opcode.SMSG_BATTLE_PAY_GET_PURCHASE_LIST_RESPONSE, 0x3A021A }, + { Opcode.SMSG_BATTLE_PAY_GET_DISTRIBUTION_LIST_RESPONSE, 0x3A021B }, + { Opcode.SMSG_BATTLE_PAY_DISTRIBUTION_UNREVOKED, 0x3A021C }, + { Opcode.SMSG_BATTLE_PAY_DISTRIBUTION_UPDATE, 0x3A021D }, + { Opcode.SMSG_BATTLE_PAY_DELIVERY_STARTED, 0x3A021E }, + { Opcode.SMSG_BATTLE_PAY_DELIVERY_ENDED, 0x3A021F }, + { Opcode.SMSG_BATTLE_PAY_MOUNT_DELIVERED, 0x3A0220 }, + { Opcode.SMSG_BATTLE_PAY_BATTLE_PET_DELIVERED, 0x3A0221 }, + { Opcode.SMSG_BATTLE_PAY_COLLECTION_ITEM_DELIVERED, 0x3A0222 }, + { Opcode.SMSG_INSTANCE_SAVE_CREATED, 0x3A0224 }, + { Opcode.SMSG_ENCOUNTER_START, 0x3A0225 }, // NYI + { Opcode.SMSG_ENCOUNTER_END, 0x3A0226 }, // NYI + { Opcode.SMSG_BATTLE_PAY_START_PURCHASE_RESPONSE, 0x3A0227 }, + { Opcode.SMSG_BATTLE_PAY_START_DISTRIBUTION_ASSIGN_TO_TARGET_RESPONSE, 0x3A0228 }, + { Opcode.SMSG_BATTLE_PAY_PURCHASE_UPDATE, 0x3A022A }, + { Opcode.SMSG_BATTLE_PAY_CONFIRM_PURCHASE, 0x3A022B }, + { Opcode.SMSG_BATTLE_PAY_ACK_FAILED, 0x3A022C }, + { Opcode.SMSG_CONTACT_LIST, 0x3A022F }, + { Opcode.SMSG_FRIEND_STATUS, 0x3A0230 }, + { Opcode.SMSG_CHARACTER_OBJECT_TEST_RESPONSE, 0x3A0231 }, // NYI + { Opcode.SMSG_BATTLENET_CHALLENGE_START, 0x3A0232 }, + { Opcode.SMSG_BATTLENET_CHALLENGE_ABORT, 0x3A0233 }, + { Opcode.SMSG_GROUP_DECLINE, 0x3A0234 }, + { Opcode.SMSG_GROUP_REQUEST_DECLINE, 0x3A0235 }, + { Opcode.SMSG_GROUP_UNINVITE, 0x3A0236 }, + { Opcode.SMSG_GROUP_DESTROYED, 0x3A0237 }, + { Opcode.SMSG_GROUP_AUTO_KICK, 0x3A0238 }, // NYI + { Opcode.SMSG_PARTY_COMMAND_RESULT, 0x3A0239 }, + { Opcode.SMSG_SUGGEST_INVITE_INFORM, 0x3A023A }, // NYI + { Opcode.SMSG_GOSSIP_POI, 0x3A023B }, + { Opcode.SMSG_READ_ITEM_RESULT_OK, 0x3A0244 }, + { Opcode.SMSG_READ_ITEM_RESULT_FAILED, 0x3A024C }, + { Opcode.SMSG_SCENARIO_VACATE, 0x3A024D }, + { Opcode.SMSG_CHAR_FACTION_CHANGE_RESULT, 0x3A024F }, + { Opcode.SMSG_RAID_DIFFICULTY_SET, 0x3A0250 }, + { Opcode.SMSG_XP_GAIN_ENABLED, 0x3A0251 }, + { Opcode.SMSG_RAID_GROUP_ONLY, 0x3A0252 }, + { Opcode.SMSG_INSTANCE_ENCOUNTER_ENGAGE_UNIT, 0x3A0253 }, + { Opcode.SMSG_INSTANCE_ENCOUNTER_DISENGAGE_UNIT, 0x3A0254 }, + { Opcode.SMSG_INSTANCE_ENCOUNTER_CHANGE_PRIORITY, 0x3A0255 }, + { Opcode.SMSG_INSTANCE_ENCOUNTER_TIMER_START, 0x3A0256 }, + { Opcode.SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_START, 0x3A0257 }, + { Opcode.SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_COMPLETE, 0x3A0258 }, + { Opcode.SMSG_INSTANCE_ENCOUNTER_START, 0x3A0259 }, + { Opcode.SMSG_INSTANCE_ENCOUNTER_UPDATE_SUPPRESS_RELEASE, 0x3A025A }, + { Opcode.SMSG_INSTANCE_ENCOUNTER_UPDATE_ALLOW_RELEASE_IN_PROGRESS, 0x3A025B }, + { Opcode.SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_UPDATE, 0x3A025C }, + { Opcode.SMSG_INSTANCE_ENCOUNTER_END, 0x3A025D }, + { Opcode.SMSG_INSTANCE_ENCOUNTER_IN_COMBAT_RESURRECTION, 0x3A025E }, + { Opcode.SMSG_INSTANCE_ENCOUNTER_GAIN_COMBAT_RESURRECTION_CHARGE, 0x3A025F }, + { Opcode.SMSG_INSTANCE_ENCOUNTER_PHASE_SHIFT_CHANGED, 0x3A0260 }, + { Opcode.SMSG_TUTORIAL_FLAGS, 0x3A0261 }, + { Opcode.SMSG_CHARACTER_UPGRADE_STARTED, 0x3A0262 }, + { Opcode.SMSG_CHARACTER_UPGRADE_COMPLETE, 0x3A0263 }, + { Opcode.SMSG_CHARACTER_UPGRADE_ABORTED, 0x3A0264 }, + { Opcode.SMSG_CHARACTER_CHECK_UPGRADE_RESULT, 0x3A0265 }, // NYI + { Opcode.SMSG_CHARACTER_UPGRADE_MANUAL_UNREVOKE_RESULT, 0x3A0266 }, // NYI + { Opcode.SMSG_UPDATE_CHARACTER_FLAGS, 0x3A0267 }, + { Opcode.SMSG_ITEM_COOLDOWN, 0x3A026B }, + { Opcode.SMSG_EMOTE, 0x3A026C }, + { Opcode.SMSG_TRIGGER_CINEMATIC, 0x3A026D }, + { Opcode.SMSG_UNDELETE_CHARACTER_RESPONSE, 0x3A026E }, + { Opcode.SMSG_UNDELETE_COOLDOWN_STATUS_RESPONSE, 0x3A026F }, + { Opcode.SMSG_SET_LOOT_METHOD_FAILED, 0x3A0273 }, // NYI + { Opcode.SMSG_COMMERCE_TOKEN_GET_COUNT_RESPONSE, 0x3A0274 }, + { Opcode.SMSG_COMMERCE_TOKEN_UPDATE, 0x3A0275 }, + { Opcode.SMSG_COMMERCE_TOKEN_GET_MARKET_PRICE_RESPONSE, 0x3A0276 }, + { Opcode.SMSG_AUCTIONABLE_TOKEN_SELL_CONFIRM_REQUIRED, 0x3A0277 }, // NYI + { Opcode.SMSG_AUCTIONABLE_TOKEN_SELL_AT_MARKET_PRICE_RESPONSE, 0x3A0278 }, + { Opcode.SMSG_AUCTIONABLE_TOKEN_AUCTION_SOLD, 0x3A0279 }, // NYI + { Opcode.SMSG_CONSUMABLE_TOKEN_CAN_VETERAN_BUY_RESPONSE, 0x3A027A }, // NYI + { Opcode.SMSG_CONSUMABLE_TOKEN_BUY_CHOICE_REQUIRED, 0x3A027B }, // NYI + { Opcode.SMSG_CONSUMABLE_TOKEN_BUY_AT_MARKET_PRICE_RESPONSE, 0x3A027C }, // NYI + { Opcode.SMSG_GET_REMAINING_GAME_TIME_RESPONSE, 0x3A027D }, // NYI + { Opcode.SMSG_CONSUMABLE_TOKEN_REDEEM_CONFIRM_REQUIRED, 0x3A027E }, // NYI + { Opcode.SMSG_CONSUMABLE_TOKEN_REDEEM_RESPONSE, 0x3A027F }, // NYI + { Opcode.SMSG_COMMERCE_TOKEN_GET_LOG_RESPONSE, 0x3A0280 }, + { Opcode.SMSG_SCENARIO_COMPLETED, 0x3A028F }, + { Opcode.SMSG_GET_VAS_ACCOUNT_CHARACTER_LIST_RESULT, 0x3A0292 }, + { Opcode.SMSG_GET_VAS_TRANSFER_TARGET_REALM_LIST_RESULT, 0x3A0293 }, + { Opcode.SMSG_VAS_PURCHASE_STATE_UPDATE, 0x3A0294 }, + { Opcode.SMSG_VAS_PURCHASE_COMPLETE, 0x3A0295 }, + { Opcode.SMSG_ENUM_VAS_PURCHASE_STATES_RESPONSE, 0x3A0296 }, + { Opcode.SMSG_ALLIED_RACE_DETAILS, 0x3A029D }, + { Opcode.SMSG_COVENANT_PREVIEW_OPEN_NPC, 0x3A02A0 }, + { Opcode.SMSG_SCENARIO_UI_UPDATE, 0x3A02A4 }, // NYI + { Opcode.SMSG_SCENARIO_SHOW_CRITERIA, 0x3A02A5 }, + { Opcode.SMSG_GAME_OBJECT_SET_STATE_LOCAL, 0x3A02A7 }, + { Opcode.SMSG_BATTLENET_RESPONSE, 0x3A02A8 }, + { Opcode.SMSG_BATTLENET_NOTIFICATION, 0x3A02A9 }, + { Opcode.SMSG_BATTLE_NET_CONNECTION_STATUS, 0x3A02AA }, + { Opcode.SMSG_CHANGE_REALM_TICKET_RESPONSE, 0x3A02AB }, + { Opcode.SMSG_FAILED_QUEST_TURN_IN, 0x3A02B4 }, // NYI + { Opcode.SMSG_QUEUE_SUMMARY_UPDATE, 0x3A02B5 }, // NYI + { Opcode.SMSG_INVENTORY_FIXUP_COMPLETE, 0x3A02B6 }, // NYI + { Opcode.SMSG_CONFIRM_PARTY_INVITE, 0x3A02B7 }, // NYI + { Opcode.SMSG_CAN_REDEEM_TOKEN_FOR_BALANCE_RESPONSE, 0x3A02B8 }, // NYI + { Opcode.SMSG_BATTLE_PAY_VALIDATE_PURCHASE_RESPONSE, 0x3A02B9 }, + { Opcode.SMSG_VAS_CHECK_TRANSFER_OK_RESPONSE, 0x3A02BE }, + { Opcode.SMSG_CONTRIBUTION_LAST_UPDATE_RESPONSE, 0x3A02BF }, // NYI + { Opcode.SMSG_GENERATE_SSO_TOKEN_RESPONSE, 0x3A02C0 }, // NYI + { Opcode.SMSG_VOICE_LOGIN_RESPONSE, 0x3A02C1 }, // NYI + { Opcode.SMSG_VOICE_CHANNEL_INFO_RESPONSE, 0x3A02C2 }, // NYI + { Opcode.SMSG_UPDATE_CELESTIAL_BODY, 0x3A02C3 }, // NYI + { Opcode.SMSG_WARDEN3_ENABLED, 0x3A02C4 }, + { Opcode.SMSG_WARDEN3_DISABLED, 0x3A02C5 }, // NYI + { Opcode.SMSG_BATTLE_PAY_START_CHECKOUT, 0x3A02C6 }, + { Opcode.SMSG_UPDATE_BNET_SESSION_KEY, 0x3A02C7 }, + { Opcode.SMSG_INVENTORY_FULL_OVERFLOW, 0x3A02C8 }, + { Opcode.SMSG_WILL_BE_KICKED_FOR_ADDED_SUBSCRIPTION_TIME, 0x3A02C9 }, // NYI + { Opcode.SMSG_UPDATE_GAME_TIME_STATE, 0x3A02CA }, // NYI + { Opcode.SMSG_GAME_OBJECT_BASE, 0x3A02CC }, // NYI + { Opcode.SMSG_LEGACY_LOOT_RULES, 0x3A02CD }, + { Opcode.SMSG_BATCH_PRESENCE_SUBSCRIPTION, 0x3A02D2 }, // NYI + { Opcode.SMSG_MOVEMENT_ENFORCEMENT_ALERT, 0x3A02D3 }, // NYI + { Opcode.SMSG_PREPOPULATE_NAME_CACHE, 0x3A02D6 }, // NYI + { Opcode.SMSG_RETURN_RECRUITING_CLUBS, 0x3A02D9 }, // NYI + { Opcode.SMSG_RETURN_APPLICANT_LIST, 0x3A02DA }, // NYI + { Opcode.SMSG_CLUB_FINDER_RESPONSE_CHARACTER_APPLICATION_LIST, 0x3A02DB }, // NYI + { Opcode.SMSG_CLUB_FINDER_UPDATE_APPLICATIONS, 0x3A02DC }, // NYI + { Opcode.SMSG_CLUB_FINDER_ERROR_MESSAGE, 0x3A02DD }, // NYI + { Opcode.SMSG_CLUB_FINDER_LOOKUP_CLUB_POSTINGS_LIST, 0x3A02DE }, // NYI + { Opcode.SMSG_CLUB_FINDER_RESPONSE_POST_RECRUITMENT_MESSAGE, 0x3A02DF }, // NYI + { Opcode.SMSG_CLUB_FINDER_GET_CLUB_POSTING_IDS_RESPONSE, 0x3A02E0 }, // NYI + { Opcode.SMSG_QUEST_SESSION_RESULT, 0x3A02E6 }, // NYI + { Opcode.SMSG_QUEST_SESSION_READY_CHECK, 0x3A02E7 }, // NYI + { Opcode.SMSG_QUEST_SESSION_READY_CHECK_RESPONSE, 0x3A02E8 }, // NYI + { Opcode.SMSG_AUCTION_LIST_BUCKETS_RESULT, 0x3A02EE }, + { Opcode.SMSG_AUCTION_LIST_ITEMS_RESULT, 0x3A02EF }, + { Opcode.SMSG_AUCTION_LIST_OWNED_ITEMS_RESULT, 0x3A02F1 }, + { Opcode.SMSG_AUCTION_LIST_BIDDED_ITEMS_RESULT, 0x3A02F2 }, + { Opcode.SMSG_AUCTION_GET_COMMODITY_QUOTE_RESULT, 0x3A02F3 }, + { Opcode.SMSG_ACCOUNT_CRITERIA_UPDATE, 0x3A02F4 }, + { Opcode.SMSG_SYNC_WOW_ENTITLEMENTS, 0x3A02F7 }, // NYI + { Opcode.SMSG_WOW_ENTITLEMENT_NOTIFICATION, 0x3A02F8 }, // NYI + { Opcode.SMSG_AUCTION_FAVORITE_LIST, 0x3A02FB }, + { Opcode.SMSG_PARTY_NOTIFY_LFG_LEADER_CHANGE, 0x3A0303 }, + { Opcode.SMSG_AREA_TRIGGER_MESSAGE, 0x3A030C }, + { Opcode.SMSG_VOICE_CHANNEL_STT_TOKEN_RESPONSE, 0x3A030D }, // NYI + { Opcode.SMSG_ACCOUNT_NOTIFICATIONS_RESPONSE, 0x3A030E }, // NYI + { Opcode.SMSG_ACCOUNT_COSMETIC_ADDED, 0x3A030F }, + { Opcode.SMSG_LATENCY_REPORT_PING, 0x3A0310 }, // NYI + { Opcode.SMSG_UPDATE_AADC_STATUS_RESPONSE, 0x3A0312 }, + { Opcode.SMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_VAS_RESPONSE, 0x3A0314 }, + { Opcode.SMSG_NPC_INTERACTION_OPEN_RESULT, 0x3A0315 }, + { Opcode.SMSG_GAME_OBJECT_INTERACTION, 0x3A0316 }, + { Opcode.SMSG_GAME_OBJECT_CLOSE_INTERACTION, 0x3A0317 }, + { Opcode.SMSG_CLUB_FINDER_WHISPER_APPLICANT_RESPONSE, 0x3A0318 }, // NYI + { Opcode.SMSG_LOBBY_MATCHMAKER_LOBBY_ACQUIRED_SERVER, 0x3A0319 }, // NYI + { Opcode.SMSG_LOBBY_MATCHMAKER_PARTY_INFO, 0x3A031A }, // NYI + { Opcode.SMSG_LOBBY_MATCHMAKER_PARTY_INVITE_REJECTED, 0x3A031B }, // NYI + { Opcode.SMSG_LOBBY_MATCHMAKER_RECEIVE_INVITE, 0x3A031C }, // NYI + { Opcode.SMSG_LOBBY_MATCHMAKER_QUEUE_PROPOSED, 0x3A031D }, // NYI + { Opcode.SMSG_LOBBY_MATCHMAKER_QUEUE_RESULT, 0x3A031E }, // NYI + { Opcode.SMSG_SOCIAL_CONTRACT_REQUEST_RESPONSE, 0x3A0320 }, + { Opcode.SMSG_WOW_LABS_NOTIFY_PLAYERS_MATCH_END, 0x3A0325 }, // NYI + { Opcode.SMSG_WOW_LABS_NOTIFY_PLAYERS_MATCH_STATE_CHANGED, 0x3A0326 }, // NYI + { Opcode.SMSG_AUCTION_DISABLE_NEW_POSTINGS, 0x3A032C }, + { Opcode.SMSG_WOW_LABS_SET_PREDICTION_CIRCLE, 0x3A032C }, // NYI + { Opcode.SMSG_ACCOUNT_EXPORT_RESPONSE, 0x3A0331 }, // NYI + { Opcode.SMSG_SPECTATE_PLAYER, 0x3A0333 }, // NYI + { Opcode.SMSG_WOW_LABS_PARTY_ERROR, 0x3A0333 }, // NYI + { Opcode.SMSG_SPECTATE_END, 0x3A0334 }, // NYI + { Opcode.SMSG_NEW_DATA_BUILD, 0x3A0335 }, // NYI + { Opcode.SMSG_GET_REALM_HIDDEN_RESULT, 0x3A0336 }, // NYI + { Opcode.SMSG_HARDCORE_DEATH_ALERT, 0x3A033E }, // NYI + { Opcode.SMSG_ACCOUNT_CHARACTER_CURRENCY_LISTS, 0x3A0340 }, // NYI + { Opcode.SMSG_CURRENCY_TRANSFER_LOG, 0x3A0342 }, // NYI + { Opcode.SMSG_ACCOUNT_CONVERSION_STATE_UPDATE, 0x3A0345 }, // NYI + { Opcode.SMSG_ACCOUNT_ITEM_COLLECTION_DATA, 0x3A0346 }, + + { Opcode.SMSG_CHAT_IGNORED_ACCOUNT_MUTED, 0x3E0000 }, + { Opcode.SMSG_CHAT, 0x3E0001 }, + { Opcode.SMSG_WHO, 0x3E0002 }, + { Opcode.SMSG_MOTD, 0x3E0003 }, + { Opcode.SMSG_CHAT_PLAYER_AMBIGUOUS, 0x3E0004 }, + { Opcode.SMSG_EXPECTED_SPAM_RECORDS, 0x3E0005 }, // NYI + { Opcode.SMSG_CHAT_NOT_IN_PARTY, 0x3E0006 }, + { Opcode.SMSG_CHAT_RESTRICTED, 0x3E0007 }, + { Opcode.SMSG_CAUTIONARY_CHAT_MESSAGE, 0x3E0008 }, // NYI + { Opcode.SMSG_CAUTIONARY_CHANNEL_MESSAGE, 0x3E0009 }, // NYI + { Opcode.SMSG_RAID_INSTANCE_MESSAGE, 0x3E000A }, + { Opcode.SMSG_ZONE_UNDER_ATTACK, 0x3E000B }, + { Opcode.SMSG_DEFENSE_MESSAGE, 0x3E000C }, + { Opcode.SMSG_CHAT_PLAYER_NOTFOUND, 0x3E000D }, + { Opcode.SMSG_CHAT_AUTO_RESPONDED, 0x3E000E }, // NYI + { Opcode.SMSG_USERLIST_ADD, 0x3E000F }, + { Opcode.SMSG_USERLIST_REMOVE, 0x3E0010 }, + { Opcode.SMSG_USERLIST_UPDATE, 0x3E0011 }, + { Opcode.SMSG_BROADCAST_ACHIEVEMENT, 0x3E0012 }, + { Opcode.SMSG_BROADCAST_LEVELUP, 0x3E0013 }, // NYI + { Opcode.SMSG_CHAT_DOWN, 0x3E0014 }, // NYI + { Opcode.SMSG_CHAT_IS_DOWN, 0x3E0015 }, // NYI + { Opcode.SMSG_CHAT_RECONNECT, 0x3E0016 }, // NYI + { Opcode.SMSG_CHANNEL_NOTIFY, 0x3E0017 }, + { Opcode.SMSG_CHANNEL_NOTIFY_NPE_JOINED_BATCH, 0x3E0018 }, // NYI + { Opcode.SMSG_CHANNEL_NOTIFY_JOINED, 0x3E0019 }, + { Opcode.SMSG_CHANNEL_NOTIFY_LEFT, 0x3E001A }, + { Opcode.SMSG_CHANNEL_LIST, 0x3E001B }, + { Opcode.SMSG_CHAT_SERVER_MESSAGE, 0x3E001C }, + { Opcode.SMSG_CHAT_REGIONAL_SERVICE_STATUS, 0x3E001D }, // NYI + { Opcode.SMSG_CHAT_CAN_LOCAL_WHISPER_TARGET_RESPONSE, 0x3E0022 }, + { Opcode.SMSG_CHAT_NOT_IN_GUILD, 0x3E0023 }, // NYI + + { Opcode.SMSG_DB_REPLY, 0x3F0000 }, + { Opcode.SMSG_AVAILABLE_HOTFIXES, 0x3F0001 }, + { Opcode.SMSG_HOTFIX_MESSAGE, 0x3F0002 }, + { Opcode.SMSG_HOTFIX_CONNECT, 0x3F0003 }, + { Opcode.SMSG_REALM_QUERY_RESPONSE, 0x3F0005 }, + { Opcode.SMSG_QUERY_CREATURE_RESPONSE, 0x3F0006 }, + { Opcode.SMSG_QUERY_GAME_OBJECT_RESPONSE, 0x3F0007 }, + { Opcode.SMSG_QUERY_NPC_TEXT_RESPONSE, 0x3F0008 }, + { Opcode.SMSG_QUERY_PAGE_TEXT_RESPONSE, 0x3F0009 }, + { Opcode.SMSG_INVALIDATE_PAGE_TEXT, 0x3F000A }, // NYI + { Opcode.SMSG_QUERY_PET_NAME_RESPONSE, 0x3F000B }, + { Opcode.SMSG_QUERY_BATTLE_PET_NAME_RESPONSE, 0x3F000C }, + { Opcode.SMSG_QUERY_PETITION_RESPONSE, 0x3F000D }, + { Opcode.SMSG_CACHE_VERSION, 0x3F000E }, + { Opcode.SMSG_CACHE_INFO, 0x3F000F }, + { Opcode.SMSG_QUERY_ITEM_TEXT_RESPONSE, 0x3F0010 }, + { Opcode.SMSG_TREASURE_PICKER_RESPONSE, 0x3F0011 }, + { Opcode.SMSG_QUERY_ARENA_TEAM_RESPONSE, 0x3F0012 }, // NYI + + { Opcode.SMSG_BATTLEFIELD_STATUS_NEED_CONFIRMATION, 0x400000 }, + { Opcode.SMSG_BATTLEFIELD_STATUS_ACTIVE, 0x400001 }, + { Opcode.SMSG_BATTLEFIELD_STATUS_QUEUED, 0x400002 }, + { Opcode.SMSG_BATTLEFIELD_STATUS_NONE, 0x400003 }, + { Opcode.SMSG_BATTLEFIELD_STATUS_FAILED, 0x400004 }, + { Opcode.SMSG_BATTLEFIELD_LIST, 0x400005 }, + { Opcode.SMSG_BATTLEGROUND_PLAYER_POSITIONS, 0x400006 }, + { Opcode.SMSG_UPDATE_CAPTURE_POINT, 0x400007 }, + { Opcode.SMSG_CAPTURE_POINT_REMOVED, 0x400008 }, + { Opcode.SMSG_BATTLEGROUND_PLAYER_JOINED, 0x400009 }, + { Opcode.SMSG_BATTLEGROUND_PLAYER_LEFT, 0x40000A }, + { Opcode.SMSG_BATTLEFIELD_PORT_DENIED, 0x40000B }, + { Opcode.SMSG_BATTLEGROUND_INFO_THROTTLED, 0x40000C }, + { Opcode.SMSG_BATTLEFIELD_STATUS_WAIT_FOR_GROUPS, 0x40000D }, // NYI + { Opcode.SMSG_BATTLEFIELD_STATUS_GROUP_PROPOSAL_FAILED, 0x40000E }, // NYI + { Opcode.SMSG_RATED_PVP_INFO, 0x40000F }, + { Opcode.SMSG_PVP_MATCH_STATISTICS, 0x400010 }, + { Opcode.SMSG_INSPECT_HONOR_STATS, 0x400011 }, + { Opcode.SMSG_PVP_LOG_DATA, 0x400012 }, + { Opcode.SMSG_WARGAME_REQUEST_SUCCESSFULLY_SENT_TO_OPPONENT, 0x400013 }, // NYI + { Opcode.SMSG_WARGAME_REQUEST_OPPONENT_RESPONSE, 0x400015 }, // NYI + { Opcode.SMSG_PVP_OPTIONS_ENABLED, 0x400016 }, + { Opcode.SMSG_REQUEST_PVP_REWARDS_RESPONSE, 0x400017 }, + { Opcode.SMSG_REQUEST_PVP_BRAWL_INFO_RESPONSE, 0x400018 }, // NYI + { Opcode.SMSG_REQUEST_SCHEDULED_PVP_INFO_RESPONSE, 0x400019 }, + { Opcode.SMSG_BREAK_TARGET, 0x40001A }, + { Opcode.SMSG_ATTACK_START, 0x40001B }, + { Opcode.SMSG_ATTACK_STOP, 0x40001C }, + { Opcode.SMSG_COMBAT_EVENT_FAILED, 0x40001D }, + { Opcode.SMSG_DUEL_REQUESTED, 0x40001E }, + { Opcode.SMSG_DUEL_ARRANGED, 0x40001F }, // NYI + { Opcode.SMSG_DUEL_OUT_OF_BOUNDS, 0x400020 }, + { Opcode.SMSG_DUEL_IN_BOUNDS, 0x400021 }, + { Opcode.SMSG_DUEL_COUNTDOWN, 0x400022 }, + { Opcode.SMSG_DUEL_COMPLETE, 0x400023 }, + { Opcode.SMSG_DUEL_WINNER, 0x400024 }, + { Opcode.SMSG_CAN_DUEL_RESULT, 0x400025 }, + { Opcode.SMSG_CLEAR_TARGET, 0x400026 }, + { Opcode.SMSG_RESET_RANGED_COMBAT_TIMER, 0x400027 }, + { Opcode.SMSG_PVP_CREDIT, 0x400028 }, + { Opcode.SMSG_CANCEL_COMBAT, 0x400029 }, + { Opcode.SMSG_ATTACK_SWING_ERROR, 0x40002A }, + { Opcode.SMSG_ATTACK_SWING_LANDED_LOG, 0x40002B }, + { Opcode.SMSG_BATTLEGROUND_POINTS, 0x40002C }, + { Opcode.SMSG_BATTLEGROUND_INIT, 0x40002D }, + { Opcode.SMSG_MAP_OBJECTIVES_INIT, 0x40002E }, + { Opcode.SMSG_BOSS_KILL, 0x40002F }, + { Opcode.SMSG_ATTACKER_STATE_UPDATE, 0x400030 }, + { Opcode.SMSG_PVP_MATCH_START, 0x400031 }, // NYI + { Opcode.SMSG_PVP_MATCH_SET_STATE, 0x400032 }, + { Opcode.SMSG_PVP_MATCH_COMPLETE, 0x400033 }, // NYI + { Opcode.SMSG_PVP_MATCH_INITIALIZE, 0x400034 }, + + { Opcode.SMSG_AUTH_CHALLENGE, 0x410000 }, + { Opcode.SMSG_ENTER_ENCRYPTED_MODE, 0x410001 }, + { Opcode.SMSG_SUSPEND_COMMS, 0x410002 }, + { Opcode.SMSG_RESUME_COMMS, 0x410003 }, + { Opcode.SMSG_DROP_NEW_CONNECTION, 0x410004 }, + { Opcode.SMSG_CONNECT_TO, 0x410005 }, + { Opcode.SMSG_PONG, 0x410006 }, + { Opcode.SMSG_RESET_COMPRESSION_CONTEXT, 0x410007 }, // NYI + { Opcode.SMSG_MULTIPLE_PACKETS, 0x410009 }, + { Opcode.SMSG_COMPRESSED_PACKET, 0x41000A }, // NYI + + { Opcode.SMSG_ALL_GUILD_ACHIEVEMENTS, 0x460000 }, + { Opcode.SMSG_GUILD_SEND_RANK_CHANGE, 0x460001 }, + { Opcode.SMSG_GUILD_COMMAND_RESULT, 0x460002 }, + { Opcode.SMSG_GUILD_ROSTER, 0x460003 }, + { Opcode.SMSG_GUILD_HARDCORE_MEMBER_DEATH, 0x460004 }, // NYI + { Opcode.SMSG_GUILD_MEMBER_RECIPES, 0x460005 }, // NYI + { Opcode.SMSG_GUILD_KNOWN_RECIPES, 0x460006 }, // NYI + { Opcode.SMSG_GUILD_MEMBERS_WITH_RECIPE, 0x460007 }, // NYI + { Opcode.SMSG_GUILD_REWARD_LIST, 0x460008 }, + { Opcode.SMSG_GUILD_NEWS, 0x460009 }, + { Opcode.SMSG_GUILD_NEWS_DELETED, 0x46000A }, // NYI + { Opcode.SMSG_GUILD_CRITERIA_UPDATE, 0x46000B }, + { Opcode.SMSG_GUILD_ACHIEVEMENT_EARNED, 0x46000C }, + { Opcode.SMSG_GUILD_ACHIEVEMENT_DELETED, 0x46000D }, + { Opcode.SMSG_GUILD_CRITERIA_DELETED, 0x46000E }, + { Opcode.SMSG_GUILD_ACHIEVEMENT_MEMBERS, 0x46000F }, + { Opcode.SMSG_GUILD_RANKS, 0x460010 }, + { Opcode.SMSG_GUILD_MEMBER_UPDATE_NOTE, 0x460011 }, + { Opcode.SMSG_GUILD_INVITE, 0x460012 }, + { Opcode.SMSG_GUILD_PARTY_STATE, 0x460013 }, + { Opcode.SMSG_GUILD_REPUTATION_REACTION_CHANGED, 0x460014 }, // NYI + { Opcode.SMSG_GUILD_CHALLENGE_UPDATE, 0x46001A }, + { Opcode.SMSG_GUILD_CHALLENGE_COMPLETED, 0x46001B }, // NYI + { Opcode.SMSG_GUILD_ITEM_LOOTED_NOTIFY, 0x46001C }, // NYI + { Opcode.SMSG_GUILD_RESET, 0x460020 }, // NYI + { Opcode.SMSG_GUILD_MOVE_STARTING, 0x460021 }, // NYI + { Opcode.SMSG_GUILD_MOVED, 0x460022 }, // NYI + { Opcode.SMSG_GUILD_NAME_CHANGED, 0x460023 }, + { Opcode.SMSG_GUILD_FLAGGED_FOR_RENAME, 0x460024 }, + { Opcode.SMSG_GUILD_CHANGE_NAME_RESULT, 0x460025 }, // NYI + { Opcode.SMSG_GUILD_BANK_QUERY_RESULTS, 0x460026 }, + { Opcode.SMSG_GUILD_BANK_LOG_QUERY_RESULTS, 0x460027 }, + { Opcode.SMSG_GUILD_BANK_REMAINING_WITHDRAW_MONEY, 0x460028 }, + { Opcode.SMSG_GUILD_PERMISSIONS_QUERY_RESULTS, 0x460029 }, + { Opcode.SMSG_GUILD_EVENT_LOG_QUERY_RESULTS, 0x46002A }, + { Opcode.SMSG_GUILD_BANK_TEXT_QUERY_RESULT, 0x46002B }, + { Opcode.SMSG_GUILD_MEMBER_DAILY_RESET, 0x46002C }, + { Opcode.SMSG_QUERY_GUILD_INFO_RESPONSE, 0x46002D }, + { Opcode.SMSG_QUERY_REALM_GUILD_MASTER_INFO_RESPONSE, 0x46002E }, // NYI + { Opcode.SMSG_QUERY_GUILD_FOLLOW_INFO_RESPONSE, 0x46002F }, // NYI + { Opcode.SMSG_GUILD_INVITE_DECLINED, 0x460030 }, // NYI + { Opcode.SMSG_GUILD_INVITE_EXPIRED, 0x460031 }, // NYI + { Opcode.SMSG_GUILD_EVENT_PLAYER_JOINED, 0x460032 }, + { Opcode.SMSG_GUILD_EVENT_PLAYER_LEFT, 0x460033 }, + { Opcode.SMSG_GUILD_EVENT_NEW_LEADER, 0x460034 }, + { Opcode.SMSG_GUILD_EVENT_DISBANDED, 0x460035 }, + { Opcode.SMSG_GUILD_EVENT_MOTD, 0x460036 }, + { Opcode.SMSG_GUILD_EVENT_PRESENCE_CHANGE, 0x460037 }, + { Opcode.SMSG_GUILD_EVENT_STATUS_CHANGE, 0x460038 }, + { Opcode.SMSG_GUILD_EVENT_RANKS_UPDATED, 0x460039 }, + { Opcode.SMSG_GUILD_EVENT_RANK_CHANGED, 0x46003A }, + { Opcode.SMSG_GUILD_EVENT_TAB_ADDED, 0x46003B }, + { Opcode.SMSG_GUILD_EVENT_TAB_DELETED, 0x46003C }, // NYI + { Opcode.SMSG_GUILD_EVENT_TAB_MODIFIED, 0x46003D }, + { Opcode.SMSG_GUILD_EVENT_TAB_TEXT_CHANGED, 0x46003E }, + { Opcode.SMSG_GUILD_EVENT_BANK_MONEY_CHANGED, 0x46003F }, + { Opcode.SMSG_GUILD_EVENT_BANK_CONTENTS_CHANGED, 0x460040 }, + { Opcode.SMSG_PLAYER_SAVE_GUILD_EMBLEM, 0x460041 }, + { Opcode.SMSG_PETITION_RENAME_GUILD_RESPONSE, 0x460042 }, + { Opcode.SMSG_GUILD_RENAME_STATUS_UPDATE, 0x460043 }, // NYI + { Opcode.SMSG_GUILD_RENAME_NAME_CHECK, 0x460044 }, // NYI + { Opcode.SMSG_GUILD_RENAME_REQUESTED_RESULT, 0x460045 }, // NYI + { Opcode.SMSG_GUILD_RENAME_REFUND_RESULT, 0x460046 }, // NYI + + { Opcode.SMSG_LFG_JOIN_RESULT, 0x480000 }, + { Opcode.SMSG_LFG_LIST_JOIN_RESULT, 0x480001 }, + { Opcode.SMSG_LFG_LIST_SEARCH_RESULTS, 0x480002 }, // NYI + { Opcode.SMSG_LFG_LIST_SEARCH_STATUS, 0x480003 }, + { Opcode.SMSG_LFG_QUEUE_STATUS, 0x480004 }, + { Opcode.SMSG_LFG_ROLE_CHECK_UPDATE, 0x480005 }, + { Opcode.SMSG_LFG_READY_CHECK_UPDATE, 0x480006 }, // NYI + { Opcode.SMSG_LFG_UPDATE_STATUS, 0x480008 }, + { Opcode.SMSG_LFG_INSTANCE_SHUTDOWN_COUNTDOWN, 0x480009 }, + { Opcode.SMSG_LFG_LIST_UPDATE_STATUS, 0x48000A }, // NYI + { Opcode.SMSG_LFG_LIST_UPDATE_EXPIRATION, 0x48000B }, + { Opcode.SMSG_LFG_LIST_APPLICATION_STATUS_UPDATE, 0x48000C }, // NYI + { Opcode.SMSG_LFG_LIST_APPLY_TO_GROUP_RESULT, 0x48000D }, // NYI + { Opcode.SMSG_LFG_LIST_UPDATE_BLACKLIST, 0x48000E }, + { Opcode.SMSG_LFG_LIST_APPLICANT_LIST_UPDATE, 0x48000F }, // NYI + { Opcode.SMSG_LFG_LIST_SEARCH_RESULTS_UPDATE, 0x480010 }, // NYI + { Opcode.SMSG_LFG_PROPOSAL_UPDATE, 0x480011 }, + { Opcode.SMSG_SET_DF_FAST_LAUNCH_RESULT, 0x480012 }, // NYI + { Opcode.SMSG_LFG_SLOT_INVALID, 0x480014 }, // NYI + { Opcode.SMSG_OPEN_LFG_DUNGEON_FINDER, 0x480015 }, + { Opcode.SMSG_LFG_TELEPORT_DENIED, 0x480016 }, + { Opcode.SMSG_LFG_DISABLED, 0x480017 }, + { Opcode.SMSG_LFG_OFFER_CONTINUE, 0x480018 }, + { Opcode.SMSG_LFG_BOOT_PLAYER, 0x480019 }, + { Opcode.SMSG_LFG_PARTY_INFO, 0x48001A }, + { Opcode.SMSG_LFG_PLAYER_INFO, 0x48001B }, + { Opcode.SMSG_LFG_PLAYER_REWARD, 0x48001C }, + { Opcode.SMSG_ROLE_CHOSEN, 0x48001D }, + { Opcode.SMSG_LFG_READY_CHECK_RESULT, 0x48001E }, // NYI + { Opcode.SMSG_LFG_EXPAND_SEARCH_PROMPT, 0x48001F }, // NYI + { Opcode.SMSG_LFG_JOIN_LOBBY_MATCHMAKER_QUEUE, 0x480020 }, // NYI + + { Opcode.SMSG_UPDATE_OBJECT, 0x4A0000 }, + { Opcode.SMSG_UPDATE_DAILY_MISSION_COUNTER, 0x4A0021 }, + { Opcode.SMSG_DELETE_EXPIRED_MISSIONS_RESULT, 0x4A0022 }, + { Opcode.SMSG_UPDATE_CRAFTING_NPC_RECIPES, 0x4A0038 }, + { Opcode.SMSG_SET_SHIPMENT_READY_RESPONSE, 0x4A003A }, + { Opcode.SMSG_SHIPMENT_FACTION_UPDATE_RESULT, 0x4A003B }, + + { Opcode.SMSG_TIME_SYNC_REQUEST, 0x4C0000 }, + { Opcode.SMSG_TIME_ADJUSTMENT, 0x4C0001 }, // NYI + { Opcode.SMSG_ON_MONSTER_MOVE, 0x4C0002 }, + { Opcode.SMSG_MOVE_SET_ACTIVE_MOVER, 0x4C0003 }, + { Opcode.SMSG_MOVE_UPDATE_RUN_SPEED, 0x4C0004 }, + { Opcode.SMSG_MOVE_UPDATE_RUN_BACK_SPEED, 0x4C0005 }, + { Opcode.SMSG_MOVE_UPDATE_WALK_SPEED, 0x4C0006 }, + { Opcode.SMSG_MOVE_UPDATE_SWIM_SPEED, 0x4C0007 }, + { Opcode.SMSG_MOVE_UPDATE_SWIM_BACK_SPEED, 0x4C0008 }, + { Opcode.SMSG_MOVE_UPDATE_FLIGHT_SPEED, 0x4C0009 }, + { Opcode.SMSG_MOVE_UPDATE_FLIGHT_BACK_SPEED, 0x4C000A }, + { Opcode.SMSG_MOVE_UPDATE_TURN_RATE, 0x4C000B }, + { Opcode.SMSG_MOVE_UPDATE_PITCH_RATE, 0x4C000C }, + { Opcode.SMSG_MOVE_UPDATE_COLLISION_HEIGHT, 0x4C000D }, + { Opcode.SMSG_MOVE_UPDATE, 0x4C000E }, + { Opcode.SMSG_MOVE_UPDATE_TELEPORT, 0x4C000F }, + { Opcode.SMSG_MOVE_UPDATE_KNOCK_BACK, 0x4C0010 }, + { Opcode.SMSG_MOVE_UPDATE_MOD_MOVEMENT_FORCE_MAGNITUDE, 0x4C0011 }, + { Opcode.SMSG_MOVE_UPDATE_APPLY_MOVEMENT_FORCE, 0x4C0012 }, + { Opcode.SMSG_MOVE_UPDATE_REMOVE_MOVEMENT_FORCE, 0x4C0013 }, + { Opcode.SMSG_MOVE_SET_MOD_MOVEMENT_FORCE_MAGNITUDE, 0x4C0014 }, + { Opcode.SMSG_MOVE_SPLINE_SET_RUN_SPEED, 0x4C0015 }, + { Opcode.SMSG_MOVE_SPLINE_SET_RUN_BACK_SPEED, 0x4C0016 }, + { Opcode.SMSG_MOVE_SPLINE_SET_SWIM_SPEED, 0x4C0017 }, + { Opcode.SMSG_MOVE_SPLINE_SET_SWIM_BACK_SPEED, 0x4C0018 }, + { Opcode.SMSG_MOVE_SPLINE_SET_FLIGHT_SPEED, 0x4C0019 }, + { Opcode.SMSG_MOVE_SPLINE_SET_FLIGHT_BACK_SPEED, 0x4C001A }, + { Opcode.SMSG_MOVE_SPLINE_SET_WALK_SPEED, 0x4C001B }, + { Opcode.SMSG_MOVE_SPLINE_SET_TURN_RATE, 0x4C001C }, + { Opcode.SMSG_MOVE_SPLINE_SET_PITCH_RATE, 0x4C001D }, + { Opcode.SMSG_MOVE_SET_RUN_SPEED, 0x4C001E }, + { Opcode.SMSG_MOVE_SET_RUN_BACK_SPEED, 0x4C001F }, + { Opcode.SMSG_MOVE_SET_SWIM_SPEED, 0x4C0020 }, + { Opcode.SMSG_MOVE_SET_SWIM_BACK_SPEED, 0x4C0021 }, + { Opcode.SMSG_MOVE_SET_FLIGHT_SPEED, 0x4C0022 }, + { Opcode.SMSG_MOVE_SET_FLIGHT_BACK_SPEED, 0x4C0023 }, + { Opcode.SMSG_MOVE_SET_WALK_SPEED, 0x4C0024 }, + { Opcode.SMSG_MOVE_SET_TURN_RATE, 0x4C0025 }, + { Opcode.SMSG_MOVE_SET_PITCH_RATE, 0x4C0026 }, + { Opcode.SMSG_MOVE_ROOT, 0x4C0027 }, + { Opcode.SMSG_MOVE_UNROOT, 0x4C0028 }, + { Opcode.SMSG_MOVE_SET_WATER_WALK, 0x4C0029 }, + { Opcode.SMSG_MOVE_ENABLE_DOUBLE_JUMP, 0x4C002A }, + { Opcode.SMSG_MOVE_DISABLE_DOUBLE_JUMP, 0x4C002B }, + { Opcode.SMSG_MOVE_SET_LAND_WALK, 0x4C002C }, + { Opcode.SMSG_MOVE_SET_FEATHER_FALL, 0x4C002D }, + { Opcode.SMSG_MOVE_SET_NORMAL_FALL, 0x4C002E }, + { Opcode.SMSG_MOVE_SET_HOVERING, 0x4C002F }, + { Opcode.SMSG_MOVE_UNSET_HOVERING, 0x4C0030 }, + { Opcode.SMSG_MOVE_KNOCK_BACK, 0x4C0031 }, + { Opcode.SMSG_MOVE_TELEPORT, 0x4C0032 }, + { Opcode.SMSG_MOVE_SET_CAN_FLY, 0x4C0033 }, + { Opcode.SMSG_MOVE_UNSET_CAN_FLY, 0x4C0034 }, + { Opcode.SMSG_MOVE_SET_CAN_TURN_WHILE_FALLING, 0x4C0037 }, + { Opcode.SMSG_MOVE_UNSET_CAN_TURN_WHILE_FALLING, 0x4C0038 }, + { Opcode.SMSG_MOVE_SET_IGNORE_MOVEMENT_FORCES, 0x4C0039 }, + { Opcode.SMSG_MOVE_UNSET_IGNORE_MOVEMENT_FORCES, 0x4C003A }, + { Opcode.SMSG_MOVE_ENABLE_TRANSITION_BETWEEN_SWIM_AND_FLY, 0x4C003B }, + { Opcode.SMSG_MOVE_DISABLE_TRANSITION_BETWEEN_SWIM_AND_FLY, 0x4C003C }, + { Opcode.SMSG_MOVE_DISABLE_GRAVITY, 0x4C003D }, + { Opcode.SMSG_MOVE_ENABLE_GRAVITY, 0x4C003E }, + { Opcode.SMSG_MOVE_DISABLE_INERTIA, 0x4C003F }, + { Opcode.SMSG_MOVE_ENABLE_INERTIA, 0x4C0040 }, + { Opcode.SMSG_MOVE_DISABLE_COLLISION, 0x4C0041 }, + { Opcode.SMSG_MOVE_ENABLE_COLLISION, 0x4C0042 }, + { Opcode.SMSG_MOVE_SET_COLLISION_HEIGHT, 0x4C0043 }, + { Opcode.SMSG_MOVE_SET_VEHICLE_REC_ID, 0x4C0044 }, + { Opcode.SMSG_MOVE_APPLY_MOVEMENT_FORCE, 0x4C0045 }, + { Opcode.SMSG_MOVE_REMOVE_MOVEMENT_FORCE, 0x4C0046 }, + { Opcode.SMSG_MOVE_SET_COMPOUND_STATE, 0x4C0047 }, + { Opcode.SMSG_MOVE_SKIP_TIME, 0x4C0048 }, + { Opcode.SMSG_MOVE_SPLINE_ROOT, 0x4C0049 }, + { Opcode.SMSG_MOVE_SPLINE_UNROOT, 0x4C004A }, + { Opcode.SMSG_MOVE_SPLINE_DISABLE_GRAVITY, 0x4C004B }, + { Opcode.SMSG_MOVE_SPLINE_ENABLE_GRAVITY, 0x4C004C }, + { Opcode.SMSG_MOVE_SPLINE_DISABLE_COLLISION, 0x4C004D }, + { Opcode.SMSG_MOVE_SPLINE_ENABLE_COLLISION, 0x4C004E }, + { Opcode.SMSG_MOVE_SPLINE_SET_FEATHER_FALL, 0x4C004F }, + { Opcode.SMSG_MOVE_SPLINE_SET_NORMAL_FALL, 0x4C0050 }, + { Opcode.SMSG_MOVE_SPLINE_SET_HOVER, 0x4C0051 }, + { Opcode.SMSG_MOVE_SPLINE_UNSET_HOVER, 0x4C0052 }, + { Opcode.SMSG_MOVE_SPLINE_SET_WATER_WALK, 0x4C0053 }, + { Opcode.SMSG_MOVE_SPLINE_SET_LAND_WALK, 0x4C0054 }, + { Opcode.SMSG_MOVE_SPLINE_START_SWIM, 0x4C0055 }, + { Opcode.SMSG_MOVE_SPLINE_STOP_SWIM, 0x4C0056 }, + { Opcode.SMSG_MOVE_SPLINE_SET_RUN_MODE, 0x4C0057 }, + { Opcode.SMSG_MOVE_SPLINE_SET_WALK_MODE, 0x4C0058 }, + { Opcode.SMSG_MOVE_SPLINE_SET_FLYING, 0x4C0059 }, + { Opcode.SMSG_MOVE_SPLINE_UNSET_FLYING, 0x4C005A }, + { Opcode.SMSG_FLIGHT_SPLINE_SYNC, 0x4C005B }, + { Opcode.SMSG_MOVE_APPLY_INERTIA, 0x4C005E }, + { Opcode.SMSG_MOVE_REMOVE_INERTIA, 0x4C005F }, + { Opcode.SMSG_MOVE_UPDATE_APPLY_INERTIA, 0x4C0060 }, + { Opcode.SMSG_MOVE_UPDATE_REMOVE_INERTIA, 0x4C0061 }, + { Opcode.SMSG_MOVE_ADD_IMPULSE, 0x4C0062 }, // NYI + { Opcode.SMSG_MOVE_UPDATE_ADD_IMPULSE, 0x4C0063 }, // NYI + { Opcode.SMSG_MOVE_SET_CAN_ADV_FLY, 0x4C0064 }, + { Opcode.SMSG_MOVE_UNSET_CAN_ADV_FLY, 0x4C0065 }, + { Opcode.SMSG_MOVE_SET_ADV_FLYING_AIR_FRICTION, 0x4C0066 }, + { Opcode.SMSG_MOVE_SET_ADV_FLYING_MAX_VEL, 0x4C0067 }, + { Opcode.SMSG_MOVE_SET_ADV_FLYING_LIFT_COEFFICIENT, 0x4C0068 }, + { Opcode.SMSG_MOVE_SET_ADV_FLYING_DOUBLE_JUMP_VEL_MOD, 0x4C0069 }, + { Opcode.SMSG_MOVE_SET_ADV_FLYING_GLIDE_START_MIN_HEIGHT, 0x4C006A }, + { Opcode.SMSG_MOVE_SET_ADV_FLYING_ADD_IMPULSE_MAX_SPEED, 0x4C006B }, + { Opcode.SMSG_MOVE_SET_ADV_FLYING_BANKING_RATE, 0x4C006C }, + { Opcode.SMSG_MOVE_SET_ADV_FLYING_PITCHING_RATE_DOWN, 0x4C006D }, + { Opcode.SMSG_MOVE_SET_ADV_FLYING_PITCHING_RATE_UP, 0x4C006E }, + { Opcode.SMSG_MOVE_SET_ADV_FLYING_TURN_VELOCITY_THRESHOLD, 0x4C006F }, + { Opcode.SMSG_MOVE_SET_ADV_FLYING_SURFACE_FRICTION, 0x4C0070 }, + { Opcode.SMSG_MOVE_SET_ADV_FLYING_OVER_MAX_DECELERATION, 0x4C0071 }, + { Opcode.SMSG_MOVE_SET_ADV_FLYING_LAUNCH_SPEED_COEFFICIENT, 0x4C0072 }, + { Opcode.SMSG_MOVE_ENABLE_FULL_SPEED_TURNING, 0x4C0074 }, // NYI + { Opcode.SMSG_MOVE_DISABLE_FULL_SPEED_TURNING, 0x4C0075 }, // NYI + { Opcode.SMSG_MOVE_SET_CAN_DRIVE, 0x4C0076 }, + { Opcode.SMSG_MOVE_UNSET_CAN_DRIVE, 0x4C0077 }, + + { Opcode.SMSG_PLAYER_BOUND, 0x4E0000 }, + { Opcode.SMSG_FAILED_PLAYER_CONDITION, 0x4E0002 }, + { Opcode.SMSG_GM_REQUEST_PLAYER_INFO, 0x4E0003 }, // NYI + { Opcode.SMSG_DISPLAY_PLAYER_CHOICE, 0x4E0004 }, + { Opcode.SMSG_PLAYER_CHOICE_DISPLAY_ERROR, 0x4E0005 }, // NYI + { Opcode.SMSG_PLAYER_CHOICE_CLEAR, 0x4E0006 }, + { Opcode.SMSG_INVALIDATE_PLAYER, 0x4E0007 }, + { Opcode.SMSG_REPORT_PVP_PLAYER_AFK_RESULT, 0x4E0009 }, + { Opcode.SMSG_QUERY_PLAYER_NAME_BY_COMMUNITY_ID_RESPONSE, 0x4E000A }, + { Opcode.SMSG_SET_PLAYER_DECLINED_NAMES_RESULT, 0x4E000B }, + { Opcode.SMSG_CHANGE_PLAYER_DIFFICULTY_RESULT, 0x4E000C }, + { Opcode.SMSG_GM_PLAYER_INFO, 0x4E000D }, // NYI + { Opcode.SMSG_PLAYER_SKINNED, 0x4E000E }, + { Opcode.SMSG_VIGNETTE_UPDATE, 0x4E0010 }, + { Opcode.SMSG_PLAYER_IS_ADVENTURE_MAP_POI_VALID, 0x4E0011 }, + { Opcode.SMSG_PLAYER_CONDITION_RESULT, 0x4E0012 }, // NYI + { Opcode.SMSG_PLAYER_TUTORIAL_UNHIGHLIGHT_SPELL, 0x4E0014 }, // NYI + { Opcode.SMSG_PLAYER_TUTORIAL_HIGHLIGHT_SPELL, 0x4E0015 }, // NYI + { Opcode.SMSG_PLAYER_OPEN_SUBSCRIPTION_INTERSTITIAL, 0x4E0016 }, // NYI + { Opcode.SMSG_WORLD_QUEST_UPDATE_RESPONSE, 0x4E0017 }, + { Opcode.SMSG_AREA_POI_UPDATE_RESPONSE, 0x4E0018 }, + { Opcode.SMSG_SCHEDULED_AREA_POI_UPDATE_RESPONSE, 0x4E0019 }, // NYI + { Opcode.SMSG_PLAYER_AZERITE_ITEM_GAINS, 0x4E001E }, + { Opcode.SMSG_PLAYER_AZERITE_ITEM_EQUIPPED_STATUS_CHANGED, 0x4E001F }, + { Opcode.SMSG_ACTIVATE_ESSENCE_FAILED, 0x4E0020 }, // NYI + { Opcode.SMSG_PLAYER_BONUS_ROLL_FAILED, 0x4E0021 }, // NYI + { Opcode.SMSG_ACTIVATE_SOULBIND_FAILED, 0x4E0022 }, // NYI + { Opcode.SMSG_CHECK_ABANDON_NPE, 0x4E0023 }, // NYI + { Opcode.SMSG_PLAYER_SHOW_UI_EVENT_TOAST, 0x4E0024 }, // NYI + { Opcode.SMSG_QUERY_PLAYER_NAMES_RESPONSE, 0x4E0026 }, + { Opcode.SMSG_PLAYER_BATTLEFIELD_AUTO_QUEUE, 0x4E0027 }, // NYI + { Opcode.SMSG_PLAYER_WORLD_PVP_QUEUE, 0x4E0028 }, // NYI + { Opcode.SMSG_PLAYER_SHOW_GENERIC_WIDGET_DISPLAY, 0x4E0029 }, // NYI + { Opcode.SMSG_PLAYER_SHOW_PARTY_POSE_UI, 0x4E002A }, // NYI + { Opcode.SMSG_PLAYER_SHOW_ARROW_CALLOUT, 0x4E002B }, // NYI + { Opcode.SMSG_PLAYER_HIDE_ARROW_CALLOUT, 0x4E002C }, // NYI + { Opcode.SMSG_PLAYER_ACKNOWLEDGE_ARROW_CALLOUT, 0x4E002D }, // NYI + { Opcode.SMSG_PLAYER_SAVE_PERSONAL_EMBLEM, 0x4E002E }, // NYI + { Opcode.SMSG_PLAYER_END_OF_MATCH_DETAILS, 0x4E002F }, // NYI + + { Opcode.SMSG_DAILY_QUESTS_RESET, 0x4F0000 }, + { Opcode.SMSG_QUEST_COMPLETION_NPC_RESPONSE, 0x4F0001 }, + { Opcode.SMSG_QUEST_ITEM_USABILITY_RESPONSE, 0x4F0002 }, // NYI + { Opcode.SMSG_QUEST_GIVER_QUEST_COMPLETE, 0x4F0003 }, + { Opcode.SMSG_IS_QUEST_COMPLETE_RESPONSE, 0x4F0004 }, // NYI + { Opcode.SMSG_QUEST_GIVER_INVALID_QUEST, 0x4F0005 }, + { Opcode.SMSG_QUEST_GIVER_QUEST_FAILED, 0x4F0006 }, + { Opcode.SMSG_QUEST_LOG_FULL, 0x4F0007 }, + { Opcode.SMSG_QUEST_NON_LOG_UPDATE_COMPLETE, 0x4F0008 }, // NYI + { Opcode.SMSG_QUEST_UPDATE_COMPLETE, 0x4F0009 }, + { Opcode.SMSG_QUEST_UPDATE_FAILED, 0x4F000A }, // NYI + { Opcode.SMSG_QUEST_UPDATE_FAILED_TIMER, 0x4F000B }, + { Opcode.SMSG_QUEST_UPDATE_ADD_CREDIT, 0x4F000C }, + { Opcode.SMSG_QUEST_UPDATE_ADD_CREDIT_SIMPLE, 0x4F000D }, + { Opcode.SMSG_QUEST_UPDATE_ADD_PVP_CREDIT, 0x4F000E }, + { Opcode.SMSG_QUEST_CONFIRM_ACCEPT, 0x4F000F }, + { Opcode.SMSG_QUEST_PUSH_RESULT, 0x4F0010 }, + { Opcode.SMSG_QUEST_GIVER_STATUS_MULTIPLE, 0x4F0011 }, + { Opcode.SMSG_QUEST_GIVER_QUEST_DETAILS, 0x4F0012 }, + { Opcode.SMSG_QUEST_GIVER_REQUEST_ITEMS, 0x4F0013 }, + { Opcode.SMSG_QUEST_GIVER_OFFER_REWARD_MESSAGE, 0x4F0014 }, + { Opcode.SMSG_SHOW_QUEST_COMPLETION_TEXT, 0x4F0015 }, // NYI + { Opcode.SMSG_QUERY_QUEST_INFO_RESPONSE, 0x4F0016 }, + { Opcode.SMSG_GOSSIP_COMPLETE, 0x4F0017 }, + { Opcode.SMSG_GOSSIP_MESSAGE, 0x4F0018 }, + { Opcode.SMSG_GOSSIP_QUEST_UPDATE, 0x4F0019 }, // NYI + { Opcode.SMSG_QUEST_GIVER_QUEST_LIST_MESSAGE, 0x4F001A }, + { Opcode.SMSG_QUEST_GIVER_STATUS, 0x4F001B }, + { Opcode.SMSG_QUEST_FORCE_REMOVED, 0x4F001C }, + { Opcode.SMSG_QUEST_POI_QUERY_RESPONSE, 0x4F001D }, + { Opcode.SMSG_DISPLAY_QUEST_POPUP, 0x4F001E }, // NYI + { Opcode.SMSG_QUEST_POI_UPDATE_RESPONSE, 0x4F001F }, + { Opcode.SMSG_RESET_QUEST_POI, 0x4F0020 }, // NYI + { Opcode.SMSG_FORCE_SPAWN_TRACKING_UPDATE, 0x4F0021 }, + { Opcode.SMSG_CLEAR_TREASURE_PICKER_CACHE, 0x4F0022 }, + { Opcode.SMSG_UI_MAP_QUEST_LINES_RESPONSE, 0x4F0023 }, + { Opcode.SMSG_COVENANT_CALLINGS_AVAILABILITY_RESPONSE, 0x4F0024 }, + { Opcode.SMSG_GOSSIP_REFRESH_OPTIONS, 0x4F0027 }, + { Opcode.SMSG_GOSSIP_OPTION_NPC_INTERACTION, 0x4F0028 }, + + { Opcode.SMSG_CHEAT_IGNORE_DIMISHING_RETURNS, 0x510002 }, // NYI + { Opcode.SMSG_MIRROR_IMAGE_CREATURE_DATA, 0x510003 }, + { Opcode.SMSG_MIRROR_IMAGE_COMPONENTED_DATA, 0x510004 }, + { Opcode.SMSG_SPELL_COOLDOWN, 0x510005 }, + { Opcode.SMSG_SPELL_CATEGORY_COOLDOWN, 0x510006 }, // NYI + { Opcode.SMSG_SPELL_DISPELL_LOG, 0x510007 }, + { Opcode.SMSG_SPELL_PERIODIC_AURA_LOG, 0x510008 }, + { Opcode.SMSG_SPELL_ENERGIZE_LOG, 0x510009 }, + { Opcode.SMSG_SPELL_HEAL_LOG, 0x51000A }, + { Opcode.SMSG_SPELL_HEAL_ABSORB_LOG, 0x51000B }, + { Opcode.SMSG_SPELL_ABSORB_LOG, 0x51000C }, + { Opcode.SMSG_SPELL_INTERRUPT_LOG, 0x51000D }, + { Opcode.SMSG_ENVIRONMENTAL_DAMAGE_LOG, 0x51000E }, + { Opcode.SMSG_SETUP_COMBAT_LOG_FILE_FLUSH, 0x51000F }, // NYI + { Opcode.SMSG_FLUSH_COMBAT_LOG_FILE, 0x510010 }, // NYI + { Opcode.SMSG_AURA_UPDATE, 0x510011 }, + { Opcode.SMSG_AURA_POINTS_DEPLETED, 0x510012 }, + { Opcode.SMSG_PET_CLEAR_SPELLS, 0x510013 }, + { Opcode.SMSG_PET_SPELLS_MESSAGE, 0x510014 }, + { Opcode.SMSG_CLEAR_COOLDOWNS, 0x510015 }, + { Opcode.SMSG_CLEAR_ALL_SPELL_CHARGES, 0x510016 }, + { Opcode.SMSG_CLEAR_SPELL_CHARGES, 0x510017 }, + { Opcode.SMSG_SET_SPELL_CHARGES, 0x510018 }, + { Opcode.SMSG_SEND_KNOWN_SPELLS, 0x510019 }, + { Opcode.SMSG_SEND_SPELL_HISTORY, 0x51001A }, + { Opcode.SMSG_REFRESH_SPELL_HISTORY, 0x51001B }, + { Opcode.SMSG_SEND_SPELL_CHARGES, 0x51001C }, + { Opcode.SMSG_SEND_UNLEARN_SPELLS, 0x51001D }, + { Opcode.SMSG_SPELL_OR_DAMAGE_IMMUNE, 0x51001E }, + { Opcode.SMSG_DISPEL_FAILED, 0x51001F }, + { Opcode.SMSG_SPELL_DAMAGE_SHIELD, 0x510020 }, + { Opcode.SMSG_SPELL_NON_MELEE_DAMAGE_LOG, 0x510021 }, + { Opcode.SMSG_SPELL_INSTAKILL_LOG, 0x510022 }, + { Opcode.SMSG_SPELL_CHANNEL_START, 0x510023 }, + { Opcode.SMSG_SPELL_CHANNEL_UPDATE, 0x510024 }, + { Opcode.SMSG_SET_FLAT_SPELL_MODIFIER, 0x510025 }, + { Opcode.SMSG_SET_PCT_SPELL_MODIFIER, 0x510026 }, + { Opcode.SMSG_SPELL_PREPARE, 0x510027 }, + { Opcode.SMSG_SPELL_GO, 0x510028 }, + { Opcode.SMSG_SPELL_START, 0x510029 }, + { Opcode.SMSG_RESUME_CAST, 0x51002A }, + { Opcode.SMSG_RESUME_CAST_BAR, 0x51002D }, + { Opcode.SMSG_SPELL_DELAYED, 0x51002E }, + { Opcode.SMSG_SPELL_EXECUTE_LOG, 0x51002F }, + { Opcode.SMSG_SPELL_MISS_LOG, 0x510030 }, + { Opcode.SMSG_NOTIFY_DEST_LOC_SPELL_CAST, 0x510032 }, + { Opcode.SMSG_CANCEL_SPELL_VISUAL, 0x510033 }, + { Opcode.SMSG_PLAY_SPELL_VISUAL, 0x510034 }, + { Opcode.SMSG_CANCEL_ORPHAN_SPELL_VISUAL, 0x510035 }, + { Opcode.SMSG_PLAY_ORPHAN_SPELL_VISUAL, 0x510036 }, + { Opcode.SMSG_CANCEL_SPELL_VISUAL_KIT, 0x510037 }, + { Opcode.SMSG_PLAY_SPELL_VISUAL_KIT, 0x510038 }, + { Opcode.SMSG_GAME_OBJECT_PLAY_SPELL_VISUAL_KIT, 0x510039 }, // NYI + { Opcode.SMSG_GAME_OBJECT_PLAY_SPELL_VISUAL, 0x51003A }, + { Opcode.SMSG_SUPERCEDED_SPELLS, 0x51003B }, + { Opcode.SMSG_LEARNED_SPELLS, 0x51003C }, + { Opcode.SMSG_UNLEARNED_SPELLS, 0x51003D }, + { Opcode.SMSG_PET_LEARNED_SPELLS, 0x51003E }, + { Opcode.SMSG_PET_UNLEARNED_SPELLS, 0x51003F }, + { Opcode.SMSG_PUSH_SPELL_TO_ACTION_BAR, 0x510040 }, // NYI + { Opcode.SMSG_REMOVE_SPELL_FROM_ACTION_BAR, 0x510041 }, // NYI + { Opcode.SMSG_SPELL_FAILURE, 0x510042 }, + { Opcode.SMSG_ACTIVE_GLYPHS, 0x510043 }, + { Opcode.SMSG_SPELL_FAILED_OTHER, 0x510044 }, + { Opcode.SMSG_SCRIPT_CAST, 0x510045 }, // NYI + { Opcode.SMSG_CAST_FAILED, 0x510046 }, + { Opcode.SMSG_PET_CAST_FAILED, 0x510047 }, + { Opcode.SMSG_INTERRUPT_POWER_REGEN, 0x510048 }, + { Opcode.SMSG_SPELL_FAILURE_MESSAGE, 0x510049 }, // NYI + { Opcode.SMSG_RESYNC_RUNES, 0x51004E }, + { Opcode.SMSG_CONVERT_RUNE, 0x51004F }, + { Opcode.SMSG_RESTART_GLOBAL_COOLDOWN, 0x510050 }, // NYI + { Opcode.SMSG_DAMAGE_CALC_LOG, 0x510051 }, // NYI + + { Opcode.SMSG_VOID_STORAGE_FAILED, 0x520000 }, + { Opcode.SMSG_VOID_STORAGE_CONTENTS, 0x520001 }, + { Opcode.SMSG_VOID_STORAGE_TRANSFER_CHANGES, 0x520002 }, + { Opcode.SMSG_VOID_TRANSFER_RESULT, 0x520003 }, + { Opcode.SMSG_VOID_ITEM_SWAP_RESPONSE, 0x520004 }, + { Opcode.SMSG_INVENTORY_CHANGE_FAILURE, 0x520005 }, // NYI + { Opcode.SMSG_OPEN_CONTAINER, 0x520006 }, + { Opcode.SMSG_BAG_CLEANUP_FINISHED, 0x520007 }, + }; + + private static readonly BiDictionary MiscOpcodes = new(); + } +} diff --git a/WowPacketParser/Misc/ClientVersion.cs b/WowPacketParser/Misc/ClientVersion.cs index 65b7283413..e03bff0141 100644 --- a/WowPacketParser/Misc/ClientVersion.cs +++ b/WowPacketParser/Misc/ClientVersion.cs @@ -1630,6 +1630,9 @@ public static ClientVersionBuild GetVersionDefiningBuild(ClientVersionBuild buil case ClientVersionBuild.V5_5_2_64133: case ClientVersionBuild.V5_5_2_64271: case ClientVersionBuild.V5_5_2_64481: + case ClientVersionBuild.V5_5_3_64802: + case ClientVersionBuild.V5_5_3_64857: + case ClientVersionBuild.V5_5_3_65746: case ClientVersionBuild.V1_15_8_63829: case ClientVersionBuild.V1_15_8_64057: case ClientVersionBuild.V1_15_8_64130: @@ -2335,6 +2338,9 @@ public static bool IsMoPClassicClientVersionBuild(ClientVersionBuild build) case ClientVersionBuild.V5_5_2_64133: case ClientVersionBuild.V5_5_2_64271: case ClientVersionBuild.V5_5_2_64481: + case ClientVersionBuild.V5_5_3_64802: + case ClientVersionBuild.V5_5_3_64857: + case ClientVersionBuild.V5_5_3_65746: return true; default: return false; diff --git a/WowPacketParserModule.V5_5_0_61735/Parsers/MovementHandler.cs b/WowPacketParserModule.V5_5_0_61735/Parsers/MovementHandler.cs index 1096eca177..1bd2178d0d 100644 --- a/WowPacketParserModule.V5_5_0_61735/Parsers/MovementHandler.cs +++ b/WowPacketParserModule.V5_5_0_61735/Parsers/MovementHandler.cs @@ -160,7 +160,6 @@ public static void ReadMovementSpline(Packet packet, Vector3 pos, params object[ distance += Vector3.GetDistance(prevpos, spot); prevpos = spot; - // client always taking first point if (i == 0) endpos = spot; } @@ -168,10 +167,8 @@ public static void ReadMovementSpline(Packet packet, Vector3 pos, params object[ if (packedDeltasCount > 0) { - // Calculate mid pos var mid = (pos + endpos) * 0.5f; - // ignore distance set by Points array if packed deltas are used distance = 0; var prevpos = pos; @@ -217,6 +214,120 @@ public static void ReadMovementSpline(Packet packet, Vector3 pos, params object[ WowPacketParser.Parsing.Parsers.MovementHandler.PrintComputedSplineMovementParams(packet, distance, monsterMove, indexes); } + public static void ReadMovementSpline553(Packet packet, Vector3 pos, params object[] indexes) + { + var monsterMove = packet.Holder.MonsterMove; + + var splineFlag = packet.ReadUInt32E("Flags", indexes); + monsterMove.Flags = splineFlag.ToUniversal(); + + var type = packet.ReadByte("Face", indexes); + var facingType = (SplineFacingType)type; + + monsterMove.ElapsedTime = packet.ReadInt32("Elapsed", indexes); + monsterMove.MoveTime = packet.ReadUInt32("MoveTime", indexes); + packet.ReadUInt32("FadeObjectTime", indexes); + + packet.ReadByte("Mode", indexes); + + monsterMove.TransportGuid = packet.ReadPackedGuid128("TransportGUID", indexes); + monsterMove.VehicleSeat = packet.ReadSByte("VehicleSeat", indexes); + + switch (facingType) + { + case SplineFacingType.Spot: + monsterMove.LookPosition = packet.ReadVector3("FaceSpot", indexes); + break; + case SplineFacingType.Target: + monsterMove.LookTarget = new SplineLookTarget + { + Orientation = packet.ReadSingle("FaceDirection", indexes), + Target = packet.ReadPackedGuid128("FacingGUID", indexes) + }; + break; + case SplineFacingType.Angle: + monsterMove.LookOrientation = packet.ReadSingle("FaceDirection", indexes); + break; + } + + byte pcHi = packet.ReadByte("PointsCountHi", indexes); + byte pcLo = packet.ReadByte("PointsCountLo", indexes); + ushort pointsCount = (ushort)((pcHi << 8) | pcLo); + + packet.ResetBitReader(); + + bool vehicleExitVoluntary = packet.ReadBit("VehicleExitVoluntary", indexes); + bool interpolate = packet.ReadBit("Interpolate", indexes); + + ushort packedDeltasCount = (ushort)packet.ReadBits("PackedDeltasCount", 16, indexes); + + bool hasSplineFilter = packet.ReadBit("HasSplineFilter", indexes); + bool hasSpellEffectExtraData = packet.ReadBit("HasSpellEffectExtraData", indexes); + bool hasJumpExtraData = packet.ReadBit("HasJumpExtraData", indexes); + bool hasTurnData = packet.ReadBit("HasTurnData", indexes); + bool hasAnimTier = packet.ReadBit("HasAnimTier", indexes); + + packet.ReadBit("SplineBitsUnused", indexes); + + packet.ResetBitReader(); + + if (hasSplineFilter) + ReadMonsterSplineFilter(packet, indexes, "MonsterSplineFilter"); + + Vector3 endpos = default; + double distance = 0.0; + + if (pointsCount > 0) + { + var prev = pos; + for (int i = 0; i < pointsCount; i++) + { + var spot = packet.ReadVector3("Points", indexes, i); + monsterMove.Points.Add(spot); + distance += Vector3.GetDistance(prev, spot); + prev = spot; + if (i == 0) endpos = spot; + } + } + + if (packedDeltasCount > 0) + { + var mid = (pos + endpos) * 0.5f; + distance = 0; + + var prev = pos; + for (int i = 0; i < packedDeltasCount; i++) + { + var vec = mid - packet.ReadPackedVector3(); + packet.AddValue("WayPoints", vec, indexes, i); + monsterMove.PackedPoints.Add(vec); + distance += Vector3.GetDistance(prev, vec); + prev = vec; + } + distance += Vector3.GetDistance(prev, endpos); + } + + if (hasSpellEffectExtraData) + monsterMove.SpellEffect = ReadMonsterSplineSpellEffectExtraData(packet, indexes, "MonsterSplineSpellEffectExtra"); + + if (hasJumpExtraData) + monsterMove.Jump = ReadMonsterSplineJumpExtraData(packet, indexes, "MonsterSplineJumpExtraData"); + + if (hasTurnData) + ReadMonsterSplineTurnData(packet, indexes, "MonsterSplineTurnData"); + + if (hasAnimTier) + { + packet.ReadInt32("TierTransitionID", indexes); + monsterMove.AnimTier = packet.ReadByte("AnimTier", indexes); + packet.ReadUInt32("StartTime", indexes); + packet.ReadUInt32("EndTime", indexes); + } + + if (endpos.X != 0 && endpos.Y != 0 && endpos.Z != 0) + WowPacketParser.Parsing.Parsers.MovementHandler.PrintComputedSplineMovementParams(packet, distance, monsterMove, indexes); + } + public static void ReadMovementMonsterSpline(Packet packet, Vector3 pos, WowGuid guid, params object[] indexes) { PacketMonsterMove monsterMove = packet.Holder.MonsterMove; @@ -228,7 +339,10 @@ public static void ReadMovementMonsterSpline(Packet packet, Vector3 pos, WowGuid packet.ReadBit("StopUseFaceDirection", indexes); packet.ReadBits("StopDistanceTolerance", 3, indexes); - ReadMovementSpline(packet, pos, indexes, "MovementSpline"); + if (ClientVersion.AddedInVersion(ClientVersionBuild.V5_5_3_64802)) + ReadMovementSpline553(packet, pos, indexes, "MovementSpline"); + else + ReadMovementSpline(packet, pos, indexes, "MovementSpline"); } public static MovementInfo.TransportInfo ReadTransportData(Packet packet, params object[] idx) diff --git a/WowPacketParserModule.V5_5_0_61735/Parsers/SpellHandler.cs b/WowPacketParserModule.V5_5_0_61735/Parsers/SpellHandler.cs index 09b02434c9..dcdb728a50 100644 --- a/WowPacketParserModule.V5_5_0_61735/Parsers/SpellHandler.cs +++ b/WowPacketParserModule.V5_5_0_61735/Parsers/SpellHandler.cs @@ -185,7 +185,10 @@ public static void ReadCreatureImmunities(Packet packet, params object[] idx) public static void ReadSpellHealPrediction(Packet packet, params object[] idx) { packet.ReadInt32("Points", idx); - packet.ReadByte("Type", idx); + if (ClientVersion.AddedInVersion(ClientVersionBuild.V5_5_3_64802)) + packet.ReadInt32("Type", idx); + else + packet.ReadByte("Type", idx); packet.ReadPackedGuid128("BeaconGUID", idx); } @@ -194,6 +197,73 @@ public static Vector3 ReadLocation(Packet packet, params object[] idx) packet.ReadPackedGuid128("Transport", idx); return packet.ReadVector3("Location", idx); } + public static void ReadSpellTargetData553(Packet packet, PacketSpellData packetSpellData, uint spellID, params object[] idx) + { + packet.ResetBitReader(); + + packet.ReadInt32("FlagsDupa", idx); + + var targetUnit = packet.ReadPackedGuid128("Unit", idx); + if (packetSpellData != null) + packetSpellData.TargetUnit = targetUnit; + packet.ReadPackedGuid128("Item", idx); + + var hasSrcLoc = packet.ReadBit("HasSrcLocation", idx); + var hasDstLoc = packet.ReadBit("HasDstLocation", idx); + var hasOrient = packet.ReadBit("HasOrientation", idx); + var hasMapID = packet.ReadBit("hasMapID ", idx); + var nameLength = packet.ReadBits(7); + + if (hasSrcLoc) + ReadLocation(packet, idx, "SrcLocation"); + + Vector3? dstLocation = null; + if (hasDstLoc) + { + ReadLocation(packet, idx, "DstLocation"); + if (packetSpellData != null) + packetSpellData.DstLocation = dstLocation; + } + + if (hasOrient) + packet.ReadSingle("Orientation", idx); + + int mapID = -1; + if (hasMapID) + mapID = (ushort)packet.ReadInt32("MapID", idx); + + if (Settings.UseDBC && dstLocation != null && mapID != -1) + { + for (uint i = 0; i < 32; i++) + { + var tuple = Tuple.Create(spellID, i); + if (DBC.SpellEffectStores.ContainsKey(tuple)) + { + var effect = DBC.SpellEffectStores[tuple]; + if ((Targets)effect.ImplicitTarget[0] == Targets.TARGET_DEST_DB || (Targets)effect.ImplicitTarget[1] == Targets.TARGET_DEST_DB) + { + string effectHelper = $"Spell: {StoreGetters.GetName(StoreNameType.Spell, (int)spellID)} Efffect: {effect.Effect} ({(SpellEffects)effect.Effect})"; + + var spellTargetPosition = new SpellTargetPosition + { + ID = spellID, + EffectIndex = (byte)i, + PositionX = dstLocation.Value.X, + PositionY = dstLocation.Value.Y, + PositionZ = dstLocation.Value.Z, + MapID = (ushort)mapID, + EffectHelper = effectHelper + }; + + if (!Storage.SpellTargetPositions.ContainsKey(spellTargetPosition)) + Storage.SpellTargetPositions.Add(spellTargetPosition); + } + } + } + } + + packet.ReadWoWString("Name", nameLength, idx); + } public static void ReadSpellTargetData(Packet packet, PacketSpellData packetSpellData, uint spellID, params object[] idx) { @@ -322,10 +392,13 @@ public static PacketSpellData ReadSpellCastData(Packet packet, params object[] i var hasAmmoDisplayId = packet.ReadBit("HasAmmoDisplayId", idx); var hasAmmoInventoryType = packet.ReadBit("HasAmmoInventoryType", idx); - ReadSpellTargetData(packet, packetSpellData, spellID, idx, "Target"); + if (ClientVersion.AddedInVersion(ClientVersionBuild.V5_5_3_64802)) + ReadSpellTargetData553(packet, packetSpellData, spellID, idx, "Target"); + else + ReadSpellTargetData(packet, packetSpellData, spellID, idx, "Target"); for (var i = 0; i < hitTargetsCount; ++i) - packetSpellData.HitTargets.Add(packet.ReadPackedGuid128("HitTarget", idx, i)); + packetSpellData.HitTargets.Add(packet.ReadPackedGuid128("HitTarget", idx, i)); for (var i = 0; i < missTargetsCount; ++i) packetSpellData.MissedTargets.Add(packet.ReadPackedGuid128("MissTarget", idx, i)); @@ -704,6 +777,7 @@ public static void HandleSpellDispelLog(Packet packet) public static void HandleAuraUpdate(Packet packet) { PacketAuraUpdate packetAuraUpdate = packet.Holder.AuraUpdate = new(); + packet.ReadBit("UpdateAll"); var count = packet.ReadBits("AurasCount", 9); @@ -719,58 +793,120 @@ public static void HandleAuraUpdate(Packet packet) packet.ResetBitReader(); var hasAura = packet.ReadBit("HasAura", i); auraEntry.Remove = !hasAura; + if (hasAura) { packet.ReadPackedGuid128("CastID", i); aura.SpellId = auraEntry.Spell = (uint)packet.ReadInt32("SpellID", i); packet.ReadInt32("SpellXSpellVisualID", i); + var flags = packet.ReadUInt16E("Flags", i); aura.AuraFlags = flags; auraEntry.Flags = flags.ToUniversal(); + packet.ReadUInt32("ActiveFlags", i); aura.Level = packet.ReadUInt16("CastLevel", i); aura.Charges = packet.ReadByte("Applications", i); + packet.ReadInt32("ContentTuningID", i); packet.ReadVector3("DstLocation", i); - packet.ResetBitReader(); + if (ClientVersion.AddedInVersion(ClientVersionBuild.V5_5_3_65746)) + { + packet.ResetBitReader(); - var hasCastUnit = packet.ReadBit("HasCastUnit", i); - var hasDuration = packet.ReadBit("HasDuration", i); - var hasRemaining = packet.ReadBit("HasRemaining", i); + bool hasCastUnit = packet.ReadBit("HasCastUnit", i); + bool hasCastUnit2 = packet.ReadBit("HasCastUnit2", i); + bool hasDuration = packet.ReadBit("HasDuration", i); + bool hasRemaining = packet.ReadBit("HasRemaining", i); + bool hasTimeMod = packet.ReadBit("HasTimeMod", i); - var hasTimeMod = packet.ReadBit("HasTimeMod", i); + uint pointsCount = packet.ReadBits("PointsCount", 6, i); - var pointsCount = packet.ReadBits("PointsCount", 6, i); - var effectCount = packet.ReadBits("EstimatedPoints", 6, i); + uint effectCount = packet.ReadBits("EstimatedPointsCount", 6, i); - var hasContentTuning = packet.ReadBit("HasContentTuning", i); + bool hasContentTuning = packet.ReadBit("HasContentTuning", i); - if (hasContentTuning) - CombatLogHandler.ReadContentTuningParams(packet, i, "ContentTuning"); + packet.ReadBits("AuraHeaderUnused", 6, i); - if (hasCastUnit) - auraEntry.CasterUnit = packet.ReadPackedGuid128("CastUnit", i); + packet.ResetBitReader(); - aura.Duration = hasDuration ? packet.ReadInt32("Duration", i) : 0; - aura.MaxDuration = hasRemaining ? packet.ReadInt32("Remaining", i) : 0; + if (hasContentTuning) + CombatLogHandler.ReadContentTuningParams(packet, i, "ContentTuning"); - if (hasDuration) - auraEntry.Duration = aura.Duration; + if (hasCastUnit) + auraEntry.CasterUnit = packet.ReadPackedGuid128("CastUnit", i); - if (hasRemaining) - auraEntry.Remaining = aura.MaxDuration; + if (hasCastUnit2) + packet.ReadPackedGuid128("CastUnit2", i); - if (hasTimeMod) - packet.ReadSingle("TimeMod"); + if (hasDuration) + { + aura.Duration = packet.ReadInt32("Duration", i); + auraEntry.Duration = aura.Duration; + } + else aura.Duration = 0; + + if (hasRemaining) + { + aura.MaxDuration = packet.ReadInt32("Remaining", i); + auraEntry.Remaining = aura.MaxDuration; + } + else aura.MaxDuration = 0; + + if (hasTimeMod) + packet.ReadSingle("TimeMod", i); + + for (var j = 0; j < pointsCount; ++j) + packet.ReadSingle("Points", i, j); + + for (var j = 0; j < effectCount; ++j) + packet.ReadSingle("EstimatedPoints", i, j); + } + else + { + if (ClientVersion.RemovedInVersion(ClientVersionBuild.V5_5_3_65746)) + { + packet.ResetBitReader(); + + var hasCastUnit = packet.ReadBit("HasCastUnit", i); + var hasDuration = packet.ReadBit("HasDuration", i); + var hasRemaining = packet.ReadBit("HasRemaining", i); + var hasTimeMod = packet.ReadBit("HasTimeMod", i); - for (var j = 0; j < pointsCount; ++j) - packet.ReadSingle("Points", i, j); + var pointsCount = packet.ReadBits("PointsCount", 6, i); + var effectCount = packet.ReadBits("EstimatedPointsCount", 6, i); - for (var j = 0; j < effectCount; ++j) - packet.ReadSingle("EstimatedPoints", i, j); + var hasContentTuning = packet.ReadBit("HasContentTuning", i); - auras.Add(aura); + if (hasContentTuning) + CombatLogHandler.ReadContentTuningParams(packet, i, "ContentTuning"); + + if (hasCastUnit) + auraEntry.CasterUnit = packet.ReadPackedGuid128("CastUnit", i); + + aura.Duration = hasDuration ? packet.ReadInt32("Duration", i) : 0; + aura.MaxDuration = hasRemaining ? packet.ReadInt32("Remaining", i) : 0; + + if (hasDuration) + auraEntry.Duration = aura.Duration; + + if (hasRemaining) + auraEntry.Remaining = aura.MaxDuration; + + if (hasTimeMod) + packet.ReadSingle("TimeMod", i); + + for (var j = 0; j < pointsCount; ++j) + packet.ReadSingle("Points", i, j); + + for (var j = 0; j < effectCount; ++j) + packet.ReadSingle("EstimatedPoints", i, j); + + // (opcjonalnie) packet.ResetBitReader(); // tylko jeśli zaraz potem miałbyś znowu ReadBit + } + } + auras.Add(aura); packet.AddSniffData(StoreNameType.Spell, (int)aura.SpellId, "AURA_UPDATE"); } } @@ -783,11 +919,6 @@ public static void HandleAuraUpdate(Packet packet) var unit = Storage.Objects[guid].Item1 as Unit; if (unit != null) { - // If this is the first packet that sends auras - // (hopefully at spawn time) add it to the "Auras" field, - // if not create another row of auras in AddedAuras - // (similar to ChangedUpdateFields) - if (unit.Auras == null) unit.Auras = auras; else