diff --git a/src/MeoAssistant/Assistant.cpp b/src/MeoAssistant/Assistant.cpp index 01e0d3e46c..f45012f153 100644 --- a/src/MeoAssistant/Assistant.cpp +++ b/src/MeoAssistant/Assistant.cpp @@ -524,7 +524,7 @@ void Assistant::working_proc() task_callback(AsstMsg::TaskChainCompleted, task_json, this); } if (m_tasks_queue.empty()) { - task_callback(AsstMsg::AllTasksCompleted, json::value(), this); + task_callback(AsstMsg::AllTasksCompleted, task_json, this); } //clear_cache(); diff --git a/src/MeoAssistant/RecruitTask.cpp b/src/MeoAssistant/RecruitTask.cpp index eabb399016..223c0bff01 100644 --- a/src/MeoAssistant/RecruitTask.cpp +++ b/src/MeoAssistant/RecruitTask.cpp @@ -50,6 +50,7 @@ bool RecruitTask::_run() } json::value all_tags_json; all_tags_json["tags"] = json::array(all_tags_json_vector); + all_tags_json["task_chain"] = m_task_chain; /* 过滤tags数量不足的情况(可能是识别漏了) */ if (all_tags.size() != RecruitConfiger::CorrectNumberOfTags) { @@ -174,6 +175,7 @@ bool RecruitTask::_run() json::value results_json; results_json["result"] = json::array(); results_json["maybe_level"] = m_maybe_level; + results_json["task_chain"] = m_task_chain; std::vector result_json_vector; for (const auto& comb : result_vec) { @@ -223,4 +225,4 @@ void RecruitTask::set_param(std::vector select_level, bool set_time) noexce { m_select_level = std::move(select_level); m_set_time = set_time; -} \ No newline at end of file +} diff --git a/src/MeoAsstGui/Helper/AsstProxy.cs b/src/MeoAsstGui/Helper/AsstProxy.cs index cfda6d380a..7ca9e2db8a 100644 --- a/src/MeoAsstGui/Helper/AsstProxy.cs +++ b/src/MeoAsstGui/Helper/AsstProxy.cs @@ -105,6 +105,10 @@ namespace MeoAsstGui case AsstMsg.TaskChainStart: { string taskChain = detail["task_chain"].ToString(); + if (taskChain == "RecruitCalc") + { + break; + } tvm.AddLog("开始任务:" + taskChain); } break; @@ -138,15 +142,24 @@ namespace MeoAsstGui case AsstMsg.TaskChainCompleted: { string taskChain = detail["task_chain"].ToString(); + if (taskChain == "RecruitCalc") + { + break; + } tvm.AddLog("完成任务:" + taskChain); } break; case AsstMsg.AllTasksCompleted: { + string taskChain = detail["task_chain"].ToString(); + if (taskChain == "RecruitCalc") + { + break; + } tvm.Idle = true; tvm.AddLog("任务已全部完成"); - new ToastContentBuilder().AddText("任务已全部完成!").Show(); + new ToastContentBuilder().AddText("任务已全部完成!").Show(); tvm.CheckAndShutdown(); } break; @@ -198,7 +211,18 @@ namespace MeoAsstGui break; case AsstMsg.TaskError: - tvm.AddLog("任务出错:" + detail["task_chain"].ToString(), "darkred"); + { + string taskChain = detail["task_chain"].ToString(); + if (taskChain == "RecruitCalc") + { + var rvm = _container.Get(); + rvm.RecruitInfo = "识别错误!"; + } + else + { + tvm.AddLog("任务出错:" + detail["task_chain"].ToString(), "darkred"); + } + } break; case AsstMsg.InitFaild: @@ -243,21 +267,28 @@ namespace MeoAsstGui case AsstMsg.TextDetected: break; - case AsstMsg.RecruitTagsDetected: - JArray tags = (JArray)detail["tags"]; - string log_content = ""; - string info_content = "识别结果: "; - foreach (var tag_name in tags) + case AsstMsg.RecruitTagsDetected: { - string tag_str = tag_name.ToString(); - info_content += tag_str + " "; - log_content += tag_str + "\n"; + JArray tags = (JArray)detail["tags"]; + string log_content = ""; + string info_content = "识别结果: "; + foreach (var tag_name in tags) + { + string tag_str = tag_name.ToString(); + info_content += tag_str + " "; + log_content += tag_str + "\n"; + } + string taskChain = detail["task_chain"].ToString(); + if (taskChain == "RecruitCalc") + { + rvm.RecruitInfo = info_content; + } + else + { + log_content = log_content.EndsWith("\n") ? log_content.TrimEnd('\n') : "错误"; + tvm.AddLog("公招识别结果:\n" + log_content); + } } - rvm.RecruitInfo = info_content; - - log_content = log_content.EndsWith("\n") ? log_content.TrimEnd('\n') : "错误"; - tvm.AddLog("公招识别结果:\n" + log_content); - break; case AsstMsg.OcrResultError: @@ -269,34 +300,46 @@ namespace MeoAsstGui new ToastContentBuilder().AddText("公招提示:" + special).Show(); break; - case AsstMsg.RecruitResult: - string resultContent = ""; - JArray result_array = (JArray)detail["result"]; - int combs_level = (int)detail["maybe_level"]; - foreach (var combs in result_array) - { - int tag_level = (int)combs["tag_level"]; - resultContent += tag_level + "星Tags: "; - foreach (var tag in (JArray)combs["tags"]) - { - resultContent += tag.ToString() + " "; - } - resultContent += "\n\t"; - foreach (var oper in (JArray)combs["opers"]) - { - resultContent += oper["level"].ToString() + " - " + oper["name"].ToString() + " "; - } - resultContent += "\n\n"; - } - rvm.RecruitResult = resultContent; - if (combs_level >= 5) + case AsstMsg.RecruitResult: { - new ToastContentBuilder().AddText("公招出 " + combs_level + " 星了哦!").Show(); - tvm.AddLog(combs_level + " 星Tags", "darkorange", "Bold"); - } - else - { - tvm.AddLog(combs_level + " 星Tags", "darkcyan"); + string resultContent = ""; + JArray result_array = (JArray)detail["result"]; + int combs_level = (int)detail["maybe_level"]; + foreach (var combs in result_array) + { + int tag_level = (int)combs["tag_level"]; + resultContent += tag_level + "星Tags: "; + foreach (var tag in (JArray)combs["tags"]) + { + resultContent += tag.ToString() + " "; + } + resultContent += "\n\t"; + foreach (var oper in (JArray)combs["opers"]) + { + resultContent += oper["level"].ToString() + " - " + oper["name"].ToString() + " "; + } + resultContent += "\n\n"; + } + string taskChain = detail["task_chain"].ToString(); + if (taskChain == "RecruitCalc") + { + rvm.RecruitResult = resultContent; + } + if (combs_level >= 5) + { + new ToastContentBuilder().AddText("公招出 " + combs_level + " 星了哦!").Show(); + if (taskChain != "RecruitCalc") + { + tvm.AddLog(combs_level + " 星Tags", "darkorange", "Bold"); + } + } + else + { + if (taskChain != "RecruitCalc") + { + tvm.AddLog(combs_level + " 星Tags", "darkcyan"); + } + } } break; diff --git a/src/MeoAsstGui/ViewModels/RecruitViewModel.cs b/src/MeoAsstGui/ViewModels/RecruitViewModel.cs index 5f64c9f258..592b4b0e58 100644 --- a/src/MeoAsstGui/ViewModels/RecruitViewModel.cs +++ b/src/MeoAsstGui/ViewModels/RecruitViewModel.cs @@ -109,17 +109,22 @@ namespace MeoAsstGui ViewStatusStorage.Set("Recruit.AutoSetTime", value.ToString()); } } + + private bool _catched = false; public async void StartCalc() - { - RecruitInfo = "正在捕获模拟器窗口……"; + { var asstProxy = _container.Get(); - var task = Task.Run(() => + if (!_catched) { - return asstProxy.AsstCatch(); - }); - bool catchd = await task; - if (!catchd) + RecruitInfo = "正在捕获模拟器窗口……"; + var task = Task.Run(() => + { + return asstProxy.AsstCatch(); + }); + _catched = await task; + } + if (!_catched) { RecruitInfo = "捕获模拟器窗口失败,若是第一次运行,请尝试使用管理员权限"; return;