diff --git a/imports/getClosestObject/client.lua b/imports/getClosestObject/client.lua new file mode 100644 index 0000000..e094aed --- /dev/null +++ b/imports/getClosestObject/client.lua @@ -0,0 +1,26 @@ +---@param coords vector3 The coords to check from. +---@param maxDistance number The max distance to check. +---@return number? object +---@return vector3? objectCoords +function lib.getClosestObject(coords, maxDistance) + local objects = GetGamePool('CObject') + local closestObject, closestCoords + maxDistance = maxDistance or 2.0 + + for i = 1, #objects do + local object = objects[i] + + local objectCoords = GetEntityCoords(object) + local distance = #(coords - objectCoords) + + if distance < maxDistance then + maxDistance = distance + closestObject = object + closestCoords = objectCoords + end + end + + return closestObject, closestCoords +end + +return lib.getClosestObject diff --git a/imports/getNearbyObjects/client.lua b/imports/getNearbyObjects/client.lua new file mode 100644 index 0000000..329f3d3 --- /dev/null +++ b/imports/getNearbyObjects/client.lua @@ -0,0 +1,28 @@ +---@param coords vector3 The coords to check from. +---@param maxDistance number The max distance to check. +---@return table objects +function lib.getNearbyObjects(coords, maxDistance) + local objects = GetGamePool('CObject') + local nearby = {} + local count = 0 + maxDistance = maxDistance or 2.0 + + for i = 1, #objects do + local object = objects[i] + + local objectCoords = GetEntityCoords(object) + local distance = #(coords - objectCoords) + + if distance < maxDistance then + count += 1 + nearby[count] = { + object = object, + coords = coords + } + end + end + + return nearby +end + +return lib.getNearbyObjects diff --git a/imports/getNearbyPlayers/client.lua b/imports/getNearbyPlayers/client.lua index 36dea67..67d3677 100644 --- a/imports/getNearbyPlayers/client.lua +++ b/imports/getNearbyPlayers/client.lua @@ -1,7 +1,7 @@ ---@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. ----@return number[] +---@return table players function lib.getNearbyPlayers(coords, maxDistance, includePlayer) local players = GetActivePlayers() local nearby = {} diff --git a/imports/getNearbyVehicles/client.lua b/imports/getNearbyVehicles/client.lua index 29c54ef..83b9cc3 100644 --- a/imports/getNearbyVehicles/client.lua +++ b/imports/getNearbyVehicles/client.lua @@ -1,7 +1,7 @@ ---@param coords vector3 The coords to check from. ---@param maxDistance number The max distance to check. ---@param includePlayerVehicle boolean Whether or not to include the player's current vehicle. ----@return number[] +---@return table vehicles function lib.getNearbyVehicles(coords, maxDistance, includePlayerVehicle) local vehicles = GetGamePool('CVehicle') local nearby = {}