一、NPC文件结构与配置基础
添加NPC涉及服务端内的两个核心位置:配置文件MerChant.txt存放NPC的位置、外观等基本信息,脚本目录market_def存放NPC的功能脚本。这两个文件共同决定NPC在地图上是否出现、长什么样子、点了之后能干什么。
MerChant.txt位于D:\mirserver\Mir200\Envir\目录下,用记事本打开即可编辑。每一行代表一个NPC,配置行由多个字段组成。不同引擎(GOM、GEE、HERO等)字段顺序略有差异,但核心要素一致。标准格式为:
NPC脚本文件路径地图代码X坐标Y坐标NPC名称方向外观代码沙城属性移动参数
二、逐字段详解MerChant.txt配置行
第一个字段决定脚本文件的存放路径与文件名。格式为“文件夹名/文件名”或直接写文件名。例如:
-“盟重省_传送员”:表示脚本文件直接放在market_def目录下,文件名为“盟重省_传送员-地图代码.txt”
-“庄园/会员领取”:表示脚本文件放在market_def\庄园\子目录下,文件名为“会员领取-地图代码.txt”
第二个字段“地图代码”填写NPC要出现的地图编号。比奇省地图代码为0,盟重省为3。地图代码可在MapInfo.txt中查得。
第三、四个字段为X坐标与Y坐标,决定NPC在地图上的精确位置。确保坐标点位于可站立的地面格子上,否则NPC不会显示。
第五个字段“NPC名称”是游戏内玩家看到的显示名称,可自由填写。
第六个字段“方向标识”取0至7的数字,控制NPC面朝方向,一般填0即可。
第七个字段“NPC外观代码”决定NPC的模型样子。不同数字对应不同造型,例如8对应比奇丞相造型,15为常用NPC造型。外观代码可在引擎说明书或网上查阅对照表。
第八个字段“沙城属性”,1表示该NPC属于沙巴克城堡,0表示不属于。
第九、十个字段控制NPC是否自动移动及移动间隔,通常填00表示不移动。
完整配置示例:
回收商人3330330装备回收员08000
这行表示在盟重省330330位置出现一个名为“装备回收员”的NPC,使用比奇丞相外观,不移动。对应的脚本文件应为D:\mirserver\Mir200\Envir\market_def\回收商人-3.txt。
三、编写NPC功能脚本:让NPC收装备给钱
脚本文件存放在D:\mirserver\Mir200\Envir\market_def\目录下,文件命名必须遵循“NPC名称-地图代码.txt”的规则。例如上例中回收商人位于地图3,脚本文件就命名为“回收商人-3.txt”。
用记事本创建该文件,写入以下脚本结构。一个典型的回收装备脚本包含三个部分:主界面显示、回收执行逻辑、给予奖励。
主界面脚本以[@main]开头,使用#SAY指令输出文字,\表示换行,<>内为可点击按钮:
[@main]
欢迎光临装备回收站。\
我可以帮你把没用的装备换成金币。\
请选择你要回收的装备类型:\
<回收祖玛装备/@回收祖玛>\
<回收赤月装备/@回收赤月>\
回收执行逻辑使用#IF条件判断与#ACT执行指令。检测玩家背包是否有指定装备,若有则执行回收操作并给予金币:
[@回收祖玛]
#IF
checkitem力量戒指1
#ACT
take力量戒指1
give金币50000
#SAY
回收成功,获得50000金币。\
<继续回收/@main>\
#ELSESAY
你背包里没有祖玛装备。
若回收多件装备,可写多条checkitem和take指令,或使用循环检测。#IF与#ACT之间留空表示无条件执行。
四、NPC的分类:交易类与管理类
MerChant.txt中的NPC属于“交易型NPC”或“普通功能NPC”,这类NPC修改后可通过M2Server的“重新加载NPC”功能生效,无需重启服务器。
还有一类NPC记录在Npcs.txt文件中,脚本文件存放在NPCS_def目录下,属于“管理类NPC”(如比奇国王)。这类NPC修改后必须重启服务器才能生效。添加普通卖装备NPC时,只需操作MerChant.txt即可。
五、测试与生效
在服务端运行状态下,完成MerChant.txt和脚本文件的新增或修改后,无需重启整个服务端。打开M2Server程序窗口,点击菜单栏“控制”→“重新加载”→“重新加载所有NPC”,新增或修改的NPC便会立即出现在游戏地图上。进入游戏走到坐标点附近即可看到新NPC,点击测试回收功能是否正常运行。
添加NPC涉及服务端内的两个核心位置:配置文件MerChant.txt存放NPC的位置、外观等基本信息,脚本目录market_def存放NPC的功能脚本。这两个文件共同决定NPC在地图上是否出现、长什么样子、点了之后能干什么。
MerChant.txt位于D:\mirserver\Mir200\Envir\目录下,用记事本打开即可编辑。每一行代表一个NPC,配置行由多个字段组成。不同引擎(GOM、GEE、HERO等)字段顺序略有差异,但核心要素一致。标准格式为:
NPC脚本文件路径地图代码X坐标Y坐标NPC名称方向外观代码沙城属性移动参数
二、逐字段详解MerChant.txt配置行
第一个字段决定脚本文件的存放路径与文件名。格式为“文件夹名/文件名”或直接写文件名。例如:
-“盟重省_传送员”:表示脚本文件直接放在market_def目录下,文件名为“盟重省_传送员-地图代码.txt”
-“庄园/会员领取”:表示脚本文件放在market_def\庄园\子目录下,文件名为“会员领取-地图代码.txt”
第二个字段“地图代码”填写NPC要出现的地图编号。比奇省地图代码为0,盟重省为3。地图代码可在MapInfo.txt中查得。
第三、四个字段为X坐标与Y坐标,决定NPC在地图上的精确位置。确保坐标点位于可站立的地面格子上,否则NPC不会显示。
第五个字段“NPC名称”是游戏内玩家看到的显示名称,可自由填写。
第六个字段“方向标识”取0至7的数字,控制NPC面朝方向,一般填0即可。
第七个字段“NPC外观代码”决定NPC的模型样子。不同数字对应不同造型,例如8对应比奇丞相造型,15为常用NPC造型。外观代码可在引擎说明书或网上查阅对照表。
第八个字段“沙城属性”,1表示该NPC属于沙巴克城堡,0表示不属于。
第九、十个字段控制NPC是否自动移动及移动间隔,通常填00表示不移动。
完整配置示例:
回收商人3330330装备回收员08000
这行表示在盟重省330330位置出现一个名为“装备回收员”的NPC,使用比奇丞相外观,不移动。对应的脚本文件应为D:\mirserver\Mir200\Envir\market_def\回收商人-3.txt。
三、编写NPC功能脚本:让NPC收装备给钱
脚本文件存放在D:\mirserver\Mir200\Envir\market_def\目录下,文件命名必须遵循“NPC名称-地图代码.txt”的规则。例如上例中回收商人位于地图3,脚本文件就命名为“回收商人-3.txt”。
用记事本创建该文件,写入以下脚本结构。一个典型的回收装备脚本包含三个部分:主界面显示、回收执行逻辑、给予奖励。
主界面脚本以[@main]开头,使用#SAY指令输出文字,\表示换行,<>内为可点击按钮:
[@main]
欢迎光临装备回收站。\
我可以帮你把没用的装备换成金币。\
请选择你要回收的装备类型:\
<回收祖玛装备/@回收祖玛>\
<回收赤月装备/@回收赤月>\
回收执行逻辑使用#IF条件判断与#ACT执行指令。检测玩家背包是否有指定装备,若有则执行回收操作并给予金币:
[@回收祖玛]
#IF
checkitem力量戒指1
#ACT
take力量戒指1
give金币50000
#SAY
回收成功,获得50000金币。\
<继续回收/@main>\
#ELSESAY
你背包里没有祖玛装备。
若回收多件装备,可写多条checkitem和take指令,或使用循环检测。#IF与#ACT之间留空表示无条件执行。
四、NPC的分类:交易类与管理类
MerChant.txt中的NPC属于“交易型NPC”或“普通功能NPC”,这类NPC修改后可通过M2Server的“重新加载NPC”功能生效,无需重启服务器。
还有一类NPC记录在Npcs.txt文件中,脚本文件存放在NPCS_def目录下,属于“管理类NPC”(如比奇国王)。这类NPC修改后必须重启服务器才能生效。添加普通卖装备NPC时,只需操作MerChant.txt即可。
五、测试与生效
在服务端运行状态下,完成MerChant.txt和脚本文件的新增或修改后,无需重启整个服务端。打开M2Server程序窗口,点击菜单栏“控制”→“重新加载”→“重新加载所有NPC”,新增或修改的NPC便会立即出现在游戏地图上。进入游戏走到坐标点附近即可看到新NPC,点击测试回收功能是否正常运行。

