一、找到NPC核心配置文件
路径:服务端 `Mir200\Envir\Merchant.txt`
这是所有NPC的户籍档案,用记事本打开后格式如下:
```
盟重省 333 333 传送员 0 3 0 0 2
(地图名 X坐标 Y坐标 NPC名称 外观编号 方向 脚本编号 是否自动寻路)
```
关键参数:
• 外观编号:第5列数字决定NPC形象(传送员默认是0=老头)
• 坐标:第2、3列调整NPC站立位置
---
二、修改NPC外观编号(变石头关键)
1. 在Merchant.txt中找到要改的NPC行
2. 将第5列的 外观编号 改为石头的编码(常用石头编码:423~435)
```
盟重省 333 333 传送员 430 3 0 0 2 ← 外观改为430号(巨石)
```
---
三、准备石头素材(3种方法)
| 方法 | 操作步骤 | 适用场景 |
|------|---------|--------|
| 1. 调用客户端自带素材 | 查看 `Data\Npc.wil` 文件中的石头编号(需用WIL编辑器打开) | 原版客户端已有石头 |
| 2. 自定义新增素材 | 用PS制作50x50像素BMP图,导入到 `Data\Npc.wil` 空白位置 | 完全原创造型 |
| 3. 替换已有素材 | 将自制石头图覆盖 `Npc.wil` 中430号的位置 | 保留原编号 |
避坑指南:
• 必须保存为8位色BMP格式
• 素材尺寸需与NPC动作帧数匹配(静态石头只需1帧)
---
四、调整NPC位置(防止穿模)
1. 用 地图编辑器 打开 `Map\盟重省.map`
2. 在坐标(333,333)处检查地面是否允许放置物体
3. 在Merchant.txt中微调坐标:
```
盟重省 335 335 传送员 430 3 0 0 2 ← 右移2格避开树木
```
---
五、生效与测试
1. 修改后保存Merchant.txt
2. 重启服务端(必须彻底关闭M2再启动)
3. 客户端需同步更新(若改了Npc.wil需打包成补丁)
4. 游戏中输入 `@清除地面` 刷新NPC
---
六、高阶技巧
1. 动态悬浮石头:
在 `Market_Def\传送员.txt` 脚本开头添加:
```lua
#ACT
SetIcon 0 430 1 1 -20 ← 设置悬浮高度
```
2. 点击特效:
在QFunction-0.txt中添加触发:
```lua
[@点击传送员]
#ACT
PlayEffect 3 430 10 ← 点击时触发碎石特效
```
---
七、常见问题排查
| 问题现象 | 解决方案 |
|---------|---------|
| NPC变成透明人 | 检查Npc.wil编号是否与服务端设置一致 |
| 石头显示错乱 | 确认BMP素材未超过文件最大帧数限制 |
| NPC无法对话 | 脚本路径错误,检查Merchant.txt第7列脚本编号 |
---
按照以上步骤操作,你可以把任何NPC改成宝箱、神兽甚至动态特效。记得修改前备份 `Merchant.txt` 和 `Npc.wil` 文件,避免改错后无法恢复!

