传奇NPC对话编辑全教程 新版语法格式、组件标志与命令脚本详解
在传奇版本定制、私服开发、界面改版过程中,NPC对话编辑是核心基础功能,直接影响玩家交互体验、功能弹窗展示、道具交互逻辑等核心场景。目前传奇引擎已全面升级NPC对话语法,兼容老旧格式的同时,推出了模块化的新编辑语法,支持文字样式、图像特效、控件组件、滚动面板等高级功能。本文完整梳理传奇NPC对话编辑…
在传奇版本定制、私服开发、界面改版过程中,NPC对话编辑是核心基础功能,直接影响玩家交互体验、功能弹窗展示、道具交互逻辑等核心场景。目前传奇引擎已全面升级NPC对话语法,兼容老旧格式的同时,推出了模块化的新编辑语法,支持文字样式、图像特效、控件组件、滚动面板等高级功能。本文完整梳理传奇NPC对话编辑的新旧格式、全量属性标志、命令脚本及实战示例,帮助版本制作者快速掌握编辑技巧。
一、传奇NPC对话格式概述:老格式与新格式区别
1.1 传统老旧格式(仅支持文字变色)
早期传奇NPC对话仅支持基础文字变色功能,无控件、图像、特效拓展能力,语法简单但扩展性极差,目前仅老旧引擎兼容,新引擎不推荐使用。
语法规则:仅支持文字颜色修改,不支持链接嵌入
示例:<我是白色文字/FCOLOR=255>
参数说明:FCOLOR为颜色参数,取值范围0-255,仅可修改文字基础前景色,无背景、描边、提示弹窗等拓展属性。
1.2 新版标准格式(兼容老格式,主推)
现行传奇引擎通用的NPC对话编辑格式,采用模块化参数组合,所有属性封装于{}中,放置于<>文字描述区内,多参数以英文分号;分割,兼容所有老格式语法,是当前版本制作的主流格式。
标准语法结构:<{参数1=参数值;参数2=参数值}/@节点名称>
基础示例:<{s=传奇NPC测试文字;fc=255}/@main>
核心优势:支持文字样式、坐标偏移、图像展示、特效播放、自定义控件等全功能,参数按需选配,冗余属性不填写可节省客户端宽带,避免排版卡顿。
二、核心基础标志:所有组件通用全局属性
基础标志为所有NPC对话组件通用属性,文字、图像、特效、控件均可继承,主要用于控制提示弹窗、坐标定位、尺寸规范、控件编号等全局配置,是排版布局的核心依据。
2.1 提示文本类标志
用于设置鼠标悬浮NPC文字/控件时弹出的提示信息,支持换行与自定义颜色、透明度。
ht:提示文字内容,内置换行符|,示例:<{s=领取奖励;ht=点击领取道具|每日仅限一次}>
htfc:提示文字前景颜色,支持0-255数值或Web十六进制色值(#FF00FF)
htbc:提示弹窗背景颜色,取值规则同htfc
hta:提示框背景透明度,范围0-255,数值越大透明度越低,引擎默认半透明值为128
2.2 坐标定位类标志
分为相对坐标与绝对坐标,精准控制NPC界面内组件位置,是解决排版错乱的关键参数。
ox:X轴相对偏移,后续所有排版内容跟随该坐标偏移,适用于批量组件对齐
oy:Y轴相对偏移,作用逻辑同ox,多用于纵向内容间距调整
x:X轴绝对坐标,仅控制当前组件,不影响后续内容排版
y:Y轴绝对坐标,定位精准固定,常用于弹窗按钮、图标定点放置
2.3 尺寸与控件编号标志
w:组件默认宽度,轻端模式下必须配置,否则客户端无资源时会出现排版错乱
h:组件默认高度,配置要求同w,是移动端、轻端适配必备参数
bidx:控件唯一编号,当前NPC对话内不可重复,范围1-255,默认0为NPC主对话框,主要用于父子控件绑定场景
三、文字专属标志:定制NPC文本样式效果
文字标志继承所有基础标志,专门用于优化NPC对话文本展示效果,支持颜色、描边、字体、交互变色、音效等定制,是美化对话界面的核心配置。
3.1 基础文字属性
s:必填参数,当前组件显示的核心文字内容
fc:文字前景色,默认白色,支持0-255数值或Web色值
bc:文字背景色,无默认值,按需配置即可
3.2 交互变色属性
ch:鼠标悬浮文字时的变色,默认继承fc参数值
cd:鼠标点击文字时的变色,默认继承fc参数值
ac:自动循环变色,可配置多个色值,最多支持10种颜色循环,格式:ac=1,2,3,4
3.3 描边与字体属性
bold:文字描边开关,取值0/1,1开启描边,0或不填写关闭,非必要不开启以节省宽带
boldc:描边颜色,取值规则同fc,仅bold=1时生效
f.se:字体大小,固定范围7-30,引擎默认值为9
f.bd:字体加粗开关,0关闭、1开启,默认关闭
f.ul:字体下划线,0为普通文字、1为链接文字,可手动关闭链接下划线
3.4 音效属性
psi:点击文字播放音效,填写sound.lst内的声音序列号,-1为关闭点击音效,默认关闭
四、图像专属标志:NPC界面图片展示配置
图像标志支持基础区除描边色外的所有属性,用于在NPC对话框内展示图标、背景、按钮等图片资源,核心要求为资源库索引与图片索引必须配对配置。
4.1 核心必填参数
i:图片资源索引号,对应客户端素材库编号
li:图片资源库索引号,可在引擎M2-查看-列表信息二-客户端资源中配置;以&开头代表文件名模式,文件名最长30字符,无需填写后缀
重点规则:i与li必须同时配置,否则图片无法显示;若同时配置s参数,该组件自动变为可点击按钮效果
4.2 交互图片与偏移参数
ih:鼠标悬浮时展示的图片索引,默认继承i的值
id:鼠标点击时展示的图片索引,默认继承i的值
sox:图片内文字X轴偏移,默认0,支持正负数值
soy:图片内文字Y轴偏移,默认0,支持正负数值
五、特效播放标志:NPC动态视觉效果制作
特效标志继承基础所有标志,用于在文字、图像上层添加动态特效,支持速度、次数、坐标微调,最多可多层叠加,提升NPC界面视觉质感。
5.1 特效核心参数
ei:特效起始图片索引,指定动态特效的首张素材图
eli:特效资源库索引,取值规则同图片li参数,支持文件名模式
et:特效播放速度,单位毫秒,常规取值100-200,默认120
ec:特效播放帧数,指定动态效果展示的图片数量
5.2 循环与绘图参数
efc:循环播放次数,0为无限循环(引擎默认)
edm:绘图模式,0为普通绘图、1为混合绘图(默认)
efxy:是否按资源原图坐标计算,0不计算(默认)、1精准计算
eox/eoy:特效X/Y轴微调坐标,默认0,用于精准对齐底层组件
空白底层配置:若仅展示特效、隐藏底层文字/图像,配置s= ; 即可(等号与分号间保留空格)
六、功能性控件标志:高级交互组件配置
传奇NPC对话支持多种自定义控件,通过type参数区分组件类型,可实现进度条、物品统计、弹窗交互、滚动面板等高级功能,是定制功能性NPC的核心。
6.1 进度条控件(type=1)
必填参数:type=1、li资源库索引、i图片索引、m最大进度值、p当前进度值
拓展参数:o绘制方向,0水平(默认)、1垂直;用于任务进度、活跃度、充值进度展示
示例:<{type=1;li=14;i=3364;m=100;p=50;x=100;y=100}>
6.2 包裹物品统计控件(type=2)
继承文字所有属性,用于读取玩家背包内指定物品数量,自动展示在NPC界面
必填参数:type=2、s物品名称
示例:当前回城卷数量:<{type=2;s=回城卷}>
6.3 自定义OK框控件(type=3)
用于物品提交、兑换、回收交互,支持限定物品类型、高亮提示
必填参数:type=3、idx编号(0-7)、i背景图索引、li资源库索引
核心拓展:fil限定可放入物品类型(填写DB库StdMode值,多类型逗号分隔);mic设置物品匹配时的高亮透明色
6.4 物品展示控件(type=4)
专门用于在NPC界面展示道具图标、数量,默认宽34、高32,禁用ht提示属性
必填参数:type=4、idx物品数据库ID、t展示类型(0数据库物品、1主角装备、2英雄装备)
拓展参数:ct物品数量;ct.x/ct.y数量文字偏移;sht是否显示物品详情提示
6.5 父组件设置控件(type=5)
唯一不继承任何基础标志的控件,用于绑定父子组件,实现组件分组管理
必填参数:type=5;pbidx父组件编号,默认0为NPC主面板
作用:配置后后续所有组件自动归入指定父控件,常用于滚动框、弹窗分组
6.6 滚动框与滚动条控件(type=6/7)
滚动框(type=6):容器控件,用于承载超长内容,ih控制单次滚动距离,es设置底部留白,reload控制刷新逻辑
滚动条(type=7):配套滚动框使用,ori区分方向(0水平、1垂直),可自定义滑块、上下端按钮的素材图与交互状态
核心规则:滚动功能必须滚动框+滚动条搭配,且滚动条父控件必须为对应滚动框
七、NPC专用命令:弹窗与特效全局指令
除组件属性外,传奇引擎提供专属NPC脚本命令,用于控制整体对话框弹窗、全局动态特效,需写入NPC脚本节点中执行。
7.1 自定义对话框命令 OPENMERCHANTDLG
功能:弹出自定义尺寸、位置、素材的NPC对话框,替代默认原生窗口
标准格式:OPENMERCHANTDLG 资源库索引号|图片索引号|是否可移动(0,1)|宽度|高度|显示位置(0-4)|微调X|微调Y|显示关闭按钮(0,1)|按钮X|按钮Y
位置说明:0左上角、1右上角、2左下角、3右下角、4居中(最常用)
还原命令:OPENMERCHANTDLG -1| ,执行后恢复引擎原始NPC窗口,必须保留尾部竖线避免报错
实战示例:
[@main]
#if
#act
OPENMERCHANTDLG 14|3832|1|742|474|4|0|0|0|0|0
7.2 全局特效命令 PLAYNPCDLGEFFECT
功能:在自定义对话框内播放全局动态特效,最多支持6个命令同步执行
格式:PLAYNPCDLGEFFECT 资源库索引|起始图片|播放速度|帧数|循环次数|绘图模式|X偏移|Y偏移|原图坐标计算
7.3 对话框关闭指令
@Close:客户端直接关闭弹窗,不经过M2引擎,普通NPC界面推荐使用
@Exit:经过M2引擎校验后关闭,可防止跳转刷物品漏洞,QM/QF功能脚本强制使用
示例:<关闭对话框/@Close>
八、实战脚本示例:滚动框物品展示模板
以下为可直接复制使用的传奇NPC滚动面板脚本,包含纵向/横向滚动条配置,适配所有GOM、GEE主流引擎,导入即可生效。
[@滚动框测试]
#SAY
<纵向滚动条测试/@纵向滚动框测试> <横向滚动条测试/@横向滚动条测试>\
<返回/@main>
[@纵向滚动框测试]
#SAY
;添加滚动框容器
<{type=6;w=200;h=100;bidx=1;bc=255}>
;绑定父组件
<{type=5;pbidx=1}>
;批量添加物品展示组件
<{type=4;idx=1}><{type=4;idx=2}><{type=4;idx=3}><{type=4;idx=4}><{type=4;idx=5}>\
<{type=4;idx=6}><{type=4;idx=7}><{type=4;idx=8}><{type=4;idx=9}><{type=4;idx=10}>\
<{type=4;idx=11}><{type=4;idx=12}><{type=4;idx=13}><{type=4;idx=14}><{type=4;idx=15}>\
<{type=4;idx=16}><{type=4;idx=17}><{type=4;idx=18}><{type=4;idx=19}><{type=4;idx=20}>\
;添加纵向滚动条
<{type=7;h=100;x=184;y=0}>
;重置父组件为主面板
<{type=5}>\
<返回/@滚动框测试>
[@横向滚动条测试]
#SAY
;添加横向滚动框容器
<{type=6;w=200;h=100;bidx=2;bc=255}>
<{type=5;pbidx=2}>
;横向排列物品组件
<{type=4;idx=1}><{type=4;idx=2}><{type=4;idx=3}><{type=4;idx=4}><{type=4;idx=5}>
<{type=4;idx=6}><{type=4;idx=7}><{type=4;idx=8}><{type=4;idx=9}>\
<{type=4;idx=10}><{type=4;idx=11}><{type=4;idx=12}><{type=4;idx=13}><{type=4;idx=14}>
<{type=4;idx=15}><{type=4;idx=16}><{type=4;idx=17}><{type=4;idx=18}>\
;添加横向滚动条
<{type=7;w=200;x=0;y=84;ori=0}>
<{type=5}>\
<返回/@滚动框测试>
九、编辑优化小贴士
1. 精简参数:与引擎默认值一致的参数无需填写,减少脚本体积,降低客户端加载延迟
2. 编号唯一:同一NPC内bidx控件编号禁止重复,否则会出现控件绑定错乱、界面黑屏问题
3. 素材适配:文件名模式的素材名称控制在30字符内,不含后缀,避免引擎读取失败
4. 轻端兼容:所有展示组件必须配置w、h尺寸参数,杜绝移动端排版错位
5. 安全规范:功能交互脚本优先使用@Exit关闭窗口,防止道具刷取漏洞


