From 09daf2689cb7e4a0086d2930a0bdfae143e683dd Mon Sep 17 00:00:00 2001 From: mslxl Date: Mon, 21 Mar 2022 17:53:47 +0800 Subject: [PATCH] =?UTF-8?q?fix.=20=E6=9E=81=E7=AB=AF=E7=BD=91=E7=BB=9C?= =?UTF-8?q?=E4=B8=8B=E5=85=AC=E6=8B=9B=E4=B8=8D=E8=B0=83=E6=95=B4=E6=97=B6?= =?UTF-8?q?=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/tasks.json | 11 +++++++++++ src/MeoAssistant/AutoRecruitTask.cpp | 16 ++++++++++++++-- src/MeoAssistant/AutoRecruitTask.h | 1 + 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/resource/tasks.json b/resource/tasks.json index 3b4de73665..06847837b2 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -1732,6 +1732,17 @@ "Stop" ] }, + "RecruitCheckTimeUnreduced":{ + "action": "Stop", + "template": "RecruitTimeReduce.png", + "Doc": "检查时间是不是没有调整过", + "roi": [ + 350, + 150, + 200, + 150 + ] + }, "RecruitConfirm": { "action": "clickSelf", "roi": [ diff --git a/src/MeoAssistant/AutoRecruitTask.cpp b/src/MeoAssistant/AutoRecruitTask.cpp index 8a61da5b2c..0fa9de580d 100644 --- a/src/MeoAssistant/AutoRecruitTask.cpp +++ b/src/MeoAssistant/AutoRecruitTask.cpp @@ -3,7 +3,6 @@ #include "Resource.h" #include "OcrImageAnalyzer.h" #include "Controller.h" -#include "RecruitImageAnalyzer.h" #include "ProcessTask.h" #include "RecruitTask.h" @@ -131,9 +130,16 @@ bool asst::AutoRecruitTask::calc_and_recruit() return calc_and_recruit(); } } + // 如果时间没调整过,那 tag 十有八九也没选,重新试一次 + // 造成时间没调的原因可见: https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/300#issuecomment-1073287984 + if (check_time_unreduced()) { + return calc_and_recruit(); + } + if (need_exit()) { return false; } + if (std::find(m_confirm_level.cbegin(), m_confirm_level.cend(), maybe_level) != m_confirm_level.cend()) { if (!confirm()) { return false; @@ -144,6 +150,12 @@ bool asst::AutoRecruitTask::calc_and_recruit() } return true; } +bool asst::AutoRecruitTask::check_time_unreduced() +{ + ProcessTask task(*this, {"RecruitCheckTimeUnreduced"}); + task.set_retry_times(1); + return task.run(); +} bool asst::AutoRecruitTask::check_recruit_home_page() { @@ -168,4 +180,4 @@ bool asst::AutoRecruitTask::refresh() { ProcessTask refresh_task(*this, { "RecruitRefresh" }); return refresh_task.run(); -} +} \ No newline at end of file diff --git a/src/MeoAssistant/AutoRecruitTask.h b/src/MeoAssistant/AutoRecruitTask.h index 6ab96df4da..727a294f2f 100644 --- a/src/MeoAssistant/AutoRecruitTask.h +++ b/src/MeoAssistant/AutoRecruitTask.h @@ -24,6 +24,7 @@ namespace asst bool recruit_index(size_t index); bool calc_and_recruit(); bool check_recruit_home_page(); + bool check_time_unreduced(); bool recruit_now(); bool confirm(); bool refresh();