传奇M2引擎自定义NPC按钮面板配置教程新面板写法
摘要:本文详解传奇M2引擎新NPC面板写法下的自定义按钮配置方法,讲解ADDBUTTON、DELBUTTON核心命令参数,汇总全游戏面板主窗口ID,提供可直接套用的脚本案例,标注配置避坑要点,帮助传奇开发者快速实现NPC界面按钮自定义与UI布局调整。…
一、功能概述与前置要求
传奇M2引擎支持自定义按钮(自定义面板)开发,开发者可将全新NPC控件挂载至游戏各类内置面板中,实现功能入口自定义、UI布局个性化调整。该功能区分新旧NPC界面写法,核心用于丰富游戏主界面、角色面板、行会、商城等场景的快捷功能入口。
核心前置规则
1. 兼容规则:新NPC界面与旧版本界面写法相互兼容,但单个界面仅能使用一种写法,禁止同一界面混用新旧代码逻辑,否则会出现UI错乱、按钮失效问题;
2. 引擎开关:必须在M2引擎客户端控制栏目中,勾选【页面显示-启用新NPC面板写法】,未开启则所有自定义按钮代码不生效。
二、核心命令语法说明
自定义面板功能依托两大核心脚本命令实现,分别用于新增和删除NPC界面自定义按钮,所有命令需在传奇服务端脚本中规范调用。
2.1 ADDBUTTON 新增自定义按钮
语法格式:ADDBUTTON 参数1:主窗口ID 参数2:图标ID 参数3:图标路径
2.2 DELBUTTON 删除自定义按钮
语法格式:DELBUTTON 参数1:主窗口ID 参数2:图标ID
三、命令参数详细解析
3.1 参数1:主窗口ID(挂载面板标识)
该参数用于指定按钮挂载的游戏目标面板,不同ID对应游戏内固定UI位置,部分面板附带推荐坐标微调数值,可直接用于界面定位优化。
主界面区域
101:主界面左上(推荐微调坐标0 0),102:主界面右上(推荐微调坐标-65 0),103:主界面左下(推荐微调坐标0 -92),104:主界面右下(推荐微调坐标-62 -92),105:主界面左中(推荐微调坐标0 0),106:主界面上中(推荐微调坐标0 0),107:主界面右中(推荐微调坐标-62 0),108:主界面下中(推荐微调坐标0 -92),109:主界面切换按钮,110:主界面任务界面,1101:主界面最顶左上,1102:主界面最顶右上,1103:主界面最顶左下,1104:主界面最顶右下
角色基础面板
2:角色外框主面板,3:角色装备上层,3001:角色装备下层,301:他人装备界面上层,3002:他人装备界面下层,4:角色状态,5:角色属性,6:角色技能,7:角色背包,23:角色称号,2301:他人称号
行会与社交面板
9:行会列表,10:行会创建,11:行会主面板,12:行会成员,14:邮件界面,15:好友界面,17:聊天框
复古内挂面板
19:内挂保护,20:内挂物品,21:内挂战斗,19001:内挂基础,19002:战士职业内挂,19003:法师职业内挂,19004:道士职业内挂,19005:挂机功能,19006:快捷键设置,19007:帮助中心,19008:英雄保护内挂
交易与功能面板
8:小地图,22:操作设置,29:拍卖行主面板,30:世界拍卖,31:行会拍卖,32:我的竞拍,33:我的上架,34:竞价界面,35:一口价,36:物品上架,37:物品下架,38:拍卖超时,602:摆摊界面,6021:对方摊位界面,41:首饰盒,4101:他人首饰盒查看,43:怪物大血条
商城与时装面板
701:装饰商城,702:补给商城,703:强化商城,704:好友商城,705:限时商城,39:角色时装,3901:他人时装查看,3902:时装界面下层
英雄专属面板(二合一面板不支持挂靠)
50002:英雄角色外框主面板,50003:英雄装备上层,53001:英雄装备下层,50301:他人英雄装备上层,53002:他人英雄装备下层,50004:英雄状态,50005:英雄属性,50006:英雄技能,50007:英雄背包,50023:英雄称号,52301:他人英雄称号,54000:英雄头像,50039:英雄时装,3903:英雄时装下层,53901:他人英雄时装,50041:英雄首饰盒,54101:他人英雄首饰盒
3.2 参数2:图标ID
自定义图标专属编号,取值范围无上限限制,同一主窗口ID下图标ID不可重复,用于精准区分同面板内多个自定义按钮,也是删除按钮时的唯一标识依据。
3.3 参数3:图标路径(UI属性配置)
该参数为按钮UI核心配置字符串,定义图标素材、坐标、悬浮提示、点击跳转等属性,完整配置格式如下,所有参数可根据UI需求自定义修改:
<Button|a=0|x=180.0|y=2.0|tips={点击查看【金钻服务】/FCOLOR=250}|tipsx=10|tipsy=110|wil=NewopUI|pcnimg=140|pcmimg=140|pcpimg=143|color=251|link=@会员服务>
核心属性说明:x/y为按钮坐标,tips为鼠标悬浮提示文字,wil为UI素材补丁名称,link为点击后跳转的脚本触发段。
四、完整脚本实操案例
以下为传奇服务端可直接复制使用的自定义按钮配置案例,包含双按钮挂载、脚本触发、按钮删除全流程,适配大部分复古、微变传奇版本。
4.1 新增自定义按钮脚本
#IF
#ACT
MOV S$图标 <Button|a=0|x=180.0|y=2.0|tips={点击查看【金钻服务】/FCOLOR=250}|tipsx=10|tipsy=110|wil=NewopUI|pcnimg=140|pcmimg=140|pcpimg=143||link=@会员服务>
INC S$图标 <Button|a=0|x=260.0|y=2.0|tips=点击查看【在线奖励】|tipsx=10|tipsy=110|wil=NewopUI|pcnimg=140|pcmimg=140|pcpimg=143||link=@在线奖励>
ADDBUTTON 101 1 <$STR(S$图标)>
4.2 QFunction-0.txt触发脚本
在服务端QFunction-0.txt文件中配置跳转逻辑,所有触发段名称不可重复,避免脚本冲突:
[@会员服务]
#IF
#ACT
SENDMSG 6 你的图标正常
[@在线奖励]
#IF
#ACT
SENDMSG 6 你的图标正常
4.3 删除自定义按钮脚本
如需移除已挂载的按钮,使用DELBUTTON命令指定对应窗口ID和图标ID即可,示例代码:
DELBUTTON 101 1
代码释义:删除主窗口ID101(主界面左上)下图标ID为1的自定义按钮。
五、常见避坑要点
1. 界面写法唯一:单界面严禁混用新旧NPC面板写法,是按钮不显示、点击无响应的主要诱因;
2. 引擎开关必开:未勾选M2新面板启用选项,所有ADDBUTTON命令全部失效;
3. ID唯一性管控:同窗口图标ID重复、脚本触发段名称重复,会导致按钮覆盖、功能错乱;
4. 英雄面板限制:英雄二合一面板不支持按钮挂靠,配置后无显示效果,需规避该面板使用。


