forked from Simnation/Main
101 lines
No EOL
2.8 KiB
Lua
101 lines
No EOL
2.8 KiB
Lua
if GetResourceState('qb-target') ~= 'started' or GetResourceState('ox_target') == 'started' then return end
|
|
|
|
local targetZones = {}
|
|
|
|
Core.Target = {}
|
|
|
|
function Core.Target.AddGlobalPeds(options)
|
|
for k, v in pairs(options) do
|
|
options[k].action = v.onSelect
|
|
end
|
|
exports['qb-target']:AddGlobalPed({
|
|
options = options,
|
|
distance = options.distance or 1.5
|
|
})
|
|
end
|
|
|
|
function Core.Target.AddGlobalPlayer(options)
|
|
for k, v in pairs(options) do
|
|
options[k].action = v.onSelect
|
|
end
|
|
exports['qb-target']:AddGlobalPlayer({
|
|
options = options,
|
|
distance = options.distance or 1.5
|
|
})
|
|
end
|
|
|
|
function Core.Target.AddLocalEntity(entities, options)
|
|
for k, v in pairs(options) do
|
|
options[k].action = v.onSelect
|
|
end
|
|
exports['qb-target']:AddTargetEntity(entities, {
|
|
options = options,
|
|
distance = options.distance or 1.5
|
|
})
|
|
end
|
|
|
|
function Core.Target.AddModel(models, options)
|
|
for k, v in pairs(options) do
|
|
options[k].action = v.onSelect
|
|
end
|
|
exports['qb-target']:AddTargetModel(models, {
|
|
options = options,
|
|
distance = options.distance or 1.5,
|
|
})
|
|
end
|
|
|
|
function Core.Target.AddBoxZone(name, coords, size, heading, options, drawPoly)
|
|
for k, v in pairs(options) do
|
|
options[k].action = v.onSelect
|
|
end
|
|
exports['qb-target']:AddBoxZone(name, coords, size.x, size.y, {
|
|
name = name,
|
|
debugPoly = drawPoly,
|
|
heading = heading,
|
|
minZ = coords.z - (size.x * 0.5),
|
|
maxZ = coords.z + (size.x * 0.5),
|
|
}, {
|
|
options = options,
|
|
distance = options.distance or 1.5,
|
|
})
|
|
table.insert(targetZones, { name = name, creator = GetInvokingResource() })
|
|
end
|
|
|
|
function Core.Target.RemoveGlobalPeds(name)
|
|
exports['qb-target']:RemoveGlobalPed(name)
|
|
end
|
|
|
|
function Core.Target.RemoveGlobalPlayer(name)
|
|
exports['qb-target']:RemoveGlobalPlayer(name)
|
|
end
|
|
|
|
function Core.Target.RemoveLocalEntity(entity)
|
|
exports['qb-target']:RemoveTargetEntity(entity)
|
|
end
|
|
|
|
function Core.Target.RemoveModel(model)
|
|
exports['qb-target']:RemoveTargetModel(model)
|
|
end
|
|
|
|
function Core.Target.RemoveZone(name)
|
|
for _, data in pairs(targetZones) do
|
|
if data.name == name then
|
|
exports['qb-target']:RemoveZone(name)
|
|
table.remove(targetZones, _)
|
|
break
|
|
end
|
|
end
|
|
end
|
|
|
|
AddEventHandler('onResourceStop', function(resource)
|
|
if resource ~= GetCurrentResourceName() then
|
|
local removed = 0
|
|
for _, target in pairs(targetZones) do
|
|
if target.creator == resource then
|
|
exports['qb-target']:RemoveZone(target.name)
|
|
removed = removed + 1
|
|
end
|
|
end
|
|
if removed > 0 then print('[DEBUG] - removed target zones for:', resource) end
|
|
end
|
|
end) |