自动采集

wjdr
wangbing 12 months ago
parent 78096c88fa
commit 698126dcb1

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 514 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

@ -638,6 +638,51 @@ public abstract class JMacro {
return waitAndFindLegend(getFocusRect(), Legend.inflate(legend), minSimilar, defaultTimeOut);
}
/**
*
*
* @param legend
* @param minSimilar
* @return
*/
public boolean matchLegendAndClick(String legend, double minSimilar) {
ViewRect matchLegend = matchLegend(legend, minSimilar);
if (matchLegend != null) {
mouseLeftClick(matchLegend);
return true;
} else {
return false;
}
}
/**
*
*
* @param legend
* @param minSimilar
* @return
*/
public boolean matchLegendAndClick(Legend legend, double minSimilar) {
ViewRect matchLegend = matchLegend(legend, minSimilar);
if (matchLegend != null) {
mouseLeftClick(matchLegend);
return true;
} else {
return false;
}
}
/**
*
*
* @param legend
* @param minSimilar
* @return
*/
public ViewRect matchLegend(String legend, double minSimilar) {
return matchLegend(Legend.inflate(legend), minSimilar);
}
/**
*
*
@ -660,17 +705,6 @@ public abstract class JMacro {
return findPic(viewRect, image, minSimilar, false);
}
/**
*
*
* @param legend
* @param minSimilar
* @return
*/
public ViewRect matchLegend(String legend, double minSimilar) {
return matchLegend(Legend.inflate(legend), minSimilar);
}
/**
*
*

@ -65,14 +65,20 @@ public class Task_仓库奖励领取 extends BaseTask {
macro.delay(1000);
}
Logger.info("检测体力宝箱/罐头");
ViewRect _ = macro.matchLegend("仓库_体力罐头", 0.5);
Logger.info("检测体力罐头");
ViewRect _ = macro.waitAndMatchLegend("仓库_体力罐头", 0.5, 5);
if (_ == null) {
Logger.info("无体力宝箱");
return;
} else {
Logger.info("领取体力罐头");
macro.mouseLeftClick(_);
macro.delay(1000);
ViewRect _ = macro.matchLegend("仓库_体力罐头领取", 0.8);
if (_ != null) {
macro.mouseLeftClick(_);
}
}
macro.delay(1000);
}

@ -21,6 +21,13 @@ public class Task_定位城镇 extends BaseTask {
return;
}
}
{// 仓库_体力罐头领取关闭
ViewRect rect = macro.matchLegend("仓库_体力罐头领取关闭", 0.9);
if (rect != null) {
macro.mouseLeftClick(rect);
Logger.info("返回城镇");
}
}
{// 探险返回
ViewRect rect = macro.matchLegend("探险_返回", 0.9);
if (rect != null) {

@ -0,0 +1,317 @@
package xyz.wbsite.jmacro.wjdr.task;
import cn.hutool.json.JSONUtil;
import xyz.wbsite.jmacro.JMacro;
import xyz.wbsite.jmacro.base.ViewRect;
import xyz.wbsite.jmacro.util.Logger;
public class Task_ extends BaseTask {
public boolean 1;
public boolean 2;
public boolean 3;
public boolean 4;
public boolean 5;
public boolean 6;
public Task_(JMacro macro, ViewRect viewRect) {
super(macro, viewRect);
}
@Override
public void task(JMacro macro, ViewRect viewRect) {
{
Logger.info("打开面板,读取行军状态");
ViewRect[] viewRects = macro.matchLegends(0.6, "城镇_打开面板", "城镇_关闭面板");
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("选中野外");
macro.mouseLeftClick(macro.of(245, 200));
macro.delay(1000);
ViewRect[] viewRects1 = macro.matchLegends(0.6D,
"城镇_面板_空闲1",
"城镇_面板_空闲2",
"城镇_面板_空闲3",
"城镇_面板_空闲4",
"城镇_面板_空闲5",
"城镇_面板_空闲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);
if (_ == null) {
Logger.info("关闭面板异常");
return;
}
Logger.info("关闭面板");
macro.mouseLeftClick(_);
Logger.info("定位【野外】");
ViewRect = macro.matchLegend("野外", 0.99);
if ( == null) {
Logger.error("定位【野外】失败,刷怪终止");
return;
}
Logger.info("定位【野外】成功,{}", .toString());
Logger.info("点击【野外】,坐标{}", JSONUtil.toJsonStr(.getCenter()));
macro.mouseLeftClick();
macro.delayUnstable();
Logger.info("定位野外按钮成功");
if (1) {
Logger.info("队列一派去打野怪");
boolean success = challenge(15);
if (!success) { // 中断采集
return;
}
}
if (2) {
Logger.info("队列一派去打野怪");
boolean success = challenge(15);
if (!success) { // 中断采集
return;
}
}
if (3) {
Logger.info("队列一派去打野怪");
boolean success = challenge(15);
if (!success) { // 中断采集
return;
}
}
if (4) {
Logger.info("队列一派去打野怪");
boolean success = challenge(15);
if (!success) { // 中断采集
return;
}
}
if (5) {
Logger.info("队列一派去打野怪");
boolean success = challenge(15);
if (!success) { // 中断采集
return;
}
}
if (6) {
Logger.info("队列一派去打野怪");
boolean success = challenge(15);
if (!success) { // 中断采集
return;
}
}
// 检测是否是搜索界面
ViewRect _2 = macro.matchLegend("野外_任务", 0.9);
if (_2 != null) {
Logger.info("退出资源搜索界面");
macro.mouseLeftClick(this.viewRect);
}
ViewRect 1 = macro.waitAndMatchLegend("城镇", 0.9);
if (1 == null) {
Logger.error("未检测到【城镇】,异常终止");
return;
}
macro.mouseLeftClick(1);
Logger.info("返回城镇");
}
/**
* @param level (0)
* @return true,
*/
private boolean challenge(int level) {
Logger.info("查看放大镜搜索");
ViewRect _ = macro.waitAndMatchLegend("野外_放大镜搜索", 0.4);
if (_ == null) {
Logger.error("未检测到【放大镜搜索】,采矿终止");
return false;
}
Logger.info("点击放大镜搜索按钮");
macro.mouseLeftClick(_);
Logger.info("等待搜索面板");
ViewRect __ = macro.waitAndMatchLegend("野外_搜索面板_搜索按钮", 0.9);
if (__ == null) {
Logger.error("未检测到【待搜索面板】,采矿终止");
return false;
}
Logger.info("点击野兽");
macro.mouseLeftDrag(macro.of(61, 682), macro.of(433, 679), true);
macro.delay(1000);
macro.mouseLeftClick(macro.of(60, 677));
macro.delay(1000);
switch (level) {
case 1:
macro.mouseLeftClick(macro.of(93, 778));
break;
case 2:
macro.mouseLeftClick(macro.of(101, 778));
break;
case 3:
macro.mouseLeftClick(macro.of(109, 778));
break;
case 4:
macro.mouseLeftClick(macro.of(117, 778));
break;
case 5:
macro.mouseLeftClick(macro.of(125, 778));
break;
case 6:
macro.mouseLeftClick(macro.of(133, 778));
break;
case 7:
macro.mouseLeftClick(macro.of(141, 778));
break;
case 8:
macro.mouseLeftClick(macro.of(149, 778));
break;
case 9:
macro.mouseLeftClick(macro.of(157, 778));
break;
case 10:
macro.mouseLeftClick(macro.of(165, 778));
break;
case 11:
macro.mouseLeftClick(macro.of(173, 778));
break;
case 12:
macro.mouseLeftClick(macro.of(181, 778));
break;
case 13:
macro.mouseLeftClick(macro.of(189, 778));
break;
case 14:
macro.mouseLeftClick(macro.of(197, 778));
break;
case 15:
macro.mouseLeftClick(macro.of(205, 778));
break;
case 16:
macro.mouseLeftClick(macro.of(213, 778));
break;
case 17:
macro.mouseLeftClick(macro.of(221, 778));
break;
case 18:
macro.mouseLeftClick(macro.of(229, 778));
break;
case 19:
macro.mouseLeftClick(macro.of(237, 778));
break;
case 20:
macro.mouseLeftClick(macro.of(245, 778));
break;
case 21:
macro.mouseLeftClick(macro.of(253, 778));
break;
case 22:
macro.mouseLeftClick(macro.of(261, 778));
break;
case 23:
macro.mouseLeftClick(macro.of(269, 778));
break;
case 24:
macro.mouseLeftClick(macro.of(277, 778));
break;
case 25:
macro.mouseLeftClick(macro.of(285, 778));
break;
case 26:
macro.mouseLeftClick(macro.of(293, 778));
break;
case 27:
macro.mouseLeftClick(macro.of(301, 778));
break;
case 28:
macro.mouseLeftClick(macro.of(309, 778));
break;
case 29:
macro.mouseLeftClick(macro.of(317, 778));
break;
case 30:
macro.mouseLeftClick(macro.of(325, 778));
break;
}
ViewRect _ = macro.matchLegend("野外_资源搜索", 0.9);
if (_ == null) {
Logger.error("定位【野外_资源搜索】失败挑战终止");
return false;
}
Logger.info("点击搜索{}级野怪", level);
macro.mouseLeftClick(_);
macro.delay(1500);
ViewRect _ = macro.waitAndMatchLegend("野外_攻击", 0.9);
if (_ != null) {
macro.mouseLeftClick(_);
macro.delay(1000);
macro.matchLegendAndClick("野外_攻击平均配置", 0.9);
macro.delay(1000);
ViewRect[] viewRects = macro.waitAndMatchLegends(0.9, "野外_攻击出征", "野外_资源无对队列");
if (viewRects[0] != null) {
Logger.info("出征");
macro.mouseLeftClick(viewRects[0]);
return true;
}
if (viewRects[1] != null) {
Logger.info("队列已满,取消采集");
macro.mouseLeftClick(macro.of(471, 250));
return false;
}
if (viewRects[2] != null) {
Logger.info("士兵不足,取消采集");
macro.mouseLeftClick(macro.of(32, 30));
return false;
}
}
return true;
}
}
Loading…
Cancel
Save

Powered by TurnKey Linux.