Compare commits

..

1 Commits

Author SHA1 Message Date
zzyyyl
02961e60e9 feat: 增加从 GitHub 直接获取资源文件的方式,并优先尝试从 GitHub 获取
github raw 没有 dynamic_list.txt
2024-07-14 17:34:23 +08:00
4287 changed files with 123868 additions and 344175 deletions

View File

@@ -1,9 +1,12 @@
# https://clang.llvm.org/docs/ClangFormatStyleOptions.html
# for clang-format 17.0.1
Language: Json
IndentWidth: 4
---
Language: Cpp
BasedOnStyle: "WebKit"
BasedOnStyle: 'WebKit'
# AccessModifierOffset: 2
AlignAfterOpenBracket: "AlwaysBreak"
AlignAfterOpenBracket: 'AlwaysBreak'
AlignArrayOfStructures: None
AlignConsecutiveAssignments: None
AlignConsecutiveBitFields: None
@@ -60,15 +63,15 @@ BraceWrapping:
BreakAfterAttributes: Never
BreakAfterJavaFieldAnnotations: true
BreakArrays: true
BreakBeforeBinaryOperators: None
BreakBeforeBinaryOperators: NonAssignment
BreakBeforeBraces: Custom
BreakBeforeConceptDeclarations: Always
BreakBeforeInlineASMColon: OnlyMultiline
BreakBeforeTernaryOperators: true
BreakConstructorInitializers: AfterColon
BreakInheritanceList: AfterColon
BreakConstructorInitializers: BeforeComma
BreakInheritanceList: BeforeComma
BreakStringLiterals: true
ColumnLimit: 120
ColumnLimit: 100
# CommentPragmas: '^ MEO pragma:'
CompactNamespaces: false
ConstructorInitializerIndentWidth: 4
@@ -84,12 +87,12 @@ FixNamespaceComments: true
# - foreach
# - Q_FOREACH
# - BOOST_FOREACH
# IfMacros:
# IfMacros:
# - 'KJ_IF_MAYBE'
IncludeBlocks: Preserve
# IncludeCategories:
# IncludeIsMainRegex:
# IncludeIsMainSourceRegex:
# IncludeIsMainRegex:
# IncludeIsMainSourceRegex:
IndentAccessModifiers: false
IndentCaseBlocks: false
IndentCaseLabels: false
@@ -127,7 +130,7 @@ NamespaceIndentation: None
# ObjCSpaceAfterProperty:
# ObjCSpaceBeforeProtocolList:
PackConstructorInitializers: Never
# PenaltyBreakAssignment:
# PenaltyBreakAssignment:
# PenaltyBreakBeforeFirstCallParameter:
# PenaltyBreakComment:
# PenaltyBreakFirstLessLess:
@@ -180,7 +183,7 @@ SpacesInLineCommentPrefix:
SpacesInParens: Never
SpacesInSquareBrackets: false
Standard: c++20
# StatementAttributeLikeMacros:
# StatementAttributeLikeMacros:
# StatementMacros:
TabWidth: 4
# TypeNames:

View File

@@ -7,7 +7,10 @@
"postCreateCommand": "sudo sh -ce 'apt update && apt install g++-12 -y && echo export CC=gcc-12 CXX=g++-12 >> /etc/profile.d/set-compiler.sh'",
"customizations": {
"vscode": {
"extensions": ["llvm-vs-code-extensions.vscode-clangd", "DavidAnson.vscode-markdownlint"]
"extensions": [
"llvm-vs-code-extensions.vscode-clangd",
"DavidAnson.vscode-markdownlint"
]
}
}
}

View File

@@ -22,7 +22,6 @@ a5daac889a55baf8895918d4964f20dad1938470
206df466fd5e3d8ef80387049b0c5011fb58cada
c9b5aa638a97397ab8666031ea646904527afc09
559c913fca0dd0966896396e251be13f76ea3e52
# Re-structure again.
4b3b84df8f487be0ac86506c28dbebc4635f1282
91abbb7f175b93a58368a136acf3799666f770d2
@@ -30,18 +29,3 @@ c9b5aa638a97397ab8666031ea646904527afc09
bae271c09bb79e5cc2a7f8491ce882d276ac97b4
3d83b80dd67d996a5f4f1732fe1eb36cacc7605e
21617270bcef2456cb7f89e54560ca6788450711
# resource/*.json prettier mass styling
d84da5d01a872540d520bc87408d4524e07cfa39
546bfc399cdd140a9812f44b5e6bc89fccfda5fa
f0bdccdf0da7fac29f475951f0f43d3ab56a7ffe
7a758bce844bc2778f04a789195efbd17681dac7
5f3730b76785b1168125eb3b5edbed399722f8f9
bc3ad67a02cb3b8e154c06955cf17091c4265000
# usage: add "[blame ignore]" to the commit message
# This file is managed by an automated workflow
# Do not add, remove or modify lines below this comment
# as they are automatically appended
# --------------------------------------------------- #
f7772bc814c52f9a5e65af02404cf54b70fe0a32

1
.gitattributes vendored
View File

@@ -8,5 +8,4 @@
*.json text eol=lf
*.md text eol=lf
*.yml text eol=lf
*.yaml text eol=lf

View File

@@ -1 +0,0 @@
272d71fa2938f945832f86232532b86a9e5406b8

View File

@@ -1,22 +1,20 @@
name: Bug 反馈(使用中文)
description: 识别错误、操作异常、连接错误等
labels: ["bug"]
labels: ['bug']
body:
- type: checkboxes
id: checks
attributes:
label: 在提问之前...
description: |
请确认自己完成了要求之后再进行勾选
options:
- label: 我理解 Issue 是用于反馈和解决问题的,而非吐槽评论区,将尽可能提供更多信息帮助问题解决
required: true
- label: 我填写了简短且清晰明确的标题,以便开发者在翻阅 Issue 列表时能快速确定大致问题。而不是“一个建议”、“卡住了”等
required: true
- label: 使用的是当前更新版本的最新版,且已查看版本发布至今和 Pull Requests 中尚未发布的更新内容,并未提及该 Bug 已被修复的情况
required: true
- label: 我已检查了置顶议题(Pinned Issue公告、活跃议题Open Issue、已关闭议题Closed Issue确认我的问题未被提及
required: true
- label: 我理解 Issue 是用于反馈和解决问题的,而非吐槽评论区,将尽可能提供更多信息帮助问题解决
required: true
- label: 我填写了简短且清晰明确的标题,以便开发者在翻阅 Issue 列表时能快速确定大致问题。而不是“一个建议”、“卡住了”等
required: true
- label: 已查看最新测试版本的更新内容,并未提及该 Bug 已被修复的情况
required: true
- label: 我已检查了置顶议题(pinned issue确认我的问题未被提及
required: true
- type: textarea
id: describe
attributes:
@@ -32,45 +30,28 @@ body:
请提供 MAA 版本。可在 MAA -> 设置 -> 软件更新中找到(点击图标可复制)。
placeholder: |
Resource Version:
MAA Version:
UI Version:
Core Version:
validations:
required: true
- type: textarea
id: logs
attributes:
label: 日志和配置文件
label: 日志文件
description: |
**请在关闭 MAA 后,上传以下 5 个文件:**
1. `debug` 文件夹中的 `asst.log` `gui.log` `asst.bak.log` 和 `gui.bak.log` 日志文件,并说明问题出现的大致时间点
2. `config` 文件夹中的 `gui.json` 配置文件
如果你在使用 MacBook请点击屏幕左上角的“文件”点击“打开日志文件夹”
**请在关闭MAA后上传 `debug` 文件夹中的 `asst.log` 和 `gui.log` 日志文件,并说明问题出现的大致时间点**
**请直接将完整的文件拖拽进来,而非自己裁切或复制的片段;若文件体积过大可压缩后再上传**
placeholder: |
请确认上传文件前已关闭 MAA
validations:
required: true
- type: textarea
id: configuration
attributes:
label: 配置信息
description: |
请说明操作系统及版本、模拟器品牌、模拟器分辨率、DPI、帧率
若正在使用 MuMu 12 或雷电 9请说明截图增强是否开启
最后请说明 GPU 加速推理是否开启,若开启请提供 GPU 型号。
validations:
required: true
- type: textarea
id: screenshots
attributes:
label: 截图或录屏
label: 截图
description: |
`debug` 目录下按功能分类的文件夹内,有一些自动截图的错误图片,若有相关的,请一并打包上传
可上传屏幕截图或录制以帮助解释你的问题,包括但不限于 MAA 软件截图、游戏画面截图
如果有,添加屏幕截图以帮助解释你的问题,包括但不限于 MAA 软件截图、游戏画面截图
若是**识别相关问题**,请尽可能提供模拟器自带的截图工具截取的无遮挡的**原图**(或通过 adb 截取原图)
用其他的工具如QQ/微信)截取的图片包含窗口边框且长宽比、分辨率不固定不利于我们排除bug
若文件体积过大可压缩后再上传
用其他的工具如QQ截取的图片包含窗口边框不利于我们排除bug
`debug` 文件夹下有一些自动截图的错误图片,若有相关的,请一并打包上传
validations:
required: false
- type: textarea
@@ -78,6 +59,7 @@ body:
attributes:
label: 还有别的吗?
description: |
使用的模拟器?操作系统?相关的配置?链接?参考资料?
任何能让我们对你所遇到的问题有更多了解的东西
validations:
required: false

View File

@@ -1,20 +1,16 @@
name: 需求建议(使用中文)
description: 新功能、建议等
labels: ["enhancement"]
labels: ['enhancement']
body:
- type: checkboxes
id: checks
attributes:
label: 在提问之前...
options:
- label: 我填写了简短且清晰明确的标题,以便开发者在翻阅 Issue 列表时能快速确定大致问题。而不是“一个建议”、“卡住了”等
required: true
- label: 我基本确定这是一个新功能/建议,而不是遇到了 Bug不确定的话请附上日志
required: true
- label: 我使用的是当前更新版本的最新版,且已查看版本发布至今和 Pull Requests 中尚未发布的更新内容,确认我的建议未被提及
required: true
- label: 我已检查了置顶议题Pinned Issue公告、活跃议题Open Issue、已关闭议题Closed Issue确认我的建议未被提及
required: true
- label: 我填写了简短且清晰明确的标题,以便开发者在翻阅 Issue 列表时能快速确定大致问题。而不是“一个建议”、“卡住了”等
required: true
- label: 我基本确定这是一个新功能/建议,而不是遇到了 Bug不确定的话请附上日志
required: true
- type: textarea
id: describe
attributes:

View File

@@ -1,85 +0,0 @@
name: 雷电截图增强反馈(使用中文)
description: 有关雷电 9 截图增强功能的集中反馈
labels: ["LD9 API"]
body:
- type: checkboxes
id: checks
attributes:
label: 在提问之前...
options:
- label: 我理解 Issue 是用于反馈和解决问题的,而非吐槽评论区,将尽可能提供更多信息帮助问题解决
required: true
- label: 我填写了简短且清晰明确的标题,以便开发者在翻阅 Issue 列表时能快速确定大致问题。而不是“一个建议”、“卡住了”等
required: true
- label: 我已检查了置顶议题Pinned Issue确认我的问题未被提及
required: true
- label: 我正在使用最新的 MAA 公测版本和最新的官版雷电 9 模拟器
required: true
- label: 我已参考文档确定安装路径、实例编号填写正确,并确认在关闭截图增强模式后问题消失
required: true
- label: 我未开启高帧率,且模拟器帧数设置为 60
required: false
- type: textarea
id: describe
attributes:
label: 问题描述
description: 描述问题时请尽可能详细
validations:
required: true
- type: textarea
id: version
attributes:
label: Version
description: |
请提供 MAA 版本和雷电 9 版本。MAA 版本可在 MAA -> 设置 -> 软件更新中找到(点击图标可复制)。
雷电 9 版本可在右上角菜单按钮 -> 关于雷电 中找到。
placeholder: |
Resource Version:
MAA Version:
雷电 9 版本号:
validations:
required: true
- type: textarea
id: logs
attributes:
label: MAA 日志和配置文件
description: |
**请在关闭 MAA 后,上传以下三个文件:**
1. `debug` 文件夹中的 `asst.log` 和 `gui.log` 日志文件,并说明问题出现的大致时间点
若 asst.log 文件小于 10 KB则需同时上传 asst.log.bak 文件
2. `config` 文件夹中的 `gui.json` 配置文件
**请直接将完整的文件拖拽进来,而非自己裁切或复制的片段;若文件体积过大可压缩后再上传**
placeholder: |
请确认上传文件前已关闭 MAA
validations:
required: true
- type: textarea
id: ldlogs
attributes:
label: 雷电 9 诊断信息
description: |
**在雷电 9 右上角菜单按钮 -> 诊断信息 中点击 复制信息,并将全部内容粘贴进来。**
validations:
required: true
- type: textarea
id: screenshots
attributes:
label: 截图
description: |
`debug` 目录下按功能分类的文件夹内,有一些自动截图的错误图片,若有相关的,请一并打包上传
可上传屏幕截图或录制以帮助解释你的问题,包括但不限于 MAA 软件截图、游戏画面截图
若是**识别相关问题**,请尽可能提供模拟器自带的截图工具截取的无遮挡的**原图**(或通过 adb 截取原图)
用其他的工具如QQ/微信截取的图片包含窗口边框且长宽比、分辨率不固定不利于我们排除bug
若文件体积过大可压缩后再上传
validations:
required: false
- type: textarea
id: others
attributes:
label: 其他
description: |
GPU 加速推理是否开启,若开启请提供 GPU 型号。
亦或者任何能让我们对你所遇到的问题有更多了解的东西
validations:
required: false

View File

@@ -1,24 +1,26 @@
name: MuMu 截图增强反馈(使用中文)
description: 有关 MuMu 截图增强功能的集中反馈
labels: ["MuMu API"]
labels: ['mumu api']
body:
- type: checkboxes
id: checks
attributes:
label: 在提问之前...
options:
- label: 我理解 Issue 是用于反馈和解决问题的,而非吐槽评论区,将尽可能提供更多信息帮助问题解决
required: true
- label: 我填写了简短且清晰明确的标题,以便开发者在翻阅 Issue 列表时能快速确定大致问题。而不是“一个建议”、“卡住了”等
required: true
- label: 我已检查了置顶议题Pinned Issue确认我的问题未被提及
required: true
- label: 我正在使用最新的 MAA 测版本和最新的官版或方舟专版 MuMu 模拟器
required: true
- label: 我已参考文档确定安装路径、实例编号、屏幕编号填写正确,并确认在关闭截图增强模式后问题消失
required: true
- label: 我未开启后台保活,模拟器帧数为 60显存使用策略为“画面表现更好”
required: false
- label: 我理解 Issue 是用于反馈和解决问题的,而非吐槽评论区,将尽可能提供更多信息帮助问题解决
required: true
- label: 我填写了简短且清晰明确的标题,以便开发者在翻阅 Issue 列表时能快速确定大致问题。而不是“一个建议”、“卡住了”等
required: true
- label: 我已检查了置顶议题Pinned Issue确认我的问题未被提及
required: true
- label: 我正在使用最新的 MAA 测版本和最新的**官版** MuMu 模拟器
required: true
- label: 我已参考文档确定安装路径、实例编号、屏幕编号填写正确,并确认在关闭截图增强模式后问题消失
required: true
- label: 我未开启高帧率模式,且显存使用策略为“画面表现更好”
required: false
- label: 我正在使用后台保活功能,并确定该问题仅在开启后台保活时出现
required: false
- type: textarea
id: describe
attributes:
@@ -30,27 +32,22 @@ body:
id: version
attributes:
label: Version
description: |
请提供 MAA 版本和 MuMu 版本。MAA 版本可在 MAA -> 设置 -> 软件更新中找到(点击图标可复制)。
MuMu 版本可在右上角菜单按钮 -> 关于 MuMu 中找到。
description: >-
请提供 MAA 版本和 MuMu 版本。MAA 版本可在 MAA -> 设置 -> 软件更新中找到(点击图标可复制)。MuMu 版本可在右上角菜单按钮 -> 关于 MuMu 中找到。
placeholder: |
Resource Version:
MAA Version:
MuMu 版本号:
Resource Version:
UI Version:
Core Version:
MuMu 版本号:
validations:
required: true
- type: textarea
id: logs
attributes:
label: MAA 日志和配置文件
label: MAA 日志文件
description: |
**请在关闭 MAA 后,上传以下三个文件:**
1. `debug` 文件夹中的 `asst.log` 和 `gui.log` 日志文件,并说明问题出现的大致时间点
若 asst.log 文件小于 10 KB则需同时上传 asst.log.bak 文件
2. `config` 文件夹中的 `gui.json` 配置文件
**上传 `debug` 文件夹中的 `asst.log` 和 `gui.log` 日志文件,并说明问题出现的大致时间点**
**请直接将完整的文件拖拽进来,而非自己裁切或复制的片段;若文件体积过大可压缩后再上传**
placeholder: |
请确认上传文件前已关闭 MAA
validations:
required: true
- type: textarea
@@ -67,20 +64,18 @@ body:
attributes:
label: 截图
description: |
`debug` 目录下按功能分类的文件夹内,有一些自动截图的错误图片,若有相关的,请一并打包上传
可上传屏幕截图或录制以帮助解释你的问题,包括但不限于 MAA 软件截图、游戏画面截图
如果有,添加屏幕截图以帮助解释你的问题,包括但不限于 MAA 软件截图、游戏画面截图
若是**识别相关问题**,请尽可能提供模拟器自带的截图工具截取的无遮挡的**原图**(或通过 adb 截取原图)
用其他的工具如QQ/微信)截取的图片包含窗口边框且长宽比、分辨率不固定不利于我们排除bug
若文件体积过大可压缩后再上传
用其他的工具如QQ截取的图片包含窗口边框不利于我们排除bug
`debug` 文件夹下有一些自动截图的错误图片,若有相关的,请一并打包上传
validations:
required: false
- type: textarea
id: others
attributes:
label: 其他
label: 还有别的吗?
description: |
GPU 加速推理是否开启,若开启请提供 GPU 型号。
亦或者任何能让我们对你所遇到的问题有更多了解的东西
操作系统?相关的配置?链接?参考资料?
任何能让我们对你所遇到的问题有更多了解的东西
validations:
required: false

