GOM引擎的“悬浮按钮”与“自定义按钮”是扩展游戏界面、实现快捷功能的核心组件。两者本质相同,仅交互逻辑存在差异:悬浮按钮支持玩家拖拽移动,自定义按钮通常固定位置。功能实现均依赖ADDBUTTON脚本命令与素材配置。
一、功能定义与核心差异
• 悬浮按钮:参数中移动权限设置为1,玩家可长按拖拽至屏幕任意位置,适合作为“快捷加血”、“一键回收”等高频功能的入口,不遮挡游戏主视野。
* 自定义按钮:移动权限设置为0,固定在界面指定坐标,常用于扩展主界面功能栏,如“会员服务”、“在线充值”等入口。
* 共同特性:均支持三态图片切换(默认/经过/按下)、自定义悬浮提示文字,且单角色最多同时存在20个按钮(序号1-20)。
二、ADDBUTTON命令参数全解
按钮创建核心命令为ADDBUTTON,需在登录脚本(QManage.txt)或功能脚本中调用。完整格式如下:
ADDBUTTON 补丁序号 触发序号 默认图号 经过图号 按下图号 X坐标 Y坐标 移动权限 按钮文字 悬浮提示
参数 说明 配置要点
参数1 WIL补丁序号 对应M2“查看-列表信息二-WIL资源”中配置的素材库序号。
参数2 触发序号 (1-20) 点击按钮后,触发QFunction-0.txt中的[@ButtonClickX]标签(X为此序号)。
参数3-5 图片编号 分别对应按钮的默认状态、鼠标悬停状态、按下状态的素材编号。
参数6-7 X坐标, Y坐标 按钮初始位置。建议使用${Width}、${Height}变量计算,适配不同分辨率。
参数8 移动权限 0=不可移动(自定义按钮),1=可移动(悬浮按钮)。
参数9 按钮文字 显示在按钮上的标题,填-1为不显示文字。
参数10 悬浮提示 鼠标悬停时的说明文字,支持\换行和/颜色代码(如253/红色文字)。
三、配置实操:从素材到脚本
1. 素材准备与导入
• 准备按钮的三张状态图(如button1.bmp, button2.bmp, button3.bmp),建议尺寸统一。
• 将图片导入PAK/WIL补丁文件,并在M2的“WIL资源”列表中确认该补丁的加载序号(如序号5)。
2. 脚本添加按钮(登录触发示例)
在Mir200\Envir\MapQuest_def\QManage.txt的[@Login]标签下添加脚本,实现上线即显示按钮:
[@Login]
#IF
#ACT
; 添加一个悬浮按钮(可移动)
ADDBUTTON 5 1 100 101 102 50 200 1 -1 253/一键回收\254/点击快速回收垃圾装备
; 添加一个固定自定义按钮
ADDBUTTON 5 2 110 111 112 10 300 0 -1 253/会员服务
3. 功能触发脚本
在Mir200\Envir\Market_Def\QFunction-0.txt中编写按钮点击后的逻辑:
[@ButtonClick1]
#IF
#ACT
; 执行一键回收逻辑
GAMEGOLD + 1000
SENDMSG 6 回收成功,获得1000元宝!
BREAK
[@ButtonClick2]
#IF
CHECKGAMEGOLD > 999
#ACT
GAMEGOLD - 1000
; 调用外部会员脚本
CALL [\系统功能\会员系统.txt] @VIP_Open
BREAK
四、进阶应用与排错
• 按钮的删除与动态控制:使用DELBUTTON 序号命令可删除指定按钮。结合#IF条件判断,可实现达到特定等级或完成任务后动态添加/移除按钮。
• 坐标定位技巧:若按钮在不同分辨率下错位,可将坐标参数改为动态计算,如ADDBUTTON ... ${Width}-100 ${Height}-100 ...,使其始终定位在屏幕右下角。
• 常见问题:
◦ 按钮不显示:检查补丁序号是否正确,以及客户端是否加载了对应的PAK密码。
◦ 点击无反应:确认[@ButtonClickX]标签中的X与ADDBUTTON的触发序号是否严格对应。
◦ 素材错乱:确保三张图片的编号连续且存在于补丁文件中。
通过灵活运用移动权限与坐标参数,开发者可快速构建出贴合版本特色的悬浮助手或功能导航栏,极大提升玩家操作效率。

