summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/net/eathena/beingrecv.cpp18
-rw-r--r--src/net/eathena/beingrecv.h3
-rw-r--r--src/net/eathena/packetsin.inc31
3 files changed, 43 insertions, 9 deletions
diff --git a/src/net/eathena/beingrecv.cpp b/src/net/eathena/beingrecv.cpp
index cbc295a5b..ea4fc096a 100644
--- a/src/net/eathena/beingrecv.cpp
+++ b/src/net/eathena/beingrecv.cpp
@@ -1393,13 +1393,27 @@ void BeingRecv::processSkillAutoCast(Net::MessageIn &msg)
}
}
-void BeingRecv::processRanksList(Net::MessageIn &msg)
+void BeingRecv::processRanksList1(Net::MessageIn &msg)
{
UNIMPLEMENTEDPACKET;
// +++ here need window with rank tables.
+ const int count = (msg.readInt16("len") - 4) / 28;
msg.readInt16("rank type");
- for (int f = 0; f < 10; f ++)
+ for (int f = 0; f < count; f ++)
+ {
msg.readString(24, "name");
+ msg.readInt32("points");
+ }
+ msg.readInt32("my points");
+}
+
+void BeingRecv::processRanksList2(Net::MessageIn &msg)
+{
+ UNIMPLEMENTEDPACKET;
+ // +++ here need window with rank tables.
+ msg.readInt16("rank type");
+ for (int f = 0; f < 10; f ++)
+ msg.readBeingId("char id");
for (int f = 0; f < 10; f ++)
msg.readInt32("points");
msg.readInt32("my points");
diff --git a/src/net/eathena/beingrecv.h b/src/net/eathena/beingrecv.h
index bab20c09b..16a788ab3 100644
--- a/src/net/eathena/beingrecv.h
+++ b/src/net/eathena/beingrecv.h
@@ -65,7 +65,8 @@ namespace EAthena
void processMonsterHp(Net::MessageIn &msg);
void processBeingHp(Net::MessageIn &msg);
void processSkillAutoCast(Net::MessageIn &msg);
- void processRanksList(Net::MessageIn &msg);
+ void processRanksList1(Net::MessageIn &msg);
+ void processRanksList2(Net::MessageIn &msg);
void processBeingChangeDirection(Net::MessageIn &msg);
void processBeingChangeLookContinue(const Net::MessageIn &msg,
Being *const dstBeing,
diff --git a/src/net/eathena/packetsin.inc b/src/net/eathena/packetsin.inc
index 0cdbf304e..5d6d72efc 100644
--- a/src/net/eathena/packetsin.inc
+++ b/src/net/eathena/packetsin.inc
@@ -772,12 +772,6 @@ if (packetVersion >= 20120419)
packet(SMSG_CHAR_CHARACTERS, 0x099d, -1, &CharServerRecv::processCharCharacters, 20120419);
}
-// 20120502
-if (packetVersion >= 20120502)
-{
- packet(SMSG_RANKS_LIST, 0x097d, 288, &BeingRecv::processRanksList, 20120502);
-}
-
// 20120618
if (packetVersion >= 20120618)
{
@@ -831,6 +825,18 @@ if (packetVersion >= 20130000)
packet(SMSG_ITEM_DROPPED, 0x084b, 19, &ItemRecv::processItemDropped, 20130000);
}
+// 20130529 re
+if (packetVersionRe >= 20130529)
+{
+ packet(SMSG_RANKS_LIST, 0x097d, 288, &BeingRecv::processRanksList1, 20130529);
+}
+
+// 20130605 main
+if (packetVersionMain >= 20130605)
+{
+ packet(SMSG_RANKS_LIST, 0x097d, 288, &BeingRecv::processRanksList1, 20130605);
+}
+
// 20130605 re
if (packetVersionRe >= 20130605)
{
@@ -1308,6 +1314,7 @@ if (packets_zero == true)
packet(SMSG_REFINE_ADD_ITEM, 0x0aa2, -1, &RefineRecv::processRefineAddItem, 20171018);
packet(SMSG_REFINE_ANNOUNCE, 0x0ada, 30, &RefineRecv::processRefineAnnounce, 20171018);
packet(SMSG_PLAYER_SHORTCUTS, 0x0a00, 269, &PlayerRecv::processPlayerShortcuts2, 20171018);
+ packet(SMSG_RANKS_LIST, 0x097d, 288, &BeingRecv::processRanksList1, 20130529);
}
// 20171019 zero
@@ -1809,6 +1816,18 @@ if (packetVersionZero >= 20190626)
packet(SMSG_HOMUNCULUS_INFO, 0x0b2f, 73, &HomunculusRecv::processHomunculusInfo3, 20190626);
}
+// 20190703 re
+if (packetVersionRe >= 20190703)
+{
+ packet(SMSG_RANKS_LIST, 0x097d, 88, &BeingRecv::processRanksList2, 20190703);
+}
+
+// 20190724 zero
+if (packetVersionZero >= 20190724)
+{
+ packet(SMSG_RANKS_LIST, 0x097d, 88, &BeingRecv::processRanksList2, 20190724);
+}
+
// 0
// evol always packets
packet(SMSG_SERVER_VERSION_RESPONSE, 0x7531, -1, &LoginRecv::processServerVersion, 0);