summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/net/eathena/loginrecv.cpp26
-rw-r--r--src/net/eathena/loginrecv.h3
-rw-r--r--src/net/eathena/packetsin.inc32
3 files changed, 61 insertions, 0 deletions
diff --git a/src/net/eathena/loginrecv.cpp b/src/net/eathena/loginrecv.cpp
index cfd067cf7..047c243e9 100644
--- a/src/net/eathena/loginrecv.cpp
+++ b/src/net/eathena/loginrecv.cpp
@@ -303,4 +303,30 @@ void LoginRecv::processLoginData(Net::MessageIn &msg)
client->setState(State::WORLD_SELECT);
}
+void LoginRecv::processLoginOtp1(Net::MessageIn &msg)
+{
+ UNIMPLEMENTEDPACKET;
+ const int tokenLen = msg.readInt16("len") - 8;
+ msg.readInt32("login flag");
+ msg.readString(tokenLen, "token");
+}
+
+void LoginRecv::processLoginOtp2(Net::MessageIn &msg)
+{
+ UNIMPLEMENTEDPACKET;
+ const int tokenLen = msg.readInt16("len") - 14;
+ msg.readInt32("login flag");
+ msg.readString(6, "login flag2");
+ msg.readString(tokenLen, "token");
+}
+
+void LoginRecv::processLoginOtp3(Net::MessageIn &msg)
+{
+ UNIMPLEMENTEDPACKET;
+ const int tokenLen = msg.readInt16("len") - 28;
+ msg.readInt32("login flag");
+ msg.readString(20, "login flag2");
+ msg.readString(tokenLen, "token");
+}
+
} // namespace EAthena
diff --git a/src/net/eathena/loginrecv.h b/src/net/eathena/loginrecv.h
index f21f6eae7..4065c264f 100644
--- a/src/net/eathena/loginrecv.h
+++ b/src/net/eathena/loginrecv.h
@@ -38,6 +38,9 @@ namespace EAthena
void processCondingKey(Net::MessageIn &msg);
void processCharPasswordResponse(Net::MessageIn &msg);
void processLoginData(Net::MessageIn &msg);
+ void processLoginOtp1(Net::MessageIn &msg);
+ void processLoginOtp2(Net::MessageIn &msg);
+ void processLoginOtp3(Net::MessageIn &msg);
} // namespace LoginRecv
} // namespace EAthena
diff --git a/src/net/eathena/packetsin.inc b/src/net/eathena/packetsin.inc
index 051ab8b2c..848e6c221 100644
--- a/src/net/eathena/packetsin.inc
+++ b/src/net/eathena/packetsin.inc
@@ -1137,10 +1137,17 @@ if (packetVersionMain >= 20170502)
packet(SMSG_SKILL_WARP_POINT, 0x0abe, -1, &SkillRecv::processSkillWarpPoint2, 20170502);
}
+// 20170621 main
+if (packetVersionMain >= 20170621)
+{
+ packet(SMSG_LOGIN_OTP, 0x0ad1, -1, &LoginRecv::processLoginOtp1, 20170621);
+}
+
// 20170621 re
if (packetVersionRe >= 20170621)
{
packet(SMSG_ITEM_PREVIEW1, 0x0ab9, 39, &InventoryRecv::processShowItemPreview1, 20170621);
+ packet(SMSG_LOGIN_OTP, 0x0ad1, -1, &LoginRecv::processLoginOtp1, 20170621);
}
// 20170726 main
@@ -1170,6 +1177,7 @@ if (packets_zero == true)
packet(SMSG_ACHIEVEMENT_UPDATE, 0x0a24, 66, &AchievementRecv::processAchievementUpdate, 20171018);
packet(SMSG_ACHIEVEMENT_GET_REWARD, 0x0a26, 6, &AchievementRecv::processAchievementGetReward, 20171018);
packet(SMSG_ITEM_PREVIEW1, 0x0ab9, 39, &InventoryRecv::processShowItemPreview1, 20171018);
+ packet(SMSG_LOGIN_OTP, 0x0ad1, -1, &LoginRecv::processLoginOtp1, 20171018);
}
// 20171019 zero
@@ -1190,6 +1198,12 @@ if (packetVersionMain >= 20171108)
packet(SMSG_OVERWEIGHT_PERCENT, 0x0ade, 6, &InventoryRecv::processOverWeightPercent, 20171108);
}
+// 20171123 zero
+if (packetVersionZero >= 20171123)
+{
+ packet(SMSG_LOGIN_OTP, 0x0ae3, -1, &LoginRecv::processLoginOtp2, 20171123);
+}
+
// 20171207
if (packetVersion >= 20171207)
{
@@ -1197,6 +1211,24 @@ if (packetVersion >= 20171207)
packet(SMSG_PARTY_INFO, 0x0ae5, -1, &PartyRecv::processPartyInfo, 20171207);
}
+// 20171213 main
+if (packetVersionMain >= 20171213)
+{
+ packet(SMSG_LOGIN_OTP, 0x0ae3, -1, &LoginRecv::processLoginOtp3, 20171213);
+}
+
+// 20171213 re
+if (packetVersionRe >= 20171213)
+{
+ packet(SMSG_LOGIN_OTP, 0x0ae3, -1, &LoginRecv::processLoginOtp3, 20171213);
+}
+
+// 20171808 zero
+if (packetVersionZero >= 20171808)
+{
+ packet(SMSG_LOGIN_OTP, 0x0ae3, -1, &LoginRecv::processLoginOtp3, 20171808);
+}
+
// main 20180124
if (packetVersionMain >= 20180124)
{