ed
This commit is contained in:
parent
26ed285540
commit
4c95214808
53 changed files with 694 additions and 2507 deletions
85
resources/[carscripts]/kq_towing2/server/editable/esx.lua
Normal file
85
resources/[carscripts]/kq_towing2/server/editable/esx.lua
Normal file
|
@ -0,0 +1,85 @@
|
|||
if Config.esxSettings.enabled then
|
||||
ESX = nil
|
||||
|
||||
if Config.esxSettings.useNewESXExport then
|
||||
ESX = exports['es_extended']:getSharedObject()
|
||||
else
|
||||
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
||||
end
|
||||
|
||||
ESX.RegisterUsableItem(Config.items.towingRope, function(source)
|
||||
if Config.jobWhitelist.towing.enabled then
|
||||
if not IsPlayerJobWhitelisted(source, Config.jobWhitelist.towing.jobs) then
|
||||
return TriggerClientEvent('kq_towing:client:notify', source, L('~r~You may not use this item'))
|
||||
end
|
||||
end
|
||||
TriggerClientEvent('kq_towing:client:startRope', source, false, true)
|
||||
end)
|
||||
|
||||
ESX.RegisterUsableItem(Config.items.winch, function(source)
|
||||
if Config.jobWhitelist.winch.enabled then
|
||||
if not IsPlayerJobWhitelisted(source, Config.jobWhitelist.winch.jobs) then
|
||||
return TriggerClientEvent('kq_towing:client:notify', source, L('~r~You may not use this item'))
|
||||
end
|
||||
end
|
||||
TriggerClientEvent('kq_towing:client:startRope', source, true, true)
|
||||
end)
|
||||
|
||||
function IsPlayerJobWhitelisted(player, jobs)
|
||||
local xPlayer = ESX.GetPlayerFromId(player)
|
||||
if not xPlayer then
|
||||
return false
|
||||
end
|
||||
local job = xPlayer.getJob()
|
||||
|
||||
return Contains(jobs, job.name)
|
||||
end
|
||||
|
||||
function GetPlayerItemData(player, item)
|
||||
local xPlayer = ESX.GetPlayerFromId(player)
|
||||
|
||||
return xPlayer.getInventoryItem(item)
|
||||
end
|
||||
|
||||
function GetPlayerItemCount(player, item)
|
||||
local data = GetPlayerItemData(player, item)
|
||||
if not data then
|
||||
return 0
|
||||
end
|
||||
return data.count or data.amount or 0
|
||||
end
|
||||
|
||||
function RemovePlayerItem(player, item, amount)
|
||||
if GetPlayerItemCount(player, item) < amount then
|
||||
return false
|
||||
end
|
||||
|
||||
local xPlayer = ESX.GetPlayerFromId(player)
|
||||
xPlayer.removeInventoryItem(item, amount or 1)
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
function AddPlayerItem(player, item, amount)
|
||||
local xPlayer = ESX.GetPlayerFromId(tonumber(player))
|
||||
|
||||
-- Support for old esx which didn't use weight for inventory size but rather item limit per item type
|
||||
if Config.esxSettings.oldEsx then
|
||||
local esxItem = xPlayer.getInventoryItem(item)
|
||||
|
||||
if esxItem.limit == -1 or (esxItem.count + amount) <= esxItem.limit then
|
||||
xPlayer.addInventoryItem(item, amount or 1)
|
||||
return true
|
||||
else
|
||||
return false
|
||||
end
|
||||
else
|
||||
if xPlayer.canCarryItem(item, amount or 1) then
|
||||
xPlayer.addInventoryItem(item, amount or 1)
|
||||
return true
|
||||
else
|
||||
return false
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue