diff options
author | Andrei Karas <akaras@inbox.ru> | 2017-08-16 19:41:24 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2017-08-16 19:41:24 +0300 |
commit | 23a9bf91fc75a208b62e8c8a3ce8e5e5bb42ef36 (patch) | |
tree | a30e292c314e97df52619ff5fc2373ea694bcd0e /src | |
parent | a4a23b1e0188f47d21a568447d93a1ac4562324d (diff) | |
download | mv-23a9bf91fc75a208b62e8c8a3ce8e5e5bb42ef36.tar.gz mv-23a9bf91fc75a208b62e8c8a3ce8e5e5bb42ef36.tar.bz2 mv-23a9bf91fc75a208b62e8c8a3ce8e5e5bb42ef36.tar.xz mv-23a9bf91fc75a208b62e8c8a3ce8e5e5bb42ef36.zip |
Load evol packet offset from first packet from server.
Diffstat (limited to 'src')
-rw-r--r-- | src/client.cpp | 2 | ||||
-rw-r--r-- | src/net/eathena/loginrecv.cpp | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/src/client.cpp b/src/client.cpp index ef0e5af31..d67b58dce 100644 --- a/src/client.cpp +++ b/src/client.cpp @@ -180,6 +180,7 @@ LoginData loginData; Client *client = nullptr; extern FPSmanager fpsManager; +extern int evolPacketOffset; volatile bool runCounters; bool isSafeMode = false; @@ -1961,6 +1962,7 @@ void Client::unloadData() serverVersion = 0; packetVersion = 0; tmwServerVersion = 0; + evolPacketOffset = 0; } void Client::runValidate() diff --git a/src/net/eathena/loginrecv.cpp b/src/net/eathena/loginrecv.cpp index b9abf20aa..555d1a2c1 100644 --- a/src/net/eathena/loginrecv.cpp +++ b/src/net/eathena/loginrecv.cpp @@ -45,6 +45,7 @@ #include "debug.h" extern int packetVersion; +extern int evolPacketOffset; namespace EAthena { @@ -153,7 +154,7 @@ void LoginRecv::processUpdateHost2(Net::MessageIn &msg) void LoginRecv::processServerVersion(Net::MessageIn &msg) { - msg.readInt16("len"); + const int len = msg.readInt16("len"); msg.readInt32("unused"); serverVersion = msg.readInt32("server version"); if (serverVersion > 0) @@ -167,6 +168,10 @@ void LoginRecv::processServerVersion(Net::MessageIn &msg) logger->log("autofix Hercules packet version to: %d", packetVersion); } + if (serverVersion >= 16 && len >= 18) + { + evolPacketOffset = msg.readInt16("evol packet offset"); + } } else { |