From df01c98c8a7c0b45de0b67cf484994e5886fef4d Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Mon, 8 Sep 2014 23:54:29 +0300 Subject: eathena: add partial support for packet SMSG_RANKS_LIST 0x097d. --- src/net/eathena/beinghandler.cpp | 17 +++++++++++++++++ src/net/eathena/beinghandler.h | 2 ++ src/net/eathena/packets.h | 2 +- src/net/eathena/protocol.h | 1 + 4 files changed, 21 insertions(+), 1 deletion(-) (limited to 'src/net') diff --git a/src/net/eathena/beinghandler.cpp b/src/net/eathena/beinghandler.cpp index 7a45bb346..958cd1391 100644 --- a/src/net/eathena/beinghandler.cpp +++ b/src/net/eathena/beinghandler.cpp @@ -97,6 +97,7 @@ BeingHandler::BeingHandler(const bool enableSync) : SMSG_MONSTER_HP, SMSG_PLAYER_HP, SMSG_SKILL_AUTO_CAST, + SMSG_RANKS_LIST, 0 }; handledMessages = _messages; @@ -235,6 +236,10 @@ void BeingHandler::handleMessage(Net::MessageIn &msg) processMonsterHp(msg); break; + case SMSG_RANKS_LIST: + processRanksList(msg); + break; + default: break; } @@ -1093,4 +1098,16 @@ void BeingHandler::processSkillAutoCast(Net::MessageIn &msg) const msg.readInt8("unused"); } +void BeingHandler::processRanksList(Net::MessageIn &msg) const +{ + // +++ here need window with rank tables. + msg.readInt16("rank type"); + for (int f = 0; f < 10; f ++) + { + msg.readString(24, "name"); + msg.readInt32("points"); + } + msg.readInt32("my points"); +} + } // namespace EAthena diff --git a/src/net/eathena/beinghandler.h b/src/net/eathena/beinghandler.h index e17ea3306..344a672b1 100644 --- a/src/net/eathena/beinghandler.h +++ b/src/net/eathena/beinghandler.h @@ -67,6 +67,8 @@ class BeingHandler final : public MessageHandler, public Ea::BeingHandler void processMonsterHp(Net::MessageIn &msg) const; void processSkillAutoCast(Net::MessageIn &msg) const; + + void processRanksList(Net::MessageIn &msg) const; }; } // namespace EAthena diff --git a/src/net/eathena/packets.h b/src/net/eathena/packets.h index a4fdf0416..6605600b7 100644 --- a/src/net/eathena/packets.h +++ b/src/net/eathena/packets.h @@ -245,7 +245,7 @@ int16_t packet_lengths[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 31, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, + 31, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 288, 0, 0, // #0x0980 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, -1, -1, 0, 0, -1, -1, 0, 0, 11, 9, 8, 0, 0, 0, 0, diff --git a/src/net/eathena/protocol.h b/src/net/eathena/protocol.h index ca29b44b3..db7ed985e 100644 --- a/src/net/eathena/protocol.h +++ b/src/net/eathena/protocol.h @@ -197,6 +197,7 @@ #define SMSG_QUEST_REMOVE 0x02b4 #define SMSG_MVP 0x010c +#define SMSG_RANKS_LIST 0x097d #define SMSG_MONSTER_HP 0x0977 #define SMSG_PLAYER_HP 0x080e -- cgit v1.2.3-70-g09d2