102 lines
3.4 KiB
Lua
102 lines
3.4 KiB
Lua
|
local QBCore = exports[Config.CoreName]:GetCoreObject()
|
||
|
|
||
|
local cooldown = false
|
||
|
|
||
|
-- Item Handler
|
||
|
RegisterNetEvent("qb-gunheist:server:ItemHandler", function(kind, item, amount)
|
||
|
local src = source
|
||
|
local Player = QBCore.Functions.GetPlayer(src)
|
||
|
if kind == 'add' then
|
||
|
Player.Functions.AddItem(item, amount)
|
||
|
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items[item], 'add', amount)
|
||
|
elseif kind == 'remove' then
|
||
|
Player.Functions.RemoveItem(item, amount)
|
||
|
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items[item], 'remove', amount)
|
||
|
end
|
||
|
end)
|
||
|
|
||
|
QBCore.Functions.CreateCallback('qb-gunheist:server:cooldown', function(source, cb)
|
||
|
if cooldown then
|
||
|
cb(true)
|
||
|
else
|
||
|
cb(false)
|
||
|
end
|
||
|
end)
|
||
|
|
||
|
RegisterNetEvent('qb-gunheist:server:startCooldown', function()
|
||
|
if cooldown == false then
|
||
|
cooldown = true
|
||
|
timer = Config.Cooldown * 60000
|
||
|
print("Airdrop: Cooldown started")
|
||
|
while timer > 0 do
|
||
|
Wait(1000)
|
||
|
timer = timer - 1000
|
||
|
if timer == 0 then
|
||
|
TriggerClientEvent('qb-gunheist:crate:clearcrate', -1)
|
||
|
print('Airdrop: Cooldown finished')
|
||
|
cooldown = false
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end)
|
||
|
|
||
|
RegisterNetEvent('qb-gunheist:crate:deleteCrate', function(netId)
|
||
|
local Player = QBCore.Functions.GetPlayer(source)
|
||
|
if not Player then return end
|
||
|
|
||
|
local crate = NetworkGetEntityFromNetworkId(netId)
|
||
|
if DoesEntityExist(crate) then
|
||
|
DeleteEntity(crate)
|
||
|
TriggerClientEvent('qb-gunheist:crate:destroyzone', -1)
|
||
|
end
|
||
|
end)
|
||
|
|
||
|
RegisterNetEvent('dropCoords:server:setPoly', function(dropCoords)
|
||
|
TriggerClientEvent('dropCoords:client:setPoly', -1, dropCoords)
|
||
|
end)
|
||
|
|
||
|
RegisterNetEvent("qb-gunheist:crate:spawnCrate")
|
||
|
AddEventHandler("qb-gunheist:crate:spawnCrate", function(crateSpawn, item, amount)
|
||
|
local netIds = {}
|
||
|
local netId
|
||
|
local src = source
|
||
|
local crate = CreateObject(GetHashKey(Config.CrateModel), crateSpawn, true, true, true)
|
||
|
|
||
|
while not DoesEntityExist(crate) do Wait(25) end
|
||
|
netId = NetworkGetNetworkIdFromEntity(crate)
|
||
|
netIds[#netIds+1] = netId
|
||
|
Wait(25)
|
||
|
TriggerClientEvent("qb-gunheist:crate:applyNatives", src, netId)
|
||
|
SetTimeout(3000, function()
|
||
|
TriggerClientEvent("qb-gunheist:crate:createQbTarget", -1, crate, item, amount)
|
||
|
end)
|
||
|
end)
|
||
|
|
||
|
-- get amount of cops online and on duty
|
||
|
QBCore.Functions.CreateCallback('qb-gunheist:server:getCops', function(source, cb)
|
||
|
local count = 0
|
||
|
for _, job in pairs(Config.PoliceJobs) do
|
||
|
local amount = QBCore.Functions.GetDutyCount(job)
|
||
|
count += amount
|
||
|
end
|
||
|
Wait(100)
|
||
|
cb(count)
|
||
|
end)
|
||
|
|
||
|
-- Golden Satalite Phone
|
||
|
QBCore.Functions.CreateUseableItem("goldenphone", function(source, item)
|
||
|
local src = source
|
||
|
TriggerClientEvent("qb-gunheist:client:CreateDrop", src, tostring(item.name), true, 400)
|
||
|
end)
|
||
|
|
||
|
-- Red Satellite Phone
|
||
|
QBCore.Functions.CreateUseableItem("redphone", function(source, item)
|
||
|
local src = source
|
||
|
TriggerClientEvent("qb-gunheist:client:CreateDrop", src, tostring(item.name), true, 400)
|
||
|
end)
|
||
|
|
||
|
-- Green Satellite Phone
|
||
|
QBCore.Functions.CreateUseableItem("greenphone", function(source, item)
|
||
|
local src = source
|
||
|
TriggerClientEvent("qb-gunheist:client:CreateDrop", src, tostring(item.name), true, 400)
|
||
|
end)
|