After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 374 B |
After Width: | Height: | Size: 822 B |
After Width: | Height: | Size: 972 B |
After Width: | Height: | Size: 861 B |
After Width: | Height: | Size: 453 B |
Before Width: | Height: | Size: 600 B |
After Width: | Height: | Size: 592 B |
After Width: | Height: | Size: 551 B |
After Width: | Height: | Size: 557 B |
After Width: | Height: | Size: 416 B |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.3 KiB |
After Width: | Height: | Size: 974 B |
@ -0,0 +1,108 @@
|
||||
package xyz.wbsite.jmacro.wjdr.task;
|
||||
|
||||
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 boolean 满体力;
|
||||
public boolean 有任务奖励;
|
||||
public boolean 有邮件奖励;
|
||||
public boolean 有探险奖励;
|
||||
|
||||
public Task_状态检测(JMacro macro, ViewRect viewRect) {
|
||||
super(macro, viewRect);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void task(JMacro macro, ViewRect viewRect) {
|
||||
Logger.info("读取行军状态");
|
||||
{
|
||||
Logger.info("检测面板状态");
|
||||
ViewRect[] viewRects = macro.matchLegends(0.6, "城镇_打开面板", "城镇_关闭面板");
|
||||
if (viewRects[0] == null && viewRects[1] == null) {
|
||||
Logger.info("检测面板状态失败");
|
||||
return;
|
||||
}
|
||||
|
||||
if (viewRects[0] != null) {
|
||||
Logger.info("打开面板");
|
||||
macro.mouseLeftClick(viewRects[0]);
|
||||
macro.delay(1000);
|
||||
}
|
||||
|
||||
Logger.info("选中城镇");
|
||||
macro.mouseLeftClick(macro.of(85,200));
|
||||
macro.delay(1000);
|
||||
// todo
|
||||
|
||||
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(城镇_关闭面板);
|
||||
|
||||
{// 任务奖励
|
||||
有任务奖励 = macro.matchColor(macro.of(43, 759, "#ff3939"));
|
||||
}
|
||||
{// 邮件奖励
|
||||
有邮件奖励 = macro.matchColor(macro.of(506, 751, "#fe3939"));
|
||||
}
|
||||
{// 探险奖励
|
||||
有探险奖励 = macro.matchColor(macro.of(71,877,"#ff1e1f"));
|
||||
}
|
||||
}
|
||||
|
||||
public boolean 有空闲队列() {
|
||||
return 队列1空闲 || 队列2空闲 || 队列3空闲 || 队列4空闲 || 队列5空闲 || 队列6空闲;
|
||||
}
|
||||
}
|
@ -0,0 +1,276 @@
|
||||
package xyz.wbsite.jmacro.wjdr.task;
|
||||
|
||||
import xyz.wbsite.jmacro.JMacro;
|
||||
import xyz.wbsite.jmacro.base.ViewRect;
|
||||
import xyz.wbsite.jmacro.util.Logger;
|
||||
|
||||
public class Task_自动练兵 extends BaseTask {
|
||||
|
||||
public Task_自动练兵(JMacro macro, ViewRect viewRect) {
|
||||
super(macro, viewRect);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void task(JMacro macro, ViewRect viewRect) {
|
||||
盾兵自动训练(macro, viewRect);
|
||||
矛兵自动训练(macro, viewRect);
|
||||
射手自动训练(macro, viewRect);
|
||||
}
|
||||
|
||||
private void 盾兵自动训练(JMacro macro, ViewRect viewRect) {
|
||||
Logger.info("检测面板状态");
|
||||
ViewRect[] viewRects = macro.matchLegends(0.6, "城镇_打开面板", "城镇_关闭面板");
|
||||
if (viewRects == null) {
|
||||
Logger.info("检测面板状态检测失败");
|
||||
return;
|
||||
}
|
||||
if (viewRects[0] != null) {
|
||||
Logger.info("打开面板");
|
||||
macro.mouseLeftClick(viewRects[0]);
|
||||
macro.delay(1000);
|
||||
}
|
||||
|
||||
if (viewRects[1] != null) {
|
||||
Logger.info("面板已打开");
|
||||
}
|
||||
|
||||
Logger.info("选中城镇");
|
||||
macro.mouseLeftClick(macro.of(85, 200));
|
||||
macro.delay(1000);
|
||||
|
||||
Logger.info("检测盾兵");
|
||||
ViewRect[] viewRects2 = macro.waitAndMatchLegends(0.9D, 3, "城镇_完成盾兵", "城镇_空闲盾兵");
|
||||
if (viewRects2 == null) {
|
||||
Logger.info("检测失败");
|
||||
return;
|
||||
}
|
||||
if (viewRects2[0] != null) {
|
||||
Logger.info("训练完成,去领取");
|
||||
macro.mouseLeftClick(viewRects2[0]);
|
||||
macro.delay(1000);
|
||||
Logger.info("点击领取");
|
||||
macro.mouseLeftClick(macro.of(268, 431));
|
||||
macro.delay(1000);
|
||||
|
||||
Logger.info("点击兵营");
|
||||
macro.mouseLeftClick(macro.of(268, 431));
|
||||
macro.delay(1000);
|
||||
|
||||
Logger.info("点击训练");
|
||||
macro.mouseLeftClick(macro.of(355, 632));
|
||||
macro.delay(1000);
|
||||
|
||||
Logger.error("确认训练");
|
||||
macro.mouseLeftClick(macro.of(396, 885));
|
||||
macro.delay(1000);
|
||||
|
||||
ViewRect 兵营_返回 = macro.matchLegend("兵营_返回", 0.9D);
|
||||
if (兵营_返回 == null) {
|
||||
Logger.error("兵营返回失败");
|
||||
}
|
||||
macro.mouseLeftClick(兵营_返回);
|
||||
macro.delay(1000);
|
||||
}
|
||||
if (viewRects2[1] != null) {
|
||||
Logger.info("兵营空闲,去练兵");
|
||||
macro.mouseLeftClick(viewRects2[1]);
|
||||
|
||||
Logger.info("点击训练");
|
||||
macro.mouseLeftClick(macro.of(355, 632));
|
||||
macro.delay(1000);
|
||||
|
||||
Logger.error("确认训练");
|
||||
macro.mouseLeftClick(macro.of(396, 885));
|
||||
macro.delay(1000);
|
||||
|
||||
ViewRect 兵营_返回 = macro.matchLegend("兵营_返回", 0.9D);
|
||||
if (兵营_返回 == null) {
|
||||
Logger.error("兵营返回失败");
|
||||
}
|
||||
macro.mouseLeftClick(兵营_返回);
|
||||
macro.delay(1000);
|
||||
}
|
||||
if (viewRects2[0] != null && viewRects2[1] != null) {
|
||||
Logger.info("关闭面板");
|
||||
ViewRect rect = macro.matchLegend("城镇_关闭面板", 0.6);
|
||||
if (rect == null) {
|
||||
return;
|
||||
}
|
||||
macro.mouseLeftClick(rect);
|
||||
}
|
||||
}
|
||||
|
||||
private void 矛兵自动训练(JMacro macro, ViewRect viewRect) {
|
||||
Logger.info("检测面板状态");
|
||||
ViewRect[] viewRects = macro.matchLegends(0.6, "城镇_打开面板", "城镇_关闭面板");
|
||||
if (viewRects == null) {
|
||||
Logger.info("检测面板状态检测失败");
|
||||
return;
|
||||
}
|
||||
if (viewRects[0] != null) {
|
||||
Logger.info("打开面板");
|
||||
macro.mouseLeftClick(viewRects[0]);
|
||||
macro.delay(1000);
|
||||
}
|
||||
|
||||
if (viewRects[1] != null) {
|
||||
Logger.info("面板已打开");
|
||||
}
|
||||
|
||||
Logger.info("选中城镇");
|
||||
macro.mouseLeftClick(macro.of(85, 200));
|
||||
macro.delay(1000);
|
||||
|
||||
Logger.info("检测矛兵");
|
||||
ViewRect[] viewRects2 = macro.waitAndMatchLegends(0.9D, 3, "城镇_完成矛兵", "城镇_空闲矛兵");
|
||||
if (viewRects2 == null) {
|
||||
Logger.info("检测失败");
|
||||
return;
|
||||
}
|
||||
if (viewRects2[0] != null) {
|
||||
Logger.info("训练完成,去领取");
|
||||
macro.mouseLeftClick(viewRects2[0]);
|
||||
macro.delay(1000);
|
||||
Logger.info("点击领取");
|
||||
macro.mouseLeftClick(macro.of(268, 431));
|
||||
macro.delay(1000);
|
||||
|
||||
Logger.info("点击兵营");
|
||||
macro.mouseLeftClick(macro.of(268, 431));
|
||||
macro.delay(1000);
|
||||
|
||||
Logger.info("点击训练");
|
||||
macro.mouseLeftClick(macro.of(355, 632));
|
||||
macro.delay(1000);
|
||||
|
||||
ViewRect 兵营_训练 = macro.waitAndMatchLegend("兵营_训练", 0.9, 2);
|
||||
if (兵营_训练 == null) {
|
||||
Logger.error("训练失败,未检测到兵营训练");
|
||||
}
|
||||
Logger.error("确认训练");
|
||||
macro.mouseLeftClick(兵营_训练);
|
||||
macro.delay(1000);
|
||||
|
||||
ViewRect 兵营_返回 = macro.matchLegend("兵营_返回", 0.9D);
|
||||
if (兵营_返回 == null) {
|
||||
Logger.error("兵营返回失败");
|
||||
}
|
||||
macro.mouseLeftClick(兵营_返回);
|
||||
macro.delay(1000);
|
||||
}
|
||||
if (viewRects2[1] != null) {
|
||||
Logger.info("兵营空闲,去练兵");
|
||||
macro.mouseLeftClick(viewRects2[1]);
|
||||
|
||||
Logger.info("点击训练");
|
||||
macro.mouseLeftClick(macro.of(355, 632));
|
||||
macro.delay(1000);
|
||||
|
||||
Logger.error("确认训练");
|
||||
macro.mouseLeftClick(macro.of(396, 885));
|
||||
macro.delay(1000);
|
||||
|
||||
ViewRect 兵营_返回 = macro.matchLegend("兵营_返回", 0.9D);
|
||||
if (兵营_返回 == null) {
|
||||
Logger.error("兵营返回失败");
|
||||
}
|
||||
macro.mouseLeftClick(兵营_返回);
|
||||
macro.delay(1000);
|
||||
}
|
||||
if (viewRects2[0] != null && viewRects2[1] != null) {
|
||||
Logger.info("关闭面板");
|
||||
ViewRect rect = macro.matchLegend("城镇_关闭面板", 0.6);
|
||||
if (rect == null) {
|
||||
return;
|
||||
}
|
||||
macro.mouseLeftClick(rect);
|
||||
}
|
||||
}
|
||||
|
||||
private void 射手自动训练(JMacro macro, ViewRect viewRect) {
|
||||
Logger.info("检测面板状态");
|
||||
ViewRect[] viewRects = macro.matchLegends(0.6, "城镇_打开面板", "城镇_关闭面板");
|
||||
if (viewRects == null) {
|
||||
Logger.info("检测面板状态检测失败");
|
||||
return;
|
||||
}
|
||||
if (viewRects[0] != null) {
|
||||
Logger.info("打开面板");
|
||||
macro.mouseLeftClick(viewRects[0]);
|
||||
macro.delay(1000);
|
||||
}
|
||||
|
||||
if (viewRects[1] != null) {
|
||||
Logger.info("面板已打开");
|
||||
}
|
||||
|
||||
Logger.info("选中城镇");
|
||||
macro.mouseLeftClick(macro.of(85, 200));
|
||||
macro.delay(1000);
|
||||
|
||||
Logger.info("检测矛兵");
|
||||
ViewRect[] viewRects2 = macro.waitAndMatchLegends(0.9D, 3, "城镇_完成射手", "城镇_空闲射手");
|
||||
if (viewRects2 == null) {
|
||||
Logger.info("检测失败");
|
||||
return;
|
||||
}
|
||||
if (viewRects2[0] != null) {
|
||||
Logger.info("训练完成,去领取");
|
||||
macro.mouseLeftClick(viewRects2[0]);
|
||||
macro.delay(1000);
|
||||
Logger.info("点击领取");
|
||||
macro.mouseLeftClick(macro.of(268, 431));
|
||||
macro.delay(1000);
|
||||
|
||||
Logger.info("点击兵营");
|
||||
macro.mouseLeftClick(macro.of(268, 431));
|
||||
macro.delay(1000);
|
||||
|
||||
Logger.info("点击训练");
|
||||
macro.mouseLeftClick(macro.of(355, 632));
|
||||
macro.delay(1000);
|
||||
|
||||
ViewRect 兵营_训练 = macro.waitAndMatchLegend("兵营_训练", 0.9, 2);
|
||||
if (兵营_训练 == null) {
|
||||
Logger.error("训练失败,未检测到兵营训练");
|
||||
}
|
||||
Logger.error("确认训练");
|
||||
macro.mouseLeftClick(兵营_训练);
|
||||
macro.delay(1000);
|
||||
|
||||
ViewRect 兵营_返回 = macro.matchLegend("兵营_返回", 0.9D);
|
||||
if (兵营_返回 == null) {
|
||||
Logger.error("兵营返回失败");
|
||||
}
|
||||
macro.mouseLeftClick(兵营_返回);
|
||||
macro.delay(1000);
|
||||
}
|
||||
if (viewRects2[1] != null) {
|
||||
Logger.info("兵营空闲,去练兵");
|
||||
macro.mouseLeftClick(viewRects2[1]);
|
||||
|
||||
Logger.info("点击训练");
|
||||
macro.mouseLeftClick(macro.of(355, 632));
|
||||
macro.delay(1000);
|
||||
|
||||
Logger.error("确认训练");
|
||||
macro.mouseLeftClick(macro.of(396, 885));
|
||||
macro.delay(1000);
|
||||
|
||||
ViewRect 兵营_返回 = macro.matchLegend("兵营_返回", 0.9D);
|
||||
if (兵营_返回 == null) {
|
||||
Logger.error("兵营返回失败");
|
||||
}
|
||||
macro.mouseLeftClick(兵营_返回);
|
||||
macro.delay(1000);
|
||||
}
|
||||
if (viewRects2[0] != null && viewRects2[1] != null) {
|
||||
Logger.info("关闭面板");
|
||||
ViewRect rect = macro.matchLegend("城镇_关闭面板", 0.6);
|
||||
if (rect == null) {
|
||||
return;
|
||||
}
|
||||
macro.mouseLeftClick(rect);
|
||||
}
|
||||
}
|
||||
}
|