summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2018-05-04 20:19:01 +0300
committerAndrei Karas <akaras@inbox.ru>2018-05-04 20:19:41 +0300
commit6fc7588ac000fbe5132ea81017cfd360c3566a06 (patch)
treedee692cb916bd3ab388a650726a649eb4ad52680 /src
parent1415b89614adca023caafd98a66adee716bc9299 (diff)
downloadmanaverse-6fc7588ac000fbe5132ea81017cfd360c3566a06.tar.gz
manaverse-6fc7588ac000fbe5132ea81017cfd360c3566a06.tar.bz2
manaverse-6fc7588ac000fbe5132ea81017cfd360c3566a06.tar.xz
manaverse-6fc7588ac000fbe5132ea81017cfd360c3566a06.zip
Add packets 0x08bb SMSG_CHAR_PINCODE_MAKE_STATUS and 0x08bf SMSG_CHAR_PINCODE_EDIT_STATUS.
Also add new drop packet for non zero protocol.
Diffstat (limited to 'src')
-rw-r--r--src/net/eathena/charserverrecv.cpp14
-rw-r--r--src/net/eathena/charserverrecv.h2
-rw-r--r--src/net/eathena/itemrecv.cpp3
-rw-r--r--src/net/eathena/packetsin.inc8
4 files changed, 26 insertions, 1 deletions
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);