1
0
Fork 0
forked from Simnation/Main
Main/resources/[inventory]/qs-inventory/client/custom/target/qb.lua
2025-06-07 08:51:21 +02:00

114 lines
4.4 KiB
Lua

if not Config.UseTarget then
return
end
local target_name = GetResourceState('ox_target'):find('started') and 'qtarget' or 'qb-target'
CreateThread(function()
-- Selling
for k, v in pairs(Config.SellItems) do
exports[target_name]:AddBoxZone(k .. '_selling', vec3(v['coords'].x, v['coords'].y, v['coords'].z), 1.5, 1.5, {
name = k .. '_selling',
heading = 90.0,
debugPoly = Config.ZoneDebug,
minZ = v['coords'].z - 1,
maxZ = v['coords'].z + 1,
}, {
options = {
{
type = 'client',
icon = 'fa-solid fa-cash-register',
label = Lang('INVENTORY_TEXT_SELLING'),
canInteract = function(entity, distance, data)
return true
end,
action = function(entity)
local PawnshopItems = {}
PawnshopItems.label = k
PawnshopItems.items = v['items']
PawnshopItems.slots = #v['items']
TriggerServerEvent(Config.InventoryPrefix .. ':server:OpenInventory', 'selling', 'itemselling_' .. k, PawnshopItems)
end,
},
},
distance = 2.5
})
end
-- Crafting
if Config.Crafting then
for k, v in pairs(Config.CraftingTables) do
exports[target_name]:AddBoxZone(k .. '_crafting', vec3(v.location.x, v.location.y, v.location.z), 2.5, 2.5, {
name = k .. '_crafting',
heading = 90.0,
debugPoly = Config.ZoneDebug,
minZ = v.location.z - 1,
maxZ = v.location.z + 1,
}, {
options = {
{
type = 'client',
icon = 'fa-solid fa-hammer',
label = 'Crafting',
canInteract = function(entity, distance, data)
return true
end,
action = function(entity)
if isCrafting then return end
if v.isjob then
if IsPlayerAuthorized(v) then
CurrentCrafting = k
local crafting = {
label = v.name,
items = GeneralInfos(k)
}
TriggerServerEvent(Config.InventoryPrefix .. ':server:OpenInventory', 'crafting', math.random(1, 99), crafting)
end
else
CurrentCrafting = k
local crafting = {
label = v.name,
items = GeneralInfos(k)
}
TriggerServerEvent(Config.InventoryPrefix .. ':server:OpenInventory', 'crafting', math.random(1, 99), crafting)
end
end,
},
},
distance = 2.5
})
end
end
-- Vending shops
if Config.Vendings then
for k, v in pairs(Config.Vendings) do
exports[target_name]:AddTargetModel(v['Model'], {
options = {
{
icon = 'fa-solid fa-cash-register',
label = 'Vending',
action = function()
TriggerEvent(Config.InventoryPrefix .. ':client:openVending', { category = v['Category'] })
end
},
},
distance = 2.5
})
end
end
-- Gargabe Code
exports[target_name]:AddTargetModel(Config.GarbageObjects, {
options = {
{
icon = 'fa-solid fa-trash',
label = 'Open Garbage',
action = function()
ExecuteCommand('inventory')
end
},
},
distance = 1.0
})
end)