首页 技术资料正文

Autojs6-光闪加速器自动任务

piaodoo 技术资料 2024-11-03 10:05:06 52 0 福利教程


最近FF加速器也收费了,找到一款真正免费的网游加速器。
只需动动小手领取电力,每次加速使用电力兑换时长,中止加速自动停止消耗。
0点到14点我们可以使用AK加速器,其它时间用光闪加速器。
为了避免受到骚扰,请使用非常用账号进行登陆。
玩家可通过完成【光闪充电任务】获取【电力】为光闪加速器进行充电。
在加速游戏时,将根据对游戏的加速时长消耗相应电力。
⨠ 加速游戏的电力消耗说明:不同时段电力消耗速度不同,光闪玩家们可根据下表,找到对应时段所消耗的电力:


电力消耗按分钟为单位消耗,最小消耗为0,根据当前时段消耗速度,即时消耗;
电力不够1分钟消耗时,游戏加速将会停止;
电力长期有效,不会过期,不玩游戏时可利用空余时间积攒电力。
⨠ 电力消耗举例:假设玩家从早上11点整开始加速游戏,下午15点整结束。
消耗电力计算如下:
1:00-13:00消耗电力1200*2=2400
13:00-15:00消耗电力1800*2=3600
合计总消耗电力为2400+3600=6000。
*时长尾数不足1分钟的,将按1分钟计算电力。
具体消耗数据可点击客户端右上方头像【我的电力】中进行查看。


这个是我的号做了几天任务就可以用很久了。

以下为自动脚本,小程序调用参考了本站 dlufjfiqnurr的帖子
https://www.52pojie.cn/thread-1923165-1-1.html
需要使用一个名为快捷方式的APP和Autojs6请自行下载。
使用tasker建立定时任务 在不用手机的时间内自行完成任务。
经本人手机mate30测试可正常使用。
2024.10.30:1.增加keywords
                     2.修正BUG
2024.11.02:1.小程序主体变更由gh_96829073c4b5变更为gh_c64ac75b31df

                     2.优化逻辑
[JavaScript] 纯文本查看 复制代码

"auto"; //系统配置初始化
auto.waitFor();
if (auto.service == null) {
  log("请先开启无障碍服务!");
} else {
  log("无障碍已开启");
}
const KX = device.width / 1080; //横坐标比例系数
const KY = device.height / 2340; //纵比例系数

console.show();
console.setGlobalLogConfig({ file: "/sdcard/脚本/log.txt" });

sleep(500);
console.setSize(800 * KX, 500 * KY);
sleep(500);
console.setPosition(0 * KX, 1400 * KY);
//关闭同名脚本
onlyOne();
wakeup();
unlock();
device.setBrightnessMode(0);
//device.setBrightness(0);
device.setMusicVolume(0);
clearrecents();

sleep(1000);

//存储记录初始化
currentTime = new Date();
var currentDate =
  currentTime.getFullYear() +
  "." +
  (currentTime.getMonth() + 1) +
  "." +
  currentTime.getDate() +
  " " +
  currentTime.getHours() +
  ":" +
  currentTime.getMinutes() +
  ":" +
  currentTime.getSeconds();
currentDate.toString();
log("初始化完毕");
log("\n" + "检查当前日期:" + currentDate);
sleep(5000);
console.hide();
let keywords = [
  "已完成浏览",
  "已完成奖励",
  "进入小游戏",
  "前往小游戏",
  "立即下载",
  "立即查看",
  "立即试玩",
  "查看详情",
  "关注公众号",
  "立即咨询",
  "立即秒杀",
  "下载应用",
  "去逛逛",
  "下载游戏",
  "了解更多",
  "进入小程序",
  "立即玩",
  "立即购买",
  "查看商品",
  "立即体验",
  "立即领取",
  "领取优惠",
];
openapp();

