From e6cc4105f174c293adf26dcc9f93d9acfbcb635a Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 1 Nov 2023 10:54:02 +0800 Subject: [PATCH] 1 --- server/gameserver/hero_agent.cc | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/server/gameserver/hero_agent.cc b/server/gameserver/hero_agent.cc index 2c012046..917c6770 100644 --- a/server/gameserver/hero_agent.cc +++ b/server/gameserver/hero_agent.cc @@ -1114,20 +1114,24 @@ behaviac::EBTStatus HeroAgent::CoGetNextMobaModeRoadPoint() out_point0 += dir * (float)a8::RandEx(0, 100); } if (owner_->GetPos().Distance2D2(out_point0) > 500) { + int r = 0; for (auto& road : GetRoom()->GetMapMeta()->moba_path_points) { if (owner_->path_dir == 1) { - for (auto& point : road) { - if (std::get<0>(point)->pos.x < owner_->GetPos().GetX()) { + for (auto itr = road.rbegin(); itr != road.rend(); ++itr) { + auto& point = std::get<0>(*itr); + if (point->pos.x < owner_->GetPos().GetX()) { break; } } } else { - for (auto& point : road) { - if (std::get<0>(point)->pos.x > owner_->GetPos().GetX()) { + for (auto itr = road.begin(); itr != road.end(); ++itr) { + auto& point = std::get<0>(*itr); + if (point->pos.x > owner_->GetPos().GetX()) { break; } } } + ++r; } } return behaviac::BT_SUCCESS;