DRS Progressbar
Barra e anel de progresso modernos, com animações, props nas mãos, bloqueio de controlos e uma tecla de cancelar que o jogador pode mudar. Tem a mesma API do progressbar do QBCore e do progressBar/progressCircle do ox_lib, por isso troca-se sem mexer nos scripts.
#Requisitos
Nada obrigatório.
#Instalação
- Coloca
drs_progressbaremresources. - Adiciona
ensure drs_progressbaraoserver.cfg. - Escolhe o estilo (
baroucircle) e as cores emconfig.luae testa com/progresstest.
#Usar no QBCore
Em qb-core/client/functions.lua, troca as duas primeiras linhas de QBCore.Functions.Progressbar por:
local pb = GetResourceState('drs_progressbar') == 'started' and 'drs_progressbar' or 'progressbar'
if GetResourceState(pb) ~= 'started' then error('progressbar needs to be started in order for QBCore.Functions.Progressbar to work') end
exports[pb]:Progress({#Usar no ox_lib
Os scripts que chamam exports.drs_progressbar:progressBar(...) e progressCircle(...) recebem os mesmos parâmetros do ox_lib (duration, label, canCancel, disable, anim, prop).
#Tecla de cancelar
Por defeito é o X. Cada jogador pode mudar em Definições → Teclas → FiveM, e a barra mostra a tecla que ele tem.
#Para programadores
if exports.drs_progressbar:Start({
duration = 5000, label = 'A reparar', style = 'circle', canCancel = true,
disable = { move = true, car = true, combat = true },
anim = { dict = 'mini@repair', clip = 'fixing_a_ped' }, -- ou { scenario = 'PROP_HUMAN_BUM_BIN' }
prop = { model = 'prop_tool_wrench', bone = 57005, pos = vec3(0.1, 0.0, 0.0), rot = vec3(0.0, 0.0, 0.0) },
}) then
-- acabou
endexports.drs_progressbar:Progress({ name = 'fix', duration = 5000, label = 'A reparar', canCancel = true,
controlDisables = { disableMovement = true }, animation = { animDict = 'mini@repair', anim = 'fixing_a_ped' } },
function(cancelled) end)exports.drs_progressbar:IsBusy() e exports.drs_progressbar:Cancel() também estão disponíveis.
#Configuração completa
-- DRS Progressbar — configuração / configuration
Config = {}
Config.Locale = 'pt' -- 'pt' | 'en'
Config.Style = 'bar' -- 'bar' (barra em baixo) | 'circle' (anel ao centro); cada chamada pode escolher / each call can override
Config.Accent = '#7c5cff' -- cor principal / main colour
Config.Accent2 = '#22d3ee' -- cor do fim do gradiente / gradient end colour
Config.ShowPercent = true
Config.Scale = 1.0
Config.Font = 'Plus Jakarta Sans'
-- Tecla para cancelar (o jogador pode mudar em Definições > Teclas > FiveM)
-- Cancel key (players can change it in Settings > Key Bindings > FiveM)
Config.CancelKey = 'X'
-- Comando de demonstração (só no próprio cliente). false para desligar.
-- Demo command (client only). false to turn it off.
Config.TestCommand = 'progresstest'