From ba9c91f9cb9e01dc61117bcfa61bbff8edac93fc Mon Sep 17 00:00:00 2001 From: MistEO Date: Tue, 31 May 2022 15:33:46 +0800 Subject: [PATCH 01/12] =?UTF-8?q?docs.=E6=9B=B4=E6=96=B0=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E5=85=B3=E4=BA=8EHyperV=E7=9A=84=E5=B0=8Ftips?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/模拟器支持.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/模拟器支持.md b/docs/模拟器支持.md index 370db8259f..0910a641a3 100644 --- a/docs/模拟器支持.md +++ b/docs/模拟器支持.md @@ -16,7 +16,7 @@ - 由于蓝叠 Hyper-V 的端口号在不断变动,所以留了个专用的小后门: 1. 在蓝叠模拟器的安装目录下找到 `bluestacks.conf` 这个文件 2. 开启 MAA,会在同目录下生成 `gui.json` ,打开它 - 3. 新增一个字段 `Bluestacks.Config.Path`,填入 `bluestacks.conf` 的完整路径 + 3. 新增一个字段 `Bluestacks.Config.Path`,填入 `bluestacks.conf` 的完整路径(注意斜杠要用转义 `\\`) 4. LinkStart! ### 夜神模拟器 From d8f4ed45e7b3c817bcbd750f7a6b66af2613e2cc Mon Sep 17 00:00:00 2001 From: MistEO Date: Tue, 31 May 2022 15:38:25 +0800 Subject: [PATCH 02/12] =?UTF-8?q?docs.=E6=9B=B4=E6=96=B0=E5=B8=B8=E8=A7=81?= =?UTF-8?q?=E9=97=AE=E9=A2=98=EF=BC=8C=E8=BF=9E=E6=8E=A5=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/常见问题.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/常见问题.md b/docs/常见问题.md index a13ec7d6a1..343726bf8a 100644 --- a/docs/常见问题.md +++ b/docs/常见问题.md @@ -10,13 +10,14 @@ (具体可以下载 [CPU-Z](https://www.cpuid.com/softwares/cpu-z.html),查看“指令集”中有无 `AVX` 这一项来判断) - 若上述均没有效果,请提 issue。 -### 连接错误模拟器错误 +### 连接错误模拟器错误、不知道 adb 路径怎么填写 提示 : 请根据 [使用说明](../README.md#使用说明) 确定您的模拟器及打开方式正确 -- 方法 1: 使用 [自定义连接](#自定义连接) 的方式连接模拟器 -- 方法 2: 换模拟器,推荐 [蓝叠国际版](https://www.bluestacks.com/download.html) Nougat 64 bit -- 方法 3: 修改相关代码,C# 侧负责抓取模拟器进程并获取 adb 程序所在路径,这部分逻辑在 [这里](../src/MeoAsstGui/Helper/WinAdapter.cs),~~然后提 PR 给我们!~~ +- 方法 1: 找到你的模拟器安装路径,大概率会有一个 `adb.exe`(不一定就叫这个名字,可能叫 `nox_adb.exe`, `HD-adb.exe`, `adb_server.exe`...总之是名字带 `adb` 的 exe。在 MAA 的连接设置里选择它! +- 方法 2: 使用 [自定义连接](#自定义连接) 的方式连接模拟器 +- 方法 3: 换模拟器,推荐 [蓝叠国际版](https://www.bluestacks.com/download.html) Nougat 64 bit +- 方法 4: 修改相关代码,C# 侧负责抓取模拟器进程并获取 adb 程序所在路径,这部分逻辑在 [这里](../src/MeoAsstGui/Helper/WinAdapter.cs),~~然后提 PR 给我们!~~ ### 识别错误/任务开始后一直不动、没有反应 @@ -32,6 +33,7 @@ - 下载 [adb](https://dl.google.com/android/repository/platform-tools-latest-windows.zip) 并解压 - 进入软件 `设置` - `连接设置`,选择 adb.exe 的文件路径、填写 adb 地址(需要填写 IP + 端口,例如 `127.0.0.1:5555` ),并选择你的模拟器类型 + ### 环境变量中已有 adb, 可以不再下载一份么? 可以!进入软件 `设置` - `连接设置`,将 `adb 路径` 设置为 `adb.exe`, 或其他相对路径即可 From fbffacb24c22da09a8e08cd20e50b024e0597175 Mon Sep 17 00:00:00 2001 From: MistEO Date: Tue, 31 May 2022 15:43:24 +0800 Subject: [PATCH 03/12] =?UTF-8?q?docs.=E6=9B=B4=E6=96=B0=E9=9B=B7=E7=94=B5?= =?UTF-8?q?=E7=9A=84=E4=BB=8B=E7=BB=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/模拟器支持.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/模拟器支持.md b/docs/模拟器支持.md index 0910a641a3..e42a8e3c61 100644 --- a/docs/模拟器支持.md +++ b/docs/模拟器支持.md @@ -46,6 +46,9 @@ 勉强支持。雷电总有莫名其妙的问题,可以试试看,不保证能用( +另外雷电的连接地址会在 `127.0.0.1:5555` 和 `emulator-5554` 之间反复横跳,不同的电脑还可能会不一样,也有重启就变成另一个了的情况。 +所以如果一个连不上,换另一个试试。后面我们会想办法去适配一下雷电的这套逻辑(~~也可能会咕咕~~ + ### 逍遥模拟器 支持。但可能有莫名其妙的识别错误问题 From d37e75888a14e2e0e39087027b8dc05590056db9 Mon Sep 17 00:00:00 2001 From: MistEO Date: Tue, 31 May 2022 19:40:32 +0800 Subject: [PATCH 04/12] =?UTF-8?q?fix.=E4=BF=AE=E5=A4=8D=E6=8E=89=E8=90=BD?= =?UTF-8?q?=E8=AF=86=E5=88=AB=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MeoAssistant/StageDropsImageAnalyzer.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/MeoAssistant/StageDropsImageAnalyzer.cpp b/src/MeoAssistant/StageDropsImageAnalyzer.cpp index 2e8b5076cc..6a3489e144 100644 --- a/src/MeoAssistant/StageDropsImageAnalyzer.cpp +++ b/src/MeoAssistant/StageDropsImageAnalyzer.cpp @@ -253,13 +253,12 @@ bool asst::StageDropsImageAnalyzer::analyze_baseline() // split int threshold = task_ptr->mask_range.first; - int pre_value = 0; + uchar pre_value = 0; for (int i = 0; i < bounding.cols; ++i) { - int value = 0; + uchar value = 0; for (int j = 0; j < bounding.rows; ++j) { - value += bounding.at(0, i); + value = std::max(value, bounding.at(j, i)); } - value /= bounding.rows; bool is_white = value > threshold && pre_value - value < threshold; pre_value = value; From 8682ecf6493d6721274aa3f87e0e94bf16e5d136 Mon Sep 17 00:00:00 2001 From: MistEO Date: Tue, 31 May 2022 20:28:41 +0800 Subject: [PATCH 05/12] =?UTF-8?q?fix.=E4=BF=AE=E5=A4=8D=E6=9F=90=E4=BA=9B?= =?UTF-8?q?=E6=83=85=E5=86=B5=E4=B8=8B=E5=BC=80=E5=A7=8B=E8=A1=8C=E5=8A=A8?= =?UTF-8?q?=E6=AC=A1=E6=95=B0=E6=98=AF=E8=B4=9F=E6=95=B0=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/483 https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/645 --- src/MeoAssistant/ProcessTask.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/MeoAssistant/ProcessTask.cpp b/src/MeoAssistant/ProcessTask.cpp index 9984583d87..fc873cec59 100644 --- a/src/MeoAssistant/ProcessTask.cpp +++ b/src/MeoAssistant/ProcessTask.cpp @@ -211,7 +211,10 @@ bool ProcessTask::_run() // 例如,进入吃理智药的界面了,相当于上一次点蓝色开始行动没生效 // 所以要给蓝色开始行动的次数减一 for (const std::string& reduce : cur_task_ptr->reduce_other_times) { - --m_exec_times[reduce]; + auto& v = m_exec_times[reduce]; + if (v > 0) { + --v; + } } // 后置固定延时 From 631959c9d8a731d9c0d9b3d4f6f456a6435598c7 Mon Sep 17 00:00:00 2001 From: MistEO Date: Tue, 31 May 2022 20:50:29 +0800 Subject: [PATCH 06/12] =?UTF-8?q?fix.=E4=BF=AE=E5=A4=8D=E8=AF=A1=E5=BC=82?= =?UTF-8?q?=E8=A1=8C=E5=95=86=E5=A4=84=E6=8B=9B=E5=8B=9F=E5=B9=B2=E5=91=98?= =?UTF-8?q?=E7=84=B6=E5=90=8E=E5=8D=A1=E4=BD=8F=E7=9A=84=E9=97=AE=E9=A2=98?= =?UTF-8?q?=EF=BC=8C=E9=A1=BA=E4=BE=BF=E5=8E=BB=E6=8E=89=E4=BA=86=E4=B8=80?= =?UTF-8?q?=E4=BA=9B=E5=A4=9A=E4=BD=99=E7=9A=84=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/tasks.json | 3 ++- src/MeoAssistant/MatchImageAnalyzer.cpp | 17 +++++++++-------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/resource/tasks.json b/resource/tasks.json index 6a5eaa4533..27e2cd84b7 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -6321,7 +6321,8 @@ "Roguelike1StageEncounterUnknown", "Roguelike1ChooseOperFlag", "Roguelike1StageEncounterSpecialClose", - "Roguelike1EnterAfterRecruit" + "Roguelike1EnterAfterRecruit", + "Roguelike1StageTraderLeave" ] }, "Roguelike1GetDrop1": { diff --git a/src/MeoAssistant/MatchImageAnalyzer.cpp b/src/MeoAssistant/MatchImageAnalyzer.cpp index cb8bdf529d..59501be71e 100644 --- a/src/MeoAssistant/MatchImageAnalyzer.cpp +++ b/src/MeoAssistant/MatchImageAnalyzer.cpp @@ -100,22 +100,20 @@ bool asst::MatchImageAnalyzer::match_templ(const cv::Mat templ) { cv::Mat matched; - Log.trace(__FUNCTION__, "raw_roi", m_roi.to_string()); - if (m_roi.x < 0) { - Log.info(__FUNCTION__, "roi is out of range"); + Log.info("roi is out of range", m_roi.to_string()); m_roi.x = 0; } if (m_roi.y < 0) { - Log.info(__FUNCTION__, "roi is out of range"); + Log.info("roi is out of range", m_roi.to_string()); m_roi.y = 0; } - if (m_roi.x + m_roi.width >= m_image.cols) { - Log.info(__FUNCTION__, "roi is out of range"); + if (m_roi.x + m_roi.width > m_image.cols) { + Log.info("roi is out of range", m_roi.to_string()); m_roi.width = m_image.cols - m_roi.x; } - if (m_roi.y + m_roi.height >= m_image.rows) { - Log.info(__FUNCTION__, "roi is out of range"); + if (m_roi.y + m_roi.height > m_image.rows) { + Log.info("roi is out of range", m_roi.to_string()); m_roi.height = m_image.rows - m_roi.y; } @@ -144,6 +142,9 @@ bool asst::MatchImageAnalyzer::match_templ(const cv::Mat templ) cv::minMaxLoc(matched, &min_val, &max_val, &min_loc, &max_loc); Rect rect(max_loc.x + m_roi.x, max_loc.y + m_roi.y, templ.cols, templ.rows); + if (max_val > 2.0) { + max_val = 0; + } if (max_val > m_templ_thres * 0.7) { // 得分太低的肯定不对,没必要打印 Log.trace("match_templ |", m_templ_name, "score:", max_val, "rect:", rect.to_string(), "roi:", m_roi.to_string()); } From 702e9c2049e83cae30433b80a2cae4b5cacdafbe Mon Sep 17 00:00:00 2001 From: ABA2396 <2396806385@qq.com> Date: Tue, 31 May 2022 21:27:06 +0800 Subject: [PATCH 07/12] =?UTF-8?q?feat.=E6=B7=BB=E5=8A=A0=E4=BA=86=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E6=A0=8F=20`=E5=85=A8=E9=80=89``=E5=8F=8D=E9=80=89`?= =?UTF-8?q?=20=E5=8A=9F=E8=83=BD(=E8=82=89=E9=B8=BD=E9=99=A4=E5=A4=96)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ViewModels/TaskQueueViewModel.cs | 20 +++++++++++++++++++ src/MeoAsstGui/Views/TaskQueueView.xaml | 6 ++++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs b/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs index 1d7952fe54..843f1f00d6 100644 --- a/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs +++ b/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs @@ -169,6 +169,26 @@ namespace MeoAsstGui LogItemViewModels.Clear(); } + public void SelectedAll() + { + foreach (var item in TaskItemViewModels) + { + if (item.Name == "无限刷肉鸽") + continue; + item.IsChecked = true; + } + } + + public void InverseSelected() + { + foreach (var item in TaskItemViewModels) + { + if (item.Name == "无限刷肉鸽") + continue; + item.IsChecked = !item.IsChecked; + } + } + public async void LinkStart() { Idle = false; diff --git a/src/MeoAsstGui/Views/TaskQueueView.xaml b/src/MeoAsstGui/Views/TaskQueueView.xaml index 842f3f11b1..d987ef272e 100644 --- a/src/MeoAsstGui/Views/TaskQueueView.xaml +++ b/src/MeoAsstGui/Views/TaskQueueView.xaml @@ -23,7 +23,7 @@ - @@ -36,7 +36,9 @@ - +