diff options
-rw-r--r-- | src/net/eathena/beingrecv.cpp | 18 | ||||
-rw-r--r-- | src/net/eathena/beingrecv.h | 3 | ||||
-rw-r--r-- | src/net/eathena/packetsin.inc | 31 |
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); |