604 lines
		
	
	
		
			No EOL
		
	
	
		
			20 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			604 lines
		
	
	
		
			No EOL
		
	
	
		
			20 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| CoreName = nil
 | ||
| 
 | ||
| local function GetPlayer(source)
 | ||
|     if CoreName == 'qb-core' then
 | ||
|         return QBCore.Functions.GetPlayer(source)
 | ||
|     elseif CoreName == 'qbx_core' then
 | ||
|         return QBX:GetPlayer(source)
 | ||
|     elseif CoreName == 'es_extended' then
 | ||
|         return ESX.GetPlayerFromId(source)
 | ||
|     end
 | ||
| end
 | ||
| 
 | ||
| function GetIdentifier(source)
 | ||
|     local Player = GetPlayer(source)
 | ||
|     local Identifier = nil
 | ||
| 
 | ||
|     if CoreName == 'qb-core' then
 | ||
|         Identifier = Player.PlayerData.citizenid
 | ||
|     elseif CoreName == 'qbx_core' then
 | ||
|         Identifier = Player.PlayerData.citizenid
 | ||
|     elseif CoreName == 'es_extended' then
 | ||
|         Identifier = Player.getIdentifier()
 | ||
|     end
 | ||
| 
 | ||
|     return Identifier
 | ||
| end
 | ||
| 
 | ||
| local function GetBatteryLevel(serie)
 | ||
|     local battery = 0
 | ||
| 
 | ||
|     local result = ExecuteSql("SELECT battery FROM 0r_rccar WHERE serieNumber = '"..serie.."'")
 | ||
| 
 | ||
|     if result[1] then
 | ||
|         battery = result[1].battery
 | ||
|     end
 | ||
| 
 | ||
|     return battery
 | ||
| end
 | ||
| 
 | ||
| if GetResourceState('qb-core') == 'started' and Config.Framework == 'qb-core' then
 | ||
|     QBCore = exports['qb-core']:GetCoreObject()
 | ||
|     CoreName = 'qb-core'
 | ||
| elseif GetResourceState('qbx_core') == 'started' and Config.Framework == 'qbx_core' then
 | ||
|     QBX = exports['qbx_core']
 | ||
|     CoreName = 'qbx_core'
 | ||
| elseif GetResourceState('es_extended') == 'started' and Config.Framework == 'es_extended' then
 | ||
|     ESX = exports['es_extended']:getSharedObject()
 | ||
|     CoreName = 'es_extended'
 | ||
| end
 | ||
| 
 | ||
