diff --git a/resource/tasks.json b/resource/tasks.json index be5de00793..8134208a10 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -4069,40 +4069,89 @@ "StartButton1" ] }, - "FightSeries-Default-1": { - "action": "DoNothing", - "roi": [ - 945, - 580, - 100, - 50 - ] - }, "FightSeries-Icon": { - "action": "ClickSelf", "roi": [ 945, 580, 100, 50 - ], - "next": [ - "FightSeries-List-1" ] }, - "FightSeries-List": { - "template": "empty.png", - "action": "ClickSelf", + "FightSeries-Indicator": { "roi": [ 950, 180, - 100, + 50, 400 ] }, + "FightSeries-Open": { + "baseTask": "FightSeries-Icon", + "template": "FightSeries-Icon.png", + "action": "ClickSelf", + "sub": [ + "FightSeries-Indicator" + ] + }, "FightSeries-List-1": { - "baseTask": "FightSeries-List", - "template": "FightSeries-List-1.png" + "algorithm": "JustReturn", + "action": "ClickRect", + "specificRect": [ + 965, + 505, + 70, + 55 + ] + }, + "FightSeries-List-2": { + "algorithm": "JustReturn", + "action": "ClickRect", + "specificRect": [ + 965, + 445, + 70, + 55 + ] + }, + "FightSeries-List-3": { + "algorithm": "JustReturn", + "action": "ClickRect", + "specificRect": [ + 965, + 383, + 70, + 55 + ] + }, + "FightSeries-List-4": { + "algorithm": "JustReturn", + "action": "ClickRect", + "specificRect": [ + 965, + 320, + 70, + 55 + ] + }, + "FightSeries-List-5": { + "algorithm": "JustReturn", + "action": "ClickRect", + "specificRect": [ + 965, + 260, + 70, + 55 + ] + }, + "FightSeries-List-6": { + "algorithm": "JustReturn", + "action": "ClickRect", + "specificRect": [ + 965, + 200, + 70, + 50 + ] }, "StartButton1": { "doc": "绑定插件调整连战次数", @@ -16333,4 +16382,4 @@ "Stop" ] } -} \ No newline at end of file +} diff --git a/resource/template/FightSeries-Default-1.png b/resource/template/FightSeries-Default-1.png deleted file mode 100644 index 1ec13473bf..0000000000 Binary files a/resource/template/FightSeries-Default-1.png and /dev/null differ diff --git a/resource/template/FightSeries-Indicator.png b/resource/template/FightSeries-Indicator.png new file mode 100644 index 0000000000..2db9a2e45a Binary files /dev/null and b/resource/template/FightSeries-Indicator.png differ diff --git a/resource/template/FightSeries-List-1.png b/resource/template/FightSeries-List-1.png deleted file mode 100644 index 33c73cfa56..0000000000 Binary files a/resource/template/FightSeries-List-1.png and /dev/null differ diff --git a/src/MaaCore/Task/Fight/FightTimesPlugin.cpp b/src/MaaCore/Task/Fight/FightTimesPlugin.cpp index 42de5ac5d2..e592509aec 100644 --- a/src/MaaCore/Task/Fight/FightTimesPlugin.cpp +++ b/src/MaaCore/Task/Fight/FightTimesPlugin.cpp @@ -1,5 +1,6 @@ #include "FightTimesPlugin.h" +#include "Controller/Controller.h" #include "Task/ProcessTask.h" bool asst::FightTimesPlugin::verify(AsstMsg msg, const json::value& details) const @@ -13,13 +14,27 @@ bool asst::FightTimesPlugin::verify(AsstMsg msg, const json::value& details) con bool asst::FightTimesPlugin::_run() { + const static std::string FightSeriesOpenTask = "FightSeries-Indicator"; + const static std::string FightSeriesValidTask = "FightSeries-Icon"; + auto img = ctrler()->get_image(); // 目前也可以做成subtask,但是给以后糊屎留个地方 - bool result = ProcessTask(*this, { "FightSeries-Default-1", "FightSeries-Icon", "Stop" }).run(); + auto check_status_task = ProcessTask(*this, { FightSeriesOpenTask, FightSeriesValidTask }); + check_status_task.set_reusable_image(img).set_retry_times(0); - if (!result) { - return false; + if (!check_status_task.run()) { // 认为是外服,无法使用连续战斗 + inited = true; + return true; } + if (check_status_task.get_last_task_name() == FightSeriesValidTask) { // 连续战斗次数选择列表未打开 + auto task = ProcessTask(*this, { "FightSeries-Open" }); + task.set_reusable_image(img); + if (!task.run()) { + return false; + } + } + ProcessTask(*this, { "FightSeries-List-1" }).run(); + inited = true; return true; } diff --git a/src/MaaCore/Task/Fight/FightTimesPlugin.h b/src/MaaCore/Task/Fight/FightTimesPlugin.h index 5f70a0033f..a636927e0c 100644 --- a/src/MaaCore/Task/Fight/FightTimesPlugin.h +++ b/src/MaaCore/Task/Fight/FightTimesPlugin.h @@ -14,7 +14,6 @@ namespace asst virtual bool _run() override; private: - // 是否成功初始化为1次 - bool inited = false; + bool inited = false; // 是否成功初始化为1次,初始化后后续不再检测 (实现调整次数后移除此变量 }; }