跳到主要内容

OnNPCChangeNode

注意

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

描述

当 NPC 在基于节点的移动过程中尝试从一个导航节点切换到另一个节点时调用此回调。这允许你控制是否应允许或拒绝节点切换。

参数说明
npcid尝试切换节点的 NPC 的 ID
newnodeidNPC 想要移动到的新节点的 ID
oldnodeidNPC 当前所在节点的 ID

返回值

返回 true 允许节点切换,或返回 false 拒绝切换。

示例

public OnNPCChangeNode(npcid, newnodeid, oldnodeid)
{
printf("[NPC] NPC %d 正在从节点 %d 切换到节点 %d", npcid, oldnodeid, newnodeid);

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

if (PlayerNPC[playerid] == npcid)
{
SendClientMessage(playerid, 0x00FF00FF, "NPC %d 正在从节点 %d 切换到节点 %d", npcid, oldnodeid, newnodeid);
}
}
return 1;
}

注意事项

  • 此回调仅在 NPC 通过 NPC_PlayNode 使用基于节点的导航时调用
  • 返回 false 将阻止 NPC 切换节点,并可能导致其停止导航
  • NPC 必须先使用 NPC_OpenNode 加载节点文件,才能在节点之间导航

相关函数

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

相关回调