Commit Graph

165 Commits

Author SHA1 Message Date
zzyyyl
64bcac6e02 feat: 支持自定义 MatchTemplate 匹配方法 2024-07-20 12:36:02 +08:00
Weiyou Wang
e2606f4620 fix: allow CMake build MaaCore with ASST_DEBUG under macOS 2024-07-11 00:02:39 +08:00
Sherkey
666b0076d1 feat: 增加识别坍缩范式的插件,增加萨米肉鸽刷隐藏坍缩范式模式 (#9172)
### 更新功能

1. 增加`RoguelikeMode::CLP_PDS = 5`作为萨米肉鸽刷隐藏坍缩范式的模式,可且仅可用于萨米肉鸽。

在此模式下,将在每次回到关卡选择界面时检查坍缩状态,同时会优先使用带有`_collapse`后缀的战斗部署方案,也会使用特有的不期而遇和购物设置。

2. 肉鸽任务新增以下参数:
- `check_collapsal_paradigms`:是否检查坍缩范式,若`mode = 5`则默认为`true`,否则为`false`。
- `double_check_collapsal_paradigms`:是否增加对坍缩范式的检查频率,若`mode =
5`则默认为`true`,否则为`false`。
- `expected_collapsal_paradigms`:需要刷的坍缩范式,若`mode = 5`则默认为两组隐藏坍缩范式。
- `use_foldartal`:是否使用密文板,若`mode = 5`则默认为`false`,否则为`true`。

### 机制介绍

本插件将以两种不同的手段检查坍缩范式:

- 在选关界面点击屏幕中上方展开坍缩状态栏(以下称`Panel Check`);
- 观察屏幕右侧是否有坍缩范式通知(以下称`Banner Check`)。

获取坍缩值的方法多种多样,本插件考虑到了以下情况:

1. 战斗后因非完美战斗而使坍缩值增加,进行`Banner Check`。
2. 战斗后因获得收藏品而使坍缩值变动,进行`Banner Check`。
3. 在不期而遇等(MAA中失与得等节点也会触发不期而遇插件)节点中使坍缩值变动,进行`Banner Check`。
4. 再诡异行商节点中因购买收藏品而使坍缩值变动,进行`Banner Check`。
5. 因使用密文版而使坍缩值减少,进行`Banner Check`。
6. 因进入新的一层而使坍缩值增加,进行`Panel Check`。
7. 若进行`Banner
Check`时发现坍缩范式消退,因不知道会不会一次性消退两层(即便会也概率极低),会在下一次回到选关洁面的时候额外触发一次`Panel
Check`。
8. 在`double_check_collapsal_paradigms =
true`的情况下,每次回到选关界面的时候都会额外触发一次`Panel
Check`以验证是否之前有漏、多记录坍缩范式,并以回调信息的形式传回Debug信息。

**注意事项**

1.
为了防止错过坍缩范式通知,会适当sleep,若检测到屏幕下方有`正在提交反馈至神经`的提示的话会额外sleep。所以开启检查坍缩范式的功能后整体流程会变得拖沓一些(目前在我本人可接受范围内)。
2.
在`RoguelikeMode::CLP_PDS`模式下,获得不需要的坍缩范式会直接重开,遇到需要的坍缩范式则会停止任务。理论上可能在不期而遇事件中获得了不需要的坍缩范式,但因为右上角没有退出按钮而没有及时重开。但我目前没有观察到这样的情形,故没有做处理。不放心的话请设置`double_check_collapsal_paradigms
= true`,等回到选关界面后再检查一遍已获得的坍缩范式。
3.
无论如何,强烈推荐开启`double_check_collapsal_paradigms`。慢点就慢点,求稳才是关键。在我本人测试的过程中,遇到过一两次遗漏`Banner
Check`的情况(截图错过了右上角通知),幸好在额外触发的`Panel
Check`中补上了。怀疑是系统卡顿或网络延迟所致(我在澳大利亚用着MBP2017开着MUMU+MAA刷官服,时间长了后模拟器本身就偶尔会卡住)。

### 回调信息

当`check_collapsal_paradigms == true`时会输出类似于下方的回调信息:
```C++
callback(AsstMsg::SubTaskExtraInfo, json::object { 
    { "what", "RoguelikeCollapsalParadigms" },
    { "details", json::object {
        { "cur", "目空一些" },
        { "deepen_or_weaken", 1 },
        { "prev", "睁眼瞎" }
    } }
});
```
其中`deepen_or_weaken = 1`代表坍缩范式从`prev`加深至`cur`,若`deepen_or_weaken =
-1`则代表坍缩范式消退。
偶尔也会有测试信息以`deepen_or_weaken = 0`被传回,主要用于我自己测试用。

### 任务设置范例

以下是我的测试用任务设置:
```Python
asst.append_task('Roguelike', {
    'theme': 'Sami',
    'mode': 5,
    'investment_enabled': False,
    'squad': '远程战术分队',
    'roles': '稳扎稳打',
    'core_char': '维什戴尔',
    # 'expected_collapsal_paradigms': ['趋同性消耗'],
    # 'check_collapsal_paradigms': True, # 在mode = 5时默认为True
    double_check_collapsal_paradigms': True, # 建议打开,以防万一错过了什么
    # 'use_foldartal': False # 在mode = 5时默认为False
})
```
建议在难度10刷隐藏坍缩,我只做了第一层的漏怪作业且以`维什戴尔`为战斗核心。

### To-Do(s)

- [ ] 补充相关文档 (要不就把上述文字作为文档吧?)

### Need Help

- [ ] 外服适配
- [ ] UI适配

---

小孩子不懂事乱写的代码,请各位多指教。
2024-07-07 20:56:14 +08:00
Fryze
de4c6ea6b5 fix: depot analyzer to detect multipliers for KR (#9343) 2024-06-11 18:39:17 +09:00
Weiyou Wang
ed56d04968 refactor: matcher result will contain the name of the matched template 2024-06-10 18:49:39 +10:00
status102
1a1cdd0eb1 perf: 在掉落不超出一页时,不额外滑动掉落列表及截图拼接 2024-06-02 12:17:43 +08:00
Horror Proton
ec4242dbbb chore: include path of onnxruntime>=1.16 2024-05-25 12:32:22 +08:00
status102
483d696d58 fix: 修复#7848 2024-03-12 22:50:14 +08:00
status102
1bcb9820dc perf: TemplDecOCRer的RegionOCRer引入use_raw 2024-03-11 10:50:17 +08:00
zzyyyl
72fca8bf74 feat: 根据灰度二值化关卡名后再识别 (#7848)
feat: RegionOCRer 允许设置参数使 OCR 识别时的图片为二值化的;关卡名二值化后再识别
2024-03-08 08:59:10 +08:00
status102
db0c6d63c8 Revert "perf: 优化仓库识别速度 (#8113)"
This reverts commit a1f16e2d55.
2024-03-06 22:13:52 +08:00
FreeSky-X
a1f16e2d55 perf: 优化仓库识别速度 (#8113)
* perf:仓库识别

* perf:仓储识别

* fix:depot遗漏材料

* fix:ci集成

* fix:定位得分低

* feat: update analyze_all_items, format code

---------

Co-authored-by: Horror Proton <107091537+horror-proton@users.noreply.github.com>
2024-03-01 21:29:41 +08:00
Horror Proton
6e949fb47d fix: fix oper rect in InfrastOperImageAnalyzer
fix https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/8377
2024-02-21 18:23:28 +08:00
Horror Proton
2ed991dc2f fix: fix oper rect in InfrastOperImageAnalyzer
fix https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/8362
2024-02-20 17:13:52 +08:00
status102
a5a5cb4209 chore: 待部署区识别debug时m_image_draw增加冷却中文本 2024-02-18 22:44:31 +08:00
uye
63d1625f4b feat: 基建领取专精功能 (#7754)
close #503
link to #7164 

@status102
2024-02-03 23:00:51 +08:00
uye
bdf43752c1 perf: 优化自动战斗部署栏识别条件,保全增加节能模式 (#8044)
* perf: 优化保全部署栏识别条件,增加节能模式

* fix: equal error

* chore: 跳过update改为sleep

* perf: 优化保全逻辑

* chore: 仅在开局识别干员部署费用
2024-01-21 15:30:37 +08:00
youqii
fb149b3770 feat: 基建自动领取专精 2024-01-07 12:02:23 +08:00
status102
45fc6c7b64 fix: 修复部分情况下,关卡掉落识别关卡名出错 2024-01-02 15:33:07 +08:00
status102
4210cba666 fix: 修复部分情况下,关卡掉落识别关卡名出错 2023-12-31 16:51:03 +08:00
David
cb5d165cc3 style: fix typo proced-proceed (#7771) 2023-12-26 10:30:00 +08:00
status102
6474fe092f Revert 基建新增领取专精功能 (#7624)
* Revert "fix: 基建换班-继续专精 参数字段名格式不一致"

This reverts commit 341273e44f.

* Revert "chore: 部分客户端未支持的功能添加注释"

This reverts commit 186584321e.

* Revert "fix: 修复基建训练室-继续训练字符串键值冲突"

This reverts commit bf0f85eef0.

* Revert "feat: 基建新增领取专精功能 (#7164)"

This reverts commit ceb6b6aced.
2023-12-15 16:23:11 +08:00
youqii
ceb6b6aced feat: 基建新增领取专精功能 (#7164)
close #503

Co-authored-by: David <56174894+Constrat@users.noreply.github.com>
Co-authored-by: Sherkey <57581480+SherkeyXD@users.noreply.github.com>
Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>
2023-12-14 10:29:41 +08:00
status102
55bfc531ae fix: 修复待部署区干员费用不识别的错误 2023-11-22 09:36:34 +08:00
Horror Proton
5061fd92dc fix: update threshold for StageDropsImageAnalyzer
fix https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/7282
2023-11-13 10:59:44 +08:00
Horror Proton
579d090646 chore: move image merging to StageDrop analyzer 2023-11-08 18:47:05 +08:00
Horror Proton
466e171682 chore: revert some changes on analyze_baseline 2023-11-05 23:08:34 +08:00
Horror Proton
eac8262cf9 feat: ability to recognize long drop list 2023-11-05 23:08:34 +08:00
MistEO
0dace9ca5c feat: 支持掉落次数识别+上传 2023-11-02 23:23:17 +08:00
zzyyyl
6e855542c9 fix: 修复因 ocr_replace 与 m_eq_classes 冲突导致的 ocr 识别失效的问题 (#6867)
fix #6629
2023-10-12 19:59:44 +08:00
zzyyyl
91d0f550b9 perf: 优化 OperBox 相关代码 2023-10-12 15:19:41 +08:00
zzyyyl
4f9b7884a9 debug: 增加一些非法情况的截图 2023-10-11 19:02:57 +08:00
zzyyyl
093ef47b38 fix: 修复因 ocr_replace 与 m_eq_classes 冲突导致的 ocr 识别失效的问题 2023-10-11 18:10:41 +08:00
youqii
35ac1c90b9 feat: 优化任务逻辑 2023-10-05 20:01:28 +08:00
Horror Proton
d233ace08e fix: fix crash caused by Matcher::set_task_info
fix: https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/6654
2023-10-02 21:01:02 +08:00
zzyyyl
b2dbdf8f19 fix: 尝试修复掉落识别闪退的问题 2023-10-02 20:27:38 +08:00
MistEO
d674a14f7f fix: 尝试修复基建的模板匹配错误 2023-10-02 16:44:34 +08:00
zzyyyl
8df318fc3f fix: 修复 templ size is too large 时闪退的问题
fix #6639
2023-10-02 15:11:04 +08:00
MistEO
20233ec7ad feat: 支持多模板匹配,任一达到阈值即视为命中 (#6608) 2023-10-02 11:37:40 +08:00
Horror Proton
c77021570c fix: improve ocr roi in DepotImageAnalyzer
fix: https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/6598
fix: https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/5586
2023-10-02 01:19:41 +08:00
MistEO
41d0c507da feat: 支持多模板匹配,任一达到阈值即视为命中
MultiMatcher 暂不支持,仅使用第一个模板
2023-10-01 13:54:56 +08:00
zzyyyl
69fad6f127 style: code format 2023-09-30 23:44:34 +08:00
MistEO
1244ad656b feat: 基建支持加工站 2023-09-11 22:40:34 +08:00
zzyyyl
e18fb89fae fix: 修复因部分皮肤造成的关卡难度识别问题 2023-09-11 13:58:31 +08:00
MistEO
67da458bc2 fix: 将 OCR replace 改为有序 2023-06-29 10:11:26 +08:00
MistEO
8c7c4ebe27 perf: Move some parameters of operator identification to json
#4993
2023-05-30 11:01:55 +08:00
MistEO
210120becb fix: 修复干员识别干员名限定不生效问题 2023-05-25 12:21:13 +08:00
MistEO
4c2cc10145 fix: 再次修复干员识别干员名替换不生效问题 2023-05-25 12:19:05 +08:00
MistEO
fdfbabe08b fix: 修复干员识别偶尔滑动失效提前结束的问题;并少存一点日志图
fix https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/4628
2023-05-21 00:56:57 +08:00
MistEO
5950ee8e5f fix: 修复干员识别replace不生效的问题 2023-05-20 11:01:31 +08:00