From 3cf04bf5153ec20cf2485c49a8d94a716151a5c8 Mon Sep 17 00:00:00 2001 From: MistEO Date: Wed, 6 Apr 2022 22:59:29 +0800 Subject: [PATCH] =?UTF-8?q?feat.=E6=A3=80=E6=B5=8B=E5=88=B0EX=E5=85=B3?= =?UTF-8?q?=E5=8D=A1=E6=97=B6=EF=BC=8C=E5=88=99=E5=81=9C=E6=AD=A2=E7=BB=A7?= =?UTF-8?q?=E7=BB=AD=E5=88=B7=E7=90=86=E6=99=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/325 --- src/MeoAssistant/GeneralConfiger.cpp | 4 ++-- src/MeoAssistant/GeneralConfiger.h | 2 +- src/MeoAssistant/ProcessTask.cpp | 6 +++--- src/MeoAssistant/StageDropsTaskPlugin.cpp | 24 +++++++++++++++++++++++ src/MeoAssistant/StageDropsTaskPlugin.h | 1 + src/MeoAssistant/TemplResource.cpp | 2 +- src/MeoAsstGui/Helper/AsstProxy.cs | 4 ++++ 7 files changed, 36 insertions(+), 7 deletions(-) diff --git a/src/MeoAssistant/GeneralConfiger.cpp b/src/MeoAssistant/GeneralConfiger.cpp index 74399af223..967c44fb5f 100644 --- a/src/MeoAssistant/GeneralConfiger.cpp +++ b/src/MeoAssistant/GeneralConfiger.cpp @@ -56,8 +56,8 @@ bool asst::GeneralConfiger::parse(const json::value& json) emulator_info.adb.release = adb_json.at("release").as_string(); //emulator_info.adb.pullscreen = adb_json.at("pullscreen").as_string(); - m_emulators_info.emplace(name, std::move(emulator_info)); + m_emulators_info[name] = std::move(emulator_info); } return true; -} \ No newline at end of file +} diff --git a/src/MeoAssistant/GeneralConfiger.h b/src/MeoAssistant/GeneralConfiger.h index 7e3cecc28d..2a547c6768 100644 --- a/src/MeoAssistant/GeneralConfiger.h +++ b/src/MeoAssistant/GeneralConfiger.h @@ -73,7 +73,7 @@ namespace asst } void set_emulator_info(std::string name, EmulatorInfo emu) { - m_emulators_info.emplace(std::move(name), std::move(emu)); + m_emulators_info[std::move(name)] = std::move(emu); } void set_emulator_path(std::string name, std::string path) { diff --git a/src/MeoAssistant/ProcessTask.cpp b/src/MeoAssistant/ProcessTask.cpp index 14ec064d63..e66d695c00 100644 --- a/src/MeoAssistant/ProcessTask.cpp +++ b/src/MeoAssistant/ProcessTask.cpp @@ -1,4 +1,4 @@ -#include "ProcessTask.h" +#include "ProcessTask.h" #include #include @@ -57,13 +57,13 @@ asst::ProcessTask& asst::ProcessTask::set_tasks(std::vector tasks_n ProcessTask& asst::ProcessTask::set_times_limit(std::string name, int limit) { - m_times_limit.emplace(std::move(name), limit); + m_times_limit[std::move(name)] = limit; return *this; } ProcessTask& asst::ProcessTask::set_rear_delay(std::string name, int delay) { - m_rear_delay.emplace(std::move(name), delay); + m_rear_delay[std::move(name)] = delay; return *this; } diff --git a/src/MeoAssistant/StageDropsTaskPlugin.cpp b/src/MeoAssistant/StageDropsTaskPlugin.cpp index 994d95997f..2d43dd5e2a 100644 --- a/src/MeoAssistant/StageDropsTaskPlugin.cpp +++ b/src/MeoAssistant/StageDropsTaskPlugin.cpp @@ -54,6 +54,8 @@ bool asst::StageDropsTaskPlugin::_run() } drop_info_callback(); + check_stage_valid(); + auto upload_future = std::async( std::launch::async, std::bind(&StageDropsTaskPlugin::upload_to_penguin, this)); @@ -191,3 +193,25 @@ void asst::StageDropsTaskPlugin::upload_to_penguin() callback(AsstMsg::SubTaskCompleted, info); } + +bool asst::StageDropsTaskPlugin::check_stage_valid() +{ + LogTraceFunction; + + std::string stage_code = m_cur_drops.get("stage", "stageCode", std::string()); + + if (stage_code.find("-EX-") != std::string::npos) { + json::value info = basic_info(); + info["subtask"] = "CheckStageValid"; + info["why"] = "EX关卡"; + callback(AsstMsg::SubTaskError, info); + + m_cast_ptr->set_times_limit("StartButton1", 0) + .set_times_limit("StartButton2", 0) + .set_times_limit("MedicineConfirm", 0) + .set_times_limit("StoneConfirm", 0); + + return true; + } + return true; +} diff --git a/src/MeoAssistant/StageDropsTaskPlugin.h b/src/MeoAssistant/StageDropsTaskPlugin.h index 4ab5b3ac31..6e111f4cfd 100644 --- a/src/MeoAssistant/StageDropsTaskPlugin.h +++ b/src/MeoAssistant/StageDropsTaskPlugin.h @@ -25,6 +25,7 @@ namespace asst bool recognize_drops(); void drop_info_callback(); void set_startbutton_delay(); + bool check_stage_valid(); void upload_to_penguin(); static constexpr int64_t RecognizationTimeOffset = 20; diff --git a/src/MeoAssistant/TemplResource.cpp b/src/MeoAssistant/TemplResource.cpp index 4566327ada..998605c4ae 100644 --- a/src/MeoAssistant/TemplResource.cpp +++ b/src/MeoAssistant/TemplResource.cpp @@ -47,5 +47,5 @@ const cv::Mat asst::TemplResource::get_templ(const std::string& key) const noexc void asst::TemplResource::emplace_templ(std::string key, cv::Mat templ) { - m_templs.emplace(std::move(key), std::move(templ)); + m_templs[std::move(key)] = std::move(templ); } diff --git a/src/MeoAsstGui/Helper/AsstProxy.cs b/src/MeoAsstGui/Helper/AsstProxy.cs index 7724c5917f..992766ce56 100644 --- a/src/MeoAsstGui/Helper/AsstProxy.cs +++ b/src/MeoAsstGui/Helper/AsstProxy.cs @@ -243,6 +243,10 @@ namespace MeoAsstGui case "ReportToPenguinStats": mainModel.AddLog("上传企鹅数据错误", "darkred"); break; + + case "CheckStageValid": + mainModel.AddLog("EX 关卡,已停止", "darkred"); + break; } }