summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-10-08 00:32:26 +0300
committerAndrei Karas <akaras@inbox.ru>2014-10-08 00:32:26 +0300
commit17aea3a2f39b62202548d54c70eeb127e93f14c5 (patch)
tree95d9ece5e64cbf43b439a5a91f0edd32830aa09a
parent21029a5465e42e3820175e474c6860b6349d7c5c (diff)
downloadplus-17aea3a2f39b62202548d54c70eeb127e93f14c5.tar.gz
plus-17aea3a2f39b62202548d54c70eeb127e93f14c5.tar.bz2
plus-17aea3a2f39b62202548d54c70eeb127e93f14c5.tar.xz
plus-17aea3a2f39b62202548d54c70eeb127e93f14c5.zip
eathena: add partial support for packet SMSG_BEING_SPECIAL_EFFECT_NUM 0x0284.
-rw-r--r--src/net/eathena/beinghandler.cpp14
-rw-r--r--src/net/eathena/beinghandler.h2
-rw-r--r--src/net/eathena/packets.h2
-rw-r--r--src/net/eathena/protocol.h1
4 files changed, 18 insertions, 1 deletions
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, ... */