|
| 1 | +--- |
| 2 | +title: OnNPCChangeNode |
| 3 | +sidebar_label: OnNPCChangeNode |
| 4 | +description: Este callback é chamado quando um NPC tenta mudar de um nó de navegação para outro durante a movimentação baseada em nós. |
| 5 | +tags: ["npc", "node", "navigation"] |
| 6 | +--- |
| 7 | + |
| 8 | +<VersionWarn version='omp v1.5.8.3079' /> |
| 9 | + |
| 10 | +## Descrição |
| 11 | + |
| 12 | +Este callback é chamado quando um NPC tenta mudar de um nó de navegação para outro durante a movimentação baseada em nós. Isso permite que você controle se a mudança de nó deve ser permitida ou negada. |
| 13 | + |
| 14 | +| Nome | Descrição | |
| 15 | +| --------- | ------------------------------------------------- | |
| 16 | +| npcid | O ID do NPC tentando mudar de nó | |
| 17 | +| newnodeid | O ID do novo nó para o qual o NPC quer se mover | |
| 18 | +| oldnodeid | O ID do nó atual onde o NPC está | |
| 19 | + |
| 20 | +## Retornos |
| 21 | + |
| 22 | +Retorne `true` para permitir a mudança de nó, ou `false` para negá-la. |
| 23 | + |
| 24 | +## Exemplos |
| 25 | + |
| 26 | +```c |
| 27 | +public OnNPCChangeNode(npcid, newnodeid, oldnodeid) |
| 28 | +{ |
| 29 | + printf("[NPC] NPC %d mudou do nó %d para o nó %d", npcid, oldnodeid, newnodeid); |
| 30 | + |
| 31 | + // Notificar jogadores que estão rastreando este NPC |
| 32 | + for (new playerid = 0; playerid < MAX_PLAYERS; playerid++) |
| 33 | + { |
| 34 | + if (!IsPlayerConnected(playerid)) |
| 35 | + continue; |
| 36 | + |
| 37 | + if (PlayerNPC[playerid] == npcid) |
| 38 | + { |
| 39 | + SendClientMessage(playerid, 0x00FF00FF, "NPC %d mudou do nó %d para o nó %d", npcid, oldnodeid, newnodeid); |
| 40 | + } |
| 41 | + } |
| 42 | + return 1; |
| 43 | +} |
| 44 | +``` |
| 45 | +
|
| 46 | +## Notas |
| 47 | +
|
| 48 | +- Este callback só é chamado quando NPCs estão usando navegação baseada em nós via `NPC_PlayNode` |
| 49 | +- Retornar `false` impedirá o NPC de mudar de nó e pode fazer com que ele pare de navegar |
| 50 | +- Os arquivos de nós devem ser carregados usando `NPC_OpenNode` antes que os NPCs possam navegar entre eles |
| 51 | +
|
| 52 | +## Funções Relacionadas |
| 53 | +
|
| 54 | +As seguintes funções podem ser úteis, pois estão relacionadas a este callback de uma forma ou outra. |
| 55 | +
|
| 56 | +- [NPC_PlayNode](../functions/NPC_PlayNode): Iniciar navegação baseada em nós do NPC |
| 57 | +- [NPC_OpenNode](../functions/NPC_OpenNode): Abrir um arquivo de nó de navegação |
| 58 | +- [NPC_CloseNode](../functions/NPC_CloseNode): Fechar um arquivo de nó de navegação |
| 59 | +- [NPC_StopPlayingNode](../functions/NPC_StopPlayingNode): Parar navegação de nó do NPC |
| 60 | +
|
| 61 | +## Callbacks Relacionados |
| 62 | +
|
| 63 | +- [OnNPCFinishNode](OnNPCFinishNode): Chamado quando o NPC termina de navegar um nó completo |
| 64 | +- [OnNPCFinishNodePoint](OnNPCFinishNodePoint): Chamado quando o NPC alcança um ponto específico em um nó |
0 commit comments