diff options
-rw-r--r-- | src/net/eathena/packetsin.inc | 6 | ||||
-rw-r--r-- | src/net/eathena/partyrecv.cpp | 8 |
2 files changed, 14 insertions, 0 deletions
diff --git a/src/net/eathena/packetsin.inc b/src/net/eathena/packetsin.inc index 11276f899..0c2695589 100644 --- a/src/net/eathena/packetsin.inc +++ b/src/net/eathena/packetsin.inc @@ -906,6 +906,12 @@ if (packetVersion >= 20170329) packet(SMSG_CHAR_MAP_INFO, 0x0ac5, 156, &CharServerRecv::processCharMapInfo, 20170329); } +// 20170502 +if (packetVersion >= 20170502) +{ + packet(SMSG_PARTY_MEMBER_INFO, 0x0a43, 85, &PartyRecv::processPartyMemberInfo, 20170502); +} + // 0 // evol always packets packet(SMSG_SERVER_VERSION_RESPONSE, 0x7531, -1, &LoginRecv::processServerVersion, 0); diff --git a/src/net/eathena/partyrecv.cpp b/src/net/eathena/partyrecv.cpp index 0947a525e..a7d25ef32 100644 --- a/src/net/eathena/partyrecv.cpp +++ b/src/net/eathena/partyrecv.cpp @@ -57,6 +57,12 @@ void PartyRecv::processPartyMemberInfo(Net::MessageIn &msg) { const BeingId id = msg.readBeingId("account id"); const bool leader = msg.readInt32("leader") == 0U; + int level = 0; + if (msg.getVersion() >= 20170502) + { + msg.readInt16("class"); + level = msg.readInt16("level"); + } const int x = msg.readInt16("x"); const int y = msg.readInt16("y"); const bool online = msg.readInt8("online") == 0U; @@ -79,6 +85,8 @@ void PartyRecv::processPartyMemberInfo(Net::MessageIn &msg) member->setMap(map); member->setX(x); member->setY(y); + if (level != 0) + member->setLevel(level); } } |