Compare commits

...

38 Commits

Author SHA1 Message Date
Constrat
ee566c5fb7 chore: add coppers to resource updater 2026-02-22 00:13:53 +01:00
Constrat
40d5bdd560 fix: IS6 EN yostar decided to finally fix the tongbaos releasing an official translation + resource updater copper-ability 2026-02-22 00:13:29 +01:00
status102
01a2329d18 fix(wpf): 修复自定义基建计划在迁移时基建计划选择转换错误 2026-02-21 19:58:51 +08:00
HX3N
c52cf81b94 chore: YostarKR SSS#9 SSSBuffChoose
and GO-OpenOcr
2026-02-21 18:02:25 +09:00
Constrat
2a9c963fef fix: EN Operator OCR roi fixes + skadi alter simplification 2026-02-20 23:45:10 +01:00
MistEO
0817bc1c9f feat: 适配maafw新Win32触控方式 (#15755) 2026-02-20 23:44:50 +08:00
Constrat
c36e5cfd9a fix: IS6 EN encounter regex post ROI increase 2026-02-20 16:04:14 +01:00
undefined
3fbda5b98d fix: touch screen support for version updated page (#15747) 2026-02-20 17:07:21 +08:00
uye
50cbc2e10d feat: PC 提示新增分辨率要求
close #15749
2026-02-20 16:59:38 +08:00
Constrat
30dd7d0afa fix: invert dice refresh with invest system priority in IS3 (#15740) 2026-02-20 16:52:33 +08:00
status102
80280bb62d fix: 小工具=-公招识别3~5星设置时间未遵循设置 2026-02-20 11:24:07 +08:00
SherkeyXD
e7362d2d35 feat: PC端忽略启动客户端设置 2026-02-19 14:17:04 +08:00
uye
f77d85f542 Release v6.3.2 (#15737)
## Summary by Sourcery

更新公招工具箱的时间选项、改进干员列表排序与电源操作的交互体验,并简化旧版 Windows 支持文档。

新功能:
- 在工具箱界面中为 3★–5★ 干员新增可配置的公招时间设置,并持久化到配置中。

缺陷修复:
- 确保自定义剿灭关卡在执行战斗任务时被正确应用,并在关卡列表中正确显示。
- 改进基建收取任务的异常处理,在出错时关闭线索发送对话框并正常停止任务。
- 修复公招时间选择器的绑定问题,确保当底层时间变化时,小时与分钟选择器能够保持同步。

优化改进:
- 优化与公招相关的视图模型属性,使用更简洁的自动属性模式,并以配置作为默认值来源。
- 以稀有度、精英化阶段、等级、潜能和 ID 的固定顺序对干员列表进行确定性排序,使已拥有与未拥有干员更易浏览。
- 用可取消的确认对话框替代固定延时的睡眠/休眠提示,将主窗口置于前台并记录操作结果。

文档:
- 在所有支持的语言中简化并统一常见问题(FAQ)部分,明确说明不再支持 Windows 7/8/8.1,并移除过时的版本说明和解决方案指引。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Update recruitment toolbox timing options, improve operator box sorting
and power actions UX, and simplify legacy Windows support documentation.

New Features:
- Add configurable recruitment time settings for 3★–5★ operators within
the toolbox UI, persisted in configuration.

Bug Fixes:
- Ensure custom annihilation stages are correctly applied and reflected
in the stage list when running battle tasks.
- Improve infrastructure reception task failure handling by closing the
clue sending dialog and stopping cleanly on errors.
- Fix recruitment time picker bindings so hour and minute selectors stay
in sync when the underlying time changes.

Enhancements:
- Refine recruit-related view model properties to use simpler
auto-property patterns with configuration-backed defaults.
- Sort operator box lists deterministically by rarity, promotion, level,
potential, and ID to make owned and unowned operators easier to browse.
- Replace fixed-delay sleep/hibernate prompts with a cancelable
confirmation dialog that brings the main window to the foreground and
logs the result.

Documentation:
- Simplify and unify FAQ sections in all supported languages to state
that Windows 7/8/8.1 are no longer supported, removing outdated version
and workaround guidance.

</details>

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

更新公招工具箱的时间选项、改进干员列表排序与电源操作的交互体验,并简化旧版 Windows 支持文档。

新功能:
- 在工具箱界面中为 3★–5★ 干员新增可配置的公招时间设置,并持久化到配置中。

缺陷修复:
- 确保自定义剿灭关卡在执行战斗任务时被正确应用,并在关卡列表中正确显示。
- 改进基建收取任务的异常处理,在出错时关闭线索发送对话框并正常停止任务。
- 修复公招时间选择器的绑定问题,确保当底层时间变化时,小时与分钟选择器能够保持同步。

优化改进:
- 优化与公招相关的视图模型属性,使用更简洁的自动属性模式,并以配置作为默认值来源。
- 以稀有度、精英化阶段、等级、潜能和 ID 的固定顺序对干员列表进行确定性排序,使已拥有与未拥有干员更易浏览。
- 用可取消的确认对话框替代固定延时的睡眠/休眠提示,将主窗口置于前台并记录操作结果。

文档:
- 在所有支持的语言中简化并统一常见问题(FAQ)部分,明确说明不再支持 Windows 7/8/8.1,并移除过时的版本说明和解决方案指引。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Update recruitment toolbox timing options, improve operator box sorting
and power actions UX, and simplify legacy Windows support documentation.

New Features:
- Add configurable recruitment time settings for 3★–5★ operators within
the toolbox UI, persisted in configuration.

Bug Fixes:
- Ensure custom annihilation stages are correctly applied and reflected
in the stage list when running battle tasks.
- Improve infrastructure reception task failure handling by closing the
clue sending dialog and stopping cleanly on errors.
- Fix recruitment time picker bindings so hour and minute selectors stay
in sync when the underlying time changes.

Enhancements:
- Refine recruit-related view model properties to use simpler
auto-property patterns with configuration-backed defaults.
- Sort operator box lists deterministically by rarity, promotion, level,
potential, and ID to make owned and unowned operators easier to browse.
- Replace fixed-delay sleep/hibernate prompts with a cancelable
confirmation dialog that brings the main window to the foreground and
logs the result.

Documentation:
- Simplify and unify FAQ sections in all supported languages to state
that Windows 7/8/8.1 are no longer supported, removing outdated version
and workaround guidance.

</details>

</details>
2026-02-18 23:35:46 +08:00
github-actions[bot]
00e577f6d2 docs: Auto Update Changelogs of v6.3.2 (#15738)
* docs: Auto Generate Changelog of Release v6.3.2

* docs: Update CHANGELOG for v6.3.2 release

This version update includes preliminary support for the PC client, a restructured task configuration for Windows, and various enhancements and fixes across the application. Key features include the ability to add multiple tasks, color-coded task statuses, and improved operator recognition.

* docs: Update CHANGELOG for version 6.3.2

Updated CHANGELOG for version 6.3.2 with new features, improvements, fixes, and documentation updates.

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: AnnAngela <naganjue@vip.qq.com>
Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>
2026-02-18 23:35:28 +08:00
uye
6d32795ffa chore: 增加 id 格式验证 2026-02-18 20:31:39 +08:00
uye
a72571ce90 fix: 4 星公招时间显示错误 2026-02-18 20:23:16 +08:00
uye
59fa039a72 feat: 睡眠休眠前增加倒计时弹窗 2026-02-18 20:12:31 +08:00
Constrat
adb8863cf6 perf: optimize templates 2026-02-17 10:12:07 +01:00
Constrat
7bab2b2312 perf: increase score for AddOperatorTradeAggressive EN 2026-02-17 10:11:58 +01:00
Manicsteiner
b55b2c6bd6 chore: Yostar servers SSS#9 and ShamareThumbnail (#15732)
* chore: Yostar servers SSS#9 and ShamareThumbnail

* chore: KR ShamareThumbnail4.png

* chore: Shamare EN

* perf: png optimization

* chore: KR replace the incorrect template

---------

Co-authored-by: HX3N <scarlet7518@gmail.com>
Co-authored-by: Constrat <56174894+Constrat@users.noreply.github.com>
2026-02-16 23:54:22 +01:00
status102
3d46fc1d0c fix: 刷理智自定义剿灭关卡在特定情况的绑定错误 2026-02-16 17:44:15 +08:00
status102
e62a9a08a9 fix(wpf): 在禁用刷理智-自定义剿灭关卡后需要手动切换任务以刷新列表中显示的剿灭关卡, 尽管不影响实际运行 2026-02-16 15:58:01 +08:00
uye
f7f9a4f44c perf: 干员识别按照 稀有度->精英化->等级->潜能->Id 排序 2026-02-16 02:04:08 +08:00
uye
9ab3265188 perf: 优化识别工具中列表小于 5 时的显示效果 2026-02-16 01:29:23 +08:00
uye
e1572d8bba chore: 明确周计划和定时更新使用游戏时间而非现实时间 2026-02-16 00:56:52 +08:00
uye
761ea19e8b fix: 会客室任务失败重试时尝试关闭赠送线索界面
fix #15726
2026-02-16 00:36:26 +08:00
Constrat
d9ad52053b fix(wpf): English text overflow on long strings in middle column 2026-02-15 16:23:48 +01:00
SherkeyXD
1ddee84199 chore: 移除老主线导航逻辑 (#15644) 2026-02-14 15:54:33 +08:00
uye
45b89b7089 feat: 生息演算支援道具名称改为全字匹配
fix #15713
2026-02-14 15:52:52 +08:00
status102
c8a0c982b9 fix(wpf): 肉鸽开局种子无法通过Wpf设置两位数难度 2026-02-14 12:56:31 +08:00
status102
910cd47dfa fix(wpf): 小工具-公招识别 3~5星选择时间无法修改 2026-02-14 12:54:58 +08:00
status102
63d499816d fix(wpf): 小工具-干员识别 开始识别按钮启用状态绑定失效 2026-02-14 12:54:57 +08:00
status102
d734109155 fix: 自动公招任务3~5星确认时间在修改后未能刷新UI 2026-02-14 12:54:57 +08:00
github-actions[bot]
c45e6a3d10 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/22002953703
[skip changelog]
2026-02-13 21:12:26 +00:00
Goat Boring(山羊博宁88)
5e712c04eb docs: 删除一些过时内容 (#15700)
* docs: 删除一些过时内容

* docs: Apply suggestion from @sourcery-ai[bot]

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

---------

Co-authored-by: Rbqwow <55343783+Rbqwow@users.noreply.github.com>
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
2026-02-13 15:36:13 +08:00
HY
dc9c9dfee6 chore: 繁中服「夢鄉」主題 (#15699) 2026-02-13 15:34:27 +08:00
Constrat
ec7cbeeb1c fix: EN AveMujica terminal new template 2026-02-13 00:42:44 +01:00
Constrat
c3ccd36d02 fix: EN IS tentative fix increasing roi for encounter and more replace regex 2026-02-12 23:36:44 +01:00
67 changed files with 506 additions and 416 deletions

View File

@@ -1,4 +1,4 @@
## v6.3.1
## v6.3.2
### 拉电线不知天地为何物 | Highlight
@@ -65,6 +65,46 @@ We warmly welcome community developers to assist with adaptation and submit impr
以下是详细内容:
## v6.3.2
### 新增 | New
* 睡眠休眠前增加倒计时弹窗 @ABA2396
* 生息演算支援道具名称改为全字匹配 @ABA2396
### 改进 | Improved
* 干员识别按照 稀有度->精英化->等级->潜能->Id 排序 @ABA2396
* 优化识别工具中列表小于 5 时的显示效果 @ABA2396
* optimize templates @Constrat
* increase score for AddOperatorTradeAggressive EN @Constrat
### 修复 | Fix
* 4 星公招时间显示错误 @ABA2396
* 刷理智自定义剿灭关卡在特定情况的绑定错误 @status102
* 在禁用刷理智-自定义剿灭关卡后需要手动切换任务以刷新列表中显示的剿灭关卡, 尽管不影响实际运行 @status102
* 会客室任务失败重试时尝试关闭赠送线索界面 @ABA2396
* 肉鸽开局种子无法通过 Wpf 设置两位数难度 @status102
* 小工具-公招识别 3~5 星选择时间无法修改 @status102
* 小工具-干员识别 开始识别按钮启用状态绑定失效 @status102
* 自动公招任务 3~5 星确认时间在修改后未能刷新 UI @status102
* EN AveMujica terminal new template @Constrat
* EN IS tentative fix increasing roi for encounter and more replace regex @Constrat
* English text overflow on long strings in middle column @Constrat
### 文档 | Docs
* 删除一些过时内容 (#15700) @JasonHuang79
### 其他 | Other
* 增加 id 格式验证 @ABA2396
* 明确周计划和定时更新使用游戏时间而非现实时间 @ABA2396
* 移除老主线导航逻辑 (#15644) @SherkeyXD
* 繁中服「夢鄉」主題 (#15699) @momomochi987
* Yostar servers SSS#9 and ShamareThumbnail (#15732) @Manicsteiner @Constrat
## v6.3.1
### 新增 | New

View File

@@ -49,25 +49,9 @@ We cannot provide repair solutions other than reinstalling your system. Please a
For Windows N/KN (European/Korean versions), you also need to install the [Media Feature Pack](https://support.microsoft.com/en-us/topic/c1c6fffa-d052-8338-7a79-a4bb980a700a).
#### Windows 7
#### Windows 7/8/8.1
.NET 10 doesn't support Windows 7/8/8.1 systems<sup>[source](https://github.com/dotnet/core/issues/7556)</sup>, so MAA no longer supports them either. The last usable .NET 8 version is [`v5.4.0-beta.1.d035.gd2e5001e7`](https://github.com/MaaAssistantArknights/MaaRelease/releases/tag/v5.4.0-beta.1.d035.gd2e5001e7); the last usable .NET 4.8 version is [`v4.28.8`](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases/tag/v4.28.8). Self-compilation feasibility remains undetermined.
For Windows 7, before installing the two runtime libraries mentioned above, check if these patches are installed:
1. [Windows 7 Service Pack 1](https://support.microsoft.com/en-us/windows/b3da2c0f-cdb6-0572-8596-bab972897f61)
2. SHA-2 code signing patches:
- KB4474419: [Download link 1](https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/09/windows6.1-kb4474419-v3-x64_b5614c6cea5cb4e198717789633dca16308ef79c.msu), [Download link 2](http://download.windowsupdate.com/c/msdownload/update/software/secu/2019/09/windows6.1-kb4474419-v3-x64_b5614c6cea5cb4e198717789633dca16308ef79c.msu)
- KB4490628: [Download link 1](https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/03/windows6.1-kb4490628-x64_d3de52d6987f7c8bdc2c015dca69eac96047c76e.msu), [Download link 2](http://download.windowsupdate.com/c/msdownload/update/software/secu/2019/03/windows6.1-kb4490628-x64_d3de52d6987f7c8bdc2c015dca69eac96047c76e.msu)
3. Platform Update for Windows 7 (DXGI 1.2, Direct3D 11.1, KB2670838): [Download link 1](https://catalog.s.download.windowsupdate.com/msdownload/update/software/ftpk/2013/02/windows6.1-kb2670838-x64_9f667ff60e80b64cbed2774681302baeaf0fc6a6.msu), [Download link 2](http://download.windowsupdate.com/msdownload/update/software/ftpk/2013/02/windows6.1-kb2670838-x64_9f667ff60e80b64cbed2774681302baeaf0fc6a6.msu)
##### Workaround for .NET 8 applications running abnormally on Windows 7 [#8238](https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/8238)
When running .NET 8 applications on Windows 7, abnormal memory usage can occur. Follow these steps to mitigate it. Windows 8/8.1 hasn't been tested; if similar issues occur, please open an Issue to remind us to update the documentation.
1. Open `Computer`, right-click in empty space, click Properties, click `Advanced system settings` on the left, and click `Environment Variables`.
2. Create a new system variable with name `DOTNET_EnableWriteXorExecute` and value `0`.
3. Restart your computer.
.NET 10 doesn't support Windows 7/8/8.1 systems<sup>[source](https://github.com/dotnet/core/issues/7556)</sup>, so MAA no longer supports them either.
## Connection errors

View File

@@ -49,25 +49,9 @@ winget install "Microsoft.VCRedist.2015+.x64" --override "/repair /passive /nore
Windows N/KNヨーロッパ/韓国)の場合、[メディア機能パック](https://support.microsoft.com/ja-jp/topic/c1c6fffa-d052-8338-7a79-a4bb980a700a)をインストールする必要があります。
#### Windows 7 関連
#### Windows 7 / 8 / 8.1 関連
.NET 10 は Windows 7 / 8 / 8.1 システムをサポートしていないため<sup>[ソース](https://github.com/dotnet/core/issues/7556)</sup>、MAA も同様にサポートしていません。最後に利用可能な .NET 8 バージョンは [`v5.4.0-beta.1.d035.gd2e5001e7`](https://github.com/MaaAssistantArknights/MaaRelease/releases/tag/v5.4.0-beta.1.d035.gd2e5001e7) です。最後に利用可能な .NET 4.8 バージョンは [`v4.28.8`](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases/tag/v4.28.8) です。自己コンパイルの実現可能性はまだ確認されていません。
Windows 7 の場合、上記の 2 つのランタイムライブラリをインストールする前に、以下のパッチがインストールされているかどうかを確認する必要があります:
1. [Windows 7 Service Pack 1](https://support.microsoft.com/ja-jp/windows/windows-7-service-pack-1-sp1-%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B-b3da2c0f-cdb6-0572-8596-bab972897f61)
2. SHA-2 コード署名:
- KB4474419[ダウンロードリンク1](https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/09/windows6.1-kb4474419-v3-x64_b5614c6cea5cb4e198717789633dca16308ef79c.msu)、[ダウンロードリンク2](http://download.windowsupdate.com/c/msdownload/update/software/secu/2019/09/windows6.1-kb4474419-v3-x64_b5614c6cea5cb4e198717789633dca16308ef79c.msu)
- KB4490628[ダウンロードリンク1](https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/03/windows6.1-kb4490628-x64_d3de52d6987f7c8bdc2c015dca69eac96047c76e.msu)、[ダウンロードリンク2](http://download.windowsupdate.com/c/msdownload/update/software/secu/2019/03/windows6.1-kb4490628-x64_d3de52d6987f7c8bdc2c015dca69eac96047c76e.msu)
3. Platform Update for Windows 7DXGI 1.2、Direct3D 11.1KB2670838[ダウンロードリンク1](https://catalog.s.download.windowsupdate.com/msdownload/update/software/ftpk/2013/02/windows6.1-kb2670838-x64_9f667ff60e80b64cbed2774681302baeaf0fc6a6.msu)、[ダウンロードリンク2](http://download.windowsupdate.com/msdownload/update/software/ftpk/2013/02/windows6.1-kb2670838-x64_9f667ff60e80b64cbed2774681302baeaf0fc6a6.msu)
##### .NET 8 アプリケーションが Windows 7 で異常に動作する場合の緩和策 [#8238](https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/8238)
Windows 7 で .NET 8 アプリケーションを実行すると、メモリ使用量が異常になる問題があります。以下の緩和策を参照してください。Windows 8/8.1 はテストされていません。同じ問題がある場合は、ドキュメントを更新するために Issue を提出してください。
1. `コンピュータ` を開き、空白部分を右クリックしてプロパティをクリックし、左側の `システムの詳細設定` をクリックし、`環境変数` をクリックします。
2. 新しいシステム変数を作成し、変数名を `DOTNET_EnableWriteXorExecute`、変数値を `0` に設定します。
3. コンピュータを再起動します。
.NET 10 は Windows 7 / 8 / 8.1 システムをサポートしていないため<sup>[ソース](https://github.com/dotnet/core/issues/7556)</sup>、MAA も同様にサポートしていません。
#### 公式統合パック(確信)

View File

@@ -49,25 +49,9 @@ winget install "Microsoft.VCRedist.2015+.x64" --override "/repair /passive /nore
Windows 8/8.1/10/11 N/KN(유럽/한국) 버전을 사용하는 경우, [미디어 기능 팩](https://support.microsoft.com/ko-kr/topic/c1c6fffa-d052-8338-7a79-a4bb980a700a)을 설치해야 합니다.
#### Windows 7 관련
#### Windows 7 / 8 / 8.1 관련
.NET 10은 Windows 7 / 8 / 8.1 시스템을 지원하지 않으므로<sup>[출처](https://github.com/dotnet/core/issues/7556)</sup>, MAA도 더 이상 지원하지 않습니다. 마지막으로 사용 가능한 .NET 8 버전은 [`v5.4.0-beta.1.d035.gd2e5001e7`](https://github.com/MaaAssistantArknights/MaaRelease/releases/tag/v5.4.0-beta.1.d035.gd2e5001e7)입니다. 마지막으로 사용 가능한 .NET 4.8 버전은 [`v4.28.8`](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases/tag/v4.28.8)입니다. 자체 컴파일의 실현 가능성은 아직 확인되지 않았습니다.
Windows 7의 경우, 위에서 언급한 두 개의 런타임 라이브러리를 설치하기 전에 다음 패치가 설치되어 있는지 확인해야 합니다:
1. [Windows 7 Service Pack 1](https://support.microsoft.com/ko-kr/windows/b3da2c0f-cdb6-0572-8596-bab972897f61)
2. SHA-2 코드 서명 패치:
- KB4474419[다운로드 링크 1](https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/09/windows6.1-kb4474419-v3-x64_b5614c6cea5cb4e198717789633dca16308ef79c.msu)、[다운로드 링크 2](http://download.windowsupdate.com/c/msdownload/update/software/secu/2019/09/windows6.1-kb4474419-v3-x64_b5614c6cea5cb4e198717789633dca16308ef79c.msu)
- KB4490628[다운로드 링크 1](https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/03/windows6.1-kb4490628-x64_d3de52d6987f7c8bdc2c015dca69eac96047c76e.msu)、[다운로드 링크 2](http://download.windowsupdate.com/c/msdownload/update/software/secu/2019/03/windows6.1-kb4490628-x64_d3de52d6987f7c8bdc2c015dca69eac96047c76e.msu)
3. Platform Update for Windows 7DXGI 1.2、Direct3D 11.1,KB2670838[다운로드 링크 1](https://catalog.s.download.windowsupdate.com/msdownload/update/software/ftpk/2013/02/windows6.1-kb2670838-x64_9f667ff60e80b64cbed2774681302baeaf0fc6a6.msu)、[다운로드 링크 2](http://download.windowsupdate.com/msdownload/update/software/ftpk/2013/02/windows6.1-kb2670838-x64_9f667ff60e80b64cbed2774681302baeaf0fc6a6.msu)
##### .NET 8 애플리케이션이 Windows 7에서 비정상적으로 실행되는 문제 완화 조치 [#8238](https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/8238)
Windows 7에서 .NET 8 애플리케이션을 실행할 때 메모리 사용량이 비정상적으로 증가하는 문제가 있습니다. 아래의 완화 조치를 참조하세요. Windows 8/8.1은 테스트되지 않았습니다. 동일한 문제가 있는 경우, 문서를 업데이트할 수 있도록 Issue를 제출해 주세요.
1. `컴퓨터`를 열고 빈 공간을 마우스 오른쪽 버튼으로 클릭하여 속성을 클릭하고, 왼쪽의 `고급 시스템 설정`을 클릭한 다음 `환경 변수`를 클릭합니다.
2. 새 시스템 변수를 만들고, 변수 이름을 `DOTNET_EnableWriteXorExecute`, 변수 값을 `0`으로 설정합니다.
3. 컴퓨터를 재시작합니다.
.NET 10은 Windows 7 / 8 / 8.1 시스템을 지원하지 않으므로<sup>[출처](https://github.com/dotnet/core/issues/7556)</sup>, MAA도 더 이상 지원하지 않습니다.
## 연결 오류

View File

@@ -49,25 +49,9 @@ winget install "Microsoft.VCRedist.2015+.x64" --override "/repair /passive /nore
对于 Windows N/KN欧洲/韩国),还需安装[媒体功能包](https://support.microsoft.com/zh-cn/topic/c1c6fffa-d052-8338-7a79-a4bb980a700a)。
#### Windows 7
#### Windows 7 / 8 / 8.1
.NET 10 不支持 Windows 7 / 8 / 8.1 系统<sup>[](https://github.com/dotnet/core/issues/7556)</sup>,所以 MAA 也同样不再支持。最后一个可用的 .NET 8 版本为 [`v5.4.0-beta.1.d035.gd2e5001e7`](https://github.com/MaaAssistantArknights/MaaRelease/releases/tag/v5.4.0-beta.1.d035.gd2e5001e7);最后一个可用的 .NET 4.8 版本为 [`v4.28.8`](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases/tag/v4.28.8)。尚未确定自行编译的可行性。
对于 Windows 7在安装上文提到的两个运行库之前还需检查以下补丁是否已安装
1. [Windows 7 Service Pack 1](https://support.microsoft.com/zh-cn/windows/b3da2c0f-cdb6-0572-8596-bab972897f61)
2. SHA-2 代码签名补丁:
- KB4474419[下载链接 1](https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/09/windows6.1-kb4474419-v3-x64_b5614c6cea5cb4e198717789633dca16308ef79c.msu)、[下载链接 2](http://download.windowsupdate.com/c/msdownload/update/software/secu/2019/09/windows6.1-kb4474419-v3-x64_b5614c6cea5cb4e198717789633dca16308ef79c.msu)
- KB4490628[下载链接 1](https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/03/windows6.1-kb4490628-x64_d3de52d6987f7c8bdc2c015dca69eac96047c76e.msu)、[下载链接 2](http://download.windowsupdate.com/c/msdownload/update/software/secu/2019/03/windows6.1-kb4490628-x64_d3de52d6987f7c8bdc2c015dca69eac96047c76e.msu)
3. Platform Update for Windows 7DXGI 1.2、Direct3D 11.1KB2670838[下载链接 1](https://catalog.s.download.windowsupdate.com/msdownload/update/software/ftpk/2013/02/windows6.1-kb2670838-x64_9f667ff60e80b64cbed2774681302baeaf0fc6a6.msu)、[下载链接 2](http://download.windowsupdate.com/msdownload/update/software/ftpk/2013/02/windows6.1-kb2670838-x64_9f667ff60e80b64cbed2774681302baeaf0fc6a6.msu)
##### .NET 8 应用在 Windows 7 上运行异常的缓解措施 [#8238](https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/8238)
在 Windows 7 上运行 .NET 8 应用时会出现内存占用异常的问题请参阅下文实施缓解措施。Windows 8/8.1 未经测试,若存在相同问题,请顺手发个 Issue 提醒我们补充文档。
1. 打开 `计算机`,右键空白处,点击属性,点击左侧 `高级系统设置`,点击 `环境变量`
2. 新建一个系统变量,变量名 `DOTNET_EnableWriteXorExecute`,变量值 `0`
3. 重启电脑。
.NET 10 不支持 Windows 7 / 8 / 8.1 系统<sup>[](https://github.com/dotnet/core/issues/7556)</sup>,所以 MAA 也同样不再支持。
## 连接错误

View File

@@ -50,30 +50,9 @@ winget install "Microsoft.VCRedist.2015+.x64" --override "/repair /passive /nore
若您使用的是 Windows N / KN歐洲或韓國版本需額外安裝 [Media Feature Pack](https://support.microsoft.com/zh-tw/topic/c1c6fffa-d052-8338-7a79-a4bb980a700a)。
#### Windows 7
#### Windows 7 / 8 / 8.1
由於 .NET 10 已停止支援 Windows 7 / 8 / 8.1 系統 <sup>[來源](https://github.com/dotnet/core/issues/7556)</sup>MAA 亦隨之停止支援。若您仍需在這些系統上執行,請下載以下相容版本:
- 支援 .NET 8 的最後版本:[`v5.4.0-beta.1.d035.gd2e5001e7`](https://github.com/MaaAssistantArknights/MaaRelease/releases/tag/v5.4.0-beta.1.d035.gd2e5001e7)
- 支援 .NET 4.8 的最後版本:[`v4.28.8`](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases/tag/v4.28.8)
(目前尚未確定自行編譯的可行性。)
若要在 Windows 7 安裝上述執行庫,請先確認系統已安裝下列修正程式:
1. [Windows 7 Service Pack 1](https://support.microsoft.com/zh-tw/windows/b3da2c0f-cdb6-0572-8596-bab972897f61)
2. SHA-2 程式碼簽署修正程式:
- KB4474419[下載連結 1](https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/09/windows6.1-kb4474419-v3-x64_b5614c6cea5cb4e198717789633dca16308ef79c.msu)、[下載連結 2](http://download.windowsupdate.com/c/msdownload/update/software/secu/2019/09/windows6.1-kb4474419-v3-x64_b5614c6cea5cb4e198717789633dca16308ef79c.msu)
- KB4490628[下載連結 1](https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/03/windows6.1-kb4490628-x64_d3de52d6987f7c8bdc2c015dca69eac96047c76e.msu)、[下載連結 2](http://download.windowsupdate.com/c/msdownload/update/software/secu/2019/03/windows6.1-kb4490628-x64_d3de52d6987f7c8bdc2c015dca69eac96047c76e.msu)
3. Platform Update for Windows 7DXGI 1.2、Direct3D 11.1KB2670838[下載連結 1](https://catalog.s.download.windowsupdate.com/msdownload/update/software/ftpk/2013/02/windows6.1-kb2670838-x64_9f667ff60e80b64cbed2774681302baeaf0fc6a6.msu)、[下載連結 2](http://download.windowsupdate.com/msdownload/update/software/ftpk/2013/02/windows6.1-kb2670838-x64_9f667ff60e80b64cbed2774681302baeaf0fc6a6.msu)
##### .NET 8 應用程式於 Windows 7 執行異常之緩解措施 [#8238](https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/8238)
在 Windows 7 執行 .NET 8 應用程式時,可能出現記憶體佔用異常。請參考下列步驟操作:
Windows 8 / 8.1 未經測試,若有相同問題,歡迎提交 Issue 協助我們補充文件)
1. 開啟 `本機`(電腦),在空白處點擊右鍵選擇 `內容`,點擊左側 `進階系統設定`,點擊 `環境變數`
2. 新建一個「系統變數」,變數名稱:`DOTNET_EnableWriteXorExecute`,變數值:`0`
3. 重新啟動電腦。
.NET 10 支援 Windows 7 / 8 / 8.1 系統<sup>[來源](https://github.com/dotnet/core/issues/7556)</sup>所以 MAA 也同樣不再支援。
## 連線錯誤

View File

@@ -30,6 +30,8 @@ typedef enum AsstWin32InputMethodEnum
AsstWin32InputMethod_PostThreadMessage = 1 << 4,
AsstWin32InputMethod_SendMessageWithCursorPos = 1 << 5,
AsstWin32InputMethod_PostMessageWithCursorPos = 1 << 6,
AsstWin32InputMethod_SendMessageWithWindowPos = 1 << 7,
AsstWin32InputMethod_PostMessageWithWindowPos = 1 << 8,
} AsstWin32InputMethodEnum;
#endif

View File

@@ -17,73 +17,73 @@
"JieGarden@Roguelike@CoppersNameOcrReplace": {
"ocrReplace": [
[" |-", ""],
["[Bb]al:[Bb]i?tt?e?r[Cc]old", "衡-苦寒"],
["[Bb]al:[Dd]esir?e[Ff]ul?f+i?ll?ed", "衡-志欲遂"],
["[Bb]al:[Dd]ewin[Gg]old", "衡-金寒水衍"],
["[Bb]al:[Dd]ownpour", "衡-霖雨"],
["[Bb]al:[Dd]ry[Hh]eat", "衡-旱热"],
["[Bb]al:[Ff]ierce[Gg]ale", "衡-匪风"],
["[Bb]al:[Ff]rontier[Mm]oon", "衡-塞上月"],
["[Bb]al:[Ff]rost&[Ss]now", "衡-霜雪"],
["[Bb]al:[Gg]arr?ison[Ff]arm", "衡-军屯垦"],
["[Bb]al:[Gg]oo?d[Hh]arvest", "衡-庆丰收"],
["[Bb]al:[Hh]oarfrost", "衡-雾凇"],
["[Bb]al:[Mm]oving[Mm]ounts", "衡-移山繁"],
["[Bb]al:[Oo]riginal[Ss]cript", "衡-初有文"],
["[Bb]al:[Pp]rimal[Ff]arming", "衡-鸿蒙开荒"],
["[Bb]al:[Rr]?ainbow", "衡-虹霓"],
["[Bb]al:[Rr]egular[Ee]xercise", "衡-勤运体"],
["[Bb]al:[Rr]ogue[Tt]oken", "衡-诡意代币"],
["[Bb]al:[Ss]apient[Ee]vasion", "衡-慧避灾"],
["[Bb]al:[Ss]o?il[Bb]orn[Mm]etal", "衡-奇土生金"],
["[Bb]al:[Tt]hunderclap", "衡-霹雳"],
["[Bb]al:[Ww]aterwoo?d[Gg]uard", "衡-水生木护"],
["[Bb]al:[Ww]oo?d[Ff]ee?ds[Ff]lames", "衡-投木炎延"],
["[Bb]al:[Ww]orld.?s[Pp]ionee?r", "衡-天下先"],
["[Bb]al[Bb]i?tt?e?r[Cc]old", "衡-苦寒"],
["[Bb]al[Tt]estee?", "衡-志欲遂"],
["[Bb]al[Mm]etalto[Ww]ater", "衡-金寒水衍"],
["[Bb]al[Rr]ain", "衡-霖雨"],
["[Bb]al[Dd]rought", "衡-旱热"],
["[Bb]al[Gg]ale", "衡-匪风"],
["[Bb]al[Ff]rontier[Mm]oon", "衡-塞上月"],
["[Bb]al[Ff]rost", "衡-霜雪"],
["[Bb]al[Ss]tee?land[Ss]oil", "衡-军屯垦"],
["[Bb]al[Gg]oo?d[Hh]arvest", "衡-庆丰收"],
["[Bb]al[Rr]ime", "衡-雾凇"],
["[Bb]al[Tt]o[Mm]ove[Mm]ounts", "衡-移山繁"],
["[Bb]al[Aa][Pp]eople[Uu]nited", "衡-初有文"],
["[Bb]al[Dd]awnof[Yy][Aa][Nn]", "衡-鸿蒙开荒"],
["[Bb]al[Rr]?ainbow", "衡-虹霓"],
["[Bb]al[Aa][Bb]ody[Hh]oned", "衡-勤运体"],
["[Bb]al[Rr]ogue[Tt]oken", "衡-诡意代币"],
["[Bb]al[Pp]revention", "衡-慧避灾"],
["[Bb]al[Ss]oilto[Mm]etal", "衡-奇土生金"],
["[Bb]al[Tt]hunder", "衡-霹雳"],
["[Bb]al[Ww]aterto[Ww]oo?d", "衡-水生木护"],
["[Bb]al[Ww]oo?dto[Ff]ire", "衡-投木炎延"],
["[Bb]al[Tt]railblazer", "衡-天下先"],
["[Dd]ayan[Tt]ongh?bao", "大炎通宝"],
["[Ff]antastical", "入幻"],
["[Ff]lower:[Bb]ustl?ing[Tt]rade", "花-百业俱兴"],
["[Ff]lower:[Cc]hidao[Gg]rowth", "花-驰道长"],
["[Ff]lower:[Cc]ocoo?n[Ss]ilk", "花-茧成绢"],
["[Ff]lower:[Cc]ohesive[Mm]ight", "花-聚力则强"],
["[Ff]lower:[Cc]ultivate[Ss]elf", "花-修性情"],
["[Ff]lower:[Dd]uck[Cc]oin", "花-鸭爵金币"],
["[Ff]lower:[Ff]ire[Ff]orms[Ss]oil", "花-火灼土沃"],
["[Ff]lower:[Gg]odbless?ed", "花-圣诏封神"],
["[Ff]lower:[Hh]eavy[Dd]uties", "花-己任重"],
["[Ff]lower:[Ll]ong[Dd]istance", "花-载道远"],
["[Ff]lower:[Mm]artial[Ff]ight", "花-武人之争"],
["[Ff]lower:[Oo]dd[Mm]erchant", "花-神秘商贾"],
["[Ff]lower:[Ss]and[Ss]hield", "花-平沙之盾"],
["[Ff]lower:[Ss]tove[Aa]light", "花-火上之灶"],
["[Ff]lower:[Uu]nclouded[Mm]ind", "花-心无患"],
["[Rr]isk?:[Aa]rduous[Tt]rade", "厉-商路难行"],
["[Rr]isk?:[Bb]iding[Tt]ime", "厉-待机缘"],
["[Rr]isk?:[Bb]loo?dshed[Ss]pill?", "厉-战血流"],
["[Rr]isk?:[Cc]ity[Cc]oncerns", "厉-隐市忧"],
["[Rr]isk?:[Cc]ontent[Mm]egamus", "厉-安硕鼷"],
["[Rr]isk?:[Dd]ark[Cc]oncealment", "厉-无皎之昧"],
["[Rr]isk?:[Dd]awn.?s[Tt]eachings", "厉-朝闻道"],
["[Rr]isk?:[Dd]ream[Cc]urio", "厉-梦奇物"],
["[Rr]isk?:[Ee]astern[Gg]ap", "厉-东缺角"],
["[Rr]isk?:[Ff]irst[Ww]ord[Ff]all?s", "厉-一字落"],
["[Rr]isk?:[Gg]iftof[Aa]cc?ord", "厉-合乎礼"],
["[Rr]isk?:[Ll]awand[Oo]rder", "厉-法与律"],
["[Rr]isk?:[Ll]ei[Ff]a[Pp]unishment", "厉-诛邪雷法"],
["[Rr]isk?:[Mm]ortal[Ee]ndurance", "厉-人间长存"],
["[Rr]isk?:[Mm]oving[Mm]ount[Hh]ard", "厉-移山难"],
["[Rr]isk?:[Nn]orthern[Ss]ting", "厉-北刺面"],
["[Rr]isk?:[Pp]ainter.?s[Rr]ealm", "厉-画人间"],
["[Rr]isk?:[Ss]henn?ong[Ww]atches", "厉-神农守"],
["[Rr]isk?:[Ss]inister[Ss]tealth", "厉-黑子伏"],
["[Rr]isk?:[Ss]outhern[Mm]ounts", "厉-南见山"],
["[Rr]isk?:[Ss]trenuous[Ss]tudy", "厉-寒窗志"],
["[Rr]isk?:[Ss]ui.?s[Aa]wakening", "厉-岁醒天时"],
["[Rr]isk?:[Tt]wo[Rr]iver[Ss]pring", "厉-两江春"],
["[Rr]isk?:[Uu]niversal[Cc]hange", "厉-凡物变"],
["[Rr]isk?:[Ww]eiq[ij]?[Cc]hance", "厉-遇良弈"],
["[Rr]isk?:[Ww]est[Ll]ianzhen[Mm]t.?", "厉-西廉贞"],
["[Rr]isk?:[Ww]ild[Pp]ass?ion", "厉-恣狂情"],
["[Ff]lower[Tt]rades", "花-百业俱兴"],
["[Ff]lower[Ll]ong[Rr]oad", "花-驰道长"],
["[Ff]lower[Cc]ocoo?n[Ww]orth", "花-茧成绢"],
["[Ff]lower[Uu]nity.?s[Mm]ight", "花-聚力则强"],
["[Ff]lower[Mm]indfulness?", "花-修性情"],
["[Ff]lower[Dd]uck[Cc]oin", "花-鸭爵金币"],
["[Ff]lower[Ff]ireto[Ss]oil", "花-火灼土沃"],
["[Ff]lower[Th]e[Aa]scent", "花-圣诏封神"],
["[Ff]lower[Hh]eavy[Dd]uties", "花-己任重"],
["[Ff]lower[Ii]deas[Cc]arried", "花-载道远"],
["[Ff]lower[Mm]artial[Ff]ight", "花-武人之争"],
["[Ff]lower[Oo]dd[Mm]erchant", "花-神秘商贾"],
["[Ff]lower[Th]e[Bb]ulwark", "花-平沙之盾"],
["[Ff]lower[Ss]tove[Aa]light", "花-火上之灶"],
["[Ff]lower[Uu]nclouded", "花-心无患"],
["[Rr]isk[Tt]ollfor[Rr]oads", "厉-商路难行"],
["[Rr]isk[Bb]iding[Tt]ime", "厉-待机缘"],
["[Rr]isk[Bb]loodshed", "厉-战血流"],
["[Rr]isk[Gg]etaway", "厉-隐市忧"],
["[Rr]isk[Tt]aming[Mm]egamus", "厉-安硕鼷"],
["[Rr]isk[Dd]arkness?", "厉-无皎之昧"],
["[Rr]isk[Ee]nlightenment", "厉-朝闻道"],
["[Rr]isk[Dd]reamof[Cc]urio", "厉-梦奇物"],
["[Rr]isk[Ee]astern[Gg]ap", "厉-东缺角"],
["[Rr]isk[Ff]all?ing[Ww]ord", "厉-一字落"],
["[Rr]isk[Gg]iftof[Aa]cc?ord", "厉-合乎礼"],
["[Rr]isk[Ll]awand[Rr]itual", "厉-法与律"],
["[Rr]isk[Ll]ei[Ff]a.?s[Pp]urge", "厉-诛邪雷法"],
["[Rr]isk[Tt]hey[Ww]ho[Ee]ndure", "厉-人间长存"],
["[Rr]isk[Uu]nmoved[Mm]ounts", "厉-移山难"],
["[Rr]isk[Nn]orthern[Ss]ting", "厉-北刺面"],
["[Rr]isk[Pp]ainter.?s[Rr]ealm", "厉-画人间"],
["[Rr]isk[Ss]henn?ong[Ww]atch", "厉-神农守"],
["[Rr]isk[Hh]idd?en[Gg]ambit", "厉-黑子伏"],
["[Rr]isk[Ss]outhern[Mm]ounts", "厉-南见山"],
["[Rr]isk[Ss]tudy", "厉-寒窗志"],
["[Rr]isk[Ss]ui.?s[Aa]wakening", "厉-岁醒天时"],
["[Rr]isk[Ss]pring[Rr]ivers", "厉-两江春"],
["[Rr]isk[Cc]onstant[Cc]hange", "厉-凡物变"],
["[Rr]isk[Aa][Gg]oo?d[Mm]atch", "厉-遇良弈"],
["[Rr]isk[Ww]est[Ss]tones", "厉-西廉贞"],
["[Rr]isk[Ww]ild[Pp]ass?ion", "厉-恣狂情"],
["[Rr]usty", "锈色"],
["[Ss]urvival", "存护"],
["rogue_5_copper_buff_F_28_a", "衡-挪移"],

View File

@@ -113,7 +113,7 @@
["Masquerade Mask", "假面舞会面具"],
["Live Rose", "活玫瑰"],
["Elite Caster Rec.? *Voucher", "高级术师招募券"],
["Profound Silence'?", "《大静谧》"],
["'?Profound Silence'?", "《大静谧》"],
["Medic Rec.? *Voucher", "医疗招募券"],
["Defender Rec.? *Voucher", "重装招募券"],
["'?Gaulish Toponym Origins'?", "《旧高卢地名源流考》"],
@@ -941,7 +941,8 @@
},
"Roguelike@StageEncounterOcr": {
"ocrReplace": [
[" |<|>|-", ""],
["\\s+o+\\s*$", ""],
[" |<|>|-|'", ""],
["^\\d+", ""],
["Disappear\\.\\.\\.", "消失......"],
["Disappear\\.", "消失。"],
@@ -950,7 +951,6 @@
["TheKindPuppet", "善良的木偶"],
["TellerofTales", "讲故事的人"],
["AdventurerComm[ission]*", "委托冒险者"],
["RoyalRumble'?", "皇家争执"],
["AdvanceSquad", "先遣小队"],
["GaulishVeteran", "高卢老兵"],
["HallucinatoryCandlelights", "迷幻烛火"],
@@ -1041,15 +1041,15 @@
["EmergencyDispatch", "紧急调遣"],
["AtaGlance", "瞥视"],
["Tulip.*sCommission", "郁金香的委托"],
["Bob'sEmporium", "鲍勃杂货店"],
["BobsEmporium", "鲍勃杂货店"],
["VacationSpot", "度假胜地"],
["'?TheSwordintheStone'?", "“石中剑”"],
["'?TinMan'?", "“锡人”"],
["TheSwordintheStone", "“石中剑”"],
["TinMan", "“锡人”"],
["MissingMountains", "不见群山"],
["Reprieve\\??", "解脱?"],
["OnsiteatPublicSignalAmplificationStation756", "在地公共信号放大站756号"],
["'?ArtConnoisseur'?", "“鉴赏家”"],
["'?RoyalRumble'?", "“皇家争执”"],
["ArtConnoisseur", "“鉴赏家”"],
["RoyalRumble", "“皇家争执”"],
["SearchingForAPathForward", "探寻前路"],
["OperationRewards", "行动奖励"],
["DuckLordtheLeadActor\\??", "鸭爵主演?"],
@@ -1068,7 +1068,7 @@
["SobbingintheSwamp", "沼泽里的抽泣声"],
["AProfitablePlan", "有利可图"],
["Entourage", "随行人员"],
["DuckLord'sSinisterPlot", "邪恶计划鸭"],
["DuckLordsSinisterPlot", "邪恶计划鸭"],
["ChainofCamps", "百里连营"],
["OnstageInvitation", "请君入戏"],
["NorthwindWitch", "北风女巫"],
@@ -1077,10 +1077,10 @@
["EntrancetotheAbyss", "深渊入口"],
["WoundedPrimeTree", "负伤的主树"],
["ResearchOutpost", "科考站"],
["Sami'sLanguage", "萨米之语"],
["SamisLanguage", "萨米之语"],
["Ursus", "乌萨斯"],
["UselessItem", "无用之物"],
["Clairvoyance'sDirection", "远见所向"],
["ClairvoyancesDirection", "远见所向"],
["ForwardForest", "前行的林地"],
["TrimountsTravelAgencyDispatch", "特里蒙旅行社特派团"],
["OnsiteatPublicNomadicStationN6", "在地公共移动站N6号"],
@@ -1089,9 +1089,9 @@
["UnfreezingRiver", "不冻河"],
["FenceofWoodandSnow", "雪与木的笆篱"],
["AmmaTal", "安玛塔卢"],
["CrossingSami'sArm", "走过萨米的臂膀"],
["CrossingSamisArm", "走过萨米的臂膀"],
["ShatteredOmen", "木裂前兆"],
["Pessimist'sCage", "悲观者囚笼"],
["PessimistsCage", "悲观者囚笼"],
["Change", "变化"],
["Reconstruction", "重构"],
["OneSmallStepforExpeditioners", "探索者的一小步"],
@@ -1120,7 +1120,7 @@
["EmployeeofBabel", "巴别塔雇员"],
["SoulExperiences.*TwinGargoyles?", "魂灵见闻:石心双子"],
["FinalPage", "尾页"],
["TheDissident'sSound", "扣响异音"],
["TheDissidentsSound", "扣响异音"],
["DecipheringEvolution", "解读变迁"],
["TowerofThoughts", "聚思成塔"],
["HighestBidderWins", "价高者得"],
@@ -1193,10 +1193,8 @@
["HundredClanRebellion", "百氏之乱"],
["TheFinishingStroke", "收笔"],
["MeetingaFriend", "会友"]
]
},
"Roguelike@StageTraderInvestSystem": {
"maskRange": [1, 255]
],
"roi": [0, 395, 725, 235]
},
"Roguelike@StageTraderInvestSystemFull": {
"text": ["Storage full"]

View File

@@ -90,7 +90,7 @@
["Reserve Operator *-* *M[elee]*", "预备干员-近战"],
["Angelina", "安洁莉娜"],
["Sora", "空"],
["Ss?k?ad?i? the Co?rru?pt?ing ?[Heart]*", "浊心斯卡蒂"],
["Skadi the Corrupting ?[Heart]*", "浊心斯卡蒂"],
["Scene", "稀音"],
["Suzuran", "铃兰"],
["Mayer", "梅尔"],
@@ -1532,7 +1532,7 @@
"text": ["All"]
},
"BattleQuickFormationOCR": {
"rectMove": [0, 231, 116, 22],
"rectMove": [0, 234, 116, 22],
"specialParams": [105, 2, 7, 0, 3, 10]
},
"BattleStartPre": {
@@ -1586,7 +1586,7 @@
},
"OperBoxNameOCR": {
"rectMove_doc": "for overwidth",
"rectMove": [0, 265, 128, 22],
"rectMove": [0, 264, 133, 24],
"specialParams": [160, 4, 0, 0, 3, 10]
},
"SSSBegin": {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -1,6 +1,6 @@
{
"GO-OpenOcr": {
"text": ["위대한", "서곡의", "끝", "이벤트", "개방중"]
"text": ["위대한", "서곡의", "끝"]
},
"GOChapterToGO": {
"text": ["무명", "공훈"]

View File

@@ -1622,7 +1622,8 @@
[".*사이언스아카.*", "皇家科学院望远镜"],
["보안인재.*", "保全人才合作协议"],
["소형조준.*", "轻型瞄准测距仪"],
["천공야행세트", "天工夜行套装"]
["천공야행세트", "天工夜行套装"],
["역제압장갑세트", "反制装甲套组"]
]
},
"SSSBuffChooseConfirm": {

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

View File

@@ -143,6 +143,7 @@
"doc": "识别到要组装的道具后点击",
"algorithm": "OcrDetect",
"text": ["荧光棒"],
"fullMatch": true,
"roi": [274, 68, 960, 535],
"action": "ClickSelf",
"postDelay": 500

View File

@@ -1419,8 +1419,8 @@
"next": [
"Roguelike@StageVerticalConfirmTrader",
"Roguelike@StageTraderEnter",
"Roguelike@StageTraderRefreshWithDice",
"Roguelike@StageTraderInvestSystem",
"Roguelike@StageTraderRefreshWithDice",
"Roguelike@TraderRandomShopping",
"Roguelike@StageTraderLeave",
"Roguelike@StageTraderLeaveConfirm"
@@ -1556,8 +1556,8 @@
"next": [
"Roguelike@StageTraderSpecialShoppingAfterRefresh",
"Roguelike@StageTraderRefreshWithDice",
"Roguelike@TraderRandomShopping",
"Roguelike@StageTraderInvestSystem",
"Roguelike@TraderRandomShopping",
"Roguelike@StageTraderLeave",
"Roguelike@StageTraderRefreshWithDiceDoubleConfirm"
]
@@ -1604,8 +1604,8 @@
"baseTask": "Roguelike@StageVerticalConfirm",
"next": [
"Roguelike@StageTraderEnter",
"Roguelike@StageTraderRefreshWithDice",
"Roguelike@StageTraderInvestSystem",
"Roguelike@StageTraderRefreshWithDice",
"Roguelike@TraderRandomShopping",
"Roguelike@StageTraderLeave"
]

View File

@@ -246,61 +246,6 @@
"text": ["前往章节"],
"roi": [1078, 595, 112, 42]
},
"EnterEpisode": {
"Doc": "base_task",
"baseTask": "EpisodeOcrReplace",
"action": "ClickRect",
"isAscii": true,
"text": [],
"roi": [244, 270, 129, 49],
"specificRect": [787, 281, 154, 154],
"next": ["#self", "Stop"]
},
"00@EnterEpisode": {
"text": ["EPISODE00"]
},
"01@EnterEpisode": {
"text": ["EPISODE01"]
},
"02@EnterEpisode": {
"text": ["EPISODE02"]
},
"03@EnterEpisode": {
"text": ["EPISODE03"]
},
"04@EnterEpisode": {
"text": ["EPISODE04"]
},
"05@EnterEpisode": {
"text": ["EPISODE05"]
},
"06@EnterEpisode": {
"text": ["EPISODE06"]
},
"07@EnterEpisode": {
"text": ["EPISODE07"]
},
"08@EnterEpisode": {
"text": ["EPISODE08"]
},
"09@EnterEpisode": {
"text": ["EPISODE09"]
},
"10@EnterEpisode": {
"text": ["EPISODE10"]
},
"11@EnterEpisode": {
"text": ["EPISODE11"]
},
"12@EnterEpisode": {
"text": ["EPISODE12"]
},
"13@EnterEpisode": {
"text": ["EPISODE13"]
},
"14@EnterEpisode": {
"text": ["EPISODE14"]
},
"LevelOfDifficulty": {
"Doc": "base_task",
"algorithm": "OcrDetect",
@@ -334,65 +279,6 @@
"text": ["进入作战"],
"roi": [473, 572, 329, 144]
},
"SwipeLeftToEpisode": {
"Doc": "base_task",
"baseTask": "EpisodeOcrReplace",
"action": "Swipe",
"isAscii": true,
"text": [],
"roi": [244, 270, 129, 49],
"specificRect": [790, 310, 10, 10],
"rectMove": [1200, 310, 10, 10],
"specialParams": [200, 0, 2, 0],
"maxTimes": 20,
"next": ["EnterEpisode", "#self"],
"postDelay": 500
},
"14@SwipeLeftToEpisode": {
"text": ["EPISODE15"]
},
"13@SwipeLeftToEpisode": {
"text": ["EPISODE14", "EPISODE15"]
},
"12@SwipeLeftToEpisode": {
"text": ["EPISODE13", "EPISODE14", "EPISODE15"]
},
"11@SwipeLeftToEpisode": {
"text": ["EPISODE12", "EPISODE13", "EPISODE14", "EPISODE15"]
},
"10@SwipeLeftToEpisode": {
"text": ["EPISODE11", "EPISODE12", "EPISODE13", "EPISODE14", "EPISODE15"]
},
"09@SwipeLeftToEpisode": {
"text": ["EPISODE10", "EPISODE11", "EPISODE12", "EPISODE13", "EPISODE14", "EPISODE15"]
},
"08@SwipeLeftToEpisode": {
"text": ["_SKIP_"]
},
"07@SwipeLeftToEpisode": {
"text": ["EPISODE08"]
},
"06@SwipeLeftToEpisode": {
"text": ["EPISODE07", "EPISODE08"]
},
"05@SwipeLeftToEpisode": {
"text": ["EPISODE06", "EPISODE07", "EPISODE08"]
},
"04@SwipeLeftToEpisode": {
"text": ["EPISODE05", "EPISODE06", "EPISODE07", "EPISODE08"]
},
"03@SwipeLeftToEpisode": {
"text": ["_SKIP_"]
},
"02@SwipeLeftToEpisode": {
"text": ["EPISODE03"]
},
"01@SwipeLeftToEpisode": {
"text": ["EPISODE02", "EPISODE03"]
},
"00@SwipeLeftToEpisode": {
"text": ["EPISODE01", "EPISODE02", "EPISODE03"]
},
"StageNavigationBegin": {
"algorithm": "JustReturn",
"next": ["ClickStageName", "FullStageNavigation"]
@@ -480,14 +366,8 @@
"template": ["NormalDifficulty.png", "NormalDifficulty-Chapter15.png"],
"next": []
},
"Episode": {
"Doc": "base_task",
"algorithm": "JustReturn",
"next": ["EnterEpisodeNew", "SwipeLeftToEpisode", "EnterEpisode"]
},
"EpisodeNew": {
"Doc": "base_task",
"Doc2": "15 章开始全部用新导航",
"algorithm": "JustReturn",
"next": ["EnterEpisodeNew", "SwipeUpToEpisode"]
},
@@ -501,64 +381,64 @@
"exceededNext": ["Stop"]
},
"Episode0": {
"baseTask": "00@Episode",
"sub": ["ToChapter1@StageTheme"]
"baseTask": "00@EpisodeNew",
"sub": ["ToChapterNew@StageTheme"]
},
"Episode1": {
"baseTask": "01@Episode",
"sub": ["ToChapter1@StageTheme"]
"baseTask": "01@EpisodeNew",
"sub": ["ToChapterNew@StageTheme"]
},
"Episode2": {
"baseTask": "02@Episode",
"sub": ["ToChapter1@StageTheme"]
"baseTask": "02@EpisodeNew",
"sub": ["ToChapterNew@StageTheme"]
},
"Episode3": {
"baseTask": "03@Episode",
"sub": ["ToChapter1@StageTheme"]
"baseTask": "03@EpisodeNew",
"sub": ["ToChapterNew@StageTheme"]
},
"Episode4": {
"baseTask": "04@Episode",
"sub": ["ToChapter2@StageTheme"]
"baseTask": "04@EpisodeNew",
"sub": ["ToChapterNew@StageTheme"]
},
"Episode5": {
"baseTask": "05@Episode",
"sub": ["ToChapter2@StageTheme"]
"baseTask": "05@EpisodeNew",
"sub": ["ToChapterNew@StageTheme"]
},
"Episode6": {
"baseTask": "06@Episode",
"sub": ["ToChapter2@StageTheme"]
"baseTask": "06@EpisodeNew",
"sub": ["ToChapterNew@StageTheme"]
},
"Episode7": {
"baseTask": "07@Episode",
"sub": ["ToChapter2@StageTheme"]
"baseTask": "07@EpisodeNew",
"sub": ["ToChapterNew@StageTheme"]
},
"Episode8": {
"baseTask": "08@Episode",
"sub": ["ToChapter2@StageTheme"]
"baseTask": "08@EpisodeNew",
"sub": ["ToChapterNew@StageTheme"]
},
"Episode9": {
"baseTask": "09@Episode",
"sub": ["ToChapter3@StageTheme"]
"baseTask": "09@EpisodeNew",
"sub": ["ToChapterNew@StageTheme"]
},
"Episode10": {
"baseTask": "10@Episode",
"sub": ["ToChapter3@StageTheme"]
"baseTask": "10@EpisodeNew",
"sub": ["ToChapterNew@StageTheme"]
},
"Episode11": {
"baseTask": "11@Episode",
"sub": ["ToChapter3@StageTheme"]
"baseTask": "11@EpisodeNew",
"sub": ["ToChapterNew@StageTheme"]
},
"Episode12": {
"baseTask": "12@Episode",
"sub": ["ToChapter3@StageTheme"]
"baseTask": "12@EpisodeNew",
"sub": ["ToChapterNew@StageTheme"]
},
"Episode13": {
"baseTask": "13@Episode",
"sub": ["ToChapter3@StageTheme"]
"baseTask": "13@EpisodeNew",
"sub": ["ToChapterNew@StageTheme"]
},
"Episode14": {
"baseTask": "14@Episode",
"sub": ["ToChapter3@StageTheme"]
"baseTask": "14@EpisodeNew",
"sub": ["ToChapterNew@StageTheme"]
},
"Episode15": {
"baseTask": "15@EpisodeNew",

View File

@@ -85,6 +85,8 @@ constexpr Win32InputMethod LegacyEvent = 1ULL << 3;
constexpr Win32InputMethod PostThreadMessage = 1ULL << 4;
constexpr Win32InputMethod SendMessageWithCursorPos = 1ULL << 5;
constexpr Win32InputMethod PostMessageWithCursorPos = 1ULL << 6;
constexpr Win32InputMethod SendMessageWithWindowPos = 1ULL << 7;
constexpr Win32InputMethod PostMessageWithWindowPos = 1ULL << 8;
} // namespace Win32Input
#endif // _WIN32

View File

@@ -74,6 +74,16 @@ bool asst::InfrastReceptionTask::_run()
return true;
}
bool asst::InfrastReceptionTask::on_run_fails()
{
if (asst::InfrastAbstractTask::on_run_fails()) {
return true;
}
ProcessTask(*this, { "CloseSendClue", "Stop" }).run();
return asst::InfrastAbstractTask::on_run_fails();
}
bool asst::InfrastReceptionTask::receive_message_board()
{
return ProcessTask(*this, { "InfrastReceptionReceiveMessageBoard" }).run();

View File

@@ -19,6 +19,7 @@ public:
protected:
virtual bool _run() override;
virtual bool on_run_fails() override;
private:
virtual int operlist_swipe_times() const noexcept override { return 4; }

View File

@@ -93,7 +93,7 @@ public class InfrastTask : BaseTask, IJsonOnDeserialized
/// <summary>
/// Gets or sets 自定义配置计划编号
/// </summary>
public int PlanSelect { get; set; }
public int PlanSelect { get; set; } = -1;
public List<RoomInfo> RoomList { get; set; } =
[.. typeof(InfrastRoomType).GetEnumValues().OfType<InfrastRoomType>().Select<InfrastRoomType, RoomInfo>(i => new(i, true))];

View File

@@ -113,8 +113,11 @@ public static class ConfigurationKeys
public const string BlockSleepWithScreenOn = "Start.BlockSleepWithScreenOn";
public const string ChooseLevel3 = "Recruit.ChooseLevel3";
public const string ToolBoxChooseLevel3Time = "Toolbox.Recruit.ChooseLevel3.Time";
public const string ChooseLevel4 = "Recruit.ChooseLevel4";
public const string ToolBoxChooseLevel4Time = "Toolbox.Recruit.ChooseLevel4.Time";
public const string ChooseLevel5 = "Recruit.ChooseLevel5";
public const string ToolBoxChooseLevel5Time = "Toolbox.Recruit.ChooseLevel5.Time";
public const string ChooseLevel6 = "Recruit.ChooseLevel6";
public const string AutoSetTime = "Recruit.AutoSetTime";
public const string RecruitmentShowPotential = "Recruit.ShowPotential";

View File

@@ -234,7 +234,7 @@ public class ConfigConverter
infrastTask.DormTrustEnabled = ConfigurationHelper.GetValue(ConfigurationKeys.DormTrustEnabled, false);
infrastTask.OriginiumShardAutoReplenishment = ConfigurationHelper.GetValue(ConfigurationKeys.OriginiumShardAutoReplenishment, true);
infrastTask.Filename = ConfigurationHelper.GetValue(ConfigurationKeys.CustomInfrastFile, string.Empty);
infrastTask.PlanSelect = ConfigurationHelper.GetValue(ConfigurationKeys.CustomInfrastPlanSelect, 0);
infrastTask.PlanSelect = ConfigurationHelper.GetValue(ConfigurationKeys.CustomInfrastPlanSelect, -1);
ConfigurationHelper.DeleteValue(ConfigurationKeys.InfrastMode);
ConfigurationHelper.DeleteValue(ConfigurationKeys.UsesOfDrones);
ConfigurationHelper.DeleteValue(ConfigurationKeys.InfrastReceptionMessageBoardReceive);

View File

@@ -23,15 +23,27 @@ public class OperBoxData
[JsonProperty("id")]
public string Id { get; set; } = null!; // char_2024_chyue
/// <summary>
/// Gets or sets 干员名称
/// </summary>
[JsonProperty("name")]
public string Name { get; set; } = null!; // 重岳
/// <summary>
/// Gets or sets 精英化等级
/// </summary>
[JsonProperty("elite")]
public int Elite { get; set; } = 0;
/// <summary>
/// Gets or sets 等级
/// </summary>
[JsonProperty("level")]
public int Level { get; set; } = 0;
/// <summary>
/// Gets or sets a value indicating whether 是否拥有
/// </summary>
[JsonProperty("own")]
public bool Own { get; set; } = false;

View File

@@ -321,7 +321,7 @@ To customize rotation schedules, please use 「{key=InfrastModeCustom}」.</syst
<system:String x:Key="SpecifiedDropsTip">This feature would not automatically calculate the optimal stage</system:String>
<system:String x:Key="StartupUpdateCheck">Startup Update Check</system:String>
<system:String x:Key="UpdateAutoCheck">Scheduled Update Check</system:String>
<system:String x:Key="UpdateAutoCheckTip">04:00 / 22:00 Server Time</system:String>
<system:String x:Key="UpdateAutoCheckTip">In-game 00:00 / 18:00 (Server local time 04:00 / 22:00)</system:String>
<system:String x:Key="UpdateAutoDownload">Auto Download Update</system:String>
<system:String x:Key="AutoInstallUpdatePackage">Auto Install Update</system:String>
<system:String x:Key="UpdateCheckStable">Stable Release</system:String>
@@ -432,6 +432,7 @@ If you are concerned about leftover entries, please disable this option before d
<system:String x:Key="StartGameLaunchClient">Launch Client on Start</system:String>
<system:String x:Key="AutoRestartOption">Restart when game disconnects</system:String>
<system:String x:Key="UseWeeklySchedule">Enable Weekly Schedule</system:String>
<system:String x:Key="UseWeeklyScheduleTip">The day of week here is based on in-game time, not real-world time. For example, if the game resets at 4:00, then 3:59 is still counted as the previous day.</system:String>
<system:String x:Key="HelpUsWithOverseasServersTip">The adaptation for Overseas clients is very difficult and we need your help! No programming knowledge is required.</system:String>
<system:String x:Key="OpenEmulatorAfterLaunch">Startup Emulator after launched</system:String>
<system:String x:Key="WaitForEmulator">Delay time (s)</system:String>
@@ -1253,7 +1254,8 @@ Due to limited development resources within the MAA Team, PC support lacks dedic
Before use, please ensure:
1. MAA is launched with administrator privileges
2. The game window is not minimized
3. Arknights Settings → Game → UI Scaling is set to 100%</system:String>
3. Arknights Settings → Game → UI Scaling is set to 100%
4. Game resolution must be 16:9, recommended settings: 720×1280 or 1080×1920</system:String>
<system:String x:Key="AttachWindowScreencapMethod">Screencap Method</system:String>
<system:String x:Key="AttachWindowMouseMethod">Mouse Input Method</system:String>
<system:String x:Key="AttachWindowKeyboardMethod">Keyboard Input Method</system:String>
@@ -1264,6 +1266,8 @@ Before use, please ensure:
<system:String x:Key="AttachWindowInputSeize">Seize (Foreground, More Stable)</system:String>
<system:String x:Key="AttachWindowInputPostWithCursor">PostMessageWithCursor (Semi-background)</system:String>
<system:String x:Key="AttachWindowInputSendWithCursor">SendMessageWithCursor (Semi-background, Backup)</system:String>
<system:String x:Key="AttachWindowInputPostWithWindowPos">PostMessageWithWindowPos (Background Window)</system:String>
<system:String x:Key="AttachWindowInputSendWithWindowPos">SendMessageWithWindowPos (Background Window, Backup)</system:String>
<!-- !AsstProxy -->
<!-- TrayIcon -->
<system:String x:Key="ForceShow">Force display of MAA</system:String>

View File

@@ -321,7 +321,7 @@
<system:String x:Key="SpecifiedDropsTip">この機能では最適なステージを自動的に計算しません</system:String>
<system:String x:Key="StartupUpdateCheck">起動時の更新チェック</system:String>
<system:String x:Key="UpdateAutoCheck">定期的な更新チェック</system:String>
<system:String x:Key="UpdateAutoCheckTip">04:00 / 22:00 Server Time</system:String>
<system:String x:Key="UpdateAutoCheckTip">ゲーム内 00:00 / 18:00サーバー現地時間 04:00 / 22:00</system:String>
<system:String x:Key="UpdateAutoDownload">自動アップデート</system:String>
<system:String x:Key="AutoInstallUpdatePackage">自動インストール更新</system:String>
<system:String x:Key="UpdateCheckStable">安定版</system:String>
@@ -432,6 +432,7 @@ MAA は非インストール型のアプリケーションであり、レジス
<system:String x:Key="StartGameLaunchClient">起動時にクライアントを開始する</system:String>
<system:String x:Key="AutoRestartOption">ゲームが切断されたときに自動的に再接続する</system:String>
<system:String x:Key="UseWeeklySchedule">週次スケジュールを有効にする</system:String>
<system:String x:Key="UseWeeklyScheduleTip">ここでの曜日はゲーム内時間に基づいており、現実時間ではありません。例えば、ゲームが4:00にリセットされる場合、3:59は前日としてカウントされます。</system:String>
<system:String x:Key="HelpUsWithOverseasServersTip">グローバルサーバーの対応は非常に大変で、皆様の協力が必要です!プログラミングの知識は必要ありません。</system:String>
<system:String x:Key="OpenEmulatorAfterLaunch">起動時にエミュレータ自動起動</system:String>
<system:String x:Key="WaitForEmulator">エミュレータを待つ時間(秒)</system:String>
@@ -1254,7 +1255,8 @@ MAA Team の開発リソースが限られているため、PC 対応は専任
使用前にご確認ください:
1. MAA を管理者権限で起動してください
2. ゲームウィンドウを最小化しないでください
3. アークナイツ設定 → ゲーム → UI スケーリングを 100% に設定してください</system:String>
3. アークナイツ設定 → ゲーム → UI スケーリングを 100% に設定してください
4. ゲーム解像度は 16:9 である必要があります。推奨設定720×1280 または 1080×1920</system:String>
<system:String x:Key="AttachWindowScreencapMethod">スクリーンキャプチャ方式</system:String>
<system:String x:Key="AttachWindowMouseMethod">マウス入力方式</system:String>
<system:String x:Key="AttachWindowKeyboardMethod">キーボード入力方式</system:String>
@@ -1265,6 +1267,8 @@ MAA Team の開発リソースが限られているため、PC 対応は専任
<system:String x:Key="AttachWindowInputSeize">Seizeフォアグラウンド、より安定</system:String>
<system:String x:Key="AttachWindowInputPostWithCursor">PostMessageWithCursor半バックグラウンド</system:String>
<system:String x:Key="AttachWindowInputSendWithCursor">SendMessageWithCursor半バックグラウンド、予備</system:String>
<system:String x:Key="AttachWindowInputPostWithWindowPos">PostMessageWithWindowPosバックグラウンドウィンドウ</system:String>
<system:String x:Key="AttachWindowInputSendWithWindowPos">SendMessageWithWindowPosバックグラウンドウィンドウ、予備</system:String>
<!-- !AsstProxy -->
<!-- TrayIcon -->
<system:String x:Key="ForceShow">MAAの強制表示</system:String>

View File

@@ -321,7 +321,7 @@
<system:String x:Key="SpecifiedDropsTip">이 기능은 최적의 스테이지를 자동으로 계산하지 않습니다</system:String>
<system:String x:Key="StartupUpdateCheck">시작 시 업데이트 확인</system:String>
<system:String x:Key="UpdateAutoCheck">일정 시간마다 업데이트 확인</system:String>
<system:String x:Key="UpdateAutoCheckTip">04:00 / 22:00 Server Time</system:String>
<system:String x:Key="UpdateAutoCheckTip">게임 내 00:00 / 18:00 (서버 현지 시간 04:00 / 22:00)</system:String>
<system:String x:Key="UpdateAutoDownload">업데이트 자동 다운로드</system:String>
<system:String x:Key="AutoInstallUpdatePackage">업데이트 패키지 자동 설치</system:String>
<system:String x:Key="UpdateCheckStable">안정 버전</system:String>
@@ -432,6 +432,7 @@ MAA는 비설치형 응용 프로그램으로, 삭제 시 레지스트리 항목
<system:String x:Key="StartGameLaunchClient">시작 시 클라이언트 실행</system:String>
<system:String x:Key="AutoRestartOption">게임 연결이 끊어지면 자동으로 다시 연결</system:String>
<system:String x:Key="UseWeeklySchedule">주간 일정 활성화</system:String>
<system:String x:Key="UseWeeklyScheduleTip">여기서 요일은 게임 내 시간을 기준으로 하며, 실제 시간이 아닙니다. 예를 들어 게임이 4:00에 초기화되면 3:59는 여전히 전날로 계산됩니다.</system:String>
<system:String x:Key="HelpUsWithOverseasServersTip">해외 서버의 현지화는 어려운 작업입니다! 저희를 도와주세요! 전문 지식이 없어도 됩니다</system:String>
<system:String x:Key="OpenEmulatorAfterLaunch">MAA 실행 후 에뮬레이터 실행</system:String>
<system:String x:Key="WaitForEmulator">에뮬레이터 실행 대기 (초)</system:String>
@@ -1255,7 +1256,8 @@ MAA Team의 개발 인력이 제한되어 있어 PC 지원은 전담 관리가
사용 전 확인 사항:
1. MAA를 관리자 권한으로 실행해야 합니다
2. 게임 창을 최소화하면 안 됩니다
3. 명일방주 설정 → 게임 → UI 배율을 100%로 설정해야 합니다</system:String>
3. 명일방주 설정 → 게임 → UI 배율을 100%로 설정해야 합니다
4. 게임 해상도는 16:9이어야 하며, 권장 설정: 720×1280 또는 1080×1920</system:String>
<system:String x:Key="AttachWindowScreencapMethod">스크린샷 방식</system:String>
<system:String x:Key="AttachWindowMouseMethod">마우스 입력 방식</system:String>
<system:String x:Key="AttachWindowKeyboardMethod">키보드 입력 방식</system:String>
@@ -1266,6 +1268,8 @@ MAA Team의 개발 인력이 제한되어 있어 PC 지원은 전담 관리가
<system:String x:Key="AttachWindowInputSeize">Seize (포그라운드, 더 안정적)</system:String>
<system:String x:Key="AttachWindowInputPostWithCursor">PostMessageWithCursor (반 백그라운드)</system:String>
<system:String x:Key="AttachWindowInputSendWithCursor">SendMessageWithCursor (반 백그라운드, 백업)</system:String>
<system:String x:Key="AttachWindowInputPostWithWindowPos">PostMessageWithWindowPos (백그라운드 윈도우)</system:String>
<system:String x:Key="AttachWindowInputSendWithWindowPos">SendMessageWithWindowPos (백그라운드 윈도우, 백업)</system:String>
<!-- !AsstProxy -->
<!-- TrayIcon -->
<system:String x:Key="ForceShow">MAA 강제 표시</system:String>

View File

@@ -321,7 +321,7 @@
<system:String x:Key="SpecifiedDropsTip">该选项不会自动计算最优关卡</system:String>
<system:String x:Key="StartupUpdateCheck">启动时检查更新</system:String>
<system:String x:Key="UpdateAutoCheck">定时检查更新</system:String>
<system:String x:Key="UpdateAutoCheckTip">04:00 / 22:00 Server Time</system:String>
<system:String x:Key="UpdateAutoCheckTip">游戏内 00:00 / 18:00对应服务器当地时间 04:00 / 22:00</system:String>
<system:String x:Key="UpdateAutoDownload">自动下载更新包</system:String>
<system:String x:Key="AutoInstallUpdatePackage">自动安装更新包</system:String>
<system:String x:Key="UpdateCheckStable">正式版</system:String>
@@ -432,6 +432,7 @@
<system:String x:Key="StartGameLaunchClient">是否启动客户端</system:String>
<system:String x:Key="AutoRestartOption">游戏掉线时自动重连</system:String>
<system:String x:Key="UseWeeklySchedule">启用周计划</system:String>
<system:String x:Key="UseWeeklyScheduleTip">此处星期根据游戏时间计算,并非现实时间。例如游戏在 4:00 刷新,则 3:59 仍算作前一天。</system:String>
<system:String x:Key="HelpUsWithOverseasServersTip">外服适配滞销,帮帮我们!不会编程也可以。</system:String>
<system:String x:Key="OpenEmulatorAfterLaunch">启动 MAA 后自动开启模拟器</system:String>
<system:String x:Key="WaitForEmulator">等待模拟器启动时间(秒)</system:String>
@@ -1254,7 +1255,8 @@ C:\\leidian\\LDPlayer9。\n
使用前请确认:
1. 需要以管理员身份启动 MAA
2. 游戏窗口不能最小化
3. 明日方舟设置 → 游戏 → UI 缩放需设为 100%</system:String>
3. 明日方舟设置 → 游戏 → UI 缩放需设为 100%
4. 游戏分辨率需为 16:9推荐设置 720×1280 或 1080×1920</system:String>
<system:String x:Key="AttachWindowScreencapMethod">截图方式</system:String>
<system:String x:Key="AttachWindowMouseMethod">鼠标输入</system:String>
<system:String x:Key="AttachWindowKeyboardMethod">键盘输入</system:String>
@@ -1265,6 +1267,8 @@ C:\\leidian\\LDPlayer9。\n
<system:String x:Key="AttachWindowInputSeize">Seize前台更稳定</system:String>
<system:String x:Key="AttachWindowInputPostWithCursor">PostMessageWithCursor半后台</system:String>
<system:String x:Key="AttachWindowInputSendWithCursor">SendMessageWithCursor半后台备用</system:String>
<system:String x:Key="AttachWindowInputPostWithWindowPos">PostMessageWithWindowPos后台窗口</system:String>
<system:String x:Key="AttachWindowInputSendWithWindowPos">SendMessageWithWindowPos后台窗口备用</system:String>
<!-- !AsstProxy -->
<!-- TrayIcon -->
<system:String x:Key="ForceShow">强制显示MAA</system:String>

View File

@@ -321,7 +321,7 @@
<system:String x:Key="SpecifiedDropsTip">此選項不會自動計算最優關卡</system:String>
<system:String x:Key="StartupUpdateCheck">啟動時檢查更新</system:String>
<system:String x:Key="UpdateAutoCheck">定時檢查更新</system:String>
<system:String x:Key="UpdateAutoCheckTip">伺服器時間 04:00 / 22:00</system:String>
<system:String x:Key="UpdateAutoCheckTip">遊戲內 00:00 / 18:00對應伺服器當地時間 04:00 / 22:00</system:String>
<system:String x:Key="UpdateAutoDownload">自動下載更新檔</system:String>
<system:String x:Key="AutoInstallUpdatePackage">自動安裝更新檔</system:String>
<system:String x:Key="UpdateCheckStable">穩定版</system:String>
@@ -432,6 +432,7 @@
<system:String x:Key="StartGameLaunchClient">是否啟動用戶端</system:String>
<system:String x:Key="AutoRestartOption">遊戲斷線時自動重連</system:String>
<system:String x:Key="UseWeeklySchedule">使用週計畫</system:String>
<system:String x:Key="UseWeeklyScheduleTip">此處的星期是根據遊戲時間計算的,並非現實時間。例如遊戲在 4:00 刷新,則 3:59 仍算作前一天。</system:String>
<system:String x:Key="HelpUsWithOverseasServersTip">外服支援人力吃緊,幫幫我們!不會寫程式也可以參與。</system:String>
<system:String x:Key="OpenEmulatorAfterLaunch">啟動 MAA 後自動開啟模擬器</system:String>
<system:String x:Key="WaitForEmulator">等待模擬器啟動時間(秒)</system:String>
@@ -1254,7 +1255,8 @@ C:\\leidian\\LDPlayer9\n
使用前請確認:
1. 需以系統管理員身分啟動 MAA
2. 遊戲視窗不可最小化
3. 明日方舟設定 → 遊戲 → UI 縮放需設為 100%</system:String>
3. 明日方舟設定 → 遊戲 → UI 縮放需設為 100%
4. 遊戲解析度需為 16:9推薦設定 720×1280 或 1080×1920</system:String>
<system:String x:Key="AttachWindowScreencapMethod">截圖方式</system:String>
<system:String x:Key="AttachWindowMouseMethod">滑鼠輸入</system:String>
<system:String x:Key="AttachWindowKeyboardMethod">鍵盤輸入</system:String>
@@ -1265,6 +1267,8 @@ C:\\leidian\\LDPlayer9\n
<system:String x:Key="AttachWindowInputSeize">Seize前台更穩定</system:String>
<system:String x:Key="AttachWindowInputPostWithCursor">PostMessageWithCursor半背景</system:String>
<system:String x:Key="AttachWindowInputSendWithCursor">SendMessageWithCursor半背景備用</system:String>
<system:String x:Key="AttachWindowInputPostWithWindowPos">PostMessageWithWindowPos後台視窗</system:String>
<system:String x:Key="AttachWindowInputSendWithWindowPos">SendMessageWithWindowPos後台視窗備用</system:String>
<!-- !AsstProxy -->
<!-- TrayIcon -->
<system:String x:Key="ForceShow">強制顯示 MAA</system:String>

View File

@@ -507,9 +507,17 @@ public class TaskQueueViewModel : Screen
{
actions.LoadPostActions();
// 休眠提示
AddLog(LocalizationHelper.GetString("HibernatePrompt"), UiLogColor.Error);
await Task.Delay(10000);
await Execute.OnUIThreadAsync(() => Instances.MainWindowManager?.Show());
if (await TimerCanceledAsync(
LocalizationHelper.GetString("Hibernate"),
LocalizationHelper.GetString("HibernatePrompt"),
LocalizationHelper.GetString("Cancel"),
60))
{
return;
}
_logger.Information("Hibernate not canceled, proceeding to hibernate.");
PowerManagement.Hibernate();
}
@@ -536,9 +544,17 @@ public class TaskQueueViewModel : Screen
{
actions.LoadPostActions();
// 休眠提示
AddLog(LocalizationHelper.GetString("SleepPrompt"), UiLogColor.Error);
await Task.Delay(10000);
await Execute.OnUIThreadAsync(() => Instances.MainWindowManager?.Show());
if (await TimerCanceledAsync(
LocalizationHelper.GetString("Sleep"),
LocalizationHelper.GetString("SleepPrompt"),
LocalizationHelper.GetString("Cancel"),
60))
{
return;
}
_logger.Information("Sleep not canceled, proceeding to sleep.");
PowerManagement.Sleep();
}
}

View File

@@ -108,24 +108,12 @@ public class ToolboxViewModel : Screen
#region Recruit
private string _recruitInfo = LocalizationHelper.GetString("RecruitmentRecognitionTip");
/// <summary>
/// Gets or sets the recruit info.
/// </summary>
public string RecruitInfo
{
get => _recruitInfo;
set => SetAndNotify(ref _recruitInfo, value);
}
public string RecruitInfo { get => field; set => SetAndNotify(ref field, value); } = LocalizationHelper.GetString("RecruitmentRecognitionTip");
private ObservableCollection<Inline> _recruitResultInlines = [];
public ObservableCollection<Inline> RecruitResultInlines
{
get => _recruitResultInlines;
set => SetAndNotify(ref _recruitResultInlines, value);
}
public ObservableCollection<Inline> RecruitResultInlines { get => field; set => SetAndNotify(ref field, value); } = [];
public void UpdateRecruitResult(JArray? resultArray)
{
@@ -227,47 +215,41 @@ public class ToolboxViewModel : Screen
}
}
private bool _chooseLevel3 = Convert.ToBoolean(ConfigurationHelper.GetValue(ConfigurationKeys.ChooseLevel3, bool.FalseString));
/// <summary>
/// Gets or sets a value indicating whether to choose level 3.
/// </summary>
public bool ChooseLevel3
{
get => _chooseLevel3;
get => field;
set {
SetAndNotify(ref _chooseLevel3, value);
SetAndNotify(ref field, value);
ConfigurationHelper.SetValue(ConfigurationKeys.ChooseLevel3, value.ToString());
}
}
private bool _chooseLevel4 = Convert.ToBoolean(ConfigurationHelper.GetValue(ConfigurationKeys.ChooseLevel4, bool.TrueString));
} = ConfigurationHelper.GetValue(ConfigurationKeys.ChooseLevel3, true);
/// <summary>
/// Gets or sets a value indicating whether to choose level 4.
/// </summary>
public bool ChooseLevel4
{
get => _chooseLevel4;
get => field;
set {
SetAndNotify(ref _chooseLevel4, value);
SetAndNotify(ref field, value);
ConfigurationHelper.SetValue(ConfigurationKeys.ChooseLevel4, value.ToString());
}
}
private bool _chooseLevel5 = Convert.ToBoolean(ConfigurationHelper.GetValue(ConfigurationKeys.ChooseLevel5, bool.TrueString));
} = ConfigurationHelper.GetValue(ConfigurationKeys.ChooseLevel4, true);
/// <summary>
/// Gets or sets a value indicating whether to choose level 5.
/// </summary>
public bool ChooseLevel5
{
get => _chooseLevel5;
get => field;
set {
SetAndNotify(ref _chooseLevel5, value);
SetAndNotify(ref field, value);
ConfigurationHelper.SetValue(ConfigurationKeys.ChooseLevel5, value.ToString());
}
}
} = ConfigurationHelper.GetValue(ConfigurationKeys.ChooseLevel5, true);
private bool _chooseLevel6 = Convert.ToBoolean(ConfigurationHelper.GetValue(ConfigurationKeys.ChooseLevel6, bool.TrueString));
@@ -283,6 +265,90 @@ public class ToolboxViewModel : Screen
}
}
[PropertyDependsOn(nameof(ChooseLevel3Time))]
public int ChooseLevel3Hour
{
get => ChooseLevel3Time / 60;
set => ChooseLevel3Time = (value * 60) + ChooseLevel3Min;
}
[PropertyDependsOn(nameof(ChooseLevel3Time))]
public int ChooseLevel3Min
{
get => (ChooseLevel3Time % 60) / 10 * 10;
set => ChooseLevel3Time = (ChooseLevel3Hour * 60) + value;
}
public int ChooseLevel3Time
{
get => field;
set {
value = value switch {
< 60 => 9 * 60,
> 9 * 60 => 60,
_ => value / 10 * 10,
};
SetAndNotify(ref field, value);
ConfigurationHelper.SetValue(ConfigurationKeys.ToolBoxChooseLevel3Time, value.ToString());
}
} = ConfigurationHelper.GetValue(ConfigurationKeys.ToolBoxChooseLevel3Time, 540);
[PropertyDependsOn(nameof(ChooseLevel4Time))]
public int ChooseLevel4Hour
{
get => ChooseLevel4Time / 60;
set => ChooseLevel4Time = (value * 60) + ChooseLevel4Min;
}
[PropertyDependsOn(nameof(ChooseLevel4Time))]
public int ChooseLevel4Min
{
get => (ChooseLevel4Time % 60) / 10 * 10;
set => ChooseLevel4Time = (ChooseLevel4Hour * 60) + value;
}
public int ChooseLevel4Time
{
get => field;
set {
value = value switch {
< 60 => 9 * 60,
> 9 * 60 => 60,
_ => value / 10 * 10,
};
SetAndNotify(ref field, value);
ConfigurationHelper.SetValue(ConfigurationKeys.ToolBoxChooseLevel4Time, value.ToString());
}
} = ConfigurationHelper.GetValue(ConfigurationKeys.ToolBoxChooseLevel4Time, 540);
[PropertyDependsOn(nameof(ChooseLevel5Time))]
public int ChooseLevel5Hour
{
get => ChooseLevel5Time / 60;
set => ChooseLevel5Time = (value * 60) + ChooseLevel5Min;
}
[PropertyDependsOn(nameof(ChooseLevel5Time))]
public int ChooseLevel5Min
{
get => (ChooseLevel5Time % 60) / 10 * 10;
set => ChooseLevel5Time = (ChooseLevel5Hour * 60) + value;
}
public int ChooseLevel5Time
{
get => field;
set {
value = value switch {
< 60 => 9 * 60,
> 9 * 60 => 60,
_ => value / 10 * 10,
};
SetAndNotify(ref field, value);
ConfigurationHelper.SetValue(ConfigurationKeys.ToolBoxChooseLevel5Time, value.ToString());
}
} = ConfigurationHelper.GetValue(ConfigurationKeys.ToolBoxChooseLevel5Time, 540);
private bool _autoSetTime = Convert.ToBoolean(ConfigurationHelper.GetValue(ConfigurationKeys.AutoSetTime, bool.TrueString));
/// <summary>
@@ -344,9 +410,9 @@ public class ToolboxViewModel : Screen
SelectList = levelList,
ConfirmList = [-1], // 仅公招识别时将-1加入comfirm_level
SetRecruitTime = RecruitAutoSetTime,
ChooseLevel3Time = TaskQueueViewModel.RecruitTask.ChooseLevel3Time,
ChooseLevel4Time = TaskQueueViewModel.RecruitTask.ChooseLevel4Time,
ChooseLevel5Time = TaskQueueViewModel.RecruitTask.ChooseLevel5Time,
ChooseLevel3Time = ChooseLevel3Time,
ChooseLevel4Time = ChooseLevel4Time,
ChooseLevel5Time = ChooseLevel5Time,
ServerType = Instances.SettingsViewModel.ServerType,
};
var (type, taskParams) = task.Serialize();
@@ -962,6 +1028,8 @@ public class ToolboxViewModel : Screen
[JsonProperty("potential")]
public int Potential { get; } = potential;
public int IdNumber { get; } = ExtractIdNumber(id);
public string RarityStars => IsPallas ? LocalizationHelper.GetPallasString(6, 6) : new('★', Rarity);
/// <summary>
@@ -990,6 +1058,35 @@ public class ToolboxViewModel : Screen
public override string ToString() => $"{Name} (★{Rarity})";
private bool IsPallas => Id == "char_485_pallas";
private static int ExtractIdNumber(string id)
{
// Expected format: "char_002_amiya"
if (string.IsNullOrEmpty(id))
{
return 0;
}
int firstUnderscore = id.IndexOf('_');
if (firstUnderscore < 0 || firstUnderscore >= id.Length - 1)
{
return 0;
}
int secondUnderscore = id.IndexOf('_', firstUnderscore + 1);
if (secondUnderscore < 0 || secondUnderscore <= firstUnderscore + 1)
{
return 0;
}
ReadOnlySpan<char> numericSpan = id.AsSpan(firstUnderscore + 1, secondUnderscore - firstUnderscore - 1);
if (int.TryParse(numericSpan, out int value))
{
return value;
}
return 0;
}
}
private ObservableCollection<Operator> _operBoxHaveList = [];
@@ -1015,6 +1112,27 @@ public class ToolboxViewModel : Screen
JsonDataHelper.Set(JsonDataKey.OperBoxData, JArray.FromObject(details));
}
private void SortOperBoxLists()
{
OperBoxHaveList = SortOperBoxList(OperBoxHaveList);
OperBoxNotHaveList = SortOperBoxList(OperBoxNotHaveList);
}
private static ObservableCollection<Operator> SortOperBoxList(ObservableCollection<Operator> list)
{
if (list == null || list.Count <= 0)
{
return list ?? [];
}
return [.. list
.OrderByDescending(x => x.Rarity)
.ThenByDescending(x => x.Elite)
.ThenByDescending(x => x.Level)
.ThenByDescending(x => x.Potential)
.ThenByDescending(x => x.IdNumber)];
}
private void LoadOperBoxDetails()
{
// TODO: 删除老数据节省 gui.json 的大小,后续版本可以删除
@@ -1055,6 +1173,8 @@ public class ToolboxViewModel : Screen
}
}
}
SortOperBoxLists();
}
catch
{
@@ -1108,6 +1228,8 @@ public class ToolboxViewModel : Screen
}
}
SortOperBoxLists();
if (OperBoxNotHaveList.Count > 0)
{
OperBoxSelectedIndex = 0;

View File

@@ -1243,6 +1243,8 @@ public class ConnectSettingsUserControlModel : PropertyChangedBase
new() { Display = LocalizationHelper.GetString("AttachWindowInputSeize"), Value = "1" },
new() { Display = LocalizationHelper.GetString("AttachWindowInputPostWithCursor"), Value = "64" },
new() { Display = LocalizationHelper.GetString("AttachWindowInputSendWithCursor"), Value = "32" },
new() { Display = LocalizationHelper.GetString("AttachWindowInputPostWithWindowPos"), Value = "256" },
new() { Display = LocalizationHelper.GetString("AttachWindowInputSendWithWindowPos"), Value = "128" },
];
private string _attachWindowMouseMethod = ConfigurationHelper.GetValue(ConfigurationKeys.AttachWindowMouseMethod, "64"); // 默认 PostMessageWithCursorPos

View File

@@ -46,7 +46,7 @@ public class GameSettingsUserControlModel : PropertyChangedBase
public bool StartGame
{
get => field;
get => SettingsViewModel.ConnectSettings.UseAttachWindow ? false : field;
set {
SetAndNotify(ref field, value);
ConfigurationHelper.SetValue(ConfigurationKeys.StartGame, value.ToString());

View File

@@ -26,12 +26,10 @@ using MaaWpfGui.Constants.Enums;
using MaaWpfGui.Helper;
using MaaWpfGui.Models;
using MaaWpfGui.Models.AsstTasks;
using MaaWpfGui.Services;
using MaaWpfGui.Utilities;
using MaaWpfGui.Utilities.ValueType;
using MaaWpfGui.ViewModels.UI;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Serilog;
using Stylet;
using static MaaWpfGui.Main.AsstProxy;
@@ -474,7 +472,13 @@ public class FightSettingsUserControlModel : TaskSettingsViewModel
public bool UseCustomAnnihilation
{
get => GetTaskConfig<FightTask>().UseCustomAnnihilation;
set => SetTaskConfig<FightTask>(t => t.UseCustomAnnihilation == value, t => t.UseCustomAnnihilation = value);
set {
bool ret = SetTaskConfig<FightTask>(t => t.UseCustomAnnihilation == value, t => t.UseCustomAnnihilation = value);
if (ret)
{
StageListSource.FirstOrDefault(i => i.Value == "Annihilation")?.Display = UseCustomAnnihilation ? (AnnihilationModeList.FirstOrDefault(i => i.Value == AnnihilationStage).Key ?? LocalizationHelper.GetString("Annihilation.Current")) : LocalizationHelper.GetString("Annihilation.Current");
}
}
}
public string AnnihilationStage
@@ -734,7 +738,7 @@ public class FightSettingsUserControlModel : TaskSettingsViewModel
if (task.Stage == "Annihilation" && fight.UseCustomAnnihilation)
{
task.Stage = AnnihilationStage;
task.Stage = fight.AnnihilationStage;
}
if (fight.EnableTargetDrop != false && !string.IsNullOrEmpty(fight.DropId))

View File

@@ -18,10 +18,9 @@ using System.Linq;
using MaaWpfGui.Configuration.Single.MaaTask;
using MaaWpfGui.Helper;
using MaaWpfGui.Models.AsstTasks;
using MaaWpfGui.Services;
using MaaWpfGui.Utilities;
using MaaWpfGui.Utilities.ValueType;
using MaaWpfGui.ViewModels.UI;
using Newtonsoft.Json.Linq;
using static MaaWpfGui.Main.AsstProxy;
namespace MaaWpfGui.ViewModels.UserControl.TaskQueue;
@@ -165,12 +164,14 @@ public class RecruitSettingsUserControlModel : TaskSettingsViewModel
set => SetTaskConfig<RecruitTask>(t => t.Level5Choose == value, t => t.Level5Choose = value);
}
[PropertyDependsOn(nameof(ChooseLevel3Time))]
public int ChooseLevel3Hour
{
get => ChooseLevel3Time / 60;
set => ChooseLevel3Time = (value * 60) + ChooseLevel3Min;
}
[PropertyDependsOn(nameof(ChooseLevel3Time))]
public int ChooseLevel3Min
{
get => (ChooseLevel3Time % 60) / 10 * 10;
@@ -190,12 +191,14 @@ public class RecruitSettingsUserControlModel : TaskSettingsViewModel
}
}
[PropertyDependsOn(nameof(ChooseLevel4Time))]
public int ChooseLevel4Hour
{
get => ChooseLevel4Time / 60;
set => ChooseLevel4Time = (value * 60) + ChooseLevel4Min;
}
[PropertyDependsOn(nameof(ChooseLevel4Time))]
public int ChooseLevel4Min
{
get => (ChooseLevel4Time % 60) / 10 * 10;
@@ -215,12 +218,14 @@ public class RecruitSettingsUserControlModel : TaskSettingsViewModel
}
}
[PropertyDependsOn(nameof(ChooseLevel5Time))]
public int ChooseLevel5Hour
{
get => ChooseLevel5Time / 60;
set => ChooseLevel5Time = (value * 60) + ChooseLevel5Min;
}
[PropertyDependsOn(nameof(ChooseLevel5Time))]
public int ChooseLevel5Min
{
get => (ChooseLevel5Time % 60) / 10 * 10;

View File

@@ -17,7 +17,7 @@
Background="{DynamicResource MdXamlBackground}"
Icon="../../newlogo.ico"
mc:Ignorable="d">
<hc:ScrollViewer Margin="10,5" IsInertiaEnabled="True">
<hc:ScrollViewer Margin="10,5" IsInertiaEnabled="True" PanningMode="VerticalOnly">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="50" />

View File

@@ -11,6 +11,7 @@
xmlns:s="https://github.com/canton7/Stylet"
xmlns:uiBehaviors="clr-namespace:MaaWpfGui.Extensions.UIBehaviors"
xmlns:ui_vms="clr-namespace:MaaWpfGui.ViewModels.UI"
d:Background="White"
d:DataContext="{d:DesignInstance {x:Type ui_vms:ToolboxViewModel}}"
d:DesignHeight="600"
d:DesignWidth="800"
@@ -107,7 +108,7 @@
Maximum="9"
Minimum="1"
ValueFormat="00"
Value="{Binding ChooseLevel3Hour, Source={x:Static ui_vms:TaskQueueViewModel.RecruitTask}}" />
Value="{Binding ChooseLevel3Hour}" />
<controls:TextBlock Margin="5" Text=":" />
<hc:NumericUpDown
Width="55"
@@ -115,7 +116,7 @@
Maximum="50"
Minimum="0"
ValueFormat="00"
Value="{Binding ChooseLevel3Min, Source={x:Static ui_vms:TaskQueueViewModel.RecruitTask}}" />
Value="{Binding ChooseLevel3Min}" />
</StackPanel>
</StackPanel>
@@ -132,7 +133,7 @@
Maximum="9"
Minimum="1"
ValueFormat="00"
Value="{Binding ChooseLevel4Hour, Source={x:Static ui_vms:TaskQueueViewModel.RecruitTask}}" />
Value="{Binding ChooseLevel4Hour}" />
<controls:TextBlock Margin="5" Text=":" />
<hc:NumericUpDown
Width="55"
@@ -140,7 +141,7 @@
Maximum="50"
Minimum="0"
ValueFormat="00"
Value="{Binding ChooseLevel4Min, Source={x:Static ui_vms:TaskQueueViewModel.RecruitTask}}" />
Value="{Binding ChooseLevel4Min}" />
</StackPanel>
</StackPanel>
@@ -157,7 +158,7 @@
Maximum="9"
Minimum="1"
ValueFormat="00"
Value="{Binding ChooseLevel5Hour, Source={x:Static ui_vms:TaskQueueViewModel.RecruitTask}}" />
Value="{Binding ChooseLevel5Hour}" />
<controls:TextBlock Margin="5" Text=":" />
<hc:NumericUpDown
Width="55"
@@ -165,7 +166,7 @@
Maximum="50"
Minimum="0"
ValueFormat="00"
Value="{Binding ChooseLevel5Min, Source={x:Static ui_vms:TaskQueueViewModel.RecruitTask}}" />
Value="{Binding ChooseLevel5Min}" />
</StackPanel>
</StackPanel>
@@ -237,13 +238,15 @@
<hc:ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
<ItemsControl
HorizontalAlignment="Center"
VerticalAlignment="Center"
d:ItemsSource="{d:SampleData ItemCount=1}"
ItemsSource="{Binding OperBoxNotHaveList}"
ScrollViewer.CanContentScroll="True"
VirtualizingPanel.IsVirtualizing="True"
VirtualizingPanel.VirtualizationMode="Recycling">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="5" />
<UniformGrid Columns="{c:Binding 'OperBoxNotHaveList.Count >= 5 ? 5 : OperBoxNotHaveList.Count'}" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
@@ -279,13 +282,15 @@
<hc:ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
<ItemsControl
HorizontalAlignment="Center"
VerticalAlignment="Center"
d:ItemsSource="{d:SampleData ItemCount=1}"
ItemsSource="{Binding OperBoxHaveList}"
ScrollViewer.CanContentScroll="True"
VirtualizingPanel.IsVirtualizing="True"
VirtualizingPanel.VirtualizationMode="Recycling">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="5" />
<UniformGrid Columns="{c:Binding 'OperBoxHaveList.Count >= 5 ? 5 : OperBoxHaveList.Count'}" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
@@ -375,7 +380,7 @@
Margin="30,0"
Command="{s:Action StartOperBox}"
Content="{DynamicResource StartToOperBoxRecognition}"
IsEnabled="{Binding 'Idle and Inited'}" />
IsEnabled="{c:Binding 'Idle and Inited'}" />
</StackPanel>
</Grid>
</TabItem>
@@ -415,13 +420,15 @@
VerticalScrollBarVisibility="Auto">
<ItemsControl
HorizontalAlignment="Center"
VerticalAlignment="Center"
d:ItemsSource="{d:SampleData ItemCount=1}"
ItemsSource="{Binding DepotResult}"
ScrollViewer.CanContentScroll="True"
VirtualizingPanel.IsVirtualizing="True"
VirtualizingPanel.VirtualizationMode="Recycling">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="5" />
<UniformGrid Columns="{c:Binding 'DepotResult.Count >= 5 ? 5 : DepotResult.Count'}" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>

View File

@@ -428,10 +428,10 @@
Margin="0,10"
Content="{DynamicResource HideUnavailableStage}"
IsChecked="{Binding HideUnavailableStage}" />
<CheckBox
Margin="0,10"
Content="{DynamicResource UseWeeklySchedule}"
IsChecked="{Binding UseWeeklySchedule}" />
<StackPanel Margin="0,10" Orientation="Horizontal">
<CheckBox Content="{DynamicResource UseWeeklySchedule}" IsChecked="{Binding UseWeeklySchedule}" />
<controls:TooltipBlock TooltipText="{DynamicResource UseWeeklyScheduleTip}" />
</StackPanel>
<ListBox
MaxHeight="300"
Margin="6,5"
@@ -458,7 +458,8 @@
HorizontalAlignment="Center"
FontWeight="Bold"
Text="{DynamicResource MultiTasksShareTip}"
TextAlignment="Center" />
TextAlignment="Left"
TextWrapping="Wrap" />
<CheckBox
Margin="0,10"
Content="{DynamicResource AutoRestartOption}"

View File

@@ -396,7 +396,7 @@
<hc:TextBox.Text>
<Binding Path="RoguelikeSeed" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<hc:RegexRule Pattern="^[\da-zA-Z]+,rogue_\d,\d$" />
<hc:RegexRule Pattern="^[\da-zA-Z]+,rogue_\d+,\d+$" />
</Binding.ValidationRules>
</Binding>
</hc:TextBox.Text>
@@ -406,7 +406,8 @@
HorizontalAlignment="Center"
FontWeight="Bold"
Text="{DynamicResource MultiTasksShareTip}"
TextAlignment="Center" />
TextWrapping="Wrap"
TextAlignment="Left" />
<CheckBox Margin="0,10" IsChecked="{Binding RoguelikeDelayAbortUntilCombatComplete}">
<TextBlock
Block.TextAlignment="Left"

View File

@@ -59,7 +59,8 @@
HorizontalAlignment="Center"
FontWeight="Bold"
Text="{DynamicResource MultiTasksShareTip}"
TextAlignment="Center" />
TextWrapping="Wrap"
TextAlignment="Left" />
<CheckBox
Margin="0,10"
Content="{DynamicResource StartGameLaunchClient}"

View File

@@ -1977,7 +1977,7 @@
"resource/global/YoStarEN/resource/template/InfrastPic/Product/ClickProductMax": "048a5733d78d9b67419fba4bd222f6b5c76da21532147efb7743f699d8d46eb0",
"resource/global/YoStarEN/resource/template/InfrastPic/Mfg/ReplenishToMax": "91829c29e77ec700ff24cc5d3b215184916e463c5e54ee63721632be349069fb",
"resource/global/YoStarEN/resource/template/InfrastPic/AddOperator/AddOperatorReceptionGentle": "1f4d74309e34de3e324060227abbeabb34bdfa5477a38d12f574b5370508a519",
"resource/global/YoStarEN/resource/template/InfrastPic/AddOperator/AddOperatorTradeAggressive": "a94911feffd935d55dededdf8ef6e9b9834004dd8bf3b6c3cf764b69165b86f6",
"resource/global/YoStarEN/resource/template/InfrastPic/AddOperator/AddOperatorTradeAggressive": "e8b750ae773c872db5814d8fe470cf12ee10ba8c78d849fa850d394eaa3fcf1c",
"resource/global/YoStarEN/resource/template/InfrastPic/AddOperator/AddOperatorMfgAggressive": "1640c2fd0e9e12a4d63fd0a781c4a533250b48b3df2a8354c01b9908fec03866",
"resource/global/YoStarEN/resource/template/InfrastPic/ShamareThumbnail/ShamareThumbnail1": "bac47736aaa68e7ac79b71728eb8e705bca28e1fd5a2ec841b2761c07cd027a8",
"resource/global/YoStarEN/resource/template/InfrastPic/ShamareThumbnail/ShamareThumbnail3": "10e466d6ee9848058ea6990646c7ed9f07b7d6a4da2e2a8404d023e4b40c6b37",
@@ -3842,5 +3842,23 @@
"resource/global/txwy/resource/template/Roguelike/JieGarden/JieGarden@Roguelike@MissionFailedFlag": "f1f0511dec355b192b710821be0367e18770e7f24d3ff311b635cf2eed3de4e5",
"resource/global/YoStarEN/resource/template/UiTheme/AveMujica/GachaEnter": "22181867362f20e599deb876d1d69e0c100c32371cac5ce27593e623b5371469",
"resource/global/YoStarEN/resource/template/UiTheme/AveMujica/Mall": "a8554e0cff0d0eb8513f0c453c779e733cccfd64d5ce9cc3a03825015615a333",
"resource/global/YoStarEN/resource/template/UiTheme/AveMujica/Recruit": "08e718920c5d5371d3606cde876e31f16b2b52fb169592e21f7e15fe4fa25a0b"
"resource/global/YoStarEN/resource/template/UiTheme/AveMujica/Recruit": "08e718920c5d5371d3606cde876e31f16b2b52fb169592e21f7e15fe4fa25a0b",
"resource/global/YoStarEN/resource/template/UiTheme/AveMujica/Terminal": "0e470a9283c9c8f87333f276dc7b5891853bd576bf5b1fafcf53fb21f93d7208",
"resource/global/YoStarEN/resource/template/InfrastPic/ShamareThumbnail/ShamareThumbnail4": "7e41fa057b3a70c22d8b62497c26ec7d44d69010da107b97dd309a76a40ea3d0",
"resource/global/YoStarJP/resource/template/InfrastPic/ShamareThumbnail/ShamareThumbnail4": "65951ac24667c0c79b266fe6c06b13b13d4e018a4507186878b76e63d2a18f16",
"resource/global/YoStarKR/resource/template/InfrastPic/ShamareThumbnail/ShamareThumbnail4": "a4d6572568f341f7a19a1953fd414be3b1f0b24da0377cfc010b14ade75a3c94",
"resource/global/txwy/resource/template/UiTheme/Dreamland/Day/EnterInfrast": "4b97e58fade18b27121641bc32e1af12d518c7dba3009894cb8130b1a78cec58",
"resource/global/txwy/resource/template/UiTheme/Dreamland/Day/Friends": "d78806957c33d10a79dc4f77434b06678c4d283f3cc067b72a8fa69f9f903238",
"resource/global/txwy/resource/template/UiTheme/Dreamland/Day/GachaEnter": "7dd57f2e2d09f7b15888a20a9e79a7af320241c31dd1cae9cc80ca19e89a0c1f",
"resource/global/txwy/resource/template/UiTheme/Dreamland/Day/Mall": "d44060092f416a234efc05dddcf730b8b85c523bd27f058cb3a6a3bc250c3135",
"resource/global/txwy/resource/template/UiTheme/Dreamland/Day/OperBoxEnter": "3e034cbab51db62a618b76d43d6fc20e920297e85fb56ddfa370da2a55530370",
"resource/global/txwy/resource/template/UiTheme/Dreamland/Day/Recruit": "be3e74049dc25af5dbeec6d87a7b9b37b5432a9bdcdc8317916246f70f4e6c0b",
"resource/global/txwy/resource/template/UiTheme/Dreamland/Day/Task": "8b5a2f28ad439b69f147ee598f0fde13696d50888a3280cae1fbc7cc8406a061",
"resource/global/txwy/resource/template/UiTheme/Dreamland/Night/EnterInfrast": "8ce0c28c41dfaa7e8c75583a05eb03441625471f9e96623c9f63f67fcf925825",
"resource/global/txwy/resource/template/UiTheme/Dreamland/Night/Friends": "e58f069339dea9edc3417ace211a5457f34654af72655486d9575f8a172f49a1",
"resource/global/txwy/resource/template/UiTheme/Dreamland/Night/GachaEnter": "e2026a967188a0b6ff086f0decace0d73b9c78c6756ff3a85ac29841db141ebe",
"resource/global/txwy/resource/template/UiTheme/Dreamland/Night/Mall": "45f1f97febcb88c7a534b3db2a0eb379e3cb7b26b10a6cbf25f59681ef6ed3d5",
"resource/global/txwy/resource/template/UiTheme/Dreamland/Night/OperBoxEnter": "2b215e4d620a3a7ceecbfdaa51a386b582d926b27dd8c2e7ccdcb7a936f46f0d",
"resource/global/txwy/resource/template/UiTheme/Dreamland/Night/Recruit": "fd0dd3c611c3c24871cbc957037e85049072156b93b932ba6b8121a0e375d61e",
"resource/global/txwy/resource/template/UiTheme/Dreamland/Night/Task": "66174d53fcd1bc6809a9a8ce59dfadf27a45bbf85c08b4166eeaa2258fbe5f80"
}

View File

@@ -1230,9 +1230,10 @@ bool ocr_replace_overseas(const fs::path& input_dir, const fs::path& tasks_base_
static std::unordered_map</*id*/ std::string, /*base_name*/ std::string> base_totem_names;
static std::unordered_map</*id*/ std::string, /*base_name*/ std::string> base_encounter_names;
static std::unordered_map</*id*/ std::string, /*base_name*/ std::string> base_char_names;
// static std::unordered_map</*id*/ std::string, /*base_name*/ std::string> base_coppers_names;
if (base_stage_names.empty() || base_item_names.empty() || base_totem_names.empty() ||
base_encounter_names.empty()) {
base_encounter_names.empty() || base_char_names.empty() /*|| base_coppers_names.empty()*/) {
auto rg_opt = json::open(base_dir / "roguelike_topic_table.json");
if (!rg_opt) {
std::cerr << "Failed to open roguelike_topic_table for" << base_dir << '\n';
@@ -1257,6 +1258,10 @@ bool ocr_replace_overseas(const fs::path& input_dir, const fs::path& tasks_base_
if (id.starts_with(rogue_index + "_totem")) {
base_totem_names.emplace(id, item_obj["name"].as_string());
}
// if (id.starts_with(rogue_index + "_copper") && !id.starts_with(rogue_index + "_copper_draw") &&
// !id.starts_with(rogue_index + "_copper_buff")) {
// base_coppers_names.emplace(id, item_obj["name"].as_string());
// }
}
}
for (auto&& [id, encounter_obj] : rogue_details["choiceScenes"].as_object()) {
@@ -1296,6 +1301,7 @@ bool ocr_replace_overseas(const fs::path& input_dir, const fs::path& tasks_base_
std::unordered_map</*id*/ std::string, /*name*/ std::string> totem_names;
std::unordered_map</*id*/ std::string, /*name*/ std::string> encounter_names;
std::unordered_map</*id*/ std::string, /*name*/ std::string> char_names;
// std::unordered_map</*id*/ std::string, /*name*/ std::string> coppers_names;
bool remove_spaces = input_dir.string().ends_with("kr\\gamedata\\excel");
@@ -1344,6 +1350,15 @@ bool ocr_replace_overseas(const fs::path& input_dir, const fs::path& tasks_base_
}
totem_names.emplace(id, name_buffer);
}
// if (id.starts_with(rogue_index + "_copper") && !id.starts_with(rogue_index + "_copper_draw") &&
// !id.starts_with(rogue_index + "_copper_buff")) {
// name_buffer = item_obj["name"].as_string();
// if (remove_spaces) {
// name_buffer.erase(std::remove(name_buffer.begin(), name_buffer.end(), ' '), name_buffer.end());
// }
// coppers_names.emplace(id, name_buffer);
// }
}
for (auto&& [id, encounter_obj] : rogue_details["choiceScenes"].as_object()) {
@@ -1400,6 +1415,14 @@ bool ocr_replace_overseas(const fs::path& input_dir, const fs::path& tasks_base_
}
auto& roguelike_sami_json = roguelike_sami_opt.value();
// auto roguelike_jiegarden_path = tasks_base_path / "Roguelike" / "Jiegarden.json";
// auto roguelike_jiegarden_opt = json::open(roguelike_jiegarden_path);
// if (!roguelike_jiegarden_opt) {
// std::cerr << "Failed to open Roguelike Jiegarden file: " << roguelike_jiegarden_path << '\n';
// return false;
// }
// auto& roguelike_jiegarden_json = roguelike_jiegarden_opt.value();
auto proc = [](json::array& replace_array,
const std::unordered_map<std::string, std::string>& base_map,
const std::unordered_map<std::string, std::string>& cur_map) {
@@ -1435,6 +1458,7 @@ bool ocr_replace_overseas(const fs::path& input_dir, const fs::path& tasks_base_
base_totem_names,
totem_names);
proc(roguelike_sami_json["Sami@Roguelike@FoldartalUseOcr"]["ocrReplace"].as_array(), base_totem_names, totem_names);
// proc(roguelike_jiegarden_json["JieGarden@Roguelike@CoppersNameOcrReplace"]["ocrReplace"].as_array(), base_coppers_names, coppers_names);
proc(roguelike_json["Roguelike@StageEncounterOcr"]["ocrReplace"].as_array(), base_encounter_names, encounter_names);
std::ofstream tasks_ofs(tasks_path, std::ios::out);
@@ -1449,6 +1473,10 @@ bool ocr_replace_overseas(const fs::path& input_dir, const fs::path& tasks_base_
roguelike_sami_ofs << roguelike_sami_json.format() << '\n';
roguelike_sami_ofs.close();
// std::ofstream roguelike_jiegarden_ofs(roguelike_jiegarden_path, std::ios::out);
// roguelike_jiegarden_ofs << roguelike_jiegarden_json.format() << '\n';
// roguelike_jiegarden_ofs.close();
return true;
}