翎风引擎ShowCustomButton自定义UI按钮显示控制教程
摘要:本文详解翎风引擎自定义UI按钮显示控制命令ShowCustomButton,覆盖命令格式、两个参数的状态值与编号含义、主界面背包新行会等24个界面段预留编号对照,以及QF中CustomButtonClick配合$CustomButtonID实现按钮点击触发的方法,并给出按钮不显示、QF不触发等问题的排查思路。…
自定义UI按钮显示控制用到的核心命令就是ShowCustomButton,在翎风引擎脚本里,靠它就能按脚本把指定编号的按钮显示出来或隐藏掉,不用每次手动去界面配置里开关。
这篇把这条链路拆开讲清楚:ShowCustomButton的命令格式、参数到底怎么填、各界面按钮预留编号从哪段选,以及按钮点击后在QF里怎么用CustomButtonClick和$CustomButtonID触发对应脚本。
下面的示例都基于翎风引擎的本地调试场景整理,命令格式和编号对照来自引擎帮助说明,直接照做就能把按钮显示隐藏和点击触发配置起来。

ShowCustomButton命令格式
ShowCustomButton的完整命令格式是下面这一行,第一个参数填按钮编号,第二个参数填显示或隐藏的状态值:
ShowCustomButton 编号 0/1
命令格式里的编号,对应的是自定义UI界面上各界面段预留给你的按钮编号;状态值0代表隐藏按钮,状态值1代表显示按钮。脚本里按实际要控制的按钮把这两个值填进去即可。
参数怎么填
ShowCustomButton一共两个参数,下面用表格把参数内容、参数释义和实操用法列清楚:
| 参数内容 | 参数释义 | 实操用法 |
|---|---|---|
| 编号 | 自定义UI按钮的预留编号,取值落在各界面段内 | 要控制主界面按钮就填主界面段内的编号,要控制背包按钮就填背包段内的编号 |
| 状态值0 | 隐藏该编号按钮 | 想让按钮暂时不出现时,状态值填0 |
| 状态值1 | 显示该编号按钮 | 想让按钮正常显示出来时,状态值填1 |
填编号时注意,编号必须落在目标界面对应的预留段内,否则命令不会对到你要控制的那个按钮。
各界面按钮预留编号对照
不同界面有各自独立的界面按钮编号段,选编号先看你要控制的是哪个界面的按钮。完整对照如下表:
| 界面 | 预留编号段 |
|---|---|
| 主界面 | 0到9 |
| 背包 | 20到24 |
| 老行会 | 30到32 |
| 系统商铺 | 40到42 |
| 新行会 | 50到52 |
| 装备 | 60到62 |
| 时装 | 70到71 |
| 状态 | 80到82 |
| 属性 | 90到92 |
| 称号 | 100到102 |
| 技能 | 110到112 |
| 出战 | 120到129 |
| 神佑 | 130到132 |
| 首饰盒 | 140到142 |
| 内功状态 | 300到302 |
| 内功技能 | 310到312 |
| 内功经络 | 3320到322 |
| 内功连击 | 330到332 |
| 他人装备 | 800到802 |
| 他人时装 | 810到812 |
| 他人称号 | 820到822 |
| 他人神佑 | 830到832 |
| 他人首饰 | 840到842 |
| 宠物界面 | 850到858 |
表里内功经络一行的编号区间在原始说明中记为3320到322,实际使用时请以你引擎版本的具体配置为准,其他界面段按上表对应即可。
设置按钮显示与隐藏的实操步骤
配置自定义UI按钮的显示和隐藏,按下面几步做,每一步都独立生效。
第一步,先在自定义UI界面里开启要用的预留按钮。翎风引擎的登录器、配置器里有预留按钮开关,对应界面段内的按钮默认是预留状态,先打开它,按钮才有编号可控制。
第二步,准备按钮素材。系统自带2张默认素材可以直接用;要换样式就用PS把图片素材改好,再导入PAK补丁文件,按钮外观就会更新。
第三步,在脚本里写ShowCustomButton,把目标按钮编号和状态值填好。要显示按钮就填1,要隐藏就填0,脚本里用这个命令即可随时切换按钮可见状态。
第四步,重载脚本后登录测试。本地重载生效后进游戏看按钮是否按脚本显示或隐藏,状态不对就检查编号是否落在对应界面段内。
QF点击触发怎么联动
按钮显示出来后,点击动作统一进入事件段CustomButtonClick,QF触发脚本里用变量$CustomButtonID拿到被点击按钮的编号,再判断编号执行对应脚本。下面是基础检测脚本,点击任意自定义UI按钮都会提示编号:
[@CustomButtonClick]
#act
SENDMSG 7 按钮点击编号为<$CustomButtonID>
要在指定编号的按钮上触发功能,用equal判断编号即可。以新行会界面的编号50为例,匹配后执行动作并break结束分支:
[@CustomButtonClick]
#IF
equal <$CustomButtonID> 50
#ACT
SENDMSG 7 你触发了50编号的按钮
break
他人装备界面也走同一套逻辑,编号800对应的按钮点击后,可以读取他人名称变量做后续处理:
[@CustomButtonClick]
#IF
equal <$CustomButtonID> 800
#ACT
SENDMSG 7 你触发了他人装备栏自定义按钮1
SENDMSG 7 他人名称<$USERSTATENAME>
break
常见问题
1. ShowCustomButton命令怎么控制按钮显示隐藏?
ShowCustomButton命令填两个参数,第一个是按钮预留编号,第二个是状态值,0代表隐藏按钮,1代表显示按钮。要显示某个按钮就写ShowCustomButton加对应编号加1,要隐藏就写编号加0。编号必须取自目标界面对应的预留段,命令才会作用到正确按钮。(整理自传奇素材网自定义按钮教程)
2. 自定义UI按钮改了显示状态不生效怎么排查?
先确认按钮在自定义UI界面里已经开启为预留状态,没开启的话编号不会被命令识别;再检查ShowCustomButton里填的编号是不是落在对应界面段内,编号填错命令不会生效。素材层面确认PAK补丁里的按钮图片已正确导入,图片没导入按钮即使显示也是空白。最后重载脚本登录测试。
3. 按钮编号要怎么选才不会冲突?
按界面段选编号就不会冲突,每个界面段内的编号只服务本界面按钮,跨界面不会互相覆盖。比如主界面用0到9、背包用20到24、新行会用50到52,各段独立。要控制他人装备就选800到802段。避免拿其它界面段的编号控制本界面按钮,那样命令对不上。(整理自翎风引擎问题反馈专区)
4. 点击自定义UI按钮QF没触发原因有哪些?
先看事件段名是否写成CustomButtonClick,段名拼写错误触发不了;再看判断编号用的变量$CustomButtonID和脚本里equal的编号是否一致,编号对不上分支不执行;确认按钮在UI里已开启预留并显示出来,隐藏状态点不到自然不触发;最后确认脚本重载过,未重载的旧脚本不会响应新配置。(整理自传奇技术公开课背包按钮教程)
5. 预留按钮数量不够用能加吗?
各界面段预留的按钮数量由引擎在UI界面里预设,段内编号段的大小决定了能用的按钮数。比如主界面预留0到9共10个、背包20到24共5个、他人装备800到802共3个。需要更多按钮时,先看该界面段编号容量是否用满,再用其他空闲界面段的编号来扩展功能入口。
6. ShowCustomButton和自定义UI界面直接开关有什么区别?
自定义UI界面里的开关是人工手动配置,改一次管一次;ShowCustomButton是脚本命令,可以在脚本里按条件动态控制按钮显示隐藏,比如达到等级、满足条件时用命令显示按钮,条件不满足时隐藏。需要运行时切换按钮可见状态的场景用命令更灵活。
总结要点
自定义UI按钮显示控制的关键就两点:选对界面段编号,写对ShowCustomButton的状态值。本文从命令格式、参数、编号对照到QF点击触发脚本都覆盖了,照这个流程就能在翎风引擎脚本里把按钮显示隐藏和点击触发配好。ShowCustomButton相关命令示例已在本地环境逐项跑通;命令与机制在这些引擎中普遍适用,但不同引擎存在参数与路径差异,跨引擎使用需要自行测试修改。
扫描二维码推送至手机访问。
本文章M2GM发布,如需转载请注明出处。如有侵权请联系站长删除。
本文内容仅供个人单机学习研究、功能调试、玩法逻辑测试使用,不涉及任何公网搭建、商业运营、资源交易行为,仅用于个人学习与实操体验。
本文链接:https://www.m2gm.com/tech/lfm2/lingfeng-showcustombutton-ui/












