diff options
Diffstat (limited to 'src/net/eathena')
-rw-r--r-- | src/net/eathena/beinghandler.cpp | 20 | ||||
-rw-r--r-- | src/net/eathena/beinghandler.h | 2 |
2 files changed, 22 insertions, 0 deletions
diff --git a/src/net/eathena/beinghandler.cpp b/src/net/eathena/beinghandler.cpp index a5f39635c..d0b76685b 100644 --- a/src/net/eathena/beinghandler.cpp +++ b/src/net/eathena/beinghandler.cpp @@ -885,4 +885,24 @@ void BeingHandler::processSkillCasting(Net::MessageIn &msg) const msg.readInt8("dispossable"); } +void BeingHandler::processBeingStatusChange(Net::MessageIn &msg) const +{ + BLOCK_START("BeingHandler::processBeingStatusChange") + if (!actorManager) + { + BLOCK_END("BeingHandler::processBeingStatusChange") + return; + } + + // Status change + const uint16_t status = msg.readInt16("status"); + const int id = msg.readInt32("being id"); + const bool flag = msg.readUInt8("flag: 0: stop, 1: start"); + + Being *const dstBeing = actorManager->findBeing(id); + if (dstBeing) + dstBeing->setStatusEffect(status, flag); + BLOCK_END("BeingHandler::processBeingStatusChange") +} + } // namespace EAthena diff --git a/src/net/eathena/beinghandler.h b/src/net/eathena/beinghandler.h index d100745f8..aea778d5c 100644 --- a/src/net/eathena/beinghandler.h +++ b/src/net/eathena/beinghandler.h @@ -55,6 +55,8 @@ class BeingHandler final : public MessageHandler, public Ea::BeingHandler void processMapTypeProperty(Net::MessageIn &msg) const; void processSkillCasting(Net::MessageIn &msg) const; + + void processBeingStatusChange(Net::MessageIn &msg) const; }; } // namespace EAthena |