67 lines
2.1 KiB
Lua
67 lines
2.1 KiB
Lua
|
|
local config = require 'config.server'
|
||
|
|
local currentVehicles = {}
|
||
|
|
|
||
|
|
local function isInList(name)
|
||
|
|
if next(currentVehicles) then
|
||
|
|
for i = 1, #currentVehicles do
|
||
|
|
if currentVehicles[i] == name then
|
||
|
|
return true
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
return false
|
||
|
|
end
|
||
|
|
|
||
|
|
local function generateVehicleList()
|
||
|
|
table.wipe(currentVehicles)
|
||
|
|
while #currentVehicles < 40 do
|
||
|
|
local randVehicle = config.vehicles[math.random(1, #config.vehicles)]
|
||
|
|
if not isInList(randVehicle) then
|
||
|
|
currentVehicles[#currentVehicles + 1] = randVehicle
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
TriggerClientEvent('qbx_scrapyard:client:setNewVehicles', -1, currentVehicles)
|
||
|
|
end
|
||
|
|
|
||
|
|
lib.callback.register('qbx_scrapyard:server:checkVehicleOwner', function(_, plate)
|
||
|
|
local vehicle = MySQL.single.await('SELECT * FROM player_vehicles WHERE plate = ?', {plate})
|
||
|
|
return vehicle and true or false
|
||
|
|
end)
|
||
|
|
|
||
|
|
RegisterNetEvent('QBCore:Server:OnPlayerLoaded', function()
|
||
|
|
TriggerClientEvent('qbx_scrapyard:client:setNewVehicles', source, currentVehicles)
|
||
|
|
end)
|
||
|
|
|
||
|
|
RegisterNetEvent('qbx_scrapyard:server:scrapVehicle', function(listKey, netId)
|
||
|
|
local src = source
|
||
|
|
local player = exports.qbx_core:GetPlayer(src)
|
||
|
|
local entity = NetworkGetEntityFromNetworkId(netId)
|
||
|
|
if not player or not currentVehicles[listKey] or not DoesEntityExist(entity) then return end
|
||
|
|
|
||
|
|
DeleteEntity(entity)
|
||
|
|
|
||
|
|
for _ = 1, math.random(2, 4), 1 do
|
||
|
|
local item = config.items[math.random(1, #config.items)]
|
||
|
|
exports.ox_inventory:AddItem(src, item, math.random(25, 45))
|
||
|
|
Wait(500)
|
||
|
|
end
|
||
|
|
|
||
|
|
local luck = math.random(1, 8)
|
||
|
|
local odd = math.random(1, 8)
|
||
|
|
if luck == odd then
|
||
|
|
local random = math.random(10, 20)
|
||
|
|
exports.ox_inventory:AddItem(src, 'rubber', random)
|
||
|
|
end
|
||
|
|
|
||
|
|
table.remove(currentVehicles, listKey)
|
||
|
|
TriggerClientEvent('qbx_scrapyard:client:setNewVehicles', -1, currentVehicles)
|
||
|
|
end)
|
||
|
|
|
||
|
|
AddEventHandler('onResourceStart', function(resource)
|
||
|
|
if resource ~= GetCurrentResourceName() then return end
|
||
|
|
SetTimeout(2000, generateVehicleList)
|
||
|
|
end)
|
||
|
|
|
||
|
|
SetInterval(generateVehicleList, 60 * 60000)
|