From 869fbf529d86a0a159c60ba3545aa6417d10baca Mon Sep 17 00:00:00 2001 From: MistEO Date: Tue, 11 Jan 2022 23:01:37 +0800 Subject: [PATCH] =?UTF-8?q?opt.=E4=BC=98=E5=8C=96=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E6=8F=92=E4=BB=B6=E7=9A=84=E5=B7=A5=E4=BD=9C=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MeoAssistant/Assistant.cpp | 3 ++- src/MeoAssistant/DronesForShamareTaskPlugin.cpp | 2 +- src/MeoAssistant/StageDropsTaskPlugin.cpp | 16 +++++++++++++--- src/MeoAssistant/StageDropsTaskPlugin.h | 2 +- src/MeoAsstGui/Helper/AsstProxy.cs | 12 +++++++++--- 5 files changed, 26 insertions(+), 9 deletions(-) diff --git a/src/MeoAssistant/Assistant.cpp b/src/MeoAssistant/Assistant.cpp index 5c6dc5a8bc..944a2861c3 100644 --- a/src/MeoAssistant/Assistant.cpp +++ b/src/MeoAssistant/Assistant.cpp @@ -213,7 +213,8 @@ bool asst::Assistant::append_fight(const std::string& stage, int mecidine, int s .set_times_limit("StoneConfirm", stone) .set_times_limit("StartButton1", times) .set_times_limit("StartButton2", times); - fight_task_ptr->regiseter_plugin(); + fight_task_ptr->regiseter_plugin() + ->set_retry_times(0); std::unique_lock lock(m_mutex); diff --git a/src/MeoAssistant/DronesForShamareTaskPlugin.cpp b/src/MeoAssistant/DronesForShamareTaskPlugin.cpp index 019b572054..3cb0998f3e 100644 --- a/src/MeoAssistant/DronesForShamareTaskPlugin.cpp +++ b/src/MeoAssistant/DronesForShamareTaskPlugin.cpp @@ -29,7 +29,7 @@ void asst::DronesForShamareTaskPlugin::set_task_ptr(AbstractTask* ptr) bool asst::DronesForShamareTaskPlugin::_run() { ProcessTask shamare_task(*this, { "ShamareThumbnail" }); - shamare_task.set_retry_times(1); + shamare_task.set_retry_times(0); bool has_shamare = shamare_task.run(); if (!has_shamare) { return true; diff --git a/src/MeoAssistant/StageDropsTaskPlugin.cpp b/src/MeoAssistant/StageDropsTaskPlugin.cpp index c21f0fad75..926c8abcd1 100644 --- a/src/MeoAssistant/StageDropsTaskPlugin.cpp +++ b/src/MeoAssistant/StageDropsTaskPlugin.cpp @@ -37,7 +37,9 @@ bool asst::StageDropsTaskPlugin::_run() { set_startbutton_delay(); - recognize_drops(); + if (!recognize_drops()) { + return false; + } if (need_exit()) { return false; } @@ -51,14 +53,22 @@ bool asst::StageDropsTaskPlugin::_run() return true; } -void asst::StageDropsTaskPlugin::recognize_drops() +bool asst::StageDropsTaskPlugin::recognize_drops() { sleep(Task.get("PRTS")->rear_delay); if (need_exit()) { - return; + return false; } cv::Mat image = Ctrler.get_image(true); m_cur_drops = json::parse(Resrc.penguin().recognize(image)).value(); + for (auto&& ex : m_cur_drops.at("exceptions").as_array()) { + if (ex.at("type").as_string() == "ERROR" + || ex.at("where").as_string() == "stage" + || ex.at("what").as_string() == "NotFound") { + return false; + } + } + return true; } void asst::StageDropsTaskPlugin::drop_info_callback() diff --git a/src/MeoAssistant/StageDropsTaskPlugin.h b/src/MeoAssistant/StageDropsTaskPlugin.h index dd7d2be3b2..7b55508c2b 100644 --- a/src/MeoAssistant/StageDropsTaskPlugin.h +++ b/src/MeoAssistant/StageDropsTaskPlugin.h @@ -22,7 +22,7 @@ namespace asst private: virtual bool _run() override; - void recognize_drops(); + bool recognize_drops(); void drop_info_callback(); void set_startbutton_delay(); void upload_to_penguin(); diff --git a/src/MeoAsstGui/Helper/AsstProxy.cs b/src/MeoAsstGui/Helper/AsstProxy.cs index cd286435f9..35985c8734 100644 --- a/src/MeoAsstGui/Helper/AsstProxy.cs +++ b/src/MeoAsstGui/Helper/AsstProxy.cs @@ -216,13 +216,19 @@ namespace MeoAsstGui private void procSubTaskError(JObject details) { - string classType = details["class"].ToString(); + string subTask = details["subtask"].ToString(); var mainModel = _container.Get(); - if (classType == "class asst::AutoRecruitTask") + switch (subTask) { - mainModel.AddLog("公招识别错误,已返回", "darkred"); + case "AutoRecruitTask": + mainModel.AddLog("公招识别错误,已返回", "darkred"); + break; + + case "StageDropsTask": + mainModel.AddLog("关卡识别错误", "darkred"); + break; } }