在传奇服务端架构中,为新地图添加安全区(Safe Zone)的核心配置文件位于 MapInfo.txt。该文件通常存放在服务端目录下的 M2Server 或 GameCenter 子目录中的 MapQuest_def 文件夹内,具体路径视引擎版本而定,常见位置为 D:MirServerM2ServerMapQuest_defMapInfo.txt 或 D:MirServerGameCenterMapQuest_defMapInfo.txt。部分精简版或特定引擎可能直接将其置于 M2Server 根目录下。
打开 MapInfo.txt 文件后,需找到对应新地图的名称定义行。地图定义格式通常为“地图编号 地图名称 属性标签”。若新地图尚未在此文件中定义,需先添加一行基础定义,例如“300 新大陆地图 noresign(norecall)”。定义完成后,在该行末尾通过分号追加安全区坐标参数。
安全区设置的标准语法格式为:SAFE x y radius。其中 x 代表横坐标,y 代表纵坐标,radius 代表安全区域的半径范围。例如,若要将新地图“300”的中心点(坐标 500, 500)设为半径 10 的安全区,则完整代码行应写为:“300 新大陆地图 noresign(norecall);SAFE 500 500 10”。多个安全区可在同一行内连续添加,只需用分号隔开,如“;SAFE 100 100 5;SAFE 900 900 8”。
坐标数值的获取需借助游戏内工具或编辑器。登录游戏进入新地图,使用命令“@pos”可查看当前站立点的精确坐标。或者使用地图编辑器(如 Wil 编辑器配套的 MapEdit 工具)打开对应的地图文件(通常在 Map 文件夹下,文件名为 300.map),直接在可视化界面中点击目标位置读取坐标值。确保输入的坐标未超出地图边界,否则安全区将无效。
除 MapInfo.txt 外,部分引擎版本还支持在 Mondef.txt 或特定的 SafeZone.txt 文件中独立定义安全区,但主流做法仍是在 MapInfo.txt 中直接标注。若修改后未生效,需检查文件格式是否正确,是否存在多余空格或中文标点符号。所有参数必须使用英文半角符号,分号后建议保留一个空格以增强可读性,但非强制。
保存文件后,必须重启 M2Server 控制台或执行热加载命令使配置生效。在 M2Server 控制台中,选择“控制”菜单下的“重新加载地图信息”选项,或在命令行输入“ReloadMapInfo”指令。若服务端未报错且日志显示加载成功,则新安全区已激活。玩家进入该坐标范围内,将不再受到任何怪物攻击,也无法进行 PK 行为,屏幕上方通常会显示“安全区”提示字样。
若需设置多个不同功能的安全区,如新手村保护、交易专区或 Boss 刷新点外围缓冲带,可重复上述步骤,在同一地图行内添加多组 SAFE 参数。半径数值决定了保护范围的大小,数值越大,覆盖区域越广。对于大型活动地图,建议设置多个分散的小型安全区,避免单点拥堵。
注意事项包括:坐标原点通常位于地图左上角,向右为 X 轴正方向,向下为 Y 轴正方向。部分老版本引擎对安全区数量有限制,单地图不超过 10 个。若地图文件本身损坏或未正确导入服务端,即使文本配置正确也无法生成安全区。务必确认 Map 文件夹下存在对应编号的地图文件,且文件名与 MapInfo.txt 中的编号一致。
调试过程中,若发现安全区位置偏移,可微调坐标数值再次重载。若玩家反映在安全区内仍受攻击,检查是否开启了“全局PK”模式或特定行会战规则覆盖了安全区设定。某些特殊脚本可能会强制移除安全区状态,需排查关联的 QManage.txt 或地图触发脚本。
通过精准编辑 MapInfo.txt 文件,配合正确的坐标数据与重载操作,即可在任何新添加的地图中灵活部署安全区,为玩家提供必要的保护空间,规范游戏秩序,提升用户体验。这一过程无需复杂编程,仅需掌握文本编辑规范与坐标定位技巧即可完成。

