Fixing getNearbyPlayers source definition (updated)

The requested features are now included. playerPed and playerCoords do have now two different locals for better orientation and included nil checking for the function.
This commit is contained in:
Canis_Lupus
2023-07-21 00:50:16 +02:00
committed by GitHub
parent ef8f806045
commit 30d497500d
+12 -6
View File
@@ -7,15 +7,21 @@ ESX.OneSync = {}
local function getNearbyPlayers(source, closest, distance, ignore)
local result = {}
local count = 0
local playerPed
local playerCoords
if not distance then distance = 100 end
if type(source) == 'number' then
source = GetPlayerPed(source)
playerPed = GetPlayerPed(source)
if not source then
error("Received invalid first argument (source); should be playerId or vector3 coordinates")
error("Received invalid first argument (source); should be playerId")
end
source = GetEntityCoords(source)
playerCoords = GetEntityCoords(playerPed)
if not playerCoords then
error("Received nil value (playerCoords); perhaps source is nil at first place?")
end
end
for _, xPlayer in pairs(ESX.Players) do
@@ -24,13 +30,13 @@ local function getNearbyPlayers(source, closest, distance, ignore)
local coords = GetEntityCoords(entity)
if not closest then
local dist = #(source - coords)
local dist = #(playerCoords - coords)
if dist <= distance then
count = count + 1
result[count] = { id = xPlayer.source, ped = NetworkGetNetworkIdFromEntity(entity), coords = coords, dist = dist }
end
else
local dist = #(source - coords)
local dist = #(playerCoords - coords)
if dist <= (result.dist or distance) then
result = { id = xPlayer.source, ped = NetworkGetNetworkIdFromEntity(entity), coords = coords, dist = dist }
end