课时 19 · 服务端触发系统
课时 19 · 服务端触发系统(996 新三端引擎入门):理解触发即全局函数,掌握常用触发。示例跑在 996 新三端引擎里,接口按本地官方文档逐个核对。
本课的代码跑在 996 引擎里,用到的是服务端接口(changeexp、 SetInt 这类),在线运行器里没有这些函数。 每个函数的签名都能在 文档检索 里按名字查到原文。
本课目标
- 理解触发即全局函数,掌握常用触发。
知识讲解
新三端服务端没有独立的脚本命令队列,一切逻辑由「触发」驱动:引擎在特定事件发生时调用同名全局函数,并传入相关对象参数。最常见的参数是 actor(玩家对象,number/string 型)。理解每个触发的参数与返回值语义,是写功能的第一步。
返回值语义:部分触发的返回值会被引擎读取,用于拦截默认行为。例如 NPC 点击触发 clicknpc 返回 true 表示不允许继续执行 TXT 脚本;返回 false 或 nil 则继续。写触发前务必查文档确认该触发的返回值要求。
示例:NPC 点击触发
function clicknpc(actor, npcId, script)
release_print('点击NPC', npcId, script)
-- return true 表示不允许继续执行 TXT 脚本
return true
end
来源:本地文档 触发\玩家\NPC点击触发.md。
示例:玩家登录触发
function login(actor)
release_print('玩家', actor, '登录触发')
end
来源:本地文档 触发\玩家\玩家登录触发.md。
示例:杀怪获取经验触发
function getexpbykillmon(actor, killer, mon, exp)
release_print('杀怪获取经验触发', actor, exp)
end
来源:本地文档 触发\玩家\杀怪获取经验触发.md。
触发分类导航(课时 17 的目录盘点已列):写功能时先问「这个事件有没有对应触发」,例如登录 → login、点击 NPC → clicknpc、杀怪得经验 → getexpbykillmon、定时 → ontimer{id}、重载 → qfloadend。
练习任务
- 写登录公告与升级触发提示:玩家登录时控制台打印欢迎语;玩家升级时打印新等级。
参考:登录 + 升级提示
function login(actor)
release_print('欢迎进入新三端世界,玩家', actor)
end
-- 升级触发:本地文档 触发/英雄-宠物/角色升级触发.md
function playlevelup(actor, level)
release_print('玩家', actor, '升级到', newLevel)
end
知识讲解
说明:升级触发的真实签名是 playlevelup(actor, level),level 是升级后的等级,出处:本地文档 触发/英雄-宠物/角色升级触发.md。
触发分类与数量来源:本地 showdoc 服务端 260831 目录盘点。
- 《996 新三端 Lua 开发教学技术手册》课时 19
- 本地文档 触发\玩家\NPC点击触发.md
- 本地文档 触发\玩家\玩家登录触发.md
- 本地文档 触发\玩家\杀怪获取经验触发.md
参数与取值以你本机版本的官方帮助文档为准,不同版本之间有过调整。