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

# player

> Gerenciamento de jogador/personagem: animações (`/e`), interações com veículos (portas, capô, malas, banco, controle de cruzeiro), entrar em porta-malas/lixeiras, cobranças entre jogadores e registro de mortes.

O **player** reúne funcionalidades ligadas ao personagem e sua interação com o mundo. Expõe a interface Tunnel `player` (cliente) consumida por outros recursos, registra comandos de animação/otimização/cruzeiro e trata eventos de veículo, carregamento de jogadores, presets de farda e kill log.

## Funcionalidades

<CardGroup cols={2}>
  <Card title="Animações" icon="person-running">
    Comandos de emote (`/e`, `/e2`, `/e3`) com animações individuais, em par ou em grupo.
  </Card>

  <Card title="Interações com veículos" icon="car">
    Portas, capô, vidros, porta-malas, assentos, âncora de barco e controle de cruzeiro.
  </Card>

  <Card title="Entrar em compartimentos" icon="box">
    Permite entrar em porta-malas e lixeiras de entidades.
  </Card>

  <Card title="Cobranças e kill log" icon="receipt">
    Cobrança entre jogadores e registro de mortes em `deaths_creative`.
  </Card>
</CardGroup>

***

## Dependências

<CardGroup cols={2}>
  <Card title="vrp" icon="cube">
    Framework base.
  </Card>

  <Card title="PolyZone" icon="draw-polygon">
    Zonas de área.
  </Card>
</CardGroup>

<Info>
  Dependências de runtime: `five-bank` (`CheckTaxes`/`CheckFines`), `discord` (`Embed`), `hud` (`Repose`/`Wanted`), `inventory`, `oxmysql` (deaths), `skinshop` e `five_logs` (opcional).
</Info>

***

## Configuração

<Note>
  Sem pasta `config/`. As tabelas ficam no código.
</Note>

<AccordionGroup>
  <Accordion title="server-side/core.lua — presets de farda" icon="shirt">
    `Preset`: fardas por número (só serviço `Emergencia`), por modelo `mp_m`/`mp_f`.
  </Accordion>

  <Accordion title="client-side/core.lua — portas e cruzeiro" icon="car">
    * `DoorNumber`: mapa de portas para `player:syncDoors`.
    * Controle de cruzeiro: tecla `F4` (`RegisterKeyMapping`, remapeável).
  </Accordion>
</AccordionGroup>

***

## Comandos

| Comando                  | Lado   | Descrição                                                              |
| ------------------------ | ------ | ---------------------------------------------------------------------- |
| `/e <animação> [friend]` | server | Toca emote (vida > 100); `friend` pede animação em par ao ped próximo. |
| `/e2 <animação>`         | server | Anima o ped mais próximo (serviço `Admin`/`Medico`).                   |
| `/e3 <animação>`         | server | Anima todos num raio de 50 (grupo `Admin` nível 2).                    |
| `/fps [on\|off]`         | client | Liga/desliga otimização (`cinema`).                                    |
| `/ControlCruiser`        | client | Controle de cruzeiro (motorista; tecla F4).                            |

***

## Exports

Não declara exports Lua. Interface Tunnel `player`:

* `RemoveVehicle()`: sai do veículo.
* `PlaceVehicle(Network)`: coloca o jogador no primeiro assento livre.
* `Residuals()`: estado atual de `Residuals`.

***

## Eventos

### Interfaces Tunnel

Expõe a interface Tunnel `player` (cliente): `RemoveVehicle`, `PlaceVehicle`, `Residuals` (ver seção Exports).

### Recebidos no servidor

| Evento               | Descrição                                                           |
| -------------------- | ------------------------------------------------------------------- |
| `player:Survival`    | Atualiza/processa os atributos de sobrevivência do jogador.         |
| `player:Demand`      | Cobrança entre jogadores (transferência para outro `source`).       |
| `player:Debug`       | Rotina de depuração do jogador.                                     |
| `player:Stress`      | Ajusta o nível de estresse do personagem.                           |
| `player:Doors`       | Sincroniza estado de portas do veículo.                             |
| `player:cvFunctions` | Carrega/coloca o jogador no veículo (controle de cruzeiro/funções). |
| `player:Preset`      | Aplica preset de farda (serviço `Emergencia`).                      |
| `player:checkTrunk`  | Verifica/abre o porta-malas do veículo.                             |
| `player:checkTrash`  | Verifica/abre a lixeira.                                            |
| `player:checkShoes`  | Verifica os calçados a partir da entidade.                          |
| `player:Outfit`      | Aplica/alterna a roupa do personagem.                               |
| `player:Death`       | Registra a morte (grava em `deaths_creative`).                      |
| `Connect`            | Jogador conectou (core).                                            |
| `Disconnect`         | Jogador desconectou (core).                                         |

### Cliente

| Evento                | Descrição                                          |
| --------------------- | -------------------------------------------------- |
| `player:VehicleHood`  | Abre/fecha o capô do veículo.                      |
| `player:VehicleDoors` | Abre/fecha as portas do veículo.                   |
| `player:Windows`      | Abre/fecha os vidros.                              |
| `player:syncDoors`    | Sincroniza estado das portas (via `DoorNumber`).   |
| `player:seatPlayer`   | Move o jogador para o assento informado.           |
| `player:Residual`     | Atualiza os efeitos residuais do personagem.       |
| `player:enterTrunk`   | Entra no porta-malas da entidade.                  |
| `player:checkTrunk`   | Verifica o porta-malas.                            |
| `player:enterTrash`   | Entra na lixeira da entidade.                      |
| `player:checkTrash`   | Verifica a lixeira.                                |
| `player:Anchor`       | Ancora/fixa o veículo (barco).                     |
| `gameEventTriggered`  | Detecta morte do jogador e dispara `player:Death`. |

***

## Banco de Dados

Grava em `deaths_creative` os campos abaixo. Demais dados via vRP.

| Tabela            | Colunas                                     |
| ----------------- | ------------------------------------------- |
| `deaths_creative` | `Attacker`, `Victim`, `Weapon`, `Timestamp` |

***

## Customização

* **Fardas:** tabela `Preset` (`server-side/core.lua`).
* **Mapa de portas:** `DoorNumber` (`client-side/core.lua`).
* **Tecla de cruzeiro:** `F4` (remapeável).
* **Restrições:** `/e2` (`Admin`/`Medico`), `/e3` (`Admin` nível 2).
