搜索
查看: 1197|回复: 1
收起左侧

[辅助/脚本] Autojs王者荣耀冒险模式自动刷金币

[复制链接]

签到天数: 75 天

[LV.6]常住居民II

发表于 2020-10-17 18:30:00 | 显示全部楼层 |阅读模式
本帖最后由 UPX1 于 2020-10-17 18:31 编辑

刷币效果可能一般,一局也就十几个金币,但思路可参考!

用法:
第一次启动:
先手动登录王者荣耀,进入“万象天工->冒险模式->挑战”,选一个关卡,选好上场英雄
再关闭王者荣耀,运行脚本
脚本会按照你选的英雄,重复刷你选的关卡
要停止脚本,可按音量+键

非第一次启动:
直接运行脚本即可

说明:
截图权限一定要给

成品脚本: 王者荣耀挑战模式自动金币.zip (2.18 KB, 下载次数: 203)

  1. auto();

  2. /**
  3. 用法:
  4. 第一次启动:
  5.     先手动登录王者荣耀,进入“万象天工->冒险模式->挑战”,选一个关卡,选好上场英雄
  6.     再关闭王者荣耀,运行脚本
  7.     脚本会按照你选的英雄,重复刷你选的关卡
  8.     要停止脚本,可按音量+键

  9. 非第一次启动:
  10.     直接运行脚本即可

  11. 说明:
  12.     截图权限一定要给
  13. */

  14. function deBug(str) {
  15.     log(str);
  16.     toast(str);
  17. }

  18. function findImg(iconName)
  19. {
  20.     var img = captureScreen();
  21.     while(!img) {
  22.         sleep(500);
  23.         img = captureScreen();
  24.     }
  25.     // deBug("截图完成!");
  26.     var url="http://xfxuezhang.cn/WEB/SHARE/GoK/"+iconName;
  27.     // deBug(url);

  28.     var targetImg = null;
  29.     if(!files.exists("GoKtemp.jpg")) {
  30.         var res = http.get(url);
  31.         if(res.statusCode == 200){
  32.             files.writeBytes("GoKtemp.jpg", res.body.bytes());
  33.             // targetImg = images.fromBytes(res.body.bytes());
  34.             // deBug("下载成功");
  35.         }else{
  36.             deBug("请求失败: "+url);
  37.             return null;
  38.         }
  39.     }
  40.     targetImg = images.read("GoKtemp.jpg");
  41.     var p = findImage(img, targetImg, { threshold: 0.9 });
  42.     if(p){
  43.         // deBug("找到啦:" + p);
  44.     }else{
  45.         // deBug("没找到");
  46.     }
  47.     return p;
  48. }

  49. // 删除下载的缓存图片
  50. function clearImgCache() {
  51.     if(files.exists("GoKtemp.jpg")) {
  52.         files.remove("GoKtemp.jpg");
  53.     }
  54. }

  55. // 匹配比对大小图
  56. function matchImg(wait, imgName, tim) {
  57.     clearImgCache();
  58.     var res = null;
  59.     if(wait == 1) {
  60.         res = findImg(imgName);
  61.         while(!res) {
  62.             sleep(tim);
  63.             res = findImg(imgName);
  64.         }
  65.         return res;
  66.     }else{
  67.         return findImg(imgName);
  68.     }
  69. }

  70. function closeWidget() {
  71.     matchImg(1, "close.jpg", 2000);
  72.     //while(!findImg("close.jpg")) {sleep(2000);}

  73.     deBug("进入完成");
  74.     deBug("关闭弹窗");
  75.     clearImgCache();
  76.     var position = matchImg(0, "close.jpg", 0);
  77.     // var position = findImg("close.jpg");
  78.     while(position) {
  79.         click(position.x, position.y);
  80.         sleep(500);
  81.         position = matchImg(0, "close.jpg", 0);
  82.         // position = findImg("close.jpg");
  83.     }

  84.     // 再等等,怕他弹出直播界面
  85.     sleep(2000);
  86.     var position = matchImg(0, "close.jpg", 0);
  87.     // var position = findImg("close.jpg");
  88.     while(position) {
  89.         click(position.x, position.y);
  90.         sleep(500);
  91.         position = matchImg(0, "close.jpg", 0);
  92.         // position = findImg("close.jpg");
  93.     }
  94.     deBug("关闭完成");
  95. }

  96. function enterGame() {
  97.     var targetPackage = "com.tencent.tmgp.sgame";
  98.     deBug("启动 王者荣耀");
  99.     app.launchPackage(targetPackage)   
  100.     var position = matchImg(1, "startgame.jpg", 2000);
  101.     deBug("启动成功");
  102.     //while(!findImg("startgame.jpg")) {sleep(2000);}
  103.     //var position = findImg("startgame.jpg");
  104.     if(position) {
  105.         deBug("点击 开始游戏");
  106.         click(position.x, position.y);
  107.         sleep(2000);
  108.         matchImg(1, "startgame.jpg", 2000);
  109.         //while(findImg("startgame.jpg")) {sleep(2000);}
  110.         deBug("正在进入");
  111.     }
  112. }

  113. // 点击开始闯关 -> 闯关完成
  114. function startAction(circle) {
  115.         // 闯关
  116.         deBug("进入 闯关");
  117.         var position = matchImg(0, "action.jpg", 0);
  118.         // var position = findImg("action.jpg");
  119.         click(position.x, position.y);
  120.         sleep(500);

  121.         while(1) {
  122.             position = matchImg(0, "recovery.jpg", 0);
  123.             if(position) {
  124.                 break;
  125.             }

  126.             // 有些场景一上来就是等待,且不会自动“跳过”
  127.             position = matchImg(0, "skip.jpg", 0);
  128.             if(position) {
  129.                 deBug("跳过");
  130.                 click(position.x, position.y);
  131.                 break;
  132.             }
  133.             sleep(1000);
  134.         }

  135.         // matchImg(1, "recovery.jpg", 2000);
  136.         deBug("进入完成");

  137.         position = matchImg(0, "autoenable.jpg", 0);
  138.         if(position) {
  139.             deBug("已经是 自动");
  140.         }else{
  141.             position = matchImg(0, "autodisable.jpg", 0);
  142.             if(position) {
  143.                 deBug("点击 自动");
  144.                 click(position.x, position.y);
  145.             }
  146.         }

  147.         while(1) {
  148.             position = matchImg(0, "taptocontinue.jpg", 0);
  149.             if(position) {
  150.                 break;
  151.             }

  152.             // 有些场景不会自动“跳过”
  153.             position = matchImg(0, "skip.jpg", 0);
  154.             if(position) {
  155.                 deBug("跳过");
  156.                 click(position.x, position.y);
  157.             }

  158.             position = matchImg(0, "recovery.jpg", 0);
  159.             if(position) {
  160.                 deBug("加血");
  161.                 click(position.x, position.y);
  162.             }

  163.             sleep(1000);
  164.         }
  165.         // position = matchImg(1, "taptocontinue.jpg", 4000);
  166.         deBug("闯关完成");
  167.         click(position.x, position.y);
  168.         sleep(500);

  169.         if(circle == 1){
  170.             position = matchImg(1, "reaction.jpg", 2000);
  171.             deBug("再次挑战");
  172.             click(position.x, position.y);
  173.             sleep(500);
  174.         }
  175. }

  176. // 进入万象天工 -> (闯关 -> 再次挑战)
  177. function enterAdventure() {
  178.     var position = matchImg(0, "wanxiang.jpg", 0);
  179.     if(position) {
  180.         deBug("进入 万象天工");
  181.         click(position.x, position.y);
  182.         // sleep(4000);
  183.         position = matchImg(0, "adventure.jpg", 0);
  184.         while(!position) {
  185.             swipe(device.height/2, device.width/2, device.height/2-500, device.width/2, 500);
  186.             sleep(500);
  187.             position = matchImg(0, "adventure.jpg", 0);
  188.         }
  189.         deBug("进入 冒险模式");
  190.         click(position.x, position.y);
  191.         sleep(500);
  192.         deBug("进入 挑战");
  193.         click(device.height/2, device.width/2);
  194.         sleep(500);

  195.         // 下一步
  196.         deBug("进入 下一步");
  197.         position = matchImg(0, "nextstep.jpg", 0);
  198.         click(position.x, position.y);
  199.         sleep(500);

  200.         while(1) {
  201.             startAction(1);
  202.             sleep(500);
  203.         }
  204.     }
  205. }

  206. function main() {
  207.     // device.wakeUpIfNeeded();
  208.     threads.start(function(){
  209.         events.observeKey();
  210.         events.on("key_up", function(keyCode, events){
  211.             if(keyCode == keys.volume_up){ // 音量+键关闭脚本
  212.                 deBug("已停止运行");
  213.                 exit();
  214.             }
  215.         });
  216.     });

  217.     alert("用法:\n\
  218.     第一次启动:\n\
  219.         1. 先手动登录王者荣耀,进入“万象天工->冒险模式->挑战”,选一个关卡,选好上场英雄\n\
  220.         2. 再关闭王者荣耀,运行脚本\n\
  221.         3. 脚本会按照你选的英雄,重复刷你选的关卡\n\
  222.         \n\
  223.     非第一次启动:\n\
  224.         直接运行脚本即可\n\
  225.         \n\
  226.     说明:\n\
  227.         1. 截图权限一定要给\n\
  228.         2. 要停止脚本,可按音量+键\n\
  229.         3. 现在就按音量+键,也能停止运行");

  230.     //请求截图
  231.     if(!requestScreenCapture(true)){
  232.         deBug("请求截图失败");
  233.         exit();
  234.     }

  235.     enterGame();        // 进入游戏
  236.     closeWidget();      // 关闭弹窗
  237.     enterAdventure();   // 开始冒险模式
  238. }

  239. /*********************** 程序从这里开始 ***********************/
  240. main();
复制代码





上一篇:王者荣耀Mark2.0绘制辅助插件破解版本
下一篇:王者荣耀破解Mark新版绘制上市辅助

该用户从未签到

发表于 2020-10-17 20:08:43 | 显示全部楼层
啥也不说了,感谢楼主分享哇!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册用户

本版积分规则

快速回复 返回顶部 返回列表