From 0228097ad5b2d6851e2f0dfecd9a927b603e48ec Mon Sep 17 00:00:00 2001 From: MistEO Date: Mon, 1 May 2023 02:55:20 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E6=B7=BB=E5=8A=A0=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaCore/Assistant.cpp | 12 +++++--- src/MaaCore/Task/Interface/CopilotTask.cpp | 4 +++ src/MaaCore/Task/Interface/CustomTask.cpp | 29 +++++++++++++++---- src/MaaCore/Task/Interface/FightTask.cpp | 4 +++ src/MaaCore/Task/Interface/InfrastTask.cpp | 2 ++ src/MaaCore/Task/Interface/MallTask.cpp | 6 ++++ .../Task/Interface/ReclamationTask.cpp | 4 +++ src/MaaCore/Task/Interface/RecruitTask.cpp | 5 ++++ src/MaaCore/Task/Interface/RoguelikeTask.cpp | 4 +++ src/MaaCore/Task/Interface/SSSCopilotTask.cpp | 4 +++ src/MaaCore/Task/Interface/SingleStepTask.cpp | 4 ++- src/MaaCore/Task/Interface/StartUpTask.cpp | 5 ++++ .../Task/Interface/VideoRecognitionTask.cpp | 4 ++- 13 files changed, 75 insertions(+), 12 deletions(-) diff --git a/src/MaaCore/Assistant.cpp b/src/MaaCore/Assistant.cpp index 1054327c8c..338b3b0523 100644 --- a/src/MaaCore/Assistant.cpp +++ b/src/MaaCore/Assistant.cpp @@ -176,6 +176,7 @@ asst::Assistant::TaskId asst::Assistant::append_task(const std::string& type, co auto ret = json::parse(params.empty() ? "{}" : params); if (!ret) { + Log.error("json::parse failed"); return 0; } @@ -220,14 +221,17 @@ asst::Assistant::TaskId asst::Assistant::append_task(const std::string& type, co bool params_ret = ptr->set_params(json); if (!params_ret) { + Log.error(__FUNCTION__, "| invalid params:", params); return 0; } std::unique_lock lock(m_mutex); - ++m_task_id; - ptr->set_task_id(m_task_id); - m_tasks_list.emplace_back(m_task_id, ptr); - return m_task_id; + int task_id = ++m_task_id; + ptr->set_task_id(task_id); + m_tasks_list.emplace_back(task_id, ptr); + Log.info(__FUNCTION__, "| task_id:", task_id); + + return task_id; } bool asst::Assistant::set_task_params(TaskId task_id, const std::string& params) diff --git a/src/MaaCore/Task/Interface/CopilotTask.cpp b/src/MaaCore/Task/Interface/CopilotTask.cpp index d4fc44254c..c2d133cc7c 100644 --- a/src/MaaCore/Task/Interface/CopilotTask.cpp +++ b/src/MaaCore/Task/Interface/CopilotTask.cpp @@ -15,6 +15,8 @@ asst::CopilotTask::CopilotTask(const AsstCallback& callback, Assistant* inst) m_battle_task_ptr(std::make_shared(callback, inst, TaskType)), m_stop_task_ptr(std::make_shared(callback, inst, TaskType)) { + LogTraceFunction; + auto start_1_tp = std::make_shared(callback, inst, TaskType); start_1_tp->set_tasks({ "BattleStartPre" }).set_retry_times(0).set_ignore_error(true); m_subtasks.emplace_back(start_1_tp); @@ -34,6 +36,8 @@ asst::CopilotTask::CopilotTask(const AsstCallback& callback, Assistant* inst) bool asst::CopilotTask::set_params(const json::value& params) { + LogTraceFunction; + if (m_running) { return false; } diff --git a/src/MaaCore/Task/Interface/CustomTask.cpp b/src/MaaCore/Task/Interface/CustomTask.cpp index 30802fbd3b..d31ed37982 100644 --- a/src/MaaCore/Task/Interface/CustomTask.cpp +++ b/src/MaaCore/Task/Interface/CustomTask.cpp @@ -1,16 +1,33 @@ #include "CustomTask.h" #include "Task/ProcessTask.h" -asst::CustomTask::CustomTask(const AsstCallback& callback, Assistant* inst) : InterfaceTask(callback, inst, TaskType) {} +#include "Utils/Logger.hpp" + +asst::CustomTask::CustomTask(const AsstCallback& callback, Assistant* inst) : InterfaceTask(callback, inst, TaskType) +{ + LogTraceFunction; +} bool asst::CustomTask::set_params(const json::value& params) { - std::vector tasks {}; - for (const auto& i : params.at("task_names").as_array()) { - tasks.emplace_back(i.as_string()); + LogTraceFunction; + + auto tasks_opt = params.find("task_names"); + if (!tasks_opt) { + Log.error("set_params failed, task_names not found"); + return false; + } + std::vector tasks; + + for (const auto& t : *tasks_opt) { + if (!t.is_string()) { + Log.error("set_params failed, task is not string"); + return false; + } + tasks.emplace_back(t.as_string()); } auto custom_task_ptr = std::make_shared(m_callback, m_inst, TaskType); - custom_task_ptr->set_tasks(tasks); - m_subtasks.emplace_back(custom_task_ptr); + custom_task_ptr->set_tasks(std::move(tasks)); + m_subtasks.emplace_back(std::move(custom_task_ptr)); return true; } diff --git a/src/MaaCore/Task/Interface/FightTask.cpp b/src/MaaCore/Task/Interface/FightTask.cpp index f27ca41caf..90a2ed5b94 100644 --- a/src/MaaCore/Task/Interface/FightTask.cpp +++ b/src/MaaCore/Task/Interface/FightTask.cpp @@ -17,6 +17,8 @@ asst::FightTask::FightTask(const AsstCallback& callback, Assistant* inst) m_stage_navigation_task_ptr(std::make_shared(m_callback, m_inst, TaskType)), m_fight_task_ptr(std::make_shared(m_callback, m_inst, TaskType)) { + LogTraceFunction; + // 进入选关界面 // 对于指定关卡,就是主界面的“终端”点进去 // 对于当前/上次,就是点到 蓝色开始行动 为止。 @@ -52,6 +54,8 @@ asst::FightTask::FightTask(const AsstCallback& callback, Assistant* inst) bool asst::FightTask::set_params(const json::value& params) { + LogTraceFunction; + const std::string stage = params.get("stage", ""); const int medicine = params.get("medicine", 0); const int expiring_medicine = params.get("expiring_medicine", 0); diff --git a/src/MaaCore/Task/Interface/InfrastTask.cpp b/src/MaaCore/Task/Interface/InfrastTask.cpp index cf1d890cb6..0aa0c0a658 100644 --- a/src/MaaCore/Task/Interface/InfrastTask.cpp +++ b/src/MaaCore/Task/Interface/InfrastTask.cpp @@ -26,6 +26,8 @@ asst::InfrastTask::InfrastTask(const AsstCallback& callback, Assistant* inst) m_office_task_ptr(std::make_shared(callback, inst, TaskType)), m_dorm_task_ptr(std::make_shared(callback, inst, TaskType)) { + LogTraceFunction; + m_infrast_begin_task_ptr->set_tasks({ "InfrastBegin" }).set_ignore_error(true); m_replenish_task_ptr = m_mfg_task_ptr->register_plugin(); m_info_task_ptr->set_ignore_error(true); diff --git a/src/MaaCore/Task/Interface/MallTask.cpp b/src/MaaCore/Task/Interface/MallTask.cpp index 106b29815b..bb4a3ca446 100644 --- a/src/MaaCore/Task/Interface/MallTask.cpp +++ b/src/MaaCore/Task/Interface/MallTask.cpp @@ -4,6 +4,8 @@ #include "Task/Miscellaneous/CreditShoppingTask.h" #include "Task/ProcessTask.h" +#include "Utils/Logger.hpp" + asst::MallTask::MallTask(const AsstCallback& callback, Assistant* inst) : InterfaceTask(callback, inst, TaskType), m_visit_task_ptr(std::make_shared(m_callback, m_inst, TaskType)), @@ -13,6 +15,8 @@ asst::MallTask::MallTask(const AsstCallback& callback, Assistant* inst) m_shopping_task_ptr(std::make_shared(callback, inst, TaskType)), m_shopping_force_task_ptr(std::make_shared(callback, inst, TaskType)) { + LogTraceFunction; + m_visit_task_ptr->set_tasks({ "VisitBegin" }); m_mall_task_ptr->set_tasks({ "MallBegin" }); m_shopping_first_task_ptr->set_enable(false).set_retry_times(1); @@ -29,6 +33,8 @@ asst::MallTask::MallTask(const AsstCallback& callback, Assistant* inst) bool asst::MallTask::set_params(const json::value& params) { + LogTraceFunction; + bool shopping = params.get("shopping", true); if (shopping) { diff --git a/src/MaaCore/Task/Interface/ReclamationTask.cpp b/src/MaaCore/Task/Interface/ReclamationTask.cpp index 45b914e0b4..50a786bf2b 100644 --- a/src/MaaCore/Task/Interface/ReclamationTask.cpp +++ b/src/MaaCore/Task/Interface/ReclamationTask.cpp @@ -13,12 +13,16 @@ asst::ReclamationTask::ReclamationTask(const AsstCallback& callback, Assistant* : InterfaceTask(callback, inst, TaskType), m_reclamation_task_ptr(std::make_shared(callback, inst, TaskType)) { + LogTraceFunction; + m_reclamation_task_ptr->register_plugin(); m_subtasks.emplace_back(m_reclamation_task_ptr); } bool asst::ReclamationTask::set_params(const json::value& params) { + LogTraceFunction; + // 0 - 刷分与建造点,进入战斗直接退出 // 1 - 刷赤金,联络员买水后基地锻造 int mode = params.get("mode", 0); diff --git a/src/MaaCore/Task/Interface/RecruitTask.cpp b/src/MaaCore/Task/Interface/RecruitTask.cpp index b4b84a94d3..1aee2fe912 100644 --- a/src/MaaCore/Task/Interface/RecruitTask.cpp +++ b/src/MaaCore/Task/Interface/RecruitTask.cpp @@ -2,16 +2,21 @@ #include "Task/Miscellaneous/AutoRecruitTask.h" #include "Task/ProcessTask.h" +#include "Utils/Logger.hpp" asst::RecruitTask::RecruitTask(const AsstCallback& callback, Assistant* inst) : InterfaceTask(callback, inst, TaskType), m_auto_recruit_task_ptr(std::make_shared(callback, inst, TaskType)) { + LogTraceFunction; + m_subtasks.emplace_back(m_auto_recruit_task_ptr)->set_retry_times(5); } bool asst::RecruitTask::set_params(const json::value& params) { + LogTraceFunction; + auto select_opt = params.find("select"); auto confirm_opt = params.find("confirm"); if (!select_opt || !confirm_opt) { diff --git a/src/MaaCore/Task/Interface/RoguelikeTask.cpp b/src/MaaCore/Task/Interface/RoguelikeTask.cpp index b783b5fae6..0a53eab00c 100644 --- a/src/MaaCore/Task/Interface/RoguelikeTask.cpp +++ b/src/MaaCore/Task/Interface/RoguelikeTask.cpp @@ -19,6 +19,8 @@ asst::RoguelikeTask::RoguelikeTask(const AsstCallback& callback, Assistant* inst : InterfaceTask(callback, inst, TaskType), m_roguelike_task_ptr(std::make_shared(callback, inst, TaskType)) { + LogTraceFunction; + m_roguelike_task_ptr->set_ignore_error(true); m_roguelike_task_ptr->register_plugin(); m_roguelike_task_ptr->register_plugin(); @@ -43,6 +45,8 @@ asst::RoguelikeTask::RoguelikeTask(const AsstCallback& callback, Assistant* inst bool asst::RoguelikeTask::set_params(const json::value& params) { + LogTraceFunction; + std::string theme = params.get("theme", std::string(RoguelikePhantomThemeName)); if (theme != RoguelikePhantomThemeName && theme != RoguelikeMizukiThemeName) { Log.error("Unknown roguelike theme", theme); diff --git a/src/MaaCore/Task/Interface/SSSCopilotTask.cpp b/src/MaaCore/Task/Interface/SSSCopilotTask.cpp index 5e388c5841..1faf7d12d7 100644 --- a/src/MaaCore/Task/Interface/SSSCopilotTask.cpp +++ b/src/MaaCore/Task/Interface/SSSCopilotTask.cpp @@ -15,6 +15,8 @@ asst::SSSCopilotTask::SSSCopilotTask(const AsstCallback& callback, Assistant* in m_formation_task_ptr(std::make_shared(callback, inst, TaskType)), m_stage_task_ptr(std::make_shared(callback, inst, TaskType)) { + LogTraceFunction; + m_begin_task_ptr->set_tasks({ inst_string() + "@SSSBegin", "SSSStartFighting" }) .set_times_limit("SSSStartFighting", 0) .set_ignore_error(false); @@ -35,6 +37,8 @@ asst::SSSCopilotTask::SSSCopilotTask(const AsstCallback& callback, Assistant* in bool asst::SSSCopilotTask::set_params(const json::value& params) { + LogTraceFunction; + if (m_running) { Log.error("SSSCopilotTask not support set_params when running"); return false; diff --git a/src/MaaCore/Task/Interface/SingleStepTask.cpp b/src/MaaCore/Task/Interface/SingleStepTask.cpp index 433ef4dee9..dcc00c6fe1 100644 --- a/src/MaaCore/Task/Interface/SingleStepTask.cpp +++ b/src/MaaCore/Task/Interface/SingleStepTask.cpp @@ -7,7 +7,9 @@ asst::SingleStepTask::SingleStepTask(const AsstCallback& callback, Assistant* inst) : InterfaceTask(callback, inst, TaskType) -{} +{ + LogTraceFunction; +} bool asst::SingleStepTask::set_params(const json::value& params) { diff --git a/src/MaaCore/Task/Interface/StartUpTask.cpp b/src/MaaCore/Task/Interface/StartUpTask.cpp index 0c6161e89f..422f70f5eb 100644 --- a/src/MaaCore/Task/Interface/StartUpTask.cpp +++ b/src/MaaCore/Task/Interface/StartUpTask.cpp @@ -4,12 +4,15 @@ #include "Config/GeneralConfig.h" #include "Task/ProcessTask.h" +#include "Utils/Logger.hpp" asst::StartUpTask::StartUpTask(const AsstCallback& callback, Assistant* inst) : InterfaceTask(callback, inst, TaskType), m_start_game_task_ptr(std::make_shared(m_callback, m_inst, TaskType)), m_start_up_task_ptr(std::make_shared(m_callback, m_inst, TaskType)) { + LogTraceFunction; + m_start_up_task_ptr->set_tasks({ "StartUpBegin" }) .set_times_limit("ReturnTo", 0) .set_task_delay(Config.get_options().task_delay * 2) @@ -20,6 +23,8 @@ asst::StartUpTask::StartUpTask(const AsstCallback& callback, Assistant* inst) bool asst::StartUpTask::set_params(const json::value& params) { + LogTraceFunction; + m_start_game_task_ptr->set_client_type(params.get("client_type", std::string())) .set_enable(params.get("start_game_enabled", false)); return true; diff --git a/src/MaaCore/Task/Interface/VideoRecognitionTask.cpp b/src/MaaCore/Task/Interface/VideoRecognitionTask.cpp index 51641876de..d239d75821 100644 --- a/src/MaaCore/Task/Interface/VideoRecognitionTask.cpp +++ b/src/MaaCore/Task/Interface/VideoRecognitionTask.cpp @@ -7,7 +7,9 @@ asst::VideoRecognitionTask::VideoRecognitionTask(const AsstCallback& callback, Assistant* inst) : InterfaceTask(callback, inst, TaskType) -{} +{ + LogTraceFunction; +} bool asst::VideoRecognitionTask::set_params(const json::value& params) {