diff --git a/docs/zh-cn/protocol/task-schema.md b/docs/zh-cn/protocol/task-schema.md index 1a0d50d948..4cf78c575b 100644 --- a/docs/zh-cn/protocol/task-schema.md +++ b/docs/zh-cn/protocol/task-schema.md @@ -28,7 +28,6 @@ icon: material-symbols:task "action": "ClickSelf", // 可选项,表示识别到后的动作 // 不填写时默认为 DoNothing // - ClickSelf: 点击识别到的位置(识别到的目标范围内随机点) - // - ClickRand: 点击整个画面中随机位置 // - ClickRect: 点击指定的区域,对应 specificRect 字段,不建议使用该选项 // - DoNothing: 什么都不做 // - Stop: 停止当前任务 diff --git a/src/MaaCore/Common/AsstTypes.h b/src/MaaCore/Common/AsstTypes.h index 11d19ed014..b2e884229f 100644 --- a/src/MaaCore/Common/AsstTypes.h +++ b/src/MaaCore/Common/AsstTypes.h @@ -299,7 +299,7 @@ namespace asst BasicClick = 0x100, ClickSelf = BasicClick | 1, // 点击自身位置 ClickRect = BasicClick | 2, // 点击指定区域 - ClickRand = BasicClick | 4, // 点击随机区域 + // ClickRand = BasicClick | 4, // 点击随机区域 DoNothing = 0x200, // 什么都不做 Stop = 0x400, // 停止当前Task Swipe = 0x1000, // 滑动 @@ -309,10 +309,9 @@ namespace asst { utils::tolowers(action_str); static const std::unordered_map action_map = { - { "clickself", ProcessTaskAction::ClickSelf }, { "clickrand", ProcessTaskAction::ClickRand }, { "", ProcessTaskAction::DoNothing }, { "donothing", ProcessTaskAction::DoNothing }, - { "stop", ProcessTaskAction::Stop }, { "clickrect", ProcessTaskAction::ClickRect }, - { "swipe", ProcessTaskAction::Swipe }, + { "clickself", ProcessTaskAction::ClickSelf }, { "clickrect", ProcessTaskAction::ClickRect }, + { "stop", ProcessTaskAction::Stop }, { "swipe", ProcessTaskAction::Swipe }, }; if (auto it = action_map.find(action_str); it != action_map.end()) { return it->second; @@ -323,10 +322,13 @@ namespace asst inline std::string enum_to_string(ProcessTaskAction action) { static const std::unordered_map action_map = { - { ProcessTaskAction::Invalid, "Invalid" }, { ProcessTaskAction::BasicClick, "BasicClick" }, - { ProcessTaskAction::ClickSelf, "ClickSelf" }, { ProcessTaskAction::ClickRect, "ClickRect" }, - { ProcessTaskAction::ClickRand, "ClickRand" }, { ProcessTaskAction::DoNothing, "DoNothing" }, - { ProcessTaskAction::Stop, "Stop" }, { ProcessTaskAction::Swipe, "Swipe" }, + { ProcessTaskAction::Invalid, "Invalid" }, + { ProcessTaskAction::DoNothing, "DoNothing" }, + { ProcessTaskAction::BasicClick, "BasicClick" }, + { ProcessTaskAction::ClickSelf, "ClickSelf" }, + { ProcessTaskAction::ClickRect, "ClickRect" }, + { ProcessTaskAction::Stop, "Stop" }, + { ProcessTaskAction::Swipe, "Swipe" }, }; if (auto it = action_map.find(action); it != action_map.end()) { return it->second; diff --git a/src/MaaCore/Task/ProcessTask.cpp b/src/MaaCore/Task/ProcessTask.cpp index 4b0427e826..aa30faac39 100644 --- a/src/MaaCore/Task/ProcessTask.cpp +++ b/src/MaaCore/Task/ProcessTask.cpp @@ -149,11 +149,6 @@ bool ProcessTask::_run() } m_last_task_name = m_cur_task_ptr->name; - const auto& res_move = m_cur_task_ptr->rect_move; - if (!res_move.empty()) { - rect = rect.move(res_move); - } - int& exec_times = m_exec_times[m_last_task_name]; auto [max_times, limit_type] = calc_time_limit(); @@ -201,15 +196,14 @@ bool ProcessTask::_run() switch (m_cur_task_ptr->action) { case ProcessTaskAction::ClickRect: rect = m_cur_task_ptr->specific_rect; - [[fallthrough]]; - case ProcessTaskAction::ClickSelf: exec_click_task(rect); break; - case ProcessTaskAction::ClickRand: { - auto&& [width, height] = ctrler()->get_scale_size(); - const Rect full_rect(0, 0, width, height); - exec_click_task(full_rect); - } break; + case ProcessTaskAction::ClickSelf: + if (const auto& res_move = m_cur_task_ptr->rect_move; !res_move.empty()) { + rect = rect.move(res_move); + } + exec_click_task(rect); + break; case ProcessTaskAction::Swipe: exec_swipe_task(m_cur_task_ptr->specific_rect, m_cur_task_ptr->rect_move, m_cur_task_ptr->special_params.empty() ? 0 : m_cur_task_ptr->special_params.at(0),