You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
112 lines
4.1 KiB
112 lines
4.1 KiB
package xyz.wbsite.jmacro.wjdr;
|
|
|
|
import cn.hutool.core.date.DateTime;
|
|
import cn.hutool.core.date.DateUtil;
|
|
import cn.hutool.core.util.RandomUtil;
|
|
import xyz.wbsite.jmacro.JMacro;
|
|
import xyz.wbsite.jmacro.JMainService;
|
|
import xyz.wbsite.jmacro.base.ViewRect;
|
|
import xyz.wbsite.jmacro.util.Logger;
|
|
import xyz.wbsite.jmacro.wjdr.task.*;
|
|
|
|
/**
|
|
* 无尽冬日脚本
|
|
*
|
|
* @author wangbing
|
|
* @version 0.0.1
|
|
* @since 1.8
|
|
*/
|
|
public class MacroForWJDR extends JMacro {
|
|
|
|
/**
|
|
* 工作开始时间
|
|
*/
|
|
private final String workStart = "07:00:00";
|
|
|
|
/**
|
|
* 工作结束时间
|
|
*/
|
|
private final String workEnd = "24:00:00";
|
|
|
|
/**
|
|
* 最大工作时间(ms)
|
|
*/
|
|
private final long workTime = 30 * 60 * 1000;
|
|
|
|
@Override
|
|
public synchronized ViewRect focus() {
|
|
Logger.info("请确保MuMu显示分辨率为540 x 960(DPI 240)");
|
|
ViewRect rect = getScreenRect();
|
|
Logger.info("查找定位MuMu工具栏");
|
|
ViewRect mumu = findLegend("慕慕_工具栏", 0.95d);
|
|
if (mumu == null) {
|
|
Logger.info("聚焦窗口失败,默认全屏");
|
|
} else {
|
|
// 计算应用窗口返回
|
|
rect.setLeft(mumu.getLeft() - 428);
|
|
rect.setTop(mumu.getBottom() + 7);
|
|
rect.setRight(mumu.getRight());
|
|
rect.setBottom(mumu.getBottom() + 951);
|
|
}
|
|
Logger.info("聚焦窗口:" + rect.toString());
|
|
Logger.info("聚焦窗口大小:{}x{}", rect.getRight() - rect.getLeft(), rect.getBottom() - rect.getTop());
|
|
return rect;
|
|
}
|
|
|
|
@Override
|
|
public void run() {
|
|
DateTime current = DateUtil.date();
|
|
String currentTime = current.toString("HH:mm:ss");
|
|
Logger.info("工作时间:{}~{}", workStart, workEnd);
|
|
Logger.info("当前时间:{}", currentTime);
|
|
if (DateUtil.parseTime(currentTime).isIn(DateUtil.parseTime(workStart), DateUtil.parseTime(workEnd))) {
|
|
Logger.info("当前时间为工作时间");
|
|
Logger.info("任务线程开始", current.toString("yyyy-MM-dd HH:mm:ss"));
|
|
// 获取启动图标
|
|
Logger.info("查找启动图标");
|
|
ViewRect launch = findLegend("启动图标", 0.9);
|
|
if (launch != null) {
|
|
Logger.info("启动图标坐标:", launch.toString());
|
|
Logger.info("点击启动图标");
|
|
mouseLeftClick(launch);
|
|
Logger.info("等待程序启动中,请稍等...");
|
|
delay(10 * 1000);
|
|
}
|
|
|
|
Logger.info("启动循环任务");
|
|
int count = 10;
|
|
while (JMainService.getInstance().run && count > 0) {
|
|
count--;
|
|
// 任意界面优先返回城镇
|
|
new Task_定位城镇(this, focusRect).run();
|
|
// 可按优先级排序以下任务
|
|
new Task_联盟互助(this, focusRect).run();
|
|
new Task_收留避难者(this, focusRect).run();
|
|
new Task_自动野怪(this, focusRect).run();
|
|
// new Task_自动采矿(this, focusRect).run();
|
|
// new Task_英雄招募领取(this, focusRect).run();
|
|
// new Task_任务奖励领取(this, focusRect).run();
|
|
// new Task_探险奖励领取(this, focusRect).run();
|
|
// new Task_邮件奖励领取(this, focusRect).run();
|
|
new Task_仓库奖励领取(this, focusRect).run();
|
|
}
|
|
} else {
|
|
Logger.info("当前时间为非工作时间,休眠待命!");
|
|
}
|
|
|
|
Logger.info("检测游戏窗口是否关闭!");
|
|
ViewRect 无尽 = findLegend(getFocusRect().offsetY(-30), "无尽", 0.8);
|
|
if (无尽 != null) {
|
|
Logger.info("游戏窗口存在,关闭窗口!");
|
|
mouseMove(无尽.getCenter(), true);
|
|
delay(50);
|
|
mouseMove(无尽.getCenter().offsetY(1), true);
|
|
mouseLeftClick(无尽);
|
|
}
|
|
|
|
int randomInt = RandomUtil.randomInt(5, 10);
|
|
Logger.info("休眠中{}分钟", randomInt);
|
|
delay(randomInt * 60 * 1000);
|
|
}
|
|
}
|