CHUAN2 DEV ENGINE
996 正版授权研发中心 · 360 授权合作教学中心 · 抖音传奇直播合作授权 · 快手推广运营商授权
OFFICIAL LICENSED ACADEMY 查验官方授权证书 →
// 威海旷世互娱教学基地 · 技术文章
Lua实战NPCGM工具

NPC 界面与 GM 小工具:say / button / link 传参

2026-10-18 01:01 作者:吴大圣老师 Lua实战NPCGM工具

会判断了,就能做会回话的 NPC。今天拼一个简易 GM 工具界面。

一、用 say 吐出界面

客户端编辑器 Ctrl + F11 导出界面串,后端 say 渲染:

lua
local ui = [==[
  <BG>bg.png</BG>
  <BUTTON>up_level.png</BUTTON>
]==]

function LuaUpLevel(actor, toolName)
    print("点击了:", toolName)
end

-- 点击 NPC 时
say(actor, ui)

界面是字符串,能用 [[ ]] 或 [==[ ]==] 多行语法糖写。

二、按钮 link:谁点的、点的啥

按钮属性里 link 会回调你自己的函数,第一个参数是点击者,后面的参数是你在 link 里写的:

lua
-- 界面里的按钮(示意)
-- link="LuaUpLevel|增加等级|你好"

function LuaUpLevel(actor, toolName, extra)
    print(toolName)  --> 增加等级(字符串!)
    print(extra)     --> 你好
end

重点:link 传过来的参数全是字符串,哪怕你写 123。

lua
print(type(toolName))  --> string

要当数字用就自己 tonumber。

三、GM 工具:一个函数分发多按钮

lua
function LuaGM(actor, toolName)
    if toolName == "增加等级" then
        -- 调升级接口
    elseif toolName == "减少等级" then
        -- 降级
    elseif toolName == "增加货币" then
        -- 加钱
    end
end

和上节课的 elseif 唯一分支正好接上。

四、按钮状态小坑

按钮常有 NORMAL / PING(按下) 两套图。只设一张图,按下时可能花屏。两套都配上。

五、界面微调

  • 背景 BG1 必须有,删了引擎会自动补
  • 叉号容器区域要够大,手指才点得中
  • 按钮宽度不够就拉宽,文字别被裁

六、练习路线

  1. 导出一个只有背景 + 一个按钮的界面
  1. say 出来,点按钮打印 toolName
  1. 再加「增加等级 / 减少等级」用 elseif 分发
  1. 尝试传第二个参数并 print(type(...)) 验证是 string

今日练习:做一个双按钮 GM 条(增加等级 / 减少等级),用 elseif 分发,并打印每次的 toolName。

作者履历与出处

本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。

← 返回文章地图返回研学路径

幂尔框架 · 实战干货 · 接口调用

LATEST ARTICLES

全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →

Lua实战NPC

NPC 界面与 GM 小工具:say / button / link 传参

会判断了,就能做会回话的 NPC。今天拼一个简易 GM 工具界面。 一、用 say 吐出界面 客户端编辑器 Ctrl + F…

2026-10-18 01:01 吴大圣老师
Lua基础逻辑运算

与或非:and / or / not 与短路真相

与或非听起来玄,其实就是三张通行证。 一、and(与)= 过安检 机票 + 身份证 ,少一样不让过。后面还能无限加条件。 二…

2026-10-18 01:01 吴大圣老师
Lua基础判断

判断分支实战:if / elseif / else 与防卫语句

判断 = 比较 + 分支。今天把三种 if 写法、以及工程里最好用的「防卫语句」一次练透。 一、三种判断结构 elseif …

2026-10-18 01:01 吴大圣老师
Lua基础Table

从表走到迭代:pairs/ipairs 预告与三大坑

表会建、会取、会增删改查,最后一环是 遍历 。本篇先把坑标出来,下节课正式拆迭代器。 本课互动训练 :专属动画 + 选择题测…

2026-10-18 00:25 吴大圣老师
Lua基础Table

表是引用:改了别人,怎么就跟着变了

「我只改了 b,a 怎么变了?」——这是表引用问题的标准嚎叫。今天把钥匙和锁彻底讲清。 本课互动训练 :专属动画 + 选择题…

2026-10-18 00:25 吴大圣老师
Lua实战Table

玩家背包实战:用表搭一个角色数据库

理论够了,进游戏干一票:用一张表,存下角色的名、级、包、属性,并用它驱动「给我装备」。 本课互动训练 :专属动画 + 选择题…

2026-10-18 00:25 吴大圣老师