mirror of
https://github.com/CommunityOx/ox_lib.git
synced 2026-08-17 06:56:03 +01:00
feat(imports): getNearbyObjects and getClosestObject
Also fixed the return params types for players and vehicles imports
This commit is contained in:
26
imports/getClosestObject/client.lua
Normal file
26
imports/getClosestObject/client.lua
Normal file
@@ -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
|
||||||
28
imports/getNearbyObjects/client.lua
Normal file
28
imports/getNearbyObjects/client.lua
Normal file
@@ -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
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
---@param coords vector3 The coords to check from.
|
---@param coords vector3 The coords to check from.
|
||||||
---@param maxDistance number The max distance to check.
|
---@param maxDistance number The max distance to check.
|
||||||
---@param includePlayer boolean Whether or not to include the current player.
|
---@param includePlayer boolean Whether or not to include the current player.
|
||||||
---@return number[]
|
---@return table players
|
||||||
function lib.getNearbyPlayers(coords, maxDistance, includePlayer)
|
function lib.getNearbyPlayers(coords, maxDistance, includePlayer)
|
||||||
local players = GetActivePlayers()
|
local players = GetActivePlayers()
|
||||||
local nearby = {}
|
local nearby = {}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---@param coords vector3 The coords to check from.
|
---@param coords vector3 The coords to check from.
|
||||||
---@param maxDistance number The max distance to check.
|
---@param maxDistance number The max distance to check.
|
||||||
---@param includePlayerVehicle boolean Whether or not to include the player's current vehicle.
|
---@param includePlayerVehicle boolean Whether or not to include the player's current vehicle.
|
||||||
---@return number[]
|
---@return table vehicles
|
||||||
function lib.getNearbyVehicles(coords, maxDistance, includePlayerVehicle)
|
function lib.getNearbyVehicles(coords, maxDistance, includePlayerVehicle)
|
||||||
local vehicles = GetGamePool('CVehicle')
|
local vehicles = GetGamePool('CVehicle')
|
||||||
local nearby = {}
|
local nearby = {}
|
||||||
|
|||||||
Reference in New Issue
Block a user