View File

@@ -1,6 +1,6 @@
name: 其他议题(使用中文)
description: 提出问题,而不是 Bug 反馈或需求建议
labels: ["question"]
labels: ['question']
body:
- type: textarea
id: describe

View File

@@ -2,35 +2,32 @@ name: Bug Report (in English)
description: >-
Recognition errors, operation abnormalities,
connection errors, etc.
labels: ["bug"]
labels: ['bug']
body:
- type: checkboxes
id: checks
attributes:
label: Before raising the issue...
description: |
Please ensure that you have completed the requirements before checking the box.
options:
- label: >-
I understand that Issues are for feedback and problem solving,
not trolling the comments section, and will provide as
much information as possible to help solve the problem.
required: true
- label: >-
I filled in a short, clear title
so that developers could quickly identify the general problem
when going through the issue list.
Instead of "Some suggestions", "Stuck", etc.
required: true
- label: >-
I am using the latest version of the current update and have reviewed
both the updates released so far and the unreleased changes in the Pull Requests,
there is no mention of the bug being fixed.
required: true
- label: >-
I have reviewed the Pinned issue (Announcements), Open issues, and Closed issues
to ensure that my issue has not been mentioned.
required: true
- label: >-
I understand that Issues are for feedback and problem solving,
not trolling the comments section, and will provide as
much information as possible to help solve the problem.
required: true
- label: >-
I filled in a short, clear title
so that developers could quickly identify the general problem
when going through the issue list.
Instead of "Some suggestions", "Stuck", etc.
required: true
- label: >-
I have checked the latest beta update and there is no mention
of the bug being fixed.
required: true
- label: >-
I have reviewed the pinned issues and confirmed that my issue
is not mentioned.
required: true
- type: textarea
id: describe
attributes:
@@ -46,45 +43,28 @@ body:
Please provide the MAA version. Can be found in MAA -> Settings -> Update. (Click to copy)
placeholder: |
Resource Version:
MAA Version:
UI Version:
Core Version:
validations:
required: true
- type: textarea
id: logs
attributes:
label: Log and config files
label: Log files
description: >-
**After closing MAA, upload the following 5 files:**
1. The `asst.log` `gui.log` `asst.bak.log` and `gui.bak.log` log file in the `debug` folder, and indicate the approximate point in time when the problem occurred.
2. The `gui.json` config file in the `config` folder
**After closing the MAA, upload the `asst.log` and `gui.log` log file in the `debug` folder and**
**indicate the approximate point in time when the problem occurred.**
If you are using MacBook, please click the "File" option in the top-left corner of the screen, then click "Open Log Folder".
**Please drag and drop the full file in, not your own cuttings or copies;**
**compress it before uploading if too large.**
placeholder: |
Please confirm that MAA is not running before uploading files.
validations:
required: true
- type: textarea
id: configuration
attributes:
label: Configuration information
description: |
Please specify the operating system and version, emulator brand, emulator resolution, DPI, and frame rate;
If you are using MuMu 12 or LDPlayer 9, please specify whether Screenshot Enhancement is enabled;
Finally, please specify whether GPU accelerated inference is enabled, and if so, provide the GPU model.
validations:
required: true
- type: textarea
id: screenshots
attributes:
label: Screenshots or recordings
label: Screenshots
description: >-
In the `debug` directory, within the functionally categorized folders,
there are some error images captured automatically.
If related to this issue, please upload them together.
If available, upload screenshots and recordings to help explain your problem,
If available, add screenshots to help explain your problem,
including but not limited to screenshots of MAA software,
screenshots of game screens.
@@ -92,11 +72,11 @@ body:
the **original image** taken by the emulator's own screenshot tool
(or via adb).
Screenshots taken with other tools may contain the frames of the window/emulator
and their aspect ratio and resolution are inconsistent,
which makes it harder for us to debug.
Screenshots taken with other tools may contain the frames of the window/emulator, which makes it harder for us to debug.
If the file siz is too large, you may compress it before uploading.
The `debug` folder has some automatic screenshots of the error images,
if you have any,
please upload them together.
validations:
required: false
@@ -104,7 +84,11 @@ body:
id: others
attributes:
label: Anthing else?
description: |
Anything that will give us more insight into the problem you are having.
description: >-
Emulator used, operating system, related configuration, links,
reference material, etc.
Anything that will give us more insight into the problem
you are having.
validations:
required: false

View File

@@ -1,20 +1,16 @@
name: Feature Request (in English)
description: New features, suggestions, etc.
labels: ["enhancement"]
labels: ['enhancement']
body:
- type: checkboxes
id: checks
attributes:
label: Before raising the issue...
options:
- label: I filled in a short, clear title so that developers could quickly identify the general problem when going through the issue list. Instead of "Some suggestions", "Stuck", etc.
required: true
- label: I'm probably sure this is a new feature/suggestion and not a bug encountered (please attach logs if you're not sure)
required: true
- label: I am using the latest version of the current update and have reviewed both the updates released so far and the unreleased changes in the Pull Requests, but there is no mention of this feature/suggestion being added.
required: true
- label: I have reviewed the Pinned issue (Announcements), Open issues, and Closed issues to ensure that my feature/suggestion has not been mentioned.
required: true
- label: I filled in a short, clear title so that developers could quickly identify the general problem when going through the issue list. Instead of "Some suggestions", "Stuck", etc.
required: true
- label: I'm probably sure this is a new feature/suggestion and not a bug encountered (please attach logs if you're not sure)
required: true
- type: textarea
id: describe
attributes:

View File

@@ -1,6 +1,6 @@
name: Others (in English)
description: Ask a question rather than a bug report or feature request.
labels: ["question"]
labels: ['question']
body:
- type: textarea
id: describe

View File

@@ -1,18 +0,0 @@
version: 2
updates:
- package-ecosystem: github-actions
directory: /.github/workflows
schedule:
interval: weekly
commit-message:
prefix: ci
assignees:
- constrat
- AnnAngela
groups:
github-actions:
patterns:
- "*"
ignore:
- dependency-name: "Nerixyz/actionsx-prettier"
versions: ["3.0.0"]

File diff suppressed because it is too large Load Diff

View File

@@ -11,6 +11,7 @@ reviewers:
# A list of assignees to be added to pull requests (GitHub user name)
assignees:
- AnnAngela
# A list of keywords to be skipped the process that add reviewers if pull requests include it
# skipKeywords:
# - wip

View File

