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

热血传奇NPC添加教程:售卖装备功能与MerChant配置

热度:
NPC脚本文件的结构与存放位置

在热血传奇服务端里,NPC的外观和功能由两个文件共同决定。MerChant.txt负责NPC的刷新位置和外观显示,存放在MirServer\Mir200\Envir目录下。对应的脚本功能文件存放在MirServer\Mir200\Envir\Market_Def文件夹里,文件名格式是NPC名字-地图代码.txt。

添加售卖装备的NPC时,先确定这个NPC要放在哪个地图、哪个坐标点,然后决定它卖哪类物品,最后把配置写好。

MerChant.txt配置格式逐项拆解

打开MerChant.txt文件,每行代表一个NPC。格式由三部分组成,中间用空格隔开,顺序不能乱。

第一部分是NPC的显示信息和坐标。格式为:脚本文件名称地图编号X坐标Y坐标NPC外观代码。脚本文件名称不需要带.txt后缀,地图编号就是NPC所在的地图代码,比如盟重省是3,比奇省是0。X坐标和Y坐标是NPC在地图上的精确位置。

NPC外观代码决定玩家看到的NPC长什么样,比如武器店老板是0,服装店老板是1,药店老板是2,仓库管理员是3,杂货铺老板是4。具体外观代码对照表可以在引擎帮助文档里查到,也可以参考已有NPC的代码。

第二部分是NPC的刷新参数。格式为:方向是否固定刷新间隔是否沙巴克。方向指NPC面朝的方向,0到7共八个方向。是否固定填0或1,填1让NPC固定不移动。刷新间隔填0表示永久存在,填其他数字表示隔多久刷新一次。是否沙巴克填0或1,填1只在沙巴克攻城期间出现。

第三部分是NPC的额外标记。格式为:是否可移动是否允许点击是否显示名字。通常填三个0就够用,特殊情况按需调整。

添加售卖装备NPC的完整步骤

假设在盟重省安全区右侧坐标330:330位置添加一个专门售卖装备的NPC,使用武器店老板的外观。

第一步在MerChant.txt末尾新增一行:装备商人333033000000。这里的装备商人是脚本文件名,地图3是盟重省,330和330是坐标,0是武器店外观,后面三个0分别是方向、固定和刷新间隔。

第二步在Market_Def文件夹里新建一个文本文件,命名为装备商人-3.txt。注意横杠前面是NPC名字,横杠后面是地图代码,必须和MerChant.txt里写的一致。

第三步编辑装备商人-3.txt的脚本内容。一个售卖装备的NPC脚本需要包含几个基本段落:@main是主界面,点击不同选项跳转到对应的装备分类,每个分类下用@buy命令列出可购买的物品列表。

售卖脚本的写法

售卖列表写在@buy段落里,格式是一行一件物品,后面跟价格。例如裁决之杖5000000表示售价500万金币。可以按武器、衣服、首饰、特殊道具分类展示,每一类单独一个跳转标签。

武器类示例:
[@weapon]
#IF
#ACT
#SAY
武器列表:\
<购买裁决之杖/@buy_裁决之杖>5000000金币\
<购买屠龙/@buy_屠龙>10000000金币\
<返回主菜单/@main>

[@buy_裁决之杖]
#IF
#ACT
#SAY
确认购买裁决之杖吗?\
<确认/@buy裁决之杖><取消/@main>

[@buy裁决之杖]
#IF
CHECKGOLD5000000
#ACT
TAKE金币5000000
GIVE裁决之杖1
#SAY
交易完成。
#ELSESAY
金币不够。

脚本的#IF条件段用来检查玩家金币是否充足,#ACT段执行扣钱和给物品的操作。#SAY段显示提示信息,#ELSESAY段在条件不满足时显示另外的提示。

装备价格与商店回购的额外设置

如果想让NPC同时具备回收装备或者出售物品的功能,在脚本里添加[@sell]段落。写法是#IF#ACT#SAY后跟<出售/@sell>,然后接一个@getback跳转。回收价格写在对应物品的判断里,跟购买的逻辑相反,用CHECKITEM检查玩家包裹里有没有对应的装备,有的话TAKE装备然后GIVE金币。

NPC名字的颜色也可以在脚本里控制,在#SAY段用{FCOLOR/颜色代码}标注文字颜色,比如红色是{FCOLOR/249}。这样装备商人名字显示成醒目颜色,方便玩家在安全区里快速找到。
[顶部]