From c1b0e49636cbc2a08f7690c33a6367542f6857b3 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sat, 6 Sep 2014 00:26:49 +0300 Subject: eathena: add packet SMSG_BEING_STATUS_CHANGE2 0x043f. --- src/net/eathena/beinghandler.cpp | 7 ++++++- src/net/eathena/packets.h | 2 +- src/net/eathena/protocol.h | 1 + 3 files changed, 8 insertions(+), 2 deletions(-) (limited to 'src/net/eathena') diff --git a/src/net/eathena/beinghandler.cpp b/src/net/eathena/beinghandler.cpp index baaa3eccc..bff076502 100644 --- a/src/net/eathena/beinghandler.cpp +++ b/src/net/eathena/beinghandler.cpp @@ -83,6 +83,7 @@ BeingHandler::BeingHandler(const bool enableSync) : SMSG_PLAYER_MOVE_TO_ATTACK, SMSG_PLAYER_STATUS_CHANGE, SMSG_BEING_STATUS_CHANGE, + SMSG_BEING_STATUS_CHANGE2, SMSG_BEING_RESURRECT, SMSG_SOLVE_CHAR_NAME, SMSG_BEING_SPAWN, @@ -194,6 +195,7 @@ void BeingHandler::handleMessage(Net::MessageIn &msg) break; case SMSG_BEING_STATUS_CHANGE: + case SMSG_BEING_STATUS_CHANGE2: processBeingStatusChange(msg); break; @@ -903,11 +905,14 @@ void BeingHandler::processBeingStatusChange(Net::MessageIn &msg) const return; } + const bool status1 = msg.getId() == SMSG_BEING_STATUS_CHANGE; + // Status change const uint16_t status = msg.readInt16("status"); const int id = msg.readInt32("being id"); const bool flag = msg.readUInt8("flag: 0: stop, 1: start"); - msg.readInt32("total"); + if (status1) + msg.readInt32("total"); msg.readInt32("left"); msg.readInt32("val1"); msg.readInt32("val2"); diff --git a/src/net/eathena/packets.h b/src/net/eathena/packets.h index 6775691f1..5483cf138 100644 --- a/src/net/eathena/packets.h +++ b/src/net/eathena/packets.h @@ -130,7 +130,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, - 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, 25, // #0x0440 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, diff --git a/src/net/eathena/protocol.h b/src/net/eathena/protocol.h index aa1ed94c2..12e307846 100644 --- a/src/net/eathena/protocol.h +++ b/src/net/eathena/protocol.h @@ -108,6 +108,7 @@ #define SMSG_PLAYER_STATUS_CHANGE 0x0119 #define SMSG_PLAYER_GUILD_PARTY_INFO 0x0195 #define SMSG_BEING_STATUS_CHANGE 0x0983 +#define SMSG_BEING_STATUS_CHANGE2 0x043f #define SMSG_NPC_MESSAGE 0x00b4 #define SMSG_NPC_NEXT 0x00b5 -- cgit v1.2.3-70-g09d2