Autojs4.1.1学习实践-奖券世界版

最近研究各种产品,发现了autojs,瞎折腾的心又按捺不住了。然后,发现奖券世界最近推的很火,于是用autojs试试牛刀,就有了今天这份文章。
相关源码见:https://download.csdn.net/download/yang3yang/60928189
相关APK见:https://wwo.lanzouo.com/i0KShxhmh0j
主要功能:自动转盘,自动看AD,自动建设国家
主要代码如下:

var ver="v0.2-1130";
pTools = require('tools.js');
adunit = require('adunit.js');
pTools.writeLog("奖券世界助手开始运行"+ver+"|"+pTools.version()+"|"+adunit.version());
// #初始化配置区
var conf = storages.create("assistant-jiangquanshijie");
var lstFlowFinish=0;
var ZP=0;
var BCYB_0=0;
var BCYB_12=0;
var BCYB_20=0;
加载配置();

//#
var curTime = new Date();
var waitADTimes = 5000;//#广告播放之前的等待时长
var sPackName="com.caike.ticket";
var ADTimeOut =70;
var maxRuntime=30;//#最大运行时长

//#获取截屏权限
if(!pTools.requestScreenCapturePermision()){exit();};

threads.start(function () {
    main()
    pTools.writeLog("奖券世界助手运行结束");
    pTools.log2File("log-jqsj");
});

function main() {
    try {
        if(无法再获取银币()){
            pTools.writeLog("银币无领取次数!暂不建设国家!");
            home(); 
            return;
        }

        if (!packageName(sPackName).findOnce()) {
            app.launch(sPackName);
            pTools.writeLog("启动奖券世界APP");
            sleep(15 * 1000);//#等待APP启动
            if (!packageName(sPackName).findOnce()) {
                pTools.writeLog("启动奖券世界APP失败?");
                //home();return;
            }
        }
        离线收益();
        转盘();
        
        var startTime =new Date().getTime();
        建设国家();
        while(new Date().getTime()-startTime<maxRuntime*60*1000){
            //#运行时长
            if(!建设国家()){
                break;
            }
        }

        curTime = new Date();
        lstFlowFinish = curTime.getTime();
        conf.put("lstFlowFinish", lstFlowFinish);

        pTools.closeAPP(sPackName);
        home();          
    } catch (a) {
        pTools.writeLog("异常" + a)
        // home(); 
        return;
    }
    //console.hide();
};

