86 lines
		
	
	
		
			No EOL
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			No EOL
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| local Throwables = {}
 | |
| local Drops = {}
 | |
| 
 | |
| -- Throwing
 | |
| 
 | |
| RegisterNetEvent("pickle_consumables:throwing:throwObject", function(data)
 | |
|     local source = source
 | |
|     local throwID = nil
 | |
|     repeat
 | |
|         throwID = os.time() .. "_" .. math.random(1000, 9999)
 | |
|     until not Throwables[throwID] 
 | |
|     Throwables[throwID] = data
 | |
|     TriggerClientEvent("pickle_consumables:throwing:setObjectData", -1, throwID, data)
 | |
|     SetTimeout(1000 * Config.Options.throwing.despawnTime, function()
 | |
|         DeleteEntity(NetworkGetEntityFromNetworkId(Throwables[throwID].net_id))
 | |
|         Throwables[throwID] = nil
 | |
|         TriggerClientEvent("pickle_consumables:throwing:setObjectData", -1, throwID, nil)
 | |
|     end)
 | |
| end)
 | |
| 
 | |
| -- Drops
 | |
| 
 | |
| function CreateDrop(coords, data)
 | |
|     local dropID = nil
 | |
|     repeat
 | |
|         dropID = os.time() .. "_" .. math.random(1000, 9999)
 | |
|     until not Drops[dropID] 
 | |
|     Drops[dropID] = data
 | |
|     Drops[dropID].coords = coords
 | |
|     Drops[dropID].heading = 0.0
 | |
|     Drops[dropID].model = Config.Items[data.itemKey].prop.model
 | |
|     TriggerClientEvent("pickle_consumables:drop:addDrop", -1, dropID, data)
 | |
|     if Config.Options.drop.despawnTime and Config.Options.drop.despawnTime > 0 then
 | |
|         SetTimeout(1000 * Config.Options.drop.despawnTime, function()
 | |
|             RemoveDrop(dropID)
 | |
|         end)
 | |
|     end
 | |
| end
 | |
| 
 | |
| function RemoveDrop(dropID)
 | |
|     Drops[dropID] = nil
 | |
|     TriggerClientEvent("pickle_consumables:drop:removeDrop", -1, dropID)
 | |
| end
 | |
| 
 | |
| RegisterNetEvent("pickle_consumables:drop:collectDrop", function(dropID)
 | |
|     local source = source
 | |
|     local drop = Drops[dropID]
 | |
|     if not drop then return end
 | |
|     RemoveDrop(dropID)
 | |
|     EquipItem(source, drop, true)
 | |
| end)
 | |
| 
 | |
| RegisterNetEvent("pickle_consumables:drop:createDrop", function(coords)
 | |
|     local source = source
 | |
|     local item = Players[source]
 | |
|     if not item then return end
 | |
|     if #(GetEntityCoords(GetPlayerPed(source)) - coords) > 100.0 then return end
 | |
|     Players[source] = nil
 | |
|     TriggerClientEvent("pickle_consumables:removeItem", source)
 | |
|     CreateDrop(coords, item)
 | |
| end)
 | |
| 
 | |
| -- Giving
 | |
| 
 | |
| RegisterNetEvent("pickle_consumables:giveItem", function(target, amount)
 | |
|     local source = source
 | |
|     local item = Players[source]
 | |
|     if not item or target < 1 then return end
 | |
|     local amount = amount
 | |
|     local uses = item.uses
 | |
|     if amount >= uses then
 | |
|         amount = uses
 | |
|         Players[source] = nil
 | |
|         TriggerClientEvent("pickle_consumables:removeItem", source)
 | |
|     else
 | |
|         Players[source].uses = Players[source].uses - amount
 | |
|         TriggerClientEvent("pickle_consumables:updateUses", source, Players[source].uses)
 | |
|     end
 | |
|     local targetItem = Players[target]
 | |
|     if targetItem and targetItem.itemKey == item.itemKey then
 | |
|         Players[target].uses = Players[target].uses + amount
 | |
|         TriggerClientEvent("pickle_consumables:updateUses", target, Players[target].uses)
 | |
|     else
 | |
|         EquipItem(target, {itemKey = item.itemKey, uses = amount}, true)
 | |
|     end
 | |
| end) | 
