summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/net/eathena/charserverrecv.cpp5
-rw-r--r--src/net/eathena/guildrecv.cpp1
-rw-r--r--src/net/eathena/loginrecv.cpp17
3 files changed, 21 insertions, 2 deletions
diff --git a/src/net/eathena/charserverrecv.cpp b/src/net/eathena/charserverrecv.cpp
index 44c90a227..13a374533 100644
--- a/src/net/eathena/charserverrecv.cpp
+++ b/src/net/eathena/charserverrecv.cpp
@@ -276,6 +276,11 @@ void CharServerRecv::processCharMapInfo(Net::MessageIn &restrict msg)
server.hostname = ipToString(msg.readInt32("map ip address"));
}
server.port = msg.readInt16("map ip port");
+ if (msg.getVersion() >= 20170329)
+ {
+ for (int f = 0; f < 32; f ++)
+ msg.readInt32("unused");
+ }
// Prevent the selected local player from being deleted
localPlayer = charServerHandler->mSelectedCharacter->dummy;
diff --git a/src/net/eathena/guildrecv.cpp b/src/net/eathena/guildrecv.cpp
index 741fcd6d8..7f17f57db 100644
--- a/src/net/eathena/guildrecv.cpp
+++ b/src/net/eathena/guildrecv.cpp
@@ -226,6 +226,7 @@ void GuildRecv::processGuildMemberList(Net::MessageIn &msg)
}
else
{
+ msg.readInt32("last login"); // for now unused
continue;
}
diff --git a/src/net/eathena/loginrecv.cpp b/src/net/eathena/loginrecv.cpp
index 38ee44e28..b9abf20aa 100644
--- a/src/net/eathena/loginrecv.cpp
+++ b/src/net/eathena/loginrecv.cpp
@@ -225,7 +225,20 @@ void LoginRecv::processLoginData(Net::MessageIn &msg)
loginHandler->clearWorlds();
- const int worldCount = (msg.getLength() - 47) / 32;
+ int offset = 0;
+ int serverLen = 0;
+ if (msg.getVersion() >= 20170315)
+ {
+ offset = 47 + 17;
+ serverLen = 32 + 128;
+ }
+ else
+ {
+ offset = 47;
+ serverLen = 32;
+ }
+
+ const int worldCount = (msg.getLength() - offset) / serverLen;
Ea::LoginRecv::mToken.session_ID1 = msg.readInt32("session id1");
Ea::LoginRecv::mToken.account_ID = msg.readBeingId("accound id");
@@ -262,7 +275,7 @@ void LoginRecv::processLoginData(Net::MessageIn &msg)
if (msg.getVersion() >= 20170315)
{
for (int f = 0; f < 32; f ++)
- msg.readUInt8("unused2");
+ msg.readInt32("unused2");
}
logger->log("Network: Server: %s (%s:%d)", world->name.c_str(),