summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/net/eathena/beingrecv.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/net/eathena/beingrecv.cpp b/src/net/eathena/beingrecv.cpp
index a17a58e75..5a3ba81f6 100644
--- a/src/net/eathena/beingrecv.cpp
+++ b/src/net/eathena/beingrecv.cpp
@@ -1460,11 +1460,21 @@ void BeingRecv::processWddingEffect(Net::MessageIn &msg)
void BeingRecv::processBeingSlide(Net::MessageIn &msg)
{
- UNIMPLIMENTEDPACKET;
+ Being *const dstBeing = actorManager->findBeing(
+ msg.readBeingId("being id"));
+ const int x = msg.readInt16("x");
+ const int y = msg.readInt16("y");
+ if (!dstBeing)
+ return;
+ if (localPlayer == dstBeing)
+ {
+ localPlayer->stopAttack();
+ localPlayer->navigateClean();
+ }
- msg.readBeingId("being id");
- msg.readInt16("x");
- msg.readInt16("y");
+ dstBeing->setAction(BeingAction::STAND, 0);
+ dstBeing->setTileCoords(x, y);
+ dstBeing->updatePets();
}
void BeingRecv::processStarsKill(Net::MessageIn &msg)