Skip to main content
Animações suas — de outro recurso, de uma lista antiga, de um menu que você está trocando — entram no menu do dk_dances por duas portas, que fazem a mesma coisa.

config/server/inject.lua

Arquivo seu dentro do dk_dances. Roda no servidor quando o recurso inicia.

Exports do servidor

Para outro recurso seu registrar as danças dele: registerDance e unregisterDance.

O arquivo inject.lua

Ele roda no servidor uma vez, quando o dk_dances inicia, e recebe inject: O arquivo vem sem nada ativo e com exemplos comentados. Para várias danças, use um loop.

Uma dança

Uma lista, com loop

Cada dança tem o id escrito por você.

Convertendo a lista de outro menu

Aqui cada item é { id, nome, dicionário, clipe, flag da animação }. A flag é a do TaskPlayAnim: 1 repete, 16 anima só o corpo de cima, 32 deixa andar.
Mantenha os ids antigos na conversão (antigo-bolero). Se o seu servidor guardava as animações favoritas dos jogadores por esses ids em algum banco, eles continuam apontando para a dança certa.

Registrando por outro recurso

No server.lua do outro recurso, pelo export. O dk_dances precisa estar iniciado, e é preciso registrar de novo quando ele reinicia, por isso o evento abaixo.
Para tirar uma dança antes de o recurso parar:

Campos aceitos

São os de dances em config/shared/config.lua: id, label, dict, clip, category, origin, loop, upperBody, movable, duration, preview, onPlay e onStop. Com estas diferenças:

Regras

  • Id repetido, id do pacote do GTA ou id fora das regras são recusados, e o motivo vem no retorno e no console
  • O dono da dança é o recurso que a registrou. Só ele a remove, e só ele a registra de novo com o mesmo id (a nova versão troca a antiga no mesmo lugar). Outro recurso não toma o id
  • Quando o recurso dono para, as danças dele saem do menu sozinhas e quem estava dançando uma delas é parado. Quando ele inicia de novo, registra outra vez
  • Os jogadores recebem as danças novas em lote (um evento só para uma sequência de registros), e quem entra depois pede o que já foi injetado
  • Valem os mesmos hooks do servidor (onBeforePlay etc.), o playCooldown e os objetos de qualquer dança local
  • Só o servidor injeta. O client não tem export de registro
  • A categoria de log inject (em config/server/logs.lua) registra cada dança registrada ou removida
O .ycd das danças injetadas precisa estar na stream/ de algum recurso do servidor. O dk_dances não baixa arquivos para elas.
Veja também Danças que chamam outro script: uma entrada do menu que, em vez de tocar uma animação, chama um evento ou export de outro script.