diff options
author | joschiwald <joschiwald.trinity@gmail.com> | 2014-11-15 16:22:32 +0100 |
---|---|---|
committer | joschiwald <joschiwald.trinity@gmail.com> | 2014-11-15 16:22:32 +0100 |
commit | 96fa1eb5ecb6667b4150b1d9bffa7efed79fedd8 (patch) | |
tree | 9485396a939f556900700e1da43f8c0b5e7b80e8 | |
parent | c375748b7636fe88f1daf37197dc9da3d4a674a1 (diff) |
Core/Packets: added few channel packet structs
-rw-r--r-- | src/server/game/Handlers/AuctionHouseHandler.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Server/Packets/ChannelPackets.cpp | 78 | ||||
-rw-r--r-- | src/server/game/Server/Packets/ChannelPackets.h | 90 | ||||
-rw-r--r-- | src/server/game/Server/Packets/MovementPackets.cpp | 6 | ||||
-rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 15 | ||||
-rw-r--r-- | src/server/game/Server/Protocol/Opcodes.h | 52 |
6 files changed, 212 insertions, 31 deletions
diff --git a/src/server/game/Handlers/AuctionHouseHandler.cpp b/src/server/game/Handlers/AuctionHouseHandler.cpp index d52e218e66d..fcd96ec9370 100644 --- a/src/server/game/Handlers/AuctionHouseHandler.cpp +++ b/src/server/game/Handlers/AuctionHouseHandler.cpp @@ -728,7 +728,7 @@ void WorldSession::HandleAuctionListItems(WorldPacket& recvData) TC_LOG_DEBUG("auctionHouse", "Auctionhouse search (%s) list from: %u, searchedname: %s, levelmin: %u, levelmax: %u, auctionSlotID: %u, auctionMainCategory: %u, auctionSubCategory: %u, quality: %u, usable: %u", guid.ToString().c_str(), listfrom, searchedname.c_str(), levelmin, levelmax, auctionSlotID, auctionMainCategory, auctionSubCategory, quality, usable); - WorldPacket data(SMSG_AUCTION_LIST_RESULT, (4+4+4)); + WorldPacket data(SMSG_AUCTION_LIST_ITEMS_RESULT, (4+4+4)); uint32 count = 0; uint32 totalcount = 0; data << uint32(0); diff --git a/src/server/game/Server/Packets/ChannelPackets.cpp b/src/server/game/Server/Packets/ChannelPackets.cpp new file mode 100644 index 00000000000..8aa4ac51d42 --- /dev/null +++ b/src/server/game/Server/Packets/ChannelPackets.cpp @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/> + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "ChannelPackets.h" +#include "Channel.h" + +WorldPacket const* WorldPackets::Channel::ChannelNotify::Write() +{ + _worldPacket.WriteBits(Type, 6); + _worldPacket.WriteBits(Channel.length(), 7); + _worldPacket.WriteBits(Sender.length(), 6); + + _worldPacket << SenderGuid; + _worldPacket << SenderBnetAccountID; + _worldPacket << uint32(SenderVirtualRealm); + _worldPacket << TargetGuid; + _worldPacket << uint32(TargetVirtualRealm); + _worldPacket << int32(ChatChannelID); + + if (Type == CHAT_MODE_CHANGE_NOTICE) + { + _worldPacket << uint8(OldFlags); + _worldPacket << uint8(NewFlags); + } + + _worldPacket.WriteString(Channel); + _worldPacket.WriteString(Sender); + + return &_worldPacket; +} + +WorldPacket const* WorldPackets::Channel::ChannelNotifyJoined::Write() +{ + _worldPacket.WriteBits(Channel.length(), 7); + _worldPacket.WriteBits(ChannelWelcomeMsg.length(), 10); + _worldPacket << uint8(ChannelFlags); + _worldPacket << int32(ChatChannelID); + _worldPacket << uint64(InstanceID); + _worldPacket.WriteString(Channel); + _worldPacket.WriteString(ChannelWelcomeMsg); + + return &_worldPacket; +} + +WorldPacket const* WorldPackets::Channel::ChannelNotifyLeft::Write() +{ + _worldPacket.WriteBits(Channel.length(), 7); + _worldPacket.WriteBit(Suspended); + _worldPacket << int32(ChatChannelID); + _worldPacket.WriteString(Channel); + + return &_worldPacket; +} + +void WorldPackets::Channel::JoinChannel::Read() +{ + _worldPacket >> ChatChannelId; + CreateVoiceSession = _worldPacket.ReadBit(); + Internal = _worldPacket.ReadBit(); + uint32 channelLength = _worldPacket.ReadBits(7); + uint32 passwordLength = _worldPacket.ReadBits(7); + ChannelName = _worldPacket.ReadString(channelLength); + Password = _worldPacket.ReadString(passwordLength); +} diff --git a/src/server/game/Server/Packets/ChannelPackets.h b/src/server/game/Server/Packets/ChannelPackets.h new file mode 100644 index 00000000000..d3984e18f57 --- /dev/null +++ b/src/server/game/Server/Packets/ChannelPackets.h @@ -0,0 +1,90 @@ +/* +* Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/> +* +* This program is free software; you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by the +* Free Software Foundation; either version 2 of the License, or (at your +* option) any later version. +* +* This program is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +* more details. +* +* You should have received a copy of the GNU General Public License along +* with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef ChannelPackets_h__ +#define ChannelPackets_h__ + +#include "Packet.h" +#include "ObjectGuid.h" + +namespace WorldPackets +{ + namespace Channel + { + class ChannelNotify final : public ServerPacket + { + public: + ChannelNotify() : ServerPacket(SMSG_CHANNEL_NOTIFY, 80) { } + + WorldPacket const* Write() override; + + std::string Sender; + ObjectGuid SenderGuid; + ObjectGuid SenderBnetAccountID; + uint8 Type = 0; + uint8 OldFlags = 0; + uint8 NewFlags = 0; + std::string Channel; + uint32 SenderVirtualRealm = 0; + ObjectGuid TargetGuid; + uint32 TargetVirtualRealm = 0; + int32 ChatChannelID = 0; + }; + + class ChannelNotifyJoined final : public ServerPacket + { + public: + ChannelNotifyJoined() : ServerPacket(SMSG_CHANNEL_NOTIFY_JOINED, 50) { } + + WorldPacket const* Write() override; + + std::string ChannelWelcomeMsg; + int32 ChatChannelID = 0; + int32 InstanceID = 0; + uint8 ChannelFlags = 0; + std::string Channel; + }; + + class ChannelNotifyLeft final : public ServerPacket + { + public: + ChannelNotifyLeft() : ServerPacket(SMSG_CHANNEL_NOTIFY_LEFT, 30) { } + + WorldPacket const* Write() override; + + std::string Channel; + int32 ChatChannelID = 0; + bool Suspended = false; + }; + + class JoinChannel final : public ClientPacket + { + public: + JoinChannel(WorldPacket&& packet) : ClientPacket(CMSG_JOIN_CHANNEL, std::move(packet)) { } + + void Read() override; + + std::string Password; + std::string ChannelName; + bool CreateVoiceSession = false; + int32 ChatChannelId = 0; + bool Internal = false; + }; + } +} + +#endif // ChannelPackets_h__ diff --git a/src/server/game/Server/Packets/MovementPackets.cpp b/src/server/game/Server/Packets/MovementPackets.cpp index 487e230a4a1..45d5b86e3fd 100644 --- a/src/server/game/Server/Packets/MovementPackets.cpp +++ b/src/server/game/Server/Packets/MovementPackets.cpp @@ -44,7 +44,7 @@ void WorldPackets::Movement::ClientPlayerMovement::Read() movementInfo.flags = _worldPacket.ReadBits(30); movementInfo.flags2 = _worldPacket.ReadBits(15); - + bool hasTransport = _worldPacket.ReadBit(); bool hasFall = _worldPacket.ReadBit(); @@ -170,8 +170,8 @@ WorldPacket const* WorldPackets::Movement::ServerPlayerMovement::Write() _worldPacket << movementInfo.jump.xyspeed; } } - + _worldPacket.FlushBits(); return &_worldPacket; -}
\ No newline at end of file +} diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 118df977cd8..c5cff72df4e 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -20,10 +20,10 @@ #include "WorldSession.h" #include "Packets/CharacterPackets.h" #include "Packets/GuildPackets.h" -#include "Packets/TradePackets.h" #include "Packets/MiscPackets.h" -#include "Packets/QueryPackets.h" #include "Packets/MovementPackets.h" +#include "Packets/QueryPackets.h" +#include "Packets/TradePackets.h" template<class PacketClass, void(WorldSession::*HandlerFunction)(PacketClass&)> class PacketHandler : public OpcodeHandler @@ -167,7 +167,10 @@ void OpcodeTable::Initialize() DEFINE_OPCODE_HANDLER_OLD(CMSG_BATTLEMASTER_JOIN_RATED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_BATTLE_PAY_GET_PRODUCT_LIST_QUERY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_BATTLE_PAY_GET_PURCHASE_LIST_QUERY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); + DEFINE_OPCODE_HANDLER_OLD(CMSG_BATTLE_PET_DELETE_PET, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); + DEFINE_OPCODE_HANDLER_OLD(CMSG_BATTLE_PET_MODIFY_NAME, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_BATTLE_PET_NAME_QUERY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); + DEFINE_OPCODE_HANDLER_OLD(CMSG_BATTLE_PET_SET_BATTLE_SLOT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_BEGIN_TRADE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleBeginTradeOpcode ); DEFINE_OPCODE_HANDLER_OLD(CMSG_BINDER_ACTIVATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleBinderActivateOpcode ); DEFINE_OPCODE_HANDLER_OLD(CMSG_BUG, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleBugOpcode ); @@ -228,7 +231,7 @@ void OpcodeTable::Initialize() DEFINE_HANDLER(CMSG_CHAR_CREATE, STATUS_AUTHED, PROCESS_THREADUNSAFE, WorldPackets::Character::CreateChar, &WorldSession::HandleCharCreateOpcode); DEFINE_HANDLER(CMSG_CHAR_CUSTOMIZE, STATUS_AUTHED, PROCESS_THREADUNSAFE, WorldPackets::Character::CharCustomize, &WorldSession::HandleCharCustomizeOpcode); DEFINE_HANDLER(CMSG_CHAR_DELETE, STATUS_AUTHED, PROCESS_THREADUNSAFE, WorldPackets::Character::DeleteChar, &WorldSession::HandleCharDeleteOpcode); - DEFINE_HANDLER(CMSG_CHAR_ENUM, STATUS_AUTHED, PROCESS_THREADUNSAFE, WorldPackets::Character::EnumCharacters, &WorldSession::HandleCharEnumOpcode ); + DEFINE_HANDLER(CMSG_CHAR_ENUM, STATUS_AUTHED, PROCESS_THREADUNSAFE, WorldPackets::Character::EnumCharacters, &WorldSession::HandleCharEnumOpcode); DEFINE_HANDLER(CMSG_CHAR_RACE_OR_FACTION_CHANGE, STATUS_AUTHED, PROCESS_THREADUNSAFE, WorldPackets::Character::CharRaceOrFactionChange, &WorldSession::HandleCharRaceOrFactionChangeOpcode); DEFINE_HANDLER(CMSG_CHAR_RENAME, STATUS_AUTHED, PROCESS_THREADUNSAFE, WorldPackets::Character::CharacterRenameRequest, &WorldSession::HandleCharRenameOpcode); DEFINE_OPCODE_HANDLER_OLD(CMSG_CHAR_UNDELETE_ENUM, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleCharUndeleteEnumOpcode ); @@ -531,6 +534,7 @@ void OpcodeTable::Initialize() DEFINE_OPCODE_HANDLER_OLD(CMSG_REALM_NAME_QUERY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_REALM_SPLIT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRealmSplitOpcode ); DEFINE_OPCODE_HANDLER_OLD(CMSG_RECLAIM_CORPSE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleReclaimCorpseOpcode ); + DEFINE_OPCODE_HANDLER_OLD(CMSG_RECRUIT_A_FRIEND, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_REFORGE_ITEM, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleReforgeItemOpcode ); DEFINE_HANDLER(CMSG_REORDER_CHARACTERS, STATUS_AUTHED, PROCESS_THREADUNSAFE, WorldPackets::Character::ReorderCharacters, &WorldSession::HandleReorderCharacters); DEFINE_OPCODE_HANDLER_OLD(CMSG_REPAIR_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRepairItemOpcode ); @@ -721,7 +725,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_COMMAND_RESULT, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_HELLO, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_LIST_PENDING_SALES, STATUS_UNHANDLED); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_LIST_RESULT, STATUS_UNHANDLED); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_LIST_ITEMS_RESULT, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_OWNER_LIST_RESULT, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_OWNER_NOTIFICATION, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_REMOVED_NOTIFICATION, STATUS_UNHANDLED); @@ -795,6 +799,8 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANNEL_LIST, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANNEL_MEMBER_COUNT, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANNEL_NOTIFY, STATUS_UNHANDLED); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANNEL_NOTIFY_JOINED, STATUS_UNHANDLED); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANNEL_NOTIFY_LEFT, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANNEL_START, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANNEL_UPDATE, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHARACTER_LOGIN_FAILED, STATUS_UNHANDLED); @@ -820,6 +826,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLEAR_TARGET, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLIENTCACHE_VERSION, STATUS_NEVER); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLIENT_CONTROL_UPDATE, STATUS_UNHANDLED); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_COIN_REMOVED, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMBAT_EVENT_FAILED, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMMENTATOR_MAP_INFO, STATUS_UNHANDLED); DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMMENTATOR_PARTY_INFO, STATUS_UNHANDLED); diff --git a/src/server/game/Server/Protocol/Opcodes.h b/src/server/game/Server/Protocol/Opcodes.h index 65c33537ec6..55171515bd2 100644 --- a/src/server/game/Server/Protocol/Opcodes.h +++ b/src/server/game/Server/Protocol/Opcodes.h @@ -78,35 +78,38 @@ enum OpcodeClient : uint32 CMSG_AUCTION_SELL_ITEM = 0xBADD, CMSG_AUTH_CONTINUED_SESSION = 0x0485, CMSG_AUTH_SESSION = 0x0487, - CMSG_AUTOBANK_ITEM = 0xBADD, + CMSG_AUTOBANK_ITEM = 0x0751, CMSG_AUTOEQUIP_GROUND_ITEM = 0xBADD, - CMSG_AUTOEQUIP_ITEM = 0xBADD, + CMSG_AUTOEQUIP_ITEM = 0x0F35, CMSG_AUTOEQUIP_ITEM_SLOT = 0xBADD, - CMSG_AUTOSTORE_BAG_ITEM = 0xBADD, - CMSG_AUTOSTORE_BANK_ITEM = 0xBADD, + CMSG_AUTOSTORE_BAG_ITEM = 0x0F18, + CMSG_AUTOSTORE_BANK_ITEM = 0x0732, CMSG_AUTOSTORE_GROUND_ITEM = 0xBADD, - CMSG_AUTOSTORE_LOOT_ITEM = 0xBADD, + CMSG_AUTOSTORE_LOOT_ITEM = 0x0609, CMSG_AUTO_DECLINE_GUILD_INVITE = 0xBADD, CMSG_AUTO_DECLINE_GUILD_INVITES = 0xBADD, CMSG_BANKER_ACTIVATE = 0x1B24, CMSG_BATTLEFIELD_JOIN = 0xBADD, CMSG_BATTLEFIELD_LEAVE = 0xBADD, CMSG_BATTLEFIELD_LIST = 0x03B1, - CMSG_BATTLEFIELD_MGR_ENTRY_INVITE_RESPONSE = 0xBADD, - CMSG_BATTLEFIELD_MGR_EXIT_REQUEST = 0xBADD, - CMSG_BATTLEFIELD_MGR_QUEUE_INVITE_RESPONSE = 0xBADD, + CMSG_BATTLEFIELD_MGR_ENTRY_INVITE_RESPONSE = 0x059A, + CMSG_BATTLEFIELD_MGR_EXIT_REQUEST = 0x1381, + CMSG_BATTLEFIELD_MGR_QUEUE_INVITE_RESPONSE = 0x122A, CMSG_BATTLEFIELD_MGR_QUEUE_REQUEST = 0xBADD, - CMSG_BATTLEFIELD_PORT = 0xBADD, + CMSG_BATTLEFIELD_PORT = 0x11EB, CMSG_BATTLEFIELD_REQUEST_SCORE_DATA = 0xBADD, CMSG_BATTLEFIELD_STATUS = 0xBADD, CMSG_BATTLEGROUND_PLAYER_POSITIONS = 0xBADD, - CMSG_BATTLEMASTER_JOIN = 0xBADD, - CMSG_BATTLEMASTER_JOIN_ARENA = 0xBADD, + CMSG_BATTLEMASTER_JOIN = 0x0D2E, + CMSG_BATTLEMASTER_JOIN_ARENA = 0x0DAE, CMSG_BATTLEMASTER_JOIN_RATED = 0xBADD, CMSG_BATTLEMASTER_HELLO = 0xBADD, CMSG_BATTLE_PAY_GET_PRODUCT_LIST_QUERY = 0x1389, CMSG_BATTLE_PAY_GET_PURCHASE_LIST_QUERY = 0x120C, + CMSG_BATTLE_PET_DELETE_PET = 0x07B9, + CMSG_BATTLE_PET_MODIFY_NAME = 0x03A9, CMSG_BATTLE_PET_NAME_QUERY = 0x041C, + CMSG_BATTLE_PET_SET_BATTLE_SLOT = 0x120B, CMSG_BEGIN_TRADE = 0xBADD, CMSG_BINDER_ACTIVATE = 0x02F3, CMSG_BOT_DETECTED2 = 0xBADD, @@ -277,7 +280,7 @@ enum OpcodeClient : uint32 CMSG_GUILD_EVENT_LOG_QUERY = 0xBADD, CMSG_GUILD_INFO = 0xBADD, CMSG_GUILD_INFO_TEXT = 0xBADD, - CMSG_GUILD_INVITE = 0xBADD, + CMSG_GUILD_INVITE = 0x19A4, CMSG_GUILD_LEAVE = 0xBADD, CMSG_GUILD_MEMBER_SEND_SOR_REQUEST = 0xBADD, CMSG_GUILD_MOTD = 0xBADD, @@ -344,8 +347,8 @@ enum OpcodeClient : uint32 CMSG_LOOT_MONEY = 0xBADD, CMSG_LOOT_RELEASE = 0xBADD, CMSG_LOOT_ROLL = 0xBADD, - CMSG_MAIL_CREATE_TEXT_ITEM = 0xBADD, - CMSG_MAIL_DELETE = 0xBADD, + CMSG_MAIL_CREATE_TEXT_ITEM = 0x13D1, + CMSG_MAIL_DELETE = 0x068C, CMSG_MAIL_MARK_AS_READ = 0xBADD, CMSG_MAIL_RETURN_TO_SENDER = 0xBADD, CMSG_MAIL_TAKE_ITEM = 0xBADD, @@ -497,6 +500,7 @@ enum OpcodeClient : uint32 CMSG_REALM_NAME_QUERY = 0x1189, CMSG_REALM_SPLIT = 0xBADD, CMSG_RECLAIM_CORPSE = 0xBADD, + CMSG_RECRUIT_A_FRIEND = 0x07BA, CMSG_REFORGE_ITEM = 0xBADD, CMSG_REORDER_CHARACTERS = 0x0DAA, CMSG_REPAIR_ITEM = 0x0B54, @@ -718,7 +722,7 @@ enum OpcodeServer : uint32 SMSG_AUCTION_COMMAND_RESULT = 0x0B2D, SMSG_AUCTION_HELLO = 0x011F, SMSG_AUCTION_LIST_PENDING_SALES = 0xBADD, - SMSG_AUCTION_LIST_RESULT = 0x19D2, + SMSG_AUCTION_LIST_ITEMS_RESULT = 0x0BA4, SMSG_AUCTION_OWNER_LIST_RESULT = 0xBADD, SMSG_AUCTION_OWNER_NOTIFICATION = 0xBADD, SMSG_AUCTION_REMOVED_NOTIFICATION = 0xBADD, @@ -796,6 +800,7 @@ enum OpcodeServer : uint32 SMSG_CHANNEL_MEMBER_COUNT = 0xBADD, SMSG_CHANNEL_NOTIFY = 0x0643, SMSG_CHANNEL_NOTIFY_JOINED = 0x1602, + SMSG_CHANNEL_NOTIFY_LEFT = 0x1452, SMSG_CHANNEL_START = 0x016C, SMSG_CHANNEL_UPDATE = 0x19DB, SMSG_CHARACTER_LOGIN_FAILED = 0xBADD, @@ -823,6 +828,7 @@ enum OpcodeServer : uint32 SMSG_CLEAR_TARGET = 0xBADD, SMSG_CLIENTCACHE_VERSION = 0x080D, SMSG_CLIENT_CONTROL_UPDATE = 0xBADD, + SMSG_COIN_REMOVED = 0x0D30, SMSG_COMBAT_EVENT_FAILED = 0xBADD, SMSG_COMBAT_LOG_MULTIPLE = 0xBADD, SMSG_COMMENTATOR_MAP_INFO = 0xBADD, @@ -837,7 +843,7 @@ enum OpcodeServer : uint32 SMSG_COMSAT_CONNECT_FAIL = 0xBADD, SMSG_COMSAT_DISCONNECT = 0xBADD, SMSG_COMSAT_RECONNECT_TRY = 0xBADD, - SMSG_CONTACT_LIST = 0xBADD, + SMSG_CONTACT_LIST = 0x0210, SMSG_CONTACT_STATUS = 0x1BEA, SMSG_CONVERT_RUNE = 0xBADD, SMSG_COOLDOWN_CHEAT = 0xBADD, @@ -1163,7 +1169,7 @@ enum OpcodeServer : uint32 SMSG_PAGE_TEXT_QUERY_RESPONSE = 0x05A0, SMSG_PARTYKILLLOG = 0xBADD, SMSG_PARTY_COMMAND_RESULT = 0xBADD, - SMSG_PARTY_MEMBER_STATS = 0xBADD, + SMSG_PARTY_MEMBER_STATS = 0x1729, SMSG_PARTY_MEMBER_STATS_FULL = 0xBADD, SMSG_PAUSE_MIRROR_TIMER = 0xBADD, SMSG_PERIODICAURALOG = 0x0B1B, @@ -1202,7 +1208,7 @@ enum OpcodeServer : uint32 SMSG_PLAY_OBJECT_SOUND = 0xBADD, SMSG_PLAY_ONE_SHOT_ANIM_KIT = 0xBADD, SMSG_PLAY_SOUND = 0x02D2, - SMSG_PLAY_SPELL_VISUAL = 0xBADD, + SMSG_PLAY_SPELL_VISUAL = 0x1A84, SMSG_PLAY_SPELL_VISUAL_KIT = 0x0171, SMSG_PLAY_TIME_WARNING = 0xBADD, SMSG_PONG = 0x17CA, @@ -1217,7 +1223,7 @@ enum OpcodeServer : uint32 SMSG_PVP_SEASON = 0x09E3, SMSG_QUERY_QUESTS_COMPLETED_RESPONSE = 0xBADD, SMSG_QUERY_TIME_RESPONSE = 0x1DB0, - SMSG_QUESTGIVER_OFFER_REWARD = 0xBADD, + SMSG_QUESTGIVER_OFFER_REWARD = 0x17B2, SMSG_QUESTGIVER_QUEST_COMPLETE = 0x1773, SMSG_QUESTGIVER_QUEST_DETAILS = 0x15B3, SMSG_QUESTGIVER_QUEST_FAILED = 0xBADD, @@ -1228,7 +1234,7 @@ enum OpcodeServer : uint32 SMSG_QUESTGIVER_STATUS_MULTIPLE = 0x17C6, SMSG_QUESTLOG_FULL = 0xBADD, SMSG_QUESTUPDATE_ADD_ITEM = 0xBADD, - SMSG_QUESTUPDATE_ADD_KILL = 0xBADD, + SMSG_QUESTUPDATE_ADD_KILL = 0x1515, SMSG_QUESTUPDATE_ADD_PVP_KILL = 0xBADD, SMSG_QUESTUPDATE_COMPLETE = 0xBADD, SMSG_QUESTUPDATE_FAILED = 0xBADD, @@ -1387,7 +1393,7 @@ enum OpcodeServer : uint32 SMSG_TRAINER_BUY_FAILED = 0xBADD, SMSG_TRAINER_BUY_SUCCEEDED = 0xBADD, SMSG_TRAINER_LIST = 0x0BA9, - SMSG_TRANSFER_ABORTED = 0xBADD, + SMSG_TRANSFER_ABORTED = 0x03C2, SMSG_TRANSFER_PENDING = 0x172A, SMSG_TRIGGER_CINEMATIC = 0xBADD, SMSG_TRIGGER_MOVIE = 0xBADD, @@ -1423,8 +1429,8 @@ enum OpcodeServer : uint32 SMSG_VOID_STORAGE_FAILED = 0xBADD, SMSG_VOID_STORAGE_TRANSFER_CHANGES = 0x0321, SMSG_VOID_TRANSFER_RESULT = 0x0539, - SMSG_WAIT_QUEUE_FINISH = 0xBADD, - SMSG_WAIT_QUEUE_UPDATE = 0xBADD, + SMSG_WAIT_QUEUE_FINISH = 0x198A, + SMSG_WAIT_QUEUE_UPDATE = 0x00D4, SMSG_WARDEN_DATA = 0x0BEC, SMSG_WARGAME_CHECK_ENTRY = 0xBADD, SMSG_WARGAME_REQUEST_SENT = 0xBADD, |