当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

传奇添加自定义NPC全流程:MerChant配置与脚本编写步骤

热度:
服务端里加一个自定义NPC,本质是在两个地方写东西。一个是MerChant.txt里登记NPC的坐标和外观,另一个是在market_def目录里写NPC的点选脚本。两个文件对不上号或者路径写错了,游戏里要么看不到人,要么点了没反应。

**MerChant.txt的字段结构**

MerChant.txt在MirServer\Mir200\Envir目录下。每行一个NPC,字段用空格隔开,顺序不能乱。标准格式是:

NPC名称地图编号X坐标Y坐标外观代码移动标记脚本文件名是否可移动移动间隔

举个例子,在比奇安全区加一个装备回收NPC,行写成这样:
装备回收0330270800\装备回收-3.txt00

NPC名称填什么游戏里显示什么。地图编号0代表比奇省,3代表盟重省。X和Y是坐标值,刷之前确认坐标点不是障碍物。外观代码决定NPC长什么样,8是比奇老兵造型,0是普通村民造型。

移动标记固定写0。脚本文件名的写法有讲究,前面带目录的相对路径,实际脚本放在market_def目录里。上面例子里的0\装备回收-3.txt,实际路径是market_def\0\装备回收-3.txt。文件名里的-3指的是NPC在地图3号盟重省,但地图编号已经在字段里写过了,这个后缀只是方便GM区分位置,系统读取的时候不依赖它。

可移动和移动间隔这两个字段在GOM引擎和GEE引擎里功能有差异,大部分版本写00就行。

**market_def脚本的编写结构**

脚本文件放在MirServer\Mir200\Envir\market_def目录下,路径和MerChant.txt里写的一致。脚本开头是[@MAIN]段,这是NPC被点击时最先执行的部分。#SAY后面跟的就是对话框里显示的内容,普通文本直接写,可点击的按钮用尖括号包起来。

[@装备回收]
#SAY
点击下面按钮进行回收操作:\
<回收祖玛装备/@回收祖玛>\
<回收赤月装备/@回收赤月>\
<回收全部/@回收全部>\

#ACT是执行脚本命令的段。不同功能写在独立的触发段里,比如[@回收祖玛]里面写take命令回收指定物品,然后give给金币或者经验。

**GOTO跳转的写法**

多个功能页面之间切换用GOTO命令。点完回收按钮之后想回到主菜单,在回收完成段里写GOTO@MAIN就行。要特别注意脚本里不能出现死循环,GOTO来回跳的次数多了引擎会报脚本执行超时。

**NPC外观代码对照表**

比奇老兵是8,服装店老板娘是7,仓库管理员是9,药店老板是1,武器店老板是0,饰品店老板是3,书店老板是4,杂货铺老板是5,传送员用的外观代码在6左右腐,具体数值取决于你用的版本补丁。

外观代码在MerChant.txt里设置,同一个代码在不同补丁版本里显示的人物造型可能不一样。

**常见配置错误**

地图编号写错。比奇是0,盟重是3,苍月是5,封魔是4。写成8或者10这种不存在的编号,NPC刷在虚空里看不见。

坐标重叠。两个NPC挤在同一个坐标点,只有一个能显示出来。用@地图命令进游戏走到目标坐标点确认位置是空地再刷NPC。

脚本文件名中的目录前缀写错。MerChant.txt里写0\装备回收-3.txt,实际上market_def目录里没有0这个子文件夹,文件放在market_def根目录下,读不到脚本NPC点了没反应。

编码问题。脚本文件用UTF-8编码保存,游戏里中文显示乱码或者按钮点不了。改成ANSI编码保存再重载NPC脚本就能恢复正常。
[顶部]