diff --git a/resource/tasks.json b/resource/tasks.json index 2704f6d957..a3cb206eea 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -898,6 +898,26 @@ 255 ], "next": [ + "RecruitBeginLoading", + "RecruitBegin" + ] + }, + "RecruitBeginLoading": { + "algorithm": "OcrDetect", + "action": "doNothing", + "text": [ + "正在提交", + "反馈至神经" + ], + "roi": [ + 700, + 600, + 300, + 120 + ], + "next": [ + "RecruitBeginLoading", + "Recruit", "RecruitBegin" ] }, @@ -912,6 +932,27 @@ 420 ], "next": [ + "RecruitFinishLoading", + "RecruitFinish", + "RecruitSkip", + "RecruitSkipWithoutButton" + ] + }, + "RecruitFinishLoading":{ + "algorithm": "OcrDetect", + "action": "doNothing", + "text": [ + "正在提交", + "反馈至神经" + ], + "roi": [ + 700, + 600, + 300, + 120 + ], + "next": [ + "RecruitFinishLoading", "RecruitFinish", "RecruitSkip", "RecruitSkipWithoutButton" @@ -1691,6 +1732,17 @@ "Stop" ] }, + "RecruitCheckTimeUnreduced":{ + "action": "Stop", + "template": "RecruitTimeReduce.png", + "Doc": "检查时间是不是没有调整过", + "roi": [ + 350, + 150, + 200, + 150 + ] + }, "RecruitConfirm": { "action": "clickSelf", "roi": [ @@ -1700,6 +1752,25 @@ 80 ], "next": [ + "RecruitConfirmLoading", + "RecruitFlag" + ] + }, + "RecruitConfirmLoading":{ + "algorithm": "OcrDetect", + "action": "doNothing", + "text": [ + "正在提交", + "反馈至神经" + ], + "roi": [ + 700, + 600, + 300, + 120 + ], + "next": [ + "RecruitConfirmLoading", "RecruitFlag" ] }, @@ -1905,6 +1976,27 @@ 150 ], "next": [ + "DroneConfirmLoading", + "DeliverableOrder", + "DroneAssist-Trade-Stop", + "DroneAssistMfg" + ] + }, + "DroneConfirmLoading": { + "algorithm": "OcrDetect", + "action": "doNothing", + "text": [ + "正在提交", + "反馈至神经" + ], + "roi": [ + 700, + 600, + 300, + 120 + ], + "next": [ + "DroneConfirmLoading", "DeliverableOrder", "DroneAssist-Trade-Stop", "DroneAssistMfg" @@ -3036,6 +3128,25 @@ "ClueGiveTo1stConfirm" ] }, + "ClueGiveLoading": { + "algorithm": "OcrDetect", + "action": "doNothing", + "text": [ + "正在提交", + "反馈至神经" + ], + "roi": [ + 700, + 600, + 300, + 120 + ], + "next": [ + "ClueGiveLoading", + "SelectClue", + "CloseSendClue" + ] + }, "ClueGiveTo1st": { "template": "ClusCanBeSent.png", "action": "doNothing", @@ -3064,6 +3175,7 @@ 160 ], "next": [ + "ClueGiveLoading", "SelectClue", "CloseSendClue" ] @@ -3096,6 +3208,7 @@ 160 ], "next": [ + "ClueGiveLoading", "SelectClue", "CloseSendClue" ] @@ -3128,6 +3241,7 @@ 160 ], "next": [ + "ClueGiveLoading", "SelectClue", "CloseSendClue" ] @@ -3160,6 +3274,7 @@ 160 ], "next": [ + "ClueGiveLoading", "SelectClue", "CloseSendClue" ] diff --git a/src/MeoAssistant/AutoRecruitTask.cpp b/src/MeoAssistant/AutoRecruitTask.cpp index 38f766ae86..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" @@ -108,32 +107,39 @@ bool asst::AutoRecruitTask::recruit_index(size_t index) bool asst::AutoRecruitTask::calc_and_recruit() { - RecruitTask recurit_task(m_callback, m_callback_arg, m_task_chain); - recurit_task.set_retry_times(m_retry_times); - recurit_task.set_param(m_select_level, true); + RecruitTask recruit_task(m_callback, m_callback_arg, m_task_chain); + recruit_task.set_retry_times(m_retry_times); + recruit_task.set_param(m_select_level, true); // 识别错误,放弃这个公招位,直接返回 - if (!recurit_task.run()) { + if (!recruit_task.run()) { callback(AsstMsg::SubTaskError, basic_info()); click_return_button(); return true; } - int maybe_level = recurit_task.get_maybe_level(); + int maybe_level = recruit_task.get_maybe_level(); if (need_exit()) { return false; } // 尝试刷新 if (m_need_refresh && maybe_level == 3 - && !recurit_task.get_has_special_tag() - && recurit_task.get_has_refresh()) { + && !recruit_task.get_has_special_tag() + && recruit_task.get_has_refresh()) { if (refresh()) { 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();