From 9e0351ff12e59c47d27a88d43de39c59dc983693 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 26 Jun 2023 14:31:09 +0800 Subject: [PATCH] 1 --- server/gameserver/commands.cc | 8 +++++--- server/gameserver/movement.cc | 1 + server/gameserver/player.cc | 3 +++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/server/gameserver/commands.cc b/server/gameserver/commands.cc index d62c75f4..c4792ff4 100644 --- a/server/gameserver/commands.cc +++ b/server/gameserver/commands.cc @@ -48,9 +48,6 @@ void Player::_CMExecCommand(f8::MsgHdr& hdr, const cs::CMExecCommand& msg) room->grid_service->MoveCreature(this); { glm::vec3 center = GetPos().ToGlmVec3(); -#if 0 - room->map_instance->PtInHouse(GetPos().ToGlmVec3(), center); -#endif room->map_instance->Scale(center); glm::vec3 point; bool ok = false; @@ -378,6 +375,11 @@ void Player::_CMExecCommand(f8::MsgHdr& hdr, const cs::CMExecCommand& msg) &xtimer_attacher); } else if (cmd == "fast_forward") { room->GMFastForward(); + } else if (cmd == "findpath" && cmds.size() >= 3) { + float x = a8::XValue(cmds[1]).GetDouble(); + float y = a8::XValue(cmds[2]).GetDouble(); + float z = a8::XValue(cmds[3]).GetDouble(); + GetMovement()->FindPath(glm::vec3(x, y, z), 10); } #ifdef DEBUG a8::XPrintf("exec_cmd:%s\n", {cmd}); diff --git a/server/gameserver/movement.cc b/server/gameserver/movement.cc index b5a00723..fc96cf7c 100644 --- a/server/gameserver/movement.cc +++ b/server/gameserver/movement.cc @@ -242,6 +242,7 @@ bool Movement::FindPath(const glm::vec3& target_pos, float distance) last_pos = pos; } + is_find_path_ = true; } return !paths.empty(); } diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index 86a7e60e..cd8456ed 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -184,6 +184,9 @@ void Player::InternalUpdate(int delta_time) moving = false; } } + if (GetMovement()->IsFindPath()) { + moving = true; + } if (moving) { UpdateMoving(); }