2022-08-05 00:45:10 +10:00
|
|
|
---@param coords vector3 The coords to check from.
|
|
|
|
|
---@param maxDistance number The max distance to check.
|
|
|
|
|
---@param includePlayer boolean Whether or not to include the current player.
|
2023-01-15 23:21:35 +01:00
|
|
|
---@return table players
|
2022-09-14 01:20:50 +10:00
|
|
|
function lib.getNearbyPlayers(coords, maxDistance, includePlayer)
|
|
|
|
|
local players = GetActivePlayers()
|
|
|
|
|
local nearby = {}
|
|
|
|
|
local count = 0
|
|
|
|
|
maxDistance = maxDistance or 2.0
|
2022-08-05 00:45:10 +10:00
|
|
|
|
2022-09-14 01:20:50 +10:00
|
|
|
for i = 1, #players do
|
|
|
|
|
local playerId = players[i]
|
2022-08-05 00:45:10 +10:00
|
|
|
|
2022-09-14 01:20:50 +10:00
|
|
|
if playerId ~= cache.playerId or includePlayer then
|
|
|
|
|
local playerPed = GetPlayerPed(playerId)
|
|
|
|
|
local playerCoords = GetEntityCoords(playerPed)
|
|
|
|
|
local distance = #(coords - playerCoords)
|
2022-08-05 00:45:10 +10:00
|
|
|
|
2022-09-14 01:20:50 +10:00
|
|
|
if distance < maxDistance then
|
|
|
|
|
count += 1
|
|
|
|
|
nearby[count] = {
|
|
|
|
|
id = playerId,
|
|
|
|
|
ped = playerPed,
|
|
|
|
|
coords = playerCoords,
|
|
|
|
|
}
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
2022-08-05 00:45:10 +10:00
|
|
|
|
2022-09-14 01:20:50 +10:00
|
|
|
return nearby
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
return lib.getNearbyPlayers
|