summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2017-08-10 04:48:56 +0300
committerAndrei Karas <akaras@inbox.ru>2017-08-10 04:48:56 +0300
commitbddc79db0e77399f5915729a7050f6e1c6b07ce4 (patch)
tree42df26cc38869a49c1ac3d4dd46f77809acb9cbf
parent7942effd7a11d3a43adb64b5a3e1dfb687f9fd75 (diff)
downloadmanaplus-bddc79db0e77399f5915729a7050f6e1c6b07ce4.tar.gz
manaplus-bddc79db0e77399f5915729a7050f6e1c6b07ce4.tar.bz2
manaplus-bddc79db0e77399f5915729a7050f6e1c6b07ce4.tar.xz
manaplus-bddc79db0e77399f5915729a7050f6e1c6b07ce4.zip
Read whole packet in processPlayerStatusChange if being not found.
-rw-r--r--src/net/eathena/beingrecv.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/net/eathena/beingrecv.cpp b/src/net/eathena/beingrecv.cpp
index c7c0c801c..95cb677bd 100644
--- a/src/net/eathena/beingrecv.cpp
+++ b/src/net/eathena/beingrecv.cpp
@@ -1528,7 +1528,16 @@ void BeingRecv::processPlayerStatusChange(Net::MessageIn &msg)
const BeingId id = msg.readBeingId("account id");
Being *const dstBeing = actorManager->findBeing(id);
if (dstBeing == nullptr)
+ {
+ msg.readInt16("opt1");
+ msg.readInt16("opt2");
+ if (msg.getVersion() >= 7)
+ msg.readInt32("option");
+ else
+ msg.readInt16("option");
+ msg.readUInt8("karma");
return;
+ }
const uint32_t opt1 = msg.readInt16("opt1");
const uint32_t opt2 = msg.readInt16("opt2");