---
title: "NPC Constants | open.mp"
description: "Constantes usadas em funções e retornos de chamada NPC."
canonical: https://omp.itsneufox.com/pt-BR/docs/scripting/resources/npc-constants
language: pt-BR
---

# NPC Constants

Esta página lista todas as constantes específicas para funções NPC em open.mp.

## Limites

| Valor | Constante | Descrição |
| --- | --- | --- |
| 1000 | MAX\_NPCS | Número máximo de NPCs |
| 64 | NPC\_MAX\_NODES | Número máximo de nós |

## Constantes inválidas

| Valor | Constante | Descrição |
| --- | --- | --- |
| \-1 | INVALID\_NPC\_ID | NPC ID inválido |
| \-1 | INVALID\_PATH\_ID | Caminho inválido ID |
| \-1 | INVALID\_NODE\_ID | Nó inválido ID |
| \-1 | INVALID\_RECORD\_ID | Gravação inválida ID |

## Tipos de movimento

Usado por funções como [NPC\_Move](https://omp.itsneufox.com/pt-BR/docs/scripting/functions/NPC_Move), [NPC\_MoveByPath](https://omp.itsneufox.com/pt-BR/docs/scripting/functions/NPC_MoveByPath), [NPC\_EnterVehicle](https://omp.itsneufox.com/pt-BR/docs/scripting/functions/NPC_EnterVehicle) e [NPC\_PlayNode](https://omp.itsneufox.com/pt-BR/docs/scripting/functions/NPC_PlayNode).

| Valor | Constante | Descrição |
| --- | --- | --- |
| \-1 | UNKNOWN\_NPC\_MOVE\_TYPE | Tipo de movimento desconhecido |
| 0 | NPC\_MOVE\_TYPE\_NONE | Nenhum movimento |
| 1 | NPC\_MOVE\_TYPE\_WALK | NPC caminha até o destino |
| 2 | NPC\_MOVE\_TYPE\_JOG | NPC avança para o destino (padrão para a maioria das funções) |
| 3 | NPC\_MOVE\_TYPE\_SPRINT | NPC corre para o destino |
| 4 | NPC\_MOVE\_TYPE\_DRIVE | NPC dirige até o destino (movimento do veículo) |
| 5 | NPC\_MOVE\_TYPE\_AUTO | Tipo de movimento automático |

## Velocidade de Movimento

Usado por funções de movimento para controlar a velocidade NPC.

| Valor | Constante | Descrição |
| --- | --- | --- |
| \-1.0 | NPC\_MOVE\_SPEED\_AUTO | Velocidade automática baseada no tipo de movimento |
| 0.1552086 | NPC\_MOVE\_SPEED\_WALK | Velocidade de caminhada |
| 0.56444 | NPC\_MOVE\_SPEED\_JOG | Velocidade de trote |
| 0.926784 | NPC\_MOVE\_SPEED\_SPRINT | Velocidade de corrida |

## Sinalizadores de verificação de entidade

Usado por [NPC\_AimAt](https://omp.itsneufox.com/pt-BR/docs/scripting/functions/NPC_AimAt), [NPC\_AimAtPlayer](https://omp.itsneufox.com/pt-BR/docs/scripting/functions/NPC_AimAtPlayer) e [NPC\_Shoot](https://omp.itsneufox.com/pt-BR/docs/scripting/functions/NPC_Shoot) para detecção de colisão.

| Valor | Constante | Descrição |
| --- | --- | --- |
| 0 | NPC\_ENTITY\_CHECK\_NONE | Sem verificação de colisão |
| 1 | NPC\_ENTITY\_CHECK\_PLAYER | Verifique colisões com jogadores |
| 2 | NPC\_ENTITY\_CHECK\_NPC | Verifique colisões com NPCs |
| 4 | NPC\_ENTITY\_CHECK\_ACTOR | Verifique colisões com atores |
| 8 | NPC\_ENTITY\_CHECK\_VEHICLE | Verifique colisões com veículos |
| 16 | NPC\_ENTITY\_CHECK\_OBJECT | Verifique colisões com objetos |
| 32 | NPC\_ENTITY\_CHECK\_POBJECT\_ORIG | Verifique colisões com objetos do jogador (original) |
| 64 | NPC\_ENTITY\_CHECK\_POBJECT\_TARG | Verifique colisões com objetos do jogador (alvo) |
| 128 | NPC\_ENTITY\_CHECK\_MAP | Verifique as colisões com o mapa |
| 255 | NPC\_ENTITY\_CHECK\_ALL | Verifique colisões com todas as entidades |

## Tipos de acertos de bala

Usado por [NPC\_Shoot](https://omp.itsneufox.com/pt-BR/docs/scripting/functions/NPC_Shoot) para especificar que tipo de alvo está sendo atingido.

| Constant | Descrição |
| --- | --- |
| BULLET\_HIT\_TYPE\_NONE | Nenhum alvo específico |
| BULLET\_HIT\_TYPE\_PLAYER | Alvo do jogador |

## Exemplos

### Tipos de movimento

```c
// Faça o NPC andar devagar
NPC_Move(npcid, x, y, z, NPC_MOVE_TYPE_WALK);

// Faça o NPC trotar (velocidade padrão)
NPC_Move(npcid, x, y, z, NPC_MOVE_TYPE_JOG);

// Faça o NPC correr rapidamente
NPC_Move(npcid, x, y, z, NPC_MOVE_TYPE_SPRINT);

// Faça o NPC dirigir até o local
NPC_Move(npcid, x, y, z, NPC_MOVE_TYPE_DRIVE);

// Use o tipo de movimento automático
NPC_Move(npcid, x, y, z, NPC_MOVE_TYPE_AUTO);
```

### Velocidade de Movimento

```c
// Use a velocidade automática
NPC_Move(npcid, x, y, z, NPC_MOVE_TYPE_WALK, NPC_MOVE_SPEED_AUTO);

// Use uma velocidade de caminhada específica
NPC_Move(npcid, x, y, z, NPC_MOVE_TYPE_WALK, NPC_MOVE_SPEED_WALK);

// Use uma velocidade de trote específica
NPC_Move(npcid, x, y, z, NPC_MOVE_TYPE_JOG, NPC_MOVE_SPEED_JOG);

// Use uma velocidade de corrida específica
NPC_Move(npcid, x, y, z, NPC_MOVE_TYPE_SPRINT, NPC_MOVE_SPEED_SPRINT);
```

### Sinalizadores de verificação de entidade

```c
// Mire sem verificação de colisão
NPC_AimAt(npcid, x, y, z, true, 1000, true, 0.0, 0.0, 0.6, NPC_ENTITY_CHECK_NONE);

// Mire com verificação completa de colisão
NPC_AimAt(npcid, x, y, z, true, 1000, true, 0.0, 0.0, 0.6, NPC_ENTITY_CHECK_ALL);

// Verifique apenas colisões com jogadores
NPC_AimAt(npcid, x, y, z, true, 1000, true, 0.0, 0.0, 0.6, NPC_ENTITY_CHECK_PLAYER);

// Verifique colisões com jogadores e veículos
NPC_AimAt(npcid, x, y, z, true, 1000, true, 0.0, 0.0, 0.6,
         NPC_ENTITY_CHECK_PLAYER | NPC_ENTITY_CHECK_VEHICLE);

// Verifique colisões apenas com objetos
NPC_AimAt(npcid, x, y, z, true, 1000, true, 0.0, 0.0, 0.6, NPC_ENTITY_CHECK_OBJECT);
```

### Tipos de acertos de bala

```c
// Atire em um local específico (sem alvo)
NPC_Shoot(npcid, WEAPON_SNIPER, INVALID_PLAYER_ID, BULLET_HIT_TYPE_NONE,
         x, y, z, 0.0, 0.0, 0.0, false);

// Atire em um jogador
NPC_Shoot(npcid, WEAPON_M4, playerid, BULLET_HIT_TYPE_PLAYER,
         x, y, z, 0.0, 0.0, 0.0, true);
```

### Constantes inválidas

```c
// Verifique se o ID do NPC é válido
new npcid = NPC_Create("Bot");
if (npcid != INVALID_NPC_ID)
{
    // NPC foi criado com sucesso
    NPC_Spawn(npcid);
}

// Verifique se o ID do caminho é válido
new pathid = NPC_CreatePath();
if (pathid != INVALID_PATH_ID)
{
    // O caminho foi criado com sucesso
    NPC_AddPointToPath(pathid, 0.0, 0.0, 3.0, 0.2);
}

// Verifique o jogador inválido em NPC_Kill
NPC_Kill(npcid, INVALID_PLAYER_ID, REASON_SUICIDE);
```

### Limites

```c
// Faça um loop por todos os NPCs possíveis
for (new i = 0; i < MAX_NPCS; i++)
{
    if (NPC_IsValid(i))
    {
        // Processar NPC válido
    }
}

// Exemplo usando NPC_MAX_NODES
for (new i = 0; i < NPC_MAX_NODES; i++)
{
    if (NPC_IsNodeOpen(i))
    {
        // Processar nó aberto
        NPC_CloseNode(i);
    }
}
```

## Páginas relacionadas

-   [Constantes de Arma](https://omp.itsneufox.com/pt-BR/docs/scripting/resources/constants#constantes-de-armas) - Para arma IDs usada com NPCs
-   [Estados do jogador](https://omp.itsneufox.com/pt-BR/docs/scripting/resources/playerstates) - Para constantes de estado do jogador que podem ser aplicadas a NPCs
-   [Veículo IDs](https://omp.itsneufox.com/pt-BR/docs/scripting/resources/vehicleid) - Para modelo de veículo IDs usado nas funções do veículo NPC
