---
title: "OnNPCFinishNode | open.mp"
description: "当 NPC 完成导航一个完整节点时调用此回调。"
canonical: https://omp.itsneufox.com/zh-CN/docs/scripting/callbacks/OnNPCFinishNode
language: zh-CN
---

# OnNPCFinishNode

注意

这个回调是在omp v1.5.8.3079中添加的，在以前的版本中不起作用！

## 描述

当 NPC 在基于节点的移动过程中完成导航一个完整节点时调用此回调。

| 参数 | 说明 |
| --- | --- |
| npcid | 完成节点的 NPC 的 ID |
| nodeid | 已完成的节点的 ID |

## 示例

```c
public OnNPCFinishNode(npcid, nodeid)
{
    printf("[NPC] NPC %d 完成节点 %d", npcid, nodeid);

    // 通知追踪此 NPC 的玩家
    for (new playerid = 0; playerid < MAX_PLAYERS; playerid++)
    {
        if (!IsPlayerConnected(playerid))
            continue;

        if (PlayerNPC[playerid] == npcid)
        {
            SendClientMessage(playerid, 0x00FF00FF, "NPC %d 完成节点 %d", npcid, nodeid);
        }
    }
    return 1;
}
```

## 注意事项

-   此回调仅在 NPC 通过 `NPC_PlayNode` 使用基于节点的导航时调用
-   当 NPC 完成节点中所有点的导航时调用此回调
-   当此回调触发时，节点导航会自动停止

## 相关函数

以下函数可能有用，因为它们与此回调以某种方式相关。

-   [NPC\_PlayNode](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/NPC_PlayNode): 开始 NPC 基于节点的导航
-   [NPC\_StopPlayingNode](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/NPC_StopPlayingNode): 停止 NPC 节点导航
-   [NPC\_IsPlayingNode](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/NPC_IsPlayingNode): 检查 NPC 是否正在导航节点
-   [NPC\_OpenNode](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/NPC_OpenNode): 打开导航节点文件

## 相关回调

-   [OnNPCFinishNodePoint](https://omp.itsneufox.com/zh-CN/docs/scripting/callbacks/OnNPCFinishNodePoint): 当 NPC 到达节点中的特定点时调用
-   [OnNPCChangeNode](https://omp.itsneufox.com/zh-CN/docs/scripting/callbacks/OnNPCChangeNode): 当 NPC 尝试切换节点时调用
-   [OnNPCFinishMove](https://omp.itsneufox.com/zh-CN/docs/scripting/callbacks/OnNPCFinishMove): 当 NPC 完成任何类型的移动时调用
