diff options
-rw-r--r-- | src/net/eathena/loginrecv.cpp | 26 | ||||
-rw-r--r-- | src/net/eathena/loginrecv.h | 3 | ||||
-rw-r--r-- | src/net/eathena/packetsin.inc | 32 |
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) { |