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)
 |