From dbea012bbf01cb7204c47efc7a49298fb05442b3 Mon Sep 17 00:00:00 2001 From: status102 Date: Wed, 15 Nov 2023 09:27:17 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E5=A2=9E=E5=8A=A0=E9=87=8D=E8=AF=95?= =?UTF-8?q?=E6=AC=A1=E6=95=B0=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Roguelike/RoguelikeSettlementTaskPlugin.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/MaaCore/Task/Roguelike/RoguelikeSettlementTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeSettlementTaskPlugin.cpp index f9c0f8a40b..6c89bf37a2 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeSettlementTaskPlugin.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeSettlementTaskPlugin.cpp @@ -12,13 +12,13 @@ bool asst::RoguelikeSettlementTaskPlugin::verify(AsstMsg msg, const json::value& } auto task_name = details.at("details").at("task").as_string(); - if (m_config->get_mode() == RoguelikeMode::Exp && task_name.ends_with("Roguelike@GamePass")) { + if (task_name.ends_with("Roguelike@GamePass")) { m_game_pass = true; - return true; + return m_config->get_mode() == RoguelikeMode::Exp; } - else if (m_config->get_mode() == RoguelikeMode::Exp && task_name.ends_with("Roguelike@MissionFailedFlag2")) { + else if (task_name.ends_with("Roguelike@MissionFailedFlag2")) { m_game_pass = false; - return true; + return m_config->get_mode() == RoguelikeMode::Exp; } else { return false; @@ -115,6 +115,7 @@ bool asst::RoguelikeSettlementTaskPlugin::get_settlement_info(json::value& info, bool asst::RoguelikeSettlementTaskPlugin::wait_for_whole_page() { + int retry = 0; cv::Mat image; Matcher matcher; matcher.set_task_info("RoguelikeSettlementConfirm"); @@ -124,7 +125,9 @@ bool asst::RoguelikeSettlementTaskPlugin::wait_for_whole_page() if (matcher.analyze()) { return true; } + Log.error(__FUNCTION__, "RoguelikeSettlementConfirm match failed, retry:", retry); + ++retry; sleep(Config.get_options().task_delay); - } while (!need_exit()); + } while (!need_exit() && retry < 20); return false; }