id("gn").untilFind();
log("已在任务界面");
for (i = 0; i < 15; i++) {
  Beanstart = OCRFindText(144, 582, 324, 69);
  if (Beanstart == null || Beanstart == 0) {
    for (let j = 0; j < 5; j++) {
      sleep(1000);
    }
  } else {
    break;
  }
}
log("开始电力数为" + Beanstart);

var signinbouns = text("获取奖励").findOne(6000);
if (signinbouns != null) {
  click(signinbouns.centerX(), signinbouns.centerY());
  closescreen();
  for (let j = 0; j < 33; j++) {
    sleep(1000);
  }
  floaty.closeAll();
  for (i = 0; i < 10; i++) {
    AdButton = OCRFindCoord(0 * KX, 230 * KY, 1080 * KX, 2110 * KY, keywords);
    if (AdButton == null) {
      sleep(1000);
    } else if (i == 9) {
      log("未能识别直接关闭");
      autoclose();
      backhome();
      var iknow = text("我知道了").findOne(5000);
      if (iknow != null) {
        click(iknow.centerX(), iknow.centerY());
      }
      break;
    } else {
      click(AdButton[0], AdButton[1]);
      var cancel = text("取消").findOne(500);
      if (cancel != null) {
        click(cancel.centerX(), cancel.centerY());
      } else {
        backhome();
      }
      autoclose();
      var iknow = text("我知道了").findOne(5000);
      if (iknow != null) {
        click(iknow.centerX(), iknow.centerY());
      }
      break;
    }
  }
}
sleep(2000);
sml_move(540 * KX, 1400 * KY, 540 * KX, 400 * KY, 600);
sleep(2000);
for (let i = 0; i < 35; i++) {
  sleep(3000);
  var tofinish = text("去完成").findOnce();
  if (tofinish != null) {
    click(tofinish.centerX(), tofinish.centerY());
    closescreen();
    for (let j = 0; j < 33; j++) {
      sleep(1000);
    }
    floaty.closeAll();
    for (i = 0; i < 15; i++) {
      AdButton = OCRFindCoord(0 * KX, 230 * KY, 1080 * KX, 2110 * KY, keywords);
      if (AdButton == null) {
        sleep(1000);
      } else if (i == 14) {
        log("未能识别直接关闭");
        autoclose();
        backhome();
        var iknow = text("我知道了").findOne(5000);
        if (iknow != null) {
          click(iknow.centerX(), iknow.centerY());
        }
        break;
      } else {
        click(AdButton[0], AdButton[1]);
        var cancel = text("取消").findOne(1000);
        if (cancel != null) {
          click(cancel.centerX(), cancel.centerY());
        } else {
          backhome();
        }
        autoclose();
        var iknow = text("我知道了").findOne(5000);
        if (iknow != null) {
          click(iknow.centerX(), iknow.centerY());
        }
        break;
      }
    }
  } else {
    home();
    clearrecents();
    sleep(2000);
    openapp();
    id("gn").untilFind();
    for (i = 0; i < 15; i++) {
      Beansend = OCRFindText(144, 582, 324, 69);
      if (Beansend == null || Beansend == 0) {
        for (let j = 0; j < 5; j++) {
          sleep(1000);
        }
      } else {
        break;
      }
    }
    log("结束电力数为" + Beansend);
    toastLog("今日共领到" + (Beansend - Beanstart) + "个电力");
    sleep(1000);
    clearrecents();
    sleep(1000);
    engines.stopAllAndToast();
    device.cancelKeepingAwake();
    lock();
    break;
  }
}
//找字
function OCRFindCoord(x, y, w, h, word) {
  if (!requestScreenCapture()) {
    log("请求截图失败");
    exit();
  } else {
    log("请求截图成功");
  }

  let rawimg = captureScreen();
  log("截图成功");
  //ROI区域(x,y,宽,高)
  let img = images.clip(rawimg, x, y, w, h);
  //images.save(img, "/sdcard/脚本/ocr.png");
  const Predictor = com.baidu.paddle.lite.ocr.Predictor;

  // 指定是否用精简版模型 速度较快
  let useSlim = false;

  // 创建检测器
  let predictor = new Predictor();

  // predictor.cpuThreadNum = 4 //可以自定义使用CPU的线程数
  // predictor.checkModelLoaded = false // 可以自定义是否需要校验模型是否成功加载 默认开启 使用内置Base64图片进行校验 识别测试文本来校验模型是否加载成功

  // 初始化模型 首次运行时会比较耗时
  let loading = threads.disposable();

  // 建议在新线程中初始化模型
  threads.start(function () {
    loading.setAndNotify(predictor.init(context, useSlim));
    // loading.setAndNotify(predictor.init(context)) 为默认不使用精简版
    // 内置默认 modelPath 为 models/ocr_v3_for_cpu,初始化自定义模型请写绝对路径否则无法获取到
    // 内置默认 labelPath 为 labels/ppocr_keys_v1.txt
    // let modelPath = files.path('./models/customize') // 指定自定义模型路径
    // let labelPath = files.path('./models/customize') // 指定自定义label路径
    // 使用自定义模型时det rec cls三个模型文件名称需要手动指定
    // predictor.detModelFilename = 'det_opt.nb'
    // predictor.recModelFilename = 'rec_opt.nb'
    // predictor.clsModelFilename = 'cls_opt.nb'
    // loading.setAndNotify(predictor.init(context, modelPath, labelPath))
  });

  let loadSuccess = loading.blockedGet();
  //log(`加载模型结果:${loadSuccess}`);

  let start = new Date();
  let results = predictor.runOcr(img.getBitmap());
  let OcrCoord = null;
  if (results && results.length > 0) {
    for (let i = 0; i < results.length; i++) {
      for (let j = 0; j < word.length; j++) {
        if (results[i].label == word[j]) {
          button = results[i].bounds;
          OcrCoord = [
            Math.floor(x + button.left + (button.right - button.left) / 2),
            Math.floor(y + button.top + (button.bottom - button.top) / 2),
          ];
          break;
        }
      }
    }
  }
  //log(OcrResult);
  return OcrCoord;
  // 释放模型 用于释放native内存 非必需
  // predictor.releaseModel()

  // 回收图片
  rawimg.recycle();
  img.recycle();
}

