diff --git a/resource/tasks/tasks.json b/resource/tasks/tasks.json index 9288f98f13..453cfe55e4 100644 --- a/resource/tasks/tasks.json +++ b/resource/tasks/tasks.json @@ -3017,6 +3017,10 @@ "templThreshold": 0.8, "rectMove": [0, -95, 70, 50] }, + "InfrastCloseQuickFormationExpandRole": { + "action": "ClickSelf", + "roi": [1163, 0, 117, 133] + }, "InfrastClueVacancyNo1": { "template": "ClueVacancyNo1.png", "templThreshold": 0.75, @@ -3215,7 +3219,7 @@ "ClueGiveTo2nd": { "template": "ClueCanBeSent.png", "maskRange": [1, 255], - "roi": [830, 220, 320, 100], + "roi": [830, 220, 340, 100], "next": ["ClueGiveTo2ndConfirm"] }, "ClueGiveTo2ndConfirm": { @@ -3227,7 +3231,7 @@ "ClueGiveTo3rd": { "template": "ClueCanBeSent.png", "maskRange": [1, 255], - "roi": [830, 370, 320, 100], + "roi": [830, 370, 340, 100], "next": ["ClueGiveTo3rdConfirm"] }, "ClueGiveTo3rdConfirm": { @@ -3239,7 +3243,7 @@ "ClueGiveTo4th": { "template": "ClueCanBeSent.png", "maskRange": [1, 255], - "roi": [830, 520, 320, 100], + "roi": [830, 520, 340, 100], "next": ["ClueGiveTo4thConfirm"] }, "ClueGiveTo4thConfirm": { diff --git a/resource/template/ClueCanBeSent.png b/resource/template/ClueCanBeSent.png index b14c896333..8e45e62e8d 100644 Binary files a/resource/template/ClueCanBeSent.png and b/resource/template/ClueCanBeSent.png differ diff --git a/resource/template/InfrastCloseQuickFormationExpandRole.png b/resource/template/InfrastCloseQuickFormationExpandRole.png new file mode 100644 index 0000000000..9adbf45b8a Binary files /dev/null and b/resource/template/InfrastCloseQuickFormationExpandRole.png differ diff --git a/resource/template/OnShift.png b/resource/template/OnShift.png index a6c1f19644..cdc625bb78 100644 Binary files a/resource/template/OnShift.png and b/resource/template/OnShift.png differ diff --git a/src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp b/src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp index b7795bd04e..9055c3aefd 100644 --- a/src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp +++ b/src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp @@ -601,6 +601,12 @@ void asst::InfrastAbstractTask::order_opers_selection(const std::vector& names); + // 关闭按职业筛选 + void close_quick_formation_expand_role() const; virtual void click_return_button() override; // 点击进入设施后,左下角的tab(我也不知道这玩意该叫啥) diff --git a/src/MaaCore/Task/Infrast/InfrastControlTask.cpp b/src/MaaCore/Task/Infrast/InfrastControlTask.cpp index 5f8b61fb2c..f141eeeb5f 100644 --- a/src/MaaCore/Task/Infrast/InfrastControlTask.cpp +++ b/src/MaaCore/Task/Infrast/InfrastControlTask.cpp @@ -19,6 +19,8 @@ bool asst::InfrastControlTask::_run() return false; } + close_quick_formation_expand_role(); + // 如果是使用了编队组来排班 if (current_room_config().use_operator_groups) { match_operator_groups(); diff --git a/src/MaaCore/Task/Infrast/InfrastDormTask.cpp b/src/MaaCore/Task/Infrast/InfrastDormTask.cpp index 4fd701a334..25b5090143 100644 --- a/src/MaaCore/Task/Infrast/InfrastDormTask.cpp +++ b/src/MaaCore/Task/Infrast/InfrastDormTask.cpp @@ -8,7 +8,6 @@ #include "Utils/Logger.hpp" #include "Vision/Infrast/InfrastOperImageAnalyzer.h" #include "Vision/Matcher.h" -#include "Vision/OCRer.h" #include "Vision/RegionOCRer.h" asst::InfrastDormTask& asst::InfrastDormTask::set_notstationed_enabled(bool dorm_notstationed_enabled) noexcept @@ -51,6 +50,8 @@ bool asst::InfrastDormTask::_run() return false; } + close_quick_formation_expand_role(); + auto origin_room_config = current_room_config(); if (is_use_custom_opers()) { swipe_and_select_custom_opers(true); diff --git a/src/MaaCore/Task/Infrast/InfrastOfficeTask.cpp b/src/MaaCore/Task/Infrast/InfrastOfficeTask.cpp index 7981ef1c7f..337db500e0 100644 --- a/src/MaaCore/Task/Infrast/InfrastOfficeTask.cpp +++ b/src/MaaCore/Task/Infrast/InfrastOfficeTask.cpp @@ -26,6 +26,8 @@ bool asst::InfrastOfficeTask::_run() return false; } + close_quick_formation_expand_role(); + for (int i = 0; i <= OperSelectRetryTimes; ++i) { if (need_exit()) { return false; diff --git a/src/MaaCore/Task/Infrast/InfrastPowerTask.cpp b/src/MaaCore/Task/Infrast/InfrastPowerTask.cpp index eaf514c521..dcb4c95e5e 100644 --- a/src/MaaCore/Task/Infrast/InfrastPowerTask.cpp +++ b/src/MaaCore/Task/Infrast/InfrastPowerTask.cpp @@ -29,6 +29,8 @@ bool asst::InfrastPowerTask::_run() return false; } + close_quick_formation_expand_role(); + for (int j = 0; j <= OperSelectRetryTimes; ++j) { if (is_use_custom_opers()) { bool name_select_ret = swipe_and_select_custom_opers(); diff --git a/src/MaaCore/Task/Infrast/InfrastProcessingTask.cpp b/src/MaaCore/Task/Infrast/InfrastProcessingTask.cpp index 6db8bbca38..575992e5a8 100644 --- a/src/MaaCore/Task/Infrast/InfrastProcessingTask.cpp +++ b/src/MaaCore/Task/Infrast/InfrastProcessingTask.cpp @@ -34,6 +34,8 @@ bool asst::InfrastProcessingTask::_run() ProcessTask(*this, { "InfrastProcessingEnterOperList" }).run(); + close_quick_formation_expand_role(); + for (int i = 0; i <= OperSelectRetryTimes; ++i) { if (need_exit()) { return false; diff --git a/src/MaaCore/Task/Infrast/InfrastProductionTask.cpp b/src/MaaCore/Task/Infrast/InfrastProductionTask.cpp index 26b621fb6c..0f94c1c0be 100644 --- a/src/MaaCore/Task/Infrast/InfrastProductionTask.cpp +++ b/src/MaaCore/Task/Infrast/InfrastProductionTask.cpp @@ -214,6 +214,8 @@ bool asst::InfrastProductionTask::shift_facility_list() ctrler()->click(add_button); sleep(add_task_ptr->post_delay); + close_quick_formation_expand_role(); + // 如果是使用了编队组来排班 if (current_room_config().use_operator_groups) { match_operator_groups(); diff --git a/src/MaaCore/Task/Infrast/InfrastReceptionTask.cpp b/src/MaaCore/Task/Infrast/InfrastReceptionTask.cpp index 7e8e2a2d3e..966abffd29 100644 --- a/src/MaaCore/Task/Infrast/InfrastReceptionTask.cpp +++ b/src/MaaCore/Task/Infrast/InfrastReceptionTask.cpp @@ -15,6 +15,7 @@ bool asst::InfrastReceptionTask::_run() m_all_available_opers.clear(); swipe_to_the_left_of_main_ui(); + if (!enter_facility()) { swipe_to_right_of_main_ui(); if (!enter_facility()) { @@ -205,6 +206,8 @@ bool asst::InfrastReceptionTask::shift() } sleep(raw_task_ptr->post_delay); + close_quick_formation_expand_role(); + for (int i = 0; i <= OperSelectRetryTimes; ++i) { if (need_exit()) { return false;