From 101c2a32bd0f059f2c3544d25e385c44a793a6a3 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Wed, 1 Apr 2015 15:36:32 +0300 Subject: eathena: add partial support for packet SMSG_CHAR_BAN_CHAR_LIST 0x020d. --- src/net/eathena/charserverhandler.cpp | 16 ++++++++++++++++ src/net/eathena/charserverhandler.h | 2 ++ src/net/eathena/packets.h | 2 +- src/net/eathena/protocol.h | 1 + 4 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/net/eathena/charserverhandler.cpp b/src/net/eathena/charserverhandler.cpp index 4573f1ebe..f813dce6e 100644 --- a/src/net/eathena/charserverhandler.cpp +++ b/src/net/eathena/charserverhandler.cpp @@ -97,6 +97,7 @@ CharServerHandler::CharServerHandler() : SMSG_CHAR_DELETE2_ACCEPT_ACTUAL_ACK, SMSG_CHAR_DELETE2_CANCEL_ACK, SMSG_CHAR_CHARACTERS, + SMSG_CHAR_BAN_CHAR_LIST, 0 }; handledMessages = _messages; @@ -179,6 +180,10 @@ void CharServerHandler::handleMessage(Net::MessageIn &msg) processCharCharacters(msg); break; + case SMSG_CHAR_BAN_CHAR_LIST: + processCharBanCharList(msg); + break; + default: break; } @@ -718,4 +723,15 @@ unsigned int CharServerHandler::hatSprite() const return 7; } +void CharServerHandler::processCharBanCharList(Net::MessageIn &msg) +{ + UNIMPLIMENTEDPACKET; + const int count = (msg.readInt16("len") - 4) / 24; + for (int f = 0; f < count; f ++) + { + msg.readInt32("char id"); + msg.readString(20, "unbun time"); + } +} + } // namespace EAthena diff --git a/src/net/eathena/charserverhandler.h b/src/net/eathena/charserverhandler.h index e646a2650..6c06c12ee 100644 --- a/src/net/eathena/charserverhandler.h +++ b/src/net/eathena/charserverhandler.h @@ -118,6 +118,8 @@ class CharServerHandler final : public MessageHandler, static void processCharCharacters(Net::MessageIn &msg); + static void processCharBanCharList(Net::MessageIn &msg); + private: static std::string mNewName; static uint32_t mPinSeed; diff --git a/src/net/eathena/packets.h b/src/net/eathena/packets.h index a8bf6dc50..08c45856b 100644 --- a/src/net/eathena/packets.h +++ b/src/net/eathena/packets.h @@ -83,7 +83,7 @@ int16_t packet_lengths[] = //0 1 2 3 4 5 6 7 8 9 a b c d e f //0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 // #0x0200 - 26, -1, 0, 0, 18, 26, 11, 34, 0, 36, 10, 19, 10, 0, 32, 0, + 26, -1, 0, 0, 18, 26, 11, 34, 0, 36, 10, 19, 10, -1, 32, 0, 22, -1, 16, 0, 42, 6, 6, 0, 0, 282, 282, 10, 10, 0, 0, 0, -1, -1, 0, 8, 10, 0, 282, 0, 0, 15, 0, 0, 0, 19, 71, 5, 12, 0, 0, 0, 0, -1, 0, 0, 282, 0, 4, 0, 6, 0, 0, 0, diff --git a/src/net/eathena/protocol.h b/src/net/eathena/protocol.h index ac2024cf8..29228ec96 100644 --- a/src/net/eathena/protocol.h +++ b/src/net/eathena/protocol.h @@ -56,6 +56,7 @@ #define SMSG_CHAR_DELETE2_CANCEL_ACK 0x082c #define SMSG_CHAR_MAP_INFO 0x0071 #define SMSG_CHAR_CHARACTERS 0x099d +#define SMSG_CHAR_BAN_CHAR_LIST 0x020d #define SMSG_CHAR_SWITCH_RESPONSE 0x00b3 #define SMSG_CHANGE_MAP_SERVER 0x0092 -- cgit v1.2.3-70-g09d2