//关闭屏幕
function closescreen() {
  var w = floaty.rawWindow(<frame gravity="center" bg="#000000" />);
  w.setSize(device.width, device.height);
  w.setPosition(0, -105 * KY);
  w.setTouchable(false);
  //保持脚本运行
  setInterval(() => {}, 1000);
}

//唤醒屏幕
function wakeup() {
  for (let i = 1; i < 11; i++) {
    if (!device.isScreenOn()) {
      device.wakeUp(); // 唤醒设备
      log("亮屏" + i + "次");
      sleep(1000);
    } else if (i == 10) {
      log("亮屏失败退出");
      exit();
    } else {
      log("已亮屏");
      device.keepScreenOn(4800 * 1000); // 保持亮屏
      break;
    }
  }
}
//判断是否有屏幕锁
function isDeviceLocked() {
  importClass(android.app.KeyguardManager);
  importClass(android.content.Context);
  var km = context.getSystemService(Context.KEYGUARD_SERVICE);
  return km.isKeyguardLocked();
}
// 输入密码
function password_input() {
  var password = "******"; //输入你的6位解锁密码
  for (var i = 0; i < password.length; i++) {
    var p = text(password[i].toString()).findOne(1000);
    longClick(p.centerX(), p.centerY());
    sleep(100);
  }
  log("解锁成功");
}
//解锁屏幕
function unlock() {
  for (let l = 1; l < 6; l++) {
    if (isDeviceLocked()) {
      sml_move(540 * KX, 1800 * KY, 600 * KX, 1000 * KY, 500);
      log("滑动屏幕" + l + "次");
      var mima = text("输入密码").findOne(2000);
      if (mima != null) {
        log("输入密码");
        password_input();
        break;
      }
    } else if (l == 5) {
      log("解锁失败退出");
      exit();
    } else {
      log("无需解锁");
      break;
    }
  }
}

