|
|
|
@ -1,5 +1,6 @@
|
|
|
|
|
package com.example.jmacro.wjdr.task;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
|
|
import com.example.jmacro.wjdr.JMacro;
|
|
|
|
|
import com.example.jmacro.wjdr.base.ScreenPoint;
|
|
|
|
|
import com.example.jmacro.wjdr.base.ScreenRect;
|
|
|
|
@ -18,25 +19,34 @@ public class TaskMining {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void start() {
|
|
|
|
|
Logger.info("自动采矿");
|
|
|
|
|
Logger.info("》》》自动采矿开始》》》");
|
|
|
|
|
|
|
|
|
|
Logger.info("定位【野外】");
|
|
|
|
|
ScreenRect 野外 = jMacro.waitAndFindPic(screenRect, new File("legend", "城镇_野外.png"), 0.99);
|
|
|
|
|
if (野外 == null) {
|
|
|
|
|
Logger.error("未检测到【野外】,采矿终止");
|
|
|
|
|
Logger.error("定位【野外】失败,采矿终止");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
Logger.error("定位【野外】成功,{}", 野外.toString());
|
|
|
|
|
|
|
|
|
|
Logger.info("城镇_野外坐标:" + 野外.toString());
|
|
|
|
|
Logger.info("进入野外成功");
|
|
|
|
|
Logger.info("点击【野外】,坐标{}", JSONUtil.toJsonStr(野外.getCenter()));
|
|
|
|
|
jMacro.mouseLeftClick(野外);
|
|
|
|
|
Logger.info("定位野外按钮成功");
|
|
|
|
|
|
|
|
|
|
ScreenRect 野外搜索 = jMacro.waitAndFindPic(screenRect, new File("legend", "野外_搜索.png"), 0.9);
|
|
|
|
|
Logger.info("定位资源搜索按钮");
|
|
|
|
|
ScreenRect 野外搜索 = jMacro.waitAndFindPic(screenRect, new File("legend", "野外_搜索.png"), 1);
|
|
|
|
|
if (野外搜索 == null) {
|
|
|
|
|
Logger.error("未检测到【资源搜索按钮】,采矿终止");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
Logger.info("定位资源搜索按钮成功:{}", 野外搜索.toString());
|
|
|
|
|
jMacro.mouseLeftClick(野外搜索);
|
|
|
|
|
|
|
|
|
|
String[] types = new String[]{
|
|
|
|
|
"生肉", "木材", "煤矿", "铁矿"
|
|
|
|
|
};
|
|
|
|
|
for (String type : types) {
|
|
|
|
|
Logger.info("搜索资源【{}】", type);
|
|
|
|
|
boolean collect = collect(type, 0);
|
|
|
|
|
if (collect) { // 中断采集
|
|
|
|
|
break;
|
|
|
|
@ -54,7 +64,8 @@ public class TaskMining {
|
|
|
|
|
Logger.error("未检测到【城镇】,采矿终止");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
Logger.error("采矿完成,返回城镇");
|
|
|
|
|
|
|
|
|
|
Logger.info("》》》自动采矿结束,返回城镇》》》");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -63,7 +74,14 @@ public class TaskMining {
|
|
|
|
|
* @return 采集是否结束(满队则返回true,接下来的采集也不需要了)
|
|
|
|
|
*/
|
|
|
|
|
private boolean collect(String type, int level) {
|
|
|
|
|
Logger.info("定位【{}】图标", type);
|
|
|
|
|
ScreenRect typeRect = jMacro.waitAndFindPic(screenRect, new File("legend", "野外_" + type + ".png"), 0.9);
|
|
|
|
|
if (typeRect == null) {
|
|
|
|
|
Logger.error("定位【{}】图标失败", type);
|
|
|
|
|
}
|
|
|
|
|
Logger.info("定位【{}】图标成功", type);
|
|
|
|
|
|
|
|
|
|
Logger.info("单击【{}】图标,坐标[{},{}]",type, typeRect.getCenter()[0], typeRect.getCenter()[1]);
|
|
|
|
|
jMacro.mouseLeftClick(typeRect);
|
|
|
|
|
|
|
|
|
|
if (level == 0) {
|
|
|
|
@ -107,7 +125,11 @@ public class TaskMining {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
Logger.info("出征{}{}级矿", type, level);
|
|
|
|
|
jMacro.mouseLeftClick(采集);
|
|
|
|
|
jMacro.mouseLeftClick(出征);
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void main(String[] args) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|