From 6fc7588ac000fbe5132ea81017cfd360c3566a06 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Fri, 4 May 2018 20:19:01 +0300 Subject: Add packets 0x08bb SMSG_CHAR_PINCODE_MAKE_STATUS and 0x08bf SMSG_CHAR_PINCODE_EDIT_STATUS. Also add new drop packet for non zero protocol. --- src/net/eathena/charserverrecv.cpp | 14 ++++++++++++++ src/net/eathena/charserverrecv.h | 2 ++ src/net/eathena/itemrecv.cpp | 3 ++- src/net/eathena/packetsin.inc | 8 ++++++++ 4 files changed, 26 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/net/eathena/charserverrecv.cpp b/src/net/eathena/charserverrecv.cpp index ece603ac2..85662e92b 100644 --- a/src/net/eathena/charserverrecv.cpp +++ b/src/net/eathena/charserverrecv.cpp @@ -383,6 +383,20 @@ void CharServerRecv::processPincodeStatus(Net::MessageIn &msg) client->updatePinState(); } +void CharServerRecv::processPincodeMakeStatus(Net::MessageIn &msg) +{ + // UNIMPLEMENTEDPACKET + msg.readInt16("state"); + msg.readInt32("seed"); +} + +void CharServerRecv::processPincodeEditStatus(Net::MessageIn &msg) +{ + // UNIMPLEMENTEDPACKET + msg.readInt16("state"); + msg.readInt32("seed"); +} + void CharServerRecv::processCharCreate(Net::MessageIn &msg) { BLOCK_START("CharServerRecv::processCharCreate") diff --git a/src/net/eathena/charserverrecv.h b/src/net/eathena/charserverrecv.h index 3ad63a311..5b776f82d 100644 --- a/src/net/eathena/charserverrecv.h +++ b/src/net/eathena/charserverrecv.h @@ -44,6 +44,8 @@ namespace EAthena void readPlayerData(Net::MessageIn &msg, Net::Character *const character); void processPincodeStatus(Net::MessageIn &msg); + void processPincodeMakeStatus(Net::MessageIn &msg); + void processPincodeEditStatus(Net::MessageIn &msg); void processCharLogin2(Net::MessageIn &msg); void processCharCreate(Net::MessageIn &msg); void processCharCheckRename(Net::MessageIn &msg); diff --git a/src/net/eathena/itemrecv.cpp b/src/net/eathena/itemrecv.cpp index 96c4245c8..9b8fb3400 100644 --- a/src/net/eathena/itemrecv.cpp +++ b/src/net/eathena/itemrecv.cpp @@ -32,6 +32,7 @@ #include "debug.h" +extern int packetVersion; extern bool packets_zero; namespace EAthena @@ -51,7 +52,7 @@ void ItemRecv::processItemDropped(Net::MessageIn &msg) const int subX = CAST_S32(msg.readInt8("subx")); const int subY = CAST_S32(msg.readInt8("suby")); const int amount = msg.readInt16("count"); - if (packets_zero) + if (packets_zero || packetVersion >= 20180418) { msg.readUInt8("show drop effect"); msg.readInt16("show effect mode"); diff --git a/src/net/eathena/packetsin.inc b/src/net/eathena/packetsin.inc index 74dd99152..3130d2285 100644 --- a/src/net/eathena/packetsin.inc +++ b/src/net/eathena/packetsin.inc @@ -86,6 +86,8 @@ packet(SMSG_CHAR_LOGIN2, 0x082d, -1, &CharServerRecv::process packet(SMSG_CHAR_LOGIN_ERROR, 0x006c, 3, &Ea::CharServerRecv::processCharLoginError, 0); packet(SMSG_CHAR_MAP_INFO, 0x0071, 28, &CharServerRecv::processCharMapInfo, 0); packet(SMSG_CHAR_PINCODE_STATUS, 0x08b9, 12, &CharServerRecv::processPincodeStatus, 0); +packet(SMSG_CHAR_PINCODE_MAKE_STATUS, 0x08bb, 8, &CharServerRecv::processPincodeMakeStatus, 0); +packet(SMSG_CHAR_PINCODE_EDIT_STATUS, 0x08bf, 8, &CharServerRecv::processPincodeEditStatus, 0); packet(SMSG_CHAR_RENAME, 0x0290, 4, &CharServerRecv::processCharRename, 0); packet(SMSG_MAP_NOT_FOUND, 0x0840, -1, &GeneralRecv::processMapNotFound, 0); @@ -1060,6 +1062,12 @@ if (packetVersionMain >= 20180404) packet(SMSG_OPEN_WINDOW2, 0x0ae2, 7, &AttendanceRecv::processOpenWindow, 20180404); } +// 20180418 +if (packetVersion == 20180418) +{ + packet(SMSG_ITEM_DROPPED, 0x0add, 22, &ItemRecv::processItemDropped, 20180418); +} + // 0 // evol always packets packet(SMSG_SERVER_VERSION_RESPONSE, 0x7531, -1, &LoginRecv::processServerVersion, 0); -- cgit v1.2.3-60-g2f50