传奇单机版上线自动绕圈传送原因 下线坐标触发回城脚本与MapCell传送格排查修复

来源: 作者: 点击:
这是服务端脚本或地图单元格设定导致的,和客户端没关系。角色一上线服务端就执行了一段传送命令,最常见有四种情况:

一、下线坐标被写进回城/回主城脚本触发
很多版本在 QFunction-0.txt 或 QManage.txt 里写了 [@Login] 段,包含判断下线地图并自动传回安全区、主城或回血池的逻辑。比如:

[@Login]
#IF
EQUAL OLDMapID 3
#ACT
MAPMOVE 3 330 330

如果你上次下线正好在盟重(地图ID通常是3),上线时脚本反复判断符合条件就连刷 MAPMOVE 或 MOV 命令,就会出现"站在原地被不停传送到固定坐标",看起来像绕圈传送。部分脚本还带延时循环检测,每秒执行一次就更明显。

修复方法:
用 Notepad++ 打开 MirServer\Mir200\Envir\QuestDiary\ 下所有文件夹中的 QFunction-0.txt 和 QManage.txt,搜索 [@Login] 段,找到含有 MAPMOVE、MOV、GOTO、Call 等传送指令且判断旧地图的行,整段暂时注释掉(行首加 ;)保存,然后在 M2Server 点"重新加载脚本"或重启 M2Server 再登录测试。如果不再乱传说明就是这段登录触发脚本的问题,按需修改条件(如加判断 IsNewHuman 或检测首次登录标志)而不是完全删掉。

二、上线点踩中地图传送格(MapCell/MapFlag)
传奇地图文件(.map)里可以埋设特殊单元格,角色踏入就执行传送到另一地图坐标,部分老版本地图盟重安全区边缘或下线点恰好被刷了 CellType=传送格。你上线后角色微调站立位置(部分引擎自动做微小坐标校正)触发了该格子的传送,传完又落回附近再次触发,形成循环绕圈。

修复方法:
用 WIL编辑器 或 MapEditor(如 Legend Map Editor、MapEdit)打开 MirServer\Mir200\Map\ 对应的盟重地图文件(通常 3.map 或 012.map 之类),查看角色下线坐标处是否有红色或特殊标记的传送单元,删掉或改成普通地面格后保存,重启服务端。不会用地图编辑器可临时换个下线点——在!Setup.txt 或 M2参数里把"初始城市/回城地图坐标"改成盟重其他安全区格子(如 300 300 改 310 310)避开那个格。

三、机器人脚本定时把你拉回某点
Robot_def\AutoRunRobot.txt 里如果有定时执行检测在线玩家坐标并强制 MAPMOVE 回某点的脚本(部分版本用来防止卡死或做自动回安全区功能),且条件写得宽松(如检测在线即执行),也会每秒把你传一下。

修复方法:
打开 Robot_def\AutoRunRobot.txt,搜索含 MAPMOVE、MOV 的定时行,注释掉保存,再到 RobotManage.txt 找到对应 [@段] 同样注释,重载机器人脚本测试。

四、假人/陪玩脚本误绑到你角色
极少数合击假人版把假人AI脚本写成检测同名角色上线后执行移动模拟,碰巧你建的角色名和 DummyNameList.txt 中某个假人名一致,被当成假人控制不断发传送指令。

修复方法:
检查 MirServer\Mir200\Envir\DummyNameList.txt,看有没有和你游戏角色一模一样的名字,有则删掉那行并重载假人列表;或新建一个完全不同名字的角色登录验证。

排查顺序建议
先注释 QFunction-0.txt 的 [@Login] 段重载脚本——这是90%情况的元凶。还有问题再用地图编辑器查传送格,最后排查机器人脚本和假人重名。改完记得重新加载脚本或重启 M2Server 使修改生效。