2025-03-18 18:46:09 +11:00
|
|
|
--[[
|
|
|
|
|
https://github.com/overextended/ox_lib
|
|
|
|
|
|
|
|
|
|
This file is licensed under LGPL-3.0 or higher <https://www.gnu.org/licenses/lgpl-3.0.en.html>
|
|
|
|
|
|
|
|
|
|
Copyright (c) 2025 Linden <https://github.com/thelindat/fivem>
|
|
|
|
|
]]
|
|
|
|
|
|
2022-10-16 00:22:13 +11:00
|
|
|
---@type promise?
|
2022-10-13 14:15:49 +02:00
|
|
|
local skillcheck
|
2022-10-16 00:22:13 +11:00
|
|
|
|
|
|
|
|
---@alias SkillCheckDifficulity 'easy' | 'medium' | 'hard' | { areaSize: number, speedMultiplier: number }
|
|
|
|
|
|
|
|
|
|
---@param difficulty SkillCheckDifficulity | SkillCheckDifficulity[]
|
2023-05-18 15:29:31 +10:00
|
|
|
---@param inputs string[]?
|
2022-10-16 00:22:13 +11:00
|
|
|
---@return boolean?
|
2023-02-12 19:26:09 +01:00
|
|
|
function lib.skillCheck(difficulty, inputs)
|
2022-10-13 14:15:49 +02:00
|
|
|
if skillcheck then return end
|
|
|
|
|
skillcheck = promise:new()
|
2022-10-16 00:22:13 +11:00
|
|
|
|
2023-03-23 05:55:16 +11:00
|
|
|
lib.setNuiFocus(false, true)
|
2022-10-18 17:59:02 +02:00
|
|
|
SendNUIMessage({
|
|
|
|
|
action = 'startSkillCheck',
|
2023-02-12 19:26:09 +01:00
|
|
|
data = {
|
|
|
|
|
difficulty = difficulty,
|
|
|
|
|
inputs = inputs
|
|
|
|
|
}
|
2022-10-18 17:59:02 +02:00
|
|
|
})
|
2022-10-16 00:22:13 +11:00
|
|
|
|
2022-10-13 14:15:49 +02:00
|
|
|
return Citizen.Await(skillcheck)
|
|
|
|
|
end
|
|
|
|
|
|
2023-08-08 14:26:06 +03:30
|
|
|
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
|
|
|
|
|
|
2022-10-18 17:59:02 +02:00
|
|
|
RegisterNUICallback('skillCheckOver', function(success, cb)
|
2022-10-13 14:15:49 +02:00
|
|
|
cb(1)
|
2023-03-23 05:55:16 +11:00
|
|
|
|
2022-10-18 17:59:02 +02:00
|
|
|
if skillcheck then
|
2023-03-23 05:55:16 +11:00
|
|
|
lib.resetNuiFocus()
|
|
|
|
|
|
2022-10-18 17:59:02 +02:00
|
|
|
skillcheck:resolve(success)
|
|
|
|
|
skillcheck = nil
|
2022-10-15 14:30:10 +02:00
|
|
|
end
|
2022-10-16 00:22:13 +11:00
|
|
|
end)
|