From c00d1673f5f63323d57f661c8277e1e4f276efc0 Mon Sep 17 00:00:00 2001 From: status102 <102887808+status102@users.noreply.github.com> Date: Fri, 22 Mar 2024 16:20:29 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=88=98=E6=96=97=E4=B8=AD=E6=95=99?= =?UTF-8?q?=E7=A8=8B=E5=89=A7=E6=83=85=E5=AF=BC=E8=87=B4=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E7=9A=84=E5=80=8D=E9=80=9F=E5=88=87=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/tasks.json | 12 ++++++++++++ resource/template/BattleSpeedUpCheck.png | Bin 0 -> 4873 bytes src/MaaCore/Task/BattleHelper.cpp | 8 ++++++++ src/MaaCore/Task/BattleHelper.h | 1 + .../Task/Miscellaneous/BattleProcessTask.cpp | 2 +- 5 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 resource/template/BattleSpeedUpCheck.png diff --git a/resource/tasks.json b/resource/tasks.json index be473d77c4..637fa51caf 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -8843,6 +8843,18 @@ 60 ] }, + "BattleSpeedUpCheck": { + "roi": [ + 1060, + 20, + 80, + 70 + ], + "maskRange": [ + 170, + 220 + ] + }, "BattlePause": { "algorithm": "JustReturn", "action": "ClickRect", diff --git a/resource/template/BattleSpeedUpCheck.png b/resource/template/BattleSpeedUpCheck.png new file mode 100644 index 0000000000000000000000000000000000000000..6e7064c9348cb159d483f87ee44a46bd05e7c8cb GIT binary patch literal 4873 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 : reusable; + Matcher analyzer(image); + analyzer.set_task_info("BattleSpeedUpCheck"); + return analyzer.analyze().has_value(); +} + bool asst::BattleHelper::check_in_battle(const cv::Mat& reusable, bool weak) { cv::Mat image = reusable.empty() ? m_inst_helper.ctrler()->get_image() : reusable; diff --git a/src/MaaCore/Task/BattleHelper.h b/src/MaaCore/Task/BattleHelper.h index 4799c78453..b6561f5814 100644 --- a/src/MaaCore/Task/BattleHelper.h +++ b/src/MaaCore/Task/BattleHelper.h @@ -46,6 +46,7 @@ namespace asst bool use_skill(const Point& loc, bool keep_waiting = true); bool check_pause_button(const cv::Mat& reusable = cv::Mat()); bool check_skip_plot_button(const cv::Mat& reusable = cv::Mat()); + bool check_in_speed_up(const cv::Mat& reusable = cv::Mat()); virtual bool check_in_battle(const cv::Mat& reusable = cv::Mat(), bool weak = true); virtual bool wait_until_start(bool weak = true); bool wait_until_end(bool weak = true); diff --git a/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp b/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp index 0098f7b5c7..4321938c87 100644 --- a/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp +++ b/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp @@ -407,7 +407,7 @@ bool asst::BattleProcessTask::check_in_battle(const cv::Mat& reusable, bool weak auto result = analyzer.analyze(); m_in_battle = result.has_value(); if (m_in_battle && !result->pause_button) { - if (check_skip_plot_button(image)) { + if (check_skip_plot_button(image) && check_in_speed_up(image)) { speed_up(); } }