| Citizen.CreateThread(function()
 | ||
|     if CoreName == 'qb-core' then
 | ||
|         for k, v in pairs(Config.RCCars) do
 | ||
|             QBCore.Functions.CreateUseableItem(v.item.name, function(source, item)
 | ||
|                 local metadata = Config.Inventory == 'ox_inventory' and item.metadata or item.info
 | ||
|                 if GetBatteryLevel(metadata.serie) > Config.MinimumBattery then
 | ||
|                     local data = {
 | ||
|                         item = {
 | ||
|                             type = v.item.type,
 | ||
|                             price = v.item.price,
 | ||
|                             prop = v.item.prop,
 | ||
|                             label = v.item.label,
 | ||
|                             name = v.item.name,
 | ||
|                             category = v.item.category,
 | ||
|                             description = v.item.description,
 | ||
|                         },
 | ||
|                         vehicle = {
 | ||
|                             prop = v.vehicle.prop,
 | ||
|                             istatistics = v.vehicle.istatistics,
 | ||
|                         },
 | ||
|                         jobs = v.jobs,
 | ||
|                         info = metadata,
 | ||
|                     }
 | ||
|                     
 | ||
|                     if v.jobs ~= 'all' then
 | ||
|                         local Player = QBCore.Functions.GetPlayer(source)
 | ||
|                         if Player ~= nil then
 | ||
|                             local PlayerJob = Player.PlayerData.job.name
 | ||
|                             if v.jobs[PlayerJob] then
 | ||
|                                 TriggerClientEvent('0r-rccar:client:useRcCar', source, data)
 | ||
|                             else
 | ||
|                                 TriggerClientEvent('QBCore:Notify', source, Locales[Config.Locale].LUA['no_authorization'], 'error')
 | ||
|                             end
 | ||
|                         end
 | ||
|                     else
 | ||
|                         TriggerClientEvent('0r-rccar:client:useRcCar', source, data)
 | ||
|                     end
 | ||
|                 else
 | ||
|                     TriggerClientEvent('QBCore:Notify', source, Locales[Config.Locale].LUA['no_battery'], 'error')
 | ||
|                 end
 | ||
|             end)
 | ||
|         end
 | ||
|     elseif CoreName == 'qbx_core' then
 | ||
|         for k, v in pairs(Config.RCCars) do
 | ||
|             QBX:CreateUseableItem(v.item.name, function(source, item)
 | ||
|                 if GetBatteryLevel(item.metadata.serie) > Config.MinimumBattery then
 | ||
|                     local data = {
 | ||
|                         item = {
 | ||
|                             type = v.item.type,
 | ||
|                             price = v.item.price,
 | ||
|                             prop = v.item.prop,
 | ||
|                             label = v.item.label,
 | ||
|                             name = v.item.name,
 | ||
|                             category = v.item.category,
 | ||
|                             description = v.item.description,
 | ||
|                         },
 | ||
|                         vehicle = {
 | ||
|                             prop = v.vehicle.prop,
 | ||
|                             istatistics = v.vehicle.istatistics,
 | ||
|                         },
 | ||
|                         jobs = v.jobs,
 | ||
|                         info = item.metadata,
 | ||
|                     }
 | ||
| 
 | ||
|                     if v.jobs ~= 'all' then
 | ||
|                         local Player = QBX:GetPlayer(source)
 | ||
|                         if Player ~= nil then
 | ||
|                             local PlayerJob = Player.PlayerData.job.name
 | ||
|                             if v.jobs[PlayerJob] then
 | ||
|                                 TriggerClientEvent('0r-rccar:client:useRcCar', source, data)
 | ||
|                             else
 | ||
|                                 QBX:Notify(source, Locales[Config.Locale].LUA['no_authorization'], 'error')
 | ||
|                             end
 | ||
|                         end
 | ||
|                     else
 | ||
|                         TriggerClientEvent('0r-rccar:client:useRcCar', source, data)
 | ||
|                     end
 | ||
|                 else
 | ||
|                     QBX:Notify(source, Locales[Config.Locale].LUA['no_battery'], 'error')
 | ||
|                 end
 | ||
|             end)
 | ||
|         end
 | ||
|     elseif CoreName == 'es_extended' then
 | ||
|         for k, v in pairs(Config.RCCars) do
 | ||
|             ESX.RegisterUsableItem(v.item.name, function(source, item, itemData)
 | ||
|                 if GetBatteryLevel(itemData.metadata.serie) > Config.MinimumBattery then
 | ||
|                     local data = {
 | ||
|                         item = {
 | ||
|                             type = v.item.type,
 | ||
|                             price = v.item.price,
 | ||
|                             prop = v.item.prop,
 | ||
|                             label = v.item.label,
 | ||
|                             name = v.item.name,
 | ||
|                             category = v.item.category,
 | ||
|                             description = v.item.description,
 | ||
|                         },
 | ||
|                         vehicle = {
 | ||
|                             prop = v.vehicle.prop,
 | ||
|                             istatistics = v.vehicle.istatistics,
 | ||
|                         },
 | ||
|                         jobs = v.jobs,
 | ||
|                         info = itemData.metadata,
 | ||
|                     }
 | ||
| 
 | ||
|                     if v.jobs ~= 'all' then
 | ||
|                         local Player = ESX.GetPlayerFromId(source)
 | ||
|                         if Player ~= nil then
 | ||
|                             local PlayerJob = Player.job.name
 | ||
|                             if v.jobs[PlayerJob] then
 | ||
|                                 TriggerClientEvent('0r-rccar:client:useRcCar', source, data)
 | ||
|                             else
 | ||
|                                 TriggerClientEvent("esx:showNotification", source, Locales[Config.Locale].LUA['no_authorization'], "error")
 | ||
|                             end
 | ||
|                         end
 | ||
|                     else
 | ||
|                         TriggerClientEvent('0r-rccar:client:useRcCar', source, data)
 | ||
|                     end
 | ||
|                 else
 | ||
|                     TriggerClientEvent("esx:showNotification", source, Locales[Config.Locale].LUA['no_battery'], "error")
 | ||
|                 end
 | ||
|             end)
 | ||
|         end
 | ||
|     end
 | ||
| end)
 | ||