//清理后台
function clearrecents() {
  recents();
  sleep(1000);
  var clearbox = id("clearbox").findOne(1000);
  if (clearbox != null) {
    click(clearbox.bounds().centerX(), clearbox.bounds().centerY());
    sleep(1000);
    home();
  } else {
    home();
  }
}
function lock() {
  var success = runtime.accessibilityBridge
    .getService()
    .performGlobalAction(
      android.accessibilityservice.AccessibilityService
        .GLOBAL_ACTION_LOCK_SCREEN
    );
}

//广告自动关闭
function autoclose() {
  for (let i = 1; i < 11; i++) {
    var closead1 = text("关闭").findOnce();
    var closead2 = bounds(14, 119, 100, 205).findOnce();
    if (closead1 != null || closead2 != null) {
      if (closead1 != null) {
        log("点击1退出按钮" + i + "次");
        click(closead1.bounds().centerX(), closead1.bounds().centerY());
        sleep(1000);
      } else if (closead2 != null) {
        log("点击2退出按钮" + i + "次");
        click(closead2.bounds().centerX(), closead2.bounds().centerY());
        sleep(1000);
      } else if (i == 10) {
        log("直接返回");
        backhome();
      }
    }
  }
}


//只允许有一个同名脚本运行
function onlyOne() {
  let g = engines.myEngine();
  var e = engines.all(),
    n = e.length;
  let r = g.getSource() + "";
  1 < n &&
    e.forEach((e) => {
      var n = e.getSource() + "";
      g.id !== e.id && n == r && e.forceStop();
    });
}

//仿真曲线滑动
function bezier_curves(cp, t) {
  cx = 3.0 * (cp[1].x - cp[0].x);
  bx = 3.0 * (cp[2].x - cp[1].x) - cx;
  ax = cp[3].x - cp[0].x - cx - bx;
  cy = 3.0 * (cp[1].y - cp[0].y);
  by = 3.0 * (cp[2].y - cp[1].y) - cy;
  ay = cp[3].y - cp[0].y - cy - by;
  tSquared = t * t;
  tCubed = tSquared * t;
  result = {
    x: 0,
    y: 0,
  };
  result.x = ax * tCubed + bx * tSquared + cx * t + cp[0].x;
  result.y = ay * tCubed + by * tSquared + cy * t + cp[0].y;
  return result;
}

//仿真随机带曲线滑动
//qx, qy, zx, zy, time 代表起点x,起点y,终点x,终点y,过程耗时单位毫秒
function sml_move(qx, qy, zx, zy, time) {
  var xxy = [time];
  var point = [];
  var dx0 = {
    x: qx,
    y: qy,
  };
  var dx1 = {
    x: random(qx - 100, qx + 100),
    y: random(qy, qy + 50),
  };
  var dx2 = {
    x: random(zx - 100, zx + 100),
    y: random(zy, zy + 50),
  };
  var dx3 = {
    x: zx,
    y: zy,
  };
  for (var i = 0; i < 4; i++) {
    eval("point.push(dx" + i + ")");
  }
  //log(point[3].x)
  for (let i = 0; i < 1; i += 0.08) {
    xxyy = [
      parseInt(bezier_curves(point, i).x),
      parseInt(bezier_curves(point, i).y),
    ];
    xxy.push(xxyy);
  }
  //log(xxy);
  gesture.apply(null, xxy);
}

function lock() {
  var success = runtime.accessibilityBridge
    .getService()
    .performGlobalAction(
      android.accessibilityservice.AccessibilityService
        .GLOBAL_ACTION_LOCK_SCREEN
    );
}

