This commit is contained in:
2026-07-07 21:08:52 +02:00
commit 4c20cfc716
2613 changed files with 318021 additions and 0 deletions

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,41 @@
local NumberCharset = {}
local Charset = {}
for i = 48, 57 do table.insert(NumberCharset, string.char(i)) end
for i = 65, 90 do table.insert(Charset, string.char(i)) end
for i = 97, 122 do table.insert(Charset, string.char(i)) end
function GeneratePlate()
math.randomseed(GetGameTimer())
local generatedPlate = string.upper(GetRandomLetter(Config.PlateLetters) .. (Config.PlateUseSpace and ' ' or '') .. GetRandomNumber(Config.PlateNumbers))
local isTaken = IsPlateTaken(generatedPlate)
if isTaken then
return GeneratePlate()
end
return generatedPlate
end
-- mixing async with sync tasks
function IsPlateTaken(plate)
local p = promise.new()
ESX.TriggerServerCallback('esx_vehicleshop:isPlateTaken', function(isPlateTaken)
p:resolve(isPlateTaken)
end, plate)
return Citizen.Await(p)
end
function GetRandomNumber(length)
Wait(0)
return length > 0 and GetRandomNumber(length - 1) .. NumberCharset[math.random(1, #NumberCharset)] or ''
end
function GetRandomLetter(length)
Wait(0)
return length > 0 and GetRandomLetter(length - 1) .. Charset[math.random(1, #Charset)] or ''
end