传奇服务端定制NPC交互界面时,复选框组件是玩家状态勾选、功能开关的核心UI组件。新旧NPC界面写法存在兼容性限制,是配置前必须确认的基础设置。
核心兼容规则:新NPC界面与旧版本界面写法支持双向兼容,但单个NPC界面仅可使用一种写法,禁止在同一界面内混用新旧代码结构,否则会出现界面错乱、勾选失效、脚本不执行等问题。
前置开启步骤:登录M2服务端后台,依次进入【客户端控制】-【页面显示】,勾选启用新NPC面板写法,方可正常使用新版复选框组件脚本代码。
标准复选框组件基础模板为固定格式,所有参数按顺序配置,不可随意删减必填参数:
<CheckBox|id=0|children={1,2,3...}|checkboxid=xx|wil=NewopUI|pcnimg=192|pcpimg=193|default=xx|submit=xx|delay=xx|count=xx|link=@触发>
本章节拆解复选框组件所有配置参数,明确参数作用、数据类型及填写规范,适配传奇各类UI定制场景。
wil:指定UI图片所在的wil资源文件名,为界面素材调用核心依据,需确保客户端内对应文件存在,避免图片缺失。
checkboxid:复选框唯一标识,用于提交、返回勾选状态数据,仅支持数字型变量命名。该参数固定返回两种状态值,未勾选返回0,勾选后返回1,取消勾选重置为0,且服务器内变量名称不可重复。
pcnimg:复选框未选中状态下展示的图片索引;
pcpimg:复选框选中状态下展示的图片索引;
default:复选框默认展示状态,填写1为默认勾选,填写0为默认未勾选。
delay:自动提交时间,定义link绑定的触发脚本执行间隔时长;
count:自动提交次数,定义点击复选框后,触发脚本的执行总次数;
link:绑定脚本触发标签,关联自定义的功能触发段。
checkboxid是复选框数据交互的核心,仅支持绑定数字型变量,字符型变量无法识别。
调用逻辑示例:绑定变量N66时,界面加载初始状态N66=0(未勾选);玩家勾选复选框后,变量自动赋值N66=1;取消勾选后,变量重置为N66=0。开发者可通过读取该变量值,判断玩家勾选状态并执行对应功能。
通过内置函数可提取面板组件的状态变量,是脚本获取复选框数据的关键方法,函数标准格式如下:
<$npcparams(类型,变量)>
参数释义:
类型:区分UI组件类型,2专属代表勾选框(复选框),1为输入框、3为滑动条、4为下拉菜单;
变量:填写复选框绑定的数字变量名,用于传递面板状态至服务端脚本。
以下为无报错、可直接复刻的传奇NPC复选框完整案例,包含界面定义、变量绑定、触发脚本全流程:
【NPC界面组件定义】
<CheckBox|x=30|y=50|checkboxid=n66|wil=xx|pcnimg=145|pcpimg=144|default=<$str(n66)>|delay=1|count=1|link=@勾选触发>
【触发脚本逻辑】
[@勾选触发]
#if
#act
SENDMSG 9 勾选状态N66=<$npcparams(2,N66)>
该范例实现基础功能:玩家点击复选框后,立即读取N66变量状态,并通过系统消息提示当前勾选数值,可在此基础上扩展充值、buff开关、功能解锁等自定义逻辑。
1. 界面写法不混用:单NPC界面严格区分新旧写法,启用新面板后全部组件统一新版语法;
2. 变量唯一性:所有checkboxid绑定的数字变量全区不可重复,避免数据串号;
3. 组件类型匹配:读取复选框状态时,npcparams类型必须填写2,选错类型将无法获取数据;
4. 资源匹配:wil文件及图片索引需与客户端资源对应,防止界面空白、按钮不显示。