feat(client/skillcheck): skillcheck array chaining

This commit is contained in:
Luke
2022-10-15 14:30:10 +02:00
committed by Luke
parent ed8e804c09
commit 4a2866613e

View File

@@ -1,19 +1,48 @@
local skillcheck
local gameCount = 0
local gameDifficulty
local gamePromise
local function resolveSkillCheck(success)
skillcheck:resolve(success)
skillcheck = nil
SetNuiFocus(false, false)
end
function lib.skillCheck(difficulty)
if skillcheck then return end
skillcheck = promise:new()
gameDifficulty = difficulty
SetNuiFocus(true, false)
SendNUIMessage({
action = 'startSkillCheck',
data = difficulty
})
if type(difficulty) == 'table' then
gameCount = 0
for i = 1, #difficulty do
gamePromise = promise:new()
SendNUIMessage({
action = 'startSkillCheck',
data = difficulty[i]
})
if not Citizen.Await(gamePromise) then
gamePromise = nil
break
end
end
else
SendNUIMessage({
action = 'startSkillCheck',
data = difficulty
})
end
return Citizen.Await(skillcheck)
end
RegisterNUICallback('skillCheckOver', function(data, cb)
cb(1)
skillcheck:resolve(data.success)
skillcheck = nil
SetNuiFocus(false, false)
if not gamePromise then return resolveSkillCheck(data.success) end
gamePromise:resolve(data.success)
if not data.success then return resolveSkillCheck(data.success) end
gameCount += 1
if gameCount == #gameDifficulty then
resolveSkillCheck(data.success)
end
end)