2025-06-07 08:51:21 +02:00
|
|
|
--[[
|
|
|
|
https://github.com/overextended/ox_lib
|
|
|
|
|
|
|
|
This file is licensed under LGPL-3.0 or higher <https://www.gnu.org/licenses/lgpl-3.0.en.html>
|
|
|
|
|
|
|
|
Copyright © 2025 Linden <https://github.com/thelindat>
|
|
|
|
]]
|
|
|
|
|
|
|
|
---@param coords vector3 The coords to check from.
|
|
|
|
---@param maxDistance? number The max distance to check.
|
2025-07-09 19:26:17 +02:00
|
|
|
---@param ignorePlayerId? number|false The player server ID to ignore.
|
2025-06-07 08:51:21 +02:00
|
|
|
---@return number? playerId
|
|
|
|
---@return number? playerPed
|
|
|
|
---@return vector3? playerCoords
|
2025-07-09 19:26:17 +02:00
|
|
|
function lib.getClosestPlayer(coords, maxDistance, ignorePlayerId)
|
2025-06-07 08:51:21 +02:00
|
|
|
local players = GetActivePlayers()
|
|
|
|
local closestId, closestPed, closestCoords
|
|
|
|
maxDistance = maxDistance or 2.0
|
|
|
|
|
|
|
|
for i = 1, #players do
|
|
|
|
local playerId = players[i]
|
2025-07-09 19:26:17 +02:00
|
|
|
|
|
|
|
if not ignorePlayerId or playerId ~= ignorePlayerId then
|
|
|
|
local playerPed = GetPlayerPed(playerId)
|
|
|
|
local playerCoords = GetEntityCoords(playerPed)
|
|
|
|
local distance = #(coords - playerCoords)
|
|
|
|
|
|
|
|
if distance < maxDistance then
|
|
|
|
maxDistance = distance
|
|
|
|
closestId = playerId
|
|
|
|
closestPed = playerPed
|
|
|
|
closestCoords = playerCoords
|
|
|
|
end
|
2025-06-07 08:51:21 +02:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
return closestId, closestPed, closestCoords
|
|
|
|
end
|
|
|
|
|
|
|
|
return lib.getClosestPlayer
|