summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2017-06-28 00:37:59 +0300
committerAndrei Karas <akaras@inbox.ru>2017-06-28 01:59:05 +0300
commit4d94a44a3acf77653b4e4782009a49293b96c35d (patch)
tree3afea714b1941e9db8ab7a536b6b8875365dee97
parente1be87443d6d7c463f1751678fe1c556d1ba9092 (diff)
downloadmanaverse-4d94a44a3acf77653b4e4782009a49293b96c35d.tar.gz
manaverse-4d94a44a3acf77653b4e4782009a49293b96c35d.tar.bz2
manaverse-4d94a44a3acf77653b4e4782009a49293b96c35d.tar.xz
manaverse-4d94a44a3acf77653b4e4782009a49293b96c35d.zip
Add packet SMSG_PARTY_MEMBER_INFO 0x0a43.
-rw-r--r--src/net/eathena/packetsin.inc6
-rw-r--r--src/net/eathena/partyrecv.cpp8
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);
}
}