//返回主界面
function backhome() {
  log("检测是否在主界面");
  for (let i = 1; i < 5; i++) {
    var homepage = text("每日电力任务").findOnce();
    if (homepage != null) {
      log("已在主界面");
      break;
    } else if (i == 4) {
      log("返回主界面失败重新进入");
      home();
      clearrecents();
      sleep(2000);
      openapp();
      id("gn").untilFind();
      sleep(6000);
      sml_move(540 * KX, 1400 * KY, 540 * KX, 400 * KY, 600);
      sleep(2000);
      break;
    } else {
      back();
      log("正在返回主界面中...");
      sleep(1000);
    }
  }
}

//OCR文字识别
function OCRFindText(x, y, w, h) {
  if (!requestScreenCapture()) {
    log("请求截图失败");
    exit();
  } else {
    log("请求截图成功");
  }

  let rawimg = captureScreen();
  //log("截图成功");
  //ROI区域(x,y,宽,高)
  let img = images.clip(rawimg, x, y, w, h);
  images.save(img, "/sdcard/脚本/ocr.png");
  const Predictor = com.baidu.paddle.lite.ocr.Predictor;

  // 指定是否用精简版模型 速度较快
  let useSlim = false;

  // 创建检测器
  let predictor = new Predictor();

  // predictor.cpuThreadNum = 4 //可以自定义使用CPU的线程数
  // predictor.checkModelLoaded = false // 可以自定义是否需要校验模型是否成功加载 默认开启 使用内置Base64图片进行校验 识别测试文本来校验模型是否加载成功

  // 初始化模型 首次运行时会比较耗时
  let loading = threads.disposable();

  // 建议在新线程中初始化模型
  threads.start(function () {
    loading.setAndNotify(predictor.init(context, useSlim));
    // loading.setAndNotify(predictor.init(context)) 为默认不使用精简版
    // 内置默认 modelPath 为 models/ocr_v3_for_cpu,初始化自定义模型请写绝对路径否则无法获取到
    // 内置默认 labelPath 为 labels/ppocr_keys_v1.txt
    // let modelPath = files.path('./models/customize') // 指定自定义模型路径
    // let labelPath = files.path('./models/customize') // 指定自定义label路径
    // 使用自定义模型时det rec cls三个模型文件名称需要手动指定
    // predictor.detModelFilename = 'det_opt.nb'
    // predictor.recModelFilename = 'rec_opt.nb'
    // predictor.clsModelFilename = 'cls_opt.nb'
    // loading.setAndNotify(predictor.init(context, modelPath, labelPath))
  });

  let loadSuccess = loading.blockedGet();
  //log(`加载模型结果:${loadSuccess}`);

  let start = new Date();
  let results = predictor.runOcr(img.getBitmap());
  let OcrResult = null;
  if (results && results.length > 0) {
    //{"label":"看视频抽奖喜+1"}]
    OcrResult = results[0].label;
  }
  //log(OcrResult);
  return OcrResult;
  // 释放模型 用于释放native内存 非必需
  // predictor.releaseModel()

  // 回收图片
  rawimg.recycle();
  img.recycle();
}

// 打开微信小程序
function openapp() {
  app.startActivity({
    packageName: "com.syyf.quickpay",
    className: "com.syyf.quickpay.act.WechatMnProgramActivity",
    extras: {
      id: "gh_c64ac75b31df", //gh_开头的原始id
    },
    root: false,
  });
}

版权声明:

本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。

有关影视版权:本站只供百度云网盘资源,版权均属于影片公司所有,请在下载后24小时删除,切勿用于商业用途。本站所有资源信息均从互联网搜索而来,本站不对显示的内容承担责任,如您认为本站页面信息侵犯了您的权益,请附上版权证明邮件告知【754403226@qq.com】,在收到邮件后72小时内删除。本文链接:https://www.piaodoo.com/121938.html

搜索