单机版传奇(GOM/GEE/Hero/Blue引擎)一到固定时间就弹出"沙巴克攻城战开始"并自动刷弓箭手、城门关闭,是因为服务端内置了定时攻城脚本或M2的攻城事件开关没关。去掉方法分三步,按引擎版本对号入座。
一、M2Server关闭攻城事件(最直接)
打开M2Server控制台→选项→功能设置→攻城战设置(部分版本在"参数设置—城堡管理"或"游戏控制—城堡")。
•找到"攻城战时间"或"自动攻城"选项,把星期几、几点几分那一行全部清空或改为00:00:00。
•取消勾选"启用自动攻城"、"到达时间自动开始攻城"、"攻城期间自动关闭城门"。
•部分版本在"查看—城堡信息"里有"攻城区间",把起始日和结束日设成相同(如1月1日到1月1日),或直接清空日期段。
点保存,重启M2Server。这是最根本的方法,改完后不会再自动触发。
二、修改机器人定时脚本(防残留触发)
即使关了M2攻城事件,部分版本还留有机器人脚本定时触发,需要手动清理。
打开Mir200\Envir\Robot_def\AutoRunRobot.txt,查找与攻城相关的行,如:
AutoRunNPCDAY1@StartCastleWar
AutoRunNPCWEEK220:00@攻城开始
AutoRunNPCTIME20:00@城堡争夺
在这些行前面加;注释掉(分号表示整行禁用),或者直接删除整行。
然后打开RobotManage.txt,找到对应的[@StartCastleWar][@攻城开始][@城堡争夺]等段,全部删除或加;注释掉。保存后在M2点"重新加载机器人脚本"。
三、清除城堡归属与NPC脚本(彻底断绝)
如果前两步做完,假人还是会莫名其妙往沙巴克跑,可能是城堡归属脚本在作祟。
•进入Mir200\Envir\Market_Def\目录,找到与沙巴克相关的NPC脚本文件,如CastleMaster-0.txt(沙城管理员)、SabukWallGate-0.txt(城墙守卫)、GuardNpc-0.txt等,在M2上把这些NPC禁用或删除对应文件。
•在M2Server→查看→城堡信息→把"占领行会"设为空(无行会占领),保存后沙巴克处于无主状态,不会触发攻防逻辑。
•如果版本带了"自动夺城"功能(部分合击版特有),在QFunction-0.txt或QManage.txt里搜索@GetCastle、@CastleWar、@SabukWar等关键字,找到后整段删除或注释掉。
四、针对合击假人版的特殊情况
合击假人版本常自带"假人自动攻沙"脚本,让假人定时去攻城。这种情况除了上面的通用操作,还要额外处理:
•在DummyConfig\目录下找假人的AI配置文件(如假人001.txt),打开查看是否有AttackSabukWall=1或AutoCastleWar=1之类的参数,改成0或删除该行。
•在QManage.txt的[@Login]段,检查是否有假人登录后自动加入攻城阵营的命令,如CASTLEWARJOIN、SABUKWARJOIN等,找到后删除。
•在RobotManage.txt搜索"攻沙""攻城""城堡"等关键词,把所有相关段注释掉。
五、验证是否已取消
重启M2Server和游戏服务端,进游戏观察。正常现象:沙巴克城门一直开着,弓箭手不刷,NPC不喊话,右上角没有攻城倒计时。如果还有假人在固定时间往沙巴克聚集,说明还有残留脚本没清,回到第二步和第三步再仔细检查一遍RobotManage.txt和QFunction-0.txt。
六、常见遗漏点
•改了M2攻城设置但没点"保存"或没重启M2,导致改动没生效。
•删了AutoRunRobot.txt的行但忘了删RobotManage.txt里对应的[@xxx]段,脚本执行时报错但不影响,可能还会触发。
•版本用了D:\MirServer\Mir200\Castle\下的Castle.txt或SabukW.txt配置攻城时间,需要在文本里直接改StartDay=0EndDay=0或清空时间字段。
•GEE引擎部分版本在"M2—列表信息二—攻城设置"里有个"攻城周期"也要清空,不止是功能设置里的时间。
按M2关事件→清机器人脚本→清城堡归属的顺序操作,合击假人版再加一步检查假人AI配置和攻沙相关命令,重启服务端后自动攻城就会彻底消失。
一、M2Server关闭攻城事件(最直接)
打开M2Server控制台→选项→功能设置→攻城战设置(部分版本在"参数设置—城堡管理"或"游戏控制—城堡")。
•找到"攻城战时间"或"自动攻城"选项,把星期几、几点几分那一行全部清空或改为00:00:00。
•取消勾选"启用自动攻城"、"到达时间自动开始攻城"、"攻城期间自动关闭城门"。
•部分版本在"查看—城堡信息"里有"攻城区间",把起始日和结束日设成相同(如1月1日到1月1日),或直接清空日期段。
点保存,重启M2Server。这是最根本的方法,改完后不会再自动触发。
二、修改机器人定时脚本(防残留触发)
即使关了M2攻城事件,部分版本还留有机器人脚本定时触发,需要手动清理。
打开Mir200\Envir\Robot_def\AutoRunRobot.txt,查找与攻城相关的行,如:
AutoRunNPCDAY1@StartCastleWar
AutoRunNPCWEEK220:00@攻城开始
AutoRunNPCTIME20:00@城堡争夺
在这些行前面加;注释掉(分号表示整行禁用),或者直接删除整行。
然后打开RobotManage.txt,找到对应的[@StartCastleWar][@攻城开始][@城堡争夺]等段,全部删除或加;注释掉。保存后在M2点"重新加载机器人脚本"。
三、清除城堡归属与NPC脚本(彻底断绝)
如果前两步做完,假人还是会莫名其妙往沙巴克跑,可能是城堡归属脚本在作祟。
•进入Mir200\Envir\Market_Def\目录,找到与沙巴克相关的NPC脚本文件,如CastleMaster-0.txt(沙城管理员)、SabukWallGate-0.txt(城墙守卫)、GuardNpc-0.txt等,在M2上把这些NPC禁用或删除对应文件。
•在M2Server→查看→城堡信息→把"占领行会"设为空(无行会占领),保存后沙巴克处于无主状态,不会触发攻防逻辑。
•如果版本带了"自动夺城"功能(部分合击版特有),在QFunction-0.txt或QManage.txt里搜索@GetCastle、@CastleWar、@SabukWar等关键字,找到后整段删除或注释掉。
四、针对合击假人版的特殊情况
合击假人版本常自带"假人自动攻沙"脚本,让假人定时去攻城。这种情况除了上面的通用操作,还要额外处理:
•在DummyConfig\目录下找假人的AI配置文件(如假人001.txt),打开查看是否有AttackSabukWall=1或AutoCastleWar=1之类的参数,改成0或删除该行。
•在QManage.txt的[@Login]段,检查是否有假人登录后自动加入攻城阵营的命令,如CASTLEWARJOIN、SABUKWARJOIN等,找到后删除。
•在RobotManage.txt搜索"攻沙""攻城""城堡"等关键词,把所有相关段注释掉。
五、验证是否已取消
重启M2Server和游戏服务端,进游戏观察。正常现象:沙巴克城门一直开着,弓箭手不刷,NPC不喊话,右上角没有攻城倒计时。如果还有假人在固定时间往沙巴克聚集,说明还有残留脚本没清,回到第二步和第三步再仔细检查一遍RobotManage.txt和QFunction-0.txt。
六、常见遗漏点
•改了M2攻城设置但没点"保存"或没重启M2,导致改动没生效。
•删了AutoRunRobot.txt的行但忘了删RobotManage.txt里对应的[@xxx]段,脚本执行时报错但不影响,可能还会触发。
•版本用了D:\MirServer\Mir200\Castle\下的Castle.txt或SabukW.txt配置攻城时间,需要在文本里直接改StartDay=0EndDay=0或清空时间字段。
•GEE引擎部分版本在"M2—列表信息二—攻城设置"里有个"攻城周期"也要清空,不止是功能设置里的时间。
按M2关事件→清机器人脚本→清城堡归属的顺序操作,合击假人版再加一步检查假人AI配置和攻沙相关命令,重启服务端后自动攻城就会彻底消失。