@@ -1,48 +0,0 @@
name: Git Blame Ignore
on:
schedule:
- cron: "45 21 * * *" # Runs daily at 22:00 UTC
workflow_dispatch:
jobs:
blame-ignore:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
persist-credentials: false # Needed to bypass protection rules in Push changes
- name: Check blame
id: check_changes
run: |
LAST_CHECKED_COMMIT=$(cat .github/.last-blame-ignore-commit 2>/dev/null || git rev-list --max-parents=0 HEAD)
git log $LAST_CHECKED_COMMIT..HEAD --pretty=format:"%H %s" --grep="\[blame ignore\]" | awk '{print $1}' >> .git-blame-ignore-revs
git diff --quiet .git-blame-ignore-revs
- name: Commit and Push changes
if: ${{ steps.check_changes.outcome == 'failure' }}
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git rev-parse HEAD > .github/.last-blame-ignore-commit
git add .github/.last-blame-ignore-commit .git-blame-ignore-revs
git commit -m "chore: auto blame ignore" -m "[skip changelog]"
- name: Push changes
if: ${{ steps.check_changes.outcome == 'failure' }}
uses: ad-m/github-push-action@master
with:
branch: ${{ github.ref }}
github_token: ${{ secrets.MAA_RESOURCE_SYNC }}
- name: Stop if no changes
if: ${{ steps.check_changes.outcome == 'success' }}
uses: andymckay/cancel-action@0.5

View File

@@ -28,17 +28,8 @@ on:
- "!**/*.md"
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
meta:
# Prevent duplicate runs on organization branches with PRs
if: github.event_name != 'pull_request' ||
github.event.pull_request.head.repo.full_name !=
github.event.pull_request.base.repo.full_name
runs-on: ubuntu-latest
outputs:
tag: ${{ steps.set_tag.outputs.tag }}
@@ -98,11 +89,6 @@ jobs:
path: CHANGELOG.md
windows:
# Prevent duplicate runs on organization branches with PRs
if: github.event_name != 'pull_request' ||
github.event.pull_request.head.repo.full_name !=
github.event.pull_request.base.repo.full_name
needs: meta
strategy:
matrix:
@@ -135,16 +121,7 @@ jobs:
if: steps.cache-nuget.outputs.cache-hit != 'true'
run: dotnet restore
- name: Cache MaaDeps
id: cache-maadeps
uses: actions/cache@v4
with:
path: |
./MaaDeps
key: ${{ runner.os }}-${{ matrix.lowercase_target }}-maadeps-${{ hashFiles('./maadeps-download.py') }}
- name: Bootstrap MaaDeps
if: steps.cache-maadeps.outputs.cache-hit != 'true'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
@@ -202,18 +179,11 @@ jobs:
path: artifacts
ubuntu:
# Prevent duplicate runs on organization branches with PRs
if: github.event_name != 'pull_request' ||
github.event.pull_request.head.repo.full_name !=
github.event.pull_request.base.repo.full_name
needs: meta
runs-on: ubuntu-latest
strategy:
matrix:
arch: [aarch64, x86_64]
permissions:
actions: write
steps:
- name: Checkout code
uses: actions/checkout@v4
@@ -229,8 +199,9 @@ jobs:
- name: Setup ccache
uses: Chocobo1/setup-ccache-action@v1
with:
remove_stale_cache: false
# Caching not necessary on ubuntu runner
- name: Bootstrap MaaDeps
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -299,9 +270,9 @@ jobs:
cp -v tools/AppImage/io.github.maaassistantarknights.maaassistantarknights.metainfo.xml Maa.AppDir/usr/share/metainfo/
wget "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage"
# appimagetool with embedded runtime does not support cross build, till AppImage/appimagetool 7a10b8
wget "https://github.com/AppImage/type2-runtime/releases/download/old/runtime-fuse3-${{ matrix.arch }}"
wget "https://github.com/AppImage/type2-runtime/releases/download/continuous/runtime-${{ matrix.arch }}"
chmod a+x appimagetool-x86_64.AppImage
ARCH=${{ matrix.arch }} ./appimagetool-x86_64.AppImage --runtime-file runtime-fuse3-${{ matrix.arch }} Maa.AppDir
ARCH=${{ matrix.arch }} ./appimagetool-x86_64.AppImage --runtime-file runtime-${{ matrix.arch }} Maa.AppDir
chmod a+x MaaAssistantArknights-${{ matrix.arch }}.AppImage
mv -v MaaAssistantArknights-${{ matrix.arch }}.AppImage $GITHUB_WORKSPACE/release/MAA-${{ needs.meta.outputs.tag }}-linux-${{ matrix.arch }}.AppImage
@@ -320,11 +291,6 @@ jobs:
release/*.tar.gz
macOS-Core:
# Prevent duplicate runs on organization branches with PRs
if: github.event_name != 'pull_request' ||
github.event.pull_request.head.repo.full_name !=
github.event.pull_request.base.repo.full_name
needs: meta
runs-on: macos-14
strategy:
@@ -340,7 +306,6 @@ jobs:
run: |
brew install ninja
# Caching not necessary on macOS runner
- name: Bootstrap MaaDeps
run: |
[[ ${{ matrix.arch }} = "arm64" ]] && triplet="arm64-osx" || triplet="x64-osx"
@@ -364,11 +329,6 @@ jobs:
path: "install/*.dylib"
macOS-GUI:
# Prevent duplicate runs on organization branches with PRs
if: github.event_name != 'pull_request' ||
github.event.pull_request.head.repo.full_name !=
github.event.pull_request.base.repo.full_name
needs: [meta, macOS-Core]
runs-on: macos-14
steps:
@@ -397,11 +357,6 @@ jobs:
p12-file-base64: ${{ secrets.HGUANDL_SIGN_CERT_P12 }}
p12-password: ${{ secrets.HGUANDL_SIGN_CERT_PASSWD }}
- name: Setup Xcode Toolchain
if: true
run: |
sudo xcode-select -s /Applications/Xcode_15.3.app/Contents/Developer
- name: Build Universal Binaries
run: |
mkdir build
@@ -409,24 +364,6 @@ jobs:
lipo -create install-arm64/$LIB_NAME install-x86_64/$LIB_NAME -output build/$LIB_NAME
done
- name: Archive Runtime Files
run: |
mkdir runtime && cd runtime
name='MAA-${{ needs.meta.outputs.tag }}-macos-runtime-universal'
mkdir "$name" && cd "$name"
cp -v ../../build/*.dylib .
ln -vs libonnxruntime*.dylib libonnxruntime.dylib
ln -vs libopencv_world4*.dylib libopencv_world4.dylib
cp -vr ../../resource .
cd .. || exit 1
zip -yrX9 "$name.zip" "$name"
- name: Upload MAA runtime to Github
uses: actions/upload-artifact@v4
with:
name: MAA-macos-runtime-universal
path: runtime/MAA-${{ needs.meta.outputs.tag }}-macos-runtime-universal.zip
- name: Build XCFramework
run: |
xcodebuild -create-xcframework -library libMaaCore.dylib -headers ../include -output MaaCore.xcframework
@@ -502,12 +439,8 @@ jobs:
path: ${{ startsWith(github.ref, 'refs/tags/v') && 'release/MAA*' || 'src/MaaMacGui/MAA.xcarchive/**' }}
release:
# Prevent duplicate runs on organization branches with PRs
if: (github.event_name != 'pull_request' ||
github.event.pull_request.head.repo.full_name !=
github.event.pull_request.base.repo.full_name) && startsWith(github.ref, 'refs/tags/v')
needs: [meta, windows, ubuntu, macOS-Core, macOS-GUI]
if: startsWith(github.ref, 'refs/tags/v')
needs: [meta, windows, ubuntu, macOS-GUI]
runs-on: ubuntu-latest
steps:
- name: Download MAA from Github
@@ -524,7 +457,7 @@ jobs:
find . -type f | while read f; do mv -fvt . $f; done
- name: Release to Github
uses: softprops/action-gh-release@v2
uses: softprops/action-gh-release@v1
with:
body_path: CHANGELOG.md
files: |

View File

@@ -2,7 +2,7 @@ name: gen-changelog
on:
pull_request:
types:
types:
- opened
- reopened
- ready_for_review
@@ -79,9 +79,8 @@ jobs:
git commit -m "$commit_msg"
- name: Create PR
uses: peter-evans/create-pull-request@v7
uses: peter-evans/create-pull-request@v5
with:
sign-commits: true
token: ${{ secrets.GITHUB_TOKEN }}
title: ${{ steps.extract_tag.outputs.pr_title }}
body-path: ${{ format('{0}/{1}', runner.temp, 'output' ) }}
@@ -94,6 +93,6 @@ jobs:
AnnAngela
- name: Add reviewers to release PR
uses: kentaro-m/auto-assign-action@v2.0.0
uses: kentaro-m/auto-assign-action@v1.2.5
with:
configuration-path: ".github/release_reviewers.yaml"

View File

@@ -1,5 +1,4 @@
name: "Issue Checker"
on:
issues:
types: [opened, edited]
@@ -17,7 +16,7 @@ jobs:
triage:
runs-on: ubuntu-latest
steps:
- uses: MaaAssistantArknights/issue-checker@v1.14
- uses: zzyyyl/issue-checker@v1.8
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
configuration-path: .github/issue-checker.yml

View File

@@ -1,55 +1,49 @@
name: Check Dead Links
name: Lint Markdown files
on:
schedule:
- cron: "0 0 * * 2" # Every Tuesday at 00:00 UTC
push:
branches:
- dev
paths:
- "**/*.md"
- "docs/**"
- ".github/workflows/markdown-checker.yml"
- ".github/workflows/lint-markdown.yml"
pull_request:
branches:
- dev
paths:
- "**/*.md"
- "docs/**"
- ".github/workflows/markdown-checker.yml"
- ".github/workflows/lint-markdown.yml"
schedule:
- cron: "44 7 * * 2"
workflow_dispatch:
jobs:
check-links:
if: ${{ github.event.head_commit.author.email != '41898282+github-actions[bot]@users.noreply.github.com' }}
name: Check Dead Links
lint:
name: Lint Markdown
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- name: Check out code
uses: actions/checkout@v4
with:
show-progress: false
- name: Check dead links
uses: lycheeverse/lychee-action@v2
- name: Lint Markdown
uses: DavidAnson/markdownlint-cli2-action@v16
with:
# 仅检查内部链接和 Github 相关链接
args: >
--verbose --no-progress --cache --max-cache-age 1d
--exclude 'https?://.*'
--include 'https?://github\.com/.*'
--include 'https?://raw\.githubusercontent\.com/.*'
--include 'https?://user-images\.githubusercontent\.com/.*'
--exclude-path 'docs/zh-tw/manual/introduction/introduction_old.md'
--exclude-path 'docs/ja-jp/manual/introduction/introduction_old.md'
-- './docs/**/*.md' './README.md'
config: docs/.markdownlint.yaml
globs: |
README.md
docs/**/*.md
- name: Comment (only for PR)
if: failure() && github.event_name == 'pull_request'
uses: marocchino/sticky-pull-request-comment@v2
with:
message: |
Dead links found in the documentation. Please fix them.
Details: https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/${{ github.run_id }}
# check-links:
# name: Check Dead Links
# runs-on: ubuntu-latest
# steps:
# - name: Check out code
# uses: actions/checkout@v4
# with:
# show-progress: false
#
# - name: Check Dead Link
# uses: umbrelladocs/action-linkspector@v1
# with:
# # Use github-pr-review when triggered by a pull request; otherwise, use github-check
# reporter: ${{ github.event_name == 'pull_request' && 'github-pr-review' || 'github-check' }}
# filter_mode: nofilter
# fail_on_error: true

View File

