From a19b7331b44c9f2408be4cf8342a10a24e1f28f9 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 14 Dec 2022 19:00:07 +0800 Subject: [PATCH] 1 --- server/gameserver/metamgr.cc | 8 ++++++++ server/gameserver/movehelper.cc | 8 ++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/server/gameserver/metamgr.cc b/server/gameserver/metamgr.cc index 31c0b4b7..6a1473c5 100644 --- a/server/gameserver/metamgr.cc +++ b/server/gameserver/metamgr.cc @@ -650,6 +650,14 @@ private: parameter_hash[item.pb->param_name()] = &item; } + { + for (auto& meta : map_meta_list) { + MetaData::Map& item = a8::FastAppend(map_list); + item.pb = &meta; + item.Init(); + gamemap_hash[item.pb->map_id()] = &item; + } + } for (auto& meta : safearea_meta_list) { MetaData::SafeArea& item = a8::FastAppend(safearea_list); item.pb = &meta; diff --git a/server/gameserver/movehelper.cc b/server/gameserver/movehelper.cc index 86ede187..9e65422a 100644 --- a/server/gameserver/movehelper.cc +++ b/server/gameserver/movehelper.cc @@ -22,7 +22,11 @@ bool MoveHelper::GetMovePosition(glm::vec3& out_pos) return false; } MovePathPoint& curr_point = paths_[path_index_]; - owner_->SetPos(curr_point.curr_pos); + { + a8::Vec2 dir = a8::Vec2(curr_point.dir.x, curr_point.dir.z); + curr_point.curr_pos.AddVec2(dir * owner_->GetSpeed()); + owner_->SetPos(curr_point.curr_pos); + } if (owner_->GetPos().Distance2D2(curr_point.src_pos) - curr_point.distance >= 0.0001f) { owner_->SetPos(curr_point.tar_pos); ++path_index_; @@ -90,7 +94,7 @@ void MoveHelper::CalcTargetPos(float distance) point.tar_pos.z < 0) { abort(); } -#ifdef DEBUG1 +#ifdef DEBUG a8::XPrintf("CalcTargetPos src_pos:%f,%f tar_pos:%f,%f is_hit:%d start:%f,%f,%f end:%f,%f,%f distance:%f\n", { point.src_pos.x,