summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2019-05-14 22:51:47 +0300
committerAndrei Karas <akaras@inbox.ru>2019-05-14 22:51:47 +0300
commit29566fffe9a65329a88b4dab08bf8a6ce25e215c (patch)
treeb2491acc2ae831ddb1fa64e310d2918d64f32f78
parent38f418870341b9f6c95a1b6cb16b6ad5c2d0a12f (diff)
downloadmanaplus-29566fffe9a65329a88b4dab08bf8a6ce25e215c.tar.gz
manaplus-29566fffe9a65329a88b4dab08bf8a6ce25e215c.tar.bz2
manaplus-29566fffe9a65329a88b4dab08bf8a6ce25e215c.tar.xz
manaplus-29566fffe9a65329a88b4dab08bf8a6ce25e215c.zip
Add packet SMSG_REFINE_ADD_ITEM 0x0aa2
-rw-r--r--src/net/eathena/packetsin.inc8
-rw-r--r--src/net/eathena/refinerecv.cpp20
-rw-r--r--src/net/eathena/refinerecv.h1
3 files changed, 29 insertions, 0 deletions
diff --git a/src/net/eathena/packetsin.inc b/src/net/eathena/packetsin.inc
index 753b8a66f..d83a51a40 100644
--- a/src/net/eathena/packetsin.inc
+++ b/src/net/eathena/packetsin.inc
@@ -1119,10 +1119,17 @@ if (packetVersion >= 20161026)
packet(SMSG_GUILD_MEMBER_LIST, 0x0aa5, -1, &GuildRecv::processGuildMemberList, 20161026);
}
+// 20161109 re
+if (packetVersionRe >= 20161109)
+{
+ packet(SMSG_REFINE_ADD_ITEM, 0x0aa2, -1, &RefineRecv::processRefineAddItem, 20161109);
+}
+
// 20161130 main
if (packetVersionMain >= 20161130)
{
packet(SMSG_REFINE_WINDOW_OPEN, 0x0aa0, 2, &RefineRecv::processRefineOpen, 20161130);
+ packet(SMSG_REFINE_ADD_ITEM, 0x0aa2, -1, &RefineRecv::processRefineAddItem, 20161130);
}
// 20161130 re
@@ -1273,6 +1280,7 @@ if (packets_zero == true)
packet(SMSG_ROULETTE_CLOSE, 0x0a1e, 3, &RouletteRecv::processRouletteClose, 20171018);
packet(SMSG_MERGE_ITEM, 0x096d, -1, &InventoryRecv::processMergeItem, 20171018);
packet(SMSG_ACK_MERGE_ITEMS, 0x096f, 7, &InventoryRecv::processMergeItemResponse, 20171018);
+ packet(SMSG_REFINE_ADD_ITEM, 0x0aa2, -1, &RefineRecv::processRefineAddItem, 20171018);
}
// 20171019 zero
diff --git a/src/net/eathena/refinerecv.cpp b/src/net/eathena/refinerecv.cpp
index 5a9903864..5a66435a1 100644
--- a/src/net/eathena/refinerecv.cpp
+++ b/src/net/eathena/refinerecv.cpp
@@ -26,6 +26,8 @@
#include "debug.h"
+extern int itemIdLen;
+
namespace EAthena
{
@@ -34,4 +36,22 @@ void RefineRecv::processRefineOpen(Net::MessageIn &msg)
UNIMPLEMENTEDPACKET;
}
+void RefineRecv::processRefineAddItem(Net::MessageIn &msg)
+{
+ UNIMPLEMENTEDPACKET;
+ int blockSize = 7;
+ if (itemIdLen == 4)
+ blockSize += 2;
+
+ const int count = (msg.readInt16("len") - 7) / blockSize;
+ msg.readInt16("item index");
+ msg.readUInt8("blacksmith blessing");
+ for (int f = 0; f < count; f ++)
+ {
+ msg.readItemId("item id");
+ msg.readUInt8("chance");
+ msg.readInt32("money");
+ }
+}
+
} // namespace EAthena
diff --git a/src/net/eathena/refinerecv.h b/src/net/eathena/refinerecv.h
index 6f706b42c..6334ffe9b 100644
--- a/src/net/eathena/refinerecv.h
+++ b/src/net/eathena/refinerecv.h
@@ -31,6 +31,7 @@ namespace EAthena
namespace RefineRecv
{
void processRefineOpen(Net::MessageIn &msg);
+ void processRefineAddItem(Net::MessageIn &msg);
} // namespace RefineRecv
} // namespace EAthena