diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/net/eathena/beingrecv.cpp | 14 | ||||
-rw-r--r-- | src/net/eathena/beingrecv.h | 1 | ||||
-rw-r--r-- | src/net/eathena/packetsin.inc | 6 |
3 files changed, 21 insertions, 0 deletions
diff --git a/src/net/eathena/beingrecv.cpp b/src/net/eathena/beingrecv.cpp index 627d9d9a1..731f00f44 100644 --- a/src/net/eathena/beingrecv.cpp +++ b/src/net/eathena/beingrecv.cpp @@ -1470,6 +1470,20 @@ void BeingRecv::processBeingSpecialEffect(Net::MessageIn &msg) } } +void BeingRecv::processBeingHatEffects(Net::MessageIn &msg) +{ + // +++ add new type of permanent effects? + const int cnt = (msg.readInt16("len") - 9) / 2; + if (cnt > 0) + { + UNIMPLEMENTEDPACKET; + } + msg.readBeingId("being id"); + msg.readUInt8("enable"); + for (int f = 0; f < cnt; f ++) + msg.readInt16("hat effect"); +} + void BeingRecv::processBeingSpecialEffectNum(Net::MessageIn &msg) { UNIMPLEMENTEDPACKET; diff --git a/src/net/eathena/beingrecv.h b/src/net/eathena/beingrecv.h index 2544284d8..cef6653c8 100644 --- a/src/net/eathena/beingrecv.h +++ b/src/net/eathena/beingrecv.h @@ -74,6 +74,7 @@ namespace EAthena A_NONNULL(2); void processBeingSpecialEffect(Net::MessageIn &msg); void processBeingSpecialEffectNum(Net::MessageIn &msg); + void processBeingHatEffects(Net::MessageIn &msg); void processBeingSoundEffect(Net::MessageIn &msg); void processSkillGroundNoDamage(Net::MessageIn &msg); void processSkillEntry(Net::MessageIn &msg); diff --git a/src/net/eathena/packetsin.inc b/src/net/eathena/packetsin.inc index 40e6419ce..bbc6dc805 100644 --- a/src/net/eathena/packetsin.inc +++ b/src/net/eathena/packetsin.inc @@ -910,6 +910,12 @@ if ((serverVersion >= 8 || serverVersion == 0) && packetVersion >= 20150226) packet(SMSG_BEING_VIEW_EQUIPMENT, 0x0a2d, -1, &BeingRecv::processBeingViewEquipment, 20150226); } +// 20150422 +if (packetVersion >= 20150422) +{ + packet(SMSG_BEING_HAT_EFFECTS, 0x0a3b, -1, &BeingRecv::processBeingHatEffects, 20150422); +} + // 20150513 if (packetVersion >= 20150513) { |