自动采集

wjdr
wangbing 12 months ago
parent 8c8b718d5b
commit b94c1c080c

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

@ -2,6 +2,7 @@ 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;
@ -59,50 +60,53 @@ public class MacroForWJDR extends JMacro {
Logger.info("工作时间:{}~{}", workStart, workEnd);
Logger.info("当前时间:{}", currentTime);
if (!DateUtil.parseTime(currentTime).isIn(DateUtil.parseTime(workStart), DateUtil.parseTime(workEnd))) {
Logger.info("当前时间为非工作时间,休眠待命!");
Logger.info("检测游戏窗口是否关闭!");
ViewRect = findLegend(getFocusRect().offsetY(-30), "无尽", 0.8);
if ( != null) {
Logger.info("游戏窗口存在,关闭窗口!");
mouseMove(.getCenter());
delay(1000);
mouseLeftClick(.getCenter());
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("休眠1分钟");
delay(60 * 1000);
return;
}
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();
Logger.info("启动循环任务");
while (JMainService.getInstance().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();
new Task_(this, focusRect).run();
new Task_(this, focusRect).run();
}
} else {
Logger.info("当前时间为非工作时间,休眠待命!");
}
// 可按优先级排序以下任务
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();
Logger.info("检测游戏窗口是否关闭!");
ViewRect = findLegend(getFocusRect().offsetY(-30), "无尽", 0.8);
if ( != null) {
Logger.info("游戏窗口存在,关闭窗口!");
mouseMove(.getCenter());
delay(1000);
mouseLeftClick(.getCenter());
}
int randomInt = RandomUtil.randomInt(5, 20);
Logger.info("休眠中{}分钟", randomInt);
delay(randomInt * 60 * 1000);
}
}

