diff --git a/src/MaaCore/Task/Fight/SideStoryReopenTask.cpp b/src/MaaCore/Task/Fight/SideStoryReopenTask.cpp index 11102ebfd1..36838a0c62 100644 --- a/src/MaaCore/Task/Fight/SideStoryReopenTask.cpp +++ b/src/MaaCore/Task/Fight/SideStoryReopenTask.cpp @@ -65,10 +65,9 @@ bool asst::SideStoryReopenTask::_run() callback(AsstMsg::SubTaskExtraInfo, task_not_exists); return false; } - Task.get("SideStoryReopen")->next = { m_sidestory_name + "ChapterTo" + m_sidestory_name }; - if (!navigate_to_normal_page()) { + if (!at_normal_page() && !navigate_to_normal_page()) { Log.error(__FUNCTION__, "cound not navigate to normal page"); return false; } @@ -125,6 +124,19 @@ bool asst::SideStoryReopenTask::_run() } return true; } +bool asst::SideStoryReopenTask::at_normal_page() +{ + std::vector stage_name; + for (int stage_index = 1; stage_index < 10; stage_index++) { + stage_name.emplace_back(m_sidestory_name + "-" + std::to_string(stage_index)); + } + Task.get(m_sidestory_name + "@ClickStageName")->text = stage_name; + Task.get(m_sidestory_name + "@ClickedCorrectStage")->text = std::move(stage_name); + Task.get(m_sidestory_name + "@ClickedCorrectStageOrSwipe")->next = { m_sidestory_name + + "@ClickedCorrectStage" }; + + return ProcessTask(*this, { m_sidestory_name + "@ClickStageName" }).set_retry_times(0).run(); +} /// /// 从首页导航至普通关页面 /// diff --git a/src/MaaCore/Task/Fight/SideStoryReopenTask.h b/src/MaaCore/Task/Fight/SideStoryReopenTask.h index 8f3faa09cb..29bf197b7d 100644 --- a/src/MaaCore/Task/Fight/SideStoryReopenTask.h +++ b/src/MaaCore/Task/Fight/SideStoryReopenTask.h @@ -21,6 +21,8 @@ namespace asst private: virtual bool _run() override; + // 判断如果处于普通关页面,直接短路导航 + bool at_normal_page(); bool navigate_to_normal_page(); bool select_stage(int stage_index); bool activate_prts();