26 王者荣耀刷金币脚本

Posted 蓝风9

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了26 王者荣耀刷金币脚本相关的知识,希望对你有一定的参考价值。

前言

呵呵 这是我一位哥说起他之前找了一个王者荣耀 刷金币脚本, 说是 放在那里 睡一晚上 卧槽 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 

    // robot
    static Robot robot = null;
    // tessreact
    static Tesseract tessreact = new Tesseract();
    // appLeftTop
    static Point appLT = new Point(1920, 0);
    // contBtn point + range
    static Point contBtnLT = new Point(1182, 745);
    static Point contBtnRange = new Point(250, 70);
    // skipBtn point + range
    static Point skipBtnLT = new Point(1491, 51);
    static Point skipBtnRange = new Point(102, 52);
    // nextBtn point + range
    static Point nextBtnLT = new Point(690, 826);
    static Point nextBtnRange = new Point(240, 40);
    // againBtn point + range
    static Point againBtnLT = new Point(1242, 826);
    static Point againBtnRange = new Point(280, 72);

    // tmp dir
    static String tmpDir = "D:\\\\ProgramFiles\\\\Test07GetMoneyHornorOfKings\\\\" + DateUtils.nowStr();
    // conf file
    static String confFile = "D:\\\\ProgramFiles\\\\Test07GetMoneyHornorOfKings\\\\conf.properties";
    // tmpFile counter
    static int counter = 0;
    // business sleep
    static int bizSleep = 30;
    // next-stage check sleep
    static int nextStageCheckSleep = 300;
    // next business sleep
    static int nextBizSleep = 1000;
    // skip count
    static int skipCount = 2;
    // sample estimate count
    static int sampleEstimateCount = 100;
    // digest salt
    static String digestSalt = "$1$salt";
    // stage imageId -> text
    static Map<String, String> imgId2Text = new HashMap<>();
    static Map<String, String> imgId2File = new HashMap<>();

    // initialize
    static 
        try 
            robot = new Robot();

            new File(tmpDir).delete();
            new File(tmpDir).mkdirs();

            tessreact.setDatapath("D:\\\\Program Files\\\\Tesseract-OCR");
            tessreact.setLanguage("chi_sim");

            // load properties
            Properties 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 business
    public static long doBiz(int theN) throws Exception 
        Stage stage = Stage.START;
        // get start
        long 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 cache
        if (imgId2Text.containsKey(imgId)) 
            String redirectFile = imgId2File.get(imgId);
            String result = imgId2Text.get(imgId);
            appendToLogFile(" readRange, redirectFile : " + redirectFile + ", text : " + result);
            return result;
        

        // do ocr
        String result = tessreact.doOCR(img);
        String fileSuffix = "png";
        String fileName = "tmp_" + (counter++) + "." + fileSuffix;
        ImageIO.write(img, fileSuffix, new File(tmpDir, fileName));

        // store cache
        imgId2File.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();
    

    // --------------------------------- 辅助数据结构 ---------------------------------------------

    // 脚本运行时的 各个 stage
    private 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 200

pause 

然后再增加一个 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
二 蛐
,一`__ ′ ′>_J


Sat 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 王者荣耀刷金币脚本的主要内容,如果未能解决你的问题,请参考以下文章

Python-王者自动刷金币+爬取英雄信息+图片

利用Python自动操纵鼠标键盘刷金币,工作室都是靠这种搬砖

刷Q币漏洞代码

Python脚本得王者金币,王者大佬快来带我飞

王者荣耀庄周中端局上分指南

王者荣耀签名怎么设置