From 8ec0480c8b52887731c3cd1e87aabaa61702d6ec Mon Sep 17 00:00:00 2001 From: xjdx Date: Sat, 8 Oct 2022 17:34:53 +0800 Subject: [PATCH] fix https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/2195 --- src/MeoAssistant/Task/Sub/InfrastAbstractTask.cpp | 3 +++ src/MeoAssistant/Task/Sub/InfrastControlTask.cpp | 3 ++- src/MeoAssistant/Task/Sub/InfrastDormTask.cpp | 5 +++-- src/MeoAssistant/Task/Sub/InfrastProductionTask.cpp | 3 ++- src/MeoAssistant/Task/Sub/InfrastReceptionTask.cpp | 3 ++- 5 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/MeoAssistant/Task/Sub/InfrastAbstractTask.cpp b/src/MeoAssistant/Task/Sub/InfrastAbstractTask.cpp index 4d20fde4b8..a28e003685 100644 --- a/src/MeoAssistant/Task/Sub/InfrastAbstractTask.cpp +++ b/src/MeoAssistant/Task/Sub/InfrastAbstractTask.cpp @@ -158,6 +158,7 @@ void asst::InfrastAbstractTask::await_swipe() sleep(extra_delay); } +/// @brief 按技能排序->清空干员->选择定制干员->按指定顺序排序 bool asst::InfrastAbstractTask::swipe_and_select_custom_opers(bool is_dorm_order) { LogTraceFunction; @@ -175,6 +176,8 @@ bool asst::InfrastAbstractTask::swipe_and_select_custom_opers(bool is_dorm_order ProcessTask(*this, { "InfrastOperListTabSkillUnClicked", "Stop" }).run(); } + click_clear_button(); //先排序后清空,加速干员变化不大时的选择速度 + std::vector opers_order = room_config.names; opers_order.insert(opers_order.end(), room_config.candidates.cbegin(), room_config.candidates.cend()); diff --git a/src/MeoAssistant/Task/Sub/InfrastControlTask.cpp b/src/MeoAssistant/Task/Sub/InfrastControlTask.cpp index 98fd60dd34..2567aef6fe 100644 --- a/src/MeoAssistant/Task/Sub/InfrastControlTask.cpp +++ b/src/MeoAssistant/Task/Sub/InfrastControlTask.cpp @@ -23,7 +23,6 @@ bool asst::InfrastControlTask::_run() if (need_exit()) { return false; } - click_clear_button(); if (is_use_custom_opers()) { bool name_select_ret = swipe_and_select_custom_opers(); @@ -36,6 +35,8 @@ bool asst::InfrastControlTask::_run() } } + click_clear_button(); + if (!opers_detect_with_swipe()) { return false; } diff --git a/src/MeoAssistant/Task/Sub/InfrastDormTask.cpp b/src/MeoAssistant/Task/Sub/InfrastDormTask.cpp index 62ebe47772..b44a9ded5d 100644 --- a/src/MeoAssistant/Task/Sub/InfrastDormTask.cpp +++ b/src/MeoAssistant/Task/Sub/InfrastDormTask.cpp @@ -41,11 +41,12 @@ bool asst::InfrastDormTask::_run() return false; } - click_clear_button(); - if (is_use_custom_opers()) { swipe_and_select_custom_opers(true); } + else { + click_clear_button(); //宿舍若未指定干员,则清空后按照原约定逻辑选择干员 + } Log.trace("m_dorm_notstationed_enabled:", m_dorm_notstationed_enabled); if (m_dorm_notstationed_enabled && !m_if_filter_notstationed_haspressed) { diff --git a/src/MeoAssistant/Task/Sub/InfrastProductionTask.cpp b/src/MeoAssistant/Task/Sub/InfrastProductionTask.cpp index 95a7245c03..d3d766be20 100644 --- a/src/MeoAssistant/Task/Sub/InfrastProductionTask.cpp +++ b/src/MeoAssistant/Task/Sub/InfrastProductionTask.cpp @@ -163,7 +163,6 @@ bool asst::InfrastProductionTask::shift_facility_list() if (need_exit()) { return false; } - click_clear_button(); if (is_use_custom_opers()) { bool name_select_ret = swipe_and_select_custom_opers(); @@ -176,6 +175,8 @@ bool asst::InfrastProductionTask::shift_facility_list() } } + click_clear_button(); + if (m_all_available_opers.empty()) { if (!opers_detect_with_swipe()) { return false; diff --git a/src/MeoAssistant/Task/Sub/InfrastReceptionTask.cpp b/src/MeoAssistant/Task/Sub/InfrastReceptionTask.cpp index 61f8f2112d..13b57593aa 100644 --- a/src/MeoAssistant/Task/Sub/InfrastReceptionTask.cpp +++ b/src/MeoAssistant/Task/Sub/InfrastReceptionTask.cpp @@ -175,7 +175,6 @@ bool asst::InfrastReceptionTask::shift() if (need_exit()) { return false; } - click_clear_button(); if (is_use_custom_opers()) { bool name_select_ret = swipe_and_select_custom_opers(); @@ -188,6 +187,8 @@ bool asst::InfrastReceptionTask::shift() } } + click_clear_button(); + if (!opers_detect_with_swipe()) { return false; }