summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-09-15 11:22:51 +0300
committerAndrei Karas <akaras@inbox.ru>2014-09-15 11:22:51 +0300
commit4aebda1ff020b2fcbf8aaaeea96188dedcae030b (patch)
tree853002adfccd42b03cd2cefae4b87049574306b0
parent2092efd689b7a0881bc9c7b3038e5f2e53a1ba21 (diff)
downloadplus-4aebda1ff020b2fcbf8aaaeea96188dedcae030b.tar.gz
plus-4aebda1ff020b2fcbf8aaaeea96188dedcae030b.tar.bz2
plus-4aebda1ff020b2fcbf8aaaeea96188dedcae030b.tar.xz
plus-4aebda1ff020b2fcbf8aaaeea96188dedcae030b.zip
eathena: add partial support for packet SMSG_ADMIN_ACCOUNT_STATS 0x0214.
-rw-r--r--src/net/eathena/adminhandler.cpp35
-rw-r--r--src/net/eathena/adminhandler.h2
-rw-r--r--src/net/eathena/packets.h2
-rw-r--r--src/net/eathena/protocol.h1
4 files changed, 39 insertions, 1 deletions
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