From 17aea3a2f39b62202548d54c70eeb127e93f14c5 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Wed, 8 Oct 2014 00:32:26 +0300 Subject: eathena: add partial support for packet SMSG_BEING_SPECIAL_EFFECT_NUM 0x0284. --- src/net/eathena/beinghandler.cpp | 14 ++++++++++++++ src/net/eathena/beinghandler.h | 2 ++ src/net/eathena/packets.h | 2 +- src/net/eathena/protocol.h | 1 + 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/net/eathena/beinghandler.cpp b/src/net/eathena/beinghandler.cpp index 19200832a..4972f7568 100644 --- a/src/net/eathena/beinghandler.cpp +++ b/src/net/eathena/beinghandler.cpp @@ -75,6 +75,7 @@ BeingHandler::BeingHandler(const bool enableSync) : SMSG_BEING_ACTION2, SMSG_BEING_SELFEFFECT, SMSG_BEING_SPECIAL_EFFECT, + SMSG_BEING_SPECIAL_EFFECT_NUM, SMSG_BEING_SOUND_EFFECT, SMSG_BEING_EMOTION, SMSG_BEING_CHANGE_LOOKS, @@ -180,6 +181,10 @@ void BeingHandler::handleMessage(Net::MessageIn &msg) processBeingSpecialEffect(msg); break; + case SMSG_BEING_SPECIAL_EFFECT_NUM: + processBeingSpecialEffectNum(msg); + break; + case SMSG_BEING_SOUND_EFFECT: processBeingSoundEffect(msg); break; @@ -1716,6 +1721,15 @@ void BeingHandler::processBeingSpecialEffect(Net::MessageIn &msg) const msg.readInt32("effect type"); } +void BeingHandler::processBeingSpecialEffectNum(Net::MessageIn &msg) const +{ + // +++ need somhow show this effects. + // type is not same with self/misc effect. + msg.readInt32("account id"); + msg.readInt32("effect type"); + msg.readInt32("num"); // effect variable +} + void BeingHandler::processBeingSoundEffect(Net::MessageIn &msg) const { // +++ need play this effect. diff --git a/src/net/eathena/beinghandler.h b/src/net/eathena/beinghandler.h index 881b426d7..f0d2abe49 100644 --- a/src/net/eathena/beinghandler.h +++ b/src/net/eathena/beinghandler.h @@ -96,6 +96,8 @@ class BeingHandler final : public MessageHandler, public Ea::BeingHandler void processBeingSpecialEffect(Net::MessageIn &msg) const; + void processBeingSpecialEffectNum(Net::MessageIn &msg) const; + void processBeingSoundEffect(Net::MessageIn &msg) const; static void setServerGender(Being *const being, diff --git a/src/net/eathena/packets.h b/src/net/eathena/packets.h index 93252025c..2e1d7884e 100644 --- a/src/net/eathena/packets.h +++ b/src/net/eathena/packets.h @@ -93,7 +93,7 @@ int16_t packet_lengths[] = 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // #0x0280 - 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 4, 0, + 0, 0, 0, 6, 14, 0, 0, 0, 0, 0, 18, 0, 0, 0, 4, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 0, -1, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 107, 6, -1, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, diff --git a/src/net/eathena/protocol.h b/src/net/eathena/protocol.h index f9a4f0112..78b622a80 100644 --- a/src/net/eathena/protocol.h +++ b/src/net/eathena/protocol.h @@ -110,6 +110,7 @@ #define SMSG_BEING_CHANGE_LOOKS2 0x01d7 #define SMSG_BEING_SELFEFFECT 0x019b #define SMSG_BEING_SPECIAL_EFFECT 0x01f3 +#define SMSG_BEING_SPECIAL_EFFECT_NUM 0x0284 #define SMSG_BEING_SOUND_EFFECT 0x01d3 #define SMSG_BEING_EMOTION 0x00c0 #define SMSG_BEING_ACTION 0x008a /**< Attack, sit, stand up, ... */ -- cgit v1.2.3-70-g09d2