diff options
author | Andrei Karas <akaras@inbox.ru> | 2014-10-14 14:38:53 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2014-10-14 14:38:53 +0300 |
commit | 4cfe79cad811756d59ee5dcf12f4382a88791c3a (patch) | |
tree | c493d41c6a445012fd9f19860174ca76156fe913 | |
parent | d5a549b6af3579d247bfb7d4ca22c31ca0f3dc38 (diff) | |
download | manaplus-4cfe79cad811756d59ee5dcf12f4382a88791c3a.tar.gz manaplus-4cfe79cad811756d59ee5dcf12f4382a88791c3a.tar.bz2 manaplus-4cfe79cad811756d59ee5dcf12f4382a88791c3a.tar.xz manaplus-4cfe79cad811756d59ee5dcf12f4382a88791c3a.zip |
eathena: add partial support for packet SMSG_PARTY_ITEM_PICKUP 0x02b8.
-rw-r--r-- | src/net/eathena/packets.h | 2 | ||||
-rw-r--r-- | src/net/eathena/partyhandler.cpp | 21 | ||||
-rw-r--r-- | src/net/eathena/partyhandler.h | 2 | ||||
-rw-r--r-- | src/net/eathena/protocol.h | 1 |
4 files changed, 25 insertions, 1 deletions
diff --git a/src/net/eathena/packets.h b/src/net/eathena/packets.h index 0df40de93..e7112205c 100644 --- a/src/net/eathena/packets.h +++ b/src/net/eathena/packets.h @@ -96,7 +96,7 @@ int16_t packet_lengths[] = 0, 0, 0, 6, 14, 0, 0, 0, 0, 0, 18, 0, 0, 0, 4, 0, 4, 4, 0, 0, 0, 0, 0, 0, 8, 6, 0, 80, 0, -1, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -1, -1, 107, 6, -1, 0, 7, 0, 191, 0, 0, 0, 0, 0, 0, + 0, -1, -1, 107, 6, -1, 0, 7, 22, 191, 0, 0, 0, 0, 0, 0, // #0x02C0 0, -1, 0, 0, 0, 30, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, diff --git a/src/net/eathena/partyhandler.cpp b/src/net/eathena/partyhandler.cpp index 030267aa8..8cf57c634 100644 --- a/src/net/eathena/partyhandler.cpp +++ b/src/net/eathena/partyhandler.cpp @@ -62,6 +62,7 @@ PartyHandler::PartyHandler() : SMSG_PARTY_MESSAGE, SMSG_PARTY_INVITATION_STATS, SMSG_PARTY_MEMBER_INFO, + SMSG_PARTY_ITEM_PICKUP, 0 }; handledMessages = _messages; @@ -112,6 +113,9 @@ void PartyHandler::handleMessage(Net::MessageIn &msg) case SMSG_PARTY_MEMBER_INFO: processPartyMemberInfo(msg); break; + case SMSG_PARTY_ITEM_PICKUP: + processPartyItemPickup(msg); + break; default: break; @@ -462,4 +466,21 @@ void PartyHandler::allowInvite(const bool allow) const outMsg.writeInt8(static_cast<int8_t>(allow ? 1 : 0)); } +void PartyHandler::processPartyItemPickup(Net::MessageIn &msg) const +{ + // +++ probably need add option to show pickup notifications + // in party tab + msg.readInt32("account id"); + msg.readInt16("item id"); + msg.readUInt8("identify"); + msg.readUInt8("attribute"); + msg.readUInt8("refine"); + msg.readInt16("card0"); + msg.readInt16("card1"); + msg.readInt16("card2"); + msg.readInt16("card3"); + msg.readInt16("equip location"); + msg.readUInt8("item type"); +} + } // namespace EAthena diff --git a/src/net/eathena/partyhandler.h b/src/net/eathena/partyhandler.h index f71e5a224..db20f7d0e 100644 --- a/src/net/eathena/partyhandler.h +++ b/src/net/eathena/partyhandler.h @@ -77,6 +77,8 @@ class PartyHandler final : public MessageHandler, public Ea::PartyHandler void processPartyMessage(Net::MessageIn &msg) const; void processPartyInviteResponse(Net::MessageIn &msg) const; + + void processPartyItemPickup(Net::MessageIn &msg) const; }; } // namespace EAthena diff --git a/src/net/eathena/protocol.h b/src/net/eathena/protocol.h index f80286901..7b3da616c 100644 --- a/src/net/eathena/protocol.h +++ b/src/net/eathena/protocol.h @@ -181,6 +181,7 @@ #define SMSG_PARTY_MESSAGE 0x0109 #define SMSG_PARTY_INVITATION_STATS 0x02c9 #define SMSG_PARTY_MEMBER_INFO 0x01e9 +#define SMSG_PARTY_ITEM_PICKUP 0x02b8 #define SMSG_PLAYER_STORAGE_ITEMS 0x0995 /**< Item list for storage */ #define SMSG_PLAYER_STORAGE_EQUIP 0x0996 /**< Equipment list for storage */ |