diff --git a/server/gameserver/mapinstance.cc b/server/gameserver/mapinstance.cc index e664e316..12f7922e 100644 --- a/server/gameserver/mapinstance.cc +++ b/server/gameserver/mapinstance.cc @@ -753,9 +753,8 @@ int MapInstance::FindStraightPath(int layer, int MapInstance::FindRandomPointAroundCircle(int layer, const a8::Vec3& center_pos, - std::vector& points, - unsigned int max_points, - float max_radius) + float max_radius, + glm::vec3& random_pt) { dtQueryFilter filter; filter.setIncludeFlags(0xffff); @@ -788,8 +787,13 @@ int MapInstance::FindRandomPointAroundCircle(int layer, randomPt); if (dtStatusSucceed(status)) { + random_pt.x = randomPt[0]; + random_pt.y = randomPt[1]; + random_pt.z = randomPt[2]; + return 1; + } else { + return 0; } - return 0; } int MapInstance::Raycast(int layer, const glm::vec3& start, const glm::vec3& end, glm::vec3& hit_point) diff --git a/server/gameserver/mapinstance.h b/server/gameserver/mapinstance.h index cd4b080e..3a4c8d45 100644 --- a/server/gameserver/mapinstance.h +++ b/server/gameserver/mapinstance.h @@ -46,9 +46,8 @@ class MapInstance std::vector& paths); int FindRandomPointAroundCircle(int layer, const a8::Vec3& center_pos, - std::vector& points, - unsigned int max_points, - float max_radius); + float max_radius, + glm::vec3& random_pt); int Raycast(int layer, const glm::vec3& start, const glm::vec3& end, glm::vec3& hit_point); bool FindNearestPoint(const a8::Vec3& center, float radius, a8::Vec3& nearestPt);