summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-11-09 18:14:04 +0300
committerAndrei Karas <akaras@inbox.ru>2015-11-09 18:14:04 +0300
commitbefd082d67e8b36402accdfdb2d47a8c287165ac (patch)
tree21f5aa64bf8d1cc95ee37c3f25e8fbcef38cb7be
parent59b7218021ab3456fc899ba0efffea35a6643de6 (diff)
downloadplus-befd082d67e8b36402accdfdb2d47a8c287165ac.tar.gz
plus-befd082d67e8b36402accdfdb2d47a8c287165ac.tar.bz2
plus-befd082d67e8b36402accdfdb2d47a8c287165ac.tar.xz
plus-befd082d67e8b36402accdfdb2d47a8c287165ac.zip
Impliment packet SMSG_BEING_SLIDE.
-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)