From eb852d0029c57cbbb441c3418ff10bb84fccfbba Mon Sep 17 00:00:00 2001 From: status102 Date: Mon, 18 Sep 2023 14:28:54 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=20=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E6=88=98=E6=96=97-=E6=88=98=E6=96=97=E5=88=97=E8=A1=A8=20?= =?UTF-8?q?=E8=B7=B3=E8=BF=87=E6=88=98=E6=96=97=E5=90=8E=E5=89=A7=E6=83=85?= =?UTF-8?q?=E7=9A=84=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/tasks.json | 15 +++++++++++++-- src/MaaCore/Task/Interface/CopilotTask.cpp | 14 +++++++------- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/resource/tasks.json b/resource/tasks.json index 4a56a4b972..024c0b5e8a 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -13131,14 +13131,25 @@ 163 ] }, - "Copilot@ClickCornerUntilFailedOrThreeStars": { + "Copilot@ClickCornerUntilEndOfAction": { "algorithm": "JustReturn", "action": "DoNothing", + "maxTimes": 30, + "exceededNext": [ + "Copilot@EndOfAction" + ], "next": [ + "Copilot@SkipThePreBattlePlot", "Copilot@EndOfAction", "Copilot@ClickCornerBeforeThreeStars" ] }, + "Copilot@SkipThePreBattlePlotConfirm": { + "template": "SkipThePreBattlePlotConfirm.png", + "next": [ + "Copilot@ClickCornerUntilEndOfAction" + ] + }, "Copilot@EndOfAction": { "template": "EndOfAction.png", "action": "DoNothing", @@ -13159,7 +13170,7 @@ "Doc": "三星之前", "baseTask": "Copilot@ClickCornerUntilStartButton", "next": [ - "Copilot@ClickCornerUntilFailedOrThreeStars" + "Copilot@ClickCornerUntilEndOfAction" ] }, "Copilot@ClickCornerUntilStartButton": { diff --git a/src/MaaCore/Task/Interface/CopilotTask.cpp b/src/MaaCore/Task/Interface/CopilotTask.cpp index 9c114ffd97..3c549f2690 100644 --- a/src/MaaCore/Task/Interface/CopilotTask.cpp +++ b/src/MaaCore/Task/Interface/CopilotTask.cpp @@ -133,7 +133,13 @@ bool asst::CopilotTask::set_params(const json::value& params) m_formation_task_ptr->set_support_unit_name(std::move(support_unit_name)); size_t loop_times = params.get("loop_times", 1); - if (loop_times > 1) { + if (need_navigate) { + // 如果没三星就中止 + Task.get("Copilot@BattleStartPreFlag")->text.emplace_back(m_navigate_name); + m_stop_task_ptr->set_tasks({ "Copilot@ClickCornerUntilEndOfAction" }); + m_stop_task_ptr->set_enable(true); + } + else if (loop_times > 1) { m_stop_task_ptr->set_tasks({ "ClickCornerUntilStartButton" }); m_stop_task_ptr->set_enable(true); @@ -145,12 +151,6 @@ bool asst::CopilotTask::set_params(const json::value& params) m_subtasks.insert(m_subtasks.end(), m_subtasks.begin(), raw_end); } } - else if (need_navigate) { - // 如果没三星就中止 - Task.get("Copilot@BattleStartPreFlag")->text.emplace_back(m_navigate_name); - m_stop_task_ptr->set_tasks({ "Copilot@ClickCornerUntilFailedOrThreeStars" }); - m_stop_task_ptr->set_enable(true); - } return true; }