传奇机器人脚本可实现“定时将特定地图内所有玩家,统一传送至指定地图”,核心需求为每晚8点整,将土城仓库地图内所有在线玩家,一次性传送至目标地图,无需玩家手动选择,无需动态地图开放,全程自动执行,以下是完整脚本写法、参数说明、实操步骤及故障排查,所有内容直奔主题,可直接复制套用,适配所有主流传奇引擎(GOM、彩虹、星河等)。
先明确核心逻辑:通过机器人脚本的“定时触发命令”+“地图人员判断命令”+“批量传送命令”,三者结合实现需求——定时触发(每晚8点),判断玩家是否在土城仓库地图,是则执行批量传送,无需任何玩家操作,确保所有目标玩家同一时间进入指定地图,完全符合要求。
前期准备(必做,避免脚本失效):1. 确认土城仓库地图名称及编号(如地图名称“土城仓库”,地图编号305,可在服务端Mir200\Map\MapInfo.txt中查询);2. 确认目标传送地图名称及编号、目标坐标(如目标地图“活动地图”,编号310,坐标320,330,需选择安全区域,避免传送后被怪物攻击);3. 找到机器人脚本编辑入口:服务端Mir200\Envir\Robot_def文件夹,打开AutoRunRobot.txt(机器人自动执行脚本,所有定时脚本需添加至此);4. 关闭杀毒软件,备份原有AutoRunRobot.txt文件,避免误改无法恢复;5. 确认机器人脚本功能已开启,打开M2Server引擎,点击“插件”→“机器人插件”,确保“自动执行脚本”已勾选。
一、核心脚本完整写法(直接复制,修改参数即可使用)
脚本分为“定时触发段”和“传送执行段”,两段绑定,无需拆分,直接复制到AutoRunRobot.txt文件末尾,修改地图名称、编号、坐标即可,完整脚本如下:
;每晚8点整,将土城仓库所有玩家传送至指定地图(核心脚本)
[@RobotTime08:00]
#IF
MapName 土城仓库 ;判断玩家所在地图为土城仓库(也可使用地图编号,格式为Map 305)
#ACT
MapMoveAll 土城仓库 310 320 330 ;批量传送命令,参数依次为:源地图、目标地图编号、目标坐标X、目标坐标Y
SendMsg 0 系统提示:土城仓库所有玩家已统一传送至指定地图! ;可选,全服提示,可删除
;脚本结束,无需添加额外命令
补充说明:脚本中“[@RobotTime08:00]”是定时触发命令,代表每天晚上8点整自动执行下方脚本;若需要调整时间,修改冒号前后的数字即可(如[@RobotTime19:30]代表每晚7点30分,格式为24小时制,无需修改其他内容)。
二、脚本核心命令拆解(必看,避免修改参数出错)
重点拆解3个核心命令,让你理解每一部分的作用,避免修改时出错,无需专业编程基础,一看就懂:
1. 定时触发命令:[@RobotTime08:00]
这是传奇机器人脚本中最常用的定时命令,格式为“[@RobotTimeHH:MM]”,其中HH为24小时制小时数,MM为分钟数,作用是“每天到指定时间,自动执行该标签下的所有脚本命令”。
示例:[@RobotTime00:00]代表每天0点整触发,[@RobotTime12:30]代表每天12点30分触发,你需要的每晚8点,直接写[@RobotTime08:00]即可,无需添加其他定时命令,机器人会自动识别并执行。
关键注意:该命令必须单独成行,且标签后紧跟#IF、#ACT命令,不能换行或添加多余字符,否则会导致定时触发失败。
2. 地图判断命令:MapName 土城仓库(或Map 305)
作用是“判断当前在线玩家,是否处于指定地图内”,只有处于该地图的玩家,才会执行后续的传送命令,避免误传其他地图的玩家,完全贴合“特定地图内所有人”的需求。
两种写法任选其一,适配不同引擎:
(1)MapName 土城仓库:按地图名称判断,优点是直观,无需查询地图编号,适合新手;注意:地图名称必须与服务端MapInfo.txt中的名称完全一致,区分大小写(如“土城仓库”不能误写为“土城库房”)。
(2)Map 305:按地图编号判断,优点是稳定,避免地图名称写错导致判断失效,适合地图名称复杂或有重名的情况;地图编号可在服务端Mir200\Map\MapInfo.txt中查询,找到“土城仓库”对应的“MapNo”数值,即为地图编号。
3. 批量传送命令:MapMoveAll 土城仓库 310 320 330
这是实现“批量传送特定地图所有玩家”的核心命令,也是你最需要的命令,无需逐个传送,一键将目标地图内所有在线玩家,统一传送到指定坐标,参数拆解如下(按顺序排列,不能颠倒):
(1)MapMoveAll:批量传送命令,固定写法,代表“将指定地图内所有玩家,批量传送到目标位置”,所有引擎均支持该命令,无例外。
(2)土城仓库:源地图,即需要被传送玩家所在的地图,与#IF条件中的地图一致(若用地图编号判断,此处也需改为地图编号,如MapMoveAll 305 310 320 330)。
(3)310:目标地图编号,即玩家要被传送到的地图编号,需在MapInfo.txt中查询确认,不能写错,否则会传送至错误地图(如空白地图、怪物密集地图)。
(4)320:目标地图坐标X,需选择目标地图的安全区域坐标(如安全区、NPC附近),可在游戏中按F12查看当前坐标,避免填写超出地图范围的坐标,导致传送失败。
(5)330:目标地图坐标Y,与坐标X对应,确保两个坐标组成的位置,是目标地图的安全区域,避免玩家传送后立即被怪物攻击。
补充:若想让传送更平滑,可在MapMoveAll命令后添加Delay 1000(延迟1秒),避免同时传送过多玩家导致服务器卡顿,修改后如下:
#ACT
MapMoveAll 土城仓库 310 320 330
Delay 1000
SendMsg 0 系统提示:土城仓库所有玩家已统一传送至指定地图!
三、脚本修改步骤(新手直接对照操作,5分钟完成)
1. 打开服务端文件夹,依次进入Mir200\Envir\Robot_def,找到AutoRunRobot.txt文件,用记事本打开。
2. 滚动到文件末尾,将上述完整脚本复制粘贴到末尾(不要覆盖原有脚本内容,避免影响其他机器人功能)。
3. 按实际情况修改4个关键参数(必改,否则脚本无法正常执行):
(1)修改源地图:将“土城仓库”改为你实际的特定地图名称(如“土城仓库二层”),若用地图编号,将“土城仓库”改为对应编号(如305),同时修改MapMoveAll命令中的源地图参数,保持一致。
(2)修改目标地图编号:将“310”改为你要传送至的目标地图编号,从MapInfo.txt中查询确认。
(3)修改目标坐标:将“320 330”改为目标地图的安全区域坐标,在游戏中查看并替换。
(4)调整定时时间(可选):若不需要每晚8点,将[@RobotTime08:00]改为目标时间,格式为24小时制(如[@RobotTime20:00]与[@RobotTime08:00]均为晚上8点,两种写法均可)。
4. 保存文件,关闭记事本,脚本修改完成。
四、脚本生效步骤(必做,否则定时传送不执行)
脚本修改后,需重启服务端引擎,确保脚本加载生效,步骤如下:
1. 关闭所有服务端进程:依次关闭M2Server.exe(游戏主进程)、DBServer.exe(数据库进程)、LoginGate.exe(登录网关),确保所有进程完全关闭(可在任务管理器中检查,避免后台残留)。
2. 重启服务端:按“数据库→登录网关→游戏主进程”的顺序,依次启动所有进程,等待引擎启动完成(M2Server界面无报错,显示“服务器正常运行”)。
3. 测试验证:可临时将定时时间改为当前时间的下1分钟(如当前14:30,改为[@RobotTime14:31]),让测试账号进入土城仓库地图,等待时间到达,观察是否自动传送至目标地图,若成功传送,说明脚本生效;若未传送,按后续故障排查处理。
五、常见故障排查(新手必看,快速解决问题)
1. 定时时间到,未执行传送:
(1)检查定时命令格式:确认[@RobotTimeHH:MM]格式正确,无多余空格、标点,小时数、分钟数书写正确(如8点不能写为8:00,需写为08:00或20:00)。
(2)检查机器人插件是否开启:打开M2Server→“插件”→“机器人插件”,确保“自动执行脚本”“机器人功能”已勾选,未开启则勾选后重启引擎。
(3)检查脚本是否添加到AutoRunRobot.txt:确认脚本已粘贴到该文件末尾,未被覆盖、未遗漏命令(如#IF、#ACT、MapMoveAll命令是否完整)。
2. 仅部分玩家传送,部分未传送:
(1)检查源地图判断是否正确:确认MapName或Map参数与玩家所在地图一致,避免地图名称写错、编号写错,导致部分玩家未被判断为目标玩家。
(2)检查玩家是否在线:MapMoveAll命令仅对“在线玩家”生效,离线玩家无法传送,若有玩家未传送,确认其在定时时间点是否处于在线状态、是否在土城仓库地图内。
(3)检查服务器资源:若服务器内存占用过高、后台程序过多,会导致批量传送指令执行不完整,关闭后台多余程序,重启引擎,重新测试。
3. 玩家被传送到错误地图(如空白地图):
核心原因是目标地图编号错误,重新查询MapInfo.txt,找到目标地图的正确编号,修改MapMoveAll命令中的目标地图编号,保存后重启引擎,再次测试。
4. 传送后玩家黑屏、闪退:
原因是目标坐标超出地图范围,或目标地图未加载完整,重新确认目标地图坐标(确保在地图范围内),检查目标地图是否在服务端Map文件夹中(地图文件未缺失),修改坐标后重启引擎。
5. 脚本提示“命令未识别”:
(1)检查引擎是否支持MapMoveAll命令:所有主流引擎(GOM、彩虹、星河)均支持该命令,若为老旧引擎,需更新引擎至适配版本。
(2)检查命令拼写:确认MapMoveAll、MapName、SendMsg等命令拼写正确,无错别字(区分大小写,如MapMoveAll不能误写为MapMoveall)。
六、补充实操技巧(避免后续出现问题)
1. 脚本修改前,务必备份AutoRunRobot.txt文件,若修改错误,可直接替换为备份文件,避免影响其他机器人功能(如自动回收、NPC对话等)。
2. 定时时间建议设置为玩家在线人数较多的时段,避免深夜传送(无玩家在线,脚本执行无意义);若需要取消定时传送,直接删除脚本内容,保存后重启引擎即可。
3. 目标地图建议提前测试,确保地图内无大量怪物、无障碍物,坐标选择安全区,避免玩家传送后立即死亡,影响游戏体验。
4. 若需要多个定时时间(如每晚8点、9点各传送一次),可复制多段脚本,修改定时时间即可,无需修改其他命令,示例如下:
;每晚8点传送
[@RobotTime08:00]
#IF
MapName 土城仓库
#ACT
MapMoveAll 土城仓库 310 320 330
;每晚9点传送
[@RobotTime09:00]
#IF
MapName 土城仓库
#ACT
MapMoveAll 土城仓库 310 320 330
5. 若想隐藏系统提示,直接删除SendMsg 0 开头的命令即可,不影响脚本执行,实现“无提示、静默传送”。
总结:实现“每晚8点将土城仓库所有玩家,统一传送至指定地图”,核心脚本为“定时触发+地图判断+批量传送”,直接复制文中完整脚本,修改源地图、目标地图编号、目标坐标4个关键参数,重启引擎即可生效。无需玩家手动选择,无需动态地图,所有目标玩家会在指定时间同一时间被传送,完全符合需求。实操中重点核对地图名称、编号和坐标,避开命令拼写、引擎插件未开启等常见坑,就能确保脚本稳定执行,无需复杂的脚本编写基础,新手也能快速完成配置。

