Files
community_bridge/modules/target/_default/client.lua
T

141 lines
4.0 KiB
Lua
Raw Normal View History

---@diagnostic disable: duplicate-set-field
2025-02-24 12:17:56 -05:00
Target = Target or {}
local function warnUser()
2025-03-03 19:09:06 -05:00
print("Currently Only Targeting Is Supported By Community Bridge, You Are Using A Resource That Requires The Target Module To Be Used.")
2025-02-24 12:17:56 -05:00
end
2025-04-07 14:33:05 -04:00
Target.FixOptions = function(options)
for k, v in pairs(options) do
local action = v.onSelect or v.action
local select = function(entityOrData)
if type(entityOrData) == 'table' then
return action(entityOrData.entity)
end
return action(entityOrData)
end
options[k].onSelect = select
end
return options
end
2025-02-24 12:17:56 -05:00
Target.AddGlobalPlayer = function(options)
warnUser()
end
Target.AddGlobalVehicle = function(options)
warnUser()
end
Target.RemoveGlobalVehicle = function(options)
warnUser()
end
Target.AddLocalEntity = function(entities, _options)
2025-04-07 14:33:05 -04:00
local fixedOptions = Target.FixOptions(_options)
if type(entities) == "string" or type(entities) == "number" then
entities = { entities }
end
for _, entity in pairs(entities) do
local id = Ids.RandomString()
local menuData = { id = id, title = "Options", options = {} }
for k, v in pairs(fixedOptions) do
table.insert(menuData.options, {
title = ("Option " .. k),
description = "No Description",
icon = v.icon or "fas fa-code-pull-request",
args = {},
onSelect = function(selected, secondary, args)
if v.onSelect then
v.onSelect(selected, secondary, args)
end
end
})
end
Point.Register(id, entity, 5, args,
function()
local coords = GetEntityCoords(entity)
local sleep = 3000
while DoesEntityExist(entity) do
Wait(sleep)
local distance = #(coords - GetEntityCoords(PlayerPedId()))
if distance < 10 then
sleep = 0
Utility.Draw3DHelpText(coords, "Press [E] To Interact", 0.35)
if IsControlJustPressed(0, 38) then
Menu.Open(menuData, false)
end
else
sleep = 3000
end
end
end,
function()
Point.Remove(id)
end, function()
--No need for this in this one
end)
end
2025-02-24 12:17:56 -05:00
end
2025-04-07 14:33:05 -04:00
2025-02-24 12:17:56 -05:00
Target.AddModel = function(models, options)
warnUser()
end
Target.AddBoxZone = function(name, coords, size, heading, options)
2025-04-07 14:33:05 -04:00
local fixedOptions = Target.FixOptions(_options)
local id = Ids.RandomString()
local menuData = { id = id, title = "Options", options = {} }
for k, v in pairs(fixedOptions) do
table.insert(menuData.options, {
title = ("Option " .. k),
description = "No Description",
onSelect = function(selected, secondary, args)
if v.onSelect then
v.onSelect(selected, secondary, args)
end
end
})
end
Point.Register(id, coords, 5, args,
function()
local sleep = 3000
while true do
Wait(sleep)
local distance = #(coords - GetEntityCoords(PlayerPedId()))
if distance < 10 then
sleep = 0
Utility.Draw3DHelpText(coords, "Press [E] To Interact", 0.35)
if IsControlJustPressed(0, 38) then
Menu.Open(menuData, false)
end
else
sleep = 3000
end
end
end,
function()
Point.Remove(id)
end, function()
--No need for this in this one
end)
2025-02-24 12:17:56 -05:00
end
Target.RemoveGlobalPlayer = function()
warnUser()
end
Target.RemoveLocalEntity = function(entity)
warnUser()
end
Target.RemoveModel = function(model)
warnUser()
end
Target.RemoveZone = function(name)
warnUser()
end
return Target