From 5207555e9c1ffca77dca0f1544830838b26a0c7e Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Wed, 26 Nov 2014 20:37:28 +0300 Subject: eathena: impliment being particle effects. --- src/net/eathena/beinghandler.cpp | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/net/eathena/beinghandler.cpp b/src/net/eathena/beinghandler.cpp index 2e349808c..d321adc91 100644 --- a/src/net/eathena/beinghandler.cpp +++ b/src/net/eathena/beinghandler.cpp @@ -1687,10 +1687,25 @@ void BeingHandler::processBeingChangeDirection(Net::MessageIn &msg) void BeingHandler::processBeingSpecialEffect(Net::MessageIn &msg) { - // +++ need somhow show this effects. - // type is not same with self/misc effect. - msg.readInt32("account id"); - msg.readInt32("effect type"); + if (!effectManager || !actorManager) + return; + + const int id = static_cast(msg.readInt32("being id")); + Being *const being = actorManager->findBeing(id); + if (!being) + return; + + const int effectType = msg.readInt32("effect type"); + + if (Particle::enabled) + effectManager->trigger(effectType, being); + + // +++ need dehard code effectType == 3 + if (effectType == 3 && being->getType() == ActorType::Player + && socialWindow) + { // reset received damage + socialWindow->resetDamage(being->getName()); + } } void BeingHandler::processBeingSpecialEffectNum(Net::MessageIn &msg) -- cgit v1.2.3-70-g09d2