Scripts/resources/[qb]/[qb_extras]/qb-tunerchip/server/main.lua

72 lines
2.2 KiB
Lua
Raw Normal View History

2024-12-29 20:07:10 +00:00
local QBCore = exports['qb-core']:GetCoreObject()
local tunedVehicles = {}
local Threshold = {
['boost'] = {min = 1, max = 5},
['acceleration'] = {min = 1, max = 5},
['gearchange'] = {min = 1, max = 5},
['breaking'] = {min = 1, max = 5},
['drivetrain'] = {min = 1, max = 3},
}
QBCore.Functions.CreateUseableItem("tunerlaptop", function(source)
TriggerClientEvent('qb-tunerchip:client:openChip', source)
end)
RegisterNetEvent('qb-tunerchip:server:TuneStatus', function(plate, bool)
if bool then
tunedVehicles[plate] = bool
else
tunedVehicles[plate] = nil
end
end)
QBCore.Functions.CreateCallback('qb-tunerchip:server:HasChip', function(source, cb, data)
local src = source
local Ply = QBCore.Functions.GetPlayer(src)
local Chip = Ply.Functions.GetItemByName('tunerlaptop')
if data then
for k,v in pairs(data) do
if Threshold[k].min > tonumber(v) or Threshold[k].max < tonumber(v) then Chip = nil end
end
end
if Chip then cb(true) return end
DropPlayer(src, Lang:t("text.this_is_not_the_idea_is_it"))
cb(false)
end)
QBCore.Functions.CreateCallback('qb-tunerchip:server:GetStatus', function(_, cb, plate)
cb(tunedVehicles[plate])
end)
QBCore.Functions.CreateUseableItem("nitrous", function(source)
TriggerClientEvent('smallresource:client:LoadNitrous', source)
end)
RegisterNetEvent('nitrous:server:LoadNitrous', function(Plate)
TriggerClientEvent('nitrous:client:LoadNitrous', -1, Plate)
end)
RegisterNetEvent('nitrous:server:SyncFlames', function(netId)
TriggerClientEvent('nitrous:client:SyncFlames', -1, netId, source)
end)
RegisterNetEvent('nitrous:server:UnloadNitrous', function(Plate)
TriggerClientEvent('nitrous:client:UnloadNitrous', -1, Plate)
end)
RegisterNetEvent('nitrous:server:UpdateNitroLevel', function(Plate, level)
TriggerClientEvent('nitrous:client:UpdateNitroLevel', -1, Plate, level)
end)
RegisterNetEvent('nitrous:server:StopSync', function(plate)
TriggerClientEvent('nitrous:client:StopSync', -1, plate)
end)
RegisterNetEvent('nitrous:server:removeItem', function()
local Player = QBCore.Functions.GetPlayer(source)
if not Player then return end
Player.Functions.RemoveItem('nitrous', 1)
end)