///=======================业务函数区====================================///
//#加载配置
function 加载配置() {
    maxRuntime =conf.get("maxruntime");
    if (!maxRuntime) { maxRuntime = 30; };//#默认运行最多10分钟

    lstFlowFinish = conf.get("lstFlowFinish");
    if (!lstFlowFinish) { lstFlowFinish = 0; };
    console.log("lstFlowFinish:" + lstFlowFinish);

    ZP = conf.get("zp");
    if (!ZP) { ZP = 0; };
    console.log("zp:" + ZP);

    curTime =new Date();
    if(curTime.getHours()>=0 && curTime.getHours()<12){
        BCYB_0 = conf.get("bcyb_0");
        if (!BCYB_0) { BCYB_0 = 0; };
        console.log("bcyb_0:" + BCYB_0);

        BCYB_12=0;
        conf.put("bcy_12",BCYB_12);
        
        BCYB_20=0;
        conf.put("bcy_20",BCYB_20);

    }else if(curTime.getHours()>=12 && curTime.getHours()<20){
        BCYB_12 = conf.get("bcyb_12");
        if (!BCYB_12) { BCYB_12 = 0; };
        console.log("bcyb_12:" + BCYB_12);

        BCYB_0=0;
        conf.put("bcy_0",BCYB_0);
        
        BCYB_20=0;
        conf.put("bcy_20",BCYB_20);
    }else{
        BCYB_20 = conf.get("bcyb_20");
        if (!BCYB_20) { BCYB_20 = 0; };
        console.log("bcyb_20:" + BCYB_20);

        BCYB_12=0;
        conf.put("bcy_12",BCYB_12);
        
        BCYB_0=0;
        conf.put("bcy_0",BCYB_0);
    } 
}
function 离线收益() {
    var b =text("翻倍领取").findOnce();
    if (b) {
        sleep(500);
        pTools.writeLog("点击翻倍领取!");
        pTools.randomClickVAD(b.bounds().centerX(), b.bounds().centerY(),20,waitADTimes);
        adunit.handleIncentiveAD(ADTimeOut);
        sleep(1500);

        b =text("开心收下").findOnce();
        if(b){
            sleep(500);
            pTools.writeLog("点击开心收下!");
            pTools.randomClick(b.bounds().centerX(), b.bounds().centerY(),20);
            sleep(1500);
        }else{
            pTools.writeLog("点击开心收下失败!" ,true);
        }
    }
};
function 转盘() {
    // #
    if(curTime.getDate()== ZP){
        pTools.writeLog("转盘次数已达到,不再执行!");
        return;
    }
    var b=id("iv_dial").findOnce();
    if (b) {
        sleep(500);
        pTools.randomClick(b.bounds().centerX(), b.bounds().centerY(),20);
        pTools.writeLog("点击转盘成功!");
        sleep(1500);

        for(let i=0;i<6;i++){
            b =className("android.widget.TextView").text("恢复次数").findOnce();
            if(b){//#说明转盘已经次数用完
                pTools.writeLog("转盘次数已经用完!");
                conf.put("zp", curTime.getDate());
    
                b =id("iv_close").findOnce();
                pTools.writeLog("点击关闭转盘!");
                pTools.randomClick(b.bounds().centerX(), b.bounds().centerY(),3);
                sleep(1000);
                return;
            }else{
                b =text("立刻抽奖").findOnce();
                if(b){
                    pTools.writeLog("点击立刻抽奖!");
                    pTools.randomClick(b.bounds().centerX(), b.bounds().centerY(),3);
                    sleep(7000);

                    b =text("开心收下").findOnce();
                    if(b){
                        sleep(500);
                        pTools.writeLog("点击开心收下(转盘)!");
                        pTools.randomClick(b.bounds().centerX(), b.bounds().centerY(),20);
                        sleep(1500);
                    }else{
                        pTools.writeLog("点击开心收下(转盘)失败!" ,true);
                        return;
                    }

                }else{
                    pTools.writeLog("立刻抽奖失败!");
                    return;
                }
            }
        }
    }else{
        pTools.writeLog("点击转盘失败!" ,true);
        return false;
    }

};
function 建设国家(){
    自动合成();
    var b=id("tab_buy").findOnce();
    if(b){
        for(let i=0;i<4;i++){//#每次点击4下
            pTools.randomClick(b.bounds().centerX(), b.bounds().centerY(),20);
            sleep(random(100,200));
            点击关闭();
            if(!银币不足()){
                return false;
            }
        }
        sleep(1000);//#给自动合成时间
        return true;
    }else{
        return false;
    }
};
function 自动合成() {
    var b =text("停止合成").findOnce();
    if(b){//#正在自动合成中

    }else{
        pTools.writeLog("需要自动合成!");
        b =id("lyt_auto_merge").findOnce();
        if (b) {
            sleep(500);
            pTools.writeLog("点击自动合成!");
            pTools.randomClick(b.bounds().centerX(), b.bounds().centerY(),5);
            sleep(500);
    
            b =text("看视频开启").findOnce();
            if(b){
                sleep(500);
                pTools.writeLog("点击看视频开启!");
                pTools.randomClickVAD(b.bounds().centerX(), b.bounds().centerY(),20 ,waitADTimes);
                adunit.handleIncentiveAD(ADTimeOut);
                sleep(1500);
            }else{
                pTools.writeLog("点击看视频开启失败!" ,true);
            }
        }
    }
};
function 银币不足(){
    var b =text("银币不足").findOnce();
    if(b){//#
        pTools.writeLog("需要领取银币!");
        b =text("立即领取").findOnce();
        if(b){
            sleep(500);
            pTools.writeLog("点击领取银币!");
            pTools.randomClickVAD(b.bounds().centerX(), b.bounds().centerY(),20 ,waitADTimes);
            adunit.handleIncentiveAD(ADTimeOut);
            sleep(1500);

            b =text("开心收下").findOnce();
            if(b){
                sleep(500);
                pTools.writeLog("点击开心收下(银币)!");
                pTools.randomClick(b.bounds().centerX(), b.bounds().centerY(),20);
                sleep(1500);
            }else{
                pTools.writeLog("点击开心收下(银币)失败!" ,true);
            }
            return true;
        }else{
            pTools.writeLog("银币暂无领取次数!" ,true);
            设置无法再获取银币();
            return false;
        }
    }
    return true;
};
function 点击关闭(){
    var b =text("点击关闭").findOnce();
    if(b){//#存在点击关闭按钮
        sleep(500);
        pTools.writeLog("点击关闭!");
        pTools.randomClick(b.bounds().centerX(), b.bounds().centerY(),20);
        sleep(1500);
    }
};
function 无法再获取银币(){
    curTime =new Date();
    if(curTime.getHours()>=0 && curTime.getHours()<12){
        if(BCYB_0==curTime.getDate()){
            return true;
        }else{
            return false;
        }
    }else if(curTime.getHours()>=12 && curTime.getHours()<20){
        if(BCYB_12==curTime.getDate()){
            return true;
        }else{
            return false;
        }
    }else{
        if(BCYB_20==curTime.getDate()){
            return true;
        }else{
            return false;
        }
    }
};
function 设置无法再获取银币(){
    curTime =new Date();
    if(curTime.getHours()>=0 && curTime.getHours()<12){
        BCYB_0=curTime.getDate();
        conf.put("bcyb_0",BCYB_0);
    }else if(curTime.getHours()>=12 && curTime.getHours()<20){
        BCYB_12=curTime.getDate();
        conf.put("bcyb_12",BCYB_12);
    }else{
        BCYB_20=curTime.getDate();
        conf.put("bcyb_20",BCYB_20);
    }
};

