From 2fa541860dede5b5a6fabf61de9b0021058eacca Mon Sep 17 00:00:00 2001 From: Lancarus Date: Fri, 6 Oct 2023 18:23:22 +0800 Subject: [PATCH 01/10] =?UTF-8?q?feat:=20=E6=8A=84=E4=BD=9C=E4=B8=9A?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E8=B7=B3=E8=BF=87=E6=88=98=E6=96=97=E4=B8=AD?= =?UTF-8?q?=E5=89=A7=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/tasks.json | 8 ++++---- src/MaaCore/Task/BattleHelper.cpp | 13 +++++++++++++ src/MaaCore/Task/BattleHelper.h | 1 + .../Task/Miscellaneous/BattleProcessTask.cpp | 2 +- 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/resource/tasks.json b/resource/tasks.json index efe7891ded..400785269a 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -7450,20 +7450,20 @@ 100, 255 ] - }, + }, "SkipThePreBattlePlotConfirm": { "action": "ClickSelf", "roi": [ 721, - 390, + 290, 149, - 144 + 244 ], "maskRange": [ 100, 255 ] - }, + }, "SkipForbiddenOperConfirm": { "action": "ClickSelf", "roi": [ diff --git a/src/MaaCore/Task/BattleHelper.cpp b/src/MaaCore/Task/BattleHelper.cpp index 3e2b9a451a..21c549c9e1 100644 --- a/src/MaaCore/Task/BattleHelper.cpp +++ b/src/MaaCore/Task/BattleHelper.cpp @@ -392,10 +392,23 @@ bool asst::BattleHelper::check_pause_button(const cv::Mat& reusable) ret &= battle_result_opt && battle_result_opt->pause_button; return ret; } +bool asst::BattleHelper::check_skip_plot_button(const cv::Mat& reusable) +{ + cv::Mat image = reusable.empty() ? m_inst_helper.ctrler()->get_image() : reusable; + + Matcher battle_plot_analyzer(image); + battle_plot_analyzer.set_task_info("SkipThePreBattlePlot"); + bool ret = battle_plot_analyzer.analyze().has_value(); + if (ret) { + ProcessTask(this_task(), { "SkipThePreBattlePlot" }).run(); + } + return ret; +} bool asst::BattleHelper::check_in_battle(const cv::Mat& reusable, bool weak) { cv::Mat image = reusable.empty() ? m_inst_helper.ctrler()->get_image() : reusable; + check_skip_plot_button(image); if (weak) { BattlefieldMatcher analyzer(image); m_in_battle = analyzer.analyze().has_value(); diff --git a/src/MaaCore/Task/BattleHelper.h b/src/MaaCore/Task/BattleHelper.h index 1b2e3c4e8f..feec30e25e 100644 --- a/src/MaaCore/Task/BattleHelper.h +++ b/src/MaaCore/Task/BattleHelper.h @@ -45,6 +45,7 @@ namespace asst bool use_skill(const std::string& name, bool keep_waiting = true); 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_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 9eb544abfa..dc6165f69f 100644 --- a/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp +++ b/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp @@ -265,7 +265,7 @@ bool asst::BattleProcessTask::wait_condition(const Action& action) auto do_strategy_and_update_image = [&]() { do_strategic_action(image); image = ctrler()->get_image(); - }; + }; if (action.cost_changes != 0) { update_image_if_empty(); From 08eeae14b906c6b60e4f82918668edbfd6b1ec4e Mon Sep 17 00:00:00 2001 From: Lancarus Date: Fri, 6 Oct 2023 18:24:37 +0800 Subject: [PATCH 02/10] =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E5=8C=96=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/tasks.json | 4 ++-- src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/resource/tasks.json b/resource/tasks.json index 400785269a..1660833eba 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -7450,7 +7450,7 @@ 100, 255 ] - }, + }, "SkipThePreBattlePlotConfirm": { "action": "ClickSelf", "roi": [ @@ -7463,7 +7463,7 @@ 100, 255 ] - }, + }, "SkipForbiddenOperConfirm": { "action": "ClickSelf", "roi": [ diff --git a/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp b/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp index dc6165f69f..9eb544abfa 100644 --- a/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp +++ b/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp @@ -265,7 +265,7 @@ bool asst::BattleProcessTask::wait_condition(const Action& action) auto do_strategy_and_update_image = [&]() { do_strategic_action(image); image = ctrler()->get_image(); - }; + }; if (action.cost_changes != 0) { update_image_if_empty(); From 27c1364da8bd6fae48b005c31ece0ef248fea9d2 Mon Sep 17 00:00:00 2001 From: Lancarus Date: Fri, 6 Oct 2023 18:44:49 +0800 Subject: [PATCH 03/10] =?UTF-8?q?feat:=20=E5=9C=A8=E6=88=98=E6=96=97?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E4=B8=AD=E5=B0=86=E6=95=99=E5=AD=A6=E5=85=B3?= =?UTF-8?q?=E5=8F=96=E6=B6=88=E8=87=AA=E5=8A=A8=E7=BC=96=E9=98=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaCore/Task/Interface/CopilotTask.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/MaaCore/Task/Interface/CopilotTask.cpp b/src/MaaCore/Task/Interface/CopilotTask.cpp index 4110cdd309..385e19434e 100644 --- a/src/MaaCore/Task/Interface/CopilotTask.cpp +++ b/src/MaaCore/Task/Interface/CopilotTask.cpp @@ -92,7 +92,8 @@ bool asst::CopilotTask::set_params(const json::value& params) return false; } - bool with_formation = params.get("formation", false); + // 关卡名含有"tr"的为教学关,不需要编队 + bool with_formation = (m_stage_name.find("tr") == std::string::npos) && params.get("formation", false); m_formation_task_ptr->set_enable(with_formation); // 自动补信赖 From c01cafd08d562eb979c49f23f444a454893f2fcb Mon Sep 17 00:00:00 2001 From: Lancarus Date: Fri, 6 Oct 2023 19:57:38 +0800 Subject: [PATCH 04/10] =?UTF-8?q?=E4=BD=BF=E7=94=A8=E5=AF=BC=E8=88=AA?= =?UTF-8?q?=E5=90=8D=E5=88=A4=E6=96=AD=E6=98=AF=E5=90=A6=E4=B8=BA=E6=95=99?= =?UTF-8?q?=E5=AD=A6=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaCore/Task/Interface/CopilotTask.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/MaaCore/Task/Interface/CopilotTask.cpp b/src/MaaCore/Task/Interface/CopilotTask.cpp index 385e19434e..fb87559898 100644 --- a/src/MaaCore/Task/Interface/CopilotTask.cpp +++ b/src/MaaCore/Task/Interface/CopilotTask.cpp @@ -91,9 +91,8 @@ bool asst::CopilotTask::set_params(const json::value& params) Log.error("Not support stage"); return false; } - - // 关卡名含有"tr"的为教学关,不需要编队 - bool with_formation = (m_stage_name.find("tr") == std::string::npos) && params.get("formation", false); + + bool with_formation = params.get("formation", false); m_formation_task_ptr->set_enable(with_formation); // 自动补信赖 @@ -136,6 +135,9 @@ bool asst::CopilotTask::set_params(const json::value& params) m_navigate_task_ptr->set_tasks({ m_navigate_name + "@Copilot@StageNavigationBegin" }); m_navigate_task_ptr->set_enable(need_navigate); + // 关卡名含有"TR"的为教学关,不需要编队 + m_formation_task_ptr->set_enable(m_navigate_name.find("TR") == std::string::npos); + std::string support_unit_name = params.get("support_unit_name", std::string()); m_formation_task_ptr->set_support_unit_name(std::move(support_unit_name)); From 6f3401528b1e5c04a36dc9a08db0874144a97e64 Mon Sep 17 00:00:00 2001 From: Lancarus Date: Sat, 7 Oct 2023 02:06:43 +0800 Subject: [PATCH 05/10] =?UTF-8?q?fix:=20=E6=88=98=E6=96=97=E5=88=97?= =?UTF-8?q?=E8=A1=A8ocr=E6=9B=BF=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/tasks.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/resource/tasks.json b/resource/tasks.json index 1660833eba..872377e40a 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -601,6 +601,10 @@ [ ":", "" + ], + [ + "-2O", + "-20" ] ], "roi": [ From 70b6317d70ac6e96545b2f10dac7e35c5036904c Mon Sep 17 00:00:00 2001 From: Lancarus Date: Sat, 7 Oct 2023 02:14:45 +0800 Subject: [PATCH 06/10] =?UTF-8?q?feat:=20=E6=A0=B9=E6=8D=AEreview=E5=B0=86?= =?UTF-8?q?`check=5Fskip=5Fplot=5Fbutton`=E7=A7=BB=E5=8A=A8=E5=88=B0Battle?= =?UTF-8?q?Process=E9=87=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaCore/Task/BattleHelper.cpp | 1 - .../Task/Miscellaneous/BattleProcessTask.cpp | 27 ++++++++++++++++++- .../Task/Miscellaneous/BattleProcessTask.h | 3 +++ 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/MaaCore/Task/BattleHelper.cpp b/src/MaaCore/Task/BattleHelper.cpp index 21c549c9e1..632aeb0c7e 100644 --- a/src/MaaCore/Task/BattleHelper.cpp +++ b/src/MaaCore/Task/BattleHelper.cpp @@ -408,7 +408,6 @@ bool asst::BattleHelper::check_skip_plot_button(const cv::Mat& reusable) bool asst::BattleHelper::check_in_battle(const cv::Mat& reusable, bool weak) { cv::Mat image = reusable.empty() ? m_inst_helper.ctrler()->get_image() : reusable; - check_skip_plot_button(image); if (weak) { BattlefieldMatcher analyzer(image); m_in_battle = analyzer.analyze().has_value(); diff --git a/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp b/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp index 9eb544abfa..cb43eddd17 100644 --- a/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp +++ b/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp @@ -336,7 +336,10 @@ bool asst::BattleProcessTask::wait_condition(const Action& action) const std::string& name = get_name_from_group(action.name); update_image_if_empty(); while (!need_exit()) { - if (!update_deployment(false, image)) { + if (check_skip_plot_button(image)) { + speed_up(); + } + else if (!update_deployment(false, image)) { return false; } if (auto iter = m_cur_deployment_opers.find(name); @@ -375,3 +378,25 @@ void asst::BattleProcessTask::sleep_and_do_strategy(unsigned millisecond) std::this_thread::yield(); } } + +bool asst::BattleProcessTask::check_in_battle(const cv::Mat& reusable, bool weak) +{ + LogTraceFunction; + + cv::Mat image = reusable; + return check_skip_plot_button(image) ? speed_up() && false : BattleHelper::check_in_battle(image, weak); +} + +bool asst::BattleProcessTask::wait_until_end(bool weak) +{ + LogTraceFunction; + + cv::Mat image = ctrler()->get_image(); + while (!need_exit() && check_in_battle(image, weak)) { + do_strategic_action(image); + std::this_thread::yield(); + + image = ctrler()->get_image(); + } + return true; +} diff --git a/src/MaaCore/Task/Miscellaneous/BattleProcessTask.h b/src/MaaCore/Task/Miscellaneous/BattleProcessTask.h index 5a69ce9d9a..13b575ba15 100644 --- a/src/MaaCore/Task/Miscellaneous/BattleProcessTask.h +++ b/src/MaaCore/Task/Miscellaneous/BattleProcessTask.h @@ -39,6 +39,9 @@ namespace asst bool enter_bullet_time(const std::string& name, const Point& location); void sleep_and_do_strategy(unsigned millisecond); + bool check_in_battle(const cv::Mat& reusable = cv::Mat(), bool weak = true); + bool wait_until_end(bool weak = true); + battle::copilot::CombatData m_combat_data; std::unordered_map m_oper_in_group; From 5eee5098c0f271257047459e4f14545caf7b33a0 Mon Sep 17 00:00:00 2001 From: Lancarus Date: Sat, 7 Oct 2023 11:24:57 +0800 Subject: [PATCH 07/10] =?UTF-8?q?feat:=20=E6=8C=89=E7=85=A7review=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaCore/Task/BattleHelper.h | 2 +- .../Task/Miscellaneous/BattleProcessTask.cpp | 19 +++++-------------- .../Task/Miscellaneous/BattleProcessTask.h | 3 +-- 3 files changed, 7 insertions(+), 17 deletions(-) diff --git a/src/MaaCore/Task/BattleHelper.h b/src/MaaCore/Task/BattleHelper.h index feec30e25e..625ce3850e 100644 --- a/src/MaaCore/Task/BattleHelper.h +++ b/src/MaaCore/Task/BattleHelper.h @@ -46,7 +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_battle(const cv::Mat& reusable = cv::Mat(), bool weak = true); + 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); bool use_all_ready_skill(const cv::Mat& reusable = cv::Mat()); diff --git a/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp b/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp index cb43eddd17..dce33060f2 100644 --- a/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp +++ b/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp @@ -384,19 +384,10 @@ bool asst::BattleProcessTask::check_in_battle(const cv::Mat& reusable, bool weak LogTraceFunction; cv::Mat image = reusable; - return check_skip_plot_button(image) ? speed_up() && false : BattleHelper::check_in_battle(image, weak); -} - -bool asst::BattleProcessTask::wait_until_end(bool weak) -{ - LogTraceFunction; - - cv::Mat image = ctrler()->get_image(); - while (!need_exit() && check_in_battle(image, weak)) { - do_strategic_action(image); - std::this_thread::yield(); - - image = ctrler()->get_image(); + if (check_skip_plot_button(image)) { + speed_up(); + return false; } - return true; + + return BattleHelper::check_in_battle(image, weak); } diff --git a/src/MaaCore/Task/Miscellaneous/BattleProcessTask.h b/src/MaaCore/Task/Miscellaneous/BattleProcessTask.h index 13b575ba15..0726cda95a 100644 --- a/src/MaaCore/Task/Miscellaneous/BattleProcessTask.h +++ b/src/MaaCore/Task/Miscellaneous/BattleProcessTask.h @@ -39,8 +39,7 @@ namespace asst bool enter_bullet_time(const std::string& name, const Point& location); void sleep_and_do_strategy(unsigned millisecond); - bool check_in_battle(const cv::Mat& reusable = cv::Mat(), bool weak = true); - bool wait_until_end(bool weak = true); + virtual bool check_in_battle(const cv::Mat& reusable = cv::Mat(), bool weak = true); battle::copilot::CombatData m_combat_data; std::unordered_map m_oper_in_group; From 06eae3e06a49ef10f57c7011cfa9abf9ba4e0fca Mon Sep 17 00:00:00 2001 From: status102 Date: Sat, 7 Oct 2023 14:01:38 +0800 Subject: [PATCH 08/10] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E5=89=A7?= =?UTF-8?q?=E6=83=85=E8=B7=B3=E8=BF=87=E6=A3=80=E6=B5=8B=E9=A2=91=E7=8E=87?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E6=94=B9=E6=9A=82=E5=81=9C=E6=97=B6=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E5=80=BC=E4=B8=BAtrue?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaCore/Task/Interface/CopilotTask.cpp | 6 ++---- .../Task/Miscellaneous/BattleProcessTask.cpp | 20 ++++++++++++++----- .../Task/Miscellaneous/BattleProcessTask.h | 2 +- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/MaaCore/Task/Interface/CopilotTask.cpp b/src/MaaCore/Task/Interface/CopilotTask.cpp index fb87559898..9f045a07ba 100644 --- a/src/MaaCore/Task/Interface/CopilotTask.cpp +++ b/src/MaaCore/Task/Interface/CopilotTask.cpp @@ -91,9 +91,6 @@ bool asst::CopilotTask::set_params(const json::value& params) Log.error("Not support stage"); return false; } - - bool with_formation = params.get("formation", false); - m_formation_task_ptr->set_enable(with_formation); // 自动补信赖 m_formation_task_ptr->set_add_trust(params.get("add_trust", false)); @@ -135,8 +132,9 @@ bool asst::CopilotTask::set_params(const json::value& params) m_navigate_task_ptr->set_tasks({ m_navigate_name + "@Copilot@StageNavigationBegin" }); m_navigate_task_ptr->set_enable(need_navigate); + bool with_formation = params.get("formation", false); // 关卡名含有"TR"的为教学关,不需要编队 - m_formation_task_ptr->set_enable(m_navigate_name.find("TR") == std::string::npos); + m_formation_task_ptr->set_enable(with_formation && m_navigate_name.find("TR") == std::string::npos); std::string support_unit_name = params.get("support_unit_name", std::string()); m_formation_task_ptr->set_support_unit_name(std::move(support_unit_name)); diff --git a/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp b/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp index dce33060f2..f6cef68b80 100644 --- a/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp +++ b/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp @@ -16,6 +16,7 @@ #include "Utils/Algorithm.hpp" #include "Utils/ImageIo.hpp" #include "Utils/Logger.hpp" +#include "Vision/Battle/BattlefieldMatcher.h" #include "Vision/Matcher.h" #include "Vision/RegionOCRer.h" @@ -384,10 +385,19 @@ bool asst::BattleProcessTask::check_in_battle(const cv::Mat& reusable, bool weak LogTraceFunction; cv::Mat image = reusable; - if (check_skip_plot_button(image)) { - speed_up(); - return false; - } - return BattleHelper::check_in_battle(image, weak); + if (weak) { + BattlefieldMatcher analyzer(image); + auto result = analyzer.analyze(); + m_in_battle = result.has_value(); + if (m_in_battle && !(*result).pause_button) { + if (check_skip_plot_button(image)) { + speed_up(); + } + } + } + else { + m_in_battle = check_pause_button(image); + } + return m_in_battle; } diff --git a/src/MaaCore/Task/Miscellaneous/BattleProcessTask.h b/src/MaaCore/Task/Miscellaneous/BattleProcessTask.h index 0726cda95a..478388b6b7 100644 --- a/src/MaaCore/Task/Miscellaneous/BattleProcessTask.h +++ b/src/MaaCore/Task/Miscellaneous/BattleProcessTask.h @@ -39,7 +39,7 @@ namespace asst bool enter_bullet_time(const std::string& name, const Point& location); void sleep_and_do_strategy(unsigned millisecond); - virtual bool check_in_battle(const cv::Mat& reusable = cv::Mat(), bool weak = true); + virtual bool check_in_battle(const cv::Mat& reusable = cv::Mat(), bool weak = true) override; battle::copilot::CombatData m_combat_data; std::unordered_map m_oper_in_group; From dcbe55e44c16468c1200f1f1db93100cbba8be2f Mon Sep 17 00:00:00 2001 From: Lancarus Date: Sat, 7 Oct 2023 18:40:25 +0800 Subject: [PATCH 09/10] =?UTF-8?q?feat:=20=E6=8C=89=E7=85=A7review=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp b/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp index f6cef68b80..ef1eb3154a 100644 --- a/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp +++ b/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp @@ -384,7 +384,7 @@ bool asst::BattleProcessTask::check_in_battle(const cv::Mat& reusable, bool weak { LogTraceFunction; - cv::Mat image = reusable; + cv::Mat image = reusable.empty() ? ctrler()->get_image() : reusable; if (weak) { BattlefieldMatcher analyzer(image); From e16a980ae9eb59d5d8c38b4f43eb6dad35183f9f Mon Sep 17 00:00:00 2001 From: MistEO Date: Sun, 8 Oct 2023 15:14:05 +0800 Subject: [PATCH 10/10] Apply suggestions from code review --- src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp b/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp index ef1eb3154a..cc92c9dafe 100644 --- a/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp +++ b/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp @@ -390,7 +390,7 @@ bool asst::BattleProcessTask::check_in_battle(const cv::Mat& reusable, bool weak BattlefieldMatcher analyzer(image); auto result = analyzer.analyze(); m_in_battle = result.has_value(); - if (m_in_battle && !(*result).pause_button) { + if (m_in_battle && !result->pause_button) { if (check_skip_plot_button(image)) { speed_up(); }