传奇单机版架设没守卫按GuardList与MonGen排查修复

来源: 作者: 点击:
传奇单机版进游戏发现比奇、土城、沙巴克门口没有弓箭守卫、刀卫、枪卫,先分清是“固定守卫NPC没刷”还是“城堡守卫雇不出来”,两类走不同文件。

固定守卫(城镇门口站岗那种)由 GuardList.txt 控制。路径在 Mir200\Envir\GuardList.txt,M2 启动时直接读这个文件把守卫摆在地图坐标上。文件缺失或为空就会没守卫,M2 日志里常伴随 Code=-1 报错。
打开 GuardList.txt,标准格式是:
地图号 坐标X 坐标Y 怪物名称 范围 数量 刷新时间
例:0 600 576 弓箭守卫 0 1 10
0 是比奇省,600 576 是门口坐标,弓箭守卫必须和 Monster.DB 里的名字一字不差。写完保存,M2 控制台输 @ReloadGuard 或重启 M2 生效。如果文件存在但仍没守卫,检查地图号是否在 MapInfo.txt 里存在、坐标是否落在禁止刷怪区(MapInfo 里该地图行带了 NODEARTH 或 NOGUARD 标记就不刷)。

城堡类守卫(沙巴克弓箭手、盟重城堡刀卫)不走 GuardList,走 Castle 目录。Mir200\Envir\Castle\CastleList.txt 里每一行对应一个城堡,格式:
城堡ID 城堡名 地图号 弓箭手数量 守卫怪物ID 守卫怪物ID
例:1 沙巴克城堡 3 1001 1002
这里 1001、1002 是 Monster.DB 里弓箭手和守卫的怪物Idx。如果 CastleList.txt 缺失、ID 填错、或者 Monster.DB 里没有 1001/1002 这两条,M2 启动会报“城堡初始化失败”,皇宫内外都不会有守卫。
修复办法:打开 Monster.DB(DBC2000 里 HeroDB 的 Monster 表),确认有“弓箭手”“守卫”“刀卫”“枪卫”这些记录,Idx 和 CastleList 里对得上;没有就照同版本完整端抄一条,Race 填对应攻击类(刀卫/枪卫一般 19 或 47 系),RaceImg 别填 0,填 0 怪物站着不动不攻击。

如果守卫模型看不见但 M2 日志显示已刷新,是客户端补丁问题。弓箭守卫、刀卫枪卫的素材在 NPC.wzl 或 Monster.wzl 里,单机用的客户端补丁包必须包含这些索引。GOM/GEE 引擎开微端时,补丁要传进 UpdateServer 对应目录,serverinfo.txt 填 127.0.0.1;填错微端 IP 客户端就加载不到模型,看起来像没守卫。

另两类容易混的情况:
一是 GM 隐身。用权限 10 的 GM 号开了 @隐身 或管理员隐身模式,怪物守卫看到 GM 不攻击也不显血,退出隐身即正常,不是配置错。
二是 MonGen.txt 被改。有的版本把城镇守卫写进 MonGen 做定时刷新,路径 Mir200\Envir\MonGen.txt,格式“地图号 最小X 最大X 最小Y 最大Y 怪物名 范围 数量 间隔秒”,如果被精简版删了比奇 0 地图的弓箭守卫行,也会没怪,补回去重启即可。

排错顺序:进游戏 @map 看当前地图号 → 关 M2 查 GuardList.txt 有无该行地图的守卫 → 查 Castle\CastleList.txt 城堡 ID 对应 → 开 DBC2000 核对 Monster.DB 名字/Idx/Race → 起 M2 看启动日志有无 Load Guard 报错 → 客户端清微端缓存重登。单机环境 127.0.0.1 下不需要动网关,文件对上重启 M2 必然出守卫。