From 4aebda1ff020b2fcbf8aaaeea96188dedcae030b Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Mon, 15 Sep 2014 11:22:51 +0300 Subject: eathena: add partial support for packet SMSG_ADMIN_ACCOUNT_STATS 0x0214. --- src/net/eathena/adminhandler.cpp | 35 +++++++++++++++++++++++++++++++++++ src/net/eathena/adminhandler.h | 2 ++ src/net/eathena/packets.h | 2 +- src/net/eathena/protocol.h | 1 + 4 files changed, 39 insertions(+), 1 deletion(-) diff --git a/src/net/eathena/adminhandler.cpp b/src/net/eathena/adminhandler.cpp index 2883ff524..009a596e6 100644 --- a/src/net/eathena/adminhandler.cpp +++ b/src/net/eathena/adminhandler.cpp @@ -48,6 +48,7 @@ AdminHandler::AdminHandler() : SMSG_ADMIN_KICK_ACK, SMSG_ADMIN_GET_LOGIN_ACK, SMSG_ADMIN_SET_TILE_TYPE, + SMSG_ADMIN_ACCOUNT_STATS, 0 }; handledMessages = _messages; @@ -70,6 +71,9 @@ void AdminHandler::handleMessage(Net::MessageIn &msg) case SMSG_ADMIN_SET_TILE_TYPE: processSetTileType(msg); break; + case SMSG_ADMIN_ACCOUNT_STATS: + processAccountStats(msg); + break; default: break; } @@ -206,4 +210,35 @@ void AdminHandler::requestStats(const std::string &name) outMsg.writeString(name, 24); } +void AdminHandler::processAccountStats(Net::MessageIn &msg) +{ + // +++ need show in other players stats window, nick in mStatsName + msg.readUInt8("str"); + msg.readUInt8("need str"); + msg.readUInt8("agi"); + msg.readUInt8("need agi"); + msg.readUInt8("vit"); + msg.readUInt8("need vit"); + msg.readUInt8("int"); + msg.readUInt8("need int"); + msg.readUInt8("dex"); + msg.readUInt8("need dex"); + msg.readUInt8("luk"); + msg.readUInt8("need luk"); + msg.readInt16("attack"); + msg.readInt16("refine"); + msg.readInt16("matk max"); + msg.readInt16("matk min"); + msg.readInt16("item def"); + msg.readInt16("plus def"); + msg.readInt16("mdef"); + msg.readInt16("plus mdef"); + msg.readInt16("hit"); + msg.readInt16("flee"); + msg.readInt16("flee2/10"); + msg.readInt16("cri/10"); + msg.readInt16("speed"); + msg.readInt16("zero"); +} + } // namespace EAthena diff --git a/src/net/eathena/adminhandler.h b/src/net/eathena/adminhandler.h index cfb33f7f4..eafa6f6a2 100644 --- a/src/net/eathena/adminhandler.h +++ b/src/net/eathena/adminhandler.h @@ -80,6 +80,8 @@ class AdminHandler final : public MessageHandler, public Ea::AdminHandler void processSetTileType(Net::MessageIn &msg); + void processAccountStats(Net::MessageIn &msg); + std::string mStatsName; }; diff --git a/src/net/eathena/packets.h b/src/net/eathena/packets.h index e13762d33..b9c928b5e 100644 --- a/src/net/eathena/packets.h +++ b/src/net/eathena/packets.h @@ -84,7 +84,7 @@ int16_t packet_lengths[] = //0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 // #0x0200 26, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 19, 10, 0, 0, 0, - 22, -1, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 22, -1, 16, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 122, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // #0x0240 diff --git a/src/net/eathena/protocol.h b/src/net/eathena/protocol.h index 123b36ef0..532549a8c 100644 --- a/src/net/eathena/protocol.h +++ b/src/net/eathena/protocol.h @@ -167,6 +167,7 @@ #define SMSG_ADMIN_KICK_ACK 0x00cd #define SMSG_ADMIN_GET_LOGIN_ACK 0x01e0 #define SMSG_ADMIN_SET_TILE_TYPE 0x0192 +#define SMSG_ADMIN_ACCOUNT_STATS 0x0214 #define SMSG_GUILD_CREATE_RESPONSE 0x0167 #define SMSG_GUILD_POSITION_INFO 0x016c -- cgit v1.2.3-70-g09d2