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