summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/net/eathena/beinghandler.cpp17
-rw-r--r--src/net/eathena/beinghandler.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/beinghandler.cpp b/src/net/eathena/beinghandler.cpp
index b856bc575..baaa3eccc 100644
--- a/src/net/eathena/beinghandler.cpp
+++ b/src/net/eathena/beinghandler.cpp
@@ -221,6 +221,10 @@ void BeingHandler::handleMessage(Net::MessageIn &msg)
processMapTypeProperty(msg);
break;
+ case SMSG_MONSTER_HP:
+ processMonsterHp(msg);
+ break;
+
default:
break;
}
@@ -1047,4 +1051,17 @@ void BeingHandler::processBeingAction2(Net::MessageIn &msg) const
BLOCK_END("BeingHandler::processBeingAction")
}
+void BeingHandler::processMonsterHp(Net::MessageIn &msg) const
+{
+ Being *const dstBeing = actorManager->findBeing(
+ msg.readInt32("monster id"));
+ const int hp = msg.readInt32("hp");
+ const int maxHP = msg.readInt32("max hp");
+ if (dstBeing)
+ {
+ dstBeing->setHP(hp);
+ dstBeing->setMaxHP(maxHP);
+ }
+}
+
} // namespace EAthena
diff --git a/src/net/eathena/beinghandler.h b/src/net/eathena/beinghandler.h
index d3744ba78..2d4afd0d9 100644
--- a/src/net/eathena/beinghandler.h
+++ b/src/net/eathena/beinghandler.h
@@ -61,6 +61,8 @@ class BeingHandler final : public MessageHandler, public Ea::BeingHandler
void processBeingMove2(Net::MessageIn &msg) const;
void processBeingAction2(Net::MessageIn &msg) const;
+
+ void processMonsterHp(Net::MessageIn &msg) const;
};
} // namespace EAthena
diff --git a/src/net/eathena/packets.h b/src/net/eathena/packets.h
index b84468d27..6775691f1 100644
--- a/src/net/eathena/packets.h
+++ b/src/net/eathena/packets.h
@@ -245,7 +245,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, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 31, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0,
// #0x0980
0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31, -1, -1, 0, 0, 0, 0, 0, 0, 11, 9, 8, 0, 0, 0, 0,
diff --git a/src/net/eathena/protocol.h b/src/net/eathena/protocol.h
index d3426f19c..aa1ed94c2 100644
--- a/src/net/eathena/protocol.h
+++ b/src/net/eathena/protocol.h
@@ -192,6 +192,7 @@
#define SMSG_QUEST_REMOVE 0x02b4
#define SMSG_MVP 0x010c
+#define SMSG_MONSTER_HP 0x0977
/**********************************
* Packets from client to server *