@ -12,20 +12,17 @@ public class Task_仓库奖励领取 extends BaseTask {
@Override
public void task(JMacro macro, ViewRect viewRect) {
Logger.info("检测面板状态");
ViewRect[] viewRects = macro.matchLegends(macro.of("城镇_打开面板", "城镇_关闭面板"), 0.6);
if (viewRects == null || viewRects.length == 0) {
Logger.info("检测面板状态检测失败");
Logger.info("打开面板");
boolean _ = macro.matchLegendAndClick("城镇_打开面板", 0.6);
if (!_) {
Logger.error("打开面板失败");
return;
}
if (viewRects[0] != null) {
Logger.info("打开面板");
macro.mouseLeftClick(viewRects[0]);
macro.delay(1000);
}
if (viewRects[1] != null) {
Logger.info("面板已打开");
Logger.info("检测关闭按钮");
ViewRect _ = macro.matchLegend("城镇_关闭面板", 0.6);
if (_ == null) {
Logger.error("未检测到面板关闭按钮,中断任务");
return;
}
Logger.info("选中城镇");
@ -39,8 +36,8 @@ public class Task_仓库奖励领取 extends BaseTask {
ViewRect _ = macro.matchLegend("仓库_补给完成", 0.9);
if (_ == null) {
Logger.info("关闭面板");
boolean _ = macro.matchLegendAndClick("城镇_关闭面板", 0.6);
if (!_) {
boolean = macro.matchLegendAndClick("城镇_关闭面板", 0.6);
if (!) {
Logger.error("关闭面板失败");
}
return;

@ -18,28 +18,35 @@ public class Task_自动练兵 extends BaseTask {
}
private void (JMacro macro, ViewRect viewRect) {
Logger.info("检测面板状态");
ViewRect[] viewRects = macro.matchLegends(macro.of("城镇_打开面板", "城镇_关闭面板"),0.6);
if (viewRects == null || viewRects.length == 0) {
Logger.info("检测面板状态检测失败");
return;
}
if (viewRects[0] != null) {
Logger.info("打开面板");
macro.mouseLeftClick(viewRects[0]);
macro.delay(1000);
}
if (viewRects[1] != null) {
ViewRect[] viewRects = macro.matchLegends(macro.of("城镇_面板1选中", "城镇_面板2选中"), 0.9);
if (viewRects[0] == null && viewRects[1] == null) {
Logger.info("面板未打开");
Logger.info("检测面板打开按钮,打开面板");
boolean _ = macro.matchLegendAndClick("城镇_打开面板", 0.6);
if (!_) {
Logger.error("打开面板失败");
return;
}
Logger.info("检测关闭按钮");
ViewRect _ = macro.matchLegend("城镇_关闭面板", 0.6);
if (_ == null) {
Logger.error("未检测到面板关闭按钮,打开失败");
return;
}
} else {
Logger.info("面板已打开");
}
Logger.info("选中城镇");
macro.mouseLeftClick(macro.of(85, 200));
macro.delay(500);
Logger.info("滑动到顶部");
macro.mouseLeftDrag(macro.of(163, 231), macro.of(158, 626), true);
macro.delay(1000);
Logger.info("检测盾兵");
ViewRect[] viewRects2 = macro.waitAndMatchLegends(macro.of("城镇_完成盾兵", "城镇_空闲盾兵"),0.8D, 3);
ViewRect[] viewRects2 = macro.waitAndMatchLegends(macro.of("城镇_完成盾兵", "城镇_空闲盾兵"), 0.8D, 3);
if (viewRects2 == null) {
Logger.info("检测失败");
return;
@ -136,28 +143,27 @@ public class Task_自动练兵 extends BaseTask {
}
private void (JMacro macro, ViewRect viewRect) {
Logger.info("检测面板状态");
ViewRect[] viewRects = macro.matchLegends(macro.of("城镇_打开面板", "城镇_关闭面板"),0.6);
if (viewRects == null || viewRects.length == 0) {
Logger.info("检测面板状态检测失败");
return;
}
if (viewRects[0] != null) {
Logger.info("打开面板");
macro.mouseLeftClick(viewRects[0]);
macro.delay(1000);
}
if (viewRects[1] != null) {
ViewRect[] viewRects = macro.matchLegends(macro.of("城镇_面板1选中", "城镇_面板2选中"), 0.9);
if (viewRects[0] == null && viewRects[1] == null) {
Logger.info("面板未打开");
Logger.info("检测面板打开按钮,打开面板");
boolean _ = macro.matchLegendAndClick("城镇_打开面板", 0.6);
if (!_) {
Logger.error("打开面板失败");
return;
}
Logger.info("检测关闭按钮");
ViewRect _ = macro.matchLegend("城镇_关闭面板", 0.6);
if (_ == null) {
Logger.error("未检测到面板关闭按钮,打开失败");
return;
}
} else {
Logger.info("面板已打开");
}
Logger.info("选中城镇");
macro.mouseLeftClick(macro.of(85, 200));
macro.delay(1000);
Logger.info("检测矛兵");
ViewRect[] viewRects2 = macro.waitAndMatchLegends(macro.of("城镇_完成矛兵", "城镇_空闲矛兵"),0.8D, 3);
ViewRect[] viewRects2 = macro.waitAndMatchLegends(macro.of("城镇_完成矛兵", "城镇_空闲矛兵"), 0.8D, 3);
if (viewRects2 == null) {
Logger.info("检测失败");
return;
@ -255,28 +261,27 @@ public class Task_自动练兵 extends BaseTask {
}
private void (JMacro macro, ViewRect viewRect) {
Logger.info("检测面板状态");
ViewRect[] viewRects = macro.matchLegends(macro.of("城镇_打开面板", "城镇_关闭面板"),0.6);
if (viewRects == null || viewRects.length == 0) {
Logger.info("检测面板状态检测失败");
return;
}
if (viewRects[0] != null) {
Logger.info("打开面板");
macro.mouseLeftClick(viewRects[0]);
macro.delay(1000);
}
if (viewRects[1] != null) {
ViewRect[] viewRects = macro.matchLegends(macro.of("城镇_面板1选中", "城镇_面板2选中"), 0.9);
if (viewRects[0] == null && viewRects[1] == null) {
Logger.info("面板未打开");
Logger.info("检测面板打开按钮,打开面板");
boolean _ = macro.matchLegendAndClick("城镇_打开面板", 0.6);
if (!_) {
Logger.error("打开面板失败");
return;
}
Logger.info("检测关闭按钮");
ViewRect _ = macro.matchLegend("城镇_关闭面板", 0.6);
if (_ == null) {
Logger.error("未检测到面板关闭按钮,打开失败");
return;
}
} else {
Logger.info("面板已打开");
}
Logger.info("选中城镇");
macro.mouseLeftClick(macro.of(85, 200));
macro.delay(1000);
Logger.info("检测矛兵");
ViewRect[] viewRects2 = macro.waitAndMatchLegends(macro.of("城镇_完成射手", "城镇_空闲射手"),0.8D, 3);
ViewRect[] viewRects2 = macro.waitAndMatchLegends(macro.of("城镇_完成射手", "城镇_空闲射手"), 0.8D, 3);
if (viewRects2 == null) {
Logger.info("检测失败");
return;

@ -20,48 +20,52 @@ public class Task_自动采矿 extends BaseTask {
@Override
public void task(JMacro macro, ViewRect viewRect) {
{
Logger.info("打开面板,读取行军状态");
ViewRect[] viewRects = macro.matchLegends(macro.of("城镇_打开面板", "城镇_关闭面板"), 0.6);
if (viewRects[0] == null && viewRects[1] == null) {
Logger.error("检测面板状态失败");
ViewRect[] viewRects = macro.matchLegends(macro.of("城镇_面板1选中", "城镇_面板2选中"), 0.9);
if (viewRects[0] == null && viewRects[1] == null) {
Logger.info("面板未打开");
Logger.info("检测面板打开按钮,打开面板");
boolean _ = macro.matchLegendAndClick("城镇_打开面板", 0.6);
if (!_) {
Logger.error("打开面板失败");
return;
}
if (viewRects[0] != null) {
Logger.info("打开面板");
macro.mouseLeftClick(viewRects[0]);
macro.delay(1000);
Logger.info("检测关闭按钮");
ViewRect _ = macro.matchLegend("城镇_关闭面板", 0.6);
if (_ == null) {
Logger.error("未检测到面板关闭按钮,打开失败");
return;
}
} else {
Logger.info("面板已打开");
}
Logger.info("选中野外");
macro.mouseLeftClick(macro.of(245, 200));
macro.delay(1000);
Logger.info("选中野外");
macro.mouseLeftClick(macro.of(245, 200));
macro.delay(1000);
if (null != macro.matchLegend("城镇_面板_空闲1", 0.6D)) {
1 = true;
Logger.info("队列1空闲");
}
if (null != macro.matchLegend("城镇_面板_空闲2", 0.6D)) {
2 = true;
Logger.info("队列2空闲");
}
if (null != macro.matchLegend("城镇_面板_空闲3", 0.6D)) {
3 = true;
Logger.info("队列3空闲");
}
if (null != macro.matchLegend("城镇_面板_空闲4", 0.6D)) {
4 = true;
Logger.info("队列4空闲");
}
if (null != macro.matchLegend("城镇_面板_空闲5", 0.6D)) {
5 = true;
Logger.info("队列5空闲");
}
if (null != macro.matchLegend("城镇_面板_空闲6", 0.6D)) {
6 = true;
Logger.info("队列6空闲");
}
if (null != macro.matchLegend("城镇_面板_空闲1", 0.6D)) {
1 = true;
Logger.info("队列1空闲");
}
if (null != macro.matchLegend("城镇_面板_空闲2", 0.6D)) {
2 = true;
Logger.info("队列2空闲");
}
if (null != macro.matchLegend("城镇_面板_空闲3", 0.6D)) {
3 = true;
Logger.info("队列3空闲");
}
if (null != macro.matchLegend("城镇_面板_空闲4", 0.6D)) {
4 = true;
Logger.info("队列4空闲");
}
if (null != macro.matchLegend("城镇_面板_空闲5", 0.6D)) {
5 = true;
Logger.info("队列5空闲");
}
if (null != macro.matchLegend("城镇_面板_空闲6", 0.6D)) {
6 = true;
Logger.info("队列6空闲");
}
ViewRect _ = macro.matchLegend("城镇_关闭面板", 0.6);

@ -31,16 +31,23 @@ public class Task_自动野怪 extends BaseTask {
{
Logger.info("打开面板,读取行军状态");
ViewRect[] viewRects = macro.matchLegends(macro.of("城镇_打开面板", "城镇_关闭面板"), 0.6);
ViewRect[] viewRects = macro.matchLegends(macro.of("城镇_面板1选中", "城镇_面板2选中"), 0.9);
if (viewRects[0] == null && viewRects[1] == null) {
Logger.error("检测面板状态失败");
return;
}
if (viewRects[0] != null) {
Logger.info("打开面板");
macro.mouseLeftClick(viewRects[0]);
macro.delay(1000);
Logger.info("面板未打开");
Logger.info("检测面板打开按钮,打开面板");
boolean _ = macro.matchLegendAndClick("城镇_打开面板", 0.6);
if (!_) {
Logger.error("打开面板失败");
return;
}
Logger.info("检测关闭按钮");
ViewRect _ = macro.matchLegend("城镇_关闭面板", 0.6);
if (_ == null) {
Logger.error("未检测到面板关闭按钮,打开失败");
return;
}
} else {
Logger.info("面板已打开");
}
Logger.info("选中野外");

Loading…
Cancel
Save

Powered by TurnKey Linux.