Release v5.23.0 (#13754)

This commit is contained in:
uye
2025-08-17 19:46:38 +08:00
committed by GitHub
18 changed files with 2498 additions and 24 deletions

View File

@@ -1,7 +1,55 @@
## v5.23.0-beta.2
## v5.23.0
### 夏活第二弹 | Highlight
本次更新带来了大家期盼已久的多项适配,一起来看看吧:
#### 集成战略 #6「岁的界园志异」
本次更新我们对界园肉鸽做了多项适配:
1. 现在牛牛支持刷开局策略了,博士可以用来自动刷热水壶等等~
2. 刷等级策略下,牛牛支持进入道中的树洞层,而不是直接跳过。
#### 其他方面
本次更新,牛牛支持对新的动态主题「梦乡」进行识别,博士们可以尽情享受两年前的那个夏天啦~
以及~~虽然不知道有什么作用,但~~支持对设置的各个小节进行手动排序,拖动设置页左侧目录即可。
----
#### [CN ONLY] Integrated Strategies #6 "Sui's Garden of Grotesqueries"
In this update, we've made several adaptations for the Garden I.S.:
1. MAA now supports "Grind to obtain Hot Water Kettle or Elite II Operators" strategies, allowing Doctors to automatically obtain Hot Water Kettle~
2. Under Gaining Experience Points strategies, MAA can now enter the Wonderland Encounter(误入奇境) during the run instead of skipping them directly.
#### Other Aspects
In this update, MAA now supports recognition of the new dynamic theme "Dreamland", allowing Doctors to fully relive that summer from two years ago~
Additionally~~though NiuNiu isnt quite sure what purpose it serves, but~~ manual sorting of various sections in the settings is now supported. Simply drag the directory on the left side of the settings page.
----
以下是详细内容:
### 新增 | New
* 新保全作业 (#13754) @Saratoga-Official
* 界园肉鸽烧水 (#13690) @SherkeyXD @ABA2396
* 支持 `梦乡` 主题 (#13693) @ABA2396
* 优化标题栏显示效果 @ABA2396
* 版本后面也跟个日期 @ABA2396
* 幸运掉落用家具零件代替显示 @ABA2396
* `ADB 连接失败时尝试启动模拟器` 勾选框在 `连接设置``启动设置` 中同时显示 @ABA2396
* 支持 MuMu 5555 端口使用控制台退出与截图增强 @ABA2396
* 反转网络桥接提示框的按钮位置,避免误勾选 @ABA2396
* 自动编队支持指定使用编队 @ABA2396
* 调整自动战斗页面布局 @ABA2396
* 调整编队界面翻译 @ABA2396
* 适配界园树洞节点 (#13552) @travellerse
* 设置排序 (#13699) @ABA2396
* 调整自动战斗页面布局 @ABA2396
@@ -9,26 +57,85 @@
### 改进 | Improved
* 不同更新渠道加个描述 (#13734) @status102 @HX3N
* 自动战斗使用编队选择框UI @status102
* 合并 regex @status102
* 仓库识别改用二值化后的非 char 模型识别 (#13667) @ABA2396
* 繁中服基建 + 保全派駐 7 相關更新 (#13643) @momomochi987
* 更新 nuke 版本与构建 @SherkeyXD
* 更新 MaaBuilder 中使用的过时方法 @SherkeyXD
* 代理倍率、肉鸽难度 使用 `不切换` 代替 `当前``不使用` 以符合实际逻辑 (#13612) @status102 @HX3N @Constrat
* wpf 肉鸽难度初始化优化 @status102
* 不同更新渠道加个描述 (#13734) @status102 @momomochi987 @Constrat @HX3N
* 自动战斗使用编队选择框 UI @status102
* 一键长草任务列表翻转按钮下拉框样式优化 @status102
### 修复 | Fix
* 萨米肉鸽刷坍缩范式闪退 @ABA2396
* 修复界园树洞无可用节点时任务失败 (#13741) @travellerse
* 修复萨卡兹肉鸽部分字段无法正确识别的问题 (#13691) @THSLP13
* 无法区分界园 3/5 层 boss @ABA2396
* 因招募动画卡预见密文板 (#13680) @ABA2396
* 修修 ocr bin threshold 被 task info 错误覆盖 @status102
* 获得排异反应的干员无法选择技能 @ABA2396
* 移除使用 empty.png 当 JustReturn 屎 (#13652) @status102
* 识别错误等待 +200ms @status102
* 肉鸽投资可能由于存款被长期遮挡导致提前退出 @status102
* 未启用备选关卡也会输出剿灭提醒 @status102
* 合成密文板未进入合成页面导致卡死 @ABA2396
* 修复 fody 一直报 warning @SherkeyXD
* 商店因为动画卡在源石锭不足 @ABA2396
* 理智药背景干扰使用数量识别 @status102
* 第一层没出商店时会在第三层才退出 @ABA2396
* 肉鸽任务高级设置界面 xaml 错误修复 @status102
* 肉鸽种子选择框 visibility 判断更新 @status102
* 每次截图测试前断开模拟器连接以获取最新的最快截图耗时 @ABA2396
* 锻冶旧迹 导航识别错误 @ABA2396
* 追加自定干员职业与最后编入干员职业相同时, 误展开子职业列表 @status102
* 肉鸽烧水选择当前难度时禁用 0 难烧水切换 @status102
* 移除未使用 @status102
* 肉鸽投资在单次投资达到 999 时可能无法退出 @status102
* 修复掉落上报消息类型没有在 Python 层定义导致外部脚本报错的问题 (#13723) @husy8
* debug version 拿不到活动关卡 @ABA2396
* 干员识别输出遗漏干员持有情况、潜能 @status102
* 剿灭失败不报错 @status102
* 傀影卡在无法进行初始招募的深入探索月度小队 @ABA2396
* 傀影卡在无法进行初始招募的深入探索月度小队 @ABA2396
* schema error @ABA2396
* add slight delay before `InfrastEnteredFlag' in case of stutters in base rendering @Constrat
* EN Phantom IS font change nextlevel fix @Constrat
* start plugin task not enough delay (#13623) @Constrat
### 文档 | Docs
* 日语文档翻译 (#13713) @vcfch843875
* 修正 `刷理智` 文档表述错误 (#13745) @vcfch843875
* MuMu 5.0 文档介绍 (#13658) @Rbqwow
* 文档站小修复 (#13659) @Rbqwow
* 文档日语化翻译 (#13713) @vcfch843875
### 其他 | Other
* 迁移 UpdateStageList @status102
* _stageManager 迁移 @status102
* binThreshold, useRaw 直接写入 task @status102
* 繁中服「出蒼白海」導航入口文字調整 (#13681) @momomochi987
* 调整 LDExtras 文件位置 @ABA2396
* 自动战斗存图阈值改为0.75 @ABA2396
* 刷理智任务指定材料不再使用双属性保存,仅保存物品 id @status102
* 密文板加一个进入后检查 @ABA2396
* 繁中服「出蒼白海」活動導航 (#13644) @momomochi987
* 添加 null 检测 @SherkeyXD
* 合并 ocrBinThreshold (#13635) @status102
* gitignore 添加 MaaBuilder 相关内容 @SherkeyXD
* TestLinkAndGetImage 不允许同时运行 @ABA2396
* 模板轮换 (#13625) @status102
* 基建设施排序初始化 @status102
* wpf 任务名字段统一 @status102
* 基建设施种类 @status102
* CustomTask 存储 @status102
* 浅调一下初始化顺序 @status102
* KR tweak copilot option translation @HX3N
* catch 一下企鹅物流的上报错误请求,避免影响重试逻辑 @ABA2396
* Revert "ci: bump the github-actions group in /.github/workflows with 2 updates" (#13707) @MistEO
* YostarKR CharsNameOcrReplace ocr edit @HX3N
* rename MinimumFeatureLevel to minimumFeatureLevel @SherkeyXD
* add copyright header @SherkeyXD
* add nullable flags @SherkeyXD
* add missing png suffix to templates @SherkeyXD

View File

@@ -111,7 +111,7 @@ MAA は最大で指定回数まで戦闘を実行します。
例:現在の理性が 100、ステージ消費が 6 の場合
- 周回数指定を 10、連戦回数を 4 に設定:`2作戦開始回数 × 4連戦 = 8 回` の作戦を実行(`2 × floor(10 / 4) = 8`)。消費理性は `8 × 6 = 48`。さらに 4 連戦を 1 回行うと合計 12 回となり上限 10 を超えるため実行せず、8 回で終了。
- 周回数指定を 10、連戦回数を 4 に設定:`2作戦開始回数 × 4連戦 = 8 回` の作戦を実行(`floor(10 / 4) × 4 連戦 = 8`)。消費理性は `8 × 6 = 48`。さらに 4 連戦を 1 回行うと合計 12 回となり上限 10 を超えるため実行せず、8 回で終了。
- 周回数指定を 10、連戦回数を AUTO に設定:`6 連戦 × floor(10 / 6) + (10 % 6)` となり、`6 連戦 1 回 + 4 連戦 1 回 = 10 回` を実行。消費理性は `10 × 6 = 60`
### スクショ認識

View File

@@ -111,8 +111,8 @@ MAA 将最多执行指定次数的战斗。
示例: 假设当前 100 理智, 关卡消耗 6 理智
- 指定次数设为 10, 代理倍率设为 4: 将执行 2 (次开始行动) x 4(倍代理) = 8 次作战(2 x floor(10 / 4) = 8), 消耗 8 x 6 = 48 理智。此时若再进行一次4倍代理则达到 12 次作战, 超过设定的 10 次, 故不再执行, 以 8 次作战结束任务
- 指定次数设为 10, 代理倍率设为 AUTO: 将执行 一次6倍代理 + 一次4倍代理 = 10 次作战(6 * floor(10 / 6) + (10 % 6) = 10), 消耗 10 x 6 = 60 理智
- 指定次数设为 10, 代理倍率设为 4: 将执行 2 (次开始行动) x 4(倍代理) = 8 次作战(floor(10 / 4) x 4 = 8), 消耗 8 x 6 = 48 理智。此时若再进行一次4倍代理则达到 12 次作战, 超过设定的 10 次, 故不再执行, 以 8 次作战结束任务
- 指定次数设为 10, 代理倍率设为 AUTO: 将执行 一次6倍代理 + 一次4倍代理 = 10 次作战(6 x floor(10 / 6) + (10 % 6) = 10), 消耗 10 x 6 = 60 理智
### 掉落识别

View File

@@ -114,8 +114,8 @@ MAA 將最多執行指定次數的戰鬥。
例: 假設當前 100 理智, 關卡消耗 6 理智
- 指定次數設為 10, 代理倍率設為 4: 將執行 2 (次開始行動) x 4(倍代理) = 8 次作戰(2 x floor(10 / 4) = 8), 消耗 8 x 6 = 48 理智。此時若再進行一次4倍代理則達到 12 次作戰, 超過設定的 10 次, 故不再執行, 以 8 次作戰結束任務
- 指定次數設為 10, 代理倍率設為 AUTO: 將執行 一次6倍代理 + 一次4倍代理 = 10 次作戰(6 * floor(10 / 6) + (10 % 6) = 10), 消耗 10 x 6 = 60 理智
- 指定次數設為 10, 代理倍率設為 4: 將執行 2 (次開始行動) x 4(倍代理) = 8 次作戰(floor(10 / 4) × 4 = 8), 消耗 8 x 6 = 48 理智。此時若再進行一次4倍代理則達到 12 次作戰, 超過設定的 10 次, 故不再執行, 以 8 次作戰結束任務
- 指定次數設為 10, 代理倍率設為 AUTO: 將執行 一次6倍代理 + 一次4倍代理 = 10 次作戰(6 × floor(10 / 6) + (10 % 6) = 10), 消耗 10 x 6 = 60 理智
### 掉落识别

View File

@@ -453,6 +453,11 @@
"JieGarden@Roguelike@RoutingAction": {
"algorithm": "JustReturn"
},
"JieGarden@Roguelike@RoutingAction-ClickRemainingCandleFlame": {
"doc": "用于替换 JieGarden@Roguelike@RoutingAction 的 BaseTask",
"algorithm": "JustReturn",
"next": ["JieGarden@Roguelike@ClickRemainingCandleFlame"]
},
"JieGarden@Roguelike@RoutingAction-ExitThenAbandon": {
"doc": "用于替换 JieGarden@Roguelike@RoutingAction 的 BaseTask",
"algorithm": "JustReturn",

View File

@@ -217,14 +217,14 @@
"Sami@Roguelike@StageFerociousPresage"
],
"ocrReplace": [
["Sami@Roguelike@OnStage_0", "深埋迷境"],
["Sami@Roguelike@OnStage_1", "初霜湖泽"],
["Sami@Roguelike@OnStage_2", "密静林地"],
["Sami@Roguelike@OnStage_3", "昧明冻土"],
["Sami@Roguelike@OnStage_4", "积冰岩骸"],
["Sami@Roguelike@OnStage_5", "无瑕花园"],
["Sami@Roguelike@OnStage_6", "远见之构"],
["Sami@Roguelike@OnStage_7", "永恒之尘"]
["Sami@Roguelike@OnStage_0.png", "深埋迷境"],
["Sami@Roguelike@OnStage_1.png", "初霜湖泽"],
["Sami@Roguelike@OnStage_2.png", "密静林地"],
["Sami@Roguelike@OnStage_3.png", "昧明冻土"],
["Sami@Roguelike@OnStage_4.png", "积冰岩骸"],
["Sami@Roguelike@OnStage_5.png", "无瑕花园"],
["Sami@Roguelike@OnStage_6.png", "远见之构"],
["Sami@Roguelike@OnStage_7.png", "永恒之尘"]
],
"text": []
},

View File

@@ -2500,8 +2500,7 @@
"Infrast@ReturnButtons#next",
"Infrast@CloseAnnos#next",
"Infrast@OfflineConfirm"
],
"postDelay": 1000
]
},
"Infrast@MainThemes": {
"next": ["InfrastBegin#next"]

View File

@@ -326,7 +326,10 @@ void asst::RoguelikeRoutingTaskPlugin::bosky_decide_and_click()
}
if (!found) {
Log.warn(__FUNCTION__, "| no open unvisited nodes available");
Log.info(__FUNCTION__, "| no open unvisited nodes available");
Task.set_task_base(
"JieGarden@Roguelike@RoutingAction",
"JieGarden@Roguelike@RoutingAction-ClickRemainingCandleFlame");
return;
}
int gx = m_bosky_map.get_node_x(chosen);
@@ -358,7 +361,6 @@ void asst::RoguelikeRoutingTaskPlugin::bosky_decide_and_click()
// 根据节点类型判断 Task.set_task_base base_task_name
switch (m_bosky_map.get_node_type(chosen)) {
case RoguelikeNodeType::YiTrader:
Task.set_task_base("JieGarden@Roguelike@RoutingAction", "JieGarden@Roguelike@RoutingAction-StageYiTraderEnter");
break;
case RoguelikeNodeType::Disaster:

View File

@@ -377,7 +377,8 @@ bool asst::RoguelikeCollapsalParadigmTaskPlugin::new_zone() const
if (!matcher.analyze()) {
return false;
}
std::string zone = m_zone_dict.at(matcher.get_result().templ_name);
auto& name = matcher.get_result().templ_name;
std::string zone = m_zone_dict.at(name);
if (zone != m_zone) {
m_zone = zone;
#ifdef ASST_DEBUG