@@ -1,108 +0,0 @@
name: Optimize PNG Templates
on:
push:
branches:
- "dev"
paths:
- "resource/**/*.png"
- "docs/.vuepress/public/image/**"
- "website/apps/web/public/**"
- "website/apps/web/src/assets/links/**"
workflow_dispatch:
inputs:
commit_message:
description: "Commit Message"
type: string
required: false
jobs:
optimize-png:
# Skip workflow to prevent double consecutive runs
# Skip workflow on PR merges
if: ${{ github.event.head_commit.author.email != '41898282+github-actions[bot]@users.noreply.github.com' }}
runs-on: ubuntu-latest
steps:
- name: Check for direct push
id: check_push
run: |
if [[ "${{ github.event_name }}" != "workflow_dispatch" ]]; then
pr_merge_status=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
"https://api.github.com/repos/${{ github.repository }}/commits/${{ github.event.after }}/pulls" | xargs)
if [[ "$pr_merge_status" == "[ ]" ]]; then
echo "Direct push detected. Proceeding..."
echo "is_pr=False" >> $GITHUB_OUTPUT
else
echo "PR merge detected. Exiting."
echo "is_pr=True" >> $GITHUB_OUTPUT
fi
else
echo "Manual trigger detected. Proceeding..."
echo "is_pr=False" >> $GITHUB_OUTPUT
fi
- name: Checkout repository
if: steps.check_push.outputs.is_pr != 'True'
uses: actions/checkout@v4
with:
show-progress: false
persist-credentials: false
- name: Setup python
if: steps.check_push.outputs.is_pr != 'True'
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Cache Python packages
id: cache_python
if: steps.check_push.outputs.is_pr != 'True' && always()
uses: actions/cache@v4
with:
path: ${{ env.pythonLocation }}/lib/python3.11/site-packages
key: ${{ runner.os }}-pip-optimize-templates-${{ hashFiles('./tools/OptimizeTemplates/requirements.txt') }}
- name: Install dependencies
if: steps.check_push.outputs.is_pr != 'True' && steps.cache_python.outputs.cache-hit != 'true'
run: |
pip install -r tools/OptimizeTemplates/requirements.txt
- name: Setup oxipng
if: steps.check_push.outputs.is_pr != 'True'
uses: baptiste0928/cargo-install@v3
with:
crate: oxipng
- name: Run optimize_templates
if: steps.check_push.outputs.is_pr != 'True'
run: |
python3 tools/OptimizeTemplates/optimize_templates.py
- name: Commit changes
id: commit_changes
if: steps.check_push.outputs.is_pr != 'True'
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add .
if git diff-index --quiet HEAD --; then
echo "No changes to commit"
else
commit_msg="${{ github.event.inputs.commit_message }}"
if [ -z "$commit_msg" ]; then
commit_msg="chore: Auto Templates Optimization"
fi
git commit -m "$commit_msg" -m "Triggered by ${{github.sha}}" -m "[skip changelog]"
git pull origin $(git rev-parse --abbrev-ref HEAD) --unshallow --rebase
echo "have_commits=True" >> $GITHUB_OUTPUT
fi
- name: Push changes
if: steps.check_push.outputs.is_pr != 'True' && steps.commit_changes.outputs.have_commits == 'True'
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.MAA_RESOURCE_SYNC }}
branch: ${{ github.ref }}

View File

@@ -4,6 +4,7 @@ on:
pull_request_target:
types: [opened, edited, ready_for_review, reopened, synchronize]
jobs:
check_commit_name_in_pr:
if: ${{ !github.event.pull_request.merged && github.base_ref != 'master' }}
@@ -38,7 +39,7 @@ jobs:
per_page: 100
});
const regex = /^((build|chore|ci|docs?|feat!?|fix|perf|refactor|rft|style|test|i18n|typo|debug)[\:\.\(\,]|[Rr]evert|[Rr]elease)/;
const regex = /^((build|chore|ci|docs?|feat!?|fix|perf|refactor|rft|style|test|i18n|typo)[\:\.\(\,]|[Rr]evert|[Rr]elease)/;
const invalidCommits = commits.filter(commit => !regex.test(commit.commit.message) || commit.parents.length > 1);
console.log(`Checked ${commits.length} commit(s)`);
@@ -51,8 +52,8 @@ jobs:
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.pull_request.number,
body: `## ⚠️ Found ${invalidCommits.length} invalid commit(s):\n\n${invalidCommitInfoList}\n\n---\nPlease follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) format, and do not use merge commits.`
body: `## ⚠️ Found ${invalidCommits.length} invalid commit(s):\n\n${invalidCommitInfoList}\n\n---\nPlease follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) format.`
});
core.setFailed(`Found ${invalidCommits.length} invalid commit(s):\n${invalidCommitNames.join("\n-------------------\n")}`);
}
}

View File

@@ -1,8 +1,6 @@
name: release-nightly-ota
on:
schedule:
- cron: "0 22 * * *" # Runs daily at 22:00 UTC
workflow_dispatch:
inputs:
release_body:
@@ -13,15 +11,15 @@ on:
description: "Commit to build (git checkout)"
type: string
required: false
limit_maa:
limit:
description: "Number of releases to fetch from MaaAssistantArknights"
required: true
default: "10"
default: 30
type: number
limit_mr:
limit_2:
description: "Number of releases to fetch from MaaRelease"
required: true
default: "10"
default: 30
type: number
jobs:
@@ -29,7 +27,9 @@ jobs:
runs-on: windows-latest
strategy:
matrix:
msbuild_target: [x64]
include:
- msbuild_target: x64
lowercase_target: x64
fail-fast: false
env:
MAABUILDER_TARGET_PLATFORM: ${{ matrix.msbuild_target }}
@@ -37,7 +37,7 @@ jobs:
tag: ${{ steps.set_tag.outputs.tag }}
pre_version: ${{ steps.set_tag.outputs.pre_version }}
main_tag_name: ${{ steps.push_main_tag.outputs.main_tag_name }}
changelog: ${{ steps.read_changelog.outputs.content }}
changelog: ${{ steps.generate_changelog.outputs.changelog }}
steps:
- uses: actions/checkout@v4
with:
@@ -47,24 +47,6 @@ jobs:
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}
- name: Check for changes in dev branch
id: check_changes
run: |
# Get the commit hash and date of the latest commit within the last 24 hours
$recent_commit = git log --since="24 hours ago" --pretty=format:"%H" -n 1
if (-not $recent_commit) {
Write-Output "No commits in the last 24 hours. Cancelling workflow..."
echo "cancel_run=true" >> $env:GITHUB_ENV
} else {
Write-Output "Commits found within the last 24 hours. Continuing build..."
echo "cancel_run=false" >> $env:GITHUB_ENV
}
- name: Stop if no changes
if: env.cancel_run == 'true'
uses: andymckay/cancel-action@0.5
- name: Checkout ref
run: |
if ("${{ inputs.ref }}" -ne "") {
@@ -93,9 +75,9 @@ jobs:
}
if ($ids.length -eq 4) {
$dist = `printf "%03d"` $ids[2]
$pre_version = "$($ids[0])-$($ids[1])"
$pre_version = "$($ids[0])""-""$($ids[1])"
echo "tag=$($ids[0])-$($ids[1]).d$($dist).$($ids[3])" >> $env:GITHUB_OUTPUT
echo "pre_version=$pre_version" >> $env:GITHUB_OUTPUT
echo "tag=$pre_version.d$($dist).$($ids[3])" >> $env:GITHUB_OUTPUT
exit 0
}
exit 1
@@ -115,17 +97,13 @@ jobs:
id: generate_changelog
run: |
python3 tools/ChangelogGenerator/changelog_generator.py --latest "${{ steps.set_tag.outputs.latest_tag }}" --tag "${{ steps.set_tag.outputs.tag }}"
Get-Content .\changelog.md | Select-Object -Skip 2 | Out-File -FilePath changelog_notag.md -Encoding utf8
$content=$(((Get-Content .\changelog.md) | Select-Object -Skip 2) -join "\n\n")
echo "changelog=$content" >> $env:GITHUB_OUTPUT
echo $content
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PYTHONIOENCODING: "utf-8"
- name: Read Changelog to variable
id: read_changelog
uses: juliangruber/read-file-action@v1
with:
path: ./changelog_notag.md
- name: Cache .nuke/temp, ~/.nuget/packages
id: cache-nuget
uses: actions/cache@v4
@@ -133,26 +111,17 @@ jobs:
path: |
.nuke/temp
~/.nuget/packages
key: ${{ runner.os }}-${{ matrix.msbuild_target }}-${{ hashFiles('**/global.json', '**/*.csproj') }}
key: ${{ runner.os }}-${{ hashFiles('**/global.json', '**/*.csproj') }}
- name: Restore dependencies
if: steps.cache-nuget.outputs.cache-hit != 'true'
run: dotnet restore
- name: Cache MaaDeps
id: cache-maadeps
uses: actions/cache@v4
with:
path: |
./MaaDeps
key: ${{ runner.os }}-${{ matrix.msbuild_target }}-maadeps-${{ hashFiles('./maadeps-download.py') }}
- name: Bootstrap MaaDeps
if: steps.cache-maadeps.outputs.cache-hit != 'true'
run: |
python3 maadeps-download.py ${{ matrix.lowercase_target }}-windows
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
python3 maadeps-download.py ${{ matrix.msbuild_target }}-windows
- name: Taggify Version
run: |
@@ -190,7 +159,7 @@ jobs:
- name: Upload MAA to Github
uses: actions/upload-artifact@v4
with:
name: MAA-win-${{ matrix.msbuild_target }}
name: MAA-win-${{ matrix.lowercase_target }}
path: artifacts
push-tag:
@@ -243,17 +212,8 @@ jobs:
run: |
mkdir -pv build-ota && cd build-ota
# Convert inputs to integers
limit_maa=${{ inputs.limit_maa || 10 }}
limit_maa=${limit_maa%.*}
echo "Parsed limit_maa: $limit_maa"
limit_mr=${{ inputs.limit_mr || 10 }}
limit_mr=${limit_mr%.*}
echo "Parsed limit_mr: $limit_mr"
gh release list --repo 'MaaAssistantArknights/MaaAssistantArknights' --limit $limit_maa | tee ./release_maa.txt
gh release list --repo "${{ github.repository_owner }}/MaaRelease" --limit $limit_mr | tee ./release_mr.txt
gh release list --repo 'MaaAssistantArknights/MaaAssistantArknights' --limit ${{ inputs.limit || 30 }} | tee ./release_maa.txt
gh release list --repo "${{ github.repository_owner }}/MaaRelease" --limit ${{ inputs.limit_2 || 30 }} | tee ./release_mr.txt
echo ${{ needs.build-win-nightly.outputs.tag }} > ./config
cat ./release_maa.txt | awk '{ print $1 }' > ./tags_maa.txt
@@ -282,6 +242,22 @@ jobs:
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Make release body
id: make_release_body
shell: bash
run: |
pre_version=${{ needs.build-win-nightly.outputs.pre_version }}
cur_version=${{ needs.build-win-nightly.outputs.main_tag_name }}
echo -e "${{ inputs.release_body || '' }}\n\n${{ needs.build-win-nightly.outputs.changelog }}\n\n**Full Changelog**: [$pre_version -> $cur_version](https://github.com/$GITHUB_REPOSITORY/compare/$pre_version...$cur_version)" > alpha_changelog.md
export r=$(cat alpha_changelog.md)
# https://github.com/svenstaro/upload-release-action
r="${r//'%'/'%25'}" # Multiline escape sequences for %
r="${r//$'\n'/'%0A'}" # Multiline escape sequences for '\n'
r="${r//$'\r'/'%0D'}" # Multiline escape sequences for '\r'
echo $r
echo "full_release_body=$r" >> $GITHUB_OUTPUT
- name: Upload to MaaRelease
uses: svenstaro/upload-release-action@v2
with:
@@ -292,12 +268,7 @@ jobs:
tag: ${{ env.release_tag }}
prerelease: true
overwrite: true
body: |
${{ inputs.release_body || '' }}
${{ needs.build-win-nightly.outputs.changelog }}
**Full Changelog**: [${{ needs.build-win-nightly.outputs.pre_version }} -> ${{ needs.build-win-nightly.outputs.main_tag_name }}](https://github.com/${{ github.repository }}/compare/${{ needs.build-win-nightly.outputs.pre_version }}...${{ needs.build-win-nightly.outputs.main_tag_name }})
body: ${{ steps.make_release_body.outputs.full_release_body }}
- name: Setup release mirror
run: |

View File

@@ -9,12 +9,12 @@ on:
limit:
description: Number of releases to fetch from MaaAssistantArknights, 2 at least
required: false
default: "31"
default: '31'
type: number
limit_2:
description: Number of releases to fetch from MaaRelease
required: false
default: "30"
default: '30'
type: number
env:
@@ -37,18 +37,8 @@ jobs:
id: fetchReleaseInfo
run: |
mkdir -pv build-ota && cd build-ota
# Convert inputs to integers
limit=${{ inputs.limit || 31 }}
limit=${limit%.*}
echo "Parsed limit: $limit"
limit_2=${{ inputs.limit_2 || 30 }}
limit_2=${limit_2%.*}
echo "Parsed limit_2: $limit_2"
gh release list --repo 'MaaAssistantArknights/MaaAssistantArknights' --limit $limit | tee ./release_maa.txt
gh release list --repo "MaaAssistantArknights/MaaRelease" --limit $limit_2 | tee ./release_mr.txt
gh release list --repo 'MaaAssistantArknights/MaaAssistantArknights' --limit ${{ inputs.limit || 31 }} | tee ./release_maa.txt
gh release list --repo "MaaAssistantArknights/MaaRelease" --limit ${{ inputs.limit_2 || 30 }} | tee ./release_mr.txt
head -n 1 ./release_maa.txt | awk '{ print $1 }' > ./config
tail -n +1 ./release_maa.txt | awk '{ print $1 }' > ./tags_maa.txt
@@ -166,6 +156,31 @@ jobs:
run: |
find ./packages -type f ! \( -name 'MAA-${{ needs.create-tag.outputs.release_tag }}-macos-universal.dmg' -o -name '*.delta' -o -name '*.xml' \) -print -delete
- name: Unpack the .dmg files for .dylib
run: |
cd ${{ runner.temp }}
mkdir -p macos-runtime-temp
echo ::group::Attaching release package...
hdiutil attach ${{ github.workspace }}/packages/MAA-${{ needs.create-tag.outputs.release_tag }}-macos-universal.dmg
echo ::endgroup::
echo ::group::Copying files...
cp -v /Volumes/MAA/MAA.app/Contents/Frameworks/*.dylib macos-runtime-temp/
cp -vr /Volumes/MAA/MAA.app/Contents/Resources/resource macos-runtime-temp/resource
echo ::endgroup::
echo ::group::Linking files...
libonnxruntime_file=$(basename macos-runtime-temp/libonnxruntime*.dylib)
ln -vs $libonnxruntime_file macos-runtime-temp/libonnxruntime.dylib
libopencv_world_file=$(basename macos-runtime-temp/libopencv_world*.dylib)
ln -vs $libopencv_world_file macos-runtime-temp/libopencv_world4.dylib
echo ::endgroup::
cd macos-runtime-temp
echo ::group::Compressing files...
zip -yrX9 ${{ github.workspace }}/packages/MAA-${{ needs.create-tag.outputs.release_tag }}-macos-runtime-universal.zip *
echo ::endgroup::
echo ::group::Detaching release package...
hdiutil detach /Volumes/MAA
echo ::endgroup::
- name: Upload to MaaRelease
uses: svenstaro/upload-release-action@v2
with:

View File

@@ -2,7 +2,7 @@ name: res-update-game
on:
schedule:
- cron: "*/20 * * * *" # Runs every 20 minutes
- cron: "*/20 * * * *"
workflow_dispatch:
inputs:
commit_message:
@@ -11,18 +11,38 @@ on:
required: false
jobs:
clone-resources-official:
update-game-resources:
if: github.repository_owner == 'MaaAssistantArknights'
runs-on: ubuntu-latest
runs-on: windows-latest
env:
GH_TOKEN: ${{ secrets.MISTEOWORKFLOW }}
steps:
- name: Checkout MAA
uses: actions/checkout@v4
with:
show-progress: false
token: ${{ secrets.MISTEOWORKFLOW }}
- name: Bootstrap MaaDeps
run: |
python3 maadeps-download.py x64-windows
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1
- name: Build Resource Updater
run: |
MSBUILD tools/ResourceUpdater/ResourceUpdater.vcxproj /t:rebuild /p:Configuration="Release" /p:Platform="x64" /p:BuildProjectReferences=false /m
- name: Clone ArknightsGameResource for Official
uses: actions/checkout@v4
with:
show-progress: false
repository: yuanyan3060/ArknightsGameResource
ref: main
path: ./Official
sparse-checkout-cone-mode: false
path: .\tools\ResourceUpdater\x64\Release\Official
sparse-checkout: |
/levels.json
/item
@@ -34,26 +54,15 @@ jobs:
/gamedata/excel/gacha_table.json
/gamedata/excel/roguelike_topic_table.json
/gamedata/excel/activity_table.json
sparse-checkout-cone-mode: false
- name: Upload Official
uses: actions/upload-artifact@v4
with:
name: official
path: ./Official
compression-level: 0
clone-resources-overseas:
if: github.repository_owner == 'MaaAssistantArknights'
runs-on: ubuntu-latest
steps:
- name: Clone ArknightsGameResource_Yostar for Overseas
uses: actions/checkout@v4
with:
show-progress: false
repository: Kengxxiao/ArknightsGameData_Yostar
ref: main
path: ./Overseas
sparse-checkout-cone-mode: false
path: .\tools\ResourceUpdater\x64\Release\Overseas
sparse-checkout: |
/en_US/gamedata/excel/item_table.json
/en_US/gamedata/excel/building_data.json
@@ -76,231 +85,105 @@ jobs:
/ko_KR/gamedata/excel/gacha_table.json
/ko_KR/gamedata/excel/roguelike_topic_table.json
/ko_KR/gamedata/excel/activity_table.json
sparse-checkout-cone-mode: false
- name: Upload Official
uses: actions/upload-artifact@v4
with:
name: overseas
path: ./Overseas
compression-level: 0
clone-resources-txwy:
if: github.repository_owner == 'MaaAssistantArknights'
runs-on: ubuntu-latest
steps:
- name: Clone arknights-toolbox-update for Taiwan
uses: actions/checkout@v4
with:
show-progress: false
repository: arkntools/arknights-toolbox-update
ref: data-tw
path: ./excel
path: .\tools\ResourceUpdater\x64\Release\Overseas\zh_TW\gamedata\excel
token: ${{ secrets.ARKNTOOLS_MAA_RESOURCE_UPDATER}}
- name: Download stages.json from Penguin Stats
run: |
cd "./excel"
baseUrl="https://penguin-stats.io/PenguinStats/api/v2/stages?server="
parameters=("CN" "US" "JP" "KR")
for param in "${parameters[@]}"; do
{
if curl -s -o "stages_${param}.json" "${baseUrl}${param}"; then
echo "Successfully fetched data for ${param}"
else
echo "Failed to fetch data for ${param}" >&2
exit 1
fi
} &
done
wait
- name: Upload Official
uses: actions/upload-artifact@v4
with:
name: txwy
path: ./excel
compression-level: 0
update-game-resources:
# In case of rate limitations on the runners/instances, add dependency, by removing the comment
# needs: [clone-resources-official, clone-resources-overseas, clone-resources-txwy]
if: github.repository_owner == 'MaaAssistantArknights'
runs-on: windows-latest
steps:
- name: Checkout MAA
uses: actions/checkout@v4
with:
# TL;DR https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/9872#issuecomment-2251378371
# actions/checkout uses ${{ secrets.GITHUB_TOKEN }} by default, meaning all steps will inherit it
persist-credentials: false # Needed to bypass protection rules in Push changes
show-progress: false
fetch-depth: 3
- name: Restore ResourceUpdater.exe from cache
id: cache-resupd
uses: actions/cache/restore@v4
with:
key: ${{ runner.os }}-resource-updater-main-cpp-${{ hashFiles('./tools/ResourceUpdater/main.cpp') }}
path: |
./tools/ResourceUpdater/x64/Release/opencv_world4_maa.dll
./tools/ResourceUpdater/x64/Release/ResourceUpdater.exe
- name: Cache MaaDeps
if: steps.cache-resupd.outputs.cache-hit != 'true'
id: cache-maadeps
uses: actions/cache@v4
with:
path: |
./MaaDeps
key: ${{ runner.os }}-maadeps-${{ hashFiles('./maadeps-download.py') }}
- name: Bootstrap MaaDeps
if: steps.cache-resupd.outputs.cache-hit != 'true' && steps.cache-maadeps.outputs.cache-hit != 'true'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
python3 maadeps-download.py x64-windows
- name: Add msbuild to PATH
if: steps.cache-resupd.outputs.cache-hit != 'true'
uses: microsoft/setup-msbuild@v2
- name: Build Resource Updater
if: steps.cache-resupd.outputs.cache-hit != 'true'
run: |
MSBUILD tools/ResourceUpdater/ResourceUpdater.vcxproj /t:rebuild /p:Configuration="Release" /p:Platform="x64" /p:BuildProjectReferences=false /m
- name: Save ResourceUpdater.exe to cache
if: always() && steps.cache-resupd.outputs.cache-hit != 'true'
uses: actions/cache/save@v4
with:
key: ${{ runner.os }}-resource-updater-main-cpp-${{ hashFiles('./tools/ResourceUpdater/main.cpp') }}
path: |
./tools/ResourceUpdater/x64/Release/opencv_world4_maa.dll
./tools/ResourceUpdater/x64/Release/ResourceUpdater.exe
- name: Download txwy
uses: actions/download-artifact@v4.1.8
with:
name: txwy
path: ./tools/ResourceUpdater/x64/Release/Overseas/zh_TW/gamedata/excel
- name: Download Overseas
uses: actions/download-artifact@v4.1.8
with:
name: overseas
path: ./tools/ResourceUpdater/x64/Release/Overseas
- name: Download Official
uses: actions/download-artifact@v4.1.8
with:
name: official
path: ./tools/ResourceUpdater/x64/Release/Official
- name: Run Resource Updater
run: |
./tools/ResourceUpdater/x64/Release/ResourceUpdater.exe
.\tools\ResourceUpdater\x64\Release\ResourceUpdater.exe
- name: Task Sorting
id: task_sorting
- name: Overseas Tasks Ordering
run: |
python3 tools/TaskSorter/TaskSorter.py
Write-Output "gitdiff=$(git diff --name-only --diff-filter=ACM 2>$null | Select-String -Pattern '\.json$' -List)" >> $env:GITHUB_OUTPUT
- name: Run prettier
uses: Nerixyz/actionsx-prettier@v3-adj
with:
args: -w ${{ steps.task_sorting.outputs.gitdiff }}
- name: Check if only sorted and Templates
id: check_sorted_templates
run: pwsh tools/ResourceUpdater/validator.ps1
- name: Setup python
if: steps.check_sorted_templates.outputs.contains_png == 'True'
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Cache Python packages
if: always() && steps.check_sorted_templates.outputs.contains_png == 'True'
id: cache_python
uses: actions/cache@v4
with:
path: ${{ env.pythonLocation }}/Lib/site-packages
key: ${{ runner.os }}-pip-optimize-templates-${{ hashFiles('./tools/OptimizeTemplates/requirements.txt') }}
- name: Install dependencies
if: steps.cache_python.outputs.cache-hit != 'true' && steps.check_sorted_templates.outputs.contains_png == 'True'
- name: Check if only sorted
id: check_only_sorted
run: |
pip install -r tools/OptimizeTemplates/requirements.txt
git status
- name: Setup oxipng
if: steps.check_sorted_templates.outputs.contains_png == 'True'
uses: baptiste0928/cargo-install@v3
with:
crate: oxipng
$diff = $(git diff --numstat HEAD | findstr -i resource)
if ($LASTEXITCODE -ne 0) {
echo "no diff"
exit 0
}
- name: Run optimize_templates
if: steps.check_sorted_templates.outputs.contains_png == 'True'
run: |
python3 tools/OptimizeTemplates/optimize_templates.py -p resource/template/items/ resource/template/infrast/
echo "diff: "$diff
$sp = $($diff -split "\s+")
$numbers = $($sp | Where-Object { $_ -match "^\d+$" })
echo "numbers: "$numbers
$length = $numbers.Length
$noDiff = $true
for ($i = 0; $i -lt $length; $i += 2) {
$firstNumber = $numbers[$i]
$secondNumber = $numbers[$i+1]
if ($firstNumber -gt 1) {
$noDiff = $false
break
}
if ($firstNumber -ne $secondNumber) {
$noDiff = $false
break
}
}
echo "noDiff: "$noDiff
echo "only_sorted=$noDiff" >> $env:GITHUB_OUTPUT
- name: Cancelling
if: steps.check_only_sorted.outputs.only_sorted == 'True'
uses: andymckay/cancel-action@0.3
- name: Add files to git
if: steps.check_sorted_templates.outputs.changes == 'True'
if: steps.check_only_sorted.outputs.only_sorted != 'True'
id: add_files
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git status
git config user.name "$env:GITHUB_ACTOR"
git config user.email "$env:GITHUB_ACTOR@users.noreply.github.com"
git add .
$commit_msg = "${{ github.event.inputs.commit_message }}"
if ([string]::IsNullOrWhiteSpace($commit_msg)) {
$commit_msg = "chore: Auto Update Game Resources - $(Get-Date -Format 'yyyy-MM-dd')"
} else {
if (-not [string]::IsNullOrWhiteSpace($commit_msg)) {
$commit_msg = $commit_msg.Trim()
} else {
$commit_msg = "chore: Auto Update Game Resources - $(Get-Date -Format 'yyyy-MM-dd')"
}
$run_url = "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"
git commit -m "$commit_msg" -m "$run_url" -m "[skip changelog]"
git commit -m "$commit_msg" -m "[skip changelog]"
if ($LASTEXITCODE -eq 0) {
Write-Output "have_commits=True" >> $env:GITHUB_OUTPUT
echo "have_commits=True" >> $env:GITHUB_OUTPUT
}
git pull origin ${{ github.ref_name }} --rebase
git pull origin $(git rev-parse --abbrev-ref HEAD) --unshallow --rebase
- name: Push changes
- name: Cancelling
if: steps.add_files.outputs.have_commits != 'True'
uses: andymckay/cancel-action@0.3
- name: Push changes # push the output folder to your repo
if: steps.add_files.outputs.have_commits == 'True'
uses: ad-m/github-push-action@master
with:
branch: ${{ github.ref }}
github_token: ${{ secrets.MAA_RESOURCE_SYNC }}
github_token: ${{ secrets.MISTEOWORKFLOW }}
- name: Update OTA resource
if: steps.add_files.outputs.have_commits == 'True'
env:
GH_TOKEN: ${{ secrets.MAA_RESOURCE_SYNC }}
run: |
gh workflow --repo MaaAssistantArknights/MaaRelease run update-resource.yml
# - name: Delete cache
# if: always()
# env:
# GH_TOKEN: ${{ github.token }}
# run: |
# echo "Deleting the cache..."
# gh cache delete
- name: Add cancelled status
if: steps.check_sorted_templates.outputs.changes != 'True' || steps.add_files.outputs.have_commits != 'True'
uses: andymckay/cancel-action@0.5
# - name: Release # ref: https://docs.github.com/en/actions/using-workflows/triggering-a-workflow#triggering-a-workflow-from-a-workflow
# if: steps.add_files.outputs.have_commits == 'True'
# run: |
# gh workflow run release-nightly-ota -f release_body="Auto Release of Resource Updates"
# env:
# GH_TOKEN: ${{ github.token }}

View File

@@ -1,4 +1,4 @@
name: smoke-testing
name: test
on:
push:
@@ -25,16 +25,8 @@ on:
- "!**/*.md"
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
# Prevent duplicate runs on organization branches with PRs
if: github.event_name != 'pull_request' ||
github.event.pull_request.head.repo.full_name !=
github.event.pull_request.base.repo.full_name
smoke-testing:
runs-on: windows-latest
steps:
- name: Checkout code
@@ -42,93 +34,45 @@ jobs:
with:
show-progress: false
submodules: recursive
- name: Cache .nuke/temp, ~/.nuget/packages
id: cache-nuget
uses: actions/cache@v4
with:
path: |
.nuke/temp
~/.nuget/packages
key: ${{ runner.os }}-x64-${{ hashFiles('**/global.json', '**/*.csproj') }}
- name: Restore dependencies
if: steps.cache-nuget.outputs.cache-hit != 'true'
run: dotnet restore
- name: Cache MaaDeps
id: cache-maadeps
uses: actions/cache@v4
with:
path: |
./MaaDeps
key: ${{ runner.os }}-x64-maadeps-${{ hashFiles('./maadeps-download.py') }}
- name: Bootstrap MaaDeps
if: steps.cache-maadeps.outputs.cache-hit != 'true'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
python3 maadeps-download.py x64-windows
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v2
uses: microsoft/setup-msbuild@v1
- name: Build MaaSample
run: |
MSBUILD src/Cpp/MaaSample.slnf -t:restore,build -p:Configuration="Debug" -p:Platform="x64" -m
MSBUILD src/Cpp/MaaSample.slnf /t:rebuild /p:Configuration="Debug" /p:Platform="x64" /m
- name: Save build artifact to cache
uses: actions/cache/save@v4
with:
key: DELETE_KEY-smoke-testing-artifact-${{ github.ref }}
path: |
./x64/Debug
test:
# Prevent duplicate runs on organization branches with PRs
if: github.event_name != 'pull_request' ||
github.event.pull_request.head.repo.full_name !=
github.event.pull_request.base.repo.full_name
needs: build
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
client: [Official, YostarJP, YostarEN, YostarKR, txwy]
steps:
- name: Restore build artifact from cache
id: cache-smoke-testing
uses: actions/cache/restore@v4
with:
key: DELETE_KEY-smoke-testing-artifact-${{ github.ref }}
path: |
./x64/Debug
- name: Run tests - ${{ matrix.client }}
- name: Run tests - Official #用来判断是不是国服资源出错导致外服全炸
run: |
./x64/Debug/Sample.exe ${{ matrix.client }}
.\x64\Debug\Sample.exe
- name: Run tests - YostarJP
run: |
.\x64\Debug\Sample.exe YostarJP
- name: Run tests - YostarEN
run: |
.\x64\Debug\Sample.exe YostarEN
- name: Run tests - YostarKR
run: |
.\x64\Debug\Sample.exe YostarKR
- name: Run tests - txwy
run: |
.\x64\Debug\Sample.exe txwy
- name: Upload logs
if: always()
uses: actions/upload-artifact@v4
with:
name: log-${{ matrix.client }}
path: ./x64/Debug/debug
- name: Delete cache
if: always()
run: |
if ("${{ matrix.client }}" -eq "Official") {
$cacheKey = "DELETE_KEY-smoke-testing-artifact-${{ github.ref }}"
Write-Host "Deleting cache: $cacheKey"
curl -L -X DELETE `
-H "Accept: application/vnd.github+json" `
-H "Authorization: Bearer ${{secrets.GITHUB_TOKEN}}" `
-H "X-GitHub-Api-Version: 2022-11-28" `
"https://api.github.com/repos/MaaAssistantArknights/MaaAssistantArknights/actions/caches?key=$cacheKey"
}
name: log
path: .\x64\Debug\debug

View File

@@ -1,38 +0,0 @@
name: "Inactive Issues Closer"
on:
schedule:
- cron: "0 0 * * *" # Runs daily at UTC 00:00
workflow_dispatch: # Allows manual triggering
env: # config
daysBeforeStale: 90 # Number of days of inactivity before marking as stale
daysBeforeClose: 7 # Number of days to wait after marking as stale before closing
jobs:
stale:
runs-on: ubuntu-latest
permissions:
actions: write # Workaround for https://github.com/actions/stale/issues/1090
issues: write
# Completely disable stalling for PRs
pull-requests: none
contents: none
steps:
- name: Close inactive issues
uses: actions/stale@v9
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: ${{ env.daysBeforeStale }}
days-before-close: ${{ env.daysBeforeClose }}
stale-issue-label: "stale"
stale-issue-message: |
This issue has been inactive for a prolonged period and will be closed automatically in ${{ env.daysBeforeClose }} days.
该问题已长时间处于闲置状态,${{ env.daysBeforeClose }} 天后将自动关闭。
exempt-issue-labels: "keep-open, MAA Team, enhancement"
days-before-pr-stale: -1 # Completely disable stalling for PRs
days-before-pr-close: -1 # Completely disable closing for PRs
# Temporary to reduce the huge issues number
# operations-per-run: 500
debug-only: false

View File

@@ -1,17 +1,16 @@
name: sync-resource
on:
workflow_dispatch:
push:
branches:
- dev
paths:
- "resource/**"
- ".github/workflows/sync-resource.yml"
workflow_dispatch:
jobs:
sync-resource:
if: github.repository_owner == 'MaaAssistantArknights'
sync-reource:
runs-on: ubuntu-latest
steps:

View File

@@ -43,7 +43,7 @@ jobs:
with:
node-version: 20
cache: pnpm
cache-dependency-path: "./website/pnpm-lock.yaml"
cache-dependency-path: './website/pnpm-lock.yaml'
- name: Install dependencies
run: pnpm install --frozen-lockfile

9
.gitignore vendored
View File

@@ -437,9 +437,6 @@ tools/**/*.png
.vscode
enc_temp_folder/*
# RoguelikeRecruitmentTool 导出的 Excel 文件
tools/RoguelikeRecruitmentTool/output
# Nuke
.nuke/temp/*
@@ -451,9 +448,3 @@ tools/RoguelikeRecruitmentTool/output
# CF 活动关卡(异格夜刀),手动改的地图
/resource/Arknights-Tile-Pos/act24side_09-activities-act24side-level_act24side_09.json
/src/MaaWpfGui/FodyWeavers.xml
# 链接检查缓存
.lycheecache
# MaaDeps
/MaaDeps/*

5
.gitmodules vendored
View File

@@ -4,6 +4,11 @@
[submodule "src/MaaMacGui"]
path = src/MaaMacGui
url = https://github.com/MaaAssistantArknights/MaaMacGui.git
[submodule "MaaDeps"]
path = MaaDeps
url = https://github.com/MaaAssistantArknights/MaaDeps
shallow = true
branch = master
[submodule "src/maa-cli"]
path = src/maa-cli
url = https://github.com/MaaAssistantArknights/maa-cli.git

5
.linkspector.yml Normal file
View File

@@ -0,0 +1,5 @@
dirs:
- .
useGitIgnore: true
ignorePatterns:
- pattern: "^https?://127.0.0.1(:\\d+)?/"

View File

@@ -1,127 +1,132 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Build Schema",
"$ref": "#/definitions/build",
"definitions": {
"build": {
"type": "object",
"properties": {
"Continue": {
"type": "boolean",
"description": "Indicates to continue a previously failed build attempt"
},
"Help": {
"type": "boolean",
"description": "Shows the help text for this build assembly"
},
"Host": {
"type": "string",
"description": "Host for execution. Default is 'automatic'",
"enum": [
"AppVeyor",
"AzurePipelines",
"Bamboo",
"Bitbucket",
"Bitrise",
"GitHubActions",
"GitLab",
"Jenkins",
"Rider",
"SpaceAutomation",
"TeamCity",
"Terminal",
"TravisCI",
"VisualStudio",
"VSCode"
]
},
"NoLogo": {
"type": "boolean",
"description": "Disables displaying the NUKE logo"
},
"Partition": {
"type": "string",
"description": "Partition to use on CI"
},
"Plan": {
"type": "boolean",
"description": "Shows the execution plan (HTML)"
},
"Profile": {
"type": "array",
"description": "Defines the profiles to load",
"items": {
"type": "string"
}
},
"Root": {
"type": "string",
"description": "Root directory during build execution"
},
"Skip": {
"type": "array",
"description": "List of targets to be skipped. Empty list skips all dependencies",
"items": {
"type": "string",
"enum": [
"Default",
"DevBuild",
"DevBuildDefault",
"DevBuildReleaseSimulation",
"ReleaseMaa",
"SetMaaChangeLog",
"SetPackageBundled",
"SetVersion",
"UseClean",
"UseCommitVersion",
"UseMaaChangeLog",
"UseMaaDevBundle",
"UseMaaRelease",
"UsePublishArtifact",
"UsePublishRelease",
"UseRsVersion",
"UseTagVersion",
"WithCompileCoreRelease",
"WithCompileWpfRelease",
"WithSyncRes"
]
}
},
"Target": {
"type": "array",
"description": "List of targets to be invoked. Default is '{default_target}'",
"items": {
"type": "string",
"enum": [
"Default",
"DevBuild",
"DevBuildDefault",
"DevBuildReleaseSimulation",
"ReleaseMaa",
"SetMaaChangeLog",
"SetPackageBundled",
"SetVersion",
"UseClean",
"UseCommitVersion",
"UseMaaChangeLog",
"UseMaaDevBundle",
"UseMaaRelease",
"UsePublishArtifact",
"UsePublishRelease",
"UseRsVersion",
"UseTagVersion",
"WithCompileCoreRelease",
"WithCompileWpfRelease",
"WithSyncRes"
]
}
},
"Verbosity": {
"type": "string",
"description": "Logging verbosity during build execution. Default is 'Normal'",
"enum": ["Minimal", "Normal", "Quiet", "Verbose"]
}
}
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Build Schema",
"$ref": "#/definitions/build",
"definitions": {
"build": {
"type": "object",
"properties": {
"Continue": {
"type": "boolean",
"description": "Indicates to continue a previously failed build attempt"
},
"Help": {
"type": "boolean",
"description": "Shows the help text for this build assembly"
},
"Host": {
"type": "string",
"description": "Host for execution. Default is 'automatic'",
"enum": [
"AppVeyor",
"AzurePipelines",
"Bamboo",
"Bitbucket",
"Bitrise",
"GitHubActions",
"GitLab",
"Jenkins",
"Rider",
"SpaceAutomation",
"TeamCity",
"Terminal",
"TravisCI",
"VisualStudio",
"VSCode"
]
},
"NoLogo": {
"type": "boolean",
"description": "Disables displaying the NUKE logo"
},
"Partition": {
"type": "string",
"description": "Partition to use on CI"
},
"Plan": {
"type": "boolean",
"description": "Shows the execution plan (HTML)"
},
"Profile": {
"type": "array",
"description": "Defines the profiles to load",
"items": {
"type": "string"
}
},
"Root": {
"type": "string",
"description": "Root directory during build execution"
},
"Skip": {
"type": "array",
"description": "List of targets to be skipped. Empty list skips all dependencies",
"items": {
"type": "string",
"enum": [
"Default",
"DevBuild",
"DevBuildDefault",
"DevBuildReleaseSimulation",
"ReleaseMaa",
"SetMaaChangeLog",
"SetPackageBundled",
"SetVersion",
"UseClean",
"UseCommitVersion",
"UseMaaChangeLog",
"UseMaaDevBundle",
"UseMaaRelease",
"UsePublishArtifact",
"UsePublishRelease",
"UseRsVersion",
"UseTagVersion",
"WithCompileCoreRelease",
"WithCompileWpfRelease",
"WithSyncRes"
]
}
},
"Target": {
"type": "array",
"description": "List of targets to be invoked. Default is '{default_target}'",
"items": {
"type": "string",
"enum": [
"Default",
"DevBuild",
"DevBuildDefault",
"DevBuildReleaseSimulation",
"ReleaseMaa",
"SetMaaChangeLog",
"SetPackageBundled",
"SetVersion",
"UseClean",
"UseCommitVersion",
"UseMaaChangeLog",
"UseMaaDevBundle",
"UseMaaRelease",
"UsePublishArtifact",
"UsePublishRelease",
"UseRsVersion",
"UseTagVersion",
"WithCompileCoreRelease",
"WithCompileWpfRelease",
"WithSyncRes"
]
}
},
"Verbosity": {
"type": "string",
"description": "Logging verbosity during build execution. Default is 'Normal'",
"enum": [
"Minimal",
"Normal",
"Quiet",
"Verbose"
]
}
}
}
}
}
}

View File

@@ -1,4 +1,4 @@
{
"$schema": "./build.schema.json",
"Solution": "tools/MaaBuilder.sln"
"$schema": "./build.schema.json",
"Solution": "tools/MaaBuilder.sln"
}

View File

@@ -1,31 +0,0 @@
default_install_hook_types: [pre-commit, prepare-commit-msg]
ci:
autofix_commit_msg: "chore: Auto update by pre-commit hooks [skip changelog]"
autofix_prs: true
repos:
- repo: https://github.com/shssoichiro/oxipng
rev: v9.1.2
hooks:
- id: oxipng
args: ["-q", "-o", "2", "-s", "--ng"]
- repo: https://github.com/pre-commit/mirrors-clang-format
rev: v17.0.1
hooks:
- id: clang-format
files: ^src/MaaCore/.*
args: ["--assume-filename", ".clang-format"]
- repo: https://github.com/pre-commit/mirrors-prettier
rev: v4.0.0-alpha.8
hooks:
- id: prettier
types_or:
- yaml
- json
- repo: https://github.com/DavidAnson/markdownlint-cli2
rev: v0.13.0
hooks:
- id: markdownlint-cli2
files: ^docs/.*|^README\.md$
types:
- markdown
args: ["--fix", "--config", "docs/.markdownlint.yaml", "#**/node_modules"]

View File

@@ -1,10 +0,0 @@
**/node_modules/
MaaDeps/
3rdparty/
src/maa-cli
src/MaaMacGui
website/
resource/Arknights-Tile-Pos/
tools/OptimizeTemplates/optimize_templates.json

View File

@@ -1,17 +0,0 @@
{
"tabWidth": 4,
"printWidth": 120,
"useTabs": false,
"bracketSameLine": true,
"bracketSpacing": true,
"endOfLine": "auto",
"overrides": [
{
"files": [".clang-format", "**/*.yml", "**/*.yaml"],
"options": {
"parser": "yaml",
"tabWidth": 2
}
}
]
}

View File

@@ -39,8 +39,8 @@ inline matrix4x4 camera_matrix_from_trans(
const vec3d& euler,
double ratio,
double fov_2_y = 20 * degree,
double far_c = 1000,
double near_c = 0.3)
double far = 1000,
double near = 0.3)
{
const double cos_y = std::cos(euler[0]);
const double sin_y = std::sin(euler[0]);
@@ -66,11 +66,11 @@ inline matrix4x4 camera_matrix_from_trans(
0, -sin_x, -cos_x, 0, //
0, 0, 0, 1,
};
const matrix4x4 proj = matrix4x4 {
const matrix4x4 proj = {
// clang-format off
ratio / tan_f, 0, 0, 0,
0, 1 / tan_f, 0, 0,
0, 0, -(far_c + near_c) / (far_c - near_c), -(far_c * near_c * 2) / (far_c - near_c),
0, 0, -(far + near) / (far - near), -(far * near * 2) / (far - near),
0, 0, -1, 0,
// clang-format on
};
@@ -78,13 +78,14 @@ inline matrix4x4 camera_matrix_from_trans(
return proj * matrixX * matrixY * translate;
}
inline cv::Point world_to_screen(const Level& level, const vec3d& world_pos, bool side, const vec3d& offset = {})
inline cv::Point
world_to_screen(const Level& level, const vec3d& world_pos, bool side, const vec3d& offset = {})
{
static constexpr int width = 1280;
static constexpr int height = 720;
static constexpr double width = 1280;
static constexpr double height = 720;
const vec3d pos_cam = camera_pos(level, side, width, height) + offset;
const vec3d euler = camera_euler_angles_yxz(level, side);
const matrix4x4 matrix = camera_matrix_from_trans(pos_cam, euler, static_cast<double>(height) / width);
const matrix4x4 matrix = camera_matrix_from_trans(pos_cam, euler, height / width);
auto result = matrix * cv::Point3d(world_pos);
result = result / result(3);
result = (result + cv::Vec4d::ones()) / 2.;
@@ -106,7 +107,12 @@ inline vec3d get_tile_world_pos(const Level& level, int tile_y, int tile_x)
};
}
inline auto get_tile_screen_pos(const Level& level, int tile_y, int tile_x, bool side = false, const vec3d& offset = {})
inline auto get_tile_screen_pos(
const Level& level,
int tile_y,
int tile_x,
bool side = false,
const vec3d& offset = {})
{
return world_to_screen(level, get_tile_world_pos(level, tile_y, tile_x), side, offset);
}

View File

@@ -1,44 +1,15 @@
## v5.11.0-beta.2
### 新增 | New
* 为选择线索添加判定 (#11323) @Alan-Charred
* enhance MAA website animation for a more elegant appearance (#11303) @chisato2233
### 改进 | Improved
* WpfGui重构 部分拆分`设置-关于` (#11330) @status102
* WpfGui重构 拆分`设置-性能设置` (#11329) @status102
* 更新保全派驻荒地群兽音乐厅,多索雷斯在建地块新作业 (#11318) @Saratoga-Official
* WpfGui重构 拆分`一键长草-公招任务` (#11311) @status102
* 优化仓库识别显示,减少读取文件次数,优化文件占用 @ABA2396
### 修复 | Fix
* YostarKR improved StageBoskyPassageEnter recognition score (#11351) @HX3N
* CheckComboBox 初始化报错 @ABA2396
* SSS recruitment flag EN @Constrat
* YostarKR improved StageMysteriousPresageEnter recognition score (#11336) @HX3N
* 网络卡顿导致领邮件失败 (#11333) @Daydreamer114
* 进入去伪存真后识别太快导致错过 close collection 识别 @Daydreamer114
* 小工具-公招识别 绑定失效 @status102
* 增加 Tales@RA@ResourceGained 任务的 roi (#11322) @Alan-Charred
* YostarJP MedicineExpiringTime ocr fix (#11307) @Manicsteiner
* 将萨卡兹肉鸽 CloseCollection 的 Continue 和 Close 改为 RGBCount (#11302) @Daydreamer114
* 仓库识别无法识别 ”万“ @ABA2396
* 移除多余的阻止休眠设置选项 (#11301) @Rbqwow
## v5.4.1
### 文档 | Docs
* 新手上路增加非 Windows 指引macOS 和 Android 实体设备添加说明 (#11227) @Daydreamer114 @ABA2396 @Rbqwow
* 增加Mac模拟器蓝叠模拟器air版 (#11349) @MikeQu223
* website docs (#9287) @ABA2396 @Rbqwow @Constrat @wangl-cc @HX3N @SherkeyXD
* 修改win7相关问题描述&更新运行库 @Rbqwow
* fix a bad link @Rbqwow
* make i18n warnings show only once @Rbqwow
* 修复字体和评论区分类 @Rbqwow
### 其他 | Other
### For Overseas
* Revert "refactor: yml -> yaml standardization" @Constrat
* yml -> yaml standardization @Constrat
* add YostarJP ocrReplace 黑角 (#11350) @liang36176381
* Reapply "style: 修改变量以符合项目风格" @status102
* Revert "style: 修改变量以符合项目风格" @status102
* ci/nightly-schedule (#11317) @Constrat
* 简化完成后动作UI绑定 (#11316) @status102
#### YostarEN
* YoStarEN resolution warning on client switch (#9539) @Constrat @ABA2396

View File

@@ -46,14 +46,8 @@ if (MSVC)
else ()
target_compile_options(MaaCore PRIVATE "-Wall;-Werror;-Wextra;-Wpedantic;-Wno-missing-field-initializers")
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 13)
target_compile_options(MaaCore PRIVATE "-Wno-restrict;-Wno-array-bounds;-Wno-stringop-overread")
target_compile_options(MaaCore PRIVATE "-Wno-restrict")
endif()
# LLVM clang 16 will failed with `error: no member named 'join' in namespace 'std::ranges::views'`, but Apple clang 16 won't
# value defined in https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER_ID.html
if ((CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 16)
OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND (NOT CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 17))
target_compile_options(MaaCore PRIVATE "-fexperimental-library")
endif ()
endif ()
if (WIN32)

View File

@@ -1,7 +1,4 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=EN/@EntryIndexedValue">EN</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=KR/@EntryIndexedValue">KR</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=JP/@EntryIndexedValue">JP</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=GUI/@EntryIndexedValue">GUI</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=SWMINIMIZE/@EntryIndexedValue">SWMINIMIZE</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/XamlNaming/Abbreviations/=AP/@EntryIndexedValue">AP</s:String>
@@ -31,14 +28,7 @@
<s:String x:Key="/Default/CodeStyle/Naming/XamlNaming/Abbreviations/=WSA/@EntryIndexedValue">WSA</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/XamlNaming/Abbreviations/=XYAZ/@EntryIndexedValue">XYAZ</s:String>
<s:Boolean x:Key="/Default/UserDictionary/Words/=acast/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=acfend/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=acguad/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=acpion/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=acspec/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=acsupo/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=advapi/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Aero/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Affero/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=aguard/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=amedic/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=amiya/@EntryIndexedValue">True</s:Boolean>
@@ -51,22 +41,12 @@
<s:Boolean x:Key="/Default/UserDictionary/Words/=Bilibili/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Bluestacks/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=bsconsole/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=ccast/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=cdfend/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=cguard/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=cmedic/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Collapsal/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=cpione/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=csnipe/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=cspec/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=csuppo/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=ctrler/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=desp/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=dnplayer/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Ehem/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=esource/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Favourite/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=filetime/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=findstr/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=FLASHW/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=FLASHWINFO/@EntryIndexedValue">True</s:Boolean>
@@ -81,12 +61,7 @@
<s:Boolean x:Key="/Default/UserDictionary/Words/=hwnd/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Infrast/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Inited/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=iter/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=jsend/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=ldconsole/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=ldplayer/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=LD_0027s/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=leidian/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Lolicon/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=lpwndpl/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=ls_005B_0022sub/@EntryIndexedValue">True</s:Boolean>
@@ -102,7 +77,6 @@
<s:Boolean x:Key="/Default/UserDictionary/Words/=netstat/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Nonfriend/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=notstationed/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=objstr/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=oper/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=opers/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Originite/@EntryIndexedValue">True</s:Boolean>
@@ -114,12 +88,9 @@
<s:Boolean x:Key="/Default/UserDictionary/Words/=Pallas/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=pidl/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Pormpt/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=powrprof/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=ppidl/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Prts/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=pwfi/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=qmsg/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Raidian/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=rcast/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=rdfend/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=rguard/@EntryIndexedValue">True</s:Boolean>
@@ -128,16 +99,13 @@
<s:Boolean x:Key="/Default/UserDictionary/Words/=Roguelike/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=rsnipe/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Sami/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Sarkaz/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Screencap/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=sctp/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=serilog/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Showminimized/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Shownormal/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=specialaccess/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=SSS/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=STGM/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Stormeye/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=strlen/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Stylet/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=subtask/@EntryIndexedValue">True</s:Boolean>

1
MaaDeps Submodule

Submodule MaaDeps added at 10d51f5832

View File

@@ -2,7 +2,7 @@
<div align="center">
<img alt="LOGO" src="./docs/.vuepress/public/image/maa-logo_512x512.png" width="256" height="256" />
<img alt="LOGO" src="https://cdn.jsdelivr.net/gh/MaaAssistantArknights/design@main/logo/maa-logo_512x512.png" width="256" height="256" />
# MaaAssistantArknights
@@ -37,10 +37,6 @@ MAA 的意思是 MAA Assistant Arknights
</div>
## 下载与安装
请阅读[文档](https://maa.plus/docs/zh-cn/manual/newbie.html)后前往 [官网](https://maa.plus) 或 [Releases](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases) 下载,并参考[新手上路](https://maa.plus/docs/zh-cn/manual/newbie.html)进行安装。
## 亮点功能
- 刷理智,掉落识别及上传 [企鹅物流](https://penguin-stats.cn/)[一图流](https://ark.yituliu.cn/)
@@ -79,11 +75,30 @@ MAA 的意思是 MAA Assistant Arknights
<!-- markdownlint-restore -->
## 下载地址
前往[官网](https://maa.plus)自动匹配镜像源并下载稳定版,或:
- [稳定版/公测版](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases)
- [内测版](https://github.com/MaaAssistantArknights/MaaRelease/releases)
## 使用说明
### 功能介绍
### 基本说明
请参阅 [用户手册](https://maa.plus/docs/zh-cn/manual/)。
请参阅 [新手上路](https://maa.plus/docs/zh-cn/manual/newbie.html) 与 [功能介绍](https://maa.plus/docs/zh-cn/manual/introduction/)。
### 常见问题
- 软件一打开就闪退;
- 连接错误、不知道 ADB 路径怎么填写;
- 连接成功了,但没反应;
- 如何连接自定义端口;
- 下载速度慢,且镜像站无法打开网页;
- 下载到一半提示“登陆”/“鉴权”;
- 连接正常,任务开始了,但是没反应。
请参阅 [常见问题](https://maa.plus/docs/zh-cn/manual/faq.html)
### 外服支持
@@ -92,7 +107,7 @@ MAA 的意思是 MAA Assistant Arknights
### CLI 支持
MAA 支持命令行界面CLI操作支持 LinuxmacOS 和 Windows可用于自动化脚本或在无图形界面的服务器上使用。请参阅 [CLI 使用指南](https://maa.plus/docs/zh-cn/manual/cli/)
MAA 支持命令行界面CLI操作支持 LinuxmacOS 和 Windows可用于自动化脚本或在无图形界面的服务器上使用。请参阅 [CLI 使用指南](https://maa.plus/docs/zh-cn/manual/cli/intro.html)
## 加入我们
@@ -183,13 +198,13 @@ MAA 以中文(简体)为第一语言,翻译词条均以中文(简体)
- ~~干员及基建数据:[PRTS Wiki](http://prts.wiki/)~~
- 关卡数据:[企鹅物流数据统计](https://penguin-stats.cn/)
- 游戏数据及资源:[明日方舟客户端素材](https://github.com/yuanyan3060/ArknightsGameResource)
- 游戏数据:[《明日方舟》Yostar游戏数据](https://github.com/Kengxxiao/ArknightsGameData_YoStar)
- ~~游戏数据:[《明日方舟》游戏数据](https://github.com/Kengxxiao/ArknightsGameData)~~
### 贡献/参与者
感谢所有参与到开发/测试中的朋友们,是大家的帮助让 MAA 越来越好! (\*´▽`)
[![Contributors](https://contributors-img.web.app/image?repo=MaaAssistantArknights/MaaAssistantArknights&max=105&columns=15)](https://github.com/MaaAssistantArknights/MaaAssistantArknights/graphs/contributors)
[![Contributors](https://contributors-img.web.app/image?repo=MaaAssistantArknights/MaaAssistantArknights&max=114514&columns=15)](https://github.com/MaaAssistantArknights/MaaAssistantArknights/graphs/contributors)
## 声明
@@ -201,7 +216,7 @@ MAA 以中文(简体)为第一语言,翻译词条均以中文(简体)
用户交流 QQ 群:[MAA 使用 & 粥游交流 QQ 群](https://ota.maa.plus/MaaAssistantArknights/api/qqgroup/index.html)
用户交流 TG 群:[Telegram 群](https://t.me/+Mgc2Zngr-hs3ZjU1)
自动战斗 JSON 作业分享:[prts.plus](https://prts.plus)
自动战斗 JSON 作业分享:[prts.plus](https://prts.plus) 或 [抄作业.com](http://抄作业.com)
Bilibili 直播间:[直播间](https://live.bilibili.com/2808861) 每晚直播敲代码,近期很长一段时间应该都是在写本软件~
技术群(舟无关、禁水):[内卷地狱!(QQ 群)](https://jq.qq.com/?_wv=1027&k=ypbzXcA2)

View File

@@ -7,12 +7,12 @@ if (BUILD_XCFRAMEWORK)
add_custom_command(OUTPUT OpenCV.xcframework
COMMAND rm -rf OpenCV.xcframework
COMMAND xcodebuild -create-xcframework -library "${PROJECT_SOURCE_DIR}/MaaDeps/runtime/${MAADEPS_TRIPLET}/libopencv_world4.408.dylib" -output OpenCV.xcframework
COMMAND xcodebuild -create-xcframework -library "${PROJECT_SOURCE_DIR}/MaaDeps/runtime/${MAADEPS_TRIPLET}/libopencv_world4.407.dylib" -output OpenCV.xcframework
)
add_custom_command(OUTPUT ONNXRuntime.xcframework
COMMAND rm -rf ONNXRuntime.xcframework
COMMAND xcodebuild -create-xcframework -library "${PROJECT_SOURCE_DIR}/MaaDeps/runtime/${MAADEPS_TRIPLET}/libonnxruntime.1.18.0.dylib" -output ONNXRuntime.xcframework
COMMAND xcodebuild -create-xcframework -library "${PROJECT_SOURCE_DIR}/MaaDeps/runtime/${MAADEPS_TRIPLET}/libonnxruntime.1.14.1.dylib" -output ONNXRuntime.xcframework
)
add_custom_command(OUTPUT fastdeploy_ppocr.xcframework

View File

@@ -223,4 +223,6 @@ MD052: true
# MD053/link-image-reference-definitions - Link and image reference definitions should be needed
MD053:
# Ignored definitions
ignored_definitions: ["//"]
ignored_definitions: [
"//"
]

View File

@@ -1,12 +1,8 @@
import { defineClientConfig } from "vuepress/client";
import Image1 from "../components/Image1.vue";
import Image2 from "../components/Image2.vue";
import Image4 from "../components/Image4.vue";
import ImageGrid from "../components/ImageGrid.vue";
export default defineClientConfig({
enhance: ({ app }) => {
app.component("Image1", Image1);
app.component("Image2", Image2);
app.component("Image4", Image4);
app.component("ImageGrid", ImageGrid);
},
});

View File

@@ -1,88 +1,83 @@
export default {
appId: "99JM20SIFG",
apiKey: "7596a5a8c95cd64d4cf3050c9a4f878e",
indexName: "maa",
// 这里应该把所有本地化配置都放入 locales 中
appId: '99JM20SIFG',
apiKey: '32ad931040facd36d2e99c3cb8e425e1',
indexName: 'maa',
locales: {
"/zh-cn/": {
placeholder: "搜索",
translations: {
button: {
buttonText: "搜索",
},
modal: {
searchBox: {
resetButtonTitle: "清除查询条件",
cancelButtonText: "取消",
},
startScreen: {
recentSearchesTitle: "搜索历史",
noRecentSearchesText: "没有搜索历史",
saveRecentSearchButtonTitle: "保存至搜索历史",
removeRecentSearchButtonTitle: "从搜索历史中移除",
favoriteSearchesTitle: "收藏",
removeFavoriteSearchButtonTitle: "从收藏中移除",
},
errorScreen: {
titleText: "无法获取结果",
helpText: "你可能需要检查你的网络连接",
},
footer: {
selectText: "选择",
navigateText: "切换",
closeText: "关闭",
searchByText: "搜索提供者",
},
noResultsScreen: {
noResultsText: "无法找到相关结果",
suggestedQueryText: "你可以尝试查询",
reportMissingResultsText: "你认为该查询应该有结果?",
reportMissingResultsLinkText: "点击反馈",
},
},
'/': {
placeholder: '搜索',
translations: {
button: {
buttonText: '搜索',
},
modal: {
searchBox: {
resetButtonTitle: '清除查询条件',
cancelButtonText: '取消',
},
},
"/en-us/": {
placeholder: "Search",
translations: {
button: {
buttonText: "Search",
},
modal: {
searchBox: {
resetButtonTitle: "Clear the query",
cancelButtonText: "Cancel",
},
startScreen: {
recentSearchesTitle: "Recent",
noRecentSearchesText: "No recent searches",
saveRecentSearchButtonTitle: "Save this search",
removeRecentSearchButtonTitle:
"Remove this search from history",
favoriteSearchesTitle: "Favorite",
removeFavoriteSearchButtonTitle:
"Remove this search from favorites",
},
errorScreen: {
titleText: "Unable to fetch results",
helpText:
"You might want to check your network connection.",
},
footer: {
selectText: "to select",
navigateText: "to navigate",
closeText: "to close",
searchByText: "Search by",
},
noResultsScreen: {
noResultsText: "No results for",
suggestedQueryText: "Try searching for",
reportMissingResultsText:
"Believe this query should return results?",
reportMissingResultsLinkText: "Let us know.",
},
},
startScreen: {
recentSearchesTitle: '搜索历史',
noRecentSearchesText: '没有搜索历史',
saveRecentSearchButtonTitle: '保存至搜索历史',
removeRecentSearchButtonTitle: '从搜索历史中移除',
favoriteSearchesTitle: '收藏',
removeFavoriteSearchButtonTitle: '从收藏中移除',
},
},
},
};
errorScreen: {
titleText: '无法获取结果',
helpText: '你可能需要检查你的网络连接',
},
footer: {
selectText: '选择',
navigateText: '切换',
closeText: '关闭',
searchByText: '搜索提供者',
},
noResultsScreen: {
noResultsText: '无法找到相关结果',
suggestedQueryText: '你可以尝试查询',
reportMissingResultsText: '你认为该查询应该有结果?',
reportMissingResultsLinkText: '点击反馈',
},
}
}
},
},
'/en-us/': {
placeholder: 'Search',
translations: {
button: {
buttonText: 'Search',
},
modal: {
searchBox: {
resetButtonTitle: 'Clear the query',
cancelButtonText: 'Cancel',
},
startScreen: {
recentSearchesTitle: 'Recent',
noRecentSearchesText: 'No recent searches',
saveRecentSearchButtonTitle: 'Save this search',
removeRecentSearchButtonTitle: 'Remove this search from history',
favoriteSearchesTitle: 'Favorite',
removeFavoriteSearchButtonTitle: 'Remove this search from favorites',
},
errorScreen: {
titleText: 'Unable to fetch results',
helpText: 'You might want to check your network connection.',
},
footer: {
selectText: 'to select',
navigateText: 'to navigate',
closeText: 'to close',
searchByText: 'Search by',
},
noResultsScreen: {
noResultsText: 'No results for',
suggestedQueryText: 'Try searching for',
reportMissingResultsText: 'Believe this query should return results?',
reportMissingResultsLinkText: 'Let us know.',
}
}
}
},
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 691 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 420 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 301 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 643 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 266 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 429 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1018 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

Some files were not shown because too many files have changed in this diff Show More