forked from Simnation/Main
114 lines
4.4 KiB
Lua
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)
|