跳到主要内容

NPC_ChangeNode

注意

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

描述

将 NPC 当前正在播放的节点更改为不同的节点。

参数说明
npcidNPC 的 ID
nodeid要更改到的新节点的 ID
linkid用于转换的链接 ID

返回值

返回节点中的新路径点 ID。

示例

public OnPlayerCommandText(playerid, cmdtext[])
{
if (!strcmp(cmdtext, "/npcchangenode ", true, 15))
{
new npcid = PlayerNPC[playerid];
if (npcid == INVALID_NPC_ID)
return SendClientMessage(playerid, 0xFF0000FF, "你没有在调试NPC。");

if (!NPC_IsValid(npcid))
return SendClientMessage(playerid, 0xFF0000FF, "无效的NPC。");

new nodeid = strval(cmdtext[15]);

if (nodeid < 0 || nodeid > 63)
return SendClientMessage(playerid, 0xFF0000FF, "无效的节点 ID。必须在 0 到 63 之间。");

new idx = 15;
while (cmdtext[idx] != ' && cmdtext[idx] != '\0') idx++;
while (cmdtext[idx] == ' ') idx++;

if (cmdtext[idx] == '\0')
return SendClientMessage(playerid, 0xFF0000FF, "用法:/npcchangenode [nodeid] [linkid]");

new linkid = strval(cmdtext[idx]);

NPC_ChangeNode(npcid, nodeid, linkid);
SendClientMessage(playerid, 0x00FF00FF, "NPC %d 通过链接 %d 更改为节点 %d", npcid, nodeid, linkid);
return 1;
}
return 0;
}

注意事项

  • NPC 必须当前正在播放节点才能更改
  • 目标节点必须先使用 NPC_OpenNode 打开
  • 链接 ID 决定节点之间的转换路径
  • 使用此函数创建复杂的导航模式

相关函数

相关回调