当前位置:首页 > M2引擎 > 996引擎

传奇M2引擎新NPC面板下拉菜单编写教程 MenuItem菜单参数详解

admin13小时前996引擎1
摘要:本文详细讲解传奇M2引擎新NPC面板下拉菜单开发规范,包含界面兼容要求、MenuItem全参数解析、npcparams指令用法,附带可直接复用的新人福利NPC完整脚本,帮助传奇开发者快速掌握下拉菜单编写技巧,解决界面错乱、变量读取异常等问题。…

一、前置运行规范(必看)

在编写传奇NPC下拉菜单功能前,需优先处理界面兼容问题,这是脚本正常运行的核心前提:

新NPC界面与旧版写法界面支持双向兼容,但单个NPC界面仅能使用一种写法,禁止新旧代码混用。如需启用新面板写法,必须在M2引擎后台完成配置:路径为M2-客户端控制-页面显示,勾选【启用新NPC面板写法】选项,未配置将导致菜单加载异常、界面错乱。

二、下拉菜单核心标签基础定义

2.1 基础标签标识

传奇NPC下拉菜单功能专属核心标签:<menuid>,该标签用于定义下拉菜单唯一标识,是数据提交、变量传递的核心载体,仅适配新NPC面板写法。

2.2 变量传递规则

menuid参数仅支持传奇S型变量,包含系统基础变量与自定义变量两类,选择菜单选项后,可通过字符调取指令获取变量值:

示例1:menuid=S0,选中后取值语法:<$STR(S0)>

示例2:menuid=S$自定义变量,选中后取值语法:<$STR(S$自定义变量)>

三、MenuItem下拉菜单全参数详解

MenuItem为下拉菜单核心组建指令,通过不同参数控制界面素材、布局、文本及交互逻辑,所有参数支持留空,留空时自动调用引擎默认素材与配置,具体参数说明如下:

参数名称

功能说明

默认素材/配置值

menuid

下拉菜单ID,用于提交存储选择数据,仅支持S变量

无(必填参数)

img

菜单展示底图资源

NewopUI-2000

arrowimg

下拉箭头图标资源

NewopUI-1448、1451

selectimg

选项选中状态图片资源

NewopUI-2047

listimg

下拉列表背景底图资源

NewopUI-2000

width

菜单整体宽度

调用素材原生宽度

height

菜单整体高度

调用素材原生高度

itemname

菜单列表文本,多选项用#符号分隔

无(必填参数)

select

菜单默认显示文本

direction

菜单弹出方向,0=下拉,1=上拉

0(下拉)

itemhei

列表中单条选项的行高

引擎默认配置

fontcolor

普通状态字体颜色值

引擎默认色值

selectcolor

选中状态字体颜色值

引擎默认色值

maxhei

列表最大显示高度,超出后支持上下滑动

无限制

link

选项选中后跳转的触发脚本段

四、NPC参数调取指令说明

4.1 指令基础语法

语法格式:<$npcparams(类型,变量)>

4.2 参数释义

类型:用于区分NPC交互组件类型,固定对应数值

1=输入框,2=勾选框,3=滑动条,4=下拉菜单(MenuItem专用)

变量:绑定的面板传递S变量,与menuid定义变量一致

4.3 基础示范代码

<MenuItem|menuid=S0|x=300|y=50|itemname=刘德华#张学友#黎明#郭富城|select=刘德华|direction=0|fontcolor=250|selectcolor=254|select=选择人物|itemhei=30>

五、完整实战脚本示例(可直接复用)

以下为传奇新人福利NPC完整脚本,包含双下拉菜单、物品领取、分类界面跳转功能,适配所有启用新NPC面板的M2引擎版本,代码无冗余可直接导入服务端使用。

[@main]

#ACT

MOV S1 裁决之杖

MOV S$自定义

#say

<Text|x=22.0|y=69.0|color=251|size=18|text=福利多多:新人免费领取一件物品!>

; 上拉式物品选择下拉菜单

<MenuItem|menuid=S1|x=180|y=166|itemname=裁决之杖#骨玉权杖#龙纹剑#1000元宝|select=裁决之杖|direction=1|fontcolor=255|selectcolor=254|select=裁决之杖|itemhei=30|link=@菜单触发1>

; 下拉式功能导航菜单

<MenuItem|menuid=S$自定义|x=525|y=58|itemname=我要变强#我要装备#我要经验#我要元宝#我要转生#地图介绍|select=我要变强|direction=0|fontcolor=250|selectcolor=254|select=游戏帮助|itemhei=30|link=@菜单触发2>

<Button|x=202.0|y=134.0|color=255|wil=Newopui|pcpimg=143|pcnimg=141|pcmimg=142|text=免费领取|link=@领取>

[@菜单触发1]

#act  

sendmsg 6 你选择了:<$npcparams(4,S1)>

MOV S1 <$npcparams(4,S1)>

[@领取]

#act

GIVE <$str(S1)> 1

sendmsg 6 免费领取了【<$str(S1)>】物品!

[@菜单触发2]

#IF

equal S$自定义 我要变强

#say

<Text|a=0|x=32|y=60|tipsx=10|tipsy=80|color=255|size=18|text=我要变强的界面 >

<Text|a=0|x=384|y=80|tipsx=10|tipsy=80|color=251|size=18|text=返回|link=@MAIN>

#IF

equal S$自定义 我要装备

#say

<Text|a=0|x=32|y=60|tipsx=10|tipsy=80|color=255|size=18|text=我要装备的界面 >

<Text|a=0|x=384|y=80|tipsx=10|tipsy=80|color=251|size=18|text=返回|link=@MAIN>

#IF

equal S$自定义 我要经验

#say

<Text|a=0|x=32|y=60|tipsx=10|tipsy=80|color=255|size=18|text=我要经验的界面 >

<Text|a=0|x=384|y=80|tipsx=10|tipsy=80|color=251|size=18|text=返回|link=@MAIN>

#IF

equal S$自定义 我要元宝

#say

<Text|a=0|x=32|y=60|tipsx=10|tipsy=80|color=255|size=18|text=我要元宝的界面 >

<Text|a=0|x=384|y=80|tipsx=10|tipsy=80|color=251|size=18|text=返回|link=@MAIN>

#IF

equal S$自定义 我要转生

#say

<Text|a=0|x=32|y=60|tipsx=10|tipsy=80|color=255|size=18|text=我要转生的界面 >

<Text|a=0|x=384|y=80|tipsx=10|tipsy=80|color=251|size=18|text=返回|link=@MAIN>

#IF

equal S$自定义 地图介绍

#say

<Text|a=0|x=32|y=60|tipsx=10|tipsy=80|color=255|size=18|text=地图介绍的界面 >

<Text|a=0|x=384|y=80|tipsx=10|tipsy=80|color=251|size=18|text=返回|link=@MAIN>

六、常见报错排查要点

1、界面错乱:检查是否勾选M2新NPC面板开关,排查单界面是否混用新旧写法;

2、变量无数据:确认menuid仅使用S变量,核对npcparams指令中类型参数为4(下拉菜单专用);

3、素材缺失:未自定义图片资源时,确保客户端包含NewopUI系列默认素材文件。

扫描二维码推送至手机访问。

本文章九路游发布,如需转载请注明出处。如有侵权请联系站长删除。

本文链接:https://www.9luu.com/1013.html

分享给朋友:

相关文章