diff --git a/server/gameserver/buff/callfunc.cc b/server/gameserver/buff/callfunc.cc index 42d38a64..22477231 100644 --- a/server/gameserver/buff/callfunc.cc +++ b/server/gameserver/buff/callfunc.cc @@ -1450,13 +1450,16 @@ void CallFuncBuff::BatchRandomPosSummonObstacle() float x = meta->GetBuffParam4(this); float y = meta->GetBuffParam5(this); float z = meta->GetBuffParam6(this); - float radius = meta->GetBuffParam7(this); + float range = meta->GetBuffParam7(this); if (!owner->dead || meta->dead_valid() != 0 && num > 0) { num = std::max(30, num); + glm::vec3 center = glm::vec3(x, y, z); for (int i = 0; i < num; ++i) { + glm::vec3 out_point = center; + owner->room->map_instance->RandPoint(center, range, out_point); Obstacle* ob = owner->SummonObstacle(this, id, - glm::vec3(x, y, z), + out_point, owner->GetAttackDir()); if (ob) { std::shared_ptr> vars = std::make_shared>();