From 29d052e34fdde58f693baae251dc5bb3466243ba Mon Sep 17 00:00:00 2001 From: YueLengM Date: Wed, 4 Sep 2024 23:27:09 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=82=89=E9=B8=BD=E9=87=8D=E6=96=B0?= =?UTF-8?q?=E7=BC=96=E9=98=9F=E5=BA=94=E5=85=88=E5=9B=9E=E5=88=B0=E9=A6=96?= =?UTF-8?q?=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Roguelike/RoguelikeFormationTaskPlugin.cpp | 17 +++++++++++------ .../Roguelike/RoguelikeFormationTaskPlugin.h | 1 + 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/MaaCore/Task/Roguelike/RoguelikeFormationTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeFormationTaskPlugin.cpp index fce6750865..186b448c2f 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeFormationTaskPlugin.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeFormationTaskPlugin.cpp @@ -97,7 +97,7 @@ void asst::RoguelikeFormationTaskPlugin::clear_and_reselect() m_last_detected_oper_names.clear(); oper_list.clear(); - cur_page = 1; + swipe_to_first_page(); while (analyze()) { // 返回true说明新增了干员,可能还有下一页 ProcessTask(*this, { "RoguelikeRecruitOperListSlowlySwipeToTheRight" }).run(); @@ -199,11 +199,7 @@ bool asst::RoguelikeFormationTaskPlugin::select(RoguelikeFormationImageAnalyzer: Log.info(__FUNCTION__, "swipe from page", cur_page, "to page", oper.page); // 在最大页码时(当总页数>=2),从右往左划可能会有对不齐的问题,直接划动到底 if ((cur_page > oper.page && max_page >= 2 && cur_page == max_page) || max_page == 1) { - for (; cur_page > 0; --cur_page) { // 多划一次到不存在的第0页 - ProcessTask(*this, { "RoguelikeRecruitOperListSwipeToTheLeft" }).run(); - } - ProcessTask(*this, { "SleepAfterOperListQuickSwipe" }).run(); - cur_page = 1; + swipe_to_first_page(); } // 中间页面划动姑且当成是相对准确的 while (cur_page > oper.page) { @@ -219,3 +215,12 @@ bool asst::RoguelikeFormationTaskPlugin::select(RoguelikeFormationImageAnalyzer: ctrler()->click(oper.rect); return true; } + +void asst::RoguelikeFormationTaskPlugin::swipe_to_first_page() +{ + for (; cur_page > 0; --cur_page) { // 多划一次到不存在的第0页 + ProcessTask(*this, { "RoguelikeRecruitOperListSwipeToTheLeft" }).run(); + } + ProcessTask(*this, { "SleepAfterOperListQuickSwipe" }).run(); + cur_page = 1; +} diff --git a/src/MaaCore/Task/Roguelike/RoguelikeFormationTaskPlugin.h b/src/MaaCore/Task/Roguelike/RoguelikeFormationTaskPlugin.h index 0ab6b65c99..9e41a262c0 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeFormationTaskPlugin.h +++ b/src/MaaCore/Task/Roguelike/RoguelikeFormationTaskPlugin.h @@ -23,6 +23,7 @@ namespace asst void clear_and_reselect(); bool analyze(); bool select(RoguelikeFormationImageAnalyzer::FormationOper oper); + void swipe_to_first_page(); private: int cur_page = 0;