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)