机器人脚本属于服务端定时执行脚本,和模拟器录制的操作脚本不属于同一类,放置目录以Mir200\Envir\Robot_def为主,目录内包含两个核心文件,AutoRunRobot.txt为机器人任务配置文件,RobotManage.txt用来存放脚本执行代码。AutoRunRobot.txt负责设置触发规则,可以按秒、分钟、小时、固定日期时间触发,在里面写入指令,绑定对应的脚本标签,M2引擎启动之后会自动读取该配置,到达设定时间执行RobotManage.txt内对应的代码段。
把写好的机器人功能代码全部放入RobotManage.txt,每一段功能使用标签区分,在AutoRunRobot.txt注册这条任务,引擎识别注册信息之后,到设定时间自动执行。修改完成脚本之后,不需要重启整套服务,打开M2控制台,找到重载机器人脚本选项,点击重载即可加载新修改的内容,方便快速调试。如果重载不生效,关闭M2程序重新启动服务端,文件改动才会完整生效。
机器人脚本运行在服务端M2程序内部,不是在玩家的手机或者模拟器客户端执行,全程由服务端后台自动触发,不需要玩家点击任何按钮。这类脚本多用于定时刷怪、定时全服公告、定时活动开启关闭、定时发放奖励、地图定时清理怪物,服务端保持运行状态,机器人脚本就会按照预设周期持续执行。
区分服务端机器人脚本与客户端操作脚本,客户端脚本是在手机或者模拟器上运行,用来模拟点击屏幕,实现自动打怪、自动吃药这类玩家操作。雷电模拟器自带的操作录制脚本,存放于模拟器对应的录制文件夹,打开模拟器右侧操作录制面板,点击查看脚本文件直接打开目录,把录制脚本放入文件夹,在模拟器的录制面板选中脚本,点击播放启动运行。这类脚本仅在当前模拟器窗口生效,关闭模拟器脚本停止运行,脚本不会上传到服务端。
第三方图色类客户端脚本,需要先安装对应的工具,在工具内导入脚本文件,开启悬浮窗权限,启动游戏之后,点击悬浮窗内的运行按钮执行脚本。这类脚本依靠读取屏幕画面识别游戏状态,脚本文件存放位置由工具自身决定,可以自定义保存路径,文件后缀一般为lua或者txt,运行载体是手机或者模拟器。
机器人脚本编写保存有不少注意事项,文件编码选用ANSI,中文文字不使用UTF编码,否则会出现乱码,导致脚本读取失败。文件夹路径不要带有中文名称,目录层级不要过深,防止M2读取文件报错。编写定时任务时,同一个时间点不要注册大量机器人任务,大量任务同时执行会造成服务端卡顿。每一条机器人任务设置独立标签,标签名称不能重复,避免出现脚本互相覆盖。
调试机器人脚本时,可以缩短触发间隔,设置按秒执行,快速验证功能是否正常,调试完成再修改为正式时间。M2日志会记录机器人脚本执行信息与报错内容,脚本没有正常触发,查看日志定位标签错误、命令写错这类问题。机器人脚本内的物品名称、地图编号、坐标,必须和数据库、地图文件内的标准名称保持一致,名称书写错误会导致指令执行失败。
客户端脚本启动前,固定模拟器分辨率和游戏UI布局,录制脚本和播放脚本的窗口参数保持一致,否则点击坐标偏移,脚本执行失效。手机端运行第三方脚本,需要开启悬浮窗和存储权限,部分设备需要关闭系统的后台限制,防止工具被系统清理,脚本中途停止运行。
两类脚本的启停方式存在明显区别,服务端机器人脚本依附M2服务,M2开启自动运行,M2关闭脚本停止。客户端模拟点击脚本,由模拟器或者第三方工具控制启停,关闭工具或者模拟器窗口,脚本直接终止。修改服务端机器人脚本,需要操作服务端文件,普通玩家客户端无法编辑和加载机器人脚本,只能使用客户端操作脚本完成游戏内自动操作。
多任务机器人脚本配置时,可以拆分多个定时任务,分开管理不同活动逻辑,方便后期维护。如果需要临时关闭某一条机器人任务,直接在AutoRunRobot.txt注释掉对应的行,重载机器人脚本即可暂停该任务,不需要删除完整代码。脚本测试完成上线前,模拟多玩家在线场景长时间运行,观察服务端内存占用,避免长时间执行脚本造成内存持续上涨,引发服务端异常。
传奇手游服务端机器人脚本存放目录 脚本加载启动方式与运行位置讲解
来源:
作者:
点击:

