2023-12-11更新
后续更新见《最新文档地址》
2023-11-08更新
1、工具箱WEB端发布3.2.0版本,增加新版本提醒,公告展示,在线更新功能。
2、在线版服务器更换,部分内容受影响,请至少更新到3.2.0版本,以下相关教程(文字教程、视频教程)中使用的【121.4.241.250:9998】请统一更换为【tool.zjh336.cn:80】。
2023-09-04更新
1、工具箱WEB端与工具箱APP端均发布3.0.0版本,请使用最新版本。
2、快速上手使用WEB端与APP进行开发、运行、打包图色、控件脚本,请学习教程《【华仔工具箱3.0】一小时内轻松上手,图色控件脚本,开发、运行、打包一应俱全!让您事半功倍!》
一、前言
工具箱web端已迭代至2.7.2版本,游戏脚本脚手架项目也有较长一段时间没有更新了,而目前又有不少朋友正在学习工具箱的使用,以及脚手架项目的开发。文档,和视频中有一部分内容是旧版本的视频,有些内容又是后来才加的,与视频对照有差异。针对一些常见的问题,在这里统一进行一个说明。再对学习路线进行一个整体的规划,自主学习时可以做参考。另外如果需要付费指导教学,请点击下方链接。
付费指导教学:《华仔AutoJs工具箱》以及《脚手架项目》学习指导
二、学习相关资料
1、相关说明文章
2、脚本项目
《华仔部落_佣兵战纪》全新自动挂机脚本 AutoJs版 (未采用脚手架项目开发,可做参考,使用了大量封装api)
3、WEB端在线地址
4、开源项目地址
5、哔哩哔哩视频
三、学习路线
1、自我需求定位
工具箱用途定位,主要当做辅助工具,还是当做IDE编辑器?
不能使用AutoJsProAPP,可以直接借助工具箱开发
可以使用AutoJsProAPP,可直接将工具箱作为辅助开发图色、控件脚本的工具
主要使用AutoJs的rhino引擎还是NodoJs引擎?
工具箱对rhino引擎支持较为友好
nodeJs引擎虽然也能支持,可能存在未知bug
主要是着重图色无障碍脚本还是控件脚本?
后续学习的重点略有差异
是否需要打包单独APK应用?
打包功能插件需要一次性购买授权
2、了解工具箱的起源和发展
工具箱实际是通过pro9.3.11打包的一套autojs运行环境,内置全权限,全插件
工具箱web端本质上是一个web端的IDE,集成了多种便于开发的辅助功能
通过了解起源与发展,就能知道工具箱能做些什么,以及未来能做些什么
具体内容可通过以上的相关文章和视频教程进行了解
3、工具箱环境的搭建
参考四中的情况选择适合自己的部署模式,下载web端应用和APP端应用
参考五中的教程,进行APP端环境配置
参考六中的教程,进行web端本地部署
4、工具箱功能模块的学习
参考七中的教程
仅使用辅助功能,学习图像处理模块、布局分析模块、远程脚本模块
完全使用工具箱开发,重点学习文件管理模块、以及上述功能模块
想学习脚手架开发游戏脚本的,还需要重点学习页面匹配模块
图色脚本开发,重点学习图像处理模块、可参考华仔AutoJs图色脚本示例项目
5、AutoJs的学习
开发脚本,还是要有足够的autojs开发经验,为更好的学习,工具箱提供了
官方autojs文档(未阉割)
官方示例(手机端文件管理初始化)
官方商店示例(手机端文件管理初始化)
6、脚手架项目的学习
想要做实时性要求不高的游戏脚本,可以采用我设计的这套脚手架方案具体介绍参考八
可查看相关文章了解脚手架的起源和发展
7、实战项目的学习
佣兵脚本,代码在群文件,可通过该项目了解图色api的用法,在线更新,http接口获取版本等内容
黑暗之剑2游戏脚本,采用脚手架实现的半成品项目,未开发完成,游戏环境较为复杂,具体完整教程可见群文件
咸鱼之王助手,采用脚手架实现,正在开发,将会体现脚手架项目的全部特性
四、最新资源下载
1、APP端,统一在群文件中下载2.5.0全插件版本
2、WEB端EXE版,本地部署,如果是以下情形之一,无脑选择本方案
你是小白,不懂修改配置,且用windows电脑
不想修改配置,想要开箱即用
另外,如果exe版本也想定制为系统服务启动,可找我咨询
3、WEB端Java服务版,本地部署,如果是以下情形之一,可以选择这种方式
用的是Mac电脑
想要部署到linux服务器上
想要体验最新的功能
想要开机自启动
4、游戏脚本脚手架项目
直接从gitee上下载 https://gitee.com/zjh336/hz_autojs_game_script
五、APP环境配置
1、《参考视频:APP配置教程》
ps:该教程的app版本比较老了,与最新版页面略有差异,基本不影响使用。
2、配置流程
不同品牌手机略有差异,以小米为例
APP自启动
省电策略无限制
启动APP,进入权限设置tab,开启所有权限,无障碍服务、悬浮窗、前台服务、截图权限、后台弹出权限(无障碍稳定模式可开可不开)
进入功能设置tab,服务端ip输入tool.zjh336.cn(或者ip地址),服务端port可为空(或者默认9998,在线版80),开启ws日志,点击保存配置,点击运行
3、注意事项
以上的权限设置必须到位,否则有可能出现无法截图的情况
先使用在线版的ip进行测试,app配置无问题后,再连接本地部署的服务
六、WEB端本地部署
1、参考视频《web端本地部署》
ps:视频仅供参考
其中提供java服务启动的部署方式,但是最新的部署方式中,无需再安装redis服务,配置文件部分也可以不修改读取默认路径
另外go版服务端已经很老了,且没有更新,不能继续使用
2、web端exe版
下载压缩包后,本地解压,如需更新2.7.2版本exe,可重命名为zxw-aj-tools.exe后复制到解压目录,直接覆盖其中的exe文件
双击【2、启动工具箱应用.bat】,一键启动应用,启动完成后自动弹出web端网页
双击【3、打开工具箱网页.bat】,可再次弹出web端网页
双击【4、停止工具箱服务.bat】,可一键关闭应用
如需修改端口、上传路径、页面访问密码等,可打开【zxw-aj-toos.vmoptions】文件对照修改
ps:如果要修改配置,请注意,配置文件的上传路径必须是\,且需要以\结尾
3、web端java版
gitee地址下载项目,本地java环境,打包最新jar包
或者直接下载发行版jar包、获取群文件下载2.6.4的jar包
群文件获取服务启动所需文件
window电脑或者服务器,参考第1点视频,进行服务启动部署
mac电脑或者linux服务器,使用java命令启动服务,或者自己百度服务启动方式
ps:以服务方式或者命令方式直接启动jar的,上传路径需要特别注意
windows需要使用\\双斜杠
linux需要使用/单个的反斜杠
mac需要使用/单个的反斜杠 只能设置为./开头意思是与jar包同级目录
七、工具箱的使用
1、能做什么
为开发图色脚本提供支持(图色测试、图色api封装)
为开发控件脚本提供支持(布局分析、布局代码测试)
独立运行pro项目(可直接在手机端运行已有pro项目)
提供网页端脚本开发环境(web代码编辑器、自动补全、在线运行脚本、项目调试)
文件传输支持(web与手机互传)
远程操作支持(web远程控制手机)
简易云控支持(定时任务、通知监听、脚本管理)
脚手架项目开发全流程完美支持(内置脚手架项目初始化)
提供图色脚本示例项目初始化(utils.js封装使用示例项目)
pro项目打包功能(pro项目打包独立apk,打包插件需要单独购买)
提供web端操作文档(web端全套文字教程)
提供web端演示视频(web端全套视频教程)
提供autojspro旧版api文档(未阉割版官方文档)
提供autojspro旧版官方示例(未阉割版官方示例)
提供autojspro旧版商店脚本(pro商店的分享脚本)
2、图像处理
核心功能
远程截图(根据名称、坐标、灰度化开关、阈值等参加远程截图并显示)
远程裁剪截图(基于全屏远程截图,再进行区域裁剪并显示)
远程截图并文字识别(远程截图后进行文字识别,显示文字识别结果)
远程截图并获取坐标和颜色(根据显示的远程截图结果,点击获取坐标和颜色值)
图色api生成以及在线测试(官方api、基础api、进阶api根据参数在线生成代码并进行远程测试)
页面参数与json互相转换(页面表单的参数与JSON的互相转换,主要用于页面匹配)
相关文档
相关视频
重点关注
图色api的本地项目引用,关注操作文档的第一章节,标注部分
关于utils.js的本地项目引用与使用,特地编写了一个独立的示例项目《华仔AutoJs图色脚本示例项目》
学习utils.js如何本地引用
真机测试api封装调用效果
可手动下载项目
也可以在手机端文件管理中初始化图色示例项目
3、布局分析
核心功能
一键布局分析,可视化展示布局(一键获取手机端布局数据,在web页面渲染控件树以及控件框)
自定义函数过滤控件(自定义编写函数过滤控件树)
一键生成布局操作代码以及测试(生成控件相关操作代码,支持即时远程测试)
相关文档
相关视频
4、远程脚本
核心功能
rhino引擎脚本远程执行(远程执行一代js脚本)
nodejs脚本引擎远程执行(远程执行二代js脚本)
常见模块代码示例(App模块、Device模块、Keys模块、Operate模块、Task模块、Other模块)
内置模块(热更新App,提供远程更新代码示例)
自定义模块(自己编写代码存入文件,生成自定义模块,可应用于快速调用)
相关文档
相关视频
重点关注
该模块无法远程执行ui脚本,如有需要可在手机端文件管理中新增js,编写ui代码,然后直接运行js
常见模块代码用于快速测试简单api
内置模块目前只有一个热更新代码,如果app做了改动优化,又没有发布版本,可以通过该代码直接更新app的代码部分
自己写一些一键代码,存为自定义模块,可快捷调用
5、预览设备
核心功能
远程操作屏幕(实时抓取手机端屏幕内容,支持点击、长按、滑动操作)
远程文本输入(web端输入文字到手机屏幕)
通知监听(配置规矩监听通知栏,转发到邮件)
脚本管理(管理手机端工具箱内正在运行的脚本)
定时任务(管理手机端已设置的定时任务)
相关文档
相关视频
重点关注
预览设备操作屏幕是有延迟的,目前暂时没有支持多点手势和曲线滑动
通知监听可以实现短信验证码监听并转发到邮件,或者监听指定消息内容
脚本管理,可视化查看当前运行脚本
定时任务,可视化查看当前已添加的定时任务,请注意目前添加定时任务,需要在远程脚本中手动添加,暂未支持界面添加
6、远程日志
核心功能
实时显示工具箱运行日志(工具箱的运行日志,实时界面显示,主要用于调试代码时的日志信息获取,相当于vscode的控制台输出日志)
实时显示脚手架运行日志(脚手架项目的运行日志,实时界面显示,主要用于基于工具箱运行脚手架项目时的日志信息获取)
上传手机端指定日志文件并显示内容(上传手机端的指定名称日志,工具箱记录的日志,每个小时生成一个文件在手机端)
相关文档
相关视频
7、文件管理
核心功能
web端文件管理的常用操作(上传文件、新建目录、复制、移动、删除、压缩、解压、重命名、预览图片、编辑文本文件、下载文件到本地)
web端文件同步到手机端(单个文件同步、多选文件同步、整个目录同步)
手机端文件管理的常用操作(新建文件或文件夹、复制、移动、删除、压缩、解压、重命名、预览图片、编辑文本文件、下载文件到本地)
手机端文件同步到web端(单个文件同步、多选文件同步、整个目录同步)
内置资源一键初始化(官方示例、商店示例、脚手架项目一键下载到手机端、图色示例项目一键下载到手机端)
手机端运行项目脚本的相关操作(快捷运行程序的支持、一键运行程序、一键停止程序、选择某个文件直接运行)
web端脚本开发环境支持(web代码编辑器、直接编辑手机端项目文件、多文件编辑以及滚动条记录、快捷键支持)
web端打包项目功能(将编写好的项目打包成独立apk)
ps:当前为工具箱的核心功能模块,是基于工具箱开发项目的关键
相关文档
相关视频
重点关注
文件管理模块必会的操作:本地项目压缩后上传web端、web端文件同步到手机端、一键运行程序、单独运行js
使用web端脚本开发环境进行项目开发:web端编辑手机项目代码、运行程序、停止程序
web端项目打包功能
开发模式一:vscode开发项目+autojspro插件+autojspro+工具箱辅助编写图色、控件代码+autojspro打包项目
开发模式二:vscode开发项目+autoxjs(autojspro)同步插件+工具箱辅助编写图色、控件代码+工具箱运行项目+工具箱web端打包
开发模式三:工具箱web端开发项目+工具箱辅助编写图色、控件代码+工具箱运行项目+工具箱web端打包
关于这三种开发模式,有疑问的可以群内沟通交流
8、页面匹配
核心功能
远程页面匹配(文字识别、多点识别色、区域找图)
页面配置与json转换(脚手架项目的页面匹配规则json与页面参数转换)
业务参数与json转换(脚手架项目的业务参数json与业务参数转换)
文字识别参数与图像处理模块(图像处理模块的文字识别参数获取)
多点识色参数与图像处理模块(图像处理模块的多点拾色参数获取)
区域找图参数与图像处理模块(图像处理模块的区域找图参数获取)
ps:当前为脚手架项目开发的核心依赖模块,有了页面匹配可以完成脚手架项目近70%的开发工作
相关文档
相关视频
重点关注
图像处理模块的json参数获取
脚手架项目的的页面匹配参数、业务操作参数
远程页面匹配的用法
参数规则以及用法见脚手架介绍
八、脚手架的使用
1、能做什么
开发对实时性要求不高的图色游戏脚本
提供多分辨率兼容方案
提供常用UI组件编写方案
提供找色、找图、识字页面匹配模式
与工具箱全流程完美兼容,近70%的操作可在工具箱完成
2、脚手架设计方案
自定义UI配置规则,分为脚手架固定部分与动态业务部分
页面匹配,基于【文字识别】、【区域找图】、【多点找色】三种手段组合判断页面特征,再根据页面结果执行对应逻辑代码
多分辨率支持方案
页面匹配规则参数,设置一套标准分辨率参数,以及多套个性化分辨率参数。设备运行页面匹配代码时根据当前分辨率智能选择,没有设置个性化的与标准分辨率参数进行等比例处理,设置了个性化分辨率参数按照设置来
坐标偏移系数参数,设置标准分辨率的以及多套个性化分辨率参数。设备运行页面匹配代码以及封装api时,根据偏移系数对匹配范围进行扩容处理,以兼容等比例缩放后布局内容进行了偏移的容错
文字识别、多点找色对多分辨率下的识别效果兼容性更好,可以多使用这两种方法
业务逻辑代码,提供封装方法调用,支持抽离业务逻辑代码,不同分辨率的参数全部提取到配置文件中,增加分辨率支持,只需要修改配置而不需要修改代码逻辑
脚本运行重启机制,达到无匹配次数上限、同一页面次数上限时执行重启脚本逻辑
悬浮菜单功能,运行脚本、匹配页面状态、小工具、悬浮日志、退出脚本
3、初始化项目
文件管理-手机端文件-初始化脚手架项目
打开config.js,修改key值以及标准分辨率
打开main.js 修改项目名
打开project.json 修改项目名与包名
参考视频见群文件
4、UI编写
在initXml方法中添加xml
不采用公共方法写的组件,如图中复选框组件
采用公共方法写的组件,如图中下拉框
在serviceConstant.js中添加业务key以及组件类型、业务值域列表,请注意不同组件值域列表格式不同
在serviceUi的initXml后,添加组件初始化代码,调取值域数据。不同组件初始化代码不一样,详情见utils.js
不采用公共方法写的组件,需要在保存参数和加载参数的方法中,单独做处理。如果是采用公共方法写法的组件,则不需要做额外处理,只需要前面的配置完成即可
UI运行效果
参考视频教程QQ群文件
5、主业务代码编写以及工具箱的配合使用
页面匹配 咸鱼之王首页 页面规则生成
思路:全屏截图,取底部红框部分,进行文字识别战斗二字
快速裁剪+文字识别验证识别效果
填写文字识别内容,参数生成json
页面匹配模块,增加游戏首页页面,写入标准分辨率
将图像处理生成的json复制到文字识别的json配置框中,点击红框的设置图标开启
选择匹配类型,填写绘制信息
点击远程页面匹配,手机端查看匹配效果
页面配置转换为json
json复制到commonConstant.js中
页面匹配 咸鱼之王首页 页面操作代码
1、实现思路
通过找图点击,点开左侧任务栏,再通过文字点击点开任务页面
2、配合工具箱web端的功能,编写页面操作代码
2.1裁剪左侧区域的三条杠图标
2.2保存图片,重命名为首页_任务列表图标.png
2.3 手机端文件,脚手架项目res目录新建1080_2400的图片文件夹
2.4 进入1080_2400目录
2.5 点击根目录,重新加载文件,勾选首页_任务列表图标.png,点击同步到手机
2.6 图片传输完成
2.7 全屏坐标执行截图后,再次裁剪找图区域
2.8 生成区域找图代码
2.9 修改代码中的load加载网络图片为read读取本地图片,图片路径为刚才传输到手机端的绝对路径
2.10 执行代码测试,手机返回找图坐标
2.11 清除无用参数后,点击参数生成json获取刚才进行找图的参数JSON
2.12 在游戏首页页面中增加业务操作参数,名为【首页找图点击未展开任务列表】,将刚才的json复制到此处
注意我们修改pathName的路径为/res/的相对路径
2.13 打开utils.js 我们找到执行业务操作的方法 查看调用参数
2.14 找到需要执行的找图点击方法名称
2.15 根据对照参数含义,编写调用方法,页面名称、业务操作标志、调用方法、成功回调函数
2.16 修改页面匹配的调试图片路径,将目标值修改为手机端对应目录
2.17 再次执行页面匹配,自动点击了任务栏按钮,并日志中有执行记录
2.18 然后执行两项操作
2.19 获取到业务参数json
2.20 将其复制到commonConsant.js中的serviceOperateParam中,然后执行格式化代码
2.21 注意图片为相对路径
2.22 重复全屏截图、区域裁剪操作,然后识别目标区域文字,任务二字能够正常识别
2.23 输入文字识别内容,生成代码,执行找字点击,测试效果,可正常点击
2.24 参数生成json
2.25 页面匹配添加新的参数【首页识字点击任务文字】
2.26 在业务操作代码中,展开任务列表的操作完成后,执行点击任务文字代码
2.27 页面匹配测试,成功进入任务列表,以及完整的页面匹配执行日志记录
2.28 重复上述操作,将业务参数的json重新生成后复制到commonConstant.js中
2.29 复制页面操作代码
2.30 打开mainScript.js文件,添加operate_游戏首页方法,对应刚才进行的页面匹配操作。粘贴页面操作代码,替换其中的utilsObj为utils。
2.31 针对游戏首页的页面特征匹配,以及匹配到后的业务操作代码,就全部都实现了
注意事项
1、页面特征少的话,可能会存在几个场景都能页面匹配的情况,所以尽量取唯一性的特征,或者多个条件组合,当然也不宜过多,毕竟页面匹配数量越多越慢。以上面的首页为例,任务栏展开和未展开的情况都能匹配上首页,所以需要多加条件用于区分是展开任务栏的首页,还是未展开任务栏的首页。
2、页面操作代码中也有可能存在某一步骤未执行成功的情况,如果代码步骤是简单的顺序处理,则有可能导致后面的代码无法运行成功,所以需要做容错处理,即,某些重要的操作之前,使用封装方法去验证一下是否满足必要条件,还是以上面的首页为例,首页识字点击任务文字的前提,就是任务列表需要展开。所以可以在执行点击任务文字之前,通过别的方式判断是否已经展开。
3、需要添加多个分辨率支持时,我们可以从项目中把json传入到工具箱的页面匹配,转换成页面参数后,直接在web端手动添加,测试无误后,再将其拷贝到项目中。
4、如果需要测试页面匹配中某项识别效果,可以将参数复制到图像处理模块,转换成参数后直接在线调试。
5、代码编辑器可以选择ace类型会比较合适,首页右上角位置选择。
6、编写代码,很少一次成功,运行效果不达预期是很正常的事情,多看看日志记录,多分析问题,针对性的解决。
6、实战项目
半成品项目:华仔AutoJs游戏脚本《黑暗之剑2》
视频教程见群文件
研发中项目:《咸鱼之王助手》华仔部落
发表评论