From 05ebd8d2bb1d265640e65570a85b3d3c6ea10132 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 28 Dec 2022 14:23:47 +0800 Subject: [PATCH] 1 --- server/gameserver/creature.cc | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index a33fe1bf..d78bafe1 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -19,6 +19,7 @@ #include "ability.h" #include "battledatacontext.h" #include "buff.h" +#include "mapinstance.h" #include "mt/Param.h" #include "mt/Hero.h" @@ -3191,7 +3192,21 @@ void Creature::UpdateMove() void Creature::ForwardMove(float distance) { - GetMovement()->CalcTargetPos(distance); + Position pos = GetPos(); + glm::vec3 start = GetPos().ToGlmVec3(); + glm::vec3 end = pos.AddGlmVec3(GetMoveDir() * distance).ToGlmVec3(); + + glm::vec3 hit_point; + room->map_instance->Scale(start); + room->map_instance->Scale(end); + + bool hit_result = false; + bool ret = room->map_instance->Raycast(0, start, end, hit_point, hit_result); + if (ret) { + room->map_instance->UnScale(hit_point); + } + + CheckSpecObject(); } bool Creature::HasSpecMove()