Capítulo 1: Introdução às Animações

Para utilizarmos animações no FiveM, faremos uso de nativos para iniciar e controlar animações. Aqui está um exemplo básico de como executar uma animação.

client/animations.js



// Função para carregar o dicionário de animação
async function loadAnimationDict(dict) {
    while (!HasAnimDictLoaded(dict)) {
        RequestAnimDict(dict);
        await new Promise(resolve => setTimeout(resolve, 100));
    }
}



// Comando para iniciar a animação
RegisterCommand('dance', async () => {

    let animDict = 'anim@mp_player_intcelebrationmale@uncle_disco'; 
    let animName = 'uncle_disco'
    
    let playerPed = PlayerPedId();
    await loadAnimationDict(animDict);

    // Função para executar a animação
    TaskPlayAnim(playerPed, animDict, animName, 8.0, -8.0, -1, 49, 0, false, false, false);
}, false);

Neste exemplo, definimos uma função para carregar o dicionário de animação (loadAnimationDict) e outra para executar a animação (playAnimation). O comando /dance pode ser usado no jogo para iniciar uma animação de dança.

Capítulo 4: Animações Personalizadas

Vamos adicionar uma animação personalizada. Suponha que queremos adicionar uma animação de saudação.

client/animations.js

// Comando para animação de saudação
RegisterCommand('greet', async () => {
    emit('startAnimation', 'gestures@m@standing@casual', 'gesture_hello');
});

Neste exemplo, adicionamos um comando /greet que irá reproduzir uma animação de saudação.

Capítulo 5: Animações em Eventos

Podemos vincular animações a eventos específicos no servidor, como quando um jogador entra no servidor.

server/server.js

const { on } = require('fivem-js');

// Evento quando um jogador entra no servidor
on('playerConnecting', (name, setKickReason, deferrals) => {
    console.log(`${name} está conectando ao servidor...`);
    // Podemos adicionar lógica adicional aqui
});

client/animations.js

// Evento quando o jogador entra no servidor
on('playerSpawned', async () => {
    await playAnimation('mp_action', 'thanks_male_06');
});

Capítulo 6: Parando Animações

Para parar uma animação, podemos usar a função ClearPedTasks.

client/animations.js

// Função para parar animação
function stopAnimation() {
    const playerPed = PlayerPedId();
    ClearPedTasks(playerPed);
}

// Comando para parar animação
RegisterCommand('stopanim', () => {
    stopAnimation();
});

Neste exemplo, o comando /stopanim pode ser usado para parar qualquer animação que esteja sendo reproduzida.

Conclusão

Parabéns! Você aprendeu a adicionar e controlar animações em scripts para o FiveM usando JavaScript. Continue explorando as diversas animações disponíveis no GTA V e aplicando-as em seu servidor FiveM para melhorar a experiência dos jogadores.

Referências:

Agradecimentos:

Este e-book foi criado com a intenção de ajudar a comunidade de desenvolvedores do FiveM a melhorar seus servidores e criar experiências mais envolventes.