Files
esx_core/server/main.lua
T
2017-09-03 12:05:01 +02:00

357 lines
10 KiB
Lua

ESX = nil
PlayersHarvesting = {}
PlayersHarvesting2 = {}
PlayersHarvesting3 = {}
PlayersCrafting = {}
PlayersCrafting2 = {}
PlayersCrafting3 = {}
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
if Config.MaxInService ~= -1 then
TriggerEvent('esx_service:activateService', 'mecano', Config.MaxInService)
end
TriggerEvent('esx_phone:registerNumber', 'mecano', 'Client mecano', true, true)
-------------- Récupération bouteille de gaz -------------
---- Sqlut je teste ------
local function Harvest(source)
SetTimeout(4000, function()
if PlayersHarvesting[source] == true then
local xPlayer = ESX.GetPlayerFromId(source)
local GazBottleQuantity = xPlayer.getInventoryItem('gazbottle').count
if GazBottleQuantity >= 5 then
TriggerClientEvent('esx:showNotification', source, '~r~Vous n\'avez plus de place')
else
xPlayer.addInventoryItem('gazbottle', 1)
Harvest(source)
end
end
end)
end
RegisterServerEvent('esx_mecanojob:startHarvest')
AddEventHandler('esx_mecanojob:startHarvest', function()
local _source = source
PlayersHarvesting[_source] = true
TriggerClientEvent('esx:showNotification', _source, 'Récupération de ~b~bouteille de gaz~s~...')
Harvest(source)
end)
RegisterServerEvent('esx_mecanojob:stopHarvest')
AddEventHandler('esx_mecanojob:stopHarvest', function()
local _source = source
PlayersHarvesting[_source] = false
end)
------------ Récupération Outils Réparation --------------
local function Harvest2(source)
SetTimeout(4000, function()
if PlayersHarvesting2[source] == true then
local xPlayer = ESX.GetPlayerFromId(source)
local FixToolQuantity = xPlayer.getInventoryItem('fixtool').count
if FixToolQuantity >= 5 then
TriggerClientEvent('esx:showNotification', source, 'Vous n\'avez ~r~plus de place')
else
xPlayer.addInventoryItem('fixtool', 1)
Harvest2(source)
end
end
end)
end
RegisterServerEvent('esx_mecanojob:startHarvest2')
AddEventHandler('esx_mecanojob:startHarvest2', function()
local _source = source
PlayersHarvesting2[_source] = true
TriggerClientEvent('esx:showNotification', _source, 'Récupération d\'~b~Outils réparation~s~...')
Harvest2(_source)
end)
RegisterServerEvent('esx_mecanojob:stopHarvest2')
AddEventHandler('esx_mecanojob:stopHarvest2', function()
local _source = source
PlayersHarvesting2[_source] = false
end)
----------------- Récupération Outils Carosserie ----------------
local function Harvest3(source)
SetTimeout(4000, function()
if PlayersHarvesting3[source] == true then
local xPlayer = ESX.GetPlayerFromId(source)
local CaroToolQuantity = xPlayer.getInventoryItem('carotool').count
if CaroToolQuantity >= 5 then
TriggerClientEvent('esx:showNotification', source, 'Vous n\'avez ~r~plus de place')
else
xPlayer.addInventoryItem('carotool', 1)
Harvest3(source)
end
end
end)
end
RegisterServerEvent('esx_mecanojob:startHarvest3')
AddEventHandler('esx_mecanojob:startHarvest3', function()
local _source = source
PlayersHarvesting3[_source] = true
TriggerClientEvent('esx:showNotification', _source, 'Récupération d\'~b~Outils carosserie~s~...')
Harvest3(_source)
end)
RegisterServerEvent('esx_mecanojob:stopHarvest3')
AddEventHandler('esx_mecanojob:stopHarvest3', function()
local _source = source
PlayersHarvesting3[_source] = false
end)
------------ Craft Chalumeau -------------------
local function Craft(source)
SetTimeout(4000, function()
if PlayersCrafting[source] == true then
local xPlayer = ESX.GetPlayerFromId(source)
local GazBottleQuantity = xPlayer.getInventoryItem('gazbottle').count
if GazBottleQuantity <= 0 then
TriggerClientEvent('esx:showNotification', source, 'Vous n\'avez ~r~pas assez~s~ de bouteille de gaz')
else
xPlayer.removeInventoryItem('gazbottle', 1)
xPlayer.addInventoryItem('blowpipe', 1)
Craft(source)
end
end
end)
end
RegisterServerEvent('esx_mecanojob:startCraft')
AddEventHandler('esx_mecanojob:startCraft', function()
local _source = source
PlayersCrafting[_source] = true
TriggerClientEvent('esx:showNotification', _source, 'Assemblage de ~b~Chalumeaux~s~...')
Craft(_source)
end)
RegisterServerEvent('esx_mecanojob:stopCraft')
AddEventHandler('esx_mecanojob:stopCraft', function()
local _source = source
PlayersCrafting[_source] = false
end)
------------ Craft kit Réparation --------------
local function Craft2(source)
SetTimeout(4000, function()
if PlayersCrafting2[source] == true then
local xPlayer = ESX.GetPlayerFromId(source)
local FixToolQuantity = xPlayer.getInventoryItem('fixtool').count
if FixToolQuantity <= 0 then
TriggerClientEvent('esx:showNotification', source, 'Vous n\'avez ~r~pas assez~s~ d\'outils réparation')
else
xPlayer.removeInventoryItem('fixtool', 1)
xPlayer.addInventoryItem('fixkit', 1)
Craft2(source)
end
end
end)
end
RegisterServerEvent('esx_mecanojob:startCraft2')
AddEventHandler('esx_mecanojob:startCraft2', function()
local _source = source
PlayersCrafting2[_source] = true
TriggerClientEvent('esx:showNotification', _source, 'Assemblage de ~b~Kit réparation~s~...')
Craft2(_source)
end)
RegisterServerEvent('esx_mecanojob:stopCraft2')
AddEventHandler('esx_mecanojob:stopCraft2', function()
local _source = source
PlayersCrafting2[_source] = false
end)
----------------- Craft kit Carosserie ----------------
local function Craft3(source)
SetTimeout(4000, function()
if PlayersCrafting3[source] == true then
local xPlayer = ESX.GetPlayerFromId(source)
local CaroToolQuantity = xPlayer.getInventoryItem('carotool').count
if CaroToolQuantity <= 0 then
TriggerClientEvent('esx:showNotification', source, 'Vous n\'avez ~r~pas assez~s~ d\'outils carosserie')
else
xPlayer.removeInventoryItem('carotool', 1)
xPlayer.addInventoryItem('carokit', 1)
Craft3(source)
end
end
end)
end
RegisterServerEvent('esx_mecanojob:startCraft3')
AddEventHandler('esx_mecanojob:startCraft3', function()
local _source = source
PlayersCrafting3[_source] = true
TriggerClientEvent('esx:showNotification', _source, 'Assemblage de ~b~kit carosserie~s~...')
Craft3(_source)
end)
RegisterServerEvent('esx_mecanojob:stopCraft3')
AddEventHandler('esx_mecanojob:stopCraft3', function()
local _source = source
PlayersCrafting3[_source] = false
end)
---------------------------- NPC Job Earnings ------------------------------------------------------
RegisterServerEvent('esx_mecanojob:onNPCJobMissionCompleted')
AddEventHandler('esx_mecanojob:onNPCJobMissionCompleted', function()
local _source = source
local xPlayer = ESX.GetPlayerFromId(_source)
local total = math.random(Config.NPCJobEarnings.min, Config.NPCJobEarnings.max);
if xPlayer.job.grade >= 3 then
total = total * 2
end
TriggerEvent('esx_addonaccount:getSharedAccount', 'society_mecano', function(account)
account.addMoney(total)
end)
TriggerClientEvent("esx:showNotification", _source, "Votre société a ~g~gagné~s~ ~g~$".. total)
end)
---------------------------- register usable item --------------------------------------------------
ESX.RegisterUsableItem('blowpipe', function(source)
local _source = source
local xPlayer = ESX.GetPlayerFromId(source)
xPlayer.removeInventoryItem('blowpipe', 1)
TriggerClientEvent('esx_mecanojob:onHijack', _source)
TriggerClientEvent('esx:showNotification', _source, 'Vous avez utilisé un ~b~Chalumeau')
end)
ESX.RegisterUsableItem('fixkit', function(source)
local _source = source
local xPlayer = ESX.GetPlayerFromId(source)
xPlayer.removeInventoryItem('fixkit', 1)
TriggerClientEvent('esx_mecanojob:onFixkit', _source)
TriggerClientEvent('esx:showNotification', _source, 'Vous avez utilisé un ~b~Kit de réparation')
end)
ESX.RegisterUsableItem('carokit', function(source)
local _source = source
local xPlayer = ESX.GetPlayerFromId(source)
xPlayer.removeInventoryItem('carokit', 1)
TriggerClientEvent('esx_mecanojob:onCarokit', _source)
TriggerClientEvent('esx:showNotification', _source, 'Vous avez utilisé un ~b~Kit de carosserie')
end)
----------------------------------
---- Ajout Gestion Stock Boss ----
----------------------------------
RegisterServerEvent('esx_mecanojob:getStockItem')
AddEventHandler('esx_mecanojob:getStockItem', function(itemName, count)
local xPlayer = ESX.GetPlayerFromId(source)
TriggerEvent('esx_addoninventory:getSharedInventory', 'society_mecano', function(inventory)
local item = inventory.getItem(itemName)
if item.count >= count then
inventory.removeItem(itemName, count)
xPlayer.addInventoryItem(itemName, count)
else
TriggerClientEvent('esx:showNotification', xPlayer.source, 'Quantité invalide')
end
TriggerClientEvent('esx:showNotification', xPlayer.source, 'Vous avez retiré x' .. count .. ' ' .. item.label)
end)
end)
ESX.RegisterServerCallback('esx_mecanojob:getStockItems', function(source, cb)
TriggerEvent('esx_addoninventory:getSharedInventory', 'society_mecano', function(inventory)
cb(inventory.items)
end)
end)
-------------
-- AJOUT 2 --
-------------
RegisterServerEvent('esx_mecanojob:putStockItems')
AddEventHandler('esx_mecanojob:putStockItems', function(itemName, count)
local xPlayer = ESX.GetPlayerFromId(source)
TriggerEvent('esx_addoninventory:getSharedInventory', 'society_mecano', function(inventory)
local item = inventory.getItem(itemName)
if item.count >= 0 then
xPlayer.removeInventoryItem(itemName, count)
inventory.addItem(itemName, count)
else
TriggerClientEvent('esx:showNotification', xPlayer.source, 'Quantité invalide')
end
TriggerClientEvent('esx:showNotification', xPlayer.source, 'Vous avez ajouté x' .. count .. ' ' .. item.label)
end)
end)
--ESX.RegisterServerCallback('esx_mecanojob:putStockItems', function(source, cb)
-- TriggerEvent('esx_addoninventory:getSharedInventory', 'society_policestock', function(inventory)
-- cb(inventory.items)
-- end)
--end)
ESX.RegisterServerCallback('esx_mecanojob:getPlayerInventory', function(source, cb)
local xPlayer = ESX.GetPlayerFromId(source)
local items = xPlayer.inventory
cb({
items = items
})
end)