Compare commits
38 Commits
v6.3.1
...
feat/mainc
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ee566c5fb7 | ||
|
|
40d5bdd560 | ||
|
|
01a2329d18 | ||
|
|
c52cf81b94 | ||
|
|
2a9c963fef | ||
|
|
0817bc1c9f | ||
|
|
c36e5cfd9a | ||
|
|
3fbda5b98d | ||
|
|
50cbc2e10d | ||
|
|
30dd7d0afa | ||
|
|
80280bb62d | ||
|
|
e7362d2d35 | ||
|
|
f77d85f542 | ||
|
|
00e577f6d2 | ||
|
|
6d32795ffa | ||
|
|
a72571ce90 | ||
|
|
59fa039a72 | ||
|
|
adb8863cf6 | ||
|
|
7bab2b2312 | ||
|
|
b55b2c6bd6 | ||
|
|
3d46fc1d0c | ||
|
|
e62a9a08a9 | ||
|
|
f7f9a4f44c | ||
|
|
9ab3265188 | ||
|
|
e1572d8bba | ||
|
|
761ea19e8b | ||
|
|
d9ad52053b | ||
|
|
1ddee84199 | ||
|
|
45b89b7089 | ||
|
|
c8a0c982b9 | ||
|
|
910cd47dfa | ||
|
|
63d499816d | ||
|
|
d734109155 | ||
|
|
c45e6a3d10 | ||
|
|
5e712c04eb | ||
|
|
dc9c9dfee6 | ||
|
|
ec7cbeeb1c | ||
|
|
c3ccd36d02 |
42
CHANGELOG.md
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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 7(DXGI 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 も同様にサポートしていません。
|
||||
|
||||
#### 公式統合パック(確信)
|
||||
|
||||
|
||||
@@ -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 7(DXGI 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도 더 이상 지원하지 않습니다.
|
||||
|
||||
## 연결 오류
|
||||
|
||||
|
||||
@@ -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 7(DXGI 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 也同样不再支持。
|
||||
|
||||
## 连接错误
|
||||
|
||||
|
||||
@@ -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 7(DXGI 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 也同樣不再支援。
|
||||
|
||||
## 連線錯誤
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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", "衡-挪移"],
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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": {
|
||||
|
||||
|
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 4.7 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 18 KiB |
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"GO-OpenOcr": {
|
||||
"text": ["위대한", "서곡의", "끝", "이벤트", "개방중"]
|
||||
"text": ["위대한", "서곡의", "의끝"]
|
||||
},
|
||||
"GOChapterToGO": {
|
||||
"text": ["무명", "공훈"]
|
||||
|
||||
@@ -1622,7 +1622,8 @@
|
||||
[".*사이언스아카.*", "皇家科学院望远镜"],
|
||||
["보안인재.*", "保全人才合作协议"],
|
||||
["소형조준.*", "轻型瞄准测距仪"],
|
||||
["천공야행세트", "天工夜行套装"]
|
||||
["천공야행세트", "天工夜行套装"],
|
||||
["역제압장갑세트", "反制装甲套组"]
|
||||
]
|
||||
},
|
||||
"SSSBuffChooseConfirm": {
|
||||
|
||||
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 7.1 KiB |
|
After Width: | Height: | Size: 7.6 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 6.4 KiB |
|
After Width: | Height: | Size: 7.9 KiB |
|
After Width: | Height: | Size: 8.4 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 6.6 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 7.1 KiB |
@@ -143,6 +143,7 @@
|
||||
"doc": "识别到要组装的道具后点击",
|
||||
"algorithm": "OcrDetect",
|
||||
"text": ["荧光棒"],
|
||||
"fullMatch": true,
|
||||
"roi": [274, 68, 960, 535],
|
||||
"action": "ClickSelf",
|
||||
"postDelay": 500
|
||||
|
||||
@@ -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"
|
||||
]
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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; }
|
||||
|
||||
@@ -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))];
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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" />
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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}"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -59,7 +59,8 @@
|
||||
HorizontalAlignment="Center"
|
||||
FontWeight="Bold"
|
||||
Text="{DynamicResource MultiTasksShareTip}"
|
||||
TextAlignment="Center" />
|
||||
TextWrapping="Wrap"
|
||||
TextAlignment="Left" />
|
||||
<CheckBox
|
||||
Margin="0,10"
|
||||
Content="{DynamicResource StartGameLaunchClient}"
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||