From d6415c301b0d5f86b01f262d207b4efdf50cc07a Mon Sep 17 00:00:00 2001 From: status102 <102887808+status102@users.noreply.github.com> Date: Sat, 10 May 2025 23:04:57 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=8C=87=E5=AE=9A=E8=BF=9E=E6=88=98?= =?UTF-8?q?=E6=AC=A1=E6=95=B0=E5=85=81=E8=AE=B8=E9=99=8D=E4=BD=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaCore/Task/Fight/FightTimesTaskPlugin.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/MaaCore/Task/Fight/FightTimesTaskPlugin.cpp b/src/MaaCore/Task/Fight/FightTimesTaskPlugin.cpp index 17424eb335..61975e6c50 100644 --- a/src/MaaCore/Task/Fight/FightTimesTaskPlugin.cpp +++ b/src/MaaCore/Task/Fight/FightTimesTaskPlugin.cpp @@ -103,8 +103,17 @@ bool asst::FightTimesTaskPlugin::_run() return false; } } - - if (m_fight_times + *series > m_fight_times_max) { + if (m_fight_times + *series > m_fight_times_max && select_series(m_fight_times_max - m_fight_times)) { // 次数超过后降至可用次数 + image = ctrler()->get_image(); + sanity_cost = analyze_sanity_cost(image); + series = analyze_stage_series(image); + if (sanity_cost.value_or(-1) < 0 || !series || *series < 1 || *series > 6) [[unlikely]] { + Log.error(__FUNCTION__, "unable to analyze sanity cost or series"); + callback(AsstMsg::SubTaskExtraInfo, fight); + return false; + } + } + if (m_fight_times + *series > m_fight_times_max ) { m_task_ptr->set_enable(false); // 战斗次数超过上限 Log.info(__FUNCTION__, "fight times reached max"); callback(AsstMsg::SubTaskExtraInfo, fight);