summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-03-18 17:51:16 +0300
committerAndrei Karas <akaras@inbox.ru>2015-03-18 17:51:16 +0300
commit26487f01c0f6367e6405c277b3b23b6351981b75 (patch)
tree4a727ef5781a09b513a55ebef8063a6aca00c694
parent4688d64d9881d296193b03d3dd6f5a7305bbf3a7 (diff)
downloadmv-26487f01c0f6367e6405c277b3b23b6351981b75.tar.gz
mv-26487f01c0f6367e6405c277b3b23b6351981b75.tar.bz2
mv-26487f01c0f6367e6405c277b3b23b6351981b75.tar.xz
mv-26487f01c0f6367e6405c277b3b23b6351981b75.zip
eathena: add partial support for packet SMSG_ITEM_MVP_DROPPED 0x07fd.
-rw-r--r--src/net/eathena/itemhandler.cpp17
-rw-r--r--src/net/eathena/itemhandler.h2
-rw-r--r--src/net/eathena/packets.h2
-rw-r--r--src/net/eathena/protocol.h1
4 files changed, 21 insertions, 1 deletions
diff --git a/src/net/eathena/itemhandler.cpp b/src/net/eathena/itemhandler.cpp
index 1061a6a59..0a1629517 100644
--- a/src/net/eathena/itemhandler.cpp
+++ b/src/net/eathena/itemhandler.cpp
@@ -42,6 +42,7 @@ ItemHandler::ItemHandler() :
SMSG_ITEM_DROPPED,
SMSG_ITEM_REMOVE,
SMSG_GRAFFITI_VISIBLE,
+ SMSG_ITEM_MVP_DROPPED,
0
};
handledMessages = _messages;
@@ -67,6 +68,10 @@ void ItemHandler::handleMessage(Net::MessageIn &msg)
processGraffiti(msg);
break;
+ case SMSG_ITEM_MVP_DROPPED:
+ processItemMvpDropped(msg);
+ break;
+
default:
break;
}
@@ -104,4 +109,16 @@ void ItemHandler::processGraffiti(Net::MessageIn &msg)
msg.readString(80, "text");
}
+void ItemHandler::processItemMvpDropped(Net::MessageIn &msg)
+{
+ UNIMPLIMENTEDPACKET;
+ msg.readInt16("len");
+ msg.readUInt8("type");
+ msg.readInt16("item id");
+ msg.readUInt8("len");
+ msg.readString(24, "name");
+ msg.readUInt8("monster name len");
+ msg.readString(24, "monster name");
+}
+
} // namespace EAthena
diff --git a/src/net/eathena/itemhandler.h b/src/net/eathena/itemhandler.h
index 003677790..dd357b50a 100644
--- a/src/net/eathena/itemhandler.h
+++ b/src/net/eathena/itemhandler.h
@@ -43,6 +43,8 @@ class ItemHandler final : public MessageHandler, public Ea::ItemHandler
static void processItemDropped(Net::MessageIn &msg);
static void processGraffiti(Net::MessageIn &msg);
+
+ static void processItemMvpDropped(Net::MessageIn &msg);
};
} // namespace EAthena
diff --git a/src/net/eathena/packets.h b/src/net/eathena/packets.h
index 867640a32..f3adeab80 100644
--- a/src/net/eathena/packets.h
+++ b/src/net/eathena/packets.h
@@ -211,7 +211,7 @@ int16_t packet_lengths[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 8, 268, 0, 0, 0, 0, 0, 0,
0, 15, 8, 6, 6, 0, 8, 0, 0, 5, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 8, 25, 10, 0, 26, 0,
+ 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 8, 25, 10, 59, 26, 0,
//0 1 2 3 4 5 6 7 8 9 a b c d e f
//0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
// #0x0800
diff --git a/src/net/eathena/protocol.h b/src/net/eathena/protocol.h
index 4480adf35..0f3e2b8a4 100644
--- a/src/net/eathena/protocol.h
+++ b/src/net/eathena/protocol.h
@@ -134,6 +134,7 @@
#define SMSG_ITEM_VISIBLE 0x009d /**< An item is on the floor */
#define SMSG_GRAFFITI_VISIBLE 0x01c9
#define SMSG_ITEM_DROPPED 0x084b /**< An item is dropped */
+#define SMSG_ITEM_MVP_DROPPED 0x07fd
#define SMSG_ITEM_REMOVE 0x00a1 /**< An item disappers */
#define SMSG_BEING_VISIBLE 0x0915
#define SMSG_BEING_FAKE_NAME 0x0078