Scripts/resources/[standalone]/ox_lib/resource/interface/client/skillcheck.lua

48 lines
1.0 KiB
Lua
Raw Normal View History

2024-12-29 20:02:43 +00:00
---@type promise?
local skillcheck
---@alias SkillCheckDifficulity 'easy' | 'medium' | 'hard' | { areaSize: number, speedMultiplier: number }
---@param difficulty SkillCheckDifficulity | SkillCheckDifficulity[]
---@param inputs string[]?
---@return boolean?
function lib.skillCheck(difficulty, inputs)
if skillcheck then return end
skillcheck = promise:new()
lib.setNuiFocus(false, true)
SendNUIMessage({
action = 'startSkillCheck',
data = {
difficulty = difficulty,
inputs = inputs
}
})
return Citizen.Await(skillcheck)
end
function lib.cancelSkillCheck()
if not skillcheck then
error('No skillCheck is active')
end
SendNUIMessage({action = 'skillCheckCancel'})
end
---@return boolean
function lib.skillCheckActive()
return skillcheck ~= nil
end
RegisterNUICallback('skillCheckOver', function(success, cb)
cb(1)
if skillcheck then
lib.resetNuiFocus()
skillcheck:resolve(success)
skillcheck = nil
end
end)