课时 21 · 服务端接口(下):NPC、对象与 TXT 互调

课时 21 · 服务端接口(下):NPC、对象与 TXT 互调(996 新三端引擎入门):掌握 NPC、对象与文本接口,了解 TXT 命令互调。示例跑在 996 新三端引擎里,接口按本地官方文档逐个核对。

教程/第三部分 · 996 新三端引擎入门更新于 2026-10-073 个小节 教程第 25 / 41 篇 新三端触发接口

本课的代码跑在 996 引擎里,用到的是服务端接口(changeexp、 SetInt 这类),在线运行器里没有这些函数。 每个函数的签名都能在 文档检索 里按名字查到原文。

本课目标

  • 掌握 NPC、对象与文本接口,了解 TXT 命令互调。

知识讲解

NPC 相关接口用于打开对话界面、注册消息、在 NPC 间跳转等(详见本地文档 接口 目录中 NPC 相关子目录)。对象通用接口提供类型判断、状态查询、序列化等能力。

调用触发:gotolabel(actor, type, label, range) 让指定范围的人物触发指定标签函数,type 可选 0 小组成员、1 行会成员、2 当前地图人物、3 当前角色范围人物(此时用 range 指定范围大小)。label 写法为「函数名,参数1,参数2」,大小写敏感。

示例:调用触发

-- 让当前地图的人物触发 gotolabelfunc 函数
gotolabel(actor, 2, 'gotolabelfunc,1,2,3')

function gotolabelfunc(actor, ...)
    release_print('gotolabelfunc', getbaseinfo(actor, 1), ...)
end

来源:本地文档 接口\系统\调用触发.md(getbaseinfo 为人物信息接口,详见人物相关目录)。

调用 TXT 脚本命令:callscript(actor, filename, label) 可调用 TXT 脚本中的命令。官方文档明确标注「不推荐使用」——新三端以 Lua 为主,TXT 仅作兼容通道,新功能应优先用 Lua 接口实现。

来源:本地文档 接口\系统\调用TXT脚本命令.md。

练习任务

  • 用「调用触发」串联两个功能:玩家点击 NPC A 时,让当前地图所有玩家触发一次「领取提示」函数。

参考:核心逻辑

function clicknpc(actor, npcId, script)
    if npcId == 1001 then
        gotolabel(actor, 2, 'daily_remind')
    end
    return true
end

function daily_remind(actor)
    sendmsg(actor, 1, '{"Msg":"记得领取今日福利!","Type":1}')
end
本篇依据
  • 《996 新三端 Lua 开发教学技术手册》课时 21
  • 本地文档 接口\系统\调用触发.md(getbaseinfo 为人物信息接口,详见人物相关目录)
  • 本地文档 接口\系统\调用TXT脚本命令.md

参数与取值以你本机版本的官方帮助文档为准,不同版本之间有过调整。