通过机器人脚本自动清除沙巴克占领信息,核心是利用传奇服务端的定时任务机制,在每天 0 点触发文件修改和系统命令。以下是分步骤的具体实现方法,适用于大多数主流私人服务器引擎(如 BLUE、LEGEND)。
一、先明确核心文件与原理
沙巴克的占领信息主要存储在两个位置,脚本需同时处理才能彻底清除:
配置文件:路径为MirServer\Mir200\Castle\Sabukw.txt,记录城主行会、金币储备等核心数据。例如其中的GuildName=天下第一字段即代表当前占领行会。
系统缓存:服务端运行时会将占领信息加载到内存,需通过 GM 命令强制刷新。
机器人脚本的工作流程是:每天 0 点 0 分,先自动清空Sabukw.txt中的占领数据,再发送系统命令让服务端重新加载配置,从而实现信息重置。
二、编写定时触发脚本
需要修改两个关键脚本文件,位置在MirServer\Mir200\Envir\Robot_def\目录下:
1. 设定触发时间(AutoRunRobot.txt)
这个文件用于定义 “何时执行脚本”,添加以下内容:
#AutoRun NPC RUNONDAY 00:00:00 @ClearSabuk
含义:每天(RUNONDAY)的 00:00:00,执行名为@ClearSabuk的命令。
注意:时间格式必须严格为时:分:秒,且需与服务端系统时间一致(可在 M2Server 控制台查看)。
2. 编写清除逻辑(RobotManage.txt)
这个文件用于定义 “执行什么操作”,添加以下代码块:
(@ClearSabuk)
;第一步:清空Sabukw.txt中的占领数据
WriteFile .\Mir200\Castle\Sabukw.txt GuildName=
WriteFile .\Mir200\Castle\Sabukw.txt TotalGold=0
WriteFile .\Mir200\Castle\Sabukw.txt CastleMaster=
;第二步:发送系统公告
SENDMSG 0 沙巴克占领信息已重置,新的攻城战将在本周开启! 255 255 0
;第三步:强制服务端重新加载配置
Gmexecute ReloadSabukSet
;第四步:备份原始文件(可选)
CopyFile .\Mir200\Castle\Sabukw.txt .\Mir200\Castle\Sabukw_backup.txt
代码说明:
WriteFile命令用于修改配置文件,清空GuildName(行会名)、TotalGold(金币)、CastleMaster(城主)等关键字段;
Gmexecute ReloadSabukSet是强制刷新命令,不同引擎可能有差异(如有的用ReloadCastle);
备份文件可用于异常时恢复,路径可自定义。
三、手动测试脚本有效性
修改完成后不要直接等凌晨,先手动测试是否可行:
临时触发脚本:在游戏中用 GM 号输入@Robot @ClearSabuk,若系统公告正常弹出,说明脚本逻辑无误。
检查文件变化:打开Sabukw.txt,确认GuildName=后面已无内容,TotalGold变为 0。
验证游戏内显示:回到游戏查看沙巴克城主信息,应显示为 “无” 或 “未占领”。
若测试失败,常见原因包括:
路径错误:WriteFile后的路径需根据实际服务端安装位置调整(例如服务器装在 D 盘则需改为D:\MirServer\...);
权限问题:服务端文件夹需授予 “读写” 权限,右键属性取消 “只读” 勾选。
四、适配不同引擎的注意事项
GOM/GEE 引擎:
刷新命令需替换为Gmexecute 刷新沙巴克设置;
需额外清空MirServer\Mir200\Envir\CastleWar\目录下的攻城记录文件。
HERO 引擎:
AutoRunRobot.txt中的时间格式需加星期参数,例如#AutoRun NPC RUNONWEEK 0-6 00:00:00 @ClearSabuk(0-6 代表每天);
需在脚本末尾添加SaveCastleData命令保存修改。
轻量版引擎:
若不支持WriteFile命令,可改用DelFile删除Sabukw.txt,再用CopyFile从备份文件恢复(备份文件需预先准备空白版本)。
五、后期维护与排查
日志检查:每天 0 点后查看MirServer\Mir200\Envir\Log\RobotLog.txt,若有@ClearSabuk 执行成功记录,说明脚本运行正常。
异常修复:
若文件未修改:检查脚本中路径的斜杠方向(必须用\而非/);
若游戏内未更新:在 M2Server 控制台手动输入ReloadSabukSet命令,测试是否为命令不兼容问题。
定期备份:建议每周自动备份Sabukw.txt,避免脚本误操作导致数据丢失。
通过这套脚本,服务端会在每天凌晨自动重置沙巴克状态,无需人工干预。如果需要调整重置时间,只需修改AutoRunRobot.txt中的00:00:00为目标时间即可(如06:00:00)。对于新手来说,建议先在测试服验证脚本,确认无误后再部署到正式服。
传奇怎么通过机器人脚本实现每天 00:00 清除沙巴克占领信息
来源:
作者:
点击:

