传奇手游机器人脚本存放路径与启动运行全流程详解

来源: 作者: 点击:
传奇手游的机器人脚本分两大类,存放位置和启动方式完全不同。服务端机器人脚本控制游戏内部逻辑,放在服务端目录里由引擎自动加载,玩家什么都不用做。客户端辅助脚本是玩家自己用的挂机工具,放在模拟器或手机里,需要手动启动。搞混这两个位置是脚本不生效的最常见原因。

### 服务端机器人脚本:放对目录,引擎自动跑

服务端机器人脚本负责定时刷怪、假人上线、全服喊话、自动活动这类游戏世界运转的逻辑。这类脚本全部放在服务端目录下,手机客户端不承载任何脚本运行权限,只负责画面显示。

核心存放路径统一为:Mirserver\Mir200\Envir\Robot_def\。这个文件夹是引擎唯一识别的机器人脚本根目录,放到其他任何位置都不会被加载。

Robot_def目录下有两个核心主控文件,必须配对使用。AutoRunRobot.txt负责设定触发时间和执行频率,比如每30秒执行一次、每分钟执行一次、每天14:00执行一次。RobotManage.txt负责写具体要执行的动作,比如在指定地图刷新怪物、发送全服公告、让假人登录。

AutoRunRobot.txt的写法有固定格式。按秒触发写#AutoRunNPCSEC30@标签名,按分钟触发写#AutoRunNPCMIN1@标签名,每天定时触发写#AutoRunNPCRUNONDAY14:00@标签名,每周定时触发写#AutoRunNPCRUNONWEEK5:15:55@标签名。分号开头的行是注释,不会执行,去掉分号才生效。

RobotManage.txt里对应写每个标签要执行的具体命令。假人登录用DUMMYLOGON地图ID X Y 数量这个命令,比如DUMMYLOGON 3 330 330 1表示在盟重地图330,330坐标登录1个假人。刷怪用GMExecute MonGen命令,格式为GMExecute MonGen 怪物名 地图号 X Y。

脚本文件保存时统一用TXT格式,编码选ANSI。用UTF-8保存会带BOM头,中文变乱码,引擎读到乱码段直接抛错停止加载。

启动方式分两种。改了少量脚本内容,打开M2引擎控制面板,点功能菜单里的脚本管理,找到机器人脚本重载选项,点击重载即可,不需要关服不需要重启游戏,修改立即生效。大范围替换了脚本文件或修复了报错代码,需要先关闭全部网关和M2引擎程序,确认后台无残留进程,按顺序重新启动服务端整套程序,引擎初始化时会自动读取Robot_def目录下的全部脚本。

### 假人脚本的额外绑定步骤

如果机器人脚本是用来控制假人行为的,光把文件放进Robot_def还不够,还需要在数据库和地图配置里做绑定。

在MirServer\Mir200\Envir\Monster.DB里添加一条新记录,Name字段填假人NPC的名称,Race字段设为0或1,Appr字段填外观代码。然后在MirServer\Mir200\Envir\Npcs.txt里加一行配置,格式为地图号 X坐标 Y坐标 NPC名称 脚本路径。比如0 330 320 假人管理员 Market_Def\假人管理员-0,这行代码告诉服务器在0号地图的330,320坐标生成假人管理员这个NPC。

在M2引擎里还要手动开启假人功能。开M2后点选项进入功能设置,找到假人系统,勾选“启用假人功能”和“允许假人登录”,把最大假人数量改大,应用设置。改完Robot脚本后点“重载机器人脚本”或重启M2Server,假人就会按照AutoRunRobot.txt里设定的时间自动登录。

### 客户端辅助脚本:放对工具,手动启动

玩家自己用的挂机脚本和服务端机器人脚本是两套完全不同的东西。这类脚本模拟玩家的点击和滑动操作,实现自动打怪、跑图、拾取,运行在模拟器或手机端,不依赖服务端目录。

模拟器脚本的存放路径取决于使用的模拟器。雷电模拟器的脚本目录在模拟器安装目录的/Documents/leidian/script/下。打开雷电模拟器,点右侧工具栏的操作录制,录完操作保存脚本文件,重启模拟器后脚本自动识别,点击播放即可运行。网上下载的脚本放到这个文件夹里,重启模拟器就能看到。

MuMu模拟器和其他通用模拟器的脚本通常放在模拟器内部存储的/sdcard/Scripts/目录下,或者是辅助工具的Plugins文件夹里。APK格式的脚本工具直接拖进模拟器安装就行,安装后在应用列表里会出现一个独立的图标,打开它通过悬浮窗控制。

手机端的辅助工具如鸟人助手、Hamibot、触控精灵,脚本文件存到手机任意目录后,通过工具内的“导入脚本”功能选择文件完成导入。导入后在工具里配置打怪地图、拾取规则、技能顺序这些参数,回到游戏界面点击悬浮窗上的启动按钮,脚本就开始接管操作。

启动前必须开启权限。模拟器里要给脚本应用开悬浮窗权限和后台保活权限。手机端要在系统设置的无障碍功能里找到脚本APP,开启无障碍服务开关。权限没开脚本启动后会没有任何反应,悬浮窗也显示不出来。

### 服务端脚本不生效的排查顺序

脚本放进Robot_def后假人不上线或定时任务不执行,按以下顺序排查。

先看DummyNameList.txt里有没有填假人名字,M2里允许假人登录的开关有没有勾上,最大假人数量设的是多少。然后检查AutoRunRobot.txt里的标签名和RobotManage.txt里的标签名是否完全一致,大小写不一样引擎就找不到。再看地图坐标是否合法,DUMMYLOGON后面跟的地图号是不是服务端实际存在的地图。最后确认改完脚本后有没有点“重载机器人脚本”或重启M2,没重载的话引擎还在用内存里的旧脚本。

如果M2启动时控制台刷红字报ScriptError,根据报错的文件名和行号去对应文件里检查。常见问题包括#IF、#ACT、#SAY段头没顶格写,前面有空格引擎就当普通文本跳过;括号引号用了中文全角;GOTO或CALL指向的标签不存在;变量没有先用MOV声明。

### 客户端脚本不生效的排查顺序

模拟器里脚本放好了但启动没反应,先检查模拟器分辨率是不是和脚本适配。脚本在开发时通常基于特定分辨率截取坐标和颜色,分辨率不对脚本找不到目标位置。雷电模拟器在设置中心里改分辨率,常见适配值是1080×1920或720×1280,改完保存并重启模拟器。

然后检查悬浮窗权限。进模拟器设置的应用管理,找到脚本APP,确认悬浮窗权限是开启状态。有些模拟器还需要在辅助功能里单独开启脚本的无障碍服务。

如果脚本运行了但角色行为异常,比如反复走同一路线、技能空放、捡不到东西,通常是脚本的坐标数据和当前游戏界面不匹配。游戏更新后界面元素可能偏移,需要重新录制脚本或下载作者更新的版本。用按键精灵写的脚本可以自己重新抓点抓色,把旧的坐标值替换掉。