diff --git a/legend/城镇_面板1选中#L19,187.png b/legend/城镇_面板1选中#L19,187.png new file mode 100644 index 0000000..9993ce4 Binary files /dev/null and b/legend/城镇_面板1选中#L19,187.png differ diff --git a/legend/城镇_面板1选中#L59,188.png b/legend/城镇_面板1选中#L59,188.png deleted file mode 100644 index 8209ba4..0000000 Binary files a/legend/城镇_面板1选中#L59,188.png and /dev/null differ diff --git a/legend/城镇_面板2选中#L181,187.png b/legend/城镇_面板2选中#L181,187.png new file mode 100644 index 0000000..781423e Binary files /dev/null and b/legend/城镇_面板2选中#L181,187.png differ diff --git a/legend/城镇_面板2选中#L226,190.png b/legend/城镇_面板2选中#L226,190.png deleted file mode 100644 index 5059203..0000000 Binary files a/legend/城镇_面板2选中#L226,190.png and /dev/null differ diff --git a/legend/英雄招募_奖励清单#L238,169.png b/legend/英雄招募_奖励清单#L238,169.png new file mode 100644 index 0000000..753b133 Binary files /dev/null and b/legend/英雄招募_奖励清单#L238,169.png differ diff --git a/src/main/java/xyz/wbsite/jmacro/JMacro.java b/src/main/java/xyz/wbsite/jmacro/JMacro.java index 1c55b56..06f2a44 100644 --- a/src/main/java/xyz/wbsite/jmacro/JMacro.java +++ b/src/main/java/xyz/wbsite/jmacro/JMacro.java @@ -151,6 +151,7 @@ public abstract class JMacro { } } else { robot.mouseMove(endX, endY); + delay(10); } } @@ -187,7 +188,13 @@ public abstract class JMacro { * @param rect 点 */ public void mouseLeftClick(ViewPoint rect, long delay) { - mouseMove(rect); + + // 获取当前鼠标位置 + Point mousePoint = MouseInfo.getPointerInfo().getLocation(); + if (mousePoint.x != rect.getX() || mousePoint.y != rect.getY()) { + Logger.info("鼠标移动至[{},{}]", rect.getX(), rect.getY()); + mouseMove(rect); + } robot.mousePress(InputEvent.BUTTON1_DOWN_MASK); delay(delay); robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK); @@ -380,11 +387,11 @@ public abstract class JMacro { */ public ViewRect findPic(ViewRect viewRect, File pic, double minSimilar) { if (!pic.exists()) { - Logger.error("[{}] does not exist!", pic.getAbsolutePath()); + Logger.info("[{}] does not exist!", pic.getAbsolutePath()); return null; } if (!pic.isFile()) { - Logger.error("[{}] is not a file!", pic.getAbsolutePath()); + Logger.info("[{}] is not a file!", pic.getAbsolutePath()); return null; } Logger.info("查找图片:{}", pic.getAbsolutePath()); @@ -408,7 +415,7 @@ public abstract class JMacro { } // 当查找区域比图片还小时,直接返回失败 if (viewRect.getWidth() < pic.getWidth() || viewRect.getHeight() < pic.getHeight()) { - Logger.error("视口尺寸小于图片"); + Logger.info("视口尺寸小于图片"); return null; } if (minSimilar > 1) { diff --git a/src/main/java/xyz/wbsite/jmacro/JMainService.java b/src/main/java/xyz/wbsite/jmacro/JMainService.java index e3c5932..583e442 100644 --- a/src/main/java/xyz/wbsite/jmacro/JMainService.java +++ b/src/main/java/xyz/wbsite/jmacro/JMainService.java @@ -77,7 +77,7 @@ public class JMainService { return false; } if (JMainService.getInstance().run) { - Logger.error("服务已启动"); + Logger.info("服务已启动"); return false; } @@ -90,7 +90,7 @@ public class JMainService { public static boolean stop() { if (!JMainService.getInstance().run) { - Logger.error("服务未启动"); + Logger.info("服务未启动"); return false; } // 停止服务 @@ -109,7 +109,7 @@ public class JMainService { @Override public void run() { if (macro == null) { - Logger.error("脚本未设置"); + Logger.info("脚本未设置"); return; } while (run) { diff --git a/src/main/java/xyz/wbsite/jmacro/base/Legend.java b/src/main/java/xyz/wbsite/jmacro/base/Legend.java index 0e8627e..fc10a76 100644 --- a/src/main/java/xyz/wbsite/jmacro/base/Legend.java +++ b/src/main/java/xyz/wbsite/jmacro/base/Legend.java @@ -84,7 +84,7 @@ public class Legend { List files = FileUtil.loopFiles(defaultBase, pathname -> pathname.getName().startsWith(name)); if (files.size() == 0) { - Logger.error(defaultBase.getAbsolutePath() + " not found the legend of " + name); + Logger.info(defaultBase.getAbsolutePath() + " not found the legend of " + name); throw new RuntimeException(defaultBase.getAbsolutePath() + " not found the legend of " + name); } File file = files.get(0); diff --git a/src/main/java/xyz/wbsite/jmacro/tool/PickLegend.java b/src/main/java/xyz/wbsite/jmacro/tool/PickLegend.java index 0d1358d..e37452f 100644 --- a/src/main/java/xyz/wbsite/jmacro/tool/PickLegend.java +++ b/src/main/java/xyz/wbsite/jmacro/tool/PickLegend.java @@ -224,7 +224,7 @@ public class PickLegend extends JFrame { for (File file1 : files) { boolean delete = file1.delete(); if (!delete) { - Logger.error("删除失败,{}", file1.getAbsolutePath()); + Logger.info("删除失败,{}", file1.getAbsolutePath()); } } } diff --git a/src/main/java/xyz/wbsite/jmacro/wjdr/task/Task_仓库奖励领取.java b/src/main/java/xyz/wbsite/jmacro/wjdr/task/Task_仓库奖励领取.java index 7a11d9b..ff13934 100644 --- a/src/main/java/xyz/wbsite/jmacro/wjdr/task/Task_仓库奖励领取.java +++ b/src/main/java/xyz/wbsite/jmacro/wjdr/task/Task_仓库奖励领取.java @@ -15,7 +15,7 @@ public class Task_仓库奖励领取 extends BaseTask { isReady(); Logger.info("打开面板"); - ViewRect[] viewRects = macro.matchLegends(macro.of("城镇_面板1选中", "城镇_面板2选中"), 0.9); + ViewRect[] viewRects = macro.matchLegends(macro.of("城镇_面板1选中", "城镇_面板2选中"), 0.7); if (viewRects[0] == null && viewRects[1] == null) { Logger.info("面板未打开"); Logger.info("检测面板打开按钮,打开面板"); diff --git a/src/main/java/xyz/wbsite/jmacro/wjdr/task/Task_英雄招募领取.java b/src/main/java/xyz/wbsite/jmacro/wjdr/task/Task_英雄招募领取.java index 63f17ac..5e9fd8f 100644 --- a/src/main/java/xyz/wbsite/jmacro/wjdr/task/Task_英雄招募领取.java +++ b/src/main/java/xyz/wbsite/jmacro/wjdr/task/Task_英雄招募领取.java @@ -46,28 +46,52 @@ public class Task_英雄招募领取 extends BaseTask { macro.mouseLeftClick(macro.getFocusRect()); macro.delay(1000); - Logger.info("检测任意位置继续"); - ViewRect 点击任意位置退出 = macro.waitAndMatchLegend("英雄招募_奖励清单", 0.9, 3); - if (点击任意位置退出 != null) { - Logger.info("点击任意位置退出"); - macro.mouseLeftClick(点击任意位置退出); - macro.delay(1500); + { + Logger.info("检测奖励清单"); + ViewRect 点击任意位置退出 = macro.waitAndMatchLegend("英雄招募_奖励清单", 0.8, 4); + if (点击任意位置退出 != null) { + Logger.info("点击任意位置退出"); + macro.mouseLeftClick(点击任意位置退出); + macro.delay(1500); + } + } + + { + Logger.info("检测奖励清单"); + ViewRect 点击任意位置退出 = macro.waitAndMatchLegend("英雄招募_奖励清单", 0.8, 4); + if (点击任意位置退出 != null) { + Logger.info("点击任意位置退出"); + macro.mouseLeftClick(点击任意位置退出); + macro.delay(1500); + } } } } { - boolean 英雄招募_史诗招募 = macro.matchLegendAndClick("英雄招募_史诗招募", 0.9); + boolean 英雄招募_史诗招募 = macro.matchLegendAndClick("英雄招募_史诗招募", 0.8); if (英雄招募_史诗招募) { macro.delay(500); macro.mouseLeftClick(macro.getFocusRect()); macro.delay(1000); - Logger.info("检测任意位置继续"); - ViewRect 点击任意位置退出 = macro.waitAndMatchLegend("英雄招募_奖励清单", 0.9, 3); - if (点击任意位置退出 != null) { - Logger.info("点击任意位置退出"); - macro.mouseLeftClick(点击任意位置退出); - macro.delay(1500); + { + Logger.info("检测任意位置继续"); + ViewRect 点击任意位置退出 = macro.waitAndMatchLegend("英雄招募_奖励清单", 0.9, 4); + if (点击任意位置退出 != null) { + Logger.info("点击任意位置退出"); + macro.mouseLeftClick(点击任意位置退出); + macro.delay(1500); + } + } + + { + Logger.info("检测任意位置继续"); + ViewRect 点击任意位置退出 = macro.waitAndMatchLegend("英雄招募_奖励清单", 0.9, 4); + if (点击任意位置退出 != null) { + Logger.info("点击任意位置退出"); + macro.mouseLeftClick(点击任意位置退出); + macro.delay(1500); + } } } }