summaryrefslogtreecommitdiff
path: root/src/net
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-10-14 14:38:53 +0300
committerAndrei Karas <akaras@inbox.ru>2014-10-14 14:38:53 +0300
commit4cfe79cad811756d59ee5dcf12f4382a88791c3a (patch)
treec493d41c6a445012fd9f19860174ca76156fe913 /src/net
parentd5a549b6af3579d247bfb7d4ca22c31ca0f3dc38 (diff)
downloadmv-4cfe79cad811756d59ee5dcf12f4382a88791c3a.tar.gz
mv-4cfe79cad811756d59ee5dcf12f4382a88791c3a.tar.bz2
mv-4cfe79cad811756d59ee5dcf12f4382a88791c3a.tar.xz
mv-4cfe79cad811756d59ee5dcf12f4382a88791c3a.zip
eathena: add partial support for packet SMSG_PARTY_ITEM_PICKUP 0x02b8.
Diffstat (limited to 'src/net')
-rw-r--r--src/net/eathena/packets.h2
-rw-r--r--src/net/eathena/partyhandler.cpp21
-rw-r--r--src/net/eathena/partyhandler.h2
-rw-r--r--src/net/eathena/protocol.h1
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 */