热血传奇卖装备NPC添加教程:MerChant.txt配置与脚本编写详解

来源: 作者: 点击:
想在热血传奇里加一个能收装备、能卖装备的NPC,关键就两个文件:MerChant.txt负责让NPC出现在地图上,market_def文件夹里的脚本文件决定它能干什么。下面把这两个环节拆开来讲,照着做就能跑起来。

**MerChant.txt里的一行配置怎么填**

先找到服务端里的这个文件,路径是D:\MirServer\Mir200\Envir\MerChant.txt。用记事本打开,在末尾另起一行,按格式添加配置。格式虽然不同引擎有细微差别,但核心字段是一样的:

> `脚本文件路径 地图编号 X坐标 Y坐标 NPC显示名称 外观参数 其他标志`

举个例子,想在盟重省(地图编号3)的330 350位置放一个叫“装备回收商”的NPC,外观用铁匠模型(代码0),配置行可以这样写:

> `装备回收商 3 330 350 装备回收商 0 0 0 0 0`

这里第一项“装备回收商”对应的是脚本文件名,地图编号3是盟重,坐标330和350是位置,后面的0 0 0 0 0分别控制方向、外观、是否沙城NPC这些细节,一般保持默认就行。

如果想给NPC用特殊外观,可以改外观代码,比如0是铁匠,1是长者,11是屠夫,15是常见的NPC样子。另外如果NPC要放在某个子目录下,格式会变成“目录名/文件名”,比如“庄园/装备回收商”,对应的脚本文件就要放在market_def下的庄园文件夹里。

**把NPC的收售功能写进脚本**

配置行写好后,下一步是让NPC真正能动起来。脚本文件放在D:\MirServer\Mir200\Envir\market_def文件夹里,文件名必须跟MerChant.txt里第一项对应,格式是“文件名-地图编号.txt”。比如上面配的“装备回收商 3”,脚本文件就得叫“装备回收商-3.txt”。

一个能收装备的脚本,框架大概长这样:

```
[@main]
您好,我这里回收各种装备,也出售一些基础物品。\
请选择你要做的事情:\ \
<回收装备/@回收> <购买物品/@购买>\
<离开/@exit>

[@回收]
#IF
#SAY
把你要卖的装备放在背包里,选对应的类别。\
请选择回收类型:\ \
<武器类/@回收武器> <首饰类/@回收首饰>\
<返回/@main>

[@回收武器]
#IF
#ACT
GIVE 金币 10000
#SAY
回收成功,获得10000金币。\
<继续回收/@回收> <返回首页/@main>
```

上面的例子只是个演示框架,实际回收脚本需要配合Take命令拿走玩家背包里的物品,再用Give给金币。具体的物品名称和价格,要写进多个分支判断里,每个装备写一条检测和回收逻辑。

**修改后让NPC生效**

文件改完后,不需要重启整个服务端。在M2Server引擎控制台的菜单栏上点“控制”,然后选“重新加载所有NPC”,几秒钟后游戏里的NPC就会刷新出来。如果没看到NPC,检查一下地图编号和坐标有没有填错,另外确保服务端里的地图确实支持在那个坐标站人。

**把NPC做成“能卖装备”的商店类型**

如果想让NPC直接变成一个装备商店,而不是通过脚本用金币换装备,需要在MerChant.txt里给NPC添加“商店类型”和“价格比例”参数。在配置行的后面加上`%`符号和数字,比如`%100`表示原价收购,`%150`表示1.5倍价格收购。然后指定这个NPC是哪种类型的商店,比如兵器店、戒指店、衣服店。对应的脚本文件里要写清楚这个NPC属于哪类店铺,玩家点开就可以直接把背包里的对应类型装备拖进去卖掉,跟系统自带的商店NPC一样。