前言

呵呵 这是我一位哥说起他之前找了一个王者荣耀 刷金币脚本, 说是 放在那里 睡一晚上 卧槽 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 : 运行时使用, 暂存 图片 -> 图片的文件

/*** Test07GetMoneyHornorOfKings** @author Jerry.X.He <970655147@qq.com>* @version 1.0* @date 2021/2/19 19:24*/
public class Test07GetMoneyHornorOfKings {// robotstatic Robot robot = null;// tessreactstatic Tesseract tessreact = new Tesseract();// appLeftTopstatic Point appLT = new Point(1920, 0);// contBtn point + rangestatic Point contBtnLT = new Point(1182, 745);static Point contBtnRange = new Point(250, 70);// skipBtn point + rangestatic Point skipBtnLT = new Point(1491, 51);static Point skipBtnRange = new Point(102, 52);// nextBtn point + rangestatic Point nextBtnLT = new Point(690, 826);static Point nextBtnRange = new Point(240, 40);// againBtn point + rangestatic Point againBtnLT = new Point(1242, 826);static Point againBtnRange = new Point(280, 72);// tmp dirstatic String tmpDir = "D:\\ProgramFiles\\Test07GetMoneyHornorOfKings\\" + DateUtils.nowStr();// conf filestatic String confFile = "D:\\ProgramFiles\\Test07GetMoneyHornorOfKings\\conf.properties";// tmpFile counterstatic int counter = 0;// business sleepstatic int bizSleep = 30;// next-stage check sleepstatic int nextStageCheckSleep = 300;// next business sleepstatic int nextBizSleep = 1000;// skip countstatic int skipCount = 2;// sample estimate countstatic int sampleEstimateCount = 100;// digest saltstatic String digestSalt = "$1$salt";// stage imageId -> textstatic Map<String, String> imgId2Text = new HashMap<>();static Map<String, String> imgId2File = new HashMap<>();// initializestatic {try {robot = new Robot();new File(tmpDir).delete();new File(tmpDir).mkdirs();tessreact.setDatapath("D:\\Program Files\\Tesseract-OCR");tessreact.setLanguage("chi_sim");// load propertiesProperties properties = new Properties();properties.load(new FileInputStream(new File(confFile)));System.out.println(" init properties : " + JSON.toJSONString(properties) + ", confFile : " + confFile);if (StringUtils.isNotBlank(properties.getProperty("appLTX"))) {appLT.x = Integer.valueOf(properties.getProperty("appLTX"));}if (StringUtils.isNotBlank(properties.getProperty("appLTY"))) {appLT.y = Integer.valueOf(properties.getProperty("appLTY"));}if (StringUtils.isNotBlank(properties.getProperty("bizSleep"))) {bizSleep = Integer.valueOf(properties.getProperty("bizSleep"));}if (StringUtils.isNotBlank(properties.getProperty("nextStageCheckSleep"))) {nextStageCheckSleep = Integer.valueOf(properties.getProperty("nextStageCheckSleep"));}if (StringUtils.isNotBlank(properties.getProperty("nextBizSleep"))) {nextBizSleep = Integer.valueOf(properties.getProperty("nextBizSleep"));}if (StringUtils.isNotBlank(properties.getProperty("skipCount"))) {skipCount = Integer.valueOf(properties.getProperty("skipCount"));}if (StringUtils.isNotBlank(properties.getProperty("sampleEstimateCount"))) {sampleEstimateCount = Integer.valueOf(properties.getProperty("sampleEstimateCount"));}} catch (Exception e) {e.printStackTrace();}}// Test07GetMoneyHornorOfKings// 请使用 D:\ProgramFiles\Test07GetMoneyHornorOfKings\startup.bat, 使用管理员权限运行, 否则不行public static void main(String[] args) throws Exception {int repeat = 1;if (args.length >= 1) {repeat = Integer.valueOf(args[0]);}appendToLogFile(" repeat : " + repeat);long totalSpent = 0;for (int i = 0; i < repeat; i++) {long spent = doBiz(i);totalSpent += spent;appendToLogFile(" repeat " + (i + 1) + ", total cost " + totalSpent + " ms, avg : " + (totalSpent / (i + 1)) + " ms ");}}// do businesspublic static long doBiz(int theN) throws Exception {Stage stage = Stage.START;// get startlong start = System.currentTimeMillis();while (stage == Stage.START) {String contBtnText = readRange(calcBtnRange(contBtnLT, contBtnRange));// case of "闯关"if (contBtnText.contains("闯")) {mouseMoveAndLeftClick(calcBtnToClick(contBtnLT, contBtnRange));stage = Stage.WAITING_BIZ;appendToLogFile(" 开始游戏 ");}}appendToLogFile(" do bizSleep : " + bizSleep + " ms ");Tools.sleep(bizSleep);int skippedCount = 0;while (stage != Stage.START) {if (stage == Stage.WAITING_BIZ) {String skipBtnText = readRange(calcBtnRange(skipBtnLT, skipBtnRange));// case of "跳过"if (skipBtnText.contains("跳")) {mouseMoveAndLeftClick(calcBtnToClick(skipBtnLT, skipBtnRange));appendToLogFile(" 跳过 ");// 如果点击了 skipCount 次 跳过, 则进入到下一阶段skippedCount++;if (skippedCount == skipCount) {stage = Stage.NEXT;}}} else if (stage == Stage.NEXT) {String nextBtnText = readRange(calcBtnRange(nextBtnLT, nextBtnRange));// case of “点击屏幕继续"if (nextBtnText.contains("继续")) {mouseMoveAndLeftClick(calcBtnToClick(nextBtnLT, nextBtnRange));stage = Stage.AGAIN;appendToLogFile(" 继续游戏 ");}} else if (stage == Stage.AGAIN) {String againBtnText = readRange(calcBtnRange(againBtnLT, againBtnRange));// case of “再次挑战"if (againBtnText.contains("再次")) {mouseMoveAndLeftClick(calcBtnToClick(againBtnLT, againBtnRange));stage = Stage.START;appendToLogFile(" 再次挑战 ");}}appendToLogFile(" currentStage : " + stage + ", sleep " + nextStageCheckSleep + " ms before next check ");Tools.sleep(nextStageCheckSleep);}long spent = Tools.spent(start);String log = " the " + (theN + 1) + "th cost " + spent + " ms, sleep " + nextBizSleep + " ms before next business ";appendToLogFile(log);Tools.sleep(nextBizSleep);return spent;}public static Point calcBtnToClick(Point lt, Point range) {return calcPosition(new Point(lt.x + (range.x / 2), lt.y + (range.y / 2)));}public static Rectangle calcBtnRange(Point lt, Point range) {Point btnLt = calcPosition(lt);return new Rectangle(btnLt.x, btnLt.y, range.x, range.y);}public static String readRange(Rectangle rectangle) throws Exception {BufferedImage img = robot.createScreenCapture(rectangle);String imgId = generateImageId(img);
//        appendToLogFile(" imgId : " + imgId + ", imageId2TextSize : " + imgId2Text.size());// read from cacheif (imgId2Text.containsKey(imgId)) {String redirectFile = imgId2File.get(imgId);String result = imgId2Text.get(imgId);appendToLogFile(" readRange, redirectFile : " + redirectFile + ", text : " + result);return result;}// do ocrString result = tessreact.doOCR(img);String fileSuffix = "png";String fileName = "tmp_" + (counter++) + "." + fileSuffix;ImageIO.write(img, fileSuffix, new File(tmpDir, fileName));// store cacheimgId2File.put(imgId, fileName);imgId2Text.put(imgId, result);appendToLogFile(" readRange, fileName : " + fileName + ", text : " + result);return result;}// ------------------------------------------------------------------------------------------public static String generateImageId(BufferedImage img) {int width = img.getWidth(), height = img.getHeight();int sampleCountPerLine = (sampleEstimateCount - 1) / height + 1;int offsetInLine = width / sampleCountPerLine;int widthI = 0;StringBuilder sampledRgb = new StringBuilder();for (int heightI = 0; heightI < height; heightI++) {while (widthI < width) {int rgbInSample = img.getRGB(widthI, heightI);sampledRgb.append(rgbInSample);widthI += offsetInLine;}}return Md5Crypt.md5Crypt(sampledRgb.toString().getBytes(), digestSalt);}public static void appendToLogFile(String log) throws Exception {File logFile = new File(tmpDir, "log.log");String preparedLog = new Date() + "-" + log + Tools.CRLF;System.out.println(preparedLog);Tools.append(preparedLog, logFile);}public static Point calcPosition(Point relativePoint) {return new Point(appLT.x + relativePoint.x, appLT.y + relativePoint.y);}public static Point currentPosition() {PointerInfo pointerInfo = MouseInfo.getPointerInfo();return pointerInfo.getLocation();}public static void mouseMove(Point point) {robot.mouseMove(point.x, point.y);}public static List<Point> generateSteps(Point currentPoint, Point point) {List<Point> result = new ArrayList<>();int offsetX = currentPoint.x < point.x ? 1 : -1, offsetY = currentPoint.y < point.y ? 1 : -1;int currentX = currentPoint.x, currentY = currentPoint.y;while (!(currentX == point.x && currentY == point.y)) {if (currentX != point.x) {currentX += offsetX;}if (currentY != point.y) {currentY += offsetY;}result.add(new Point(currentX, currentY));}return result;}public static void mouseLeftClick() {robot.mousePress(KeyEvent.BUTTON1_MASK);robot.mouseRelease(KeyEvent.BUTTON1_MASK);}public static void mouseRightClick() {robot.mousePress(KeyEvent.BUTTON2_MASK);robot.mouseRelease(KeyEvent.BUTTON2_MASK);}public static void mouseMoveAndLeftClick(Point point) {Point currentPosition = currentPosition();mouseMove(point);mouseLeftClick();mouseMove(currentPosition);mouseLeftClick();}// --------------------------------- 辅助数据结构 ---------------------------------------------// 脚本运行时的 各个 stageprivate static enum Stage {START, WAITING_BIZ, NEXT, AGAIN}}

执行Test07GetMoneyHornorOfKings

使用 Robot 来模拟点击等操作, 在这个腾讯游戏模拟器中似乎是需要使用 管理员权限 执行才能生效

因此 需要创建一个 startUp.bat, 建议是放在 tmpDir 下面

"D:\Program Files\Java\jdk1.7.0_40\bin\java.exe" -Dfile.encoding=GBK -classpath "D:\Program Files\Java\jdk1.7.0_40\jre\lib\charsets.jar;D:\Program Files\Java\jdk1.7.0_40\jre\lib\deploy.jar;D:\Program Files\Java\jdk1.7.0_40\jre\lib\ext\access-bridge-64.jar;D:\Program Files\Java\jdk1.7.0_40\jre\lib\ext\dnsns.jar;D:\Program Files\Java\jdk1.7.0_40\jre\lib\ext\jaccess.jar;D:\Program Files\Java\jdk1.7.0_40\jre\lib\ext\localedata.jar;D:\Program Files\Java\jdk1.7.0_40\jre\lib\ext\sunec.jar;D:\Program Files\Java\jdk1.7.0_40\jre\lib\ext\sunjce_provider.jar;D:\Program Files\Java\jdk1.7.0_40\jre\lib\ext\sunmscapi.jar;D:\Program Files\Java\jdk1.7.0_40\jre\lib\ext\zipfs.jar;D:\Program Files\Java\jdk1.7.0_40\jre\lib\javaws.jar;D:\Program Files\Java\jdk1.7.0_40\jre\lib\jce.jar;D:\Program Files\Java\jdk1.7.0_40\jre\lib\jfr.jar;D:\Program Files\Java\jdk1.7.0_40\jre\lib\jfxrt.jar;D:\Program Files\Java\jdk1.7.0_40\jre\lib\jsse.jar;D:\Program Files\Java\jdk1.7.0_40\jre\lib\management-agent.jar;D:\Program Files\Java\jdk1.7.0_40\jre\lib\plugin.jar;D:\Program Files\Java\jdk1.7.0_40\jre\lib\resources.jar;D:\Program Files\Java\jdk1.7.0_40\jre\lib\rt.jar;D:\Program Files\WorkStations\EclipseWorkStation\HelloWorld03\target\classes;D:\Assist\jar\jvm\saclasses.jar;D:\Program Files\WorkStations\CygwinsWorkStation\HXLog\target\classes;D:\Program Files\WorkStations\CygwinsWorkStation\HXCommon\target\classes;D:\Program Files\Maven\MavenResponsitory\.m2\repository\junit\junit\4.12\junit-4.12.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\com\hx\HXJson\0.0.2\HXJson-0.0.2.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\com\hx\HXAttrHandler\0.0.2\HXAttrHandler-0.0.2.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\com\hx\HXCrawler_V2.0\0.0.2\HXCrawler_V2.0-0.0.2.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\commons-lang\commons-lang\2.6\commons-lang-2.6.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\apache\httpcomponents\httpclient\4.5\httpclient-4.5.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\apache\httpcomponents\httpcore\4.4.1\httpcore-4.4.1.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\commons-codec\commons-codec\1.9\commons-codec-1.9.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\apache\httpcomponents\fluent-hc\4.5\fluent-hc-4.5.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\dom4j\dom4j\1.6.1\dom4j-1.6.1.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\xml-apis\xml-apis\1.0.b2\xml-apis-1.0.b2.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\jaxen\jaxen\1.1.6\jaxen-1.1.6.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\ccil\cowan\tagsoup\tagsoup\1.2.1\tagsoup-1.2.1.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\com\hx\HXMongo\0.0.2\HXMongo-0.0.2.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\mongodb\mongo-java-driver\3.2.2\mongo-java-driver-3.2.2.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\mysql\mysql-connector-java\5.1.38\mysql-connector-java-5.1.38.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\com\hx\HXFlow\0.0.2\HXFlow-0.0.2.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\com\hx\HXBeans\0.0.2\HXBeans-0.0.2.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\com\hx\HXSyntaxTree\0.0.2\HXSyntaxTree-0.0.2.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\com\hx\HXOffice\0.0.2\HXOffice-0.0.2.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\com\bst\ics-common-office\1.0.0\ics-common-office-1.0.0.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\com\bst\ics-common-base\1.0.0\ics-common-base-1.0.0.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\apache\commons\commons-collections4\4.2\commons-collections4-4.2.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\quartz-scheduler\quartz\2.2.1\quartz-2.2.1.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\c3p0\c3p0\0.9.1.1\c3p0-0.9.1.1.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\quartz-scheduler\quartz-jobs\2.2.1\quartz-jobs-2.2.1.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\slf4j\slf4j-api\1.7.21\slf4j-api-1.7.21.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\log4j\log4j\1.2.17\log4j-1.2.17.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\com\alibaba\fastjson\1.2.8\fastjson-1.2.8.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\net\sf\json-lib\json-lib\2.2.3\json-lib-2.2.3.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\commons-collections\commons-collections\3.2\commons-collections-3.2.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\commons-logging\commons-logging\1.1.1\commons-logging-1.1.1.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\net\sf\ezmorph\ezmorph\1.0.6\ezmorph-1.0.6.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\net\java\dev\jna\jna\4.1.0\jna-4.1.0.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\net\java\dev\jna\jna-platform\4.1.0\jna-platform-4.1.0.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\commons-beanutils\commons-beanutils\1.9.3\commons-beanutils-1.9.3.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\com\github\insubstantial\substance\7.3\substance-7.3.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\com\github\insubstantial\trident\7.3\trident-7.3-swing.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\com\github\insubstantial\laf-plugin\7.3\laf-plugin-7.3.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\com\github\insubstantial\laf-widget\7.3\laf-widget-7.3.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\com\github\insubstantial\trident\7.3\trident-7.3.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\javax\mail\mail\1.4.7\mail-1.4.7.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\javax\activation\activation\1.1\activation-1.1.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\com\sun\tools\btrace\btrace-boot\1.2.3\btrace-boot-1.2.3.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\redisson\redisson\2.11.0\redisson-2.11.0.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\io\netty\netty-common\4.1.20.Final\netty-common-4.1.20.Final.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\io\netty\netty-codec\4.1.20.Final\netty-codec-4.1.20.Final.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\io\netty\netty-buffer\4.1.20.Final\netty-buffer-4.1.20.Final.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\io\netty\netty-transport\4.1.20.Final\netty-transport-4.1.20.Final.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\io\netty\netty-resolver\4.1.20.Final\netty-resolver-4.1.20.Final.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\io\netty\netty-resolver-dns\4.1.20.Final\netty-resolver-dns-4.1.20.Final.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\io\netty\netty-codec-dns\4.1.20.Final\netty-codec-dns-4.1.20.Final.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\io\netty\netty-handler\4.1.20.Final\netty-handler-4.1.20.Final.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\javax\cache\cache-api\1.0.0\cache-api-1.0.0.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\io\projectreactor\reactor-stream\2.0.8.RELEASE\reactor-stream-2.0.8.RELEASE.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\io\projectreactor\reactor-core\2.0.8.RELEASE\reactor-core-2.0.8.RELEASE.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\reactivestreams\reactive-streams\1.0.0\reactive-streams-1.0.0.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\com\fasterxml\jackson\dataformat\jackson-dataformat-yaml\2.7.9\jackson-dataformat-yaml-2.7.9.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\yaml\snakeyaml\1.15\snakeyaml-1.15.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.7.9\jackson-core-2.7.9.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.7.9\jackson-databind-2.7.9.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.7.0\jackson-annotations-2.7.0.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\net\bytebuddy\byte-buddy\1.6.14\byte-buddy-1.6.14.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\jodd\jodd-bean\3.7.1\jodd-bean-3.7.1.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\jodd\jodd-core\3.7.1\jodd-core-3.7.1.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\redis\clients\jedis\2.9.0\jedis-2.9.0.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\apache\commons\commons-pool2\2.4.2\commons-pool2-2.4.2.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\apache\poi\poi-ooxml\3.11\poi-ooxml-3.11.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\apache\poi\poi\3.11\poi-3.11.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\apache\poi\poi-ooxml-schemas\3.11\poi-ooxml-schemas-3.11.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\apache\xmlbeans\xmlbeans\2.6.0\xmlbeans-2.6.0.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\stax\stax-api\1.0.1\stax-api-1.0.1.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\apache\rocketmq\rocketmq-client\4.3.0\rocketmq-client-4.3.0.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\apache\rocketmq\rocketmq-common\4.3.0\rocketmq-common-4.3.0.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\apache\rocketmq\rocketmq-remoting\4.3.0\rocketmq-remoting-4.3.0.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\io\netty\netty-all\4.0.42.Final\netty-all-4.0.42.Final.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\apache\rocketmq\rocketmq-logging\4.3.0\rocketmq-logging-4.3.0.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\io\netty\netty-tcnative-boringssl-static\1.1.33.Fork26\netty-tcnative-boringssl-static-1.1.33.Fork26.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\apache\commons\commons-lang3\3.4\commons-lang3-3.4.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\cglib\cglib\3.2.12\cglib-3.2.12.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\ow2\asm\asm\7.1\asm-7.1.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\apache\maven\maven-core\3.3.9\maven-core-3.3.9.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\apache\maven\maven-model\3.3.9\maven-model-3.3.9.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\apache\maven\maven-settings\3.3.9\maven-settings-3.3.9.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\apache\maven\maven-settings-builder\3.3.9\maven-settings-builder-3.3.9.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\apache\maven\maven-builder-support\3.3.9\maven-builder-support-3.3.9.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\apache\maven\maven-repository-metadata\3.3.9\maven-repository-metadata-3.3.9.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\apache\maven\maven-artifact\3.3.9\maven-artifact-3.3.9.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\apache\maven\maven-plugin-api\3.3.9\maven-plugin-api-3.3.9.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\apache\maven\maven-model-builder\3.3.9\maven-model-builder-3.3.9.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\com\google\guava\guava\18.0\guava-18.0.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\apache\maven\maven-aether-provider\3.3.9\maven-aether-provider-3.3.9.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\eclipse\aether\aether-spi\1.0.2.v20150114\aether-spi-1.0.2.v20150114.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\eclipse\aether\aether-impl\1.0.2.v20150114\aether-impl-1.0.2.v20150114.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\eclipse\aether\aether-api\1.0.2.v20150114\aether-api-1.0.2.v20150114.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\eclipse\aether\aether-util\1.0.2.v20150114\aether-util-1.0.2.v20150114.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\eclipse\sisu\org.eclipse.sisu.plexus\0.3.2\org.eclipse.sisu.plexus-0.3.2.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\javax\enterprise\cdi-api\1.0\cdi-api-1.0.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\javax\annotation\jsr250-api\1.0\jsr250-api-1.0.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\eclipse\sisu\org.eclipse.sisu.inject\0.3.2\org.eclipse.sisu.inject-0.3.2.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\com\google\inject\guice\4.0\guice-4.0-no_aop.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\javax\inject\javax.inject\1\javax.inject-1.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\aopalliance\aopalliance\1.0\aopalliance-1.0.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\codehaus\plexus\plexus-interpolation\1.21\plexus-interpolation-1.21.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\codehaus\plexus\plexus-utils\3.0.22\plexus-utils-3.0.22.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\codehaus\plexus\plexus-classworlds\2.5.2\plexus-classworlds-2.5.2.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\codehaus\plexus\plexus-component-annotations\1.6\plexus-component-annotations-1.6.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\sonatype\plexus\plexus-sec-dispatcher\1.3\plexus-sec-dispatcher-1.3.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\sonatype\plexus\plexus-cipher\1.4\plexus-cipher-1.4.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\apache\ant\ant\1.9.14\ant-1.9.14.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\apache\ant\ant-launcher\1.9.14\ant-launcher-1.9.14.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\xerial\sqlite-jdbc\3.28.0\sqlite-jdbc-3.28.0.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\springframework\spring-jdbc\4.3.0.RELEASE\spring-jdbc-4.3.0.RELEASE.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\springframework\spring-beans\4.3.0.RELEASE\spring-beans-4.3.0.RELEASE.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\springframework\spring-core\4.3.0.RELEASE\spring-core-4.3.0.RELEASE.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\springframework\spring-tx\4.3.0.RELEASE\spring-tx-4.3.0.RELEASE.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\mvel\mvel2\2.4.4.Final\mvel2-2.4.4.Final.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\net\sourceforge\tess4j\tess4j\3.4.0\tess4j-3.4.0.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\com\github\jai-imageio\jai-imageio-core\1.3.1\jai-imageio-core-1.3.1.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\ghost4j\ghost4j\1.0.1\ghost4j-1.0.1.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\apache\xmlgraphics\xmlgraphics-commons\1.4\xmlgraphics-commons-1.4.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\com\lowagie\itext\2.1.7\itext-2.1.7.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\commons-io\commons-io\2.5\commons-io-2.5.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\net\sourceforge\lept4j\lept4j\1.4.0\lept4j-1.4.0.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\jboss\jboss-vfs\3.2.12.Final\jboss-vfs-3.2.12.Final.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\jboss\logging\jboss-logging\3.1.4.GA\jboss-logging-3.1.4.GA.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\slf4j\jul-to-slf4j\1.7.25\jul-to-slf4j-1.7.25.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\slf4j\jcl-over-slf4j\1.7.25\jcl-over-slf4j-1.7.25.jar;D:\Program Files\Maven\MavenResponsitory\.m2\repository\org\slf4j\log4j-over-slf4j\1.7.25\log4j-over-slf4j-1.7.25.jar;E:\Program Files\JetBrains\IntelliJ IDEA 2019.3.1\lib\idea_rt.jar" com.hx.test12.Test07GetMontyHornorOfKings 200pause

然后再增加一个 config.properties 来作为配置文件, 建议是放在 tmpDir 下面

appLTX=1920
appLTY=0
skipCount=2
bizSleep=34000
nextStageCheckSleep=500
sampleEstimateCount=100

启动 游戏模拟器 进入王者荣耀, 然后进入 万象天工 - 冒险模式 - 挑战 - 陨落的废都 - 魔女回忆 并搭配好阵容, 我这里是 小乔 + 王昭君 + 公孙离

然后 就可以右键 以管理员权限运行 startUp.bat

呵呵 就可以快乐的刷钱了

我的金币已经满了, 你的呢 ?

附上一部分运行时的日志

Sat Feb 20 12:59:31 CST 2021- repeat : 200
Sat Feb 20 12:59:33 CST 2021- readRange, fileName : tmp_0.png, text :
Sat Feb 20 12:59:34 CST 2021- readRange, fileName : tmp_1.png, text : ′`′`)\ 一
\`′ > 【
`Sat Feb 20 12:59:36 CST 2021- readRange, fileName : tmp_2.png, text : …-囊=^_ ^ _ : -′
'弯(官` `臭 〉
` } 硐… `
菖_看′ `二′ `宁}““^`Sat Feb 20 12:59:38 CST 2021- readRange, fileName : tmp_3.png, text : ′亡了荞_〉 _ 「一
`-"釜、`
髦′` 遢善" 二-Sat Feb 20 12:59:39 CST 2021- readRange, fileName : tmp_4.png, text : 闯 天Sat Feb 20 12:59:39 CST 2021- 开始游戏
Sat Feb 20 12:59:39 CST 2021- do bizSleep : 34000 ms
Sat Feb 20 13:00:14 CST 2021- readRange, fileName : tmp_5.png, text : ′ 镰Sat Feb 20 13:00:14 CST 2021- currentStage : WAITING_BIZ, sleep 500 ms before next check
Sat Feb 20 13:00:15 CST 2021- readRange, fileName : tmp_6.png, text : ′ 蘑Sat Feb 20 13:00:15 CST 2021- currentStage : WAITING_BIZ, sleep 500 ms before next check
Sat Feb 20 13:00:16 CST 2021- readRange, fileName : tmp_7.png, text : 跳过Sat Feb 20 13:00:16 CST 2021- 跳过
Sat Feb 20 13:00:16 CST 2021- currentStage : WAITING_BIZ, sleep 500 ms before next check
Sat Feb 20 13:00:18 CST 2021- readRange, fileName : tmp_8.png, text : ′ 蘑Sat Feb 20 13:00:18 CST 2021- currentStage : WAITING_BIZ, sleep 500 ms before next check
Sat Feb 20 13:00:19 CST 2021- readRange, fileName : tmp_9.png, text : 蹦Sat Feb 20 13:00:19 CST 2021- currentStage : WAITING_BIZ, sleep 500 ms before next check
Sat Feb 20 13:00:21 CST 2021- readRange, fileName : tmp_10.png, text : 蹦Sat Feb 20 13:00:21 CST 2021- currentStage : WAITING_BIZ, sleep 500 ms before next check
Sat Feb 20 13:00:22 CST 2021- readRange, fileName : tmp_11.png, text : 跳过Sat Feb 20 13:00:22 CST 2021- 跳过
Sat Feb 20 13:00:22 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:00:23 CST 2021- readRange, fileName : tmp_12.png, text :
Sat Feb 20 13:00:23 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:00:25 CST 2021- readRange, fileName : tmp_13.png, text : 努刀打扫 战蛎 ′ 清啊Sat Feb 20 13:00:25 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:00:27 CST 2021- readRange, fileName : tmp_14.png, text : 努刀打扫 战蛎, 清啊Sat Feb 20 13:00:27 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:00:28 CST 2021- readRange, redirectFile : tmp_14.png, text : 努刀打扫 战蛎, 清啊Sat Feb 20 13:00:28 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:00:28 CST 2021- readRange, redirectFile : tmp_14.png, text : 努刀打扫 战蛎, 清啊Sat Feb 20 13:00:28 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:00:29 CST 2021- readRange, redirectFile : tmp_14.png, text : 努刀打扫 战蛎, 清啊Sat Feb 20 13:00:29 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:00:30 CST 2021- readRange, fileName : tmp_15.png, text :
Sat Feb 20 13:00:30 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:00:32 CST 2021- readRange, fileName : tmp_16.png, text : 点击屏幕继续Sat Feb 20 13:00:32 CST 2021- 继续游戏
Sat Feb 20 13:00:32 CST 2021- currentStage : AGAIN, sleep 500 ms before next check
Sat Feb 20 13:00:34 CST 2021- readRange, fileName : tmp_17.png, text : 再次洮战Sat Feb 20 13:00:34 CST 2021- 再次挑战
Sat Feb 20 13:00:34 CST 2021- currentStage : START, sleep 500 ms before next check
Sat Feb 20 13:00:34 CST 2021- the 1th cost 63177 ms, sleep 1000 ms before next business
Sat Feb 20 13:00:35 CST 2021- repeat 1, total cost 63177 ms, avg : 63177 ms
Sat Feb 20 13:00:35 CST 2021- readRange, redirectFile : tmp_4.png, text : 闯 天Sat Feb 20 13:00:35 CST 2021- 开始游戏
Sat Feb 20 13:00:35 CST 2021- do bizSleep : 34000 ms
Sat Feb 20 13:01:12 CST 2021- readRange, fileName : tmp_18.png, text : ′ 蘑Sat Feb 20 13:01:12 CST 2021- currentStage : WAITING_BIZ, sleep 500 ms before next check
Sat Feb 20 13:01:14 CST 2021- readRange, fileName : tmp_19.png, text : ′ 镰Sat Feb 20 13:01:14 CST 2021- currentStage : WAITING_BIZ, sleep 500 ms before next check
Sat Feb 20 13:01:16 CST 2021- readRange, fileName : tmp_20.png, text : ′ 棘Sat Feb 20 13:01:17 CST 2021- currentStage : WAITING_BIZ, sleep 500 ms before next check
Sat Feb 20 13:01:17 CST 2021- readRange, redirectFile : tmp_7.png, text : 跳过Sat Feb 20 13:01:17 CST 2021- 跳过
Sat Feb 20 13:01:17 CST 2021- currentStage : WAITING_BIZ, sleep 500 ms before next check
Sat Feb 20 13:01:18 CST 2021- readRange, redirectFile : tmp_20.png, text : ′ 棘Sat Feb 20 13:01:18 CST 2021- currentStage : WAITING_BIZ, sleep 500 ms before next check
Sat Feb 20 13:01:21 CST 2021- readRange, fileName : tmp_21.png, text : 嬴】Sat Feb 20 13:01:21 CST 2021- currentStage : WAITING_BIZ, sleep 500 ms before next check
Sat Feb 20 13:01:23 CST 2021- readRange, fileName : tmp_22.png, text : 跳过Sat Feb 20 13:01:24 CST 2021- 跳过
Sat Feb 20 13:01:24 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:01:24 CST 2021- readRange, redirectFile : tmp_13.png, text : 努刀打扫 战蛎 ′ 清啊Sat Feb 20 13:01:24 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:01:25 CST 2021- readRange, redirectFile : tmp_13.png, text : 努刀打扫 战蛎 ′ 清啊Sat Feb 20 13:01:25 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:01:25 CST 2021- readRange, redirectFile : tmp_13.png, text : 努刀打扫 战蛎 ′ 清啊Sat Feb 20 13:01:25 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:01:31 CST 2021- readRange, fileName : tmp_23.png, text : 努刀打扫 战蛎, 清啊Sat Feb 20 13:01:31 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:01:32 CST 2021- readRange, redirectFile : tmp_15.png, text :
Sat Feb 20 13:01:32 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:01:32 CST 2021- readRange, redirectFile : tmp_15.png, text :
Sat Feb 20 13:01:32 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:01:33 CST 2021- readRange, redirectFile : tmp_15.png, text :
Sat Feb 20 13:01:33 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:01:33 CST 2021- readRange, redirectFile : tmp_16.png, text : 点击屏幕继续Sat Feb 20 13:01:34 CST 2021- 继续游戏
Sat Feb 20 13:01:34 CST 2021- currentStage : AGAIN, sleep 500 ms before next check
Sat Feb 20 13:01:34 CST 2021- readRange, redirectFile : tmp_17.png, text : 再次洮战Sat Feb 20 13:01:34 CST 2021- 再次挑战
Sat Feb 20 13:01:34 CST 2021- currentStage : START, sleep 500 ms before next check
Sat Feb 20 13:01:35 CST 2021- the 2th cost 59785 ms, sleep 1000 ms before next business
Sat Feb 20 13:01:36 CST 2021- repeat 2, total cost 122962 ms, avg : 61481 ms
Sat Feb 20 13:01:36 CST 2021- readRange, redirectFile : tmp_4.png, text : 闯 天Sat Feb 20 13:01:36 CST 2021- 开始游戏
Sat Feb 20 13:01:36 CST 2021- do bizSleep : 34000 ms
Sat Feb 20 13:02:14 CST 2021- readRange, fileName : tmp_24.png, text : ′ 蘑Sat Feb 20 13:02:14 CST 2021- currentStage : WAITING_BIZ, sleep 500 ms before next check
Sat Feb 20 13:02:17 CST 2021- readRange, fileName : tmp_25.png, text : ′寰.Sat Feb 20 13:02:17 CST 2021- currentStage : WAITING_BIZ, sleep 500 ms before next check
Sat Feb 20 13:02:23 CST 2021- readRange, fileName : tmp_26.png, text : ′ 蘑Sat Feb 20 13:02:23 CST 2021- currentStage : WAITING_BIZ, sleep 500 ms before next check
Sat Feb 20 13:02:23 CST 2021- readRange, redirectFile : tmp_7.png, text : 跳过Sat Feb 20 13:02:24 CST 2021- 跳过
Sat Feb 20 13:02:24 CST 2021- currentStage : WAITING_BIZ, sleep 500 ms before next check
Sat Feb 20 13:02:28 CST 2021- readRange, fileName : tmp_27.png, text :
Sat Feb 20 13:02:28 CST 2021- currentStage : WAITING_BIZ, sleep 500 ms before next check
Sat Feb 20 13:02:32 CST 2021- readRange, fileName : tmp_28.png, text : 跳过Sat Feb 20 13:02:33 CST 2021- 跳过
Sat Feb 20 13:02:33 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:02:33 CST 2021- readRange, redirectFile : tmp_13.png, text : 努刀打扫 战蛎 ′ 清啊Sat Feb 20 13:02:34 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:02:34 CST 2021- readRange, redirectFile : tmp_13.png, text : 努刀打扫 战蛎 ′ 清啊Sat Feb 20 13:02:34 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:02:40 CST 2021- readRange, fileName : tmp_29.png, text : 努刀打扫 战蛎, 清啊Sat Feb 20 13:02:40 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:02:41 CST 2021- readRange, redirectFile : tmp_15.png, text :
Sat Feb 20 13:02:41 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:02:41 CST 2021- readRange, redirectFile : tmp_15.png, text :
Sat Feb 20 13:02:41 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:02:42 CST 2021- readRange, redirectFile : tmp_15.png, text :
Sat Feb 20 13:02:42 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:02:42 CST 2021- readRange, redirectFile : tmp_16.png, text : 点击屏幕继续Sat Feb 20 13:02:43 CST 2021- 继续游戏
Sat Feb 20 13:02:43 CST 2021- currentStage : AGAIN, sleep 500 ms before next check
Sat Feb 20 13:02:43 CST 2021- readRange, redirectFile : tmp_17.png, text : 再次洮战Sat Feb 20 13:02:44 CST 2021- 再次挑战
Sat Feb 20 13:02:44 CST 2021- currentStage : START, sleep 500 ms before next check
Sat Feb 20 13:02:44 CST 2021- the 3th cost 68370 ms, sleep 1000 ms before next business
Sat Feb 20 13:02:45 CST 2021- repeat 3, total cost 191332 ms, avg : 63777 ms
Sat Feb 20 13:02:45 CST 2021- readRange, redirectFile : tmp_4.png, text : 闯 天Sat Feb 20 13:02:46 CST 2021- 开始游戏
Sat Feb 20 13:02:46 CST 2021- do bizSleep : 34000 ms
Sat Feb 20 13:03:23 CST 2021- readRange, fileName : tmp_30.png, text : ′ 蘑Sat Feb 20 13:03:23 CST 2021- currentStage : WAITING_BIZ, sleep 500 ms before next check
Sat Feb 20 13:03:26 CST 2021- readRange, fileName : tmp_31.png, text : ′ 蘑Sat Feb 20 13:03:26 CST 2021- currentStage : WAITING_BIZ, sleep 500 ms before next check
Sat Feb 20 13:03:28 CST 2021- readRange, fileName : tmp_32.png, text : ′ 蘑Sat Feb 20 13:03:28 CST 2021- currentStage : WAITING_BIZ, sleep 500 ms before next check
Sat Feb 20 13:03:31 CST 2021- readRange, fileName : tmp_33.png, text : ′ 蘑Sat Feb 20 13:03:31 CST 2021- currentStage : WAITING_BIZ, sleep 500 ms before next check
Sat Feb 20 13:03:34 CST 2021- readRange, fileName : tmp_34.png, text : ′ 蘑Sat Feb 20 13:03:34 CST 2021- currentStage : WAITING_BIZ, sleep 500 ms before next check
Sat Feb 20 13:03:35 CST 2021- readRange, redirectFile : tmp_7.png, text : 跳过Sat Feb 20 13:03:35 CST 2021- 跳过
Sat Feb 20 13:03:35 CST 2021- currentStage : WAITING_BIZ, sleep 500 ms before next check
Sat Feb 20 13:03:39 CST 2021- readRange, fileName : tmp_35.png, text : ′ 蘑Sat Feb 20 13:03:39 CST 2021- currentStage : WAITING_BIZ, sleep 500 ms before next check
Sat Feb 20 13:03:42 CST 2021- readRange, fileName : tmp_36.png, text : 跳过Sat Feb 20 13:03:42 CST 2021- 跳过
Sat Feb 20 13:03:42 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:03:43 CST 2021- readRange, redirectFile : tmp_13.png, text : 努刀打扫 战蛎 ′ 清啊Sat Feb 20 13:03:43 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:03:43 CST 2021- readRange, redirectFile : tmp_13.png, text : 努刀打扫 战蛎 ′ 清啊Sat Feb 20 13:03:43 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:03:44 CST 2021- readRange, redirectFile : tmp_13.png, text : 努刀打扫 战蛎 ′ 清啊Sat Feb 20 13:03:44 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:03:44 CST 2021- readRange, redirectFile : tmp_14.png, text : 努刀打扫 战蛎, 清啊Sat Feb 20 13:03:44 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:03:45 CST 2021- readRange, redirectFile : tmp_14.png, text : 努刀打扫 战蛎, 清啊Sat Feb 20 13:03:45 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:03:45 CST 2021- readRange, redirectFile : tmp_14.png, text : 努刀打扫 战蛎, 清啊Sat Feb 20 13:03:46 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:03:46 CST 2021- readRange, redirectFile : tmp_14.png, text : 努刀打扫 战蛎, 清啊Sat Feb 20 13:03:46 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:03:50 CST 2021- readRange, fileName : tmp_37.png, text : 努刀打扫 战聊, 清啊Sat Feb 20 13:03:50 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:03:50 CST 2021- readRange, redirectFile : tmp_15.png, text :
Sat Feb 20 13:03:50 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:03:51 CST 2021- readRange, redirectFile : tmp_15.png, text :
Sat Feb 20 13:03:51 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:03:51 CST 2021- readRange, redirectFile : tmp_16.png, text : 点击屏幕继续Sat Feb 20 13:03:51 CST 2021- 继续游戏
Sat Feb 20 13:03:51 CST 2021- currentStage : AGAIN, sleep 500 ms before next check
Sat Feb 20 13:03:52 CST 2021- readRange, redirectFile : tmp_17.png, text : 再次洮战Sat Feb 20 13:03:52 CST 2021- 再次挑战
Sat Feb 20 13:03:52 CST 2021- currentStage : START, sleep 500 ms before next check
Sat Feb 20 13:03:53 CST 2021- the 4th cost 67430 ms, sleep 1000 ms before next business
Sat Feb 20 13:03:54 CST 2021- repeat 4, total cost 258762 ms, avg : 64690 ms
Sat Feb 20 13:03:54 CST 2021- readRange, redirectFile : tmp_4.png, text : 闯 天Sat Feb 20 13:03:54 CST 2021- 开始游戏
Sat Feb 20 13:03:54 CST 2021- do bizSleep : 34000 ms
Sat Feb 20 13:04:30 CST 2021- readRange, fileName : tmp_38.png, text : 〔`蘑Sat Feb 20 13:04:30 CST 2021- currentStage : WAITING_BIZ, sleep 500 ms before next check
Sat Feb 20 13:04:33 CST 2021- readRange, fileName : tmp_39.png, text : ′ 镰Sat Feb 20 13:04:33 CST 2021- currentStage : WAITING_BIZ, sleep 500 ms before next check
Sat Feb 20 13:04:38 CST 2021- readRange, fileName : tmp_40.png, text : ′ 镰Sat Feb 20 13:04:38 CST 2021- currentStage : WAITING_BIZ, sleep 500 ms before next check
Sat Feb 20 13:04:38 CST 2021- readRange, redirectFile : tmp_7.png, text : 跳过Sat Feb 20 13:04:38 CST 2021- 跳过
Sat Feb 20 13:04:38 CST 2021- currentStage : WAITING_BIZ, sleep 500 ms before next check
Sat Feb 20 13:04:42 CST 2021- readRange, fileName : tmp_41.png, text : 〔蘑Sat Feb 20 13:04:42 CST 2021- currentStage : WAITING_BIZ, sleep 500 ms before next check
Sat Feb 20 13:04:42 CST 2021- readRange, redirectFile : tmp_28.png, text : 跳过Sat Feb 20 13:04:42 CST 2021- 跳过
Sat Feb 20 13:04:42 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:04:45 CST 2021- readRange, fileName : tmp_42.png, text : . ′g
二 蛐
,一`__ ′ ′>_JSat Feb 20 13:04:45 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:04:46 CST 2021- readRange, redirectFile : tmp_14.png, text : 努刀打扫 战蛎, 清啊Sat Feb 20 13:04:46 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:04:46 CST 2021- readRange, redirectFile : tmp_14.png, text : 努刀打扫 战蛎, 清啊Sat Feb 20 13:04:46 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:04:47 CST 2021- readRange, redirectFile : tmp_14.png, text : 努刀打扫 战蛎, 清啊Sat Feb 20 13:04:47 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:04:47 CST 2021- readRange, redirectFile : tmp_14.png, text : 努刀打扫 战蛎, 清啊Sat Feb 20 13:04:47 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:04:48 CST 2021- readRange, redirectFile : tmp_14.png, text : 努刀打扫 战蛎, 清啊Sat Feb 20 13:04:48 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:04:48 CST 2021- readRange, redirectFile : tmp_14.png, text : 努刀打扫 战蛎, 清啊Sat Feb 20 13:04:48 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:04:49 CST 2021- readRange, redirectFile : tmp_14.png, text : 努刀打扫 战蛎, 清啊Sat Feb 20 13:04:49 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:04:49 CST 2021- readRange, redirectFile : tmp_14.png, text : 努刀打扫 战蛎, 清啊Sat Feb 20 13:04:49 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:04:50 CST 2021- readRange, redirectFile : tmp_14.png, text : 努刀打扫 战蛎, 清啊Sat Feb 20 13:04:50 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:04:51 CST 2021- readRange, redirectFile : tmp_15.png, text :
Sat Feb 20 13:04:51 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:04:51 CST 2021- readRange, redirectFile : tmp_15.png, text :
Sat Feb 20 13:04:51 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:04:52 CST 2021- readRange, redirectFile : tmp_15.png, text :
Sat Feb 20 13:04:52 CST 2021- currentStage : NEXT, sleep 500 ms before next check
Sat Feb 20 13:04:52 CST 2021- readRange, redirectFile : tmp_16.png, text : 点击屏幕继续Sat Feb 20 13:04:52 CST 2021- 继续游戏
Sat Feb 20 13:04:52 CST 2021- currentStage : AGAIN, sleep 500 ms before next check
Sat Feb 20 13:04:53 CST 2021- readRange, redirectFile : tmp_17.png, text : 再次洮战Sat Feb 20 13:04:53 CST 2021- 再次挑战
Sat Feb 20 13:04:53 CST 2021- currentStage : START, sleep 500 ms before next check
Sat Feb 20 13:04:54 CST 2021- the 5th cost 60035 ms, sleep 1000 ms before next business
Sat Feb 20 13:04:55 CST 2021- repeat 5, total cost 318797 ms, avg : 63759 ms

参考

tobyqin/kog-money

java.awt.Robot的一些使用

26 王者荣耀刷金币脚本相关推荐

  1. 手机写python脚本_用Python写王者荣耀刷金币脚本

    王者荣耀很多朋友都想买脚本和挂之类的,想更加容易的获得金币等可以在游戏里买英雄等,今天我们发挥程序员的优势教给大家用Python语言自己写一个可以刷金币的脚本,以下是全部内容. 王者荣耀的冒险模式里有 ...

  2. python和易语言写游戏脚本_用Python写王者荣耀刷金币脚本

    王者荣耀很多朋友都想买脚本和挂之类的,想更加容易的获得金币等可以在游戏里买英雄等,今天我们发挥程序员的优势教给大家用Python语言自己写一个可以刷金币的脚本,以下是全部内容. 王者荣耀的冒险模式里有 ...

  3. 怎么用python写脚本刷金币_用Python写王者荣耀刷金币脚本

    王者荣耀很多朋友都想买脚本和挂之类的,想更加容易的获得金币等可以在游戏里买英雄等,今天我们发挥程序员的优势教给大家用Python语言自己写一个可以刷金币的脚本,以下是全部内容. 王者荣耀的冒险模式里有 ...

  4. python脚本 游戏赚金币_用Python写王者荣耀刷金币脚本

    王者荣耀很多朋友都想买脚本和挂之类的,想更加容易的获得金币等可以在游戏里买英雄等,今天我们发挥程序员的优势教给大家用Python语言自己写一个可以刷金币的脚本,以下是全部内容. 王者荣耀的冒险模式里有 ...

  5. 王者荣耀刷金币脚本,买英雄你还愁么?

    原理: 由于每次通过冒险模式都会有金币,而这个动作十分重复,连图像识别都不需要,可以考虑使用程序代替人工. 简单的说是重复以下的步骤: 界面打开至挑战关卡:陨落的废都 - 魔女回忆 [点击下一步] 点 ...

  6. 可能你需要一个王者荣耀刷金币神器(解除网瘾)

    这个小东西大概是在我大二的时候接触JAVA第二周的时候写的 算是我戒除游戏的头号功臣!! 主要思路: 用一个鼠标连点器加上王者荣耀模拟器让它能够不间断地打冒险模式.. 效果: 每周的金币能够在两个半小 ...

  7. python脚本 游戏赚金币兑换钱_一种王者荣耀刷金币方法(python脚本)

    所用工具环境 python3.6.5 和 支持自动鼠标键盘点击等编程的pyautogui功能包 windows PC,安卓模拟器bluestacks,安装王者荣耀 基本思路 王者荣耀有闯关任务模式可以 ...

  8. python 安卓王者荣耀刷金币

    python王者荣耀金币脚本 用python模拟按键自动刷王者荣耀冒险模式的脚本 1.在电脑上使用手游模拟器,我用的腾讯手游助手 2.王者代码中截图部分以及路劲部分自己设定,截图一定要自己截,可能我们 ...

  9. 王者荣耀刷金币小程序

    前两天让同学帮我上个王者(没办法,自己技术不行),他需要英雄,而我没有金币,买不起(钱多重要!!!),就只好云刷金币,但是我这么懒,哪愿意手动刷呀--所以,就想办法呗.经过长时间的战斗(好像也没有多长 ...

  10. 王者荣耀刷金币辅助(安卓调试桥与python的联合使用)

    安装安卓调试桥 下面提供一个安卓调试桥的下载地址: 点击进入安卓调试桥的下载地址 找到Android Debug Bridge.zip压缩包进行下载,下载完成后解压. 打开解压后的文件,找到adb.e ...

最新文章

  1. sql查询语句优化需要注意的几点
  2. java中的强制类型转换:int和byte
  3. oracle conneciton properties,在WAS Liberty连接池中,我可以验证借用连接吗?
  4. 算法研究:插入类排序(简单插入,折半插入,希尔排序)
  5. 今日英语:out of the box
  6. 【第五周课后作业】“番茄工作法”软件创新性分析
  7. java suppliers_java8的Supplier
  8. pycharm 中文_环境搭建:3.pycharm社区版安装配置
  9. CXF 中使用 wsdl2java 示例
  10. 小萝贝控机大师工具推荐(一款在PC就能控制手机界面的工具)
  11. js正则表达式 读取html代码中的 json 值,js读取json文件片段中的数据实例
  12. limeSurvey资料
  13. 张家界航空工业职业学院计算机,张家界航空工业职业技术学院2021年招生代码...
  14. 关于ICP和EDI许可证,你了解多少?
  15. Python之路,Day1 - Python基础1
  16. php laravel 增删查改,通过 Laravel Eloquent 模型实现简单增删改查操作
  17. Python学习记录-实战一、车牌归属地
  18. adb连接雷电模拟器失败
  19. web前端开发人员要求,css设置背景图片自适应
  20. Hibiscus的脑机接口学习周报(2023/1/9~2023/1/15)

热门文章

  1. 软件测试周刊(第54期):管他乐观还是悲观,都滚蛋,干就完了。
  2. 优化计算机组策略,windows系统优化--使你的计算机飞起来
  3. ASP.NET 4.0 尚未在WEB服务器上注册
  4. Python语言程序设计基础_期末作品设计——收银软件(2020-2 B)_答案_通识教育必修课程_上海师范大学
  5. 火车票软件哪个好用_买火车票哪个软件好用 哪个软件买火车票便宜
  6. JavaWeb的体育用品商店的设计与实现
  7. 求一阶微分方程通解和特解
  8. 入侵html数据库,教你如何暴库(网站入侵)
  9. D盘需要管理员权限解决办法
  10. flink 一次job卡deploying故障解决