From b5eb72aadeb76679950a201c15439cac27e19751 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 5 Apr 2023 18:34:54 +0800 Subject: [PATCH] 1 --- server/gameserver/creature.cc | 11 +++++++++++ server/gameserver/creature.h | 1 + server/gameserver/movement.cc | 7 +------ 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index 7bee3fd7..5acdff6b 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -2346,6 +2346,7 @@ void Creature::SpecDirMove(glm::vec3 dir, float distance) room->map_instance->CheckTerrain(this, same_polys_flags, spec_polys); } + AdjustPos(); room->grid_service->MoveCreature(this); GetMovement()->ClearPath(); } @@ -3233,3 +3234,13 @@ bool Creature::CanShot(bool try_reload) } return true; } + +void Creature::AdjustPos() +{ + if (GetPos().GetX() < 0) { + GetMutablePos().SetX(0); + } + if (GetPos().GetZ() < 0) { + GetMutablePos().SetZ(0); + } +} diff --git a/server/gameserver/creature.h b/server/gameserver/creature.h index 73f53fc5..74ad049b 100644 --- a/server/gameserver/creature.h +++ b/server/gameserver/creature.h @@ -348,6 +348,7 @@ class Creature : public MoveableEntity const mt::Equip* weapon_meta, const mt::Equip* bullet_meta); bool CanShot(bool try_reload); + void AdjustPos(); protected: virtual void OnBuffRemove(Buff& buff); diff --git a/server/gameserver/movement.cc b/server/gameserver/movement.cc index fd189e48..acc80ac3 100644 --- a/server/gameserver/movement.cc +++ b/server/gameserver/movement.cc @@ -42,12 +42,7 @@ bool Movement::UpdatePosition() next_point.dir.z = dir.z; } } - if (owner_->GetPos().GetX() < 0) { - owner_->GetMutablePos().SetX(0); - } - if (owner_->GetPos().GetZ() < 0) { - owner_->GetMutablePos().SetZ(0); - } + owner_->AdjustPos(); #if 0 if (owner_->GetPos().GetX() < 0 || owner_->GetPos().GetZ() < 0) {