> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dkscripts.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Configuração das Animações

# Configuração das Animações (config.lua)

Este é o arquivo de configuração central para todas as animações em dupla. Aqui você pode ativar, desativar e customizar o comportamento de cada animação individualmente, definindo regras específicas para quem inicia e quem recebe a interação.

<Note>
    📁 dk\_animations\_ext > config > shared > config.lua
</Note>

***

## Estrutura de uma Animação

Cada animação é um item na tabela `Config.animsList`. A chave da tabela (ex: `"segurar"`) é o identificador único da animação. Abaixo estão os parâmetros que você pode configurar para cada uma delas.

### Parâmetros Gerais

* `actived` (true/false): Ativa ou desativa a animação em todo o script.
* `command` (string): Define um comando de chat customizado para a animação (ex: `/segurar`). Se não for definido, o nome da chave será usado como padrão.
* `request` (true/false): Se `true`, o jogador alvo receberá um convite para aceitar ou recusar a animação.
* `hideOnUi` (true/false): Se `true`, a animação não aparecerá na interface do menu, mas ainda poderá ser usada via comando.
* `disableOnCommand` (true/false): Se `true`, desativa o registro automático do comando de chat para esta animação. Útil para animações de uso interno.
* `new` (true/false): Se `true`, a animação será marcada como "NOVA" na interface.

### Configurações do `sender` (Iniciador)

Estas regras se aplicam apenas ao jogador que **inicia** a animação.

* `useCancelButton` (true/false): Permite que o jogador cancele a animação usando uma tecla (padrão F6).
* `forceAnim` (true/false): Impede que o jogador cancele a animação por movimento.
* `blockVeh` (true/false): Bloqueia o uso da animação se o jogador estiver dentro de um veículo.
* `blockFalling` (true/false): Bloqueia a animação se o jogador estiver caindo.

### Configurações do `receiver` (Alvo)

Estas regras se aplicam apenas ao jogador que **aceita** a animação.

* `useCancelButton` (true/false): Permite que o jogador alvo cancele a animação.
* `forceAnim` (true/false): Impede que o jogador alvo cancele a animação por movimento.
* `blockButtons` (true/false): Bloqueia os controles do jogador alvo durante a animação.
* `requiredAnim`: Uma tabela que força a animação a ser executada apenas se o jogador alvo já estiver em uma animação específica (ex: algemado).

<Tip>
  O script inclui uma função no final do arquivo que atribui automaticamente o nome da chave da animação (ex: `cavalinho`) como o comando, caso o parâmetro `command` não seja especificado manualmente. Isso simplifica a adição de novas animações.
</Tip>

***

## Código Fonte Completo

Abaixo está a lista completa de animações como exemplo de configuração. Você pode adicionar, remover ou modificar qualquer entrada para ajustar ao seu servidor.

```lua dk_animations_ext/config/shared/config.lua theme={null}
Config = {}
Config.animsList = {
    ["segurar"] = {
        actived = true, -- (true/false) Aqui você determina se essa animação poderá se usada
        command = "segurar", -- Você pode definir um nome personalizado desta maneira.
        request = true, -- (true/false) Essa opção determina se você vai usar request(função que perfunta se o outro player deseja fazer a animação)
        new = false, -- (true/false) Para aparecer com "NOVOS"

        hideOnUi = false,
        disableOnCommand = false,

        sender = {
            useCancelButton = true, -- (true/false) cancelar animação por botão. (F6)
            blockButtons = true, -- (true/false) Ativa a função listada em ../client/functions.lua.
            forceAnim = true, -- (true/false) Fazer com que as animações não possam ser canceladas para o player que inicia a animação.
            blockVeh = true, -- (true/false) Bloquear a animação em veículos
            blockFalling = false, -- (true/false) Bloquear animação enquanto o player estiver caindo.
        },
        receiver = {
            useCancelButton = true,
            forceAnim = true,
            blockVeh = true,
        },
    },
    ["cavalinho"] = {
        actived = true,
        request = true,
        sender = {
            useCancelButton = true,
            forceAnim = true,
            blockVeh = true,
        },
        receiver = {
            useCancelButton = true,
            forceAnim = true,
            blockVeh = true,
        },
    },
    -- ... (outras animações da lista) ...
    ["carregaralgemado"] = {
        actived = true,
        request = false,
        hideOnUi = true,
        disableOnCommand = true,
        sender = {
            useCancelButton = true,
            blockedToRun = true,
        },
        receiver = {
            blockButtons = true,
            blockedToStop = true,
            requiredAnim = {
                dict = "mp_arresting",
                anim = "idle"
            }
        },
    },
    ["carregarmaos"] = {
        actived = true,
        request = true,
        sender = {
            useCancelButton = true,
            blockedToRun = true,
        },
        receiver = {
            blockButtons = true,
        },
    },
}

-- Definir o comando para a animação caso não exista (tambem será o nome que aparece no painel).
Config.animsList = table.map(Config.animsList, function(animData, index)
    animData.command = animData.command or index
    return animData
end, true)
```

***

🔔 **Resumo:**

* O arquivo `config.lua` é o painel de controle de todas as animações.
* Cada animação é um item na tabela `Config.animsList`.
* É possível definir regras detalhadas como necessidade de convite (`request`), cancelamento (`useCancelButton`), e bloqueios (`blockVeh`).
* As regras podem ser diferentes para quem inicia (`sender`) e quem recebe (`receiver`) a animação.
* Adicionar uma nova animação é tão simples quanto duplicar uma entrada existente e alterar seu nome e parâmetros.
