Visão Geral
Esse arquivo concentra funções executadas no lado do cliente, acessadas viaConfig.clientFuncs, e utilizadas pelo painel de animações e também pelos exports disponíveis.
O objetivo é fornecer uma base de controle para:
- Validação de animações.
- Controle de execução com cooldown.
- Interação com outros jogadores próximos.
- Hooks para quando a animação começa ou termina.
- Bloqueio de teclas durante animações.
Funções Disponíveis
canPlayAnim(id: string): boolean
Verifica se o jogador pode iniciar uma animação. Retorna false se o jogador estiver “morto” (vida abaixo de 101) ou se estiver em cooldown.
Exibe um notify com o tempo restante de cooldown, se necessário.
getNearestPlayer(target?: integer, distance: integer): integer|nil
Busca a source do player mais próximo, respeitando a distância definida.Caso um target seja passado, ele é utilizado diretamente.
Se nenhum player estiver por perto, exibe uma notificação e retorna nil.
onStartAnim(id: string, target: integer): void
Hook executado assim que a animação começa.Você pode modificar o comportamento aqui, como mudar estados locais ou logar eventos.
onStopAnim(id: string, target: integer): void
Hook executado quando a animação para.Também personalizável para alterar o estado do jogador, etc.
blockButtons(blockedToRun: boolean, blockButtons: boolean): void
Função executada em loop enquanto a animação está ativa.
blockedToRun: setrue, bloqueia a tecla de correr (Shift).blockButtons: setrue, bloqueia uma lista completa de botões que poderiam interferir na animação.
Cooldown Embutido
O script já vem com uma lógica simples e eficaz de cooldown:Isso evita spam no servidor e permite uma camada de controle por parte do desenvolvedor.Você pode ajustar esse tempo facilmente alterando o valor ao instanciar o
Cooldown.
Personalização
Essas funções foram projetadas para serem simples de alterar ou estender. Você pode, por exemplo:- Adicionar novas validações em
canPlayAnim. - Alterar notificações.
- Modificar os botões bloqueados conforme o tipo de animação.
Conclusão
Ofunctions.lua do lado cliente é essencial para manter o controle das execuções de animações de forma segura, organizada e leve.
Com essas ferramentas, você tem total liberdade para modificar, expandir e personalizar sua experiência no servidor.
