NPC对话框多色选择分为基础文字颜色标记和多选项点击分支两部分,颜色代码用来区分不同功能选项,多选择标签用来实现点击跳转不同脚本段,不同引擎的颜色标记语法存在差异,编写脚本前确认引擎支持对话框彩色标签,老旧引擎不支持彩色文本,添加颜色标记后会直接把标记代码原样显示在对话框,无法渲染色彩。
基础#SAY段落内的颜色标签写在选项文字前端,GOM与GEE引擎使用/FCOLOR=数字的格式,数字对应不同色彩编码,红色、绿色、蓝色、金色、紫色都有独立编号,一行内可以多次切换颜色,一段文字内实现多色效果。每一条可点击选项用[]符号包裹,方括号内为玩家可见的文字,后方紧跟跳转标签名称,点击对应彩色文字就会跳转到预设的脚本段执行逻辑。多条选项依次分行书写,每条选项独立设置颜色编码,就能做出多种色彩的选择按钮。
多选择分支的结构规划,在[@main]主对话段内写入#SAY内容,先写普通白色介绍文字,换行依次放置多条彩色选项,每一条选项指向独立的@标签。例如兑换道具、进入地图、查询状态、关闭窗口四个选项,分别设置金色、绿色、蓝色、红色,玩家点击不同颜色文字,进入对应标签执行不同逻辑。每个标签内部单独写校验条件,等级判断、道具扣除、金币扣除、地图传送等代码分开存放,避免多个功能共用同一分支造成逻辑错乱。
编写颜色标记时需要注意换行控制,\符号作为换行标记,每一个选项单独占一行,防止多条彩色选项挤在同一行,造成对话框排版错乱。颜色作用范围从标记位置开始,本行结束或者下一个颜色标记出现时切换色彩,未重新设置颜色的文字会继承上一段的色彩。不要在方括号跳转符号内部插入颜色代码,颜色标记放在[]外侧,写在选项文字前面,放置位置错误会导致点击失效,无法触发跳转。
自定义大对话框模式下的多色选择配置,使用OPENMERCHANTBIGDLG命令开启扩展对话框,这类对话框支持自定义背景图,按钮位置可以自由调整,除文字色彩外,还能单独设置按钮文字颜色。对话框开启之后,调用NPC_DLG_OPTIONS命令批量添加多条选择项,每个选项单独配置颜色参数、X与Y坐标,能够把彩色按钮排布在对话框不同位置,不再局限于从上到下的单行列表。自定义对话框需要核对客户端补丁,缺少对话框素材会出现界面显示异常,文字颜色依旧可以正常渲染。
条件化彩色选项是常用的进阶写法,增加变量判断,满足条件时选项显示金色,不满足条件则显示灰色,同时关闭点击跳转功能。使用IF判断语句读取人物等级、背包道具、当日次数变量,条件成立输出可点击的彩色选项,条件不成立输出灰色不可点击文字,去掉跳转标签。玩家视角会直观看到可操作选项高亮,未达到条件的选项颜色变暗,不用额外弹窗提示,减少脚本弹窗层级。
脚本保存与重载操作,修改NPC脚本文件之后保存,在M2执行NPC脚本重载命令,不需要重启引擎。进入游戏点击NPC,查看对话框内文字色彩是否正常,多条选项是否全部显示,点击每一个彩色选项,验证跳转逻辑是否正确,确认扣除、传送、提示功能正常执行。检查边界场景,不满足条件时的变色选项,点击之后不会触发任何执行动作,没有报错提示。
常见故障排查,对话框直接显示颜色代码文本,代表当前引擎不支持彩色标记,或是颜色标签书写格式错误,核对引擎对应的语法规范,更换为适配的标记写法。选项文字颜色正常,点击无反应,优先检查方括号内跳转标签名称拼写,标签名称大小写、符号必须和下方[@标签]完全一致,多余空格会导致跳转失效。部分选项颜色错乱,是颜色标记没有分段,多条选项共用同一个颜色参数,在每一行选项前重新添加颜色编码即可。对话框文字超出可视区域,需要减少单行文字长度,增加换行符,防止文字溢出被对话框边缘截断。
批量编写多NPC多色对话框,建议提取公共颜色编码注释,统一颜色编号规范,比如功能入口统一金色,任务选项绿色,消耗类选项红色,查询类选项蓝色,方便玩家快速识别选项类型。复制脚本片段时,同步复制对应的跳转标签,不要只复制#SAY显示部分,缺少对应标签会造成点击后无响应。每次修改前备份NPC脚本文件,出现大量排版或者颜色渲染异常时直接回滚。脚本内不要堆砌过多选项,对话框可展示行数存在上限,选项过多会出现滚动条,部分客户端下滚动条与彩色文字叠加出现显示错位,拆分多个对话分页,用下一页、上一页彩色选项做分页切换。
多语言客户端与旧客户端兼容测试,部分老旧客户端对彩色标记支持不完全,会出现颜色丢失,全部文字变为白色。可以准备两套对话分支,增加客户端版本判断,高版本客户端加载带多色选项的对话,低版本客户端加载无颜色标记的普通对话,保证所有客户端都可以正常查看和点击选择项。测试时切换不同客户端登录,核对色彩渲染和点击跳转,保证全部客户端都能正常使用NPC交互功能。
传奇NPC对话窗口多色文字选项编写与多选择分支脚本完整配置教程
来源:
作者:
点击:

