diff --git a/docs/回调消息协议.md b/docs/回调消息协议.md index ab87bb1fbc..453d83ee6b 100644 --- a/docs/回调消息协议.md +++ b/docs/回调消息协议.md @@ -346,3 +346,15 @@ Todo "index": 0 // 设施序号 } ``` + +- `ProductOfFacility` + 基建产物 + + ```jsonc + // 对应的 details 字段举例 + { + "product": "Money", // 产物名 + "facility": "Mfg", // 设施名 + "index": 0 // 设施序号 + } + ``` diff --git a/resource/tasks.json b/resource/tasks.json index 3497965336..f74df072b0 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -1854,6 +1854,48 @@ "template": "DroneAssistTrade.png", "action": "stop" }, + "ShamareThumbnail": { + "algorithm": "JustReturn", + "action": "doNothing", + "next": [ + "ShamareThumbnail1", + "ShamareThumbnail2", + "ShamareThumbnail3" + ] + }, + "ShamareThumbnail1": { + "action": "doNothing", + "templThreshold": 0.95, + "cache": false, + "roi": [ + 240, + 550, + 380, + 170 + ] + }, + "ShamareThumbnail2": { + "action": "doNothing", + "templThreshold": 0.95, + "cache": false, + "roi": [ + 240, + 550, + 380, + 170 + ] + }, + "ShamareThumbnail3": { + "action": "doNothing", + "templThreshold": 0.95, + "cache": false, + "roi": [ + 240, + 550, + 380, + 170 + ] + }, "InfrastSkillsUpper": { "algorithm": "justReturn", "roi": [ diff --git a/resource/template/ShamareThumbnail1.png b/resource/template/ShamareThumbnail1.png new file mode 100644 index 0000000000..27ba67b6c0 Binary files /dev/null and b/resource/template/ShamareThumbnail1.png differ diff --git a/resource/template/ShamareThumbnail2.png b/resource/template/ShamareThumbnail2.png new file mode 100644 index 0000000000..1a25839a38 Binary files /dev/null and b/resource/template/ShamareThumbnail2.png differ diff --git a/resource/template/ShamareThumbnail3.png b/resource/template/ShamareThumbnail3.png new file mode 100644 index 0000000000..b22611a4aa Binary files /dev/null and b/resource/template/ShamareThumbnail3.png differ diff --git a/src/MeoAssistant/AbstractTask.cpp b/src/MeoAssistant/AbstractTask.cpp index 2b1859a463..75155edbfa 100644 --- a/src/MeoAssistant/AbstractTask.cpp +++ b/src/MeoAssistant/AbstractTask.cpp @@ -65,27 +65,30 @@ void asst::AbstractTask::clear_plugin() noexcept json::value asst::AbstractTask::basic_info() const { - // typeid.name() 结果可能和编译器有关,所以这里使用正则尽可能保证结果正确。 - // 但还是不能完全保证,如果不行的话建议 override - static std::regex regex("[a-zA-Z]+Task"); - std::smatch match_obj; - std::string class_name = typeid(*this).name(); - std::string task_name; - if (std::regex_search(class_name, match_obj, regex)) { - task_name = match_obj[0].str(); - } - else { - task_name = class_name; - } + if (m_basic_info_cache.empty()) { + std::string class_name = typeid(*this).name(); + std::string task_name; + // typeid.name() 结果可能和编译器有关,所以这里使用正则尽可能保证结果正确。 + // 但还是不能完全保证,如果不行的话建议 override + std::regex regex("[a-zA-Z]+Task"); + std::smatch match_obj; + if (std::regex_search(class_name, match_obj, regex)) { + task_name = match_obj[0].str(); + } + else { + task_name = class_name; + } - return json::object{ - { "taskchain", m_task_chain }, - { "class", class_name }, - { "subtask", task_name }, - { "details", json::object() } - //{ "CurRetryTimes", m_cur_retry }, - //{ "MaxRetryTimes", m_retry_times } - }; + m_basic_info_cache = json::object{ + { "taskchain", m_task_chain }, + { "class", class_name }, + { "subtask", task_name }, + { "details", json::object() } + //{ "CurRetryTimes", m_cur_retry }, + //{ "MaxRetryTimes", m_retry_times } + }; + } + return m_basic_info_cache; } json::value asst::AbstractTask::basic_info_with_what(std::string what) const diff --git a/src/MeoAssistant/AbstractTask.h b/src/MeoAssistant/AbstractTask.h index 9150aabe7c..6ce9bc834b 100644 --- a/src/MeoAssistant/AbstractTask.h +++ b/src/MeoAssistant/AbstractTask.h @@ -3,6 +3,7 @@ #include #include #include +#include #include "AsstMsg.h" @@ -10,10 +11,6 @@ namespace cv { class Mat; } -namespace json -{ - class value; -} namespace asst { @@ -67,6 +64,7 @@ namespace asst int m_cur_retry = 0; int m_retry_times = RetryTimesDefault; + mutable json::value m_basic_info_cache; std::set m_plugins; }; } diff --git a/src/MeoAssistant/Assistant.cpp b/src/MeoAssistant/Assistant.cpp index 1855af07fe..5c6dc5a8bc 100644 --- a/src/MeoAssistant/Assistant.cpp +++ b/src/MeoAssistant/Assistant.cpp @@ -25,6 +25,7 @@ #include "InfrastControlTask.h" #include "RuntimeStatus.h" #include "StageDropsTaskPlugin.h" +#include "DronesForShamareTaskPlugin.h" using namespace asst; @@ -333,15 +334,15 @@ bool Assistant::append_debug() return false; } - std::unique_lock lock(m_mutex); + //std::unique_lock lock(m_mutex); - { - constexpr static const char* DebugTaskChain = "Debug"; - auto shift_task_ptr = std::make_shared(task_callback, (void*)this, DebugTaskChain); - shift_task_ptr->set_work_mode(infrast::WorkMode::Aggressive); - shift_task_ptr->set_product("MoodAddition"); - m_tasks_queue.emplace(shift_task_ptr); - } + //{ + // constexpr static const char* DebugTaskChain = "Debug"; + // auto shift_task_ptr = std::make_shared(task_callback, (void*)this, DebugTaskChain); + // shift_task_ptr->set_work_mode(infrast::WorkMode::Aggressive); + // shift_task_ptr->set_product("MoodAddition"); + // m_tasks_queue.emplace(shift_task_ptr); + //} return true; } @@ -399,6 +400,7 @@ bool asst::Assistant::append_infrast(infrast::WorkMode work_mode, const std::vec trade_task_ptr->set_uses_of_drone(uses_of_drones) .set_work_mode(work_mode) .set_mood_threshold(dorm_threshold); + trade_task_ptr->regiseter_plugin(); auto power_task_ptr = std::make_shared(task_callback, (void*)this, InfrastTaskCahin); power_task_ptr->set_work_mode(work_mode) .set_mood_threshold(dorm_threshold); diff --git a/src/MeoAssistant/DronesForShamareTaskPlugin.cpp b/src/MeoAssistant/DronesForShamareTaskPlugin.cpp new file mode 100644 index 0000000000..019b572054 --- /dev/null +++ b/src/MeoAssistant/DronesForShamareTaskPlugin.cpp @@ -0,0 +1,44 @@ +#include "DronesForShamareTaskPlugin.h" + +#include "InfrastProductionTask.h" +#include "ProcessTask.h" + +bool asst::DronesForShamareTaskPlugin::verify(AsstMsg msg, const json::value& details) const +{ + if (msg != AsstMsg::SubTaskExtraInfo + || details.get("subtask", std::string()) != "InfrastTradeTask") { + return false; + } + + if (details.at("what").as_string() == "ProductOfFacility" + && details.at("details").at("product").as_string() == "Money") { + return true; + } + else { + return false; + } +} + +void asst::DronesForShamareTaskPlugin::set_task_ptr(AbstractTask* ptr) +{ + AbstractTaskPlugin::set_task_ptr(ptr); + + m_cast_ptr = dynamic_cast(ptr); +} + +bool asst::DronesForShamareTaskPlugin::_run() +{ + ProcessTask shamare_task(*this, { "ShamareThumbnail" }); + shamare_task.set_retry_times(1); + bool has_shamare = shamare_task.run(); + if (!has_shamare) { + return true; + } + + ProcessTask drone_task(*this, { "DroneAssistTrade" }); + bool drone_ret = drone_task.run(); + if (drone_ret) { + m_cast_ptr->set_uses_of_drone("_Used"); + } + return drone_ret; +} diff --git a/src/MeoAssistant/DronesForShamareTaskPlugin.h b/src/MeoAssistant/DronesForShamareTaskPlugin.h new file mode 100644 index 0000000000..411f683f1f --- /dev/null +++ b/src/MeoAssistant/DronesForShamareTaskPlugin.h @@ -0,0 +1,24 @@ +#pragma once + +#include "AbstractTaskPlugin.h" + +namespace asst +{ + class InfrastProductionTask; + + // 识别干员“巫恋”,并优先为其使用无人机 的任务插件 + class DronesForShamareTaskPlugin final : public AbstractTaskPlugin + { + public: + using AbstractTaskPlugin::AbstractTaskPlugin; + virtual ~DronesForShamareTaskPlugin() = default; + + virtual bool verify(AsstMsg msg, const json::value& details) const override; + virtual void set_task_ptr(AbstractTask* ptr) override; + + private: + virtual bool _run() override; + + InfrastProductionTask* m_cast_ptr = nullptr; + }; +} diff --git a/src/MeoAssistant/InfrastAbstractTask.cpp b/src/MeoAssistant/InfrastAbstractTask.cpp index 773b705d14..5aef8c1fc1 100644 --- a/src/MeoAssistant/InfrastAbstractTask.cpp +++ b/src/MeoAssistant/InfrastAbstractTask.cpp @@ -56,17 +56,20 @@ json::value asst::InfrastAbstractTask::basic_info() const std::string asst::InfrastAbstractTask::facility_name() const { - // typeid.name() 结果可能和编译器有关,所以这里使用正则尽可能保证结果正确。 - // 但还是不能完全保证,如果不行的话建议 override - static std::regex regex("Infrast(.*)Task"); - std::smatch match_obj; - std::string class_name = typeid(*this).name(); - if (std::regex_search(class_name, match_obj, regex)) { - return match_obj[1].str(); - } - else { - return class_name; + if (m_facility_name_cache.empty()) { + std::string class_name = typeid(*this).name(); + // typeid.name() 结果可能和编译器有关,所以这里使用正则尽可能保证结果正确。 + // 但还是不能完全保证,如果不行的话建议 override + std::regex regex("Infrast(.*)Task"); + std::smatch match_obj; + if (std::regex_search(class_name, match_obj, regex)) { + m_facility_name_cache = match_obj[1].str(); + } + else { + m_facility_name_cache = class_name; + } } + return m_facility_name_cache; } bool asst::InfrastAbstractTask::on_run_fails() diff --git a/src/MeoAssistant/InfrastAbstractTask.h b/src/MeoAssistant/InfrastAbstractTask.h index 9ece09ac0a..bec82ec8f5 100644 --- a/src/MeoAssistant/InfrastAbstractTask.h +++ b/src/MeoAssistant/InfrastAbstractTask.h @@ -17,7 +17,7 @@ namespace asst virtual json::value basic_info() const override; virtual std::string facility_name() const; - virtual size_t max_num_of_facility() const noexcept { return 1ULL; } + virtual size_t max_num_of_facilities() const noexcept { return 1ULL; } virtual size_t max_num_of_opers() const noexcept { return 1ULL; } constexpr static int OperSelectRetryTimes = 3; @@ -42,6 +42,7 @@ namespace asst infrast::WorkMode m_work_mode = infrast::WorkMode::Gentle; std::string m_work_mode_name = "Gentle"; double m_mood_threshold = 0; + mutable std::string m_facility_name_cache; int m_cur_facility_index = 0; int m_face_hash_thres = 0; diff --git a/src/MeoAssistant/InfrastMfgTask.h b/src/MeoAssistant/InfrastMfgTask.h index 45561978de..138f1a760c 100644 --- a/src/MeoAssistant/InfrastMfgTask.h +++ b/src/MeoAssistant/InfrastMfgTask.h @@ -9,7 +9,7 @@ namespace asst using InfrastProductionTask::InfrastProductionTask; virtual ~InfrastMfgTask() = default; - virtual size_t max_num_of_facility() const noexcept override { return 5ULL; } + virtual size_t max_num_of_facilities() const noexcept override { return 5ULL; } virtual size_t max_num_of_opers() const noexcept override { return 3ULL; } protected: diff --git a/src/MeoAssistant/InfrastPowerTask.cpp b/src/MeoAssistant/InfrastPowerTask.cpp index 1e65e7e871..ea6815e8dd 100644 --- a/src/MeoAssistant/InfrastPowerTask.cpp +++ b/src/MeoAssistant/InfrastPowerTask.cpp @@ -9,7 +9,7 @@ bool asst::InfrastPowerTask::_run() // 发电站只能造这一个 set_product("Drone"); - for (int i = 0; i != max_num_of_facility(); ++i) { + for (int i = 0; i != max_num_of_facilities(); ++i) { if (need_exit()) { return false; } diff --git a/src/MeoAssistant/InfrastPowerTask.h b/src/MeoAssistant/InfrastPowerTask.h index deeddbfde8..125112411b 100644 --- a/src/MeoAssistant/InfrastPowerTask.h +++ b/src/MeoAssistant/InfrastPowerTask.h @@ -9,7 +9,7 @@ namespace asst using InfrastProductionTask::InfrastProductionTask; virtual ~InfrastPowerTask() = default; - virtual size_t max_num_of_facility() const noexcept override { return 3ULL; } + virtual size_t max_num_of_facilities() const noexcept override { return 3ULL; } protected: virtual bool _run() override; diff --git a/src/MeoAssistant/InfrastProductionTask.cpp b/src/MeoAssistant/InfrastProductionTask.cpp index 7e942eb56b..ef048ff836 100644 --- a/src/MeoAssistant/InfrastProductionTask.cpp +++ b/src/MeoAssistant/InfrastProductionTask.cpp @@ -20,10 +20,13 @@ asst::InfrastProductionTask& asst::InfrastProductionTask::set_uses_of_drone(std: return *this; } -asst::InfrastProductionTask& asst::InfrastProductionTask::set_product(std::string product_name) noexcept +void asst::InfrastProductionTask::set_product(std::string product_name) noexcept { m_product = std::move(product_name); - return *this; + + json::value callback_info = basic_info_with_what("ProductOfFacility"); + callback_info["details"]["product"] = m_product; + callback(AsstMsg::SubTaskExtraInfo, callback_info); } bool asst::InfrastProductionTask::shift_facility_list() @@ -98,7 +101,6 @@ bool asst::InfrastProductionTask::shift_facility_list() } } set_product(cur_product); - Log.info("cur product", cur_product); locked_analyzer.set_image(image); if (locked_analyzer.analyze()) { diff --git a/src/MeoAssistant/InfrastProductionTask.h b/src/MeoAssistant/InfrastProductionTask.h index 8a3feb965c..34b4754bed 100644 --- a/src/MeoAssistant/InfrastProductionTask.h +++ b/src/MeoAssistant/InfrastProductionTask.h @@ -15,13 +15,6 @@ namespace asst InfrastProductionTask& set_uses_of_drone(std::string uses_of_drones) noexcept; -#ifdef ASST_DEBUG - public: -#else - // 为了方便调试,把这两个个接口拿到public来了 - protected: -#endif - InfrastProductionTask& set_product(std::string product_name) noexcept; protected: bool shift_facility_list(); @@ -31,6 +24,7 @@ namespace asst bool optimal_calc(); bool opers_choose(); bool use_drone(); + void set_product(std::string product_name) noexcept; infrast::SkillsComb efficient_regex_calc( std::unordered_set skills) const; diff --git a/src/MeoAssistant/InfrastTradeTask.h b/src/MeoAssistant/InfrastTradeTask.h index d6a4ea7a81..65e984b705 100644 --- a/src/MeoAssistant/InfrastTradeTask.h +++ b/src/MeoAssistant/InfrastTradeTask.h @@ -9,7 +9,7 @@ namespace asst using InfrastProductionTask::InfrastProductionTask; virtual ~InfrastTradeTask() = default; - virtual size_t max_num_of_facility() const noexcept override { return 5ULL; } + virtual size_t max_num_of_facilities() const noexcept override { return 5ULL; } virtual size_t max_num_of_opers() const noexcept override { return 3ULL; } protected: diff --git a/src/MeoAssistant/MeoAssistant.vcxproj b/src/MeoAssistant/MeoAssistant.vcxproj index 24236d8b67..fc407b934b 100644 --- a/src/MeoAssistant/MeoAssistant.vcxproj +++ b/src/MeoAssistant/MeoAssistant.vcxproj @@ -25,6 +25,7 @@ + @@ -74,6 +75,7 @@ + diff --git a/src/MeoAssistant/MeoAssistant.vcxproj.filters b/src/MeoAssistant/MeoAssistant.vcxproj.filters index c52107cf88..c1a5ac8653 100644 --- a/src/MeoAssistant/MeoAssistant.vcxproj.filters +++ b/src/MeoAssistant/MeoAssistant.vcxproj.filters @@ -1,386 +1,392 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - {81d86994-0d89-4cc2-aa6f-d726a0bd0490} - - - {3b93d9f2-728c-4a22-bc13-57ce7df5806c} - - - {1ef28df7-c174-4032-bbcf-9722ae53852d} - - - {557d6d96-11d9-46e1-b611-b2b8216abea6} - - - {1a8ffc31-8eb3-4af6-9065-634de2463a3e} - - - {c6a0898b-5dd7-4437-981c-00e53b30a60d} - - - {07a812fe-6b28-4be0-b6d4-33554824d3c5} - - - {74bd94e1-4973-412a-a17a-d8457de387af} - - - {87c9dee5-847b-41e6-818e-387a6385ea8b} - - - {a37e0b23-e8f8-499c-adf5-9990277e9ffe} - - - {51165426-1842-491a-b5d5-9d26c59facdd} - - - {c600668a-0d70-4694-b1e5-6a78cffd0b1a} - - - {d173e449-880b-4064-bbab-97007e3d090b} - - - {fc8aa302-89bb-4016-924d-10177dc8b334} - - - {9a6160e3-cd35-4dda-ba04-23ede1878740} - - - {a5c43813-70af-4b0e-94ac-9ddecc2e4a3c} - - - {6cd85910-b561-4cf3-85a2-20be3cd1dd76} - - - {34a52261-b34b-49ac-8102-22b0125617f5} - - - {f5faaa93-ae82-472e-9c59-9eccc29294a0} - - - - - 头文件 - - - 头文件 - - - 头文件\Resource - - - 头文件\Resource - - - 头文件\Utils - - - 头文件\Utils - - - 头文件\Utils - - - 头文件\Utils - - - 头文件\Caller - - - 头文件\Caller - - - 头文件\Task - - - 头文件\Task - - - 头文件\Task - - - 头文件\Utils - - - 头文件\Resource - - - 头文件\Resource - - - 头文件\Task - - - 头文件\Resource - - - 头文件\ImageAnalyzer - - - 头文件\Resource - - - 头文件\Resource - - - 头文件\Resource - - - 头文件\Resource - - - 头文件\ImageAnalyzer - - - 头文件 - - - 头文件\ImageAnalyzer - - - 头文件\ImageAnalyzer\General - - - 头文件\ImageAnalyzer\General - - - 头文件\ImageAnalyzer\General - - - 头文件\ImageAnalyzer\General - - - 头文件\ImageAnalyzer\Infrast - - - 头文件\Resource - - - 头文件\ImageAnalyzer\Infrast - - - 头文件 - - - 头文件\ImageAnalyzer\Infrast - - - 头文件\Task\Infrast - - - 头文件\Task\Infrast - - - 头文件\Task\Infrast - - - 头文件\Task\Infrast - - - 头文件\Task\Infrast - - - 头文件\Task\Infrast - - - 头文件\Task\Infrast - - - 头文件\Task\Infrast - - - 头文件\Task\Infrast - - - 头文件\ImageAnalyzer\Infrast - - - 头文件\Utils - - - 头文件\ImageAnalyzer\Infrast - - - 头文件 - - - 头文件\Task - - - 头文件\Task\Infrast - - - 头文件\Requester - - - 头文件\TaskPlugin - - - 头文件\TaskPlugin - - - - - 源文件 - - - 源文件 - - - 源文件\Resource - - - 源文件\Resource - - - 源文件\Task - - - 源文件\Task - - - 源文件\Task - - - 源文件\Caller - - - 源文件\Resource - - - 源文件\Resource - - - 源文件\Task - - - 源文件\Resource - - - 源文件\ImageAnalyzer - - - 源文件\Resource - - - 源文件\Resource - - - 源文件\Resource - - - 源文件\Resource - - - 源文件\ImageAnalyzer - - - 源文件 - - - 源文件\ImageAnalyzer - - - 源文件\ImageAnalyzer\Infrast - - - 源文件\ImageAnalyzer\General - - - 源文件\ImageAnalyzer\General - - - 源文件\ImageAnalyzer\General - - - 源文件\ImageAnalyzer\General - - - 源文件\Resource - - - 源文件\ImageAnalyzer\Infrast - - - 源文件 - - - 源文件\Task\Infrast - - - 源文件\Task\Infrast - - - 源文件\Task\Infrast - - - 源文件\Task\Infrast - - - 源文件\Task\Infrast - - - 源文件\Task\Infrast - - - 源文件\Task\Infrast - - - 源文件\Task\Infrast - - - 源文件\ImageAnalyzer\Infrast - - - 源文件\ImageAnalyzer\Infrast - - - 源文件\Task\Infrast - - - 源文件\ImageAnalyzer\Infrast - - - 源文件 - - - 源文件\Task - - - 源文件\Task\Infrast - - - 源文件\Requester - - - 源文件\TaskPlugin - - - 源文件\TaskPlugin - - - - - 资源文件 - - - 资源文件 - - - 资源文件 - - + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + {81d86994-0d89-4cc2-aa6f-d726a0bd0490} + + + {3b93d9f2-728c-4a22-bc13-57ce7df5806c} + + + {1ef28df7-c174-4032-bbcf-9722ae53852d} + + + {557d6d96-11d9-46e1-b611-b2b8216abea6} + + + {1a8ffc31-8eb3-4af6-9065-634de2463a3e} + + + {c6a0898b-5dd7-4437-981c-00e53b30a60d} + + + {07a812fe-6b28-4be0-b6d4-33554824d3c5} + + + {74bd94e1-4973-412a-a17a-d8457de387af} + + + {87c9dee5-847b-41e6-818e-387a6385ea8b} + + + {a37e0b23-e8f8-499c-adf5-9990277e9ffe} + + + {51165426-1842-491a-b5d5-9d26c59facdd} + + + {c600668a-0d70-4694-b1e5-6a78cffd0b1a} + + + {d173e449-880b-4064-bbab-97007e3d090b} + + + {fc8aa302-89bb-4016-924d-10177dc8b334} + + + {9a6160e3-cd35-4dda-ba04-23ede1878740} + + + {a5c43813-70af-4b0e-94ac-9ddecc2e4a3c} + + + {6cd85910-b561-4cf3-85a2-20be3cd1dd76} + + + {34a52261-b34b-49ac-8102-22b0125617f5} + + + {f5faaa93-ae82-472e-9c59-9eccc29294a0} + + + + + 头文件 + + + 头文件 + + + 头文件\Resource + + + 头文件\Resource + + + 头文件\Utils + + + 头文件\Utils + + + 头文件\Utils + + + 头文件\Utils + + + 头文件\Caller + + + 头文件\Caller + + + 头文件\Task + + + 头文件\Task + + + 头文件\Task + + + 头文件\Utils + + + 头文件\Resource + + + 头文件\Resource + + + 头文件\Task + + + 头文件\Resource + + + 头文件\ImageAnalyzer + + + 头文件\Resource + + + 头文件\Resource + + + 头文件\Resource + + + 头文件\Resource + + + 头文件\ImageAnalyzer + + + 头文件 + + + 头文件\ImageAnalyzer + + + 头文件\ImageAnalyzer\General + + + 头文件\ImageAnalyzer\General + + + 头文件\ImageAnalyzer\General + + + 头文件\ImageAnalyzer\General + + + 头文件\ImageAnalyzer\Infrast + + + 头文件\Resource + + + 头文件\ImageAnalyzer\Infrast + + + 头文件 + + + 头文件\ImageAnalyzer\Infrast + + + 头文件\Task\Infrast + + + 头文件\Task\Infrast + + + 头文件\Task\Infrast + + + 头文件\Task\Infrast + + + 头文件\Task\Infrast + + + 头文件\Task\Infrast + + + 头文件\Task\Infrast + + + 头文件\Task\Infrast + + + 头文件\Task\Infrast + + + 头文件\ImageAnalyzer\Infrast + + + 头文件\Utils + + + 头文件\ImageAnalyzer\Infrast + + + 头文件 + + + 头文件\Task + + + 头文件\Task\Infrast + + + 头文件\Requester + + + 头文件\TaskPlugin + + + 头文件\TaskPlugin + + + 头文件\TaskPlugin + + + + + 源文件 + + + 源文件 + + + 源文件\Resource + + + 源文件\Resource + + + 源文件\Task + + + 源文件\Task + + + 源文件\Task + + + 源文件\Caller + + + 源文件\Resource + + + 源文件\Resource + + + 源文件\Task + + + 源文件\Resource + + + 源文件\ImageAnalyzer + + + 源文件\Resource + + + 源文件\Resource + + + 源文件\Resource + + + 源文件\Resource + + + 源文件\ImageAnalyzer + + + 源文件 + + + 源文件\ImageAnalyzer + + + 源文件\ImageAnalyzer\Infrast + + + 源文件\ImageAnalyzer\General + + + 源文件\ImageAnalyzer\General + + + 源文件\ImageAnalyzer\General + + + 源文件\ImageAnalyzer\General + + + 源文件\Resource + + + 源文件\ImageAnalyzer\Infrast + + + 源文件 + + + 源文件\Task\Infrast + + + 源文件\Task\Infrast + + + 源文件\Task\Infrast + + + 源文件\Task\Infrast + + + 源文件\Task\Infrast + + + 源文件\Task\Infrast + + + 源文件\Task\Infrast + + + 源文件\Task\Infrast + + + 源文件\ImageAnalyzer\Infrast + + + 源文件\ImageAnalyzer\Infrast + + + 源文件\Task\Infrast + + + 源文件\ImageAnalyzer\Infrast + + + 源文件 + + + 源文件\Task + + + 源文件\Task\Infrast + + + 源文件\Requester + + + 源文件\TaskPlugin + + + 源文件\TaskPlugin + + + 源文件\TaskPlugin + + + + + 资源文件 + + + 资源文件 + + + 资源文件 + + \ No newline at end of file diff --git a/src/MeoAssistant/StageDropsTaskPlugin.cpp b/src/MeoAssistant/StageDropsTaskPlugin.cpp index 28a1dea331..c21f0fad75 100644 --- a/src/MeoAssistant/StageDropsTaskPlugin.cpp +++ b/src/MeoAssistant/StageDropsTaskPlugin.cpp @@ -15,7 +15,7 @@ bool asst::StageDropsTaskPlugin::verify(AsstMsg msg, const json::value& details) const { if (msg != AsstMsg::SubTaskCompleted - || details.get("class", std::string()) != "class asst::ProcessTask") { + || details.get("subtask", std::string()) != "ProcessTask") { return false; } diff --git a/src/MeoAssistant/StageDropsTaskPlugin.h b/src/MeoAssistant/StageDropsTaskPlugin.h index b4d56a2b4f..dd7d2be3b2 100644 --- a/src/MeoAssistant/StageDropsTaskPlugin.h +++ b/src/MeoAssistant/StageDropsTaskPlugin.h @@ -10,7 +10,7 @@ namespace asst { class ProcessTask; - class StageDropsTaskPlugin : public AbstractTaskPlugin + class StageDropsTaskPlugin final : public AbstractTaskPlugin { public: using AbstractTaskPlugin::AbstractTaskPlugin;