- 直接开发脚本对于延时时间不好把握,需要大量使用循环判断;
- 开发时找多点颜色工作量大,相关工具少;
- 难以应对掉线、卡顿等突发状况;
- 各流程顺序固定,对于有开放时间限制、次数限制、时间间隔限制的任务不好处理;
- 各流程顺序固定,场景间的跳转固定,后期不能随意更改任务顺序。
- Bestjs游戏脚本框架是一款基于Auto.js开发的脚本框架,使用javascript语言,其具有以下特点:
- 屏蔽找图等细节、降低学习门槛;
- 各任务完全独立,由框架自动进行任务调度、寻找路径;
- 使用工具函数直接得到多个像素点颜色,只需要开发者选项确定坐标即可,无需使用截图工具找点,大大提高找点效率;
- 全局错误处理、多次判断大大增加脚本的可靠性,有效应对卡顿、网络波动、掉线等状况。
作者能力和精力有限,代码比较垃圾,不过创意还是比较好的,欢迎各位改进和扩展此框架,如果使用此框架建议附带作者信息,如果有类似的框架也可介绍给我使用 作者qq:1952511149 q群:1136399553
- 框架将游戏脚本抽象为一个有向图(Graph)和一个任务(Task)列表;
- 有向图(Graph)包括:节点是游戏场景(Scene)、路(Route);
- 场景(Scene)包括像素组(PixelGroup)和相连的路;
- 像素组(PixelGroup)简单的说就是多个像素点颜色及其相对位置等信息,用于多点找色,此数据能通过框架的工具函数输出得到,不必一个点一个点的去用相关工具找颜色;
- 路(Route)包括相连的场景和跳转函数;
- 场景(Scene)包括像素组(PixelGroup)和相连的路;
- 任务(Task)包括入口场景(在图内)、结束场景(可以和入口场景相同,也在图内)、任务主体(函数)以及任务数据(Data)(可选);
- 任务数据(Data)包含任务的挑战次数、开放时间、挑战时间间隔、优先级等信息;(还不完善)
- 有向图(Graph)包括:节点是游戏场景(Scene)、路(Route);
- 全局错误处理能够处理掉线等突发情况,拦截突发情况并跳转对应错误处理函数,恢复正常后继续执行刚刚的程序;
- 框架包含一个任务调度模块,能够自动根据任务优先级、当前时间、路径距离综合计算任务价值并执行最合适的任务;(不一定完善)
- 框架能够根据图的相关算法寻路到任务入口场景从而节省时间;(还不完善)
- 框架各部分都有许多成员函数来增加开发效率,许多部分包含循环等方式确保脚本的稳定,因此执行速度不一定快,但可靠程度增加了不少。
- 获取脚本所需的数据
- 全局配置
- 程序名称,用于本地存储文件名;
- 游戏重置时间,例如凌晨3点(3*3600*1000);
- 像素组数据
- 使用开发者选项或者其他工具找坐标;
- 调用工具函数showColors传入坐标参数得到一系列像素组数据的代码(一般建议20个像素点,一横或者一竖排列即可);
- 将得到的像素组数据的代码放到代码里或者资源文件里;
- 场景、路对象
- 根据像素组数据创建脚本会经过的场景的对象;
- 创建路对象,编写两个场景间的跳转函数;
- 在场景对象内添加相邻路对象的引用,在路对象内添加相邻场景对象的引用,保证图的完整;
- 任务对象
- 创建任务对象;
- 根据任务的特点写对应Data对象数据,放到代码里或者资源文件里(可选);
- 编写任务处理函数;
- 添加入口场景、出口场景的引用;
- 错误处理对象(可选)
- 创建错误处理对象;
- 添加错误场景的引用;
- 编写错误处理函数;
- 全局配置
- 注册各部分内容
- 注册场景
- 注册任务
- 注册错误处理对象
- 调用application.main()即可
- 开发小型脚本、单任务,不想弄那么复杂怎么办
不要图、场景等部分,写一个任务对象或者和常规的函数就行,执行前调用init函数即可,此时跟常规开发脚本差不多,将此框架当成第三方库使用,不过框架的查找、点击等功能可以为脚本的可靠性提供一定的帮助。
- 基于控件的脚本开发怎么办
可以编写控件查找的适配器,适配像素组或者场景的成员函数,然后注册基于控件的场景。
- 如何查api
框架的代码本身有充足的中文注释,而且使用region注释,方便在vscode里面折叠代码块