| 
 | ||
| lib.callback.register('0r-rccar:server:scanPlayer', function(source, netId)
 | ||
|     local ped = NetworkGetEntityFromNetworkId(netId)
 | ||
|     local src = NetworkGetEntityOwner(ped)
 | ||
|     local Player = GetPlayer(src)
 | ||
| 
 | ||
|     if CoreName == 'qb-core' then
 | ||
|         if Player then
 | ||
|             local Data = {
 | ||
|                 name = Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname,
 | ||
|                 birthDate = Player.PlayerData.charinfo.birthdate,
 | ||
|             }
 | ||
|             
 | ||
|             return Data
 | ||
|         end
 | ||
|     elseif CoreName == 'qbx_core' then
 | ||
|         if Player then
 | ||
|             local Data = {
 | ||
|                 name = Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname,
 | ||
|                 birthDate = Player.PlayerData.charinfo.birthdate,
 | ||
|             }
 | ||
|             
 | ||
|             return Data
 | ||
|         end
 | ||
|     elseif CoreName == 'es_extended' then
 | ||
|         if Player then
 | ||
|             local Data = {
 | ||
|                 name = Player.getName(),
 | ||
|                 birthDate = Player.variables.dateofbirth,
 | ||
|             }
 | ||
| 
 | ||
|             return Data
 | ||
|         end
 | ||
|     end
 | ||
| end)
 | ||
| 
 | ||
| lib.callback.register('0r-rccar:server:buyCar', function(source, data)
 | ||
|     local src = source
 | ||
|     local Player = GetPlayer(source)
 | ||
|     local Job = nil
 | ||
| 
 | ||
|     if Player then
 | ||
|         if CoreName == 'qb-core' then
 | ||
|             Job = Player.PlayerData.job.name
 | ||
|         elseif CoreName == 'qbx_core' then
 | ||
|             Job = Player.PlayerData.job.name
 | ||
|         elseif CoreName == 'es_extended' then
 | ||
|             Job = Player.getJob().name
 | ||
|         end
 | ||
| 
 | ||
|         local car = nil
 | ||
| 
 | ||
|         for k, v in pairs(Config.RCCars) do
 | ||
|             if v.item.name == data.item.name then
 | ||
|                 car = v
 | ||
|                 break
 | ||
|             end
 | ||
|         end
 | ||
| 
 | ||
|         if car.jobs ~= 'all' and Job then
 | ||
|             for job, allowed in pairs(car.jobs) do
 | ||
|                 if allowed and job == Job then
 | ||
|                     if car.item.price then
 | ||
|                         if CheckMoney(Player, car.item.price) then
 | ||
|                             if CreateNewVehicle(src, car.item.name, 1) then
 | ||
|                                 RemoveMoney(Player, car.item.price)
 | ||
|                             end
 | ||
|                         else
 | ||
|                             if CoreName == 'qb-core' then
 | ||
|                                 TriggerClientEvent('QBCore:Notify', src, Locales[Config.Locale].LUA['not_enough_money'], 'error')
 | ||
|                             elseif CoreName == 'qbx_core' then
 | ||
|                                 QBX:Notify(src, Locales[Config.Locale].LUA['not_enough_money'], 'error')
 | ||
|                             elseif CoreName == 'es_extended' then
 | ||
|                                 TriggerClientEvent("esx:showNotification", src, Locales[Config.Locale].LUA['not_enough_money'], "error")
 | ||
|                             end
 | ||
|                         end
 | ||
|                     end
 | ||
|                     break
 | ||
|                 end
 | ||
|             end
 | ||
|         else
 | ||
|             if car.item.price then
 | ||
|                 if CheckMoney(Player, car.item.price) then
 | ||
|                     if CreateNewVehicle(src, car.item.name, 1) then
 | ||
|                         RemoveMoney(Player, car.item.price)
 | ||
|                     end
 | ||
|                 else
 | ||
|                     if CoreName == 'qb-core' then
 | ||
|                         TriggerClientEvent('QBCore:Notify', src, Locales[Config.Locale].LUA['not_enough_money'], 'error')
 | ||
|                     elseif CoreName == 'qbx_core' then
 | ||
|                         QBX:Notify(src, Locales[Config.Locale].LUA['not_enough_money'], 'error')
 | ||
|                     elseif CoreName == 'es_extended' then
 | ||
|                         TriggerClientEvent("esx:showNotification", src, Locales[Config.Locale].LUA['not_enough_money'], "error")
 | ||
|                     end
 | ||
|                 end
 | ||
|             end
 | ||
|         end
 | ||
|     end
 | ||
| end)
 | ||
| 
 | ||
| lib.callback.register('0r-rccar:server:crafting', function(source, data)
 | ||
|     local src = source
 | ||
|     local Player = GetPlayer(source)
 | ||
|     local Job = nil
 | ||
| 
 | ||
|     if Player then
 | ||
|         if CoreName == 'qb-core' then
 | ||
|             Job = Player.PlayerData.job.name
 | ||
|         elseif CoreName == 'qbx_core' then
 | ||
|             Job = Player.PlayerData.job.name
 | ||
|         elseif CoreName == 'es_extended' then
 | ||
|             Job = Player.getJob().name
 | ||
|         end
 | ||
| 
 | ||
|         local craft = nil
 | ||
| 
 | ||
|         for k, v in pairs(Config.RCCrafts) do
 | ||
|             if v.item.name == data.item.name then
 | ||
|                 craft = v
 | ||
|                 break
 | ||
|             end
 | ||
|         end
 | ||
| 
 | ||
|         if craft.jobs ~= 'all' and Job then
 | ||
|             for job, allowed in pairs(craft.jobs) do
 | ||
|                 if allowed and job == Job then
 | ||
|                     if GetItemsCount(src, craft.resources) then
 | ||
|                         if not RemoveItem(src, k, v) then
 | ||
|                             return false
 | ||
|                         end
 | ||
|                     end
 | ||
|                     break
 | ||
|                 end
 | ||
|             end
 | ||
|         else
 | ||
|             if GetItemsCount(src, craft.resources) then
 | ||
|                 if not RemoveItem(src, craft.resources) then
 | ||
|                     return false
 | ||
|                 end
 | ||
|             end
 | ||
|         end
 | ||
| 
 | ||
|         return true
 | ||
|     end
 | ||
| end)
 | ||
| 
 | ||
| lib.callback.register('0r-rccar:server:getItemCount', function(source, resources)
 | ||
|     local src = source
 | ||
|     local Player = GetPlayer(source)
 | ||
| 
 | ||
|     if Player then
 | ||
|         local resourcesCount = {}
 | ||
| 
 | ||
|         for k, v in pairs(resources) do
 | ||
|             local itemData = GetItemByName(src, k)
 | ||
| 
 | ||
|             if itemData and itemData ~= '[]' then
 | ||
|                 table.insert(resourcesCount, { name = itemData.name, count = itemData.count or itemData.amount or 0  })
 | ||
|             end
 | ||
|         end
 | ||
| 
 | ||
|         return resourcesCount
 | ||
|     end
 | ||
| end)
 | ||
| 
 | ||
| lib.callback.register('0r-rccar:server:craftingFinish', function(source, data)
 | ||
|     local src = source
 | ||
|     local Player = GetPlayer(source)
 | ||
|     local Job = nil
 | ||
| 
 | ||
|     if Player then
 | ||
|         if CoreName == 'qb-core' then
 | ||
|             Job = Player.PlayerData.job.name
 | ||
|         elseif CoreName == 'qbx_core' then
 | ||
|             Job = Player.PlayerData.job.name
 | ||
|         elseif CoreName == 'es_extended' then
 | ||
|             Job = Player.getJob().name
 | ||
|         end
 | ||
| 
 | ||
|         local craft = nil
 | ||
| 
 | ||
|         for k, v in pairs(Config.RCCrafts) do
 | ||
|             if v.item.name == data.item.name then
 | ||
|                 craft = v
 | ||
|                 break
 | ||
|             end
 | ||
|         end
 | ||
| 
 | ||
|         if craft.jobs ~= 'all' and Job then
 | ||
|             for job, allowed in pairs(craft.jobs) do
 | ||
|                 if allowed and job == Job then
 | ||
|                     if AddItem(src, craft.item.name, 1, false, nil, false) then
 | ||
|                         return true
 | ||
|                     end
 | ||
|                     break
 | ||
|                 end
 | ||
|             end
 | ||
|         else
 | ||
|             if AddItem(src, craft.item.name, 1, false, nil, false) then
 | ||
|                 return true
 | ||
|             end
 | ||
|         end
 | ||
| 
 | ||
|         return false
 | ||
|     end
 | ||
| end)
 | ||
| 
 | ||
| lib.callback.register('0r-rccar:server:getBatteryLevel', function(source, data)
 | ||
|     local src = source
 | ||
|     local Player = GetPlayer(source)
 | ||
| 
 | ||
|     if Player then
 | ||
|         return GetBatteryLevel(data.info.serie)
 | ||
|     end
 | ||
| end)
 | ||
| 
 | ||
| lib.callback.register('0r-rccar:server:getActivePlugins', function(source, data)
 | ||
|     local src = source
 | ||
|     local Player = GetPlayer(source)
 | ||
|     local extensions = {}
 | ||
| 
 | ||
|     if Player then
 | ||
|         local result = ExecuteSql("SELECT extensions FROM 0r_rccar WHERE serieNumber = '"..data.info.serie.."'")
 | ||
| 
 | ||
|         if result[1] then
 | ||
|             extensions = result[1].extensions
 | ||
|         end
 | ||
| 
 | ||
|         return extensions
 | ||
|     end
 | ||
| end)
 | ||
| 
 | ||
| lib.callback.register('0r-rccar:server:getNewExtensions', function(source, data)
 | ||
|     local src = source
 | ||
|     local Player = GetPlayer(source)
 | ||
|     local extensions = {}
 | ||
| 
 | ||
|     if Player then
 | ||
|         for k, v in pairs(Config.RCCrafts) do
 | ||
|             if GetItemCount(src, v.item.name, 1) then
 | ||
|                 if v.jobs == 'all' then
 | ||
|                     table.insert(extensions, v)
 | ||
|                 else
 | ||
|                     if v.jobs[Player.PlayerData.job.name] then
 | ||
|                         table.insert(extensions, v)
 | ||
|                     end
 | ||
|                 end
 | ||
|             end
 | ||
|         end
 | ||
| 
 | ||
| 
 | ||
|         return extensions
 | ||
|     end
 | ||
| end)
 | ||
| 
 | ||
| lib.callback.register('0r-rccar:server:addExtension', function(source, data, target)
 | ||
|     local src = source
 | ||
|     local Player = GetPlayer(source)
 | ||
|     local newTarget = {
 | ||
|         name = target.item.name,
 | ||
|         label = target.item.label,
 | ||
|         description = target.item.description,
 | ||
|     }
 | ||
| 
 | ||
|     if Player then
 | ||
|         local result = ExecuteSql("SELECT extensions FROM 0r_rccar WHERE serieNumber = '"..data.info.serie.."'")
 | ||
| 
 | ||
|         if result[1] and GetItemCount(src, newTarget.name, 1) then
 | ||
|             local extensions = json.decode(result[1].extensions)
 | ||
|             local newExtensions = {}
 | ||
| 
 | ||
|             local alreadyExists = false
 | ||
|             if extensions then
 | ||
|                 for k, v in pairs(extensions) do
 | ||
|                     if v.name == newTarget.name then
 | ||
|                         alreadyExists = true
 | ||
|                         break
 | ||
|                     end
 | ||
|                     table.insert(newExtensions, v)
 | ||
|                 end
 | ||
|             end
 | ||
| 
 | ||
|             if alreadyExists then
 | ||
|                 TriggerClientEvent('QBCore:Notify', src, "Bu uzantı zaten eklenmiş!", "error")
 | ||
|                 return false
 | ||
|             end
 | ||
| 
 | ||
|             table.insert(newExtensions, newTarget)
 | ||
| 
 | ||
|             ExecuteSql("UPDATE 0r_rccar SET extensions = '"..json.encode(newExtensions).."' WHERE serieNumber = '"..data.info.serie.."'")
 | ||
| 
 | ||
|             RemoveItem(src, target.item.name, 1)
 | ||
| 
 | ||
|             TriggerClientEvent('0r-rccar:client:refreshExtension', src, newExtensions)
 | ||
| 
 | ||
|             return true
 | ||
|         end
 | ||
|     end
 | ||
| end)
 | ||
| 
 | ||
| lib.callback.register('0r-rccar:server:removeExtension', function(source, data, target)
 | ||
|     local src = source
 | ||
|     local Player = GetPlayer(source)
 | ||
| 
 | ||
|     if Player then
 | ||
|         local result = ExecuteSql("SELECT extensions FROM 0r_rccar WHERE serieNumber = '"..data.info.serie.."'")
 | ||
| 
 | ||
|         if result[1] then
 | ||
|             local extensions = json.decode(result[1].extensions)
 | ||
|             local newExtensions = {}
 | ||
| 
 | ||
|             for k, v in pairs(extensions) do
 | ||
|                 if v.name ~= target.name then
 | ||
|                     table.insert(newExtensions, v)
 | ||
|                 end
 | ||
|             end
 | ||
| 
 | ||
|             ExecuteSql("UPDATE 0r_rccar SET extensions = '"..json.encode(newExtensions).."' WHERE serieNumber = '"..data.info.serie.."'")
 | ||
|             
 | ||
|             AddItem(src, target.name, 1, false, nil)
 | ||
| 
 | ||
|             TriggerClientEvent('0r-rccar:client:refreshExtension', src, newExtensions)
 | ||
|             
 | ||
|             return true
 | ||
|         end
 | ||
|     end
 | ||
| end)
 | ||
| 
 | ||
| lib.callback.register('0r-rccar:server:getVehicleForCharge', function(source)
 | ||
|     local src = source
 | ||
|     local Player = GetPlayer(source)
 | ||
|     local vehicles = {}
 | ||
| 
 | ||
|     if Player then
 | ||
|         if Config.Inventory == 'ox_inventory' then
 | ||
|             local playerItems = exports.ox_inventory:GetInventoryItems(source)
 | ||
| 
 | ||
|             if playerItems and playerItems[1] then
 | ||
|                 for k, v in pairs(playerItems) do
 | ||
|                     for x, y in pairs(Config.RCCars) do
 | ||
|                         if v.name == y.item.name then
 | ||
|                             table.insert(vehicles, { name = v.name, label = v.label, serie = v.metadata.serie, battery = GetBatteryLevel(v.metadata.serie) })
 | ||
|                         end
 | ||
|                     end
 | ||
|                 end
 | ||
|             end
 | ||
|         else
 | ||
|             for k, v in pairs(Config.RCCars) do
 | ||
|                 local itemData = GetItem(src, v.item.name)
 | ||
| 
 | ||
|                 if itemData and itemData ~= '[]' then
 | ||
|                     for x, y in pairs(itemData) do
 | ||
|                         table.insert(vehicles, { name = y.name, label = y.label, serie = y.info.serie, battery = GetBatteryLevel(y.info.serie) })
 | ||
|                     end
 | ||
|                 end
 | ||
|             end
 | ||
|         end
 | ||
| 
 | ||
|         return vehicles
 | ||
|     end
 | ||
| end)
 | ||
| 
 | ||
| lib.callback.register('0r-rccar:server:undoChargeVehicle', function(source, serie, item, battery)
 | ||
|     local src = source
 | ||
|     local Player = GetPlayer(source)
 | ||
| 
 | ||
|     if Player then
 | ||
|         ExecuteSql("UPDATE 0r_rccar SET battery = '"..battery.."' WHERE serieNumber = '"..serie.."'")
 | ||
|         AddItem(src, item, 1, false, { serie = serie })
 | ||
|     end
 | ||
| end)
 | ||
| 
 | ||
| lib.callback.register('0r-rccar:server:checkMoney', function(source, price)
 | ||
|     local src = source
 | ||
|     local Player = GetPlayer(source)
 | ||
| 
 | ||
|     if Player then
 | ||
|         if CheckMoney(Player, price) then
 | ||
|             return RemoveMoney(Player, price)
 | ||
|         else
 | ||
|             return false
 | ||
|         end
 | ||
|     end
 | ||
| end)
 | ||
| 
 | ||
| RegisterNetEvent('0r-rccar:server:saveVehicle')
 | ||
| AddEventHandler('0r-rccar:server:saveVehicle', function(vehicleData, batteryLevel)
 | ||
|     local src = source
 | ||
|     local Player = GetPlayer(source)
 | ||
| 
 | ||
|     if Player then
 | ||
|         local serie = vehicleData.info.serie
 | ||
| 
 | ||
|         if Config.ChargeSystem then
 | ||
|             ExecuteSql("UPDATE 0r_rccar SET battery = '"..batteryLevel.."' WHERE serieNumber = '"..serie.."'")
 | ||
|         end
 | ||
|     end
 | ||
| end)
 | ||
| 
 | ||
| RegisterNetEvent('0r-rccar:server:bombVehicle')
 | ||
| AddEventHandler('0r-rccar:server:bombVehicle', function(vehicleData)
 | ||
|     local src = source
 | ||
|     local Player = GetPlayer(source)
 | ||
| 
 | ||
|     if Player then
 | ||
|         local serie = vehicleData.info.serie
 | ||
| 
 | ||
|         ExecuteSql("DELETE FROM 0r_rccar WHERE serieNumber = '"..serie.."'")
 | ||
|         RemoveItem(src, vehicleData.item.name, 1)
 | ||
|     end
 | ||
| end)
 | ||
| 
 | ||
| RegisterNetEvent('0r-rccar:server:chargeVehicle')
 | ||
| AddEventHandler('0r-rccar:server:chargeVehicle', function(serie, item)
 | ||
|     local src = source
 | ||
|     local Player = GetPlayer(source)
 | ||
| 
 | ||
|     if Player then
 | ||
|         local itemData = GetItemByName(src, item, { serie = serie })
 | ||
| 
 | ||
|         if Config.Inventory == 'ox_inventory' then
 | ||
|             RemoveItem(src, item, 1)
 | ||
|         else
 | ||
|             if itemData.info.serie == serie then
 | ||
|                 RemoveItem(src, item, 1)
 | ||
|             end
 | ||
|         end
 | ||
| 
 | ||
|     end
 | ||
| end) | 
