Um script pequeno, um efeito desproporcional
As barras de progresso aparecem por todo o lado no FiveM — arrombar fechaduras, reparar, lavar dinheiro, minerar, prestar primeiros socorros. As implementações por defeito são funcionais, mas sem graça. O Agency-ProgressBar é a nossa visão de como este utilitário se deve sentir quando alguém se preocupa com os detalhes.
A anatomia de uma boa barra de progresso
Uma boa barra de progresso comunica quatro coisas ao mesmo tempo: que ação está a acontecer, o quanto já avançaste, quanto tempo falta e se podes cancelar. A maioria das implementações só cobre as duas primeiras. O Agency-ProgressBar mostra as quatro, com animações subtis que tornam o progresso fluido em vez de aos solavancos.
Cancelamento que funciona
O cancelamento iniciado pelo jogador dispara uma breve animação de fade-out que devolve a opacidade da barra a zero em 300ms. Sem desaparecimento abrupto. Os programadores podem registar um callback de cancelamento para que os scripts limpem corretamente quando os jogadores se afastam de uma ação a meio.
Posicionamento contextual
A barra aparece perto do elemento relevante no ecrã — por cima da tua cabeça para ações dirigidas a ti próprio, por cima do NPC alvo para ações interativas. Acabou-se ler o estado da ação no fundo do ecrã enquanto algo acontece no topo. Este posicionamento contextual é uma melhoria de UX subtil que os jogadores sentem sem conseguirem nomear.
O padrão de exports
Como todos os nossos scripts utilitários, o Agency-ProgressBar expõe uma API de exports simples: exports['agency-progressbar']:Play({label, duration, canCancel, onCancel, onDone}). Integra-o em qualquer script em minutos. Combina-se com o Agency-Notify, Agency-Hud e com o resto do nosso ecossistema sem qualquer configuração especial.