Saltar al contenido principal

API y configuración

exports['fr_progressbar']:Start(opts)id

Inicia una nueva barra de progreso. Si ya hay una activa, la cancela automáticamente antes de iniciar la nueva.

Opciones

OpciónTipoRequeridoDescripción
labelstringTexto mostrado en la barra
durationnumberDuración en milisegundos
iconstringNombre de icono o <svg> raw
colorstring'blue' | 'red' | 'green' | 'yellow' (default: 'blue')
canCancelbooleanEl jugador puede pulsar la tecla de cancelación (default: true)
cancelOnMovebooleanCancela si el jugador se mueve (default: false)
cancelOnDeathbooleanCancela al morir (default: Config.CancelOnDeath)
onCompletefunctionCallback al completarse naturalmente
onCancelfunctionCallback al cancelarse por cualquier motivo

Devuelve el id de la barra (string) o nil si duration es <= 0.

local id = exports['fr_progressbar']:Start({
label = 'Buscando en el cuerpo...',
duration = 6000,
icon = 'search',
color = 'blue',
canCancel = true,
cancelOnMove = true,
onComplete = function() print('Completo') end,
onCancel = function() print('Cancelado') end,
})

exports['fr_progressbar']:Stop(id?)

Para una barra activa programáticamente. Dispara onCancel si la barra existe.

exports['fr_progressbar']:Stop() -- para cualquier barra activa
exports['fr_progressbar']:Stop(id) -- para una barra específica por id

exports['fr_progressbar']:IsActive()boolean

Devuelve true si hay una barra activa en ese momento.

if exports['fr_progressbar']:IsActive() then
-- no inicies otra todavía
end

Ejemplos de uso

Curación (verde, cancela al moverse)

exports['fr_progressbar']:Start({
label = 'Aplicando vendaje...',
duration = 4000,
icon = 'medical',
color = 'green',
cancelOnMove = true,
onComplete = function()
-- aplicar curación
end,
})

Acción criminal (rojo, cancelable)

exports['fr_progressbar']:Start({
label = 'Hackeando terminal...',
duration = 12000,
icon = 'lock',
color = 'red',
canCancel = true,
onComplete = function()
-- recompensa
end,
onCancel = function()
-- abortar
end,
})

Desde otro recurso (cross-resource callbacks)

-- Los callbacks pasados a través de exports se convierten en funcrefs de FiveM.
-- fr_progressbar maneja esto automáticamente con el patrón isCallable().
exports['fr_progressbar']:Start({
label = 'Trabajando...',
duration = 5000,
onComplete = function() TriggerServerEvent('myresource:done') end,
})

Configuración (config.lua)

ClavePor defectoDescripción
Config.Locale'es'Idioma de la UI: 'en' o 'es'
Config.CancelKey194Código de control FiveM para la tecla de cancelación (Backspace)
Config.CancelKeyLabel'Backspace'Etiqueta legible mostrada en la barra
Config.MoveThreshold1.5Metros que el jugador debe moverse para activar cancelOnMove
Config.CancelOnDeathtrueValor por defecto global; las llamadas individuales pueden sobreescribirlo