summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/net/eathena/beinghandler.cpp15
-rw-r--r--src/net/eathena/packets.h4
-rw-r--r--src/net/eathena/protocol.h6
3 files changed, 17 insertions, 8 deletions
diff --git a/src/net/eathena/beinghandler.cpp b/src/net/eathena/beinghandler.cpp
index 32305c4b1..d9229caae 100644
--- a/src/net/eathena/beinghandler.cpp
+++ b/src/net/eathena/beinghandler.cpp
@@ -1007,7 +1007,10 @@ void BeingHandler::processBeingVisible(Net::MessageIn &msg)
dstBeing->setLevel(level);
msg.readInt16("font");
- // here map hp/hp for PACKETVER >= 20150000 for now unsupported
+ // +++ need use hp and boss flag
+ msg.readInt32("max hp");
+ msg.readInt32("hp");
+ msg.readInt8("is boss");
dstBeing->setStunMode(stunMode);
dstBeing->setStatusEffectBlock(0, static_cast<uint16_t>(
@@ -1177,7 +1180,10 @@ void BeingHandler::processBeingMove(Net::MessageIn &msg)
dstBeing->setLevel(level);
msg.readInt16("font");
- // here map hp/hp for PACKETVER >= 20150000 for now unsupported
+ // +++ need use hp and boss flag
+ msg.readInt32("max hp");
+ msg.readInt32("hp");
+ msg.readInt8("is boss");
dstBeing->setStunMode(stunMode);
dstBeing->setStatusEffectBlock(0, static_cast<uint16_t>(
@@ -1336,7 +1342,10 @@ void BeingHandler::processBeingSpawn(Net::MessageIn &msg)
dstBeing->setLevel(level);
msg.readInt16("font");
- // here map hp/hp for PACKETVER >= 20150000 for now unsupported
+ // +++ need use hp and boss flag
+ msg.readInt32("max hp");
+ msg.readInt32("hp");
+ msg.readInt8("is boss");
dstBeing->setStunMode(stunMode);
dstBeing->setStatusEffectBlock(0, static_cast<uint16_t>(
diff --git a/src/net/eathena/packets.h b/src/net/eathena/packets.h
index 3c1848f45..36af9a997 100644
--- a/src/net/eathena/packets.h
+++ b/src/net/eathena/packets.h
@@ -237,8 +237,8 @@ int16_t packet_lengths[] =
//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
// #0x0900
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1,
+ 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// #0x0940
diff --git a/src/net/eathena/protocol.h b/src/net/eathena/protocol.h
index fea3c0c0e..20e041374 100644
--- a/src/net/eathena/protocol.h
+++ b/src/net/eathena/protocol.h
@@ -88,9 +88,9 @@
#define SMSG_ITEM_VISIBLE 0x009d /**< An item is on the floor */
#define SMSG_ITEM_DROPPED 0x084b /**< An item is dropped */
#define SMSG_ITEM_REMOVE 0x00a1 /**< An item disappers */
-#define SMSG_BEING_VISIBLE 0x0857
-#define SMSG_BEING_MOVE 0x0856 /**< A nearby monster moves */
-#define SMSG_BEING_SPAWN 0x0858 /**< A being spawns nearby */
+#define SMSG_BEING_VISIBLE 0x0915
+#define SMSG_BEING_MOVE 0x0914 /**< A nearby monster moves */
+#define SMSG_BEING_SPAWN 0x090f /**< A being spawns nearby */
#define SMSG_BEING_MOVE2 0x0086 /**< New eAthena being moves */
#define SMSG_BEING_REMOVE 0x0080
#define SMSG_BEING_CHANGE_LOOKS 0x00c3