From 93c40783e3fdc33cc82253d3927d2f508b7ebe1a Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Wed, 26 Sep 2018 04:27:48 +0300 Subject: Add packet SMSG_BEING_VIEW_EQUIPMENT2 0x0b03. --- src/net/eathena/beingrecv.cpp | 33 +++++++++++++++++++++++++++++++++ src/net/eathena/beingrecv.h | 1 + src/net/eathena/packetsin.inc | 6 ++++++ 3 files changed, 40 insertions(+) diff --git a/src/net/eathena/beingrecv.cpp b/src/net/eathena/beingrecv.cpp index 9a20c8357..a214dda39 100644 --- a/src/net/eathena/beingrecv.cpp +++ b/src/net/eathena/beingrecv.cpp @@ -2007,6 +2007,39 @@ void BeingRecv::processBeingViewEquipment(Net::MessageIn &msg) } } +void BeingRecv::processBeingViewEquipment2(Net::MessageIn &msg) +{ + UNIMPLEMENTEDPACKET; + + const int count = (msg.readInt16("len") - 47) / (21 + itemIdLen * 5); + msg.readString(24, "name"); + msg.readInt16("job"); + msg.readInt16("head"); + msg.readInt16("accessory"); + msg.readInt16("accessory2"); + msg.readInt16("accessory3"); + msg.readInt16("robe"); + msg.readInt16("hair color"); + msg.readInt16("body color"); + msg.readInt16("body2"); + msg.readUInt8("gender"); + for (int f = 0; f < count; f ++) + { + msg.readInt16("index"); + msg.readItemId("item id"); + msg.readUInt8("item type"); + msg.readInt32("location"); + msg.readInt32("wear state"); + msg.readInt8("refine"); + for (int d = 0; d < maxCards; d ++) + msg.readItemId("card"); + msg.readInt32("hire expire date (?)"); + msg.readInt16("equip type"); + msg.readInt16("item sprite number"); + msg.readUInt8("flags"); + } +} + void BeingRecv::processPvpSet(Net::MessageIn &msg) { BLOCK_START("BeingRecv::processPvpSet") diff --git a/src/net/eathena/beingrecv.h b/src/net/eathena/beingrecv.h index f6ac6d78e..f663eb4af 100644 --- a/src/net/eathena/beingrecv.h +++ b/src/net/eathena/beingrecv.h @@ -107,6 +107,7 @@ namespace EAthena void processBeingMilleniumShield(Net::MessageIn &msg); void processBeingCharm(Net::MessageIn &msg); void processBeingViewEquipment(Net::MessageIn &msg); + void processBeingViewEquipment2(Net::MessageIn &msg); void processPvpSet(Net::MessageIn &msg); void processNameResponse2(Net::MessageIn &msg); void processSkillCancel(Net::MessageIn &msg); diff --git a/src/net/eathena/packetsin.inc b/src/net/eathena/packetsin.inc index 10b4eafbf..639a2832a 100644 --- a/src/net/eathena/packetsin.inc +++ b/src/net/eathena/packetsin.inc @@ -1280,6 +1280,12 @@ if (packetVersionRe >= 20180704) packet(SMSG_ITEM_DROPPED, 0x0add, 24, &ItemRecv::processItemDropped, 20180704); } +// 20180801 +if (packetVersionRe >= 20180801) +{ + packet(SMSG_BEING_VIEW_EQUIPMENT2, 0x0b03, -1, &BeingRecv::processBeingViewEquipment2, 20180801); +} + // 0 // evol always packets packet(SMSG_SERVER_VERSION_RESPONSE, 0x7531, -1, &LoginRecv::processServerVersion, 0); -- cgit v1.2.3-70-g09d2