diff options
-rw-r--r-- | src/net/eathena/homunculusrecv.cpp | 18 | ||||
-rw-r--r-- | src/net/eathena/packetsin.inc | 1 |
2 files changed, 15 insertions, 4 deletions
diff --git a/src/net/eathena/homunculusrecv.cpp b/src/net/eathena/homunculusrecv.cpp index 4511d89b1..92eacb03c 100644 --- a/src/net/eathena/homunculusrecv.cpp +++ b/src/net/eathena/homunculusrecv.cpp @@ -134,10 +134,20 @@ void HomunculusRecv::processHomunculusInfo(Net::MessageIn &msg) msg.readInt16("flee")); PlayerInfo::setStatBase(Attributes::HOMUN_ATTACK_DELAY, msg.readInt16("attack speed")); - PlayerInfo::setStatBase(Attributes::HOMUN_HP, - msg.readInt16("hp")); - PlayerInfo::setStatBase(Attributes::HOMUN_MAX_HP, - msg.readInt16("max hp")); + if (msg.getVersion() >= 20150513) + { + PlayerInfo::setStatBase(Attributes::HOMUN_HP, + msg.readInt32("hp")); + PlayerInfo::setStatBase(Attributes::HOMUN_MAX_HP, + msg.readInt32("max hp")); + } + else + { + PlayerInfo::setStatBase(Attributes::HOMUN_HP, + msg.readInt16("hp")); + PlayerInfo::setStatBase(Attributes::HOMUN_MAX_HP, + msg.readInt16("max hp")); + } PlayerInfo::setStatBase(Attributes::HOMUN_MP, msg.readInt16("sp")); PlayerInfo::setStatBase(Attributes::HOMUN_MAX_MP, diff --git a/src/net/eathena/packetsin.inc b/src/net/eathena/packetsin.inc index 38c61c38f..ecab39c63 100644 --- a/src/net/eathena/packetsin.inc +++ b/src/net/eathena/packetsin.inc @@ -840,6 +840,7 @@ if (packetVersion >= 20150513) packet(SMSG_BEING_SPAWN, 0x09fe, -1, &BeingRecv::processBeingSpawn, 20150513); packet(SMSG_BEING_MOVE, 0x09fd, -1, &BeingRecv::processBeingMove, 20150513); packet(SMSG_PLAYER_HEAL, 0x0a27, 8, &PlayerRecv::processPlayerHeal, 20150513); + packet(SMSG_HOMUNCULUS_INFO, 0x09f7, 75, &HomunculusRecv::processHomunculusInfo, 20150513); } // 20150805 |