forked from Simnation/Main
werfen
This commit is contained in:
parent
453b281a4b
commit
46b895aff2
25 changed files with 716 additions and 0 deletions
|
@ -0,0 +1,73 @@
|
|||
local Throwables = {}
|
||||
local Carrying = {}
|
||||
|
||||
function GiveObject(source, data, timeout)
|
||||
Carrying[source] = data
|
||||
if timeout then
|
||||
SetTimeout(1600, function()
|
||||
TriggerClientEvent("pickle_throwables:giveObject", source, data)
|
||||
end)
|
||||
else
|
||||
TriggerClientEvent("pickle_throwables:giveObject", source, data)
|
||||
end
|
||||
end
|
||||
|
||||
RegisterNetEvent("pickle_throwables:throwObject", function(data)
|
||||
local source = source
|
||||
if not Carrying[source] then return end
|
||||
Carrying[source] = nil
|
||||
local throwID = nil
|
||||
repeat
|
||||
throwID = os.time() .. "_" .. math.random(1000, 9999)
|
||||
until not Throwables[throwID]
|
||||
Throwables[throwID] = data
|
||||
TriggerClientEvent("pickle_throwables:setObjectData", -1, throwID, data)
|
||||
end)
|
||||
|
||||
RegisterCallback("pickle_throwables:catchObject", function(source, cb, throwID)
|
||||
if Carrying[source] then return cb(false) end
|
||||
if not Throwables[throwID] then return cb(false) end
|
||||
local entity = NetworkGetEntityFromNetworkId(Throwables[throwID].net_id)
|
||||
Carrying[source] = {throwType = Throwables[throwID].throwType}
|
||||
DeleteEntity(entity)
|
||||
Throwables[throwID] = nil
|
||||
TriggerClientEvent("pickle_throwables:setObjectData", -1, throwID, nil)
|
||||
cb(true)
|
||||
end)
|
||||
|
||||
RegisterCallback("pickle_throwables:storeObject", function(source, cb)
|
||||
if not Carrying[source] then return cb(false) end
|
||||
local data = Carrying[source]
|
||||
local cfg = Config.Throwables[data.throwType]
|
||||
Carrying[source] = nil
|
||||
if cfg.item and not Config.CommandSpawning then
|
||||
AddItem(source, cfg.item, 1)
|
||||
end
|
||||
cb(true)
|
||||
end)
|
||||
|
||||
RegisterCallback("pickle_throwables:giveObject", function(source, cb, target)
|
||||
if not Carrying[source] or Carrying[target] then return cb(false) end
|
||||
local data = Carrying[source]
|
||||
GiveObject(target, {throwType = data.throwType}, true)
|
||||
Carrying[source] = nil
|
||||
cb(true)
|
||||
end)
|
||||
|
||||
if Config.CommandSpawning then
|
||||
RegisterCommand("spawnthrowable", function(source, args, raw)
|
||||
if not args[1] or not Config.Throwables[args[1]] then return end
|
||||
if not Config.CommandSpawnCheck(source, args[1]) then return end
|
||||
GiveObject(source, {throwType = args[1]})
|
||||
end)
|
||||
else
|
||||
for k,v in pairs(Config.Throwables) do
|
||||
if v.item then
|
||||
RegisterUsableItem(v.item, function(source)
|
||||
if Carrying[source] then return end
|
||||
RemoveItem(source, v.item, 1)
|
||||
GiveObject(source, {throwType = k})
|
||||
end)
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue