100 lines
3.9 KiB
Lua
100 lines
3.9 KiB
Lua
local QBCore = exports['qb-core']:GetCoreObject()
|
|
local VehicleNitrous = {}
|
|
local NitroVeh = {}
|
|
|
|
QBCore.Functions.CreateUseableItem("nitrous", function(source, item)
|
|
TriggerClientEvent('qb-nitro:client:ApplyNitrous', source)
|
|
end)
|
|
|
|
RegisterNetEvent('qb-nitro:server:LoadNitrous', function(Plate)
|
|
VehicleNitrous[Plate] = {
|
|
hasnitro = true,
|
|
level = 100,
|
|
}
|
|
TriggerClientEvent('qb-nitro:client:LoadNitrous', -1, Plate)
|
|
TriggerClientEvent('hud:client:UpdateNitrous', -1, Plate, VehicleNitrous[Plate].level)
|
|
TriggerEvent('qb-nitro:database:LoadNitro', Plate, 100)
|
|
end)
|
|
|
|
RegisterNetEvent('qb-nitro:server:SyncFlames', function(netId)
|
|
TriggerClientEvent('qb-nitro:client:SyncFlames', -1, netId, source)
|
|
end)
|
|
|
|
RegisterNetEvent('qb-nitro:server:AddEmptyNitrous', function()
|
|
local src = source
|
|
local Ply = QBCore.Functions.GetPlayer(src)
|
|
if not Ply then return end
|
|
Ply.Functions.RemoveItem('nitrous', 1)
|
|
Ply.Functions.AddItem('emptynitrous', 1)
|
|
end)
|
|
|
|
RegisterNetEvent('qb-nitro:server:UnloadNitrous', function(Plate)
|
|
VehicleNitrous[Plate] = nil
|
|
TriggerClientEvent('qb-nitro:client:UnloadNitrous', -1, Plate)
|
|
TriggerEvent('qb-nitro:database:UnloadNitro', Plate)
|
|
end)
|
|
|
|
RegisterNetEvent('qb-nitro:server:UpdateNitroLevel', function(Plate, level)
|
|
VehicleNitrous[Plate].level = level
|
|
TriggerClientEvent('qb-nitro:client:UpdateNitroLevel', -1, Plate, level)
|
|
TriggerEvent('qb-nitro:database:UpdateNitroLevel', Plate, level)
|
|
end)
|
|
|
|
RegisterNetEvent('qb-nitro:server:StopSync', function(plate)
|
|
TriggerClientEvent('qb-nitro:client:StopSync', -1, plate)
|
|
end)
|
|
|
|
QBCore.Functions.CreateCallback('qb-nitro:GetNosLoadedVehs', function(source, cb)
|
|
local result = MySQL.Sync.fetchAll('SELECT * FROM player_vehicles WHERE hasnitro = ?', {1})
|
|
if result[1] then
|
|
for k, v in pairs(result) do
|
|
if v["hasnitro"] == 1 then
|
|
VehicleNitrous[v["plate"]] = { hasnitro = v["hasnitro"], level = tonumber(v["noslevel"]), }
|
|
TriggerClientEvent('qb-nitro:client:LoadNitrous', -1, tostring(v["plate"]))
|
|
TriggerClientEvent('hud:client:UpdateNitrous', -1, result[k]["plate"], VehicleNitrous[result[k]["plate"]].level)
|
|
end
|
|
end
|
|
end
|
|
cb(VehicleNitrous)
|
|
end)
|
|
|
|
QBCore.Functions.CreateCallback('qb-nitro:GetNosLoaded', function(source, cb, plate)
|
|
local result = MySQL.Sync.fetchAll('SELECT * FROM player_vehicles WHERE plate = ?', {plate})
|
|
if result[1].hasnitro then
|
|
for k, v in pairs(result) do
|
|
if v["hasnitro"] == 1 then
|
|
VehicleNitrous[result[k]["plate"]] = { hasnitro = true, level = tonumber(result[k]["noslevel"]), }
|
|
TriggerClientEvent('qb-nitro:client:LoadNitrous', -1, tostring(result[k]["plate"]))
|
|
TriggerClientEvent('hud:client:UpdateNitrous', -1, result[k]["plate"], VehicleNitrous[result[k]["plate"]].level)
|
|
end
|
|
end
|
|
end
|
|
cb(VehicleNitrous)
|
|
end)
|
|
|
|
RegisterNetEvent('qb-nitro:database:LoadNitro', function(plate, level)
|
|
MySQL.Async.execute('UPDATE player_vehicles SET noslevel = ? WHERE plate = ?', {100, plate})
|
|
MySQL.Async.execute('UPDATE player_vehicles SET hasnitro = ? WHERE plate = ?', {1, plate})
|
|
end)
|
|
|
|
RegisterNetEvent('qb-nitro:database:UnloadNitro', function(plate)
|
|
MySQL.Async.execute('UPDATE player_vehicles SET noslevel = ?, hasnitro = ? WHERE plate = ?', {0, 0, plate})
|
|
end)
|
|
|
|
RegisterNetEvent('qb-nitro:database:UpdateNitroLevel', function(plate, level)
|
|
MySQL.Async.execute('UPDATE player_vehicles SET noslevel = ? WHERE plate = ?', {level, plate})
|
|
end)
|
|
|
|
RegisterNetEvent('qb-nitro:server:SyncPurge', function(netId, enabled)
|
|
for k, v in pairs(QBCore.Functions.GetPlayers()) do
|
|
local P = QBCore.Functions.GetPlayer(v)
|
|
TriggerClientEvent('qb-nitro:client:SyncPurge', P.PlayerData.source, netId, enabled)
|
|
end
|
|
end)
|
|
|
|
RegisterNetEvent('qb-nitro:server:SyncFlame', function(netId, scale)
|
|
for k, v in pairs(QBCore.Functions.GetPlayers()) do
|
|
local P = QBCore.Functions.GetPlayer(v)
|
|
TriggerClientEvent('qb-nitro:client:SyncFlame', P.PlayerData.source, netId, scale)
|
|
end
|
|
end) |