diff options
Diffstat (limited to 'src/net')
-rw-r--r-- | src/net/eathena/packetsin.inc | 8 | ||||
-rw-r--r-- | src/net/eathena/refinerecv.cpp | 20 | ||||
-rw-r--r-- | src/net/eathena/refinerecv.h | 1 |
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 |