前言
呵呵 这是我一位哥说起他之前找了一个王者荣耀 刷金币脚本, 说是 放在那里 睡一晚上 卧槽 4k 的金币就到手了!!
因此 昨天的时候 稍微搜索了一下, 看了一下 大致的思路, 然后 尝试自己来实现一下
参照的思路来自于 tobyqin/kog-money 当然我最近 也试了一下, 看了一下 这个冒险模式里面的所有的关卡, 确实是 “陨落的废都 – 魔女回忆” 最适合这种刷钱, 地形很小, 相对来说 流程很短
tobyqin/kog-money 的实现是一步一步模拟点击, sleep 是代码里面定死的, 所以可能会存在一些意外的情况, 比如这次 打完需要22秒, 下一次打完需要24秒, 又或者 阵容不同导致的一些差异, 可能那时候就需要调整代码中的一些配置了
我这里的实现是基于 tobyqin/kog-money, 当然 自己也增加了一些思考, 一下是一些涉及到的地方
1. java.awt.Robot 来模拟操作
2. tessreact 来进行 ocr 图片识别(识别有一定的误差)
3. 一定的采样来判断图片是否相同(缓存图片内容信息)
整个流程大致是如下
0. 准备工作, 进入 万象天工 – 冒险模式 – 挑战 – 陨落的废都 – 魔女回忆 并搭配好阵容, 我这里是 小乔 + 王昭君 + 公孙离
1. 点击闯关, 然后之后惯例 bizSleep ms, 留给游戏页面的加载, 以及三个角色的自动刷怪
2. 定时检测[间隔为 nextStageCheckSleep ms]右上角的 剧情跳过[表示boss的相关剧情, 比如 陨落的废都 – 魔女回忆 会有两次跳过, 妲己宝宝出来的时候 和 妲己宝宝被打败的时候]
3. 两次跳过检测之后, 游戏会进入到结算页面[几星, 完成了几个任务], 之后等待游戏下方的 点击屏幕继续 的字样出现, 点击屏幕
4. 游戏来到 返回/再次挑战 页面, 点击再次挑战, 会回到 step1 的页面, 这样就可以构成一个循环了
当前是 s22 赛季, 流程大致是如上, 可能在后面的更新中会和上面的流程存在差异
环境说明 : jdk7 + Tesseract3.4.0 + 腾讯游戏模拟器 + 王者荣耀 s22 赛季
Robot 的一些操作可以参见 : java.awt.Robot的一些使用
Test07GetMoneyHornorOfKings
然后 整个过程的代码 大致是如下, 依赖了 Tesseract, 请自行下载
然后在不同的模拟器上面 可能脚本中使用到的各个按钮的配置可能会存在差异, 我这里就没有单独拎出来配置了, 请根据实际情况进行调整[contBtn, skipBtn, nextBtn, againBtn]
appLT 为整个模拟器相对于整个屏幕的位置(用于模拟器中各个元素的定位)
contBtn, skipBtn, nextBtn, againBtn : 的位置为相对于模拟器左上角的定位
tmpDir 是一个工作空间, 用于存放上一次脚本执行的上下文的信息, 比如日志, 运行时的截图 等等
confFile 是Test07GetMoneyHornorOfKings的配置文件, 里面主要包含了一些常用的会变化的配置, 比如模拟器的位置, bizSleep, skipCount 等等
counter 是截图的计数器
bizSleep 是游戏加载 加自动操作打怪的时间 [需要小于最短时间, 加这个是为了避免无用的截图 + ocr识别]
nextStageCheckSleep : 表示游戏打怪的过程中不断检测游戏阶段的一个时间间隔
nextBizSleep : 表示两次完整的刷币之间的时间间隔
skipCount : 表示游戏中会出现几次 “跳过” 剧情, 游戏会进入结算页面
sampleEstimateCount : 表示对于截图采样的点的大致个数
imgId2Text : 运行时使用, 暂存 图片 -> 图片中的文字
imgId2File : 运行时使用, 暂存 图片 -> 图片的文件
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!