.ycd que ficam nos servidores da DK e são baixados durante o jogo. Esta página explica quando o download acontece, como evitá-lo e como o jogador vê a dança de quem está perto.
Carregamento remoto
Os arquivos são baixados sob demanda: quando o jogador toca a dança pela primeira vez, ou quando vê alguém dançando uma dança que ainda não tem.
Sem baixar nada
- Todas as danças
- Só algumas
remote.enabled = false em config/shared/config.lua. Nenhuma dança é baixada e o serviço de animações não é consultado..ycd fica na pasta stream/ deste recurso. Crie a pasta ao lado do fxmanifest.lua, com o nome que a dança usa em file ou, sem ele, o dict mais .ycd:
- A licença continua sendo exigida
- Uma dança local continua com o selo Exclusiva se tiver
fileouorigin = "exclusive". Sem nenhum dos dois ela aparece como GTA no filtro de origem
Serviço de animações fora do ar
Se o serviço estiver fora do ar ou ainda conectando, o menu abre normalmente: as danças do GTA e as dastream/ funcionam, e uma faixa avisa que as exclusivas estão indisponíveis, com o botão Tentar de novo.
Tempo entre danças
Cada dança remota iniciada faz quem está perto baixar o arquivo, então o servidor segura o ritmo. Emconfig/server/config.lua:
O limite maior é o que impede um jogador de fazer os outros baixarem arquivos novos em rajada. A prévia não tem essa espera.
Sincronia entre jogadores
Para ver a dança de outro jogador, o arquivo dela precisa estar baixado em você também. Cada jogador baixa só o que está vendo. Comremote.sync = true (padrão):
- O servidor publica, no state de cada jogador, qual dança remota ele está dançando. Danças do GTA base e as da
stream/não entram, porque não têm arquivo - A cada
watchIntervalms, cada jogador confere os dançarinos a atéremote.syncRadiusmetros. Se um deles dança uma dança remota cujo arquivo você ainda não tem, o arquivo é baixado na hora - Quem está longe não baixa nada até se aproximar, e quem acabou de entrar baixa só o que vê
- Um arquivo baixado vale até o jogador sair do servidor: ver a mesma dança de novo não pede nada aos servidores da DK
- Na primeira vez que um jogador vê uma dança que não tinha, o dançarino aparece parado por alguns segundos (o tempo do download mais
watchGrace) e depois passa a dançar
Opções
Um
watchInterval menor baixa mais cedo ao se aproximar, com uma conferência um pouco mais frequente.
Verificar e reparar
O GTA aplica a animação de um dançarino no momento em que ela chega. Quem ainda não tinha o arquivo (ou acabou de chegar perto) vê o dançarino parado, mesmo depois de baixar. Por isso, com o arquivo pronto e o dançarino sem aparecer dançando porwatchGrace ms, o jogador pede ao servidor que ele repita a animação, até 3 pedidos por dançarino e dança.
O servidor só repassa o pedido se o alvo estiver mesmo dançando uma dança remota, no mesmo bucket e a até remote.syncRadius metros, e no máximo uma vez por resyncGap ms por dançarino. O jogador espera pelo menos 3 s entre dois pedidos para o mesmo dançarino, para não gastar uma tentativa que o servidor recusaria.
Arquivos que falham ao baixar
Um arquivo que falha (serviço fora, nome errado no catálogo, ausente nos servidores da DK) não é abandonado: ele é tentado de novo depois de 2 min, depois 4, 8, 16… com teto de 6 h.- Uma queda do serviço se recupera em minutos
- Um arquivo realmente quebrado custa um pedido por jogador a cada 6 h
- Tocar a dança manualmente tenta sempre
Reiniciar o recurso sem reabrir o jogo
O jogo não solta o dicionário de uma dança que estava em uso quando o recurso para: ele fica carregado e vazio (sem o clipe) e só fechar e abrir o FiveM limpava, o que atingia até quem estava só olhando um dançarino. Por isso, a cada início do recurso, as danças baixadas ganham um número no nome do arquivo e do dicionário dentro do jogo (ex.:dk@passinho_i_love_u_funk_1700000000):
- Todos os clientes recebem o mesmo número junto do hash, então o dançarino e quem o vê usam o mesmo nome
- O arquivo nos servidores da DK continua o mesmo, só o nome que o jogo conhece muda
- O dicionário preso do restart anterior fica para trás, sem uso, e o novo nasce limpo
- Os nomes originais seguem valendo no catálogo e nas regras de
props. Nos hooks do client, odictde uma dança exclusiva já traz o número: decida porid,categoryouorigin
debugMode ligado em config/client/config.lua, o F8 mostra o que o jogo tinha carregado quando o recurso subiu, o que cada download encontrou e, ao parar, quantos dançarinos foram parados e quantos dicionários soltos.
Proteção do state
O jogador consegue escrever no próprio state, a não ser que oserver.cfg tenha:

