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

【前端案例】GMBoxUI:GM 面板的按钮矩阵实现

2026-09-23 16:59 作者:996 技术组 996引擎Lua教程传奇脚本

实战应用:用在哪里

案例库里的 GMBoxUI.lua 是一个完整的 GM 面板实现:按钮矩阵、指令输入、结果回显三区布局。分析这个案例能学到工具类界面的标准结构——按钮的定义表驱动、点击事件的统一分发、执行结果的反馈回路。

按钮的定义表

lua

---GM 面板的按钮定义(来自 GMBoxUI.lua 的结构整理)
local GM_BUTTONS = {
    { name = "满血",   cmd = "hp",      arg = "100%" },
    { name = "满蓝",   cmd = "mp",      arg = "100%" },
    { name = "解卡",   cmd = "recall",  arg = "" },
    { name = "清任务", cmd = "cleartask", arg = "" },
}
function GMBoxUI.build(panel)
    for i, def in ipairs(GM_BUTTONS) do
        local btn = GUI:Button_Create(panel, "gmBtn" .. i, x(i), 40, "gm_btn.png")
        GUI:Button_setTitleText(btn, def.name)
        GUI:addOnClickEvent(btn, function()
            SL:SendNetMsg(MSGID.GM_EXEC, 0, 0, 0, def.cmd .. "|" .. def.arg)
        end)
    end
end

按钮用定义表驱动而不是逐个手写:加一个 GM 功能就是加一行配置,界面的扩展成本是常量。点击回调统一走 SL:SendNetMsg 发指令到服务端,按钮本身不执行任何逻辑,指令的权威在服务端。

结果的回显

lua

---执行结果的回显区
SL:RegisterLuaNetMsg(MSGID.GM_RESULT, function(p1, p2, p3, sMsg)
    local logText = GUI:getChildByName(gmPanel, "resultLog")
    GUI:Text_setString(logText, sMsg .. "\n" .. GUI:Text_getString(logText))
end)

执行结果从服务端推回后插入回显区的顶部,最近的操作始终在最上面。GM 面板的案例教会三件事:定义表驱动界面、按钮只发指令不执行逻辑、结果回显回路。这三条适用于所有工具类界面的开发。

验证与监控

按钮的使用频次统计进 GM 操作日志,高频按钮的位置调整提升操作效率。

踩坑记录

按钮的防连击缺失曾经一秒发出十几次相同指令,点击后的禁用窗口是工具界面的标配。GM 面板的入口权限曾经只在打开时校验,面板常驻后台的玩家在降权后仍能点击按钮,每次点击都重新校验才是安全的做法。

上线要点

GM 面板的按钮按使用频率排序,高频操作放第一屏。指令的参数输入框与按钮分离,带参数的指令点击后弹出参数确认。面板的打开权限与按钮的执行权限是两层校验,界面的可见不等于可执行。

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

作者履历与出处

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

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

最新技术文章 · 实战干货

LATEST ARTICLES

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

玩法策划发展基金基金投入

【玩法策划】行会发展基金:基金投入与回报体系

实战应用:用在哪里 行会建设需要资金,成员的投入却看不到回报。行会发展基金让成员按份投入行会基金,基金用于行会建设与集体活动…

2026-09-23 21:16 996 技术组
玩法策划沙城巡逻队巡逻排班

【玩法策划】沙城巡逻队:巡逻任务的排班与奖励设计

实战应用:用在哪里 占领沙巴克后的日常维护靠几个人,城内挂机广告无人管,安全区成了法外之地。沙城巡逻队把城防日常做成排班玩法…

2026-09-23 21:16 996 技术组
后端接口行会仓库整理清理

【后端接口】行会仓库整理:物品归类与批量清理的接口

实战应用:用在哪里 行会仓库运营数月后杂物堆积:过期活动道具、低级材料、重复装备混杂在贵重物资之间。仓库整理接口按价值与用途…

2026-09-23 21:16 996 技术组
案例复盘客服口径统一话术复盘

【案例复盘】客服口径统一:三次答复不一的投诉风暴

实战应用:用在哪里 一次活动奖励少发,三名客服给出三种答复:补发、不补发、等通知。玩家把三张截图拼在一起发到论坛,一场本可善…

2026-09-23 21:16 996 技术组
前端接口称号预览预览切换

【前端接口】称号预览:佩戴效果的预览与切换

实战应用:用在哪里 玩家拥有多个称号,切换佩戴后效果不符预期又要来回换。称号预览在切换前展示佩戴效果:名字上方的称号样式、属…

2026-09-23 21:16 996 技术组
引擎触发赤月巢穴狂暴阈值魔龙教主

【引擎触发】赤月巢穴:魔龙教主的狂暴阈值触发

实战应用:用在哪里 赤月巢穴的魔龙教主血量降至三成会进入狂暴:攻击翻倍、召唤赤月护卫、周期性释放全屏魔龙血域。狂暴触发把 b…

2026-09-23 21:16 996 技术组