手把手教你给传奇服务端加传送NPC!手把手实现「土城→尸王殿」秒传功能

来源: 作者: 点击:
一、准备工作:找到关键文件
1.1必须定位的2个核心文件
•NPC配置文件:`D:\MirServer\Mud2\NPC\npc.txt`(所有NPC数据来源)

•地图脚本文件:`D:\MirServer\Mud2\Map\MapInfo.txt`(地图坐标定义)


1.2提前备份文件
在修改任何文件前,务必将这两个文件复制到桌面备份(防止改错导致游戏崩溃)

---

二、具体操作步骤(附代码示例)
2.1在土城添加传送NPC
1.打开npc.txt文件
用记事本打开`npc.txt`,在文件末尾添加以下代码:
```txt
##土城传送员101
NPCName=传送员小明
MapName=比奇省
X=327
Y=345
Dir=0
Script=传送至尸王殿
```

参数说明:
•`MapName`:必须与地图文件中的名称完全一致(比奇省=土城)

•`X/Y`:用官方地图工具查看土城中心点坐标(默认327345)

•`Script`:对应后续脚本名称


2.保存文件(切记不要用记事本直接保存,改用Notepad++避免乱码)

2.2编写传送脚本
1.打开MapInfo.txt
找到尸王殿地图定义段落(通常名为`骷髅洞穴`或`鬼王殿`),复制其地图ID。例如:
```txt
[Map003]
Name=骷髅洞穴
StartX=100
StartY=100
```

2.创建新脚本文件
在服务端目录新建`D:\MirServer\Mud2\Script\传送至尸王殿.txt`,写入以下代码:
```lua
--传送至尸王殿
functionOnClick()
localmapid=GetMapID("骷髅洞穴")--对应MapInfo.txt中的地图名称
localx=100--尸王殿出生点X坐标
localy=100--尸王殿出生点Y坐标
PlayerSetPos(mapidxy)
SendMsg(PlayerID"[系统]已传送到尸王殿!")
end
```

---

三、测试与验证
3.1重启服务端
依次重启以下服务:
1.DBSrv.exe(数据库服务)
2.LoginSrv.exe(登录服务)
3.M2Server.exe(游戏主服务)

3.2客户端验证
1.进入土城(坐标327345附近)
2.找到「传送员小明」NPC对话
3.观察是否弹出传送提示并到达目标位置

---

四、常见问题排查
4.1NPC不显示
•检查`npc.txt`文件编码是否为ANSI(用Notepad++转换)

•确认NPC坐标是否在土城可视范围内(建议X/Y在300-350之间)


4.2传送后卡进墙里
•在MapInfo.txt中确认目标地图的`StartX/Y`坐标是否在安全区域

•修改尸王殿出生点坐标为`x=150y=150`(通常更靠近入口)


4.3脚本报错
•检查脚本文件名是否与NPC配置中的`Script`参数完全一致

•确认`骷髅洞穴`地图名称与MapInfo.txt中的定义完全相同(包括标点符号)


---

五、进阶玩法:批量添加传送NPC
5.1创建传送列表
在`D:\MirServer\Mud2\Script\传送列表.txt`中编写:
```lua
--土城→沃玛寺庙
functionGoToWOM()
localmapid=GetMapID("沃玛寺庙")
PlayerSetPos(mapid200200)
end

--比奇→毒蛇山谷
functionGoToDSSG()
localmapid=GetMapID("毒蛇山谷")
PlayerSetPos(mapid5080)
end
```

5.2关联NPC菜单
修改`npc.txt`中的Script参数:
```txt
Script=菜单1|GoToWOM|GoToDSSG
```

---

六、注意事项
1.坐标获取工具:推荐使用「传奇地图编辑器2023」查看精确坐标
2.防刷机制:在脚本中加入冷却时间限制(例如每小时只能传送3次)
3.多开兼容:如果使用多开器,需在DBConfig.ini中设置`AllowMultiClient=1`

---

终极提示:所有地图名称、坐标参数必须与服务端实际数据完全一致。建议先用记事本搜索`骷髅洞穴`等关键词确认地图ID,避免手动输入错误。
[顶部]