课时 21 · 服务端接口(下):NPC、对象与 TXT 互调
课时 21 · 服务端接口(下):NPC、对象与 TXT 互调(996 新三端引擎入门):掌握 NPC、对象与文本接口,了解 TXT 命令互调。示例跑在 996 新三端引擎里,接口按本地官方文档逐个核对。
本课的代码跑在 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
参数与取值以你本机版本的官方帮助文档为准,不同版本之间有过调整。