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

热血传奇添加售卖NPC:MerChant.txt与脚本完整配置

热度:
添加售卖装备的NPC需要先配置MerChant.txt文件,再编写对应的NPC脚本文本。MerChant.txt位于服务端Mir200\Envir目录下,每一行代表一个NPC的加载信息,字段顺序和分隔符必须严格遵循。

MerChant.txt的标准格式为:脚本名称地图编号X坐标Y坐标NPC名称外观代码方向是否可移动移动间隔。脚本名称对应Envir\Market_Def目录下的txt文件名,不带后缀。地图编号填写目标地图的编码,X和Y坐标确定NPC站立位置。NPC名称决定游戏内显示的名称。外观代码控制NPC模型样式,取值范围与数据库中的Appr字段一致。方向参数范围0到7,代表NPC面向的方向。是否可移动参数为0或1,1代表NPC可以随机移动位置。移动间隔单位为分钟,仅在可移动模式下生效。

配置示例:盟重土城添加武器商人,在MerChant.txt末尾新起一行写入"武器商人3330340武器店老板010"。这条配置表示脚本名为"武器商人",出现在3号地图的(330340)坐标,显示名称为"武器店老板",采用外观代码0的默认NPC模型,面向方向1,不可移动。

脚本文件存放于Market_Def文件夹,文件名为"武器商人.txt",与MerChant.txt中的脚本名称对应。脚本结构分为头部和功能段两个部分。头部使用@开头标识NPC名称,功能段通过[@main]作为主对话入口。售卖逻辑依赖于两个关键命令:#IF条件检测和#SAY输出对话内容,#ACT执行具体操作。

售卖装备的基础脚本框架:
```
[@main]
你好,需要买卖什么?\
<购买/@buy>\
<出售/@sell>

[@buy]
#SAY
选择你要购买的装备:\
<裁决之杖/@buy_weapon>\
<返回/@main>

[@sell]
#SAY
把要出售的装备放到背包,点击确认出售。\
<确认出售/@sell_confirm>
```

实际交易功能需要配合商店文件。商店文件位于Envir\BuyItemList目录,文件名与NPC名称一致,例如"武器店老板.txt"。文件内按行列出可出售的物品名称和单价,格式为"装备名称价格"。玩家购买时消耗游戏币获得物品,出售时将背包物品兑换为游戏币。

购买逻辑的完整实现需调用引擎的交易命令。在@buy_weapon段中写入TakeGold命令扣除金币,Give命令给予物品。出售逻辑通过CheckItem检测背包中是否存在指定物品,存在则TakeItem收回物品并GiveGold增加金币。为防止刷金漏洞,出售价格应设定为购买价格的10%至20%。货币单位统一使用金币,所有交易操作前检测背包格数防止物品溢出。修改MerChant.txt后需重启M2Server或使用重加载NPC命令使配置生效。
[顶部]