summaryrefslogtreecommitdiff
path: root/src/net/eathena
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/eathena')
-rw-r--r--src/net/eathena/beinghandler.cpp20
-rw-r--r--src/net/eathena/beinghandler.h2
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