里头广告处理部分用了文章:https://blog.csdn.net/zy0412326/article/details/121099001 的方案,感谢大神。
代码比较简单,欢迎拍砖。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
### 回答1: AutoJS 4.1.1 界面设计简洁明了,分为脚本编辑和控制台两部分。脚本编辑界面提供了丰富的代码编辑功能,如语法高亮、自动补全等,方便用户编写脚本。同时也支持多窗口编程,可以方便地进行脚本调试和定位问题。 控制台界面则提供了脚本运行时的一些信息和调试工具,如日志输出、变量监控、UI查看等。用户可以通过控制台界面实时查看脚本运行状态,方便调试和优化。 AutoJS 4.1.1 界面整体设计简洁明了,符合用户使用习惯,操作也比较直观。同时还支持自定义皮肤,用户可以根据自己的喜好进行个性化设置。总之,AutoJS 4.1.1 界面设计在功能性和用户体验方面都做得比较出色,是一款不错的自动化脚本工具。 ### 回答2: AutoJS 4.1.1 的界面设计整体来说相对简洁实用。主界面分为左侧导航栏和右侧编辑器面板,左侧导航栏包含了脚本列表和一些常用功能按钮,方便用户对脚本进行管理。右侧编辑器面板则是编写脚本的主要区域,可以高亮显示语法以及提供自动补全等功能。在编辑器面板下方,AutoJS 4.1.1 提供了终端面板,方便用户在执行脚本时查看输出和错误信息。此外,界面右上角还提供了一些常用的快捷操作按钮。 虽然界面设计比较简单,但是从使用效果上考虑,AutoJS 4.1.1 的界面设计还是十分实用的。界面布局合理、操作简单,能够满足用户的日常使用需求。同时,在用户体验上也做得相当不错,细节处理得当,使得用户使用起来非常舒适。尽管对于一些高级用户来说,AutoJS 4.1.1 的界面设计可能略显简陋,但是对于大多数普通用户来说,AutoJS 4.1.1 的界面设计还是非常不错的。 ### 回答3: AutoJS 4.1.1是一款面向Android系统的JavaScript开发工具,它允许用户使用JavaScript语言编写脚本,来自动化完成一系列的任务。在AutoJS 4.1.1的界面设计上,可以说是非常简洁和直观的。 在桌面下拉菜单中,用户可以直接选择新建脚本或运行已有脚本脚本编辑器界面上,左侧为文件列表区,右侧为代码编辑区。编辑器支持代码高亮、缩进、自动补全等基本的开发功能,对于初学者而言,上手非常容易。 在AutoJS 4.1.1中,还支持多窗口设计,即在同一个脚本文件中,可以设定多个界面,实现多个功能的切换。同时,AutoJS 4.1.1脚本执行监控界面,可以清晰展示脚本执行过程中的各项数据,帮助开发者排查问题。 总的来说,AutoJS 4.1.1的界面设计是非常高效和实用的,对于JavaScript开发者和想要自动化完成一些任务的用户来说,都是值得一试的工具。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值