Skip to main content
Uma entrada do menu pode, em vez de tocar uma animação, chamar um evento ou um export de outro script: ao clicar em Dançar, chamar o export do seu script de emotes e, ao parar, o que cancela. Também serve para somar algo a uma dança com animação: um som, um efeito.

Exemplo

Como funciona

  • Sem dict e clip, a dança é só uma ação e precisa de onPlay. Com os dois, ela é uma dança normal e onPlay/onStop rodam além da animação. Informar só um dos dois é erro
  • onPlay e onStop têm uma parte client e/ou uma server
  • Cada parte é { event = "nome" } ou { export = "recurso:funcao" }, com args opcional (até 8 valores: texto, número ou booleano)

Funções no servidor

No servidor, a parte server também pode ser uma função, e o handler inteiro pode ser a função:
  • Função só vale quando a dança é registrada por código do servidor (inject.lua ou o export registerDance) e nunca vai ao jogador
  • A parte client aceita só evento e export, porque função não atravessa a rede
  • Para um bloco de código no client, use os hooks onPlay(dance) e onStop(dance) de config/client/hooks.lua, que valem para qualquer dança, ou chame um evento seu
Em config/shared/config.lua valem evento e export nos dois lados. Esse arquivo é baixado pelo jogador, então o nome do evento do servidor fica visível a ele.

Quando roda

Ações sem animação

Uma ação não toca animação, então:
  • O jogador fica “dançando” até parar. Se o outro script terminar sozinho, ele chama exports.dk_dances:stop() no client
  • Bloqueios (veículo, queda etc.), cooldown, hooks e compartilhar valem como nas outras danças
  • Uma ação não tem prévia (o botão não aparece), nem objetos (props) nem sincronia: não há animação para os outros verem
Um erro no código do outro script nunca derruba o dk_dances. Com debugMode ele aparece no console.

Injetar animações

Como registrar a dança, por arquivo ou por export.

Hooks

Código para qualquer dança, no client e no server.