Compare commits
447 Commits
v6.2.0
...
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 | ||
|
|
283309d3c1 | ||
|
|
43d5c429ae | ||
|
|
bb15f533b2 | ||
|
|
424b916265 | ||
|
|
656ba9d749 | ||
|
|
2a4cd8b7c8 | ||
|
|
e862101764 | ||
|
|
c095cc6d6f | ||
|
|
a0a6cf6739 | ||
|
|
f21f7cfd92 | ||
|
|
10989582ee | ||
|
|
a0b73022cd | ||
|
|
5bc7364eb6 | ||
|
|
7c3d531177 | ||
|
|
b4d75f194e | ||
|
|
f642273b7a | ||
|
|
3da747a59a | ||
|
|
cfb2a70ac3 | ||
|
|
3c763afa2d | ||
|
|
173d8f50ac | ||
|
|
867a7b5ea7 | ||
|
|
3469aa3777 | ||
|
|
f7c85a9803 | ||
|
|
19241cf186 | ||
|
|
51d6fc3ce1 | ||
|
|
d7f7614de6 | ||
|
|
5de1387402 | ||
|
|
08956dc9e8 | ||
|
|
d32484e366 | ||
|
|
206f5bf97c | ||
|
|
f1827ad99a | ||
|
|
a68f740fe3 | ||
|
|
483a484ae7 | ||
|
|
ad26721541 | ||
|
|
ba6f52f974 | ||
|
|
3782fb1fcb | ||
|
|
0ea2845b5b | ||
|
|
96b95bf5e4 | ||
|
|
256e3e3f58 | ||
|
|
9629226688 | ||
|
|
7dd93eb756 | ||
|
|
f91324fbe8 | ||
|
|
8eb62c2a7b | ||
|
|
d473c2c3f6 | ||
|
|
8785c9d00a | ||
|
|
02cf529bf8 | ||
|
|
2b8e88cdc5 | ||
|
|
e05fe43662 | ||
|
|
d84c5b3311 | ||
|
|
5162a77701 | ||
|
|
24c3e7e945 | ||
|
|
fc1643a728 | ||
|
|
86baa18ad9 | ||
|
|
45a6695a15 | ||
|
|
f39ae39f7d | ||
|
|
6c0bde0611 | ||
|
|
93b7d47cc7 | ||
|
|
8365874e28 | ||
|
|
cb03a617d2 | ||
|
|
a6f309fa88 | ||
|
|
9a214aaf0e | ||
|
|
ff97d59d58 | ||
|
|
d94961f737 | ||
|
|
3ad1c7096d | ||
|
|
9a5ad94920 | ||
|
|
d832875951 | ||
|
|
68a9a82107 | ||
|
|
42088719c5 | ||
|
|
c4f229930e | ||
|
|
5f0f0da82e | ||
|
|
a0a475764b | ||
|
|
59f848b7f7 | ||
|
|
6c0c84c649 | ||
|
|
fd18bfee21 | ||
|
|
b5bba18200 | ||
|
|
4149344318 | ||
|
|
8537612c37 | ||
|
|
6cc28ae344 | ||
|
|
67d73e8e2e | ||
|
|
7fe05d3261 | ||
|
|
4e94fdf133 | ||
|
|
cab1d602c9 | ||
|
|
8d983f2c8c | ||
|
|
a76ac22c13 | ||
|
|
c45f76785d | ||
|
|
1fde5dd93b | ||
|
|
630aae99bc | ||
|
|
cb50ad4a46 | ||
|
|
13d88119b3 | ||
|
|
156335da1c | ||
|
|
3eeb45b3b4 | ||
|
|
c9c587053a | ||
|
|
f7875e3033 | ||
|
|
58bf3b3a82 | ||
|
|
33716c8350 | ||
|
|
c822ad0310 | ||
|
|
647efc8ade | ||
|
|
759a81b03a | ||
|
|
3652fc4bea | ||
|
|
d51e971f3d | ||
|
|
99848bb7b3 | ||
|
|
f273a6f410 | ||
|
|
d68efb6333 | ||
|
|
13f9ccfc4d | ||
|
|
a0ef5f705a | ||
|
|
bfe7c0eabc | ||
|
|
36b776d42c | ||
|
|
9badef9093 | ||
|
|
6e895b50ae | ||
|
|
31832c411a | ||
|
|
7ca53518cc | ||
|
|
b836758ce4 | ||
|
|
97b5944216 | ||
|
|
5645e893e6 | ||
|
|
bfa2ab4e93 | ||
|
|
85df2a4059 | ||
|
|
3422cc375f | ||
|
|
5e36bac060 | ||
|
|
10d40be9f8 | ||
|
|
0e0c6665e8 | ||
|
|
7ad52310cf | ||
|
|
f18329cea9 | ||
|
|
012dd635de | ||
|
|
fe77da4391 | ||
|
|
295daad11d | ||
|
|
fcc40f97c8 | ||
|
|
875fc4ec6d | ||
|
|
d95523439b | ||
|
|
6f33c7a7ad | ||
|
|
066e836a6e | ||
|
|
8994cec168 | ||
|
|
14296d6a90 | ||
|
|
5a6f94b742 | ||
|
|
71566544b5 | ||
|
|
0fa1ae48e0 | ||
|
|
78848c5f3e | ||
|
|
d3532ab8ed | ||
|
|
bdd299a85e | ||
|
|
51a8837b09 | ||
|
|
d407a034c7 | ||
|
|
79027bc9f0 | ||
|
|
11a6f45481 | ||
|
|
52afaa37be | ||
|
|
a8b7ae2474 | ||
|
|
edcc7857ef | ||
|
|
ef1987e02a | ||
|
|
c95dd34533 | ||
|
|
dd9ce36953 | ||
|
|
102aa5dc85 | ||
|
|
f23e43cadc | ||
|
|
0e5097fe0b | ||
|
|
4ed05750e5 | ||
|
|
a64be68417 | ||
|
|
32b7cbbf9d | ||
|
|
8a075b7f05 | ||
|
|
07aeb4b354 | ||
|
|
5de92ba180 | ||
|
|
1e1e0f14fe | ||
|
|
5281d95710 | ||
|
|
38974951b9 | ||
|
|
73f7feec97 | ||
|
|
26dd914a79 | ||
|
|
c8b9147f19 | ||
|
|
ecbed74dd6 | ||
|
|
99f294d572 | ||
|
|
2d2d490f44 | ||
|
|
599cbfd5dc | ||
|
|
ebc5ec8047 | ||
|
|
7fefe97301 | ||
|
|
af96544893 | ||
|
|
33e7225119 | ||
|
|
9a456dcaec | ||
|
|
8634826c01 | ||
|
|
07068c14da | ||
|
|
02917c04dd | ||
|
|
e933074535 | ||
|
|
777d471a98 | ||
|
|
bde877c915 | ||
|
|
55c0c29589 | ||
|
|
819707fc42 | ||
|
|
86700994ba | ||
|
|
3c41f7662b | ||
|
|
3cf198e5e1 | ||
|
|
15c53df25b | ||
|
|
1bf5ae8e7f | ||
|
|
8fe346fac8 | ||
|
|
5f08be41b1 | ||
|
|
89b0b243f9 | ||
|
|
892e4e14cb | ||
|
|
abf8d62c30 | ||
|
|
01e35405d9 | ||
|
|
5b8c050e82 | ||
|
|
1c3ae38368 | ||
|
|
c7db3681be | ||
|
|
898fbea848 | ||
|
|
40057b0022 | ||
|
|
27d94c7de0 | ||
|
|
8612eead4e | ||
|
|
f179ca1822 | ||
|
|
0712fba4c4 | ||
|
|
17a08252f1 | ||
|
|
26e035dabe | ||
|
|
67e9ade712 | ||
|
|
c5c72d9ab0 | ||
|
|
18f76c918c | ||
|
|
cf1a6bbdae | ||
|
|
272c30a5d0 | ||
|
|
5d87a2c9ec | ||
|
|
b6f71355a8 | ||
|
|
49839ff439 | ||
|
|
a58a4b7383 | ||
|
|
d3611bbbf5 | ||
|
|
bc9d10316a | ||
|
|
f63da7c794 | ||
|
|
0ff111cc20 | ||
|
|
63e87aaabf | ||
|
|
0d7c54dd53 | ||
|
|
bcca9bbb8a | ||
|
|
ca2f4d5b8d | ||
|
|
dde61c5e6d | ||
|
|
5a0f94e8c3 | ||
|
|
66e44f45e7 | ||
|
|
e454290827 | ||
|
|
08b4f4eae1 | ||
|
|
1fd7f71f64 | ||
|
|
7d1e18fb39 | ||
|
|
289ba1d431 | ||
|
|
09df60e3d2 | ||
|
|
29ccd0f4ff | ||
|
|
d58b86cfb4 | ||
|
|
0fca6fda6d | ||
|
|
35d375a746 | ||
|
|
1f9222b7f0 | ||
|
|
f7b43bdac1 | ||
|
|
39e595d6fc | ||
|
|
af23150152 | ||
|
|
6ea89637ad | ||
|
|
0c4e81c4b3 | ||
|
|
e14b993890 | ||
|
|
22e17bac31 | ||
|
|
502c61e88e | ||
|
|
2951e5b5e9 | ||
|
|
690f4b4f62 | ||
|
|
964424a084 | ||
|
|
be674bc681 | ||
|
|
fd03b66f83 | ||
|
|
90de6f03b1 | ||
|
|
71ab040728 | ||
|
|
7b0589013b | ||
|
|
eac775dc83 | ||
|
|
31e7844ca1 | ||
|
|
566a1b1c30 | ||
|
|
d9daa078c0 | ||
|
|
4361b5dcbe | ||
|
|
24033e42af | ||
|
|
9c1216332d | ||
|
|
2fff5e4b7b | ||
|
|
8202acabe4 | ||
|
|
6ada0e0cb4 | ||
|
|
c3c21e8b5c | ||
|
|
dae67ed303 | ||
|
|
12791e94d1 | ||
|
|
092d46bac0 | ||
|
|
fcd29a0efb | ||
|
|
5c2451ba44 | ||
|
|
b71ab1c96b | ||
|
|
99e8dd707a | ||
|
|
a712d0bce1 | ||
|
|
ab624f8adc | ||
|
|
32b13dfc75 | ||
|
|
a2480d5286 | ||
|
|
c036a32a68 | ||
|
|
eeb78ee38f | ||
|
|
6a484e7926 | ||
|
|
e04b0b08e2 | ||
|
|
e813d62f4b | ||
|
|
bc72adb8f9 | ||
|
|
a44b4c7cbd | ||
|
|
407bca4bf5 | ||
|
|
192a106d8e | ||
|
|
f5ed9d60a6 | ||
|
|
9839f3b3d0 | ||
|
|
62043a97f2 | ||
|
|
0b073ed84f | ||
|
|
2c357840c8 | ||
|
|
45511c0a12 | ||
|
|
ccbc877034 | ||
|
|
e1b769a43c | ||
|
|
6d3440647d | ||
|
|
4eea1612f2 | ||
|
|
284553361a | ||
|
|
9f48a35118 | ||
|
|
34c8416527 | ||
|
|
6086b721e6 | ||
|
|
9626e1b5ce | ||
|
|
91b0b9a2b1 | ||
|
|
df5a776419 | ||
|
|
37ae3f0e61 | ||
|
|
24d229f383 | ||
|
|
780a8b3e9f | ||
|
|
ee9d73e4fc | ||
|
|
eadb0833e5 | ||
|
|
76f012c25a | ||
|
|
91cd39bae3 | ||
|
|
d64fe1c879 | ||
|
|
ab4d60b1c9 | ||
|
|
3fab803de2 | ||
|
|
0a1f510b66 | ||
|
|
75ec134118 | ||
|
|
344e43392b | ||
|
|
f96f8f46e2 | ||
|
|
69d5418eba | ||
|
|
9692a57069 | ||
|
|
8c51743ee5 | ||
|
|
885b747ca8 | ||
|
|
008673d9eb | ||
|
|
a5b6f17e83 | ||
|
|
1ed2952767 | ||
|
|
5099827e1f | ||
|
|
535625afcd | ||
|
|
1c1ad37797 | ||
|
|
4ef45c056a | ||
|
|
5fcf5dbd6a | ||
|
|
0ae353c15f | ||
|
|
d652661ca1 | ||
|
|
a7e4c79b7f | ||
|
|
5f364c5886 | ||
|
|
3bf073abdf | ||
|
|
1dfa49bda2 | ||
|
|
174a1b882d | ||
|
|
0fbed82550 | ||
|
|
954e9ad61f | ||
|
|
fa9f443bcf | ||
|
|
23f59ed2c9 | ||
|
|
cb3dd38f23 | ||
|
|
6c4819e909 | ||
|
|
0d21d3b909 | ||
|
|
b34c5f6909 | ||
|
|
9e1e7dc2e4 | ||
|
|
c3046c6411 | ||
|
|
e5b6ba5888 | ||
|
|
2c67e23334 | ||
|
|
ed08eb3d78 | ||
|
|
44b2d4d1f7 | ||
|
|
98758bfbec | ||
|
|
243e89d948 | ||
|
|
4ec68ce699 | ||
|
|
91ef092905 | ||
|
|
a46f17774c | ||
|
|
3943bb0d46 | ||
|
|
99294b9f67 | ||
|
|
b5eb6f2b19 | ||
|
|
c6c844626a | ||
|
|
b50eb305eb | ||
|
|
3e114a4d60 | ||
|
|
1d6c99f77c | ||
|
|
feffd27a35 | ||
|
|
0ba193f895 | ||
|
|
d6fa6c87b7 | ||
|
|
61614b8a6f | ||
|
|
6fe58eeceb | ||
|
|
349ea1078c | ||
|
|
8acbcaae11 | ||
|
|
af2e1879fb | ||
|
|
bf0f555233 | ||
|
|
78f0adf0a4 | ||
|
|
cf1f7ba5f5 | ||
|
|
7369c28a1e | ||
|
|
73badc0a67 | ||
|
|
f6d5887229 | ||
|
|
92f22ec499 | ||
|
|
a20f0f684f | ||
|
|
16f5331dc3 | ||
|
|
71b2186dc6 | ||
|
|
0c35daa458 | ||
|
|
1dabdd4043 | ||
|
|
0a3ee5676e | ||
|
|
c2ec6e0c0a | ||
|
|
7438df5ada | ||
|
|
a58c0c55d9 | ||
|
|
0f05a95c82 | ||
|
|
c27a79da36 | ||
|
|
26880c62c7 | ||
|
|
61d26fbe26 | ||
|
|
eee6c64d23 | ||
|
|
363da5be9d | ||
|
|
f5ce1e8728 | ||
|
|
656e774366 | ||
|
|
1e58932ea8 | ||
|
|
7c7916aa95 | ||
|
|
17b7b16069 | ||
|
|
eb85bf2f36 | ||
|
|
efc4a57d74 | ||
|
|
10c4b2d8ef | ||
|
|
aa3830ee91 | ||
|
|
ff11dfc080 | ||
|
|
f590bffcbf | ||
|
|
ad76ab4956 | ||
|
|
e4ece2cff0 | ||
|
|
4980fa1e8c | ||
|
|
e7d83dda91 | ||
|
|
921de77f9b | ||
|
|
ea085c600d | ||
|
|
54569e636e | ||
|
|
6a06789ece | ||
|
|
47f1d0c939 | ||
|
|
4230d695e7 | ||
|
|
f65cb918eb | ||
|
|
d276eea233 |
@@ -8,6 +8,17 @@ ARG CLANGD_VERSION=20
|
||||
ARG PYTHON_VERSION=3.12.11
|
||||
ARG NODEJS_VERSION=24
|
||||
|
||||
# Add kitware's apt repository (for cmake)
|
||||
RUN curl -fsSL https://apt.kitware.com/keys/kitware-archive-latest.asc | sudo gpg --dearmor -o /usr/share/keyrings/kitware-archive-keyring.gpg
|
||||
RUN cat <<EOF | sudo tee /etc/apt/sources.list.d/kitware.sources
|
||||
Types: deb
|
||||
URIs: https://apt.kitware.com/ubuntu
|
||||
Suites: $(lsb_release -cs)
|
||||
Components: main
|
||||
Architectures: $(dpkg --print-architecture)
|
||||
Signed-By: /usr/share/keyrings/kitware-archive-keyring.gpg
|
||||
EOF
|
||||
|
||||
# Install system dependencies
|
||||
RUN sudo apt update \
|
||||
&& sudo apt upgrade -y \
|
||||
|
||||
@@ -60,10 +60,6 @@
|
||||
"python.terminal.activateEnvironment": false,
|
||||
|
||||
// CMake settings
|
||||
"cmake.configureSettings": {
|
||||
"BUILD_DEBUG_DEMO": "ON",
|
||||
"CMAKE_TOOLCHAIN_FILE": "src/MaaUtils/MaaDeps/cmake/maa-x64-linux-toolchain.cmake"
|
||||
},
|
||||
"cmake.configureOnOpen": false,
|
||||
|
||||
// Performance optimizations
|
||||
|
||||
88
.github/workflows/ci.yml
vendored
@@ -4,18 +4,6 @@ on:
|
||||
push:
|
||||
tags:
|
||||
- "v*"
|
||||
branches-ignore:
|
||||
- "master"
|
||||
paths:
|
||||
- ".github/workflows/ci.yml"
|
||||
- "3rdparty/include/**"
|
||||
- "cmake/**"
|
||||
- "CMakeLists.txt"
|
||||
- "include/**"
|
||||
- "src/**"
|
||||
- "tools/maadeps-download.py"
|
||||
- "!**/*.md"
|
||||
pull_request:
|
||||
branches:
|
||||
- "dev"
|
||||
paths:
|
||||
@@ -23,6 +11,18 @@ on:
|
||||
- "3rdparty/include/**"
|
||||
- "cmake/**"
|
||||
- "CMakeLists.txt"
|
||||
- "CMakePresets.json"
|
||||
- "include/**"
|
||||
- "src/**"
|
||||
- "tools/maadeps-download.py"
|
||||
- "!**/*.md"
|
||||
pull_request:
|
||||
paths:
|
||||
- ".github/workflows/ci.yml"
|
||||
- "3rdparty/include/**"
|
||||
- "cmake/**"
|
||||
- "CMakeLists.txt"
|
||||
- "CMakePresets.json"
|
||||
- "include/**"
|
||||
- "src/**"
|
||||
- "tools/maadeps-download.py"
|
||||
@@ -130,19 +130,26 @@ jobs:
|
||||
run: |
|
||||
python3 tools/maadeps-download.py ${{ matrix.arch }}-windows
|
||||
|
||||
- name: Config cmake
|
||||
- name: Configure, build and install
|
||||
run: |
|
||||
mkdir -p build
|
||||
cmake -B build ${{ matrix.arch == 'arm64' && '-A ARM64' }} -DCMAKE_BUILD_TYPE=RelWithDebInfo -DMAADEPS_TRIPLET='maa-${{ matrix.arch }}-windows' -DINSTALL_RESOURCE=ON -DINSTALL_PYTHON=ON -DMAA_HASH_VERSION='${{ needs.meta.outputs.tag }}' -DBUILD_WPF_GUI=OFF
|
||||
cmake -B build --preset ${{ matrix.arch == 'arm64' && 'windows-publish-arm64' || 'windows-publish-x64' }} -DMAA_HASH_VERSION='${{ needs.meta.outputs.tag }}'
|
||||
cmake --build --preset ${{ matrix.arch == 'arm64' && 'windows-publish-arm64' || 'windows-publish-x64' }} --parallel $env:NUMBER_OF_PROCESSORS
|
||||
cmake --install build --config RelWithDebInfo
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
cmake --build build --config RelWithDebInfo --parallel $env:NUMBER_OF_PROCESSORS
|
||||
- name: Download MaaFramework
|
||||
if: matrix.arch == 'x64'
|
||||
uses: robinraju/release-downloader@v1
|
||||
with:
|
||||
repository: MaaXYZ/MaaFramework
|
||||
latest: true
|
||||
fileName: '*win-x86_64*.zip'
|
||||
extract: true
|
||||
out-file-path: MaaFramework-temp
|
||||
|
||||
- name: Install
|
||||
- name: Copy MaaWin32ControlUnit
|
||||
if: matrix.arch == 'x64'
|
||||
run: |
|
||||
mkdir -p install
|
||||
cmake --install build --prefix install --config RelWithDebInfo
|
||||
cp MaaFramework-temp/bin/*Win32ControlUnit* install/
|
||||
|
||||
- name: Cache .nuke/temp, ~/.nuget/packages
|
||||
id: cache-nuget
|
||||
@@ -249,28 +256,14 @@ jobs:
|
||||
run: |
|
||||
python3 tools/maadeps-download.py ${{ matrix.arch == 'x86_64' && 'x64' || 'arm64' }}-linux
|
||||
|
||||
- name: Config cmake
|
||||
- name: Configure, build and install
|
||||
run: |
|
||||
mkdir -p build
|
||||
cmake -B build \
|
||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||
-DMAADEPS_TRIPLET='maa-${{ matrix.arch == 'x86_64' && 'x64' || 'arm64' }}-linux' \
|
||||
-DINSTALL_RESOURCE=ON \
|
||||
-DINSTALL_PYTHON=ON \
|
||||
-DMAA_HASH_VERSION='${{ needs.meta.outputs.tag }}' \
|
||||
-DCMAKE_TOOLCHAIN_FILE=src/MaaUtils/MaaDeps/cmake/maa-${{ matrix.arch == 'x86_64' && 'x64' || 'arm64' }}-linux-toolchain.cmake
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
cmake --build build --config RelWithDebInfo --parallel $(nproc)
|
||||
cmake --preset ${{ matrix.arch == 'x86_64' && 'linux-publish-x64' || 'linux-publish-arm64' }} -DMAA_HASH_VERSION='${{ needs.meta.outputs.tag }}'
|
||||
cmake --build --preset ${{ matrix.arch == 'x86_64' && 'linux-publish-x64' || 'linux-publish-arm64' }} --parallel $(nproc)
|
||||
cmake --install build --config RelWithDebInfo
|
||||
env:
|
||||
CLICOLOR_FORCE: 1
|
||||
|
||||
- name: Install
|
||||
run: |
|
||||
mkdir -p install
|
||||
cmake --install build --prefix install --config RelWithDebInfo
|
||||
|
||||
- name: Setup cross compile toolchains for CLI
|
||||
uses: ./src/maa-cli/.github/actions/setup
|
||||
with:
|
||||
@@ -372,20 +365,11 @@ jobs:
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Config cmake
|
||||
- name: Configure, build and install
|
||||
run: |
|
||||
cmake -B build -GNinja \
|
||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||
-DCMAKE_OSX_ARCHITECTURES='${{ matrix.arch }}' \
|
||||
-DMAA_HASH_VERSION='${{ needs.meta.outputs.tag }}'
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
cmake --build build --config RelWithDebInfo --parallel $(sysctl -n hw.logicalcpu)
|
||||
|
||||
- name: Install
|
||||
run: |
|
||||
cmake --install build --prefix install --config RelWithDebInfo
|
||||
cmake -B build --preset ${{ matrix.arch == 'x86_64' && 'macos-publish-x64' || 'macos-publish-arm64' }} -DMAA_HASH_VERSION='${{ needs.meta.outputs.tag }}'
|
||||
cmake --build --preset ${{ matrix.arch == 'x86_64' && 'macos-publish-x64' || 'macos-publish-arm64' }} --parallel $(sysctl -n hw.logicalcpu)
|
||||
cmake --install build --config RelWithDebInfo
|
||||
|
||||
- name: Upload MAA to GitHub
|
||||
uses: actions/upload-artifact@v6
|
||||
|
||||
25
.github/workflows/release-nightly-ota.yml
vendored
@@ -185,19 +185,26 @@ jobs:
|
||||
run: |
|
||||
python3 tools/maadeps-download.py ${{ matrix.arch }}-windows
|
||||
|
||||
- name: Config cmake
|
||||
- name: Configure, build and install
|
||||
run: |
|
||||
mkdir -p build
|
||||
cmake -B build ${{ matrix.arch == 'arm64' && '-A ARM64' }} -DCMAKE_BUILD_TYPE=RelWithDebInfo -DMAADEPS_TRIPLET='maa-${{ matrix.arch }}-windows' -DINSTALL_RESOURCE=ON -DINSTALL_PYTHON=ON -DMAA_HASH_VERSION='${{ steps.set_tag.outputs.tag }}' -DBUILD_WPF_GUI=OFF
|
||||
cmake -B build --preset ${{ matrix.arch == 'arm64' && 'windows-publish-arm64' || 'windows-publish-x64' }} -DMAA_HASH_VERSION='${{ steps.set_tag.outputs.tag }}'
|
||||
cmake --build --preset ${{ matrix.arch == 'arm64' && 'windows-publish-arm64' || 'windows-publish-x64' }} --parallel $env:NUMBER_OF_PROCESSORS
|
||||
cmake --install build --config RelWithDebInfo
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
cmake --build build --config RelWithDebInfo --parallel $env:NUMBER_OF_PROCESSORS
|
||||
- name: Download MaaFramework
|
||||
if: matrix.arch == 'x64'
|
||||
uses: robinraju/release-downloader@v1
|
||||
with:
|
||||
repository: MaaXYZ/MaaFramework
|
||||
latest: true
|
||||
fileName: '*win-x86_64*.zip'
|
||||
extract: true
|
||||
out-file-path: MaaFramework-temp
|
||||
|
||||
- name: Install
|
||||
- name: Copy MaaWin32ControlUnit
|
||||
if: matrix.arch == 'x64'
|
||||
run: |
|
||||
mkdir -p install
|
||||
cmake --install build --prefix install --config RelWithDebInfo
|
||||
cp MaaFramework-temp/bin/*Win32ControlUnit* install/
|
||||
|
||||
- name: Cache .nuke/temp, ~/.nuget/packages
|
||||
id: cache-nuget
|
||||
|
||||
@@ -18,6 +18,11 @@ on:
|
||||
type: boolean
|
||||
required: false
|
||||
default: true
|
||||
maa_cos:
|
||||
description: "Upload to MAA COS"
|
||||
type: boolean
|
||||
required: false
|
||||
default: true
|
||||
|
||||
env:
|
||||
RELEASE_TAG_RAW: ${{ github.event.inputs.release_tag || 'latest' }}
|
||||
@@ -120,3 +125,30 @@ jobs:
|
||||
release-tag: ${{ env.RELEASE_TAG }}
|
||||
fork-user: MaaAssistantArknights
|
||||
token: ${{ secrets.MAABOT_WINGET_TOKEN }}
|
||||
|
||||
maa_cos:
|
||||
name: Upload to MAA COS
|
||||
needs: meta
|
||||
if: ${{ github.event.inputs.maa_cos == 'true' && !contains(needs.meta.outputs.RELEASE_TAG, '-') }}
|
||||
runs-on: ubuntu-latest
|
||||
continue-on-error: true
|
||||
env:
|
||||
FILENAME: MAA-${{ needs.meta.outputs.RELEASE_TAG }}-win-x64.zip
|
||||
|
||||
steps:
|
||||
- uses: robinraju/release-downloader@v1
|
||||
with:
|
||||
repository: 'MaaAssistantArknights/MaaAssistantArknights'
|
||||
latest: true
|
||||
fileName: ${{ env.FILENAME }}
|
||||
out-file-path: 'downloads'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Upload to COS
|
||||
uses: zkqiang/tencent-cos-action@v0.1.0
|
||||
with:
|
||||
args: upload -rs downloads/${{ env.FILENAME }} MAA/${{ env.FILENAME }}
|
||||
secret_id: ${{ secrets.MISTEO_MAA_COS_SECRET_ID }}
|
||||
secret_key: ${{ secrets.MISTEO_MAA_COS_SECRET_KEY }}
|
||||
bucket: ${{ secrets.MISTEO_MAA_COS_BUCKET }}
|
||||
region: ${{ secrets.MISTEO_MAA_COS_REG }}
|
||||
|
||||
2
.github/workflows/release-preparation.yml
vendored
@@ -95,7 +95,7 @@ jobs:
|
||||
AnnAngela
|
||||
|
||||
- name: Assign reviewers to release PR
|
||||
uses: kentaro-m/auto-assign-action@v2.0.0
|
||||
uses: kentaro-m/auto-assign-action@v2.0.1
|
||||
with:
|
||||
configuration-path: ".github/release_reviewers.yaml"
|
||||
|
||||
|
||||
22
.github/workflows/res-update-game.yml
vendored
@@ -184,25 +184,13 @@ jobs:
|
||||
run: |
|
||||
python3 tools/maadeps-download.py arm64-osx
|
||||
|
||||
- name: Config cmake
|
||||
- name: Config, Build & Install ResourceUpdater
|
||||
if: steps.resupd-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd tools/ResourceUpdater
|
||||
mkdir -p build
|
||||
cmake -B build -GNinja \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DMAADEPS_TRIPLET='maa-arm64-osx' \
|
||||
-DWITH_HASH_VERSION=ON
|
||||
|
||||
- name: Build
|
||||
if: steps.resupd-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cmake --build tools/ResourceUpdater/build --config Release --parallel $(sysctl -n hw.logicalcpu)
|
||||
|
||||
- name: Install
|
||||
if: steps.resupd-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cmake --install tools/ResourceUpdater/build --prefix tools/ResourceUpdater --config Release
|
||||
cmake --preset res-updater-macos-arm64
|
||||
cmake --build --preset res-updater-macos-arm64 --parallel $(sysctl -n hw.logicalcpu)
|
||||
cmake --install build --config Release
|
||||
|
||||
- name: Save ResourceUpdater to cache
|
||||
if: always() && steps.resupd-cache.outputs.cache-hit != 'true'
|
||||
@@ -291,7 +279,7 @@ jobs:
|
||||
- name: Optimize png images
|
||||
if: steps.update_version.outputs.contains_png == 'True'
|
||||
run: |
|
||||
python3 tools/OptimizeTemplates/optimize_templates.py -p resource/template/items/ resource/template/infrast/
|
||||
python3 tools/OptimizeTemplates/optimize_templates.py --no-cleanup -p resource/template/items/ resource/template/infrast/
|
||||
|
||||
- name: Commit changes
|
||||
if: steps.update_version.outputs.changes == 'True'
|
||||
|
||||
25
.github/workflows/smoke-testing.yml
vendored
@@ -4,6 +4,8 @@ permissions:
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- "dev"
|
||||
paths:
|
||||
- ".github/workflows/smoke-testing.yml"
|
||||
- "3rdparty/include/**"
|
||||
@@ -87,27 +89,12 @@ jobs:
|
||||
run: |
|
||||
python3 tools/maadeps-download.py arm64-osx
|
||||
|
||||
- name: Config cmake
|
||||
- name: Configure, build and install
|
||||
if: steps.smoke-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
mkdir -p build
|
||||
cmake -B build -GNinja \
|
||||
-DCMAKE_BUILD_TYPE=Debug \
|
||||
-DMAADEPS_TRIPLET='maa-arm64-osx' \
|
||||
-DBUILD_SMOKE_TEST=ON \
|
||||
-DINSTALL_RESOURCE=ON \
|
||||
-DWITH_HASH_VERSION=ON
|
||||
|
||||
- name: Build
|
||||
if: steps.smoke-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cmake --build build --config Debug --parallel $(sysctl -n hw.logicalcpu)
|
||||
|
||||
- name: Install
|
||||
if: steps.smoke-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
mkdir -p install
|
||||
cmake --install build --prefix install --config Debug
|
||||
cmake -B build --preset smoke-test
|
||||
cmake --build build --preset smoke-test --parallel $(sysctl -n hw.logicalcpu)
|
||||
cmake --install build --config Debug
|
||||
|
||||
- name: Make link to Smoke Test cache
|
||||
if: steps.smoke-cache.outputs.cache-hit == 'true'
|
||||
|
||||
12
.gitignore
vendored
@@ -411,10 +411,10 @@ FodyWeavers.xsd
|
||||
# VS Code files for those working on multiple tools
|
||||
**/.vscode/*
|
||||
.vscode/*
|
||||
!.vscode/settings.json
|
||||
!.vscode/tasks.json
|
||||
!.vscode/launch.json
|
||||
!.vscode/extensions.json
|
||||
# !.vscode/settings.json
|
||||
# !.vscode/tasks.json
|
||||
# !.vscode/launch.json
|
||||
# !.vscode/extensions.json
|
||||
*.code-workspace
|
||||
|
||||
# Local History for Visual Studio Code
|
||||
@@ -434,7 +434,6 @@ FodyWeavers.xsd
|
||||
screen.png
|
||||
adb_screen.png
|
||||
tools/**/*.png
|
||||
.vscode
|
||||
enc_temp_folder/*
|
||||
|
||||
# RoguelikeRecruitmentTool 导出的 Excel 文件
|
||||
@@ -479,3 +478,6 @@ install
|
||||
|
||||
# pnpm cache
|
||||
.pnpm-store
|
||||
|
||||
# CMake user presets
|
||||
CMakeUserPresets.json
|
||||
|
||||
3
.vscode/settings.json
vendored
@@ -15,5 +15,6 @@
|
||||
"files.associations": {
|
||||
"**/resource/tasks/**/*.json": "jsonc"
|
||||
},
|
||||
"C_Cpp.exclusionPolicy": "checkFilesAndFolders"
|
||||
"C_Cpp.exclusionPolicy": "checkFilesAndFolders",
|
||||
"cmake.outputLogEncoding": "UTF-8"
|
||||
}
|
||||
|
||||
@@ -115,15 +115,15 @@ static constexpr double rel_pos_x = 1.3143386840820312;
|
||||
static constexpr double rel_pos_y = 1.314337134361267;
|
||||
static constexpr double rel_pos_z = -0.3967874050140381;
|
||||
|
||||
inline auto get_retreat_screen_pos(const Level& level)
|
||||
inline auto get_retreat_screen_pos(const Level& level, bool has_multi_stages = false)
|
||||
{
|
||||
const vec3d relative_pos = { -rel_pos_x + level.view[0].x, +rel_pos_y, rel_pos_z };
|
||||
const vec3d relative_pos = { -rel_pos_x + (has_multi_stages ? level.view[0].x : 0), +rel_pos_y, rel_pos_z };
|
||||
return world_to_screen(level, relative_pos, true);
|
||||
}
|
||||
|
||||
inline auto get_skill_screen_pos(const Level& level)
|
||||
inline auto get_skill_screen_pos(const Level& level, bool has_multi_stages = false)
|
||||
{
|
||||
const vec3d relative_pos = { +rel_pos_x + level.view[0].x, -rel_pos_y, rel_pos_z };
|
||||
const vec3d relative_pos = { +rel_pos_x + (has_multi_stages ? level.view[0].x : 0), -rel_pos_y, rel_pos_z };
|
||||
return world_to_screen(level, relative_pos, true);
|
||||
}
|
||||
|
||||
|
||||
339
CHANGELOG.md
@@ -1,167 +1,268 @@
|
||||
## v6.2.0
|
||||
## v6.3.2
|
||||
|
||||
### Highlights
|
||||
### 拉电线不知天地为何物 | Highlight
|
||||
|
||||
随着米诺斯 SS 的到来,我们迎来了一位全新的萨尔贡六星干员,~~那么牛牛的米诺斯大C在哪呢?~~
|
||||
本次版本更新真的是千呼万唤始出来,也恰逢新年版本和 PC 端的发布,我们在这个版本提供了对 PC 端的初步支持,也合并了 SideStory 「辞岁行」 的数据。
|
||||
|
||||
#### 日志侧边栏重构
|
||||
#### Windows 端一键长草任务配置重构
|
||||
|
||||
本次更新我们对主页日志侧边栏进行了整体重构,统一并优化了布局与视觉样式。
|
||||
本次更新我们对 Windows 端 「一键长草」 任务配置进行了重构,解决了一些痛点。
|
||||
|
||||
现在你可以在「设置 → 界面设置」中控制【使用卡片样式日志】设置来切换日志样式,控制【日志缩略图最大数量】设置来决定日志侧边栏的缩略图数量上限(这些缩略图都是临时保存在内存里的,**内存较小的用户可能需要调整数量**)
|
||||
现在牛牛支持添加多个重复类型任务,并支持重命名。现在你可以通过 「一键长草」 任务左下角的加号按钮添加多个同类型任务,并可以通过拖拽任务来调整任务执行顺序,以及右键点击任务右侧的齿轮图标重命名和删除任务,这样你就可以更灵活地管理任务。
|
||||
|
||||
#### 自动战斗优化
|
||||
牛牛也新增了理智作战任务的周计划设置,可按星期数(如星期三、星期二、星期五等)设置任务是否执行。这样你就可以结合上面提到的添加任务,<u>在理智作战任务前添加另一个理智作战任务,并将其设置为仅打当期剿灭、仅在星期一运行</u>,更多用法等你探索~
|
||||
|
||||
我们优化了自动战斗功能的作业路径下拉选择栏,现在同一个任务的本地作业将会折叠在一起,大幅度提升了下拉选择栏的可读性。
|
||||
另外,在牛牛执行一键长草流程时,各个任务的勾选框会根据其运行状态以不同颜色进行区分,直观反馈任务被跳过、已完成、运行中或执行失败等状态。
|
||||
|
||||
另外,本次游戏更新 yj 修改了暂停按钮的位置,我们已经通过热更新修复该问题,本次更新 MAA 也会合并此项修复。
|
||||
注:由于牛牛现已支持 「理智作战」 周计划并可添加多个同类型任务,本次更新**移除了原有 「剿灭作战」 任务失败后自动尝试下一个已开放的备选逻辑**,如有需要请参照上方的示例添加对应任务。
|
||||
|
||||
#### 今日关卡提示优化
|
||||
#### PC 端初步支持
|
||||
|
||||
今日关卡提示中的掉落信息现已支持同步显示对应的库存数量,便于在刷图规划时快速判断材料缺口与优先级。
|
||||
本次更新,牛牛已支持控制 PC 端明日方舟了~不过有以下限制:
|
||||
|
||||
你可通过「小工具 → 仓库识别」更新库存数量,今日关卡提示中的掉落信息会自动同步更新。
|
||||
* 由于 Windows 的限制,PC 端在被控制时**不可以处于最小化窗口状态**,否则游戏画面不会被渲染,也就无法被牛牛识别;
|
||||
* 由于 Win32 API 和某反作弊软件的限制,牛牛在控制 PC 端时**必须要直接控制鼠标(不能模拟点击)**,期间不建议你使用鼠标。
|
||||
|
||||
#### 基建与线索管理优化
|
||||
另外,由于维护人手有限,PC 端的适配可能长期处于不稳定状态,部分功能可能出现异常或暂时无法使用。
|
||||
|
||||
我们在「一键长草 → 基建换班 → 高级设置」里新增了【进行线索交流】【赠送线索】两项独立开关设置,提升基建管理的灵活性。
|
||||
我们非常欢迎社区开发者协助适配并提交改进,共同完善对 PC 端的支持。
|
||||
|
||||
我们也优化了一键赠送线索等的逻辑,减少误操作发生的可能性。
|
||||
#### 其他方面
|
||||
|
||||
同时,在基建进入设施失败时牛牛将自动保留测试截图,便于后续问题的定位与排查。
|
||||
|
||||
#### 成就系统 DLC
|
||||
|
||||
我们新增了一些成就,覆盖多个场景,等你探索哦~
|
||||
* 我们继续对界园肉鸽进行适配,包括 DLC 2 的更新支持;
|
||||
* 我们优化了自动编队的识别,现在支持对作业要求的精英化、等级和模组的识别,如果发现你的干员不满足要求将会有对应提示;
|
||||
* 相应的,干员识别功能也支持显示精英化和等级了。
|
||||
|
||||
----
|
||||
|
||||
#### Log Sidebar Redesign
|
||||
#### Restructuring of *Farming* Configuration for Windows
|
||||
|
||||
In this update, we've completely redesigned the main page log sidebar, unifying and optimizing its layout and visual style.
|
||||
In this update, we have restructured the *Farming* configuration for Windows, addressing several pain points.
|
||||
|
||||
You can now switch log styles by controlling the *Use card style log* setting in *Settings → GUI*, and control the *Maximum number of log thumbnails* setting to determine the maximum number of thumbnails in the log sidebar (these thumbnails are temporarily stored in memory, **users with limited memory may need to adjust the number**).
|
||||
MAA now supports adding multiple tasks of the same type and renaming them. You can add multiple tasks of the same type using the plus button at the bottom left of the *Farming* panel, adjust the execution order by dragging tasks, and rename or delete tasks by right-clicking the gear icon on the right side of each task. This allows for more flexible task management.
|
||||
|
||||
#### *Copilot* Optimization
|
||||
MAA also supports weekly schedule settings for *Combat* tasks, allowing you to specify on which days of the week (e.g., Monday, Thursday) a task should run. For example, you can add another *Combat* task before your existing one and set it to only run Current Annihilation on Mondays. More usage scenarios await your exploration!
|
||||
|
||||
We've optimized the task path dropdown selection bar for the *Copilot*. Local tasks for the same stage will now be collapsed together, significantly improving the readability of the dropdown selection bar.
|
||||
Additionally, when MAA executes the *Farming* process, the checkboxes for each task will be color-coded to indicate their status: skipped, completed, running, or failed, providing intuitive feedback.
|
||||
|
||||
Additionally, the game update changed the position of the pause button. We have fixed this issue through a hot update, and this fix has been merged into the MAA update.
|
||||
Note: Since MAA now supports weekly schedules for *Combat* tasks and allows adding multiple tasks of the same type, this update **removes the previous logic that automatically attempted the next available alternative stage after a "Current Annihilation" task failure**. If needed, please refer to the example above to add corresponding tasks.
|
||||
|
||||
#### *Today's open stages* Hint Optimization
|
||||
#### Preliminary PC Client Support (**[CN ONLY]**)
|
||||
|
||||
The drop information in the *Today's open stages* hints now supports synchronous display of the corresponding depot quantity, making it easier to quickly determine material shortages and priorities when planning your stage runs.
|
||||
In this update, MAA now supports controlling the PC client of Arknights.
|
||||
|
||||
You can update your depot info through *Toolbox → Depot*, and the daily drop information in the *Today's open stages* hints will be automatically updated.
|
||||
However, due to limited maintenance resources, PC client adaptation may remain unstable for a long period, and some features may experience issues or be temporarily unavailable.
|
||||
|
||||
#### *Base* and Clue Management Optimizations
|
||||
We warmly welcome community developers to assist with adaptation and submit improvements to collectively enhance PC client support.
|
||||
|
||||
We've added two independent toggle settings for *Conduct Clue Exchange* and *Send Clues* in *Farming → Base → Advanced*, improving the flexibility of *Base* management.
|
||||
#### Other Updates
|
||||
|
||||
We've also optimized the logic for one-click clue sending, reducing the possibility of accidental operations.
|
||||
|
||||
Additionally, when *Base* entry fails, MAA will automatically save a test screenshot for easier troubleshooting and identification of subsequent issues.
|
||||
|
||||
#### Achievement System DLC
|
||||
|
||||
We've added some achievements covering multiple scenarios, waiting for you to explore!
|
||||
* Continued adaptation for *Sui's Garden of Grotesqueries*, including support for DLC 2 updates (**[CN ONLY]**)
|
||||
* Optimized recognition in *Auto Squad*, which now supports identifying elite, level, and module requirements. If your operators do not meet the requirements, you will receive corresponding prompts.
|
||||
* The operator recognition feature now also supports displaying elite and level information.
|
||||
|
||||
----
|
||||
|
||||
以下是详细内容:
|
||||
|
||||
## v6.3.2
|
||||
|
||||
### 新增 | New
|
||||
|
||||
* 重构仓库识别结构,支持根据关卡掉落情况自动更新 (#15358) @ABA2396
|
||||
* 成就 DLC 功能 (#15288) @ABA2396
|
||||
* 增强自动战斗文件选择功能,支持多级路径和相对目录 (#15174) @momomochi987 @ABA2396
|
||||
* 允许设置是否启用线索交流与赠送线索 (#15278) @ABA2396
|
||||
* 增加冬时至基建温蒂组并调整温蒂组选人逻辑 (#15294) @drway
|
||||
* 通知渠道添加 Gotify (#15284) @2436238575
|
||||
* 给 Bark 通知添加默认的分类组 (#15244) @Anselyuki
|
||||
* 重构主页日志侧边栏整体布局和样式 (#15211) @MistEO @ABA2396
|
||||
* 支持日志样式切换 @ABA2396
|
||||
* 基建设施缩略图 @ABA2396
|
||||
* 自动战斗日志栏添加日志悬浮窗按钮 @ABA2396
|
||||
* 关卡提示支持显示库存 @ABA2396
|
||||
* 更新库存提示移到 ToolTip @ABA2396
|
||||
* 可以点击 20 次按钮关闭公告弹窗 @ABA2396
|
||||
* 日志允许图片更新时不添加内容 @ABA2396
|
||||
* 限制使用 CPU 推理时的线程占用数,优先保证模拟器运行 @ABA2396
|
||||
* 基建进入设施失败时保留测试截图 @ABA2396
|
||||
* 将自动重载资源独立出来,在 debug 模式下显示勾选框 @ABA2396
|
||||
* 尝试增加 B 服开屏活动跳过 @ABA2396
|
||||
* 检测到自身处于临时路径中时阻止启动 (#14961) @Rbqwow @ABA2396
|
||||
* 企鹅物流上报 ID 不为空时禁止被上报结果赋值 @ABA2396
|
||||
* 新增肉鸽主题推荐配置 tip 并适配多语言 (#15324) @hcl55 @HX3N @Manicsteiner @Constrat @momomochi987 @ABA2396
|
||||
* SideStory 「雅赛努斯复仇记」导航 @SherkeyXD
|
||||
* Disable CoreML for detection and recognition on macOS @MistEO
|
||||
* 睡眠休眠前增加倒计时弹窗 @ABA2396
|
||||
* 生息演算支援道具名称改为全字匹配 @ABA2396
|
||||
|
||||
### 改进 | Improved
|
||||
|
||||
* 重构自动战斗标签页逻辑,拆分悖论模拟任务 (#15327) @ABA2396 @yali-hzy @status102 @HX3N @Constrat
|
||||
* 刷理智任务指定次数与代理倍率冲突提醒 (#15233) @status102 @HX3N @momomochi987 @Manicsteiner
|
||||
* 优化线索交流、获取好友线索逻辑 @ABA2396
|
||||
* 优化界面显示效果与换行 @ABA2396
|
||||
* 优化缩略图逻辑 @ABA2396
|
||||
* 优化 PropertyDependsOnHelper 实现 @ABA2396
|
||||
* 将 PropertyDependsOnViewModel 改为静态工具类 @ABA2396
|
||||
* 调整缩略图 ToolTip 延迟 @ABA2396
|
||||
* 在禁用时 TooltipBlock 显示特效 (#15260) @yali-hzy @ABA2396
|
||||
* 重命名以符合文件结构 @ABA2396
|
||||
* devcontainer 从 conda 迁移至 mise/uv (#15251) @SherkeyXD
|
||||
* rename Dps to Ops (#15325) @ABA2396
|
||||
* 干员识别按照 稀有度->精英化->等级->潜能->Id 排序 @ABA2396
|
||||
* 优化识别工具中列表小于 5 时的显示效果 @ABA2396
|
||||
* optimize templates @Constrat
|
||||
* increase score for AddOperatorTradeAggressive EN @Constrat
|
||||
|
||||
### 修复 | Fix
|
||||
|
||||
* 界园肉鸽因点击模板边缘导致关卡进不去 @Saratoga-Official
|
||||
* 肉鸽暂停按钮更新 @ABA2396
|
||||
* 20260109 游戏更新导致自动战斗失效 @status102
|
||||
* 同时开启「剿灭模式」和「备选关卡」会导致「企鹅物流汇报 ID」被修改 @ABA2396
|
||||
* 无法通过删除自动战斗输入框内容清除当前作业,无法通过在输入框输入神秘代码直接开始战斗 @ABA2396
|
||||
* 线索数量识别 @ABA2396
|
||||
* 线索板上有线索时无法一键放置线索 @ABA2396
|
||||
* 肉鸽未填写开局干员时借助战强制为 false @ABA2396
|
||||
* 隐秘战线结局识别 @ABA2396
|
||||
* 隐秘战线识别到多余字符时无法进入对应事件 @ABA2396
|
||||
* 给缺失干员检查补上 Unavailable (#15296) @Alan-Charred
|
||||
* 尝试修复基建效率计算中的 out_of_range 异常 @ABA2396
|
||||
* 远程控制截图无法获取最新图像 (#15276) @Hakuin123
|
||||
* Debug 图片保存目录 (#15250) @hguandl
|
||||
* 修复文档站搜索问题 @SherkeyXD
|
||||
* 鬼影迷踪 -> 诡影迷踪 @ABA2396
|
||||
* 撷英调香师 @ABA2396
|
||||
* 避免其他 locale 下,掉落次数误认数字字符 (#15306) @aflyhorse
|
||||
* ai review @ABA2396
|
||||
* Filename too long @Daydreamer114
|
||||
* update DormMini.png for EN (again) @Constrat
|
||||
* fix SA1518 warnings @Constrat
|
||||
* SA1633 warning missing copyright notice @Constrat
|
||||
* waydroid rawbync screencap 2>/dev/null (#15196) @commondservice
|
||||
* 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
|
||||
|
||||
* 使用脚本一键安装 maa-cli (#15283) @wangl-cc
|
||||
* 战斗协议 移动镜头 (#15261) @Daydreamer114
|
||||
* 源码链接同步最新行数 @Rbqwow
|
||||
* 中文集成文档统一格式 @ABA2396
|
||||
* update KR documents (#15282) @HX3N
|
||||
* update vsc ext docs for quick ocr (#15298) @neko-para @HX3N @Constrat
|
||||
* 删除一些过时内容 (#15700) @JasonHuang79
|
||||
|
||||
### 其他 | Other
|
||||
|
||||
* 移除地图未修复期间的临时糊屎, 移除未更正的注释 @status102
|
||||
* 添加雪猎基建技能加成 @Saratoga-Official
|
||||
* 调整文件夹判断逻辑 @ABA2396
|
||||
* 调整注释 @ABA2396
|
||||
* 调整 MaxNumberOfLogThumbnails 作用域,调整默认数量 @ABA2396
|
||||
* 微调公告确认按钮位置 @SherkeyXD
|
||||
* 移除多余关卡 @SherkeyXD
|
||||
* 添加挂调试器下使用 GPU 的注释 @ABA2396
|
||||
* add IsDebugVersion to _forcedReloadResource (#15293) @Constrat
|
||||
* port changes from api @SherkeyXD
|
||||
* H16-4, 引航者 #6 TN-1~TN-4 剩余地图 view[1] @status102
|
||||
* YostarKR tweak AS-OpenOcr @HX3N
|
||||
* YostarJP roguelike JieGarden ocr edit @Manicsteiner
|
||||
* YoStarJP SN device ocr (#15310) @cheriu
|
||||
* EN for `FightTimesMayNotExhausted` @Constrat
|
||||
* 增加 id 格式验证 @ABA2396
|
||||
* 明确周计划和定时更新使用游戏时间而非现实时间 @ABA2396
|
||||
* 移除老主线导航逻辑 (#15644) @SherkeyXD
|
||||
* 繁中服「夢鄉」主題 (#15699) @momomochi987
|
||||
* Yostar servers SSS#9 and ShamareThumbnail (#15732) @Manicsteiner @Constrat
|
||||
|
||||
## v6.3.1
|
||||
|
||||
### 新增 | New
|
||||
|
||||
* OperNameAnalyzer 支持左对齐检测 (#15682) @ABA2396
|
||||
|
||||
### 改进 | Improved
|
||||
|
||||
* 配置迁移自动为启用备选且首个关卡为剿灭模式的刷理智任务自动添加额外的刷理智任务 @status102
|
||||
* 忽略干员属性要求 不再允许跳过精英化要求 (#15697) @status102 @Constrat @HX3N
|
||||
|
||||
### 修复 | Fix
|
||||
|
||||
* JP AveMujica event ocr @Manicsteiner
|
||||
* EN IS StageRefresh @Constrat
|
||||
* i'm kinda stupid @Constrat
|
||||
* update refresh node EN IS5 @Constrat
|
||||
* EN IS fix trader store templates AGAIN @Constrat
|
||||
* EN Yu OCR for Yutenji @Constrat
|
||||
* 自动编队选择技能时点击到技能描述/技能范围 @status102
|
||||
* 自动编队期间如有干员属性要求被忽略, 则禁用自动化投票 @status102
|
||||
|
||||
### 文档 | Docs
|
||||
|
||||
* 更新 api 链接 @ABA2396
|
||||
|
||||
### 其他 | Other
|
||||
|
||||
* UserAdditional 非 json 格式返回原始字符串 @status102
|
||||
* 使用屏幕宽高常量代替硬编码 @status102
|
||||
* 屏幕外的干员跳过技能就绪检测 @status102
|
||||
* 調整繁中服界園肉鴿 OCR (2/?) @momomochi987
|
||||
* color [INF] for smoke testing as well @Constrat
|
||||
* 调整单字干员正则 @ABA2396
|
||||
* 調整繁中服界園肉鴿 OCR (#15678) @momomochi987
|
||||
* 删除干员名开头/末尾的_<> @ABA2396
|
||||
* 添加响石、赤刃明霄陈基建技能加成 (#15674) @drway
|
||||
* 保全派驻自动战斗使用二值化结果识别干员名 @ABA2396
|
||||
* 删除无用的正则替换 @ABA2396
|
||||
* 自动战斗使用二值化结果识别干员名 @ABA2396
|
||||
* 仅在 VS Code 中添加辅助项目 (#15669) @status102
|
||||
* JP OperNameAnalyzer specialParams @Manicsteiner
|
||||
|
||||
## v6.3.0
|
||||
|
||||
### 新增 | New
|
||||
|
||||
* 支持 PC 端明日方舟 (#15407) @MistEO @ABA2396
|
||||
* SideStory「辞岁行」导航及地图数据更新 @SherkeyXD @status102
|
||||
* 界园肉鸽 DLC 2 分队更新、通宝数据更新、可选难度提高至 18、支持指定种子开局 (#15588) @SherkeyXD @status102 @HX3N @Manicsteiner
|
||||
* 繁中服界園肉鴿初步適配 (#15605) @momomochi987
|
||||
* 干员识别支持显示精英化、等级与潜能 @ABA2396
|
||||
* 自动编队识别精英化、等级及模组要求 (#15161) @status102 @Manicsteiner @Constrat @HX3N
|
||||
* 芯片本支持显示库存数量 @ABA2396
|
||||
* 新增注入弹窗不再提醒的勾选框,勾选后使用软件渲染 @ABA2396
|
||||
* WpfGui 清空缓存按钮 (#15582) @soundofautumn @Constrat @HX3N @momomochi987
|
||||
* 自定干员名称无效时的错误处理及本地化支持 (#15556) @yali-hzy @HX3N
|
||||
* 设置指引增加右键重命名/删除提示 @ABA2396
|
||||
* 新 Config 加载时移除旧 Config 中不存在的配置 @status102
|
||||
* 日志中额外记录 TaskChain 与 taskId ~~免得有人把 Fight 改成开始唤醒~~ @ABA2396
|
||||
* YostarEN/JP/KR Dreamland、JieGarden 和 AveMujica 主题支持 @Constrat @Manicsteiner @HX3N
|
||||
|
||||
### 改进 | Improved
|
||||
|
||||
* Wpf 一键长草任务配置重构,支持添加多个同类型任务、重命名和周计划设置 (#15385) @status102 @ABA2396 @momomochi987 @HX3N
|
||||
* 刷理智过期关卡逻辑/样式优化 @status102 @ABA2396
|
||||
* 关卡候选列表刷新及关卡选择下拉列表刷新 (#15562) @status102 @HX3N @Constrat @Manicsteiner @momomochi987
|
||||
* 优化自动战斗界面布局 (#15512) @yali-hzy
|
||||
* 优化任务设置按钮悬浮提示 @ABA2396
|
||||
* 优化设置右键菜单布局 @ABA2396
|
||||
* 优化干员识别、仓库识别显示 @ABA2396
|
||||
* 配置迁移检查优化与简化 @status102 @ABA2396
|
||||
* 开始唤醒任务未设置账号切换时,禁用手动切换按钮 @status102
|
||||
* 自动战斗掉线重连、自动肉鸽在战斗结束前延迟「停止」动作添加多任务共用提示 @ABA2396 @status102
|
||||
* 剿灭卡使用到上限时不报错停止 @ABA2396
|
||||
* 剿灭关卡通过 ends_with 判断 @ABA2396
|
||||
* 刷理智任务高级设置 UI 调整选项顺序和显示优化 @status102
|
||||
* 自动战斗自动编队检查`干员等级&精英化`及`技能等级`拆分 @status102
|
||||
* 自动战斗不支持技能重置说明中,干员名遵循干员名语言设置 @status102
|
||||
* 自动战斗作业列表使用相对路径代替绝对路径 @status102
|
||||
* TaskQueue 重命名与移除时显示任务序号 @status102
|
||||
* TaskQueue 任务开始&完成显示修改后的任务名 @status102
|
||||
* 追加自定干员允许不切换技能 @status102
|
||||
* 存在 crash.log 时,Wpf 尝试获取 dumps 文件 (#15432) @status102
|
||||
* 移除过时的参数兼容 @status102
|
||||
* 消除部分编译警告 (#15578) @yali-hzy
|
||||
* NumberOcrReplace 新增规则 (#14186) @Manicsteiner
|
||||
|
||||
### 修复 | Fix
|
||||
|
||||
* 配置迁移相关问题修复:迁移后切换回原配置、删除配置时未删除 .new、多配置用户删除 Default 配置时迁移异常、剩余理智启用状态和关卡选择迁移问题 @status102 @ABA2396
|
||||
* 刷理智任务相关修复:切换刷理智任务时读取错误关卡列表、运行时不允许添加关卡 @status102
|
||||
* 自动编队相关修复:识别技能等级匹配失败、干员技能描述过长时点击位置错误、禁用快速选中以修复外服干员技能描述过长的错误选中、干员等级跨精英化时判断出错、干员等级不足 i18n 未启用、干员组干员未解析精英化及等级属性、先兼容旧作业中不合理的技能选择 @status102
|
||||
* 公招加速券识别问题修复 @status102
|
||||
* LoadApiCache 路径拼接错误 @ABA2396
|
||||
* 主线导航及外服主线导航问题修复 @SherkeyXD @ABA2396
|
||||
* 在赠送线索时弹出上次线索交流结束的提示时无法返回 @ABA2396
|
||||
* 粘贴作业集代码后下方的链接未重置为作业站链接 @ABA2396
|
||||
* 修复移动已打开设置的任务后,当前的设置面板无法继续修改的问题 @ABA2396
|
||||
* 萨米肉鸽刷开局功能异常 @ABA2396
|
||||
* 肉鸽烧水分队切换界面后错误重置 @status102
|
||||
* 保证通宝优先级未定义时不会加载崩溃 fallback 到默认值 @SherkeyXD
|
||||
* SEH 错误终止运行 @status102
|
||||
* 启动 MAA 时若没有任何任务,则追加一套默认任务 @status102
|
||||
* 启动客户端绑定失效问题修复 @status102
|
||||
* 关卡列表显示不刷新 @status102
|
||||
* 选中完成后动作时添加新任务未能隐藏完成后动作设置 UI @status102
|
||||
* 刷理智使用源石 CheckBox 勾选后不生效 @status102
|
||||
* 退出 MAA 时重置变量不再刷新 UI @status102
|
||||
* 初始化 StartEnabled 属性为 true (#15596) @yali-hzy
|
||||
* 自动战斗切换活动类型未清空解析缓存 @status102
|
||||
* 修复任务出错日志可能晚于任务完成日志显示的问题 @ABA2396
|
||||
* 开始干员识别前重置潜能状态 @ABA2396
|
||||
* 修复生息演算商店无法正常购买皮肤的问题 (#15585) @drway
|
||||
* 手动输入关卡名时,不移除过期关卡 @status102
|
||||
* 过期关卡重置模式补充自动迁移 @status102
|
||||
* OR 关卡掉落界面关卡名识别问题 @ABA2396
|
||||
* EX 关符合时 1 被识别为 | @ABA2396
|
||||
* NumberOcrReplace 移除`|`和`/` (#15625) @status102
|
||||
* 移除单字干员 ocr 替换中的 +*?避免误判 @Saratoga-Official
|
||||
* 涤火杰西卡识别 @ABA2396
|
||||
* 日服酒神、見字祠识别 @Saratoga-Official
|
||||
* YostarKR Roguelike@ChooseOperConfirm @HX3N
|
||||
* YostarKR use ' ' in ocrReplace to preserve '\n' for InfrastTrainingTask @HX3N
|
||||
* EN Greyy Alter regex @Constrat
|
||||
* EN IS6 encounter @Constrat
|
||||
* EN IS TradeInvest templates text font change @Constrat
|
||||
* EN IS ShoppingConfirm text font change @Constrat
|
||||
* EN refresh node template @Constrat
|
||||
* JP AT minigame confirm (#15427) @Manicsteiner
|
||||
* JP JieGardenStrategyChange @Saratoga-Official
|
||||
* add MaaWin32ControlUnit to nightly build (#15447) @Manicsteiner
|
||||
|
||||
### 文档 | Docs
|
||||
|
||||
* 集成文档统一格式,同时显示 field-group 和示例代码 (#15409) @ABA2396 @Manicsteiner @Constrat @momomochi987
|
||||
* 繁中文件大更新 (#15480) @momomochi987
|
||||
* 修正开发文档中的格式错误及笔误 (#15516) @yali-hzy
|
||||
* 自动战斗作业文档干员技能值范围补上 0 @status102
|
||||
|
||||
### 其他 | Other
|
||||
|
||||
* 作业集 Parse 后不删除历史记录,避免错过作业抛出的错误 @ABA2396
|
||||
* 辞岁行地图 2026-02-10 Map 更新 @status102
|
||||
* 繁中服不上报企鹅物流 @ABA2396
|
||||
* devcontainer 适配 CMakePresets.json (#15606) @lucienshawls
|
||||
* 移除不再使用的 VirtualizingWrapPanel 与 NoAutomationDataGrid @ABA2396
|
||||
* 调整清理图片缓存样式,增加提示 @ABA2396
|
||||
* 补全缺少的翻译 @ABA2396
|
||||
* 优化 emoji @ABA2396
|
||||
* 自动战斗-自动编队干员不支持技能说明国际化 (#15609) @status102 @Constrat @HX3N @Manicsteiner
|
||||
* 自动战斗编队技能等级不足 i18n,CN 使用理智药及碎石文案 (#15435) @status102 @HX3N
|
||||
* 增加借助战 OF-1 在后续刷理智选择`当前/上次`导致禁用时的输出 (#15478) @status102 @Manicsteiner @Constrat @HX3N @ABA2396 @momomochi987
|
||||
* remove regex from `text` field in EN Sui IS @Constrat
|
||||
* KR AnnouncementNotFinishedConfirm、ReceptionOptionsRequireInfrast、CreditFightWhenOF-1Warning、MiniGame ConversationRoom and HoneyFruit 支持 @HX3N
|
||||
* EN minigame honeyfruit、IS6 tip 支持 @Constrat
|
||||
* JP MiniGame HoneyFruit 支持 @Manicsteiner
|
||||
* YostarJP ocr fix for roguelike @Manicsteiner
|
||||
* manual data for txwy @Constrat
|
||||
* optimize templates @Constrat
|
||||
* fix casing typo and related context (#15656) @ittuann @Daydreamer114
|
||||
|
||||
@@ -35,6 +35,13 @@ if(BUILD_WPF_GUI)
|
||||
include_external_msproject(MaaWpfGui ${PROJECT_SOURCE_DIR}/src/MaaWpfGui/MaaWpfGui.csproj)
|
||||
|
||||
add_dependencies(MaaWpfGui MaaCore)
|
||||
if(DEFINED ENV{VSCODE_PID})
|
||||
add_custom_target(run-MaaWpfGui
|
||||
COMMAND "${CMAKE_BINARY_DIR}/bin/$<CONFIG>/MAA.exe"
|
||||
DEPENDS MaaWpfGui
|
||||
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/bin/$<CONFIG>"
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(INSTALL_PYTHON)
|
||||
|
||||
348
CMakePresets.json
Normal file
@@ -0,0 +1,348 @@
|
||||
{
|
||||
"version": 10,
|
||||
"cmakeMinimumRequired": {
|
||||
"major": 3,
|
||||
"minor": 23,
|
||||
"patch": 0
|
||||
},
|
||||
"configurePresets": [
|
||||
{
|
||||
"name": "windows-base",
|
||||
"hidden": true,
|
||||
"generator": "Visual Studio 18 2026",
|
||||
"binaryDir": "${sourceDir}/build",
|
||||
"$comment": [
|
||||
"Base for Windows presets; Visual Studio is multi-config (Debug/Release/RelWithDebInfo in same build dir)",
|
||||
"see https://cmake.org/cmake/help/latest/generator/Visual%20Studio%2018%202026.html"
|
||||
],
|
||||
"cacheVariables": {
|
||||
"BUILD_WPF_GUI": "ON",
|
||||
"BUILD_DEBUG_DEMO": "ON",
|
||||
"INSTALL_RESOURCE": "OFF",
|
||||
"INSTALL_PYTHON": "OFF"
|
||||
},
|
||||
"condition": {
|
||||
"type": "equals",
|
||||
"lhs": "${hostSystemName}",
|
||||
"rhs": "Windows"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linux-base",
|
||||
"hidden": true,
|
||||
"generator": "Ninja Multi-Config",
|
||||
"binaryDir": "${sourceDir}/build",
|
||||
"$comment": [
|
||||
"Base for Linux presets; Ninja is multi-config (Debug/Release/RelWithDebInfo in same build dir)",
|
||||
"see https://cmake.org/cmake/help/latest/generator/Ninja%20Multi-Config.html",
|
||||
"clangd uses compile_commands.json to provide code completion and navigation",
|
||||
"so CMAKE_EXPORT_COMPILE_COMMANDS is set to ON",
|
||||
"see https://clangd.llvm.org/installation.html"
|
||||
],
|
||||
"cacheVariables": {
|
||||
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
|
||||
},
|
||||
"condition": {
|
||||
"type": "equals",
|
||||
"lhs": "${hostSystemName}",
|
||||
"rhs": "Linux"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "macos-base",
|
||||
"hidden": true,
|
||||
"generator": "Ninja Multi-Config",
|
||||
"binaryDir": "${sourceDir}/build",
|
||||
"$comment": [
|
||||
"Base for macOS presets; Ninja is multi-config (Debug/Release/RelWithDebInfo in same build dir)",
|
||||
"see https://cmake.org/cmake/help/latest/generator/Ninja%20Multi-Config.html",
|
||||
"clangd uses compile_commands.json to provide code completion and navigation",
|
||||
"so CMAKE_EXPORT_COMPILE_COMMANDS is set to ON",
|
||||
"see https://clangd.llvm.org/installation.html"
|
||||
],
|
||||
"cacheVariables": {
|
||||
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
|
||||
},
|
||||
"condition": {
|
||||
"type": "equals",
|
||||
"lhs": "${hostSystemName}",
|
||||
"rhs": "Darwin"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "windows-x64",
|
||||
"inherits": "windows-base",
|
||||
"displayName": "Windows x64",
|
||||
"architecture": "x64",
|
||||
"cacheVariables": {
|
||||
"MAADEPS_TRIPLET": "maa-x64-windows"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "windows-arm64",
|
||||
"inherits": "windows-base",
|
||||
"displayName": "Windows arm64",
|
||||
"architecture": "ARM64",
|
||||
"cacheVariables": {
|
||||
"MAADEPS_TRIPLET": "maa-arm64-windows"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linux-x64",
|
||||
"inherits": "linux-base",
|
||||
"displayName": "Linux x64",
|
||||
"toolchainFile": "src/MaaUtils/MaaDeps/cmake/maa-x64-linux-toolchain.cmake",
|
||||
"cacheVariables": {
|
||||
"MAADEPS_TRIPLET": "maa-x64-linux"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linux-arm64",
|
||||
"inherits": "linux-base",
|
||||
"displayName": "Linux arm64",
|
||||
"toolchainFile": "src/MaaUtils/MaaDeps/cmake/maa-arm64-linux-toolchain.cmake",
|
||||
"cacheVariables": {
|
||||
"MAADEPS_TRIPLET": "maa-arm64-linux"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "macos-arm64",
|
||||
"inherits": "macos-base",
|
||||
"displayName": "macOS arm64",
|
||||
"cacheVariables": {
|
||||
"CMAKE_OSX_ARCHITECTURES": "arm64"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "macos-x64",
|
||||
"inherits": "macos-base",
|
||||
"displayName": "macOS x64",
|
||||
"cacheVariables": {
|
||||
"CMAKE_OSX_ARCHITECTURES": "x86_64"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "publish-base",
|
||||
"$comment":[
|
||||
"All the name contains 'publish' are used for github actions",
|
||||
"see .github/workflows/ci.yml"
|
||||
],
|
||||
"hidden": true,
|
||||
"installDir": "install",
|
||||
"cacheVariables": {
|
||||
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
|
||||
"INSTALL_RESOURCE": "ON",
|
||||
"INSTALL_PYTHON": "ON",
|
||||
"BUILD_WPF_GUI": "OFF",
|
||||
"BUILD_DEBUG_DEMO": "OFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "windows-publish-x64",
|
||||
"inherits": ["publish-base", "windows-x64"],
|
||||
"$comment": [
|
||||
"github actions only support Visual Studio 17 2022",
|
||||
"see https://github.com/actions/runner-images/issues/13291"
|
||||
],
|
||||
"generator": "Visual Studio 17 2022",
|
||||
"displayName": "Windows x64 Publish"
|
||||
},
|
||||
{
|
||||
"name": "windows-publish-arm64",
|
||||
"inherits": ["publish-base", "windows-arm64"],
|
||||
"$comment": [
|
||||
"github actions only support Visual Studio 17 2022",
|
||||
"see https://github.com/actions/runner-images/issues/13291"
|
||||
],
|
||||
"generator": "Visual Studio 17 2022",
|
||||
"displayName": "Windows arm64 Publish"
|
||||
},
|
||||
{
|
||||
"name": "linux-publish-x64",
|
||||
"inherits": ["publish-base", "linux-x64"],
|
||||
"displayName": "Linux x64 Publish"
|
||||
},
|
||||
{
|
||||
"name": "linux-publish-arm64",
|
||||
"inherits": ["publish-base", "linux-arm64"],
|
||||
"displayName": "Linux arm64 Publish"
|
||||
},
|
||||
{
|
||||
"name": "macos-publish-x64",
|
||||
"inherits": ["publish-base", "macos-x64"],
|
||||
"displayName": "macOS x64 Publish"
|
||||
},
|
||||
{
|
||||
"name": "macos-publish-arm64",
|
||||
"inherits": ["publish-base", "macos-arm64"],
|
||||
"displayName": "macOS arm64 Publish"
|
||||
},
|
||||
{
|
||||
"name": "smoke-test",
|
||||
"$comment":[
|
||||
"this preset is used for smoke testing",
|
||||
"see .github/workflows/smoke-testing.yml"
|
||||
],
|
||||
"inherits": "macos-arm64",
|
||||
"displayName": "macOS arm64 Smoke Test",
|
||||
"installDir": "install",
|
||||
"cacheVariables": {
|
||||
"BUILD_SMOKE_TEST": "ON",
|
||||
"INSTALL_RESOURCE": "ON",
|
||||
"WITH_HASH_VERSION": "ON"
|
||||
}
|
||||
}
|
||||
],
|
||||
"buildPresets": [
|
||||
{
|
||||
"name": "windows-x64-Debug",
|
||||
"displayName": "Build Windows x64 Debug",
|
||||
"configurePreset": "windows-x64",
|
||||
"configuration": "Debug"
|
||||
},
|
||||
{
|
||||
"name": "windows-x64-Release",
|
||||
"displayName": "Build Windows x64 Release",
|
||||
"configurePreset": "windows-x64",
|
||||
"configuration": "Release"
|
||||
},
|
||||
{
|
||||
"name": "windows-x64-RelWithDebInfo",
|
||||
"displayName": "Build Windows x64 RelWithDebInfo",
|
||||
"configurePreset": "windows-x64",
|
||||
"configuration": "RelWithDebInfo"
|
||||
},
|
||||
{
|
||||
"name": "windows-arm64-Debug",
|
||||
"displayName": "Build Windows arm64 Debug",
|
||||
"configurePreset": "windows-arm64",
|
||||
"configuration": "Debug"
|
||||
},
|
||||
{
|
||||
"name": "windows-arm64-Release",
|
||||
"displayName": "Build Windows arm64 Release",
|
||||
"configurePreset": "windows-arm64",
|
||||
"configuration": "Release"
|
||||
},
|
||||
{
|
||||
"name": "windows-arm64-RelWithDebInfo",
|
||||
"displayName": "Build Windows arm64 RelWithDebInfo",
|
||||
"configurePreset": "windows-arm64",
|
||||
"configuration": "RelWithDebInfo"
|
||||
},
|
||||
{
|
||||
"name": "linux-x64-Debug",
|
||||
"displayName": "Build Linux x64 Debug",
|
||||
"configurePreset": "linux-x64",
|
||||
"configuration": "Debug"
|
||||
},
|
||||
{
|
||||
"name": "linux-x64-Release",
|
||||
"displayName": "Build Linux x64 Release",
|
||||
"configurePreset": "linux-x64",
|
||||
"configuration": "Release"
|
||||
},
|
||||
{
|
||||
"name": "linux-x64-RelWithDebInfo",
|
||||
"displayName": "Build Linux x64 RelWithDebInfo",
|
||||
"configurePreset": "linux-x64",
|
||||
"configuration": "RelWithDebInfo"
|
||||
},
|
||||
{
|
||||
"name": "linux-arm64-Debug",
|
||||
"displayName": "Build Linux arm64 Debug",
|
||||
"configurePreset": "linux-arm64",
|
||||
"configuration": "Debug"
|
||||
},
|
||||
{
|
||||
"name": "linux-arm64-Release",
|
||||
"displayName": "Build Linux arm64 Release",
|
||||
"configurePreset": "linux-arm64",
|
||||
"configuration": "Release"
|
||||
},
|
||||
{
|
||||
"name": "linux-arm64-RelWithDebInfo",
|
||||
"displayName": "Build Linux arm64 RelWithDebInfo",
|
||||
"configurePreset": "linux-arm64",
|
||||
"configuration": "RelWithDebInfo"
|
||||
},
|
||||
{
|
||||
"name": "macos-x64-Debug",
|
||||
"displayName": "Build macOS x64 Debug",
|
||||
"configurePreset": "macos-x64",
|
||||
"configuration": "Debug"
|
||||
},
|
||||
{
|
||||
"name": "macos-x64-Release",
|
||||
"displayName": "Build macOS x64 Release",
|
||||
"configurePreset": "macos-x64",
|
||||
"configuration": "Release"
|
||||
},
|
||||
{
|
||||
"name": "macos-x64-RelWithDebInfo",
|
||||
"displayName": "Build macOS x64 RelWithDebInfo",
|
||||
"configurePreset": "macos-x64",
|
||||
"configuration": "RelWithDebInfo"
|
||||
},
|
||||
{
|
||||
"name": "macos-arm64-Debug",
|
||||
"displayName": "Build macOS arm64 Debug",
|
||||
"configurePreset": "macos-arm64",
|
||||
"configuration": "Debug"
|
||||
},
|
||||
{
|
||||
"name": "macos-arm64-Release",
|
||||
"displayName": "Build macOS arm64 Release",
|
||||
"configurePreset": "macos-arm64",
|
||||
"configuration": "Release"
|
||||
},
|
||||
{
|
||||
"name": "macos-arm64-RelWithDebInfo",
|
||||
"displayName": "Build macOS arm64 RelWithDebInfo",
|
||||
"configurePreset": "macos-arm64",
|
||||
"configuration": "RelWithDebInfo"
|
||||
},
|
||||
{
|
||||
"name": "windows-publish-x64",
|
||||
"displayName": "Build Windows x64 Publish",
|
||||
"configurePreset": "windows-publish-x64",
|
||||
"configuration": "RelWithDebInfo"
|
||||
},
|
||||
{
|
||||
"name": "windows-publish-arm64",
|
||||
"displayName": "Build Windows arm64 Publish",
|
||||
"configurePreset": "windows-publish-arm64",
|
||||
"configuration": "RelWithDebInfo"
|
||||
},
|
||||
{
|
||||
"name": "linux-publish-x64",
|
||||
"displayName": "Build Linux x64 Publish",
|
||||
"configurePreset": "linux-publish-x64",
|
||||
"configuration": "RelWithDebInfo"
|
||||
},
|
||||
{
|
||||
"name": "linux-publish-arm64",
|
||||
"displayName": "Build Linux arm64 Publish",
|
||||
"configurePreset": "linux-publish-arm64",
|
||||
"configuration": "RelWithDebInfo"
|
||||
},
|
||||
{
|
||||
"name": "macos-publish-x64",
|
||||
"displayName": "Build macOS x64 Publish",
|
||||
"configurePreset": "macos-publish-x64",
|
||||
"configuration": "RelWithDebInfo"
|
||||
},
|
||||
{
|
||||
"name": "macos-publish-arm64",
|
||||
"displayName": "Build macOS arm64 Publish",
|
||||
"configurePreset": "macos-publish-arm64",
|
||||
"configuration": "RelWithDebInfo"
|
||||
},
|
||||
{
|
||||
"name": "smoke-test",
|
||||
"displayName": "Build macOS arm64 Smoke Test",
|
||||
"configurePreset": "smoke-test",
|
||||
"configuration": "Debug"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -12,7 +12,7 @@ function(create_resource_link TARGET_NAME OUTPUT_DIR)
|
||||
COMMENT "Creating junction for resource directory for ${TARGET_NAME}"
|
||||
)
|
||||
else()
|
||||
# Unix/Linux/macOS 使用符号链接
|
||||
# UNIX/Linux/macOS 使用符号链接
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
POST_BUILD
|
||||
|
||||
|
Before Width: | Height: | Size: 691 KiB After Width: | Height: | Size: 690 KiB |
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 41 KiB |
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 64 KiB |
|
Before Width: | Height: | Size: 301 KiB After Width: | Height: | Size: 301 KiB |
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 642 KiB After Width: | Height: | Size: 641 KiB |
|
Before Width: | Height: | Size: 934 KiB After Width: | Height: | Size: 931 KiB |
|
Before Width: | Height: | Size: 926 KiB After Width: | Height: | Size: 925 KiB |
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 57 KiB After Width: | Height: | Size: 57 KiB |
|
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 62 KiB |
|
Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 83 KiB |
|
Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 84 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 78 KiB |
|
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 80 KiB |
|
Before Width: | Height: | Size: 160 KiB After Width: | Height: | Size: 160 KiB |
|
Before Width: | Height: | Size: 160 KiB After Width: | Height: | Size: 160 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 84 KiB |
|
Before Width: | Height: | Size: 77 KiB After Width: | Height: | Size: 76 KiB |
|
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 85 KiB |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 366 KiB |
BIN
docs/.vuepress/public/images/zh-tw/readme/1-dark.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
docs/.vuepress/public/images/zh-tw/readme/1-light.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
docs/.vuepress/public/images/zh-tw/readme/2-dark.png
Normal file
|
After Width: | Height: | Size: 41 KiB |
BIN
docs/.vuepress/public/images/zh-tw/readme/2-light.png
Normal file
|
After Width: | Height: | Size: 41 KiB |
BIN
docs/.vuepress/public/images/zh-tw/readme/3-dark.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
docs/.vuepress/public/images/zh-tw/readme/3-light.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
docs/.vuepress/public/images/zh-tw/readme/4-dark.png
Normal file
|
After Width: | Height: | Size: 60 KiB |
BIN
docs/.vuepress/public/images/zh-tw/readme/4-light.png
Normal file
|
After Width: | Height: | Size: 60 KiB |
@@ -15,7 +15,7 @@ You can [Ask DeepWiki](https://deepwiki.com/MaaAssistantArknights/MaaAssistantAr
|
||||
|
||||
## I don't know programming but just want to modify some JSON files/documents, how can I do it?
|
||||
|
||||
Welcome to the [Web-based PR Tutorial](./pr-tutorial.md) that anyone can understand (purely web-based on Github.com)
|
||||
Welcome to the [Web-based PR Tutorial](./pr-tutorial.md) that anyone can understand (purely web-based on GitHub.com)
|
||||
|
||||
## I want to make simple modifications to a few lines of code, but configuring the environment is too tedious and pure web editing is difficult to use. What should I do?
|
||||
|
||||
@@ -58,32 +58,44 @@ We've preset several different development environments for you to choose from:
|
||||
```
|
||||
|
||||
5. Configure development environment
|
||||
- Download and install `CMake`
|
||||
- Download and install `Visual Studio 2026 Community`, selecting `Desktop development with C++` and `.NET Desktop Development` during installation.
|
||||
|
||||
6. Double-click `MAA.sln` to open the project in Visual Studio.
|
||||
7. Configure Visual Studio settings
|
||||
- Select `RelWithDebInfo` and `x64` in the top configuration bar (Skip for Release builds or ARM platforms)
|
||||
- Right-click `MaaWpfGui` → Properties → Debug → Enable native debugging (This enables breakpoints in C++ Core)
|
||||
6. Execute cmake project configuration
|
||||
|
||||
8. Now you're ready to happily ~~mess around~~ start developing!
|
||||
9. Commit regularly with meaningful messages during development
|
||||
If you're not familiar with git usage, you might want to create a new branch for changes instead of committing directly to `dev`:
|
||||
|
||||
```bash
|
||||
git branch your_own_branch
|
||||
git checkout your_own_branch
|
||||
```cmd
|
||||
cmake --preset windows-x64
|
||||
```
|
||||
|
||||
This keeps your changes isolated from upstream `dev` updates.
|
||||
7. Double-click `build/MAA.slnx` to open the project in Visual Studio.
|
||||
8. Configure Visual Studio settings
|
||||
- Select `Debug` and `x64` in the top configuration bar
|
||||
- Right-click `MaaWpfGui` - Set as Startup Project
|
||||
- Press F5 to run
|
||||
|
||||
10. After development, push your local branch (e.g. `dev`) to your remote repository:
|
||||
::: tip
|
||||
To debug Win32Controller (Windows window control) features, you need to manually download the corresponding platform package from [MaaFramework Releases](https://github.com/MaaXYZ/MaaFramework/releases), and place `MaaWin32ControlUnit.dll` from the `bin` directory into MAA's DLL directory (e.g. `build/bin/Debug`). PRs for an auto-download script are welcome!
|
||||
:::
|
||||
|
||||
9. Now you're ready to happily ~~mess around~~ start developing!
|
||||
10. Commit regularly with meaningful messages during development
|
||||
If you're not familiar with git usage, you might want to create a new branch for changes instead of committing directly to `dev`:
|
||||
|
||||
```bash
|
||||
git branch your_own_branch
|
||||
git checkout your_own_branch
|
||||
```
|
||||
|
||||
This keeps your changes isolated from upstream `dev` updates.
|
||||
|
||||
11. After development, push your local branch (e.g. `dev`) to your remote repository:
|
||||
|
||||
```bash
|
||||
git push origin dev
|
||||
```
|
||||
|
||||
11. Submit a Pull Request at the [MAA main repository](https://github.com/MaaAssistantArknights/MaaAssistantArknights). Ensure your changes are based on the `dev` branch, not `master`.
|
||||
12. To sync upstream changes:
|
||||
12. Submit a Pull Request at the [MAA main repository](https://github.com/MaaAssistantArknights/MaaAssistantArknights). Ensure your changes are based on the `dev` branch, not `master`.
|
||||
13. To sync upstream changes:
|
||||
1. Add upstream repository:
|
||||
|
||||
```bash
|
||||
@@ -108,12 +120,48 @@ We've preset several different development environments for you to choose from:
|
||||
git merge # merge
|
||||
```
|
||||
|
||||
4. Repeat steps 7, 8, 9, 10.
|
||||
4. Repeat steps 8, 9, 10, 11.
|
||||
|
||||
::: tip
|
||||
After opening Visual Studio, Git operations can be performed using VS's built-in "Git Changes" instead of command-line tools.
|
||||
:::
|
||||
|
||||
## Using VS Code for Development (Optional)
|
||||
|
||||
::: warning
|
||||
**Visual Studio is the recommended IDE for development.** The MAA project is primarily built around Visual Studio, and the complete environment setup described above covers all development needs with the best out-of-the-box experience. The VS Code workflow is provided only as an alternative for developers already familiar with VS Code + CMake + clangd, and requires more configuration effort.
|
||||
:::
|
||||
|
||||
If you prefer VS Code, you can use CMake, clangd, and related extensions for code completion, navigation, and debugging. After completing steps 1–6 above (clone, dependencies, CMake configuration), follow these steps:
|
||||
|
||||
### Recommended Extensions
|
||||
|
||||
Install from the VS Code marketplace:
|
||||
|
||||
| Extension | Purpose |
|
||||
| --------------------------------------------------------------------------------------------------- | ---------------------------------------------------------- |
|
||||
| [CMake Tools](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools) | CMake configure, build, and debug integration |
|
||||
| [clangd](https://marketplace.visualstudio.com/items?itemName=llvm-vs-code-extensions.vscode-clangd) | C++ IntelliSense, code navigation, diagnostics (LSP-based) |
|
||||
| [C/C++](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools) | Debug C++ programs (works with CMake Tools or launch.json) |
|
||||
|
||||
::: tip
|
||||
When using clangd, set `C_Cpp.intelliSenseEngine` to `disabled` to avoid conflicts with the C/C++ extension's IntelliSense.
|
||||
:::
|
||||
|
||||
### Setup Steps
|
||||
|
||||
1. Open the project root folder in VS Code
|
||||
2. **CMake Tools**:
|
||||
- Select a Configure Preset from the status bar (e.g. `windows-x64`, `linux-x64`)
|
||||
- Select a Build Preset and run configure/build
|
||||
3. **clangd**: Works on Windows with MSVC without needing `compile_commands.json`. On Linux/macOS, presets enable `CMAKE_EXPORT_COMPILE_COMMANDS` and clangd uses `build/compile_commands.json` automatically
|
||||
4. **Debugging**: The project includes `.vscode/launch.json` for launching MaaWpfGui or Debug Demo
|
||||
|
||||
### Build and Debug Shortcuts
|
||||
|
||||
- **Build**: `Ctrl+Shift+B` or via CMake Tools status bar
|
||||
- **Debug**: F5 or choose a configuration from the Run and Debug panel
|
||||
|
||||
## MAA File Formatting Requirements
|
||||
|
||||
MAA uses a series of formatting tools to ensure that the code and resource files in the repository are visually unified for easy maintenance and reading.
|
||||
@@ -125,7 +173,7 @@ The currently enabled formatting tools are as follows:
|
||||
| File Type | Format Tool |
|
||||
| --------- | --------------------------------------------------------------- |
|
||||
| C++ | [clang-format](https://clang.llvm.org/docs/ClangFormat.html) |
|
||||
| Json/Yaml | [Prettier](https://prettier.io/) |
|
||||
| JSON/YAML | [Prettier](https://prettier.io/) |
|
||||
| Markdown | [markdownlint](https://github.com/DavidAnson/markdownlint-cli2) |
|
||||
|
||||
### Use Pre-commit Hooks to Automatically Format Code
|
||||
|
||||
@@ -3,7 +3,7 @@ order: 8
|
||||
icon: iconoir:code-brackets
|
||||
---
|
||||
|
||||
# Dedicated VSCode Extension Tutorial
|
||||
# Dedicated VS Code Extension Tutorial
|
||||
|
||||
The extension provides a series of convenient development capabilities for MaaAssistantArknights/MaaFramework, including but not limited to the following features:
|
||||
|
||||
@@ -14,7 +14,7 @@ For details, please visit [Extension Store](https://marketplace.visualstudio.com
|
||||
|
||||
## Installation
|
||||
|
||||
Searching `Maa` and installing it from VSCode extensions list is recommended.
|
||||
Searching `Maa` and installing it from VS Code extensions list is recommended.
|
||||
|
||||
::: tip
|
||||
When used for the first time, the extension will automatically download the preset version of resources.
|
||||
@@ -90,9 +90,9 @@ Scanning and selecting controllers, selecting resource, adding and manipulating
|
||||
|
||||
### Take screenshots and crop images / Quick recognition
|
||||
|
||||
Searching and launching `Maa: open crop tool` inside VSCode command panel can open `Screenshots / Crop` panel.
|
||||
Searching and launching `Maa: open crop tool` inside VS Code command panel can open `Screenshots / Crop` panel.
|
||||
|
||||
> Use `Ctrl+Shift+P` (`Command+Shift+P` on MacOS) to open command panel
|
||||
> Use `Ctrl+Shift+P` (`Command+Shift+P` on macOS) to open command panel
|
||||
|
||||
- After selecting and connecting to the controller, use `Screencap` button to obtain screenshots
|
||||
- Use `Upload` button to manually upload images.
|
||||
@@ -114,11 +114,11 @@ For MAA, the extension will maintain the models used automatically; you only nee
|
||||
|
||||
#### MaaFramework Log
|
||||
|
||||
Search and execute `Maa: open maa log` in the VSCode command panel to view the `maa.log` generated during debugging.
|
||||
Search and execute `Maa: open maa log` in the VS Code command panel to view the `maa.log` generated during debugging.
|
||||
|
||||
#### Maa Pipeline Support Extension Log
|
||||
|
||||
Search and execute `Maa: open extension log` in the VSCode command panel to view the `mse.log` generated during debugging.
|
||||
Search and execute `Maa: open extension log` in the VS Code command panel to view the `mse.log` generated during debugging.
|
||||
|
||||
### Bottom status bar
|
||||
|
||||
|
||||
@@ -7,6 +7,12 @@ icon: material-symbols:summarize
|
||||
|
||||
maa-cli's main functionality is to automate Arknights game tasks by calling MaaCore. Additionally, for convenience, maa-cli also provides functions to manage MaaCore.
|
||||
|
||||
::: tip
|
||||
|
||||
For users who installed maa-cli via the Windows Package Manager (winget) , `maa` in the following commands needs to be replaced with `maa-cli` .
|
||||
|
||||
:::
|
||||
|
||||
## Manage MaaCore
|
||||
|
||||
maa-cli can install and update MaaCore and resources by running the following commands:
|
||||
|
||||
@@ -9,7 +9,7 @@ icon: basil:apple-solid
|
||||
|
||||
### ✅ [PlayCover](https://playcover.io) (Runs most fluently as it's native 🚀)
|
||||
|
||||
Experimental support. Please submit issues if you encounter problems, and include `MacOS` in the title.
|
||||
Experimental support. Please submit issues if you encounter problems, and include `macOS` in the title.
|
||||
|
||||
Note: Due to macOS system limitations, screenshot issues may occur when minimizing the game window, switching to other windows while in Stage Manager, or moving the window to other desktops/screens. Related issue: [#4371](https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/4371#issuecomment-1527977512)
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ winget install "Microsoft.VCRedist.2015+.x64" --override "/repair /passive /nore
|
||||
|
||||
Or manually download and install these <u>**two**</u> runtime libraries to solve the problem:
|
||||
|
||||
- [Visual C++ Redistributable](https://aka.ms/vs/17/release/vc_redist.x64.exe)
|
||||
- [Visual C++ Redistributable](https://aka.ms/vc14/vc_redist.x64.exe)
|
||||
- [.NET Desktop Runtime 10](https://aka.ms/dotnet/10.0/windowsdesktop-runtime-win-x64.exe)
|
||||
|
||||
:::
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ icon: hugeicons:brain-02
|
||||
- Lungmen Downtown: LungmenDowntown@Annihilation
|
||||
|
||||
- Side story stages like `OF-1`, `OF-F3`, and `GT-5`.
|
||||
- The last three stages of the current Side Story event. These will be shown at the bottom of the interface after automatically downloading updates from the [API](https://api.maa.plus/MaaAssistantArknights/api/gui/StageActivity.json).
|
||||
- The last three stages of the current Side Story event. These will be shown at the bottom of the interface after automatically downloading updates from the [API](https://api.maa.plus/MaaAssistantArknights/api/gui/StageActivityV2.json).
|
||||
- Rerun Side Story events: Enter `SSReopen-<stage prefix>` to farm all stages XX-1 through XX-9 in sequence, like `SSReopen-IC`.
|
||||
|
||||
::: details Example Screen
|
||||
@@ -70,22 +70,11 @@ icon: hugeicons:brain-02
|
||||
Alternative stages are selected based on daily stage availability - MAA will choose the first available stage in the list.
|
||||
This functions like a schedule, not as a fallback if the primary stage selection fails.
|
||||
|
||||
1. Example: If primary stage is `CE-6/5` with alternatives `1-7` and `LS-6/5`:
|
||||
- If `CE-6/5` is open today, MAA will run it and ignore the alternatives. If you haven't unlocked auto-deploy for CE-6/5, the task will fail.
|
||||
- If `CE-6/5` is closed today, MAA will run `1-7` instead. If you haven't unlocked auto-deploy for 1-7, the task will fail.
|
||||
- Since `1-7` is a permanent stage that appears before `LS-6/5` in the list, MAA will never run `LS-6/5` in this scenario.
|
||||
2. If the primary stage is `Annihilation Mode`:
|
||||
- Annihilation results won't affect the alternative stage logic - even if Annihilation fails, the task will continue.
|
||||
- Alternative stages will only inherit the `Use Sanity Potion` and `Multiplier` settings, ignoring `Use Originium`, `Perform Battles`, and `Material` settings.
|
||||
Example: Alternative Stages are `CE-6/5`, `1-7` and `LS-6/5`:
|
||||
|
||||
### Remaining Sanity
|
||||
|
||||
This option activates after the main `Sanity Farming` task ends, ignoring all `Use Sanity Potion`, `Use Originium`, `Perform Battles`, `Material`, and `Multiplier` settings. It simply uses up any remaining sanity and stops.
|
||||
|
||||
- Useful for farming a low-cost stage (like 1-7) with leftover sanity after your main stage becomes unaffordable.
|
||||
- Also useful for automatically switching to single runs when you have insufficient sanity for your configured multiplier (e.g., if you set 1-7 for 6x runs but only have 30 sanity, it will automatically run five single 1-7 runs instead).
|
||||
- The task will end if remaining sanity is insufficient (e.g., less than 6 sanity).
|
||||
- If the selected remaining sanity stage is closed or unavailable, the task will fail.
|
||||
- If `CE-6/5` is open today, MAA will run it and ignore the alternatives. If you haven't unlocked auto-deploy for CE-6/5, the task will fail.
|
||||
- If `CE-6/5` is closed today, MAA will run `1-7` instead. If you haven't unlocked auto-deploy for 1-7, the task will fail.
|
||||
- Since `1-7` is a permanent stage that appears before `LS-6/5` in the list, MAA will never run `LS-6/5` in this scenario.
|
||||
|
||||
### Multiplier
|
||||
|
||||
@@ -93,15 +82,14 @@ MAA will use the specified battle multiplier setting:
|
||||
|
||||
- **AUTO mode** (0):
|
||||
- Automatically identifies and uses the maximum possible multiplier without wasting sanity
|
||||
- Proceeds to the `Remaining Sanity` option afterward (if enabled)
|
||||
|
||||
- **Fixed value mode** (1-6):
|
||||
- Uses exactly the specified multiplier
|
||||
- If current sanity is insufficient for the set multiplier (e.g., only enough for 5× but set to 6×), ends the task and proceeds to `Remaining Sanity` (if enabled)
|
||||
- If current sanity is insufficient for the set multiplier (e.g., only enough for 5× but set to 6×), ends the task
|
||||
|
||||
- **Disabled mode** (-1):
|
||||
- Doesn't change the in-game multiplier setting
|
||||
- If sanity is insufficient for the current in-game multiplier setting, ends the task and proceeds to `Remaining Sanity` (if enabled)
|
||||
- If sanity is insufficient for the current in-game multiplier setting, ends the task
|
||||
|
||||
### Perform Battles
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ Please note that JSON files do not support comments. The comments in this docume
|
||||
// Specified operators
|
||||
{
|
||||
"name": "重岳", // Operator name ("重岳" = "Chongyue")
|
||||
"skill": 3, // Skill number. Optional, default is 1, range [1, 3]
|
||||
"skill": 3, // Skill number. Optional, default is 1, range [0, 3]
|
||||
"skill_usage": 2, // Skill usage method. Optional, default is 0
|
||||
// 0 - Do not use automatically (depends on "actions" field)
|
||||
// 1 - Use whenever ready, as many times as possible (e.g., Thorns S3, Myrtle S1, etc.)
|
||||
|
||||
@@ -36,6 +36,9 @@ Please note that JSON files do not support comments. Comments are for demonstrat
|
||||
- `fragments.json` stores basic information about Sarkaz's Thoughts
|
||||
- `map.json` stores template image information for Sarkaz's Blueprint navigation
|
||||
|
||||
- In `JieGarden/`:
|
||||
- `coppers.json` basic information and pickup/replacement logic for Coppers
|
||||
|
||||
## Integrated Strategy Step 1: Operator Recruitment
|
||||
|
||||
`resource/roguelike/theme_name/recruitment.json` describes the logic of the operator recruitment
|
||||
@@ -152,7 +155,7 @@ By default, only E1 Level 55 operators will be recruited
|
||||
| 情报官 (Agents) | 晓歌 (Cantabile), 伊内丝 (Ines) | Can recover DP, provide side output, and can single cut |
|
||||
| 浊心斯卡蒂 (Skadi Alter) | 浊心斯卡蒂 (Skadi the Corrupting Heart) | Decent healing under low pressure, but special range, some maps have suitable positions |
|
||||
| 焰苇 (Reed Alter) | 焰影苇草 (Reed the Flame Shadow) | Commonly used opening operator in Sami I.S., combines healing and output, some maps have optimal positions |
|
||||
| 玛恩纳 (SilverAsh) | 玛恩纳 (Closure), 银灰 (SilverAsh) | Ground large-area decisive output, can be deployed against bosses |
|
||||
| 玛恩纳 (Mlynar) | 玛恩纳 (Mlynar), 银灰 (SilverAsh) | Ground large-area decisive output, can be deployed against bosses |
|
||||
| 史尔特尔 (Surtr) | 史尔特尔 (Surtr) | Since Surtr always carries S3 at E2, field presence ability is almost zero, deployment priority is extremely low |
|
||||
| 骰子 (Dice) | 骰子 (Dice) | In Mizuki I.S. the dice needs to be operated separately |
|
||||
|
||||
@@ -778,6 +781,94 @@ For farming hidden Collapsal Paradigms, N10 difficulty is recommended, with the
|
||||
- Reed the Flame Shadow + Orchid + Popukar;
|
||||
- Toddifons + Spot + Steward.
|
||||
|
||||
### JieGarden Integrated Strategy - Coppers
|
||||
|
||||
`resource/roguelike/JieGarden/coppers.json` describes the configuration and exchange strategy for JieGarden I.S. Coppers
|
||||
|
||||
```json5
|
||||
{
|
||||
"theme": "JieGarden", // I.S. Theme name (JieGarden here)
|
||||
"addons": { // Copper addon attribute descriptions (notes only, no effect on program)
|
||||
"锈色": "When cast, gain Originium Ingots +1 for every node passed",
|
||||
"存护": "When added to wallet, gain Shield +2",
|
||||
"入幻": "When added to wallet, gain Hope +1",
|
||||
"引光": "When added to wallet, gain Candlelight +1",
|
||||
"巡游": "When cast, gain Tickets +1 for every battle completed"
|
||||
},
|
||||
"coppers": [ // Copper list
|
||||
{
|
||||
"name": "大炎通宝", // Copper name (Yan Copper)
|
||||
"desc": "Ordinary and blank, nothing special", // Copper effect description (notes only, no effect on program)
|
||||
"rarity": "NORMAL", // Rarity: NONE/NORMAL/RARE/SUPER_RARE (notes only, no effect on program)
|
||||
"pickup_priority": 0, // Pickup priority, used when selecting drops, higher value = higher priority pickup
|
||||
"discard_priority": 1000 // Discard priority, used during exchange, higher value = higher priority discard
|
||||
},
|
||||
{
|
||||
"name": "衡-奇土生金", // Balance - Bountiful Land (name kept in Chinese as game-specific term)
|
||||
"desc": "When cast, immediately gain Originium Ingots +4 (transforms into Yan Copper before next cast)",
|
||||
"rarity": "NORMAL",
|
||||
"pickup_priority": 200,
|
||||
"discard_priority": 800,
|
||||
"cast_discard_priority": 999 // Optional field, discard priority when cast, only replaces discard_priority when cast and value >= 0
|
||||
// This typically applies to coppers whose effects change after casting (like coppers that become Yan Copper)
|
||||
},
|
||||
{
|
||||
"name": "厉-西廉贞", // Risk - Xi Lianzhen (name kept in Chinese as game-specific term)
|
||||
"desc": "When cast, Elite and Leader enemies gain HP and ATK +10%, with additional +20% in Dangerous Operations and Nian Beast Remnant Cognition",
|
||||
"rarity": "NORMAL",
|
||||
"pickup_priority": 0,
|
||||
"discard_priority": 1998,
|
||||
"cast_discard_priority": 2098 // Same as above, sometimes also used for coppers that bring negative effects after casting
|
||||
},
|
||||
...
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
#### Copper Exchange Logic
|
||||
|
||||
MAA automatically handles copper pickup and exchange in JieGarden I.S.:
|
||||
|
||||
::: tip Enable Conditions
|
||||
Copper exchange functionality is only enabled in the following modes:
|
||||
|
||||
- Investment Mode: Requires "Investment mode enable shopping, recruitment, advance 2 floors" option enabled
|
||||
- Other Modes: Enabled by default
|
||||
|
||||
:::
|
||||
|
||||
1. **Pickup Dropped Coppers**: After battle ends, if copper drop selection interface appears, MAA will select the copper with highest `pickup_priority`
|
||||
|
||||
2. **Exchange Wallet Coppers**: When a newly picked copper needs to be exchanged with coppers in the wallet:
|
||||
- Recognize all coppers in wallet: type, name, and whether cast status
|
||||
- Find the copper with highest `discard_priority` (least important) in wallet
|
||||
- If new copper's `discard_priority` is lower than the least important existing copper, abandon exchange
|
||||
- Otherwise replace the least important copper with the new copper
|
||||
|
||||
3. **Special Handling for Cast Coppers**:
|
||||
- For coppers marked with `cast_discard_priority`, use this priority when cast instead of `discard_priority`
|
||||
- This typically applies to coppers whose effects change after casting (like coppers that transform into Yan Copper 大炎通宝)
|
||||
|
||||
#### Copper Recognition Mechanism
|
||||
|
||||
MAA uses the following methods to recognize and handle coppers:
|
||||
|
||||
1. Recognize copper type icons (厉/衡/花 - Risk/Balance/Flower) through template matching
|
||||
2. Based on type icon position, use ROI offset for OCR recognition of copper name
|
||||
3. Recognize whether copper is in "cast" state
|
||||
4. Auto-scroll list in copper exchange interface, scan all coppers for comparison
|
||||
|
||||
#### Recognition Process Illustration
|
||||
|
||||

|
||||

|
||||
|
||||
::: info Note
|
||||
|
||||
- If OCR recognized copper name not found in config file, MAA will save debug image to `debug/roguelike/coppers/unknown` directory for troubleshooting
|
||||
|
||||
:::
|
||||
|
||||
## Desired Logic (todo)
|
||||
|
||||
### Automatic Formation Logic
|
||||
|
||||
@@ -194,14 +194,14 @@ Please note that JSON files do not support comments. The comments in this docume
|
||||
|
||||
Task list type fields (`sub`, `next`, `onErrorNext`, `exceededNext`, `reduceOtherTimes`) support expression calculations.
|
||||
|
||||
| Symbol | Meaning | Example |
|
||||
| :----------: | :--------------------------------------------------------------------------------------: | :------------------------------------: |
|
||||
| `@` | `@`-type Task | `Fight@ReturnTo` |
|
||||
| `#` (unary) | Virtual task | `#self` |
|
||||
| `#` (binary) | Virtual task | `StartUpThemes#next` |
|
||||
| `*` | Repeat tasks | `(ClickCornerAfterPRTS+ClickCorner)*5` |
|
||||
| `+` | Task list merge (in next-type attributes, only first occurrence of same-name tasks kept) | `A+B` |
|
||||
| `^` | Task list difference (in first but not second, order preserved) | `(A+A+B+C)^(A+B+D)` (result is `C`) |
|
||||
| Symbol | Meaning | Example |
|
||||
| :----------: | :--------------------------------------------------------------------------------------: | :-------------------------------------: |
|
||||
| `@` | `@`-type Task | `Fight@ReturnTo` |
|
||||
| `#` (unary) | Virtual task | `#self` |
|
||||
| `#` (binary) | Virtual task | `StartUpThemes#next` |
|
||||
| `*` | Repeat tasks | `(ClickCornerAfterPRTS+ClickCorner)*10` |
|
||||
| `+` | Task list merge (in next-type attributes, only first occurrence of same-name tasks kept) | `A+B` |
|
||||
| `^` | Task list difference (in first but not second, order preserved) | `(A+A+B+C)^(A+B+D)` (result is `C`) |
|
||||
|
||||
Operators `@`, `#`, `*`, `+`, `^` have precedence: `#` (unary) > `@` = `#` (binary) > `*` > `+` = `^`.
|
||||
|
||||
@@ -440,4 +440,4 @@ Configured in `MaaCore.vcxporj`, works out of the box. Prompts are somewhat cryp
|
||||
|
||||
### Visual Studio Code
|
||||
|
||||
Configured in `.vscode/settings.json`, use VSCode to open the **project folder** to use. Better prompt quality.
|
||||
Configured in `.vscode/settings.json`, use VS Code to open the **project folder** to use. Better prompt quality.
|
||||
|
||||
@@ -5,7 +5,7 @@ icon: devicon-plain:githubactions
|
||||
|
||||
# CI システム解析
|
||||
|
||||
MAA は Github Action を活用して、ウェブサイトの構築、自動リソース更新、最終ファイルの構築とリリースなど、大量の自動化作業を完了しました。時間の経過とともに、これらの CI は徐々にネスト化し始め、一部は他のリポジトリにリンクされています。このドキュメントは、MAA の CI システムを改善したい人のために簡単な紹介を提供することを目的としています。
|
||||
MAA は GitHub Action を活用して、ウェブサイトの構築、自動リソース更新、最終ファイルの構築とリリースなど、大量の自動化作業を完了しました。時間の経過とともに、これらの CI は徐々にネスト化し始め、一部は他のリポジトリにリンクされています。このドキュメントは、MAA の CI システムを改善したい人のために簡単な紹介を提供することを目的としています。
|
||||
|
||||
このドキュメントを読む前に、MAA のプロジェクト構造と構成について基本的な概念を持っていることが推奨されます。
|
||||
|
||||
@@ -28,7 +28,7 @@ MAA は Github Action を活用して、ウェブサイトの構築、自動リ
|
||||
|
||||
さらに、[pre-commit.ci](https://pre-commit.ci/) を通じてコードの自動フォーマットと画像リソースの自動最適化を実現しており、PR を作成した後に自動的に実行されるため、通常は特に注意する必要はありません。
|
||||
|
||||
## Github Action 部分
|
||||
## GitHub Action 部分
|
||||
|
||||
### コードテスト
|
||||
|
||||
|
||||
@@ -64,32 +64,44 @@ icon: iconoir:developer
|
||||
```
|
||||
|
||||
5. 開発環境の設定
|
||||
- `CMake` をダウンロードしてインストール
|
||||
- `Visual Studio 2026 Community` をインストール時、`C++ によるデスクトップ開発` と `.NET デスクトップ開発` を選択必須
|
||||
|
||||
6. `MAA.sln` をダブルクリックで開き、Visual Studio にプロジェクトを自動ロード
|
||||
7. VS の設定
|
||||
- 上部設定バーで `RelWithDebInfo` `x64` を選択(Release ビルド/ARM プラットフォームの場合は不要)
|
||||
- `MaaWpfGui` 右クリック → プロパティ → デバッグ → ネイティブデバッグを有効化(C++ Core へのブレークポイント設定可能)
|
||||
6. cmake プロジェクト設定を実行
|
||||
|
||||
8. これで自由に ~~改造~~ 開発を始められます
|
||||
9. 一定量の変更ごにコミット(メッセージ記入必須)
|
||||
Git 未経験者は dev ブランチ直接変更ではなく新規ブランチ作成推奨:
|
||||
|
||||
```bash
|
||||
git branch your_own_branch
|
||||
git checkout your_own_branch
|
||||
```cmd
|
||||
cmake --preset windows-x64
|
||||
```
|
||||
|
||||
これで dev の更新影響を受けずに開発可能
|
||||
7. `build/MAA.slnx` をダブルクリックで開き、Visual Studio にプロジェクトを自動ロード
|
||||
8. VS の設定
|
||||
- 上部設定バーで `Debug` `x64` を選択
|
||||
- `MaaWpfGui` 右クリック → スタートアップ プロジェクトに設定
|
||||
- F5 キーを押して実行
|
||||
|
||||
10. 開発完了後、変更をリモートリポジトリへプッシュ:
|
||||
::: tip
|
||||
Win32Controller(Windows ウィンドウ制御)関連機能をデバッグする場合は、[MaaFramework Releases](https://github.com/MaaXYZ/MaaFramework/releases) から対応プラットフォームのアーカイブをダウンロードし、`bin` ディレクトリ内の `MaaWin32ControlUnit.dll` を MAA の DLL と同じディレクトリ(例:`build/bin/Debug`)に配置してください。自動ダウンロードスクリプトの PR 歓迎!
|
||||
:::
|
||||
|
||||
9. これで自由に ~~改造~~ 開発を始められます
|
||||
10. 一定量の変更ごとにコミット(メッセージ記入必須)
|
||||
Git 未経験者は dev ブランチ直接変更ではなく新規ブランチ作成推奨:
|
||||
|
||||
```bash
|
||||
git branch your_own_branch
|
||||
git checkout your_own_branch
|
||||
```
|
||||
|
||||
これで dev の更新影響を受けずに開発可能
|
||||
|
||||
11. 開発完了後、変更をリモートリポジトリへプッシュ:
|
||||
|
||||
```bash
|
||||
git push origin dev
|
||||
```
|
||||
|
||||
11. [MAA メインリポジトリ](https://github.com/MaaAssistantArknights/MaaAssistantArknights) で Pull Request を提出(master ではなく dev ブランチを指定)
|
||||
12. 上流リポジトリの更新を同期する場合:
|
||||
12. [MAA メインリポジトリ](https://github.com/MaaAssistantArknights/MaaAssistantArknights) で Pull Request を提出(master ではなく dev ブランチを指定)
|
||||
13. 上流リポジトリの更新を同期する場合:
|
||||
1. 上流リポジトリを追加:
|
||||
|
||||
```bash
|
||||
@@ -114,12 +126,46 @@ icon: iconoir:developer
|
||||
git merge
|
||||
```
|
||||
|
||||
4. ステップ7、8、9、10 を繰り返し
|
||||
4. ステップ8、9、10、11 を繰り返し
|
||||
|
||||
::: tip
|
||||
Visual Studio 起動後、Git 操作は「Git 変更」画面からコマンドライン不要で可能
|
||||
:::
|
||||
|
||||
## VSCodeでの開発(オプション)
|
||||
|
||||
::: warning
|
||||
**Visual Studio での開発を推奨します。** MAA プロジェクトは主に Visual Studio をベースに構築されており、上記の完全な環境セットアップですべての開発ニーズをカバーし、すぐに使える最高の体験を提供します。VSCode ワークフローは、VSCode + CMake + clangd に精通した開発者向けの代替手段としてのみ提供されており、設定のハードルが比較的高くなります。
|
||||
:::
|
||||
|
||||
VSCodeを好む場合、CMake、clangdなどの拡張機能でコード補完、ナビゲーション、デバッグが可能です。前述の手順1~6(クローン、依存関係、CMake設定)を完了した後、以下の手順で設定できます。
|
||||
|
||||
### 推奨拡張機能
|
||||
|
||||
VS Code Marketplace からインストール:
|
||||
|
||||
| 拡張機能 | 用途 |
|
||||
| --------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- |
|
||||
| [CMake Tools](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools) | CMake の設定、ビルド、デバッグ統合 |
|
||||
| [clangd](https://marketplace.visualstudio.com/items?itemName=llvm-vs-code-extensions.vscode-clangd) | C++ インテリセンス、コードナビゲーション、診断(LSPベース) |
|
||||
| [C/C++](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools) | C++ プログラムのデバッグ(CMake Tools または launch.json と連携) |
|
||||
|
||||
::: tip
|
||||
clangd を使用する場合、C/C++ 拡張機能の IntelliSense を無効化(`C_Cpp.intelliSenseEngine` を `disabled` に設定)することを推奨します。競合を避けるためです。
|
||||
:::
|
||||
|
||||
### 設定手順
|
||||
|
||||
1. VS Code でプロジェクトルートを開く
|
||||
2. **CMake Tools**:ステータスバーで Configure Preset(例:`windows-x64`、`linux-x64`)を選択し、Build Preset でビルドを実行
|
||||
3. **clangd**:Windows で MSVC を使用する場合、`compile_commands.json` がなくても clangd で開発可能。Linux/macOS ではプリセットで `CMAKE_EXPORT_COMPILE_COMMANDS` が有効となり、clangd は `build/compile_commands.json` を自動使用
|
||||
4. **デバッグ**:プロジェクトには `.vscode/launch.json` が含まれており、MaaWpfGui や Debug Demo の起動が可能
|
||||
|
||||
### ビルドとデバッグのショートカット
|
||||
|
||||
- **ビルド**:`Ctrl+Shift+B` または CMake Tools ステータスバー
|
||||
- **デバッグ**:F5 または Run and Debug パネルで設定を選択
|
||||
|
||||
## MAAのファイルフォーマット要件
|
||||
|
||||
MAAは、リポジトリ内のコードとリソースファイルが美しく統一されるよう、一連のフォーマットツールを使用してメンテナンスと読み取りを容易にしています。
|
||||
@@ -131,7 +177,7 @@ MAAは、リポジトリ内のコードとリソースファイルが美しく
|
||||
| ファイルタイプ | フォーマットツール |
|
||||
| -------------- | --------------------------------------------------------------- |
|
||||
| C++ | [clang-format](https://clang.llvm.org/docs/ClangFormat.html) |
|
||||
| Json/Yaml | [Prettier](https://prettier.io/) |
|
||||
| JSON/YAML | [Prettier](https://prettier.io/) |
|
||||
| Markdown | [markdownlint](https://github.com/DavidAnson/markdownlint-cli2) |
|
||||
|
||||
### Pre-commit Hooksを使用してコードを自動フォーマット
|
||||
|
||||
@@ -163,4 +163,4 @@ ROIの範囲を変更するには
|
||||
|
||||
## 変更を送信する
|
||||
|
||||
[Github Pull Requst ガイド](../develop/development.md#github-pull-request-プロセス概要)を参照してください。
|
||||
[GitHub Pull Request ガイド](../develop/development.md#github-pull-request-プロセス概要)を参照してください。
|
||||
|
||||
@@ -11,7 +11,7 @@ icon: mingcute:git-pull-request-fill
|
||||
|
||||
::: warning
|
||||
このガイドでは、多くの概念を簡略化し、より多くの人々が実際に使用できるように、不格好であるが簡単な操作が含まれています。また、正しくない説明もありますので、大変恐れ入りますが、専門家の方々にはお許しください。
|
||||
Gitの使用経験とプログラミングの基礎がある場合、[Github Pull Request プロセス概要](./development.md#github-pull-request-プロセス概要)など、より上級のチュートリアルを見ることができます。
|
||||
Gitの使用経験とプログラミングの基礎がある場合、[GitHub Pull Request プロセス概要](./development.md#github-pull-request-プロセス概要)など、より上級のチュートリアルを見ることができます。
|
||||
:::
|
||||
|
||||
## 基本概念および用語の説明
|
||||
|
||||
@@ -3,7 +3,7 @@ order: 8
|
||||
icon: iconoir:code-brackets
|
||||
---
|
||||
|
||||
# Dedicated VSCode Extension Tutorial
|
||||
# Dedicated VS Code Extension Tutorial
|
||||
|
||||
The extension provides a series of convenient development capabilities for MaaAssistantArknights/MaaFramework, including but not limited to the following features:
|
||||
|
||||
@@ -14,7 +14,7 @@ For details, please visit [Extension Store](https://marketplace.visualstudio.com
|
||||
|
||||
## Installation
|
||||
|
||||
Searching `Maa` and installing it from VSCode extensions list is recommended.
|
||||
Searching `Maa` and installing it from VS Code extensions list is recommended.
|
||||
|
||||
::: tip
|
||||
When used for the first time, the extension will automatically download the preset version of resources.
|
||||
@@ -90,9 +90,9 @@ Scanning and selecting controllers, selecting resource, adding and manipulating
|
||||
|
||||
### Take screenshots and crop images / Quick recognition
|
||||
|
||||
Searching and launching `Maa: open crop tool` inside VSCode command panel can open `Screenshots / Crop` panel.
|
||||
Searching and launching `Maa: open crop tool` inside VS Code command panel can open `Screenshots / Crop` panel.
|
||||
|
||||
> Use `Ctrl+Shift+P` (`Command+Shift+P` on MacOS) to open command panel
|
||||
> Use `Ctrl+Shift+P` (`Command+Shift+P` on macOS) to open command panel
|
||||
|
||||
- After selecting and connecting to the controller, use `Screencap` button to obtain screenshots
|
||||
- Use `Upload` button to manually upload images.
|
||||
@@ -114,11 +114,11 @@ For MAA, the extension will maintain the models used automatically; you only nee
|
||||
|
||||
#### MaaFramework Log
|
||||
|
||||
Search and execute `Maa: open maa log` in the VSCode command panel to view the `maa.log` generated during debugging.
|
||||
Search and execute `Maa: open maa log` in the VS Code command panel to view the `maa.log` generated during debugging.
|
||||
|
||||
#### Maa Pipeline Support Extension Log
|
||||
|
||||
Search and execute `Maa: open extension log` in the VSCode command panel to view the `mse.log` generated during debugging.
|
||||
Search and execute `Maa: open extension log` in the VS Code command panel to view the `mse.log` generated during debugging.
|
||||
|
||||
### Bottom status bar
|
||||
|
||||
|
||||
@@ -11,6 +11,12 @@ This page is outdated and maybe still in Simplified Chinese. Translation is need
|
||||
|
||||
maa-cli 主要功能是通过调用 MaaCore,自动化完成明日方舟的游戏任务。此外,为了方便使用,maa-cli 还提供了管理 MaaCore 的功能。
|
||||
|
||||
::: tip
|
||||
|
||||
对于使用 Windows 包管理器 (winget) 安装 maa-cli 的用户,以下命令中的 `maa` 需要替换为 `maa-cli` 。
|
||||
|
||||
:::
|
||||
|
||||
## 管理 MaaCore
|
||||
|
||||
maa-cli 可以安装和更新 MaaCore 及资源,只需运行以下命令:
|
||||
|
||||
@@ -20,7 +20,7 @@ winget install "Microsoft.VCRedist.2015+.x64" --override "/repair /passive /nore
|
||||
|
||||
以下の<u>**2つ**</u>のランタイムライブラリを手動でダウンロードしてインストールして問題を解決してください。
|
||||
|
||||
- [Visual C++ 再頒布可能パッケージ](https://aka.ms/vs/17/release/vc_redist.x64.exe)
|
||||
- [Visual C++ 再頒布可能パッケージ](https://aka.ms/vc14/vc_redist.x64.exe)
|
||||
- [.NET デスクトップランタイム 10](https://aka.ms/dotnet/10.0/windowsdesktop-runtime-win-x64.exe)
|
||||
|
||||
:::
|
||||
@@ -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 も同様にサポートしていません。
|
||||
|
||||
#### 公式統合パック(確信)
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ icon: hugeicons:brain-02
|
||||
- 龍門市街:LungmenDowntown@Annihilation
|
||||
|
||||
- サイドストーリー内の `OF-1` / `OF-F3` / `GT-5`。
|
||||
- 当期 SS イベントの後半 3 ステージ。自動で [API](https://api.maa.plus/MaaAssistantArknights/api/gui/StageActivity.json) から更新を取得後、画面下部に表示されます。
|
||||
- 当期 SS イベントの後半 3 ステージ。自動で [API](https://api.maa.plus/MaaAssistantArknights/api/gui/StageActivityV2.json) から更新を取得後、画面下部に表示されます。
|
||||
- 復刻 SS イベント。`SSReopen-<ステージ接頭辞>` を入力すると、XX-1 ~ XX-9 を一括周回します(例:`SSReopen-IC`)。
|
||||
|
||||
::: details サンプル画面
|
||||
@@ -70,22 +70,11 @@ icon: hugeicons:brain-02
|
||||
代替ステージは当日の開放状況に応じて戦闘ステージを決定し、最初に開放されているステージを選びます。
|
||||
これはスケジュールに近い機能であり、「ステージ選択に失敗したときの予備候補」にはなりません。
|
||||
|
||||
1. 例:ステージ選択が `龍門幣-6(CE-6)`、代替が `1-7` と `作戦記録-6(LS-6)` の場合:
|
||||
- 当日に `龍門幣-6(CE-6)` が開放されていれば `龍門幣-6(CE-6)` に向かい、`1-7` と `作戦記録-6(LS-6)` には向かいません。この時点で `龍門幣-6(CE-6)` の自動指揮を解放していなければ、作戦タスクはエラーになります。
|
||||
- 当日に `龍門幣-6(CE-6)` が開放されていなければ `1-7` に向かい、`龍門幣-6(CE-6)` には向かいません。この時点で `1-7` の自動指揮を解放していなければ、作戦タスクはエラーになります。
|
||||
- `作戦記録-6(LS-6)` より前に常設の `1-7` が存在するため、この構成では MAA は `作戦記録-6(LS-6)` には決して向かいません。
|
||||
2. ステージ選択が `殲滅作戦` の場合:
|
||||
- 殲滅の結果にかかわらず、他の代替ステージの選択ロジックには影響しません。殲滅がエラーでも作戦タスクはエラーになりません。
|
||||
- 残りの代替ステージは `理性剤使用数` と `連戦回数` の設定のみを継承し、`割る源石の数`・`周回数指定`・`素材の指定` の制御は受けません。
|
||||
例:代替選択肢が `龍門幣-6(CE-6)`、 `1-7` 、`作戦記録-6(LS-6)` の場合:
|
||||
|
||||
### 余剰理性の消費
|
||||
|
||||
`作戦` タスク終了後に起動します。`理性剤使用数`・`割る源石の数`・`周回数指定`・`素材の指定`・`連戦回数` の制御は受けず、現在残っている理性を使い切った時点で終了します。
|
||||
|
||||
- `ステージ` の理性不足後に、`余剰理性の消費` 用ステージで残りの“端数”理性を処理する用途に適します(例:1-7 へ行く)。
|
||||
- 連戦回数の設定が高すぎて理性が不足した場合に、自動で単発周回に切り替えて理性を使い切って締める用途にも適します(例:1-7 を連戦 6 回に設定したが理性が 30 のため、自動的に連戦なしの 1-7 を 5 回に切り替え)。
|
||||
- 残り理性がなお不足している場合(例:理性は 6 未満)にはタスクを終了します。
|
||||
- `余剰理性の消費` で選んだステージが未開放の場合、作戦タスクはエラーになります。
|
||||
- 当日に `龍門幣-6(CE-6)` が開放されていれば `龍門幣-6(CE-6)` に向かい、`1-7` と `作戦記録-6(LS-6)` には向かいません。この時点で `龍門幣-6(CE-6)` の自動指揮を解放していなければ、作戦タスクはエラーになります。
|
||||
- 当日に `龍門幣-6(CE-6)` が開放されていなければ `1-7` に向かい、`龍門幣-6(CE-6)` には向かいません。この時点で `1-7` の自動指揮を解放していなければ、作戦タスクはエラーになります。
|
||||
- `作戦記録-6(LS-6)` より前に常設の `1-7` が存在するため、この構成では MAA は `作戦記録-6(LS-6)` には決して向かいません。
|
||||
|
||||
### 連戦回数
|
||||
|
||||
@@ -93,15 +82,14 @@ MAA はユーザーが設定した連戦回数に基づいて戦闘を行いま
|
||||
|
||||
- **AUTOモード**(0):
|
||||
- ステージの最大連戦回数を自動認識し、理性が溢れない範囲で最大を維持
|
||||
- 完了後は(設定していれば)`余剰理性の消費` フローへ移行
|
||||
|
||||
- **数値モード**(1~6):
|
||||
- 設定した回数で連戦を実行
|
||||
- 現在の理性で設定回数を満たせない場合(例:5 回分しかないのに 6 回を設定)には、その時点で終了し(設定していれば)`余剰理性の消費` フローへ移行
|
||||
- 現在の理性で設定回数を満たせない場合(例:5 回分しかないのに 6 回を設定)には、その時点で終了し
|
||||
|
||||
- **切り替えない**(-1):
|
||||
- ゲーム内の連戦回数設定を変更しません
|
||||
- 現在のゲーム内設定回数を満たす理性が不足している場合は、その時点で終了し(設定していれば)`余剰理性の消費` フローへ移行
|
||||
- 現在のゲーム内設定回数を満たす理性が不足している場合は、その時点で終了し
|
||||
|
||||
### 周回数指定
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ icon: ic:baseline-article
|
||||
- SoCの場合のみ、完全なステージ番号を入力する必要があります。例: `PR-A-1` 。
|
||||
- `Annihilation`(殲滅作戦)。
|
||||
- `OF-1` / `OF-F3` / `GT-5` のみサポートされます。
|
||||
- 現在のSSイベントの最後の3つのステージ。 [API](https://api.maa.plus/MaaAssistantArknights/api/gui/StageActivity.json) で更新が自動的にダウンロードされた後、メイン画面に対応するメッセージが表示されます。
|
||||
- 現在のSSイベントの最後の3つのステージ。 [API](https://api.maa.plus/MaaAssistantArknights/api/gui/StageActivityV2.json) で更新が自動的にダウンロードされた後、メイン画面に対応するメッセージが表示されます。
|
||||
- 再刻印SSアクティビティは `SSReopen-XX` と入力するとXX-1~XX-9ステージを一度にクリアできます。 `SSReopen-IC` など。
|
||||
|
||||
::: details 画面例
|
||||
|
||||
@@ -20,7 +20,7 @@ JSONファイルはコメントをサポートしておらず、テキスト内
|
||||
{
|
||||
"name": "ソーンズ", // オペーレーター名
|
||||
|
||||
"skill": 3, // スキルID と範囲 [1, 3], オプション, 1 がデフォルト
|
||||
"skill": 3, // スキルID と範囲 [0, 3], オプション, 1 がデフォルト
|
||||
|
||||
"skill_usage": 0, // スキルの使用, オプション, デフォルトは 0
|
||||
// 0 - `パッシブ`
|
||||
|
||||
@@ -12,16 +12,27 @@ JSONファイルはコメントをサポートしていません。テキスト
|
||||
## ローグリソースの保存場所
|
||||
|
||||
- `resource/roguelike/` には、各ローグテーマに応じての運用リソースが格納されています
|
||||
- テーマフォルダ: `Phantom/` はファントム、 `Mizuki/` はミヅキ `Sami/` はサーミ
|
||||
- テーマフォルダ: `Phantom/` はファントム、 `Mizuki/` はミヅキ、`Sami/` はサーミ、`Sarkaz/` はサルカズ、`JieGarden/` は界園
|
||||
- `autopilot/` には、各ステージの戦闘jsonが含まれます
|
||||
- `ステージ名.json` ステージの戦闘ロジック
|
||||
- `encounter.json/` 思わぬ遭遇イベントロジック
|
||||
- `encounter/` 思わぬ遭遇イベントロジック
|
||||
- `default.json` 経験値モード
|
||||
- `deposit.json` 源石錐モード
|
||||
- `recruitment.json` オペレーター招集ロジック
|
||||
- `shopping.json` ストア購入ロジック
|
||||
|
||||
特に、 `Sami/` の下の `foldartal.json` は、サーミの暗号文板の使用ロジックを表す
|
||||
- 特に、`Sami/` の下の
|
||||
- `foldartal.json` はサーミの啓示板の使用ロジックを表す
|
||||
- `collapsal_paradigms.json` はサーミのパラダイムロストの種類を表す
|
||||
- `autopilot/ステージ名_collapse.json` ステージの戦闘ロジック(パラダイムロスト収集モード)
|
||||
- `encounter/collapse.json` パラダイムロスト収集モードの思わぬ遭遇ロジック
|
||||
|
||||
- `Sarkaz/` の下の
|
||||
- `fragments.json` はサルカズの思案の基本情報を保存
|
||||
- `map.json` はサルカズの位置測定分隊のルーティング用テンプレート画像情報を保存
|
||||
|
||||
- `JieGarden/` の下の
|
||||
- `coppers.json` は通宝の基本情報と拾取・交換ロジック
|
||||
|
||||
## ローグの始め--オペレーター招集
|
||||
|
||||
@@ -86,45 +97,89 @@ JSONファイルはコメントをサポートしていません。テキスト
|
||||
|
||||
1. 既存のグループの紹介
|
||||
|
||||
ファントムテーマを例に取ると:主にオペレーターを以下のように分類しています
|
||||
サーミのテーマを例に取ると:主にオペレーターを以下のように分類しています
|
||||
|
||||
| グループ | 主な考慮事項 | 主に職種を含む | オペレーターの例 |
|
||||
| :------------- | :----------------------------- | :----------------- | :----------------------------------------------------------------------------------------------- |
|
||||
| **_地面阻挡_** | 場に立つことと雑魚を清掃 | 重装、前衛 | 庇護衛士、基石、ラ・プルマ、マウンテン、M3、リィンとシーンの召喚ユニット、スポット、重装予備隊員 |
|
||||
| **_地面单切_** | 一人でエリートモンスターと戦う | 執行者-特殊 | スルト、血掟テキサス、キリンRヤトウ、M3、レッド |
|
||||
| **_高台 C_** | 常態と決戦DPS | 狙撃、術師 | 遊龍チェン、ゴールデングロー、エイヤフィヤトラ、フィアメッタ |
|
||||
| **_高台输出_** | 対空および通常DPS | 狙撃、術師 | アルケット、エクシア、クルース、スチュワード |
|
||||
| **_奶_** | 治療能力 | 医療、補助 | ケルシ、濁心スカジ、ハイビスカス、アンセル |
|
||||
| **_回费_** | cost 回復 | 先鋒 | テンニンカ、イネス、フェン、バニラ |
|
||||
| **_炮灰_** | 砲弾吸収、再配置 | 特殊、召喚ユニット | M3、レッド、テンニンカ、予備隊員 |
|
||||
| **_高台预备_** | DPS能力を持っています | | オーキッド、予備隊員 |
|
||||
| グループ | 主な考慮事項 | 主に職種を含む | オペレーターの例 |
|
||||
| :---------------------- | :---------------------------------------- | :------------------------- | :----------------------------------------------------------------------------------------------- |
|
||||
| **_地面阻挡_** | 場に立つことと雑魚を清掃 | 重装、前衛 | 庇護衛士、基石、ラ・プルマ、マウンテン、M3、リィンとシーンの召喚ユニット、スポット、重装予備隊員 |
|
||||
| **_地面单切/執行者_** | 一人でエリート敵と戦う | 執行者-特殊 | スルト、血掟テキサス、キリンRヤトウ、M3、レッド |
|
||||
| **_高台C_** | 常態と決戦DPS | 狙撃、術師 | ウィシャデル、ロゴス、遊龍チェン、ゴールデングロー |
|
||||
| **_高台输出_** | 対空および通常DPS | 狙撃、術師 | アルケット、エクシア、クルース、スチュワード |
|
||||
| **_速狙_** | 物理DPS、標準射程 | 狙撃 | Ela、エクシア、ケイパー、クルース |
|
||||
| **_術師_** | 術DPS、標準射程 | 単体術師 | エイヤフィヤトラ、ロゴス、スチュワード |
|
||||
| **_辅助_** | 後方1マスを攻撃可能 | 補助 | ヴィルトゥオーサ、スズラン、ケイパー、オーキッド |
|
||||
| **_狙撃_** | 射程が長い高台 | 投擲手、破城射手 | ウィシャデル、ティフォン、ロサ |
|
||||
| **_奶_** | 治療能力 | 医療、補助 | ケルシー、濁心スカジ、ハイビスカス、アンセル |
|
||||
| **_単奶_** | 攻撃範囲縦深>=4 | 医療 | ケルシー、焔影リード、純燼エイヤフィヤトラ、ハイビスカス、アンセル |
|
||||
| **_群奶_** | 攻撃範囲縦深<4、後方を治療可能 | 医療、補助 | ナイチンゲール、フィリオプシス、濁心スカジ |
|
||||
| **_回费_** | COST 回復 | 先鋒 | テンニンカ、イネス、フェン、バニラ |
|
||||
| **_地刺_** | ブロックなし、盾の前でDPSまたは減速を提供 | 潜伏者 | 帰溟スペクター、アスカロン、マンティコア |
|
||||
| **_地面遠程_** | 地上長射程、盾の後ろでDPS可能 | 教官、領主 | ホルン、パラス、ソーンズ、シルバーアッシュ |
|
||||
| **_領主_** | 地上攻撃範囲縦深>4、対空可能 | 要塞、領主 | ソーンズ、シルバーアッシュ、チューバイ |
|
||||
| **_盾法_** | 攻撃範囲が短く、ある程度の耐久力がある | 法陣術師 | リン、カーネリアン |
|
||||
| **_炮灰_** | 砲弾吸収、再配置 | 特殊、召喚ユニット | M3、レッド、テンニンカ、予備隊員 |
|
||||
| **_大龍_** | 盾の前で耐久、近接ブロックで合体しやすい | 召喚ユニット | リィンの小龍、ジェシカの盾 |
|
||||
| **_補給站_** | メインDPS オペレーターの回転を加速 | 召喚ユニット | 支援補給ステーション、工匠系オペレーターの召喚ユニット |
|
||||
| **_無人機_** | 高台地上を無視する治療召喚ユニット | 召喚ユニット | スカジのシーボーン、サイレンスのドローン |
|
||||
| **_支援陷阱_** | 地上に配置する爆発物 | 召喚ユニット | 壊れたスモークマシン、ミスターランブル |
|
||||
| **_障碍物_** | 配置枠を使わず敵視を集めるかブロック | 召喚ユニット | 鳥籠、障害物 |
|
||||
| **_其他地面_** | 優先使用したくない地上 | 押引、ブロック1先鋒、剣豪 | バグパイプ、クロワッサン |
|
||||
| **_高台预备/其他高台_** | 優先使用したくない高台 | 拡散術師、連鎖術師、戦術家 | オーキッド、予備隊員 |
|
||||
|
||||
::: tip
|
||||
地面阻挡は主にオペレーターの防御総合能力を考慮します(時には全滅させることも防御力が強い表現ですね)、地面遠程と領主グループを含みます
|
||||
|
||||
奶は主に総合治療能力を考慮し、単奶と群奶を含みます。攻撃範囲カバーを考慮する必要がある場合は、単奶(4マス治療)または群奶(後方治療)を単独で使用します
|
||||
|
||||
高台输出は出力能力のみを考慮し、主に狙撃と術師職業の混合順序です。出力タイプ、攻撃範囲などの制限条件を考慮する必要がある場合は、速狙、術師、辅助、盾法を単独で使用します
|
||||
|
||||
罠タイプの召喚ユニットは数が多いため、支援陷阱グループに入れず、MAAに自動配置させた方が効果的です
|
||||
:::
|
||||
|
||||
2. 特別な操作が必要なグループ
|
||||
|
||||
上記のような一般的なグループ以外に、時折、特定のオペレーターやオペレーターの種類に対して細かいカスタマイズが必要な場合があります。例えば
|
||||
|
||||
| グループ | 含まれるオペレーター | 主な特徴 |
|
||||
| :--------- | :--------------------------- | :------------------------------------------------------------------------------------------------------------------ |
|
||||
| 棘刺 | ソーンズ、ホルン | 地上遠隔攻撃、特定の位置に非常に適したマップがあります |
|
||||
| 召唤类 | ケルシ、リィン、シーン | 地上ブロックを持ち、一部のマップでは優先的に配置する必要があり、召喚物はブロックまたは死体として使用できます |
|
||||
| 情报官 | カンタービレ、イネス | コスト回収やサイドアウトプット、シングルカットが可能 |
|
||||
| 浊心斯卡蒂 | 濁心スカジ | 低圧時の回復量はまあまあですが、範囲が特殊で、一部のマップには特に適しています |
|
||||
| 焰苇 | 焔影リード | サーミローグはよく開局オペレーターを使い、治療と輸出を兼ねており、いくつかの図には比較的適切な位置がある |
|
||||
| 银灰 | シルバーアッシュ、ムリナール | 地上の大規模な戦闘出力、ボスに対して配置できます |
|
||||
| 史尔特尔 | スルト | 精二後、3スキルを固定搭載するため、この時点でのスタンバイ能力はほぼゼロで、ブロック位置の配置優先度は非常に低いです |
|
||||
| 骰子 | ダイス | ミヅキテーマの中のダイスは個別に操作する必要があります |
|
||||
| グループ | 含まれるオペレーター | 主な特徴 |
|
||||
| :--------- | :--------------------------- | :-------------------------------------------------------------------------------------------------------------- |
|
||||
| 益达 | ウィシャデル | 高台DPS、優先配置でプレッシャーを軽減できます |
|
||||
| 棘刺 | ソーンズ、ホルン | 地上遠隔攻撃、ファントムテーマでは特定の位置に非常に適したマップがあります |
|
||||
| 召唤类 | ケルシ、リィン、シーン | 地上ブロックを持ち、一部のマップでは優先的に配置する必要があり、召喚物はブロックまたは死体として使用できます |
|
||||
| 情报官 | カンタービレ、イネス | コスト回収やサイドアウトプット、シングルカットが可能 |
|
||||
| 浊心斯卡蒂 | 濁心スカジ | 低圧時の回復量はまあまあですが、範囲が特殊で、一部のマップには特に適しています |
|
||||
| 焰苇 | 焔影リード | サーミローグでよく使う開局オペレーター、治療と輸出を兼ねており、一部のマップには比較的適切な位置があります |
|
||||
| 玛恩纳 | ムリナール、シルバーアッシュ | 地上の大規模な決戦DPS、ボスに対して配置できます |
|
||||
| 史尔特尔 | スルト | 精二後、3スキルを固定搭載するため、この時点での場持ち能力はほぼゼロで、ブロック位置の配置優先度は非常に低いです |
|
||||
| 骰子 | ダイス | ミヅキテーマの中のダイスは個別に操作する必要があります |
|
||||
|
||||
::: info 注意
|
||||
現在、識別されていない近距離オペレーターは最後から2番目のグループ(其他地面)に分類され、識別されていない遠距離オペレーターは最後から1番目のグループ(其他高台)に分類されます
|
||||
:::
|
||||
|
||||
::: tip
|
||||
新しく実装されたオペレーターは、それぞれのローグライクの `recruitment.json` に手動で追加する必要があります。開発者が対応を忘れることもあります。
|
||||
もし気づいた場合は、issue を送って開発者に知らせることもできますし、直接 PR を送ることもできます。
|
||||
:::
|
||||
|
||||
### 預設陣容--陣容完備檢測
|
||||
|
||||
あなたがクリアできるか、高層まで進むことが期待されるチームの中で、どのオペレーターが基本的なコアメンバーに属していますか?欠かせないものは何ですか?
|
||||
|
||||
::: info 注意
|
||||
現在のスクリプトの勧誘ロジックは、陣容が完全でない限り、0希望とkeyオペレーターだけを勧誘し、希望を高星のkeyオペレーターに渡します
|
||||
現在のスクリプトの招集ロジックは、陣容が完全でない限り、0希望とkeyオペレーターだけを招集し、希望を高星のkeyオペレーターに渡します
|
||||
(現在の実装方法は、高レア度オペレーターと★3オペレーターを手動でキーオペレーターとしてマークし、募集時にはキーオペレーターのみを募集する)(TODO: 0希望のオペレーターを識別する)
|
||||
|
||||
したがって、完全度の数字を高く設定しないようにし、必要なすべてのオペレーターの数(基本的なコアメンバー)を合計して、4〜8人にしてください
|
||||
|
||||
チームが陣容の完全度テストをクリアした後、招集券を入手するたびにオペレーターの募集と昇進優先度に基づいて採用されるため、希望を無駄にしないために、採用を望まないオペレーターは評価を設定したり、同じ職業の★3と予備隊員の評価を下回ったりする
|
||||
(絶対に必要でないオペレーターには特別な高得点と低得点が与えられます。 `Sami` の `止颂` を参照)
|
||||
|
||||
戦闘陣容を形成する際、オペレーター選択画面のデフォルトソート(上から下、左から右へ)が読み取られ、秩序正しく保存されます
|
||||
この順序に基づき、最初に陣容完全性を満たすオペレーターは、すべての陣容完全性を満たすか、陣容完全性を満たすオペレーターがいないまで相対的な順序で言及されます
|
||||
次に予備隊員を一番最後に移動させ、新しい順序を形成し、新しい順序で選択します
|
||||
特に、六つ星の臨時招集オペレーターはデフォルトで編成の先頭に配置されているため、実際の編成に六つ星の臨時招集オペレーターを簡単に組み込むことができます(TODO:使いならないE1臨時招集オペレーターは除外)
|
||||
|
||||
新しいアカウントについて:キーオペレーターの半チームの要件を満たさない10件の招集の場合、完全性テストは中止され、スコアに応じて使用されます。つまり、3つ星を育成していない新しい人数は2つか3つの6つ星のみを得られ、残りは多くの予備オペレーターを使います
|
||||
:::
|
||||
|
||||
```json
|
||||
@@ -149,16 +204,34 @@ JSONファイルはコメントをサポートしていません。テキスト
|
||||
],
|
||||
"threshold": 2
|
||||
},
|
||||
{
|
||||
"groups": [
|
||||
"奶" //(ここでは、回復役が1名必要であることを示しています)
|
||||
],
|
||||
"threshold": 1
|
||||
}
|
||||
...
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
::: caution
|
||||
あるオペレーターが複数のオペレーターグループに所属している場合、カウントは一度だけ行われます。
|
||||
例えば、オペレーター `棘刺` はオペレーターグループ `棘刺` と `地面阻挡` の両方に所属している可能性がありますが、この戦略グループ内ではオペレーター `棘刺` は一度だけカウントされます。
|
||||
|
||||
しかし、それぞれの戦略グループでは別々にカウントされます。
|
||||
例えば、オペレーター `焰影苇草` はオペレーターグループ `高台输出` と `奶` の両方に所属している可能性があり、この場合、両方の戦略グループでオペレーター `焰影苇草` がカウントされます。
|
||||
:::
|
||||
|
||||
### オペレーター募集パラメータの調整
|
||||
|
||||
1. グループ内の順序は配置検出の優先度を表します
|
||||
|
||||
2. グループ内のオペレーターの各フィールドの意味とスクリプト関連のロジック
|
||||
2. 臨時募集オペレーターは、既存の優先度に600ポイントが加算されます
|
||||
|
||||
3. ランダム昇進オペレーターの評価は、募集優先度と精二優先度を合計して計算されます
|
||||
|
||||
4. グループ内のオペレーターの各フィールドの意味とスクリプト関連のロジック
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -178,15 +251,16 @@ JSONファイルはコメントをサポートしていません。テキスト
|
||||
"alternate_skill_times": 1, // 代替スキルのスキル使用回数(このフィールドはまだ実装されていません)
|
||||
"recruit_priority": 900, // 募集優先度、数字が大きいほど優先度が高くなり、900以上は必ず募集することを示し、400以下は一部の重要なオペレーターのE2優先度よりも低い
|
||||
// 臨時オペレーターの募集優先度は自動的に+800
|
||||
"promote_priority": 600, // 昇格優先度、数字が大きいほど優先度が高くなり、900以上はE2を取得する可能性があり、400以下は普通の3星オペレーターの募集優先度よりも低い
|
||||
"promote_priority": 600, // 昇進優先度、数字が大きいほど優先度が高くなり、900以上はE2を取得する可能性があり、400以下は普通の3星オペレーターの募集優先度よりも低い
|
||||
// Tips: 募集優先度を下げたり書かないで精英度を高めると、実際にはこれらのオペレーターのE2優先度を高めています
|
||||
"is_key": true, // true はキーオペレーター、false または省略すると非キーオペレーターです。陣形完全性チェックに合格しない場合、キーオペレーターおよび0希望オペレーターのみを募集し、希望を保存します。
|
||||
"is_start": true, // true は開幕選択オペレーター、false または省略すると非開幕選択オペレーターです。チームに start オペレーターがいない場合、start オペレーターおよび0希望オペレーターのみを募集し、ユーザーが入力したオペレーターは強制的に start オペレーターになります
|
||||
"auto_retreat": 0, // 配置後何秒で自動撤退するか、整数で、0 より大きい場合に有効です、主に特殊オペレーターや投錨に使用されます、肉鳩は通常2倍速ですので、スキルの持続時間/2 に設定することをお勧めします
|
||||
"promote_priority_when_team_full": 850,
|
||||
"recruit_priority_when_team_full": 850, // 個別に設定する必要はなく、編成が整ったときの募集の優先度は、デフォルトで-100となります
|
||||
"promote_priority_when_team_full": 850, // 個別に設定する必要はなく、編成が整った時、昇進の優先度はデフォルトで精二優先度300
|
||||
"recruit_priority_offsets": [ // 現在の陣形に応じた募集優先度の調整
|
||||
{
|
||||
"groups": [ // 条件を満たすためにどのグループが必要か
|
||||
"groups": [ // 条件を満たすためにどのグループが必要か。これらのグループには同じオペレーターが重複して出ないようにしてください。そうしないと、重複してカウントされます。
|
||||
"凯尔希",
|
||||
"地面阻挡",
|
||||
"棘刺"
|
||||
@@ -207,7 +281,13 @@ JSONファイルはコメントをサポートしていません。テキスト
|
||||
}
|
||||
```
|
||||
|
||||
3. あなたの理解に基づいて新しいグループとオペレーターを追加してください
|
||||
::: info 注意
|
||||
`recruit_priority_offsets`の`group`内のグループに重複するオペレーターがいないようにしてください。
|
||||
|
||||
`auto_retreat`を設定した場合、通常は作戦計画で改めて`retreat_plan`を設定する必要はありません。
|
||||
:::
|
||||
|
||||
5. あなたの理解に基づいて新しいグループとオペレーターを追加してください
|
||||
|
||||
新しいグループを追加すると、既存のグループからオペレーターをコピーして、エキスパートの評価を参考にして、それを基に変更できます
|
||||
|
||||
@@ -420,6 +500,12 @@ JSONファイルはコメントをサポートしていません。テキスト
|
||||
],
|
||||
```
|
||||
|
||||
::: info 注意
|
||||
maaが現在のステージに対応するカスタム作戦を見つけられない場合、自動的に汎用作戦を実行します。
|
||||
|
||||
maaが現在のステージ名を認識できない場合、作戦のロジックは一切実行されません。
|
||||
:::
|
||||
|
||||
### 特定のオペレーターの戦術に特別な理解がありますか?- 特定のオペレーターに対する高度な操作
|
||||
|
||||
このオペレーターを単独でグループ化してください。
|
||||
@@ -442,7 +528,9 @@ JSONファイルはコメントをサポートしていません。テキスト
|
||||
|
||||
OCRで思わぬ遭遇イベントを認識しますが、選択肢は固定された位置を操作します
|
||||
|
||||
時間が認識されない場合、最も下の選択肢を選択します
|
||||
事件が認識されない場合、最も下の選択肢を選択します
|
||||
|
||||
よくあるフリーズの原因の一つは、オプションタイプのアイコンは存在するのにオプションが選択できないことです(TODO)
|
||||
|
||||
通常、微調整するか調整しないことが必要です(高手はすでに書いているでしょう)
|
||||
|
||||
@@ -524,13 +612,27 @@ OCRで思わぬ遭遇イベントを認識しますが、選択肢は固定さ
|
||||
"effect": "立即进阶两个干员(不消耗希望)",
|
||||
"No": 15
|
||||
},
|
||||
...
|
||||
|
||||
{
|
||||
"name": "警戒篱木",
|
||||
"effect": "坍缩值-2,目标生命上限+2",
|
||||
"No": 198,
|
||||
"decrease_collapse": true // trueは、このコレクションを入手すると崩壊値が下がることを示します。modeが5の場合は購入されません。
|
||||
},
|
||||
...
|
||||
|
||||
"others": // maaは購入しないコレクション品、例えばエンディングコレクションやクレーン
|
||||
{
|
||||
"name": "无人起重机"
|
||||
},
|
||||
```
|
||||
|
||||
## 個別のローグテーマ カスタムロジック
|
||||
|
||||
### サーミテーマ--密文板
|
||||
### サーミテーマ--啓示板
|
||||
|
||||
`resource/roguelike/Sami/foldartal.json` はサーミテーマの密文板の戦術を記述しています。
|
||||
`resource/roguelike/Sami/foldartal.json` はサーミテーマの啓示板の戦術を記述しています。
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -568,17 +670,151 @@ OCRで思わぬ遭遇イベントを認識しますが、選択肢は固定さ
|
||||
...
|
||||
}
|
||||
],
|
||||
"foldartal": [ //密文板の効果の注釈(ここでは、板の効果を参照用に記述し、プログラムの実行には影響しません)
|
||||
"foldartal": [ //啓示板の効果の注釈(ここでは、板の効果を参照用に記述し、プログラムの実行には影響しません)
|
||||
{
|
||||
"name": "布局", //密文板の種類(上板か下板か)
|
||||
"name": "布局", //啓示板の種類(上板か下板か)
|
||||
"foldartal": [
|
||||
{
|
||||
"name": "黜人", //密文板の名前
|
||||
"effect": "选择所有右侧邻近的战斗节点" //密文板の効果
|
||||
"name": "黜人", //啓示板の名前
|
||||
"effect": "选择所有右侧邻近的战斗节点" //啓示板の効果
|
||||
},
|
||||
|
||||
```
|
||||
|
||||
### サーミテーマ--パラダイムロスト
|
||||
|
||||
`check_collapsal_paradigms`が`true`の場合、MAAは2つの異なる方法でパラダイムロストをチェックします:
|
||||
|
||||
- ステージ選択画面で画面上中央をクリックして崩壊状態バーを展開する、以下Panel Checkと呼ぶ
|
||||
- 画面右側にパラダイムロスト通知があるかどうかを観察する、以下Banner Checkと呼ぶ
|
||||
|
||||
崩壊値を取得する方法は多様で、以下の状況を考慮しています:
|
||||
|
||||
1. 戦闘後、完璧な戦闘でないため崩壊値が増加し、Banner Checkを実行
|
||||
2. 戦闘後、秘宝を獲得したため崩壊値が変動し、Banner Checkを実行
|
||||
3. 思わぬ遭遇などのノードで選択肢を選んだため崩壊値が変動し、Banner Checkを実行
|
||||
4. 怪しい旅商人ノードで秘宝を購入したため崩壊値が変動し、Banner Checkを実行
|
||||
5. 啓示板を使用したため崩壊値が減少し、Banner Checkを実行
|
||||
6. 新しい層に入ったため崩壊値が増加し、Panel Checkを実行
|
||||
7. Banner Check時にパラダイムロストが消退したことを発見した場合、一度に2層消退するかどうか不明なため(可能性は極めて低い)、次回ステージ選択画面に戻った時に追加でPanel Checkを実行
|
||||
8. `double_check_collapsal_paradigms`が`true`の場合、ステージ選択画面に戻るたびに追加でPanel Checkを実行し、パラダイムロストの記録漏れや記録過剰がないか検証
|
||||
|
||||
以下は隠しパラダイムロストを収集するタスク設定例です:
|
||||
|
||||
```json5
|
||||
{
|
||||
"theme": "Sami",
|
||||
"mode": 5,
|
||||
"investment_enabled": false,
|
||||
"squad": "远程战术分队",
|
||||
"roles": "稳扎稳打",
|
||||
"core_char": "维什戴尔",
|
||||
"expected_collapsal_paradigms": ["目空一些", "睁眼瞎", "图像损坏", "一抹黑"]
|
||||
}
|
||||
```
|
||||
|
||||
`mode`が`5`の場合:
|
||||
|
||||
- `stage_name`が`ステージ名_collapse`の作戦戦略を優先使用、例:`resource/roguelike/Sami/autopilot/事不过四_collapse.json`
|
||||
- `resource/roguelike/Sami/encounter/collapse.json`に記述された思わぬ遭遇イベント選択の戦略を使用
|
||||
- `decrease_collapse`が`true`の秘宝は購入しません
|
||||
|
||||
`mode`が`5`でないが`check_collapsal_paradigms`が`true`の場合、パラダイムロストを検出し、`expected_collapsal_paradigms`リストにあるパラダイムロストに遭遇した時にタスクを停止しますが、他のパラダイムロストに遭遇した時は再開しません。
|
||||
|
||||
隠しパラダイムロストを収集する場合、N10難易度を推奨し、以下のチームの使用を推奨します:
|
||||
|
||||
- ウィシャデル + スポット + スチュワード
|
||||
- 焔影リード + オーキッド + ポプカル
|
||||
- ティフォン + スポット + スチュワード
|
||||
|
||||
### 界園テーマ--通宝
|
||||
|
||||
`resource/roguelike/JieGarden/coppers.json` は界園テーマの通宝の設定と交換戦略を記述しています
|
||||
|
||||
```json5
|
||||
{
|
||||
"theme": "JieGarden", // テーマ名(ここは界園)
|
||||
"addons": { // 通宝の追加属性説明(備考のみ、プログラム実行に影響なし)
|
||||
"锈色": "投出时,每经过一个节点,获得源石锭+1",
|
||||
"存护": "加入钱盒时,获得护盾值+2",
|
||||
"入幻": "加入钱盒时,获得希望+1",
|
||||
"引光": "加入钱盒时,获得烛火+1",
|
||||
"巡游": "投出时,每完成一场战斗,获得票券+1"
|
||||
},
|
||||
"coppers": [ // 通宝リスト
|
||||
{
|
||||
"name": "大炎通宝", // 通宝名
|
||||
"desc": "普通又空白,什么也没有", // 通宝効果説明(備考のみ、プログラム実行に影響なし)
|
||||
"rarity": "NORMAL", // レアリティ:NONE/NORMAL/RARE/SUPER_RARE(備考のみ、プログラム実行に影響なし)
|
||||
"pickup_priority": 0, // 拾取優先度、ドロップ選択時に使用、数値が大きいほど優先的に拾取
|
||||
"discard_priority": 1000 // 廃棄優先度、交換時に使用、数値が大きいほど優先的に廃棄
|
||||
},
|
||||
{
|
||||
"name": "衡-奇土生金",
|
||||
"desc": "投出时,立即获得源石锭+4(下次投钱前变化为-大炎通宝)",
|
||||
"rarity": "NORMAL",
|
||||
"pickup_priority": 200,
|
||||
"discard_priority": 800,
|
||||
"cast_discard_priority": 999 // オプションフィールド、投出時の廃棄優先度、投出済みかつ値>=0の場合のみdiscard_priorityを置換
|
||||
// 通常、投出後に効果が変化する通宝に適用(大炎通宝に変化する通宝など)
|
||||
},
|
||||
{
|
||||
"name": "厉-西廉贞",
|
||||
"desc": "投出时,精英及领袖敌人的生命值、攻击力+10%,在险路恶敌及岁兽残识中攻击力、生命值额外+20%",
|
||||
"rarity": "NORMAL",
|
||||
"pickup_priority": 0,
|
||||
"discard_priority": 1998,
|
||||
"cast_discard_priority": 2098 // 同上、投出後にマイナス効果をもたらす通宝にも使用されることがあります
|
||||
},
|
||||
...
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
#### 通宝交換ロジック
|
||||
|
||||
MAAは界園テーマで通宝の拾取と交換を自動処理します:
|
||||
|
||||
::: tip 有効条件
|
||||
通宝交換機能は以下のモードでのみ有効:
|
||||
|
||||
- 投資モード:「投資モードで購買、募集、2層進出を有効化」オプションを有効にする必要があります
|
||||
- その他のモード:デフォルトで有効
|
||||
|
||||
:::
|
||||
|
||||
1. **ドロップ通宝の拾取**:戦闘終了後、通宝ドロップ選択画面が表示された場合、MAAは `pickup_priority` に基づいて最も優先度の高い通宝を選択
|
||||
|
||||
2. **銭匣通宝の交換**:新しく拾った通宝を銭匣内の通宝と交換する必要がある場合:
|
||||
- 銭匣内のすべての通宝の種類、名前、投出済み状態を認識
|
||||
- 銭匣内で `discard_priority` が最も高い(最も重要度が低い)通宝を見つける
|
||||
- 新しい通宝の `discard_priority` が既存の最も重要度が低い通宝より低い場合、交換を放棄
|
||||
- それ以外の場合、最も重要度が低い通宝を新しい通宝に置換
|
||||
|
||||
3. **投出済み通宝の特殊処理**:
|
||||
- `cast_discard_priority` が指定された通宝の場合、投出済み状態では `discard_priority` ではなくこの優先度を使用
|
||||
- 通常、投出後に効果が変化する通宝に適用(大炎通宝に変化する通宝など)
|
||||
|
||||
#### 通宝認識メカニズム
|
||||
|
||||
MAAは以下の方法で通宝を認識・処理します:
|
||||
|
||||
1. テンプレートマッチングで通宝の種類アイコン(厲/衡/花)を認識
|
||||
2. 種類アイコンの位置に基づき、ROIオフセットを使用してOCRで通宝名を認識
|
||||
3. 通宝が「投出済み」状態かどうかを認識
|
||||
4. 通宝交換画面でリストを自動スクロールし、すべての通宝をスキャンして比較
|
||||
|
||||
#### 認識フロー図解
|
||||
|
||||

|
||||

|
||||
|
||||
::: info 注意
|
||||
|
||||
- OCR認識した通宝名が設定ファイルに見つからない場合、MAAはデバッグ画像を`debug/roguelike/coppers/unknown`ディレクトリに保存し、トラブルシューティングに使用します
|
||||
|
||||
:::
|
||||
|
||||
## 実現したいロジック(todo)
|
||||
|
||||
### 自動編成ロジック
|
||||
|
||||
@@ -338,14 +338,14 @@ default:
|
||||
|
||||
## 式の計算
|
||||
|
||||
| 記号 | 意味 | 例 |
|
||||
| :---------: | :-----------------------------------------------------------------------------------------: | :------------------------------------: |
|
||||
| `@` | テンプレートタスク | `Fight@ReturnTo` |
|
||||
| `#`(単項) | 仮想タスク | `#self` |
|
||||
| `#`(二項) | 仮想タスク | `StartUpThemes#next` |
|
||||
| `*` | タスクの繰り返し | `(ClickCornerAfterPRTS+ClickCorner)*5` |
|
||||
| `+` | タスクリストの結合(next の一連のプロパティで同じ名前を持つ最初のタスクのみが保持されます) | `A+B` |
|
||||
| `^` | タスクリストの差分(前者にあり、後者にないもので、順序は変わらない) | `(A+A+B+C)^(A+B+D)` (= `C`) |
|
||||
| 記号 | 意味 | 例 |
|
||||
| :---------: | :-----------------------------------------------------------------------------------------: | :-------------------------------------: |
|
||||
| `@` | テンプレートタスク | `Fight@ReturnTo` |
|
||||
| `#`(単項) | 仮想タスク | `#self` |
|
||||
| `#`(二項) | 仮想タスク | `StartUpThemes#next` |
|
||||
| `*` | タスクの繰り返し | `(ClickCornerAfterPRTS+ClickCorner)*10` |
|
||||
| `+` | タスクリストの結合(next の一連のプロパティで同じ名前を持つ最初のタスクのみが保持されます) | `A+B` |
|
||||
| `^` | タスクリストの差分(前者にあり、後者にないもので、順序は変わらない) | `(A+A+B+C)^(A+B+D)` (= `C`) |
|
||||
|
||||
演算子 `@`、`#`、`*`、`+`、`^` には優先順位があります: `#`(単項)> `@` = `#`(二項)> `*` > `+` = `^`。
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ icon: devicon-plain:githubactions
|
||||
|
||||
# CI 시스템 해석
|
||||
|
||||
MAA는 Github Action을 활용하여 웹사이트 구축, 자동 리소스 업데이트, 최종 파일 빌드 및 릴리즈 등 대량의 자동화 작업을 완성했습니다. 시간이 지나면서 이러한 CI들은 점차 중첩되기 시작했고, 일부는 다른 저장소로 연결되기도 했습니다. 본 문서는 MAA의 CI 시스템을 개선하고자 하는 분들에게 간단한 소개를 제공하는 것을 목표로 합니다.
|
||||
MAA는 GitHub Action을 활용하여 웹사이트 구축, 자동 리소스 업데이트, 최종 파일 빌드 및 릴리즈 등 대량의 자동화 작업을 완성했습니다. 시간이 지나면서 이러한 CI들은 점차 중첩되기 시작했고, 일부는 다른 저장소로 연결되기도 했습니다. 본 문서는 MAA의 CI 시스템을 개선하고자 하는 분들에게 간단한 소개를 제공하는 것을 목표로 합니다.
|
||||
|
||||
본 문서를 읽기 전에 MAA의 프로젝트 구조와 구성에 대한 기본적인 개념을 갖고 있는 것이 좋습니다.
|
||||
|
||||
@@ -42,7 +42,7 @@ MAA는 Github Action을 활용하여 웹사이트 구축, 자동 리소스 업
|
||||
|
||||
이 워크플로우는 코드의 전체 빌드 작업을 담당하며, MAA의 모든 구성 요소를 포함합니다. 빌드 결과물은 실행 가능한 MAA입니다.
|
||||
|
||||
필수적인 MaaCore 외에, Windows 빌드 결과물에는 MaaWpfGui가, MacOS 빌드 결과물에는 MaaMacGui가, Linux 빌드 결과물에는 MaaCLI가 포함됩니다.
|
||||
필수적인 MaaCore 외에, Windows 빌드 결과물에는 MaaWpfGui가, macOS 빌드 결과물에는 MaaMacGui가, Linux 빌드 결과물에는 MaaCLI가 포함됩니다.
|
||||
|
||||
이 워크플로우는 새로운 Commit이나 PR이 발생할 때마다 자동으로 실행되며, 릴리즈 PR에 의해 트리거될 때는 이번 빌드 결과물이 직접 릴리즈에 사용되고 Release가 생성됩니다.
|
||||
|
||||
|
||||
@@ -63,19 +63,24 @@ icon: iconoir:developer
|
||||
```
|
||||
|
||||
5. 개발 환경 구성
|
||||
- `CMake` 다운로드 및 설치
|
||||
- Visual Studio 2026 Community 설치 시 `C++ 데스크톱 개발` 및 `.NET 데스크톱 개발` 필수 선택
|
||||
|
||||
6. cmake 프로젝트 구성 실행
|
||||
|
||||
```cmd
|
||||
mkdir -p build
|
||||
cmake -G "Visual Studio 18 2026" -B build -DBUILD_WPF_GUI=ON -DBUILD_DEBUG_DEMO=ON
|
||||
cmake --preset windows-x64
|
||||
```
|
||||
|
||||
7. `build/MAA.sln` 파일을 더블 클릭하여 엽니다. Visual Studio가 자동으로 전체 프로젝트를 로드합니다.
|
||||
7. `build/MAA.slnx` 파일을 더블 클릭하여 엽니다. Visual Studio가 자동으로 전체 프로젝트를 로드합니다.
|
||||
8. VS 설정
|
||||
- 상단 구성에서 RelWithDebInfo x64 선택 (릴리스 빌드/ARM 플랫폼 시 생략)
|
||||
- MaaWpfGui 우클릭 → 속성 → 디버그 → 네이티브 디버깅 활성화 (C++ 코어 중단점 사용 가능)
|
||||
- 상단 구성에서 `Debug` `x64` 선택
|
||||
- `MaaWpfGui` 우클릭 → 시작 프로젝트로 설정
|
||||
- F5 키를 눌러 실행
|
||||
|
||||
::: tip
|
||||
Win32Controller(Windows 창 제어) 관련 기능을 디버깅하려면 [MaaFramework Releases](https://github.com/MaaXYZ/MaaFramework/releases)에서 해당 플랫폼 압축 파일을 다운로드하고, `bin` 디렉토리의 `MaaWin32ControlUnit.dll`을 MAA DLL과 같은 디렉토리(예: `build/bin/Debug`)에 배치해야 합니다. 자동 다운로드 스크립트 PR 환영!
|
||||
:::
|
||||
|
||||
9. 이제 자유롭게 ~~개조~~ 개발 시작!
|
||||
10. 주기적 커밋 (메시지 필수 작성)
|
||||
@@ -120,12 +125,46 @@ icon: iconoir:developer
|
||||
git merge
|
||||
```
|
||||
|
||||
4. 단계 7, 8, 9, 10 반복 수행
|
||||
4. 단계 8, 9, 10, 11 반복 수행
|
||||
|
||||
::: tip
|
||||
Visual Studio 실행 시 Git 작업은 "Git 변경" 탭에서 명령어 없이 처리 가능
|
||||
:::
|
||||
|
||||
## VSCode로 개발하기 (선택 사항)
|
||||
|
||||
::: warning
|
||||
**Visual Studio를 사용한 개발을 권장합니다.** MAA 프로젝트는 주로 Visual Studio를 기반으로 구축되며, 위의 완전한 환경 설정 과정이 모든 개발 요구를 충족하여 최상의 즉시 사용 가능한 경험을 제공합니다. VS Code 워크플로는 VS Code + CMake + clangd에 이미 익숙한 개발자를 위한 대안으로만 제공되며, 설정 난이도가 상대적으로 높습니다.
|
||||
:::
|
||||
|
||||
VSCode를 선호한다면 CMake, clangd 등의 확장을 사용해 코드 완성, 탐색, 디버깅을 할 수 있습니다. 위 1–6단계(클론, 의존성, CMake 설정)를 완료한 후 다음 단계로 설정하세요.
|
||||
|
||||
### 추천 확장
|
||||
|
||||
VS Code Marketplace에서 설치:
|
||||
|
||||
| 확장 | 용도 |
|
||||
| --------------------------------------------------------------------------------------------------- | --------------------------------------------------------- |
|
||||
| [CMake Tools](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools) | CMake 설정, 빌드, 디버깅 통합 |
|
||||
| [clangd](https://marketplace.visualstudio.com/items?itemName=llvm-vs-code-extensions.vscode-clangd) | C++ IntelliSense, 코드 탐색, 진단 (LSP 기반) |
|
||||
| [C/C++](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools) | C++ 프로그램 디버깅 (CMake Tools 또는 launch.json과 연동) |
|
||||
|
||||
::: tip
|
||||
clangd 사용 시 C/C++ 확장의 IntelliSense를 비활성화(`C_Cpp.intelliSenseEngine`을 `disabled`로 설정)하는 것을 권장합니다. 충돌을 피하기 위함입니다.
|
||||
:::
|
||||
|
||||
### 설정 단계
|
||||
|
||||
1. VSCode에서 프로젝트 루트 열기
|
||||
2. **CMake Tools**: 상태 표시줄에서 Configure Preset(예: `windows-x64`, `linux-x64`) 선택 후 Build Preset으로 빌드 실행
|
||||
3. **clangd**: Windows에서 MSVC 사용 시 `compile_commands.json` 없이도 clangd로 개발 가능. Linux/macOS에서는 프리셋에서 `CMAKE_EXPORT_COMPILE_COMMANDS`가 활성화되어 clangd가 `build/compile_commands.json`을 자동 사용
|
||||
4. **디버깅**: 프로젝트에 `.vscode/launch.json`이 포함되어 MaaWpfGui 또는 Debug Demo를 바로 실행 가능
|
||||
|
||||
### 빌드 및 디버깅 단축키
|
||||
|
||||
- **빌드**: `Ctrl+Shift+B` 또는 CMake Tools 상태 표시줄
|
||||
- **디버깅**: F5 또는 Run and Debug 패널에서 구성 선택
|
||||
|
||||
## MAA 파일의 포매팅 요구 사항
|
||||
|
||||
MAA는 리포지토리의 코드 및 리소스 파일들을 아름답고 일관적으로 유지하기 위해 일련의 포매팅 도구를 사용합니다.
|
||||
@@ -137,7 +176,7 @@ MAA는 리포지토리의 코드 및 리소스 파일들을 아름답고 일관
|
||||
| 파일 유형 | 포매팅 도구 |
|
||||
| --------- | --------------------------------------------------------------- |
|
||||
| C++ | [clang-format](https://clang.llvm.org/docs/ClangFormat.html) |
|
||||
| Json/Yaml | [Prettier](https://prettier.io/) |
|
||||
| JSON/YAML | [Prettier](https://prettier.io/) |
|
||||
| Markdown | [markdownlint](https://github.com/DavidAnson/markdownlint-cli2) |
|
||||
|
||||
### Pre-commit Hooks를 사용하여 자동 포매팅을 활성화
|
||||
|
||||
@@ -29,7 +29,7 @@ icon: jam:write-f
|
||||
:::
|
||||
```
|
||||
|
||||
또는 Github 스타일 구문 사용:
|
||||
또는 GitHub 스타일 구문 사용:
|
||||
|
||||
```markdown
|
||||
> [!컨테이너 타입]
|
||||
|
||||
@@ -162,4 +162,4 @@ ROI 범위를 수정하는 방법:
|
||||
|
||||
## 변경사항 제출
|
||||
|
||||
[Github Pull Request 가이드](./pr-tutorial.md)를 참고하세요!
|
||||
[GitHub Pull Request 가이드](./pr-tutorial.md)를 참고하세요!
|
||||
|
||||
@@ -9,7 +9,7 @@ icon: mingcute:git-pull-request-fill
|
||||
|
||||
::: warning
|
||||
이 가이드는 많은 개념을 단순화하여 더 많은 사람들이 실제로 사용할 수 있도록 설계되었습니다. 때로는 꽤 불안불안한 ~~하지만 간단한~~ 조치들과 약간 부정확한 설명이 있을 수 있으므로 전문가 분들의 이해를 부탁드립니다.
|
||||
만약 Git 사용 경험이 있고 프로그래밍 기초 지식을 가지고 계시다면 ~~그럼 당신은 왜 보고 있나요🔨~~, 약간 더 발전된 가이드인 [Github Pull Request 진행과정](./development.md#완전한-환경-설정-windows)을 확인해주세요.
|
||||
만약 Git 사용 경험이 있고 프로그래밍 기초 지식을 가지고 계시다면 ~~그럼 당신은 왜 보고 있나요🔨~~, 약간 더 발전된 가이드인 [GitHub Pull Request 진행과정](./development.md#완전한-환경-설정-windows)을 확인해주세요.
|
||||
:::
|
||||
|
||||
## 기본 개념 및 용어 설명
|
||||
|
||||
@@ -3,7 +3,7 @@ order: 8
|
||||
icon: iconoir:code-brackets
|
||||
---
|
||||
|
||||
# 전용 VSCode 확장 프로그램 가이드
|
||||
# 전용 VS Code 확장 프로그램 가이드
|
||||
|
||||
이 확장 프로그램은 MaaAssistantArknights/MaaFramework에 대해 다음과 같은 기능들을 포함한 편리한 개발 기능들을 제공합니다:
|
||||
|
||||
@@ -14,7 +14,7 @@ icon: iconoir:code-brackets
|
||||
|
||||
## 설치
|
||||
|
||||
VSCode 확장 프로그램 목록에서 `Maa`를 검색하여 직접 설치하는 것을 권장합니다.
|
||||
VS Code 확장 프로그램 목록에서 `Maa`를 검색하여 직접 설치하는 것을 권장합니다.
|
||||
|
||||
::: tip
|
||||
처음 사용할 때 확장 프로그램은 사전 설정된 버전의 리소스를 자동으로 다운로드합니다.
|
||||
@@ -90,7 +90,7 @@ VSCode 확장 프로그램 목록에서 `Maa`를 검색하여 직접 설치하
|
||||
|
||||
### 스크린샷 캡처 및 자르기 / 빠른 인식
|
||||
|
||||
VSCode 명령 팔레트에서 `Maa: 스크린샷 도구 열기(Maa: open crop tool)`를 검색하고 실행하여 `스크린샷 / 자르기(Screenshots / Crop)` 패널을 열 수 있습니다.
|
||||
VS Code 명령 팔레트에서 `Maa: 스크린샷 도구 열기(Maa: open crop tool)`를 검색하고 실행하여 `스크린샷 / 자르기(Screenshots / Crop)` 패널을 열 수 있습니다.
|
||||
|
||||
> `Ctrl+Shift+P` (MacOS의 경우 `Command+Shift+P`)를 사용하여 명령 팔레트를 엽니다.
|
||||
|
||||
@@ -114,11 +114,11 @@ MAA의 경우, 확장 프로그램에서 사용되는 모델을 자동으로 관
|
||||
|
||||
#### MaaFramework 로그
|
||||
|
||||
VSCode 명령 팔레트에서 `Maa: maa 로그 열기(Maa: open maa log)`를 검색하고 실행하여 디버깅 중에 생성된 `maa.log` 로그를 볼 수 있습니다.
|
||||
VS Code 명령 팔레트에서 `Maa: maa 로그 열기(Maa: open maa log)`를 검색하고 실행하여 디버깅 중에 생성된 `maa.log` 로그를 볼 수 있습니다.
|
||||
|
||||
#### Maa Pipeline Support 확장 로그
|
||||
|
||||
VSCode 명령 팔레트에서 `Maa: 확장 로그 열기(Maa: open extension log)`를 검색하고 실행하여 디버깅 중에 생성된 `mse.log` 로그를 볼 수 있습니다.
|
||||
VS Code 명령 팔레트에서 `Maa: 확장 로그 열기(Maa: open extension log)`를 검색하고 실행하여 디버깅 중에 생성된 `mse.log` 로그를 볼 수 있습니다.
|
||||
|
||||
### 하단 상태 표시줄
|
||||
|
||||
|
||||
@@ -335,7 +335,7 @@ address = "127.0.0.1:7777" # 필요 시 사전 설정된 주소를 재정의할
|
||||
|
||||
#### 특수 프리셋
|
||||
|
||||
현재 `PlayCover (MacOS)`, `Waydroid (Linux)` 두 가지 특수 프리셋이 사전 구성되어 있습니다.
|
||||
현재 `PlayCover (macOS)`, `Waydroid (Linux)` 두 가지 특수 프리셋이 사전 구성되어 있습니다.
|
||||
|
||||
- `PlayCover`는 macOS에서 `PlayCover`를 통해 네이티브로 실행되는 게임 클라이언트에 연결하는 데 사용됩니다. 이 경우 `adb_path`를 지정할 필요가 없으며, `address`는 `adb` 연결 주소가 아닌 `PlayTools`의 주소입니다. 자세한 내용은 [PlayCover 지원 문서][playcover-doc]를 참고하세요.
|
||||
|
||||
|
||||
@@ -99,7 +99,7 @@ nix run github:Cryolitia/nur-packages#maa-cli-nightly
|
||||
|
||||
:::
|
||||
|
||||
안정 버전은 [nixpkgs](https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/by-name/ma/maa-cli/package.nix)에 패키징되어 있으며, `nixpkgs`의 Rust 툴체인을 사용합니다. 나이틀리 빌드는 [NUR](https://github.com/Cryolitia/nur-packages/blob/master/pkgs/maa-assistant-arknights/maa-cli.nix)에 있으며, 베타 채널의 Rust 툴체인을 사용하며 Github Action에 의해 매일 자동으로 업데이트되고 빌드가 검증됩니다.
|
||||
안정 버전은 [nixpkgs](https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/by-name/ma/maa-cli/package.nix)에 패키징되어 있으며, `nixpkgs`의 Rust 툴체인을 사용합니다. 나이틀리 빌드는 [NUR](https://github.com/Cryolitia/nur-packages/blob/master/pkgs/maa-assistant-arknights/maa-cli.nix)에 있으며, 베타 채널의 Rust 툴체인을 사용하며 GitHub Action에 의해 매일 자동으로 업데이트되고 빌드가 검증됩니다.
|
||||
|
||||
#### Homebrew
|
||||
|
||||
|
||||
@@ -7,6 +7,12 @@ icon: material-symbols:summarize
|
||||
|
||||
maa-cli의 주요 기능은 MaaCore를 호출하여 명일방주의 게임 작업을 자동화하는 것입니다. 또한 사용의 편의성을 위해 MaaCore 관리 기능도 제공합니다.
|
||||
|
||||
::: tip
|
||||
|
||||
Windows 패키지 관리자 (winget) 를 통해 maa-cli를 설치한 사용자는 다음 명령에서 `maa` 를 `maa-cli` 로 대체해야 합니다.
|
||||
|
||||
:::
|
||||
|
||||
## MaaCore 관리
|
||||
|
||||
maa-cli는 MaaCore 및 리소스를 설치하고 업데이트할 수 있습니다. 다음 명령어를 실행하세요:
|
||||
|
||||
@@ -61,7 +61,7 @@ Mac 버전 개발에 인력이 부족하여 업데이트 속도가 비교적 느
|
||||
|
||||
완벽하게 지원됩니다.
|
||||
|
||||
추가로, macOS에서 녹스 에뮬레이터의 adb 이진 파일의 위치는 `/Applications/NoxAppPlayer.app/Contents/MacOS/adb`이며 부모 디렉토리 `MacOS`에서 `adb devices` 명령을 사용하여 adb 포트를 확인할 수 있습니다.
|
||||
추가로, macOS에서 녹스 에뮬레이터의 adb 이진 파일의 위치는 `/Applications/NoxAppPlayer.app/Contents/macOS/adb`이며 부모 디렉토리 `macOS`에서 `adb devices` 명령을 사용하여 adb 포트를 확인할 수 있습니다.
|
||||
|
||||
### ✅ [AVD](https://developer.android.com/studio/run/managing-avds)
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ winget install "Microsoft.VCRedist.2015+.x64" --override "/repair /passive /nore
|
||||
|
||||
아래<u>**두 개**</u>의 실행 라이브러리를 수동으로 다운로드하여 설치하여 문제를 해결하세요.
|
||||
|
||||
- [Visual C++ 재배포 가능 패키지](https://aka.ms/vs/17/release/vc_redist.x64.exe)
|
||||
- [Visual C++ 재배포 가능 패키지](https://aka.ms/vc14/vc_redist.x64.exe)
|
||||
- [.NET 데스크톱 런타임 10](https://aka.ms/dotnet/10.0/windowsdesktop-runtime-win-x64.exe)
|
||||
|
||||
:::
|
||||
@@ -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도 더 이상 지원하지 않습니다.
|
||||
|
||||
## 연결 오류
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ icon: hugeicons:brain-02
|
||||
- 용문 시내:LungmenDowntown@Annihilation
|
||||
|
||||
- 상시 개방 이벤트의 경우 `OF-1`/`OF-F3`/`GT-5`와 같이 입력합니다.
|
||||
- 현재 개방된 사이드 스토리 이벤트의 세 개의 스테이지입니다. [API](https://api.maa.plus/MaaAssistantArknights/api/gui/StageActivity.json)에서 업데이트를 자동으로 다운로드 한 후 화면 하단에 표시됩니다.
|
||||
- 현재 개방된 사이드 스토리 이벤트의 세 개의 스테이지입니다. [API](https://api.maa.plus/MaaAssistantArknights/api/gui/StageActivityV2.json)에서 업데이트를 자동으로 다운로드 한 후 화면 하단에 표시됩니다.
|
||||
- 재개방된 사이드 스토리 이벤트. `SSReopen-<스테이지 접두사>`를 입력하면 XX-1~XX-9 스테이지를 한 번에 완료할 수 있습니다. 예: `SSReopen-IC`.
|
||||
|
||||
::: details 예시 화면
|
||||
@@ -70,23 +70,11 @@ icon: hugeicons:brain-02
|
||||
대체 스테이지는 해당 일자의 개방 여부에 따라 실제 전투에 사용될 스테이지를 결정합니다. 즉, 열려 있는 스테이지 중 첫 번째 것을 선택하여 전투를 수행합니다.
|
||||
이 기능은 일정표와 유사하며, 선택한 스테이지가 실패했을 경우를 대비한 백업 스테이지로 작동하지 않습니다.
|
||||
|
||||
1. 예: 기본 스테이지를 `용문폐-6/5`로 설정하고, 대체 스테이지로 `1-7` 및 `경험치-6/5`를 설정한 경우:
|
||||
- 당일 `용문폐-6/5`가 개방되어 있다면 해당 스테이지로 진입하며, `1-7` 및 `경험치-6/5`는 실행되지 않습니다. 이때 플레이어가 `용문폐-6/5` 대리를 해제한 경우 작업은 실패합니다.
|
||||
- 당일 `용문폐-6/5`가 개방되어 있지 않다면 `1-7`으로 진입하며, `경험치-6/5`는 실행되지 않습니다. 이때 `1-7` 대리를 해제한 경우에도 작업은 실패합니다.
|
||||
- `1-7`은 상시 개방된 스테이지이므로, 그 앞에 위치한 `경험치-6/5`는 절대 선택되지 않습니다.
|
||||
예: 대체 단계가 `용문폐-6/5`, `1-7` 및 `경험치-6/5` 로 설정되어 있는 경우:
|
||||
|
||||
2. 기본 스테이지가 `섬멸 모드`인 경우:
|
||||
- 섬멸 작전 결과는 이후 대체 스테이지 선택 로직에 영향을 주지 않으며, 섬멸이 실패하더라도 이성 소모 작업은 오류 없이 이어집니다.
|
||||
- 이후 대체 스테이지는 `이성약 사용` 및 `대리 배수` 설정만 상속하며, `원석 사용`, `지정 횟수`, `지정 재료` 등의 설정은 상속되지 않습니다.
|
||||
|
||||
### 남은 이성
|
||||
|
||||
`이성 사용`이 종료된 후에 시작되며, 이성 회복제 사용, 순오리지늄 사용, 횟수 제한, 드롭 제한, 연속 전투 횟수 등의 제어를 받지 않고, 이성을 모두 소비하면 종료됩니다.
|
||||
|
||||
- 스테이지 개시 시 이성이 부족한 경우, 남은 이성 스테이지로 이동하여 "나머지" 이성을 소모합니다. (예: 1-7)
|
||||
- 이성이 부족하여 연속 전투 횟수가 너무 높게 설정된 경우에도 자동으로 단일 전투 횟수로 선택되어 이성을 모두 소비합니다(예: 1-7을 6회 연속 전투 설정하지만, 이성이 30밖에 되지 않는 경우, 자동으로 연속 전투 없는 1-7로 전환됩니다).
|
||||
- 여전히 이성이 부족하면 작업을 중지합니다.(예: 6 이하의 이성)
|
||||
- 남은 이성 선택 스테이지가 개방되지 않은 스테이지인 경우, 이성 사용에 실패합니다.
|
||||
- 당일 `용문폐-6/5`가 개방되어 있다면 해당 스테이지로 진입하며, `1-7` 및 `경험치-6/5`는 실행되지 않습니다. 이때 플레이어가 `용문폐-6/5` 대리를 해제한 경우 작업은 실패합니다.
|
||||
- 당일 `용문폐-6/5`가 개방되어 있지 않다면 `1-7`으로 진입하며, `경험치-6/5`는 실행되지 않습니다. 이때 `1-7` 대리를 해제한 경우에도 작업은 실패합니다.
|
||||
- `1-7`은 상시 개방된 스테이지이므로, 그 앞에 위치한 `경험치-6/5`는 절대 선택되지 않습니다.
|
||||
|
||||
### 연속 전투 횟수
|
||||
|
||||
@@ -94,15 +82,14 @@ MAA는 사용자가 설정한 연속 전투 횟수에 따라 전투를 진행합
|
||||
|
||||
- **AUTO** (0):
|
||||
- 레벨 내 최대 연속 전투 횟수를 자동으로 파악하고, 최대 연속 전투 횟수를 유지하며, 이성을 초과하지 않습니다.
|
||||
- 완료 후 `남은 이성` 프로세스 시작(설정된 경우)
|
||||
|
||||
- **숫자 모드** (1~6):
|
||||
- 설정된 횟수에 따라 연속 전투를 진행합니다.
|
||||
- 현재 이성이 설정된 횟수를 완료하기에 충분하지 않은 경우(예: 5회만 가능하지만 6회로 설정된 경우), 작업을 바로 종료하고 `남은 이성` 프로세스(설정된 경우)를 시작합니다.
|
||||
- 현재 이성이 설정된 횟수를 완료하기에 충분하지 않은 경우(예: 5회만 가능하지만 6회로 설정된 경우), 작업을 바로 종료합니다.
|
||||
|
||||
- **비활성 모드** (-1):
|
||||
- 게임 내 연속 전투 횟수를 조정하지 않습니다.
|
||||
- 이성이 현재 설정된 횟수를 완료하기에 충분하지 않은 경우 작업을 바로 종료하고 `남은 이성` 프로세스(설정된 경우)를 시작합니다.
|
||||
- 이성이 현재 설정된 횟수를 완료하기에 충분하지 않은 경우 작업을 바로 종료합니다.
|
||||
|
||||
### 지정된 횟수
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ DirectML을 사용하여 GPU를 호출하여 인식 추론을 가속화합니다
|
||||
|
||||
MAA는 시작 매개변수를 통해 구성을 자동으로 전환할 수 있습니다. MAA 프로세스 이름 뒤에 `--config <구성 이름>`을 추가하면 됩니다. 예: `./MAA/MAA.exe --config Official`
|
||||
|
||||
일부 기호는 이스케이프해야 합니다. `Json` 참조하세요. 예를 들어 구성 이름이 `"Official"`인 경우 매개변수는 --config `\"Official\"`가 되어야 합니다
|
||||
일부 기호는 이스케이프해야 합니다. `JSON` 참조하세요. 예를 들어 구성 이름이 `"Official"`인 경우 매개변수는 --config `\"Official\"`가 되어야 합니다
|
||||
|
||||
## 시작 전/후 스크립트
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ JSON 파일은 주석을 지원하지 않으므로, 텍스트 내의 주석은
|
||||
// 특정 오퍼레이터 지정
|
||||
{
|
||||
"name": "重岳", // 오퍼레이터명
|
||||
"skill": 3, // 스킬 번호. 선택 사항, 기본값 1, 범위 [1, 3]
|
||||
"skill": 3, // 스킬 번호. 선택 사항, 기본값 1, 범위 [0, 3]
|
||||
"skill_usage": 2, // 스킬 사용법. 선택 사항, 기본값 0
|
||||
// 0 - 자동 사용 안 함 ("actions" 필드에 의존)
|
||||
// 1 - 쿨타임 찰 때마다 사용 (예: 쏜즈 3스킬, 머틀 1스킬 등)
|
||||
|
||||
@@ -81,10 +81,14 @@ JSON 파일은 주석을 지원하지 않습니다. 본문의 주석은 설명
|
||||
// (예: 이 그룹의 오퍼레이터를 배치해야 할 때, 쏜즈가 있는지 먼저 확인하고 있으면 배치, 없으면 혼을 확인)
|
||||
{
|
||||
"name": "棘刺", // 오퍼레이터 이름
|
||||
"skill": 3,
|
||||
"skill_usage": 1,
|
||||
...
|
||||
},
|
||||
{
|
||||
"name": "号角",
|
||||
"skill": 2,
|
||||
"skill_usage": 1,
|
||||
...
|
||||
}
|
||||
]
|
||||
|
||||
@@ -67,6 +67,20 @@ Bilibili 서버: `张三`인 경우 `张三`, `张`, `三` 입력 가능
|
||||
:::
|
||||
::::
|
||||
|
||||
<details>
|
||||
<summary>Example</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"enable": true,
|
||||
"client_type": "Official",
|
||||
"start_game_enabled": true,
|
||||
"account_name": "123****4567"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
- `CloseDown`
|
||||
게임 종료
|
||||
|
||||
@@ -81,6 +95,18 @@ Bilibili 서버: `张三`인 경우 `张三`, `张`, `三` 입력 가능
|
||||
:::
|
||||
::::
|
||||
|
||||
<details>
|
||||
<summary>Example</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"enable": true,
|
||||
"client_type": "Official"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
- `Fight`
|
||||
이성 사용 작전
|
||||
|
||||
@@ -148,7 +174,35 @@ Bilibili 서버: `张三`인 경우 `张三`, `张`, `三` 입력 가능
|
||||
<br>
|
||||
오리지늄 사용 확인 창에서 대기하다가, 현재 1이성이 회복되면 즉시 오리지늄을 사용
|
||||
:::
|
||||
::::
|
||||
::::
|
||||
|
||||
<details>
|
||||
<summary>Example</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"enable": true,
|
||||
"stage": "1-7",
|
||||
"medicine": 1,
|
||||
"expiring_medicine": 0,
|
||||
"stone": 0,
|
||||
"times": 10,
|
||||
"series": 0,
|
||||
"drops": {
|
||||
"30011": 10
|
||||
},
|
||||
"report_to_penguin": true,
|
||||
"penguin_id": "123456",
|
||||
"report_to_yituliu": true,
|
||||
"yituliu_id": "123456",
|
||||
"server": "CN",
|
||||
"client_type": "Official",
|
||||
"DrGrandet": false
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
일부 소수 자원 스테이지명도 지원합니다. [통합 예시](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/master/tools/AutoLocalization/example/zh-cn.xaml#L260)를 참고하세요
|
||||
|
||||
- `Recruit`
|
||||
@@ -220,6 +274,36 @@ Yituliu 전송 ID, 기본값 비어 있음. `report_to_yituliu`가 true일 때
|
||||
:::
|
||||
::::
|
||||
|
||||
<details>
|
||||
<summary>Example</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"enable": true,
|
||||
"refresh": true,
|
||||
"select": [5, 4],
|
||||
"confirm": [4, 3],
|
||||
"first_tags": ["高级资深干员"],
|
||||
"extra_tags_mode": 1,
|
||||
"times": 4,
|
||||
"set_time": true,
|
||||
"expedite": false,
|
||||
"expedite_times": 0,
|
||||
"skip_robot": true,
|
||||
"recruitment_time": {
|
||||
"3": 540,
|
||||
"4": 540
|
||||
},
|
||||
"report_to_penguin": false,
|
||||
"penguin_id": "123456",
|
||||
"report_to_yituliu": false,
|
||||
"yituliu_id": "123456",
|
||||
"server": "CN"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
- `Infrast`
|
||||
기반시설 교대
|
||||
|
||||
@@ -283,6 +367,29 @@ Yituliu 전송 ID, 기본값 비어 있음. `report_to_yituliu`가 true일 때
|
||||
:::
|
||||
::::
|
||||
|
||||
<details>
|
||||
<summary>Example</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"enable": true,
|
||||
"mode": 0,
|
||||
"facility": ["Mfg", "Trade", "Reception"],
|
||||
"drones": "PureGold",
|
||||
"threshold": 0.3,
|
||||
"replenish": true,
|
||||
"dorm_notstationed_enabled": false,
|
||||
"dorm_trust_enabled": true,
|
||||
"reception_message_board": true,
|
||||
"reception_clue_exchange": true,
|
||||
"reception_send_clue": true,
|
||||
"filename": "schedules/base.json",
|
||||
"plan_index": 1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
- `Mall`
|
||||
크레딧 수령 및 상점 구매
|
||||
먼저 `buy_first` 목록 순서대로 구매하고, 그 다음 `blacklist`를 제외하고 왼쪽에서 오른쪽으로 구매하며, 크레딧이 넘칠 경우 블랙리스트를 무시하고 넘치지 않을 때까지 구매
|
||||
@@ -322,6 +429,26 @@ OF-1 플레이 시 사용할 편성 슬롯 번호
|
||||
:::
|
||||
::::
|
||||
|
||||
<details>
|
||||
<summary>Example</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"enable": true,
|
||||
"visit_friends": true,
|
||||
"shopping": true,
|
||||
"buy_first": ["招聘许可", "龙门币"],
|
||||
"blacklist": ["家具零件"],
|
||||
"force_shopping_if_credit_full": false,
|
||||
"only_buy_discount": true,
|
||||
"reserve_max_credit": false,
|
||||
"credit_fight": false,
|
||||
"formation_index": 0
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
- `Award`
|
||||
각종 보상 수령
|
||||
|
||||
@@ -349,6 +476,23 @@ OF-1 플레이 시 사용할 편성 슬롯 번호
|
||||
:::
|
||||
::::
|
||||
|
||||
<details>
|
||||
<summary>Example</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"enable": true,
|
||||
"award": true,
|
||||
"mail": true,
|
||||
"recruit": true,
|
||||
"orundum": false,
|
||||
"mining": true,
|
||||
"specialaccess": false
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
- `Roguelike`
|
||||
통합 전략 무한 반복
|
||||
|
||||
@@ -388,10 +532,10 @@ OF-1 플레이 시 사용할 편성 슬롯 번호
|
||||
<br>
|
||||
`7` - 심층 조사 보상 파밍, 모드 적응 외엔 모드 0과 동일
|
||||
:::
|
||||
::: field name="squad" type="string" optional default="지휘 분대"
|
||||
::: field name="squad" type="string" optional default="指挥分队"
|
||||
시작 분대명
|
||||
:::
|
||||
::: field name="roles" type="string" optional default="적재적소 활용"
|
||||
::: field name="roles" type="string" optional default="取长补短"
|
||||
시작 모집 조합
|
||||
:::
|
||||
::: field name="core_char" type="string" optional
|
||||
@@ -407,7 +551,7 @@ OF-1 플레이 시 사용할 편성 슬롯 번호
|
||||
탐색 시작 횟수. 도달 시 자동 정지
|
||||
:::
|
||||
::: field name="difficulty" type="number" optional default="0"
|
||||
지정 난이도 등급. **Phantom 제외** 테마에만 적용. 미해금 시 현재 해금된 최고 난이도 선택
|
||||
지정 난이도 등급. 미해금 시 현재 해금된 최고 난이도 선택
|
||||
:::
|
||||
::: field name="stop_at_final_boss" type="boolean" optional default="false"
|
||||
5층 보스 노드 앞에서 정지할지 여부. **Phantom 제외** 테마에만 적용
|
||||
@@ -463,7 +607,9 @@ OF-1 플레이 시 사용할 편성 슬롯 번호
|
||||
<br>
|
||||
`dice`: 주사위 보상, Mizuki 테마 전용
|
||||
<br>
|
||||
`ideas`: 구상 2개 보상, Sarkaz 테마 전용
|
||||
`ideas`: 구상 2개 보상, Sarkaz 테마 전용
|
||||
<br>
|
||||
`ticket`: 티켓 보상, JieGarden 테마 전용
|
||||
:::
|
||||
::: field name="use_foldartal" type="boolean" optional
|
||||
암호문 사용 여부. 모드 5 기본값 `false`, 기타 모드 기본값 `true`. Sami 테마 전용
|
||||
@@ -499,7 +645,59 @@ Sarkaz 테마, Investment 모드, "연금술 분대" 또는 "지원 분대"일
|
||||
<br>
|
||||
고정 시드 사용
|
||||
:::
|
||||
::::
|
||||
::::
|
||||
|
||||
<details>
|
||||
<summary>Example</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"enable": true,
|
||||
"theme": "Sami",
|
||||
"mode": 5,
|
||||
"squad": "指挥分队",
|
||||
"roles": "取长补短",
|
||||
"core_char": "塑心",
|
||||
"use_support": false,
|
||||
"use_nonfriend_support": false,
|
||||
"starts_count": 3,
|
||||
"difficulty": 8,
|
||||
"stop_at_final_boss": false,
|
||||
"stop_at_max_level": false,
|
||||
"investment_enabled": true,
|
||||
"investments_count": 2,
|
||||
"stop_when_investment_full": false,
|
||||
"investment_with_more_score": false,
|
||||
"start_with_elite_two": false,
|
||||
"only_start_with_elite_two": false,
|
||||
"refresh_trader_with_dice": false,
|
||||
"first_floor_foldartal": "",
|
||||
"start_foldartal_list": [],
|
||||
"collectible_mode_start_list": {
|
||||
"hot_water": true,
|
||||
"shield": false,
|
||||
"ingot": false,
|
||||
"hope": true,
|
||||
"random": false,
|
||||
"key": false,
|
||||
"dice": false,
|
||||
"ideas": false
|
||||
},
|
||||
"use_foldartal": true,
|
||||
"check_collapsal_paradigms": true,
|
||||
"double_check_collapsal_paradigms": true,
|
||||
"expected_collapsal_paradigms": ["目空一些", "睁眼瞎"],
|
||||
"monthly_squad_auto_iterate": false,
|
||||
"monthly_squad_check_comms": false,
|
||||
"deep_exploration_auto_iterate": false,
|
||||
"collectible_mode_shopping": false,
|
||||
"collectible_mode_squad": "",
|
||||
"start_with_seed": false
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
붕괴 패러다임 파밍 기능에 대한 자세한 내용은 [통합 전략 보조 프로토콜](./integrated-strategy-schema.md#탐험가의-은빛-서리-끝자락-—-붕괴-패러다임)을 참고하세요.
|
||||
|
||||
- `Copilot`
|
||||
@@ -571,6 +769,32 @@ Sarkaz 테마, Investment 모드, "연금술 분대" 또는 "지원 분대"일
|
||||
|
||||
작전 JSON은 [자동지휘 프로토콜](./copilot-schema.md)을 참고하세요.
|
||||
|
||||
<details>
|
||||
<summary>Example</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"enable": true,
|
||||
"filename": "copilot/1-7.json",
|
||||
"loop_times": 2,
|
||||
"use_sanity_potion": false,
|
||||
"formation": true,
|
||||
"formation_index": 1,
|
||||
"user_additional": [
|
||||
{
|
||||
"name": "能天使",
|
||||
"skill": 3
|
||||
}
|
||||
],
|
||||
"add_trust": true,
|
||||
"ignore_requirements": false,
|
||||
"support_unit_usage": 2,
|
||||
"support_unit_name": "艾雅法拉"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
- `SSSCopilot`
|
||||
보안 파견 자동지휘
|
||||
|
||||
@@ -587,18 +811,47 @@ Sarkaz 테마, Investment 모드, "연금술 분대" 또는 "지원 분대"일
|
||||
::::
|
||||
보안 파견 작전 JSON은 [보안 파견 프로토콜](./sss-schema.md)을 참고하세요.
|
||||
|
||||
<details>
|
||||
<summary>Example</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"enable": true,
|
||||
"filename": "sss/plan.json",
|
||||
"loop_times": 1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
- `ParadoxCopilot`
|
||||
패러독스 시뮬레이션 작전 계획 자동 수행
|
||||
|
||||
```json5
|
||||
// Task parameters
|
||||
:::: field-group
|
||||
::: field name="enable" type="boolean" optional default="true"
|
||||
본 작업 활성화 여부.
|
||||
:::
|
||||
::: field name="filename" type="string" required
|
||||
단일 작전 JSON 파일 경로, 절대/상대 경로 모두 가능. 실행 중 설정 불가. 필수, list와 택일.
|
||||
:::
|
||||
::: field name="list" type="array<string>" required
|
||||
작전 JSON 목록, 절대/상대 경로 모두 가능. 실행 중 설정 불가. 필수, filename과 택일.
|
||||
:::
|
||||
::::
|
||||
|
||||
<details>
|
||||
<summary>Example</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"enable": bool, // 해당 작업의 활성화 여부. 기본값은 true
|
||||
"filename": string, // 개별 작업 JSON 파일 경로. 절대 경로 및 상대 경로 모두 가능하며, 실행 중 설정은 지원하지 않음. list와 둘 중 하나를 반드시 선택(필수)
|
||||
"list" : list<string> // 작업 JSON 파일 목록. 절대 경로 및 상대 경로 모두 가능하며, 실행 중 설정은 지원하지 않음. filename과 둘 중 하나를 반드시 선택(필수)
|
||||
"enable": true,
|
||||
"filename": "paradox/exusiai.json",
|
||||
"list": []
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
- `Depot`
|
||||
창고 인식
|
||||
|
||||
@@ -608,6 +861,17 @@ Sarkaz 테마, Investment 모드, "연금술 분대" 또는 "지원 분대"일
|
||||
:::
|
||||
::::
|
||||
|
||||
<details>
|
||||
<summary>Example</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"enable": true
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
- `OperBox`
|
||||
오퍼레이터 인식
|
||||
|
||||
@@ -617,6 +881,17 @@ Sarkaz 테마, Investment 모드, "연금술 분대" 또는 "지원 분대"일
|
||||
:::
|
||||
::::
|
||||
|
||||
<details>
|
||||
<summary>Example</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"enable": true
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
- `Reclamation`
|
||||
생존 연산
|
||||
|
||||
@@ -638,7 +913,7 @@ Sarkaz 테마, Investment 모드, "연금술 분대" 또는 "지원 분대"일
|
||||
<br>
|
||||
`1` - 모래 속의 불: 적금 파밍, 연락원에게 물 구매 후 기지에서 주조; 사막 이야기: 자동 아이템 제작 및 로드 반복으로 화폐 파밍
|
||||
:::
|
||||
::: field name="tools_to_craft" type="array<string>" optional default="['荧光棒']"
|
||||
::: field name="tools_to_craft" type="array<string>" optional default="["荧光棒"]"
|
||||
자동 제작 아이템, 부분 문자열 입력 권장
|
||||
:::
|
||||
::: field name="increment_mode" type="number" optional default="0"
|
||||
@@ -653,6 +928,22 @@ Sarkaz 테마, Investment 모드, "연금술 분대" 또는 "지원 분대"일
|
||||
:::
|
||||
::::
|
||||
|
||||
<details>
|
||||
<summary>Example</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"enable": true,
|
||||
"theme": "Fire",
|
||||
"mode": 1,
|
||||
"tools_to_craft": ["荧光棒", "发电机"],
|
||||
"increment_mode": 0,
|
||||
"num_craft_batches": 12
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
- `Custom`
|
||||
사용자 정의 작업
|
||||
|
||||
@@ -665,6 +956,18 @@ Sarkaz 테마, Investment 모드, "연금술 분대" 또는 "지원 분대"일
|
||||
:::
|
||||
::::
|
||||
|
||||
<details>
|
||||
<summary>Example</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"enable": true,
|
||||
"task_names": ["StartUp", "Infrast", "Fight"]
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
- `SingleStep`
|
||||
단일 단계 작업 (현재 전투만 지원)
|
||||
|
||||
@@ -689,6 +992,22 @@ Sarkaz 테마, Investment 모드, "연금술 분대" 또는 "지원 분대"일
|
||||
:::
|
||||
::::
|
||||
|
||||
<details>
|
||||
<summary>Example</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"enable": true,
|
||||
"type": "copilot",
|
||||
"subtask": "stage",
|
||||
"details": {
|
||||
"stage": "1-7"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
- `VideoRecognition`
|
||||
영상 인식, 현재 작전(전투) 영상만 지원
|
||||
|
||||
@@ -701,6 +1020,18 @@ Sarkaz 테마, Investment 모드, "연금술 분대" 또는 "지원 분대"일
|
||||
:::
|
||||
::::
|
||||
|
||||
<details>
|
||||
<summary>Example</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"enable": true,
|
||||
"filename": "videos/copilot.mp4"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
### `AsstSetTaskParams`
|
||||
|
||||
#### 인터페이스 원형
|
||||
|
||||
@@ -192,14 +192,14 @@ JSON 파일은 주석을 지원하지 않으므로, 텍스트 내의 주석은
|
||||
|
||||
작업 목록 유형 필드 (`sub`, `next`, `onErrorNext`, `exceededNext`, `reduceOtherTimes`)는 표현식 계산을 지원합니다.
|
||||
|
||||
| 기호 | 의미 | 예시 |
|
||||
| :--------: | :-------------------------------------------------------: | :------------------------------------: |
|
||||
| `@` | `@` 형 작업 | `Fight@ReturnTo` |
|
||||
| `#` (단항) | 가상 작업 | `#self` |
|
||||
| `#` (이항) | 가상 작업 | `StartUpThemes#next` |
|
||||
| `*` | 다중 작업 반복 | `(ClickCornerAfterPRTS+ClickCorner)*5` |
|
||||
| `+` | 작업 목록 병합 (next 계열 필드에서 동명 작업은 앞쪽 우선) | `A+B` |
|
||||
| `^` | 작업 목록 차집합 (전자에만 존재, 순서 유지) | `(A+A+B+C)^(A+B+D)` (결과는 `C`) |
|
||||
| 기호 | 의미 | 예시 |
|
||||
| :--------: | :-------------------------------------------------------: | :-------------------------------------: |
|
||||
| `@` | `@` 형 작업 | `Fight@ReturnTo` |
|
||||
| `#` (단항) | 가상 작업 | `#self` |
|
||||
| `#` (이항) | 가상 작업 | `StartUpThemes#next` |
|
||||
| `*` | 다중 작업 반복 | `(ClickCornerAfterPRTS+ClickCorner)*10` |
|
||||
| `+` | 작업 목록 병합 (next 계열 필드에서 동명 작업은 앞쪽 우선) | `A+B` |
|
||||
| `^` | 작업 목록 차집합 (전자에만 존재, 순서 유지) | `(A+A+B+C)^(A+B+D)` (결과는 `C`) |
|
||||
|
||||
연산자 `@`, `#`, `*`, `+`, `^`의 우선순위: `#`(단항) > `@` = `#`(이항) > `*` > `+` = `^`.
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ icon: devicon-plain:githubactions
|
||||
|
||||
# CI 系统解析
|
||||
|
||||
MAA 借助 Github Action 完成了大量的自动化工作,包括网站的构建,自动更新资源,最终文件的构建与发版等等过程。随着时间的推移,这些 CI 逐渐开始嵌套,部分甚至引向了其他的存储库。本文档旨在为想要对 MAA 的 CI 系统做出改进的各位做一个简要的介绍。
|
||||
MAA 借助 GitHub Action 完成了大量的自动化工作,包括网站的构建,自动更新资源,最终文件的构建与发版等等过程。随着时间的推移,这些 CI 逐渐开始嵌套,部分甚至引向了其他的存储库。本文档旨在为想要对 MAA 的 CI 系统做出改进的各位做一个简要的介绍。
|
||||
|
||||
阅读本文之前,最好对 MAA 的项目结构以及组成有一个基本的概念。
|
||||
|
||||
@@ -28,7 +28,7 @@ MAA 借助 Github Action 完成了大量的自动化工作,包括网站的构
|
||||
|
||||
此外,我们还通过 [pre-commit.ci](https://pre-commit.ci/) 实现了代码的自动格式化和图片资源的自动优化,它在发起 PR 后会自动执行,一般无需特别在意。
|
||||
|
||||
## Github Action 部分
|
||||
## GitHub Action 部分
|
||||
|
||||
### 代码测试
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ icon: iconoir:developer
|
||||
|
||||
## 我不懂编程,只是想改一点点 JSON 文件/文档等,要怎么操作?
|
||||
|
||||
欢迎收看 [牛牛也能看懂的 GitHub Pull Request 使用指南](./pr-tutorial.md) (纯网页端操作 Github.com)
|
||||
欢迎收看 [牛牛也能看懂的 GitHub Pull Request 使用指南](./pr-tutorial.md) (纯网页端操作 GitHub.com)
|
||||
|
||||
## 我只想简单修改几行代码,但配置环境太麻烦,纯网页编辑又很难用,怎么办?
|
||||
|
||||
@@ -64,16 +64,19 @@ icon: iconoir:developer
|
||||
6. 执行 cmake 项目配置
|
||||
|
||||
```cmd
|
||||
mkdir -p build
|
||||
cmake -G "Visual Studio 18 2026" -B build -DBUILD_WPF_GUI=ON -DBUILD_DEBUG_DEMO=ON
|
||||
cmake --preset windows-x64
|
||||
```
|
||||
|
||||
7. 双击打开 `build/MAA.sln` 文件,Visual Studio 会自动加载整个项目。
|
||||
7. 双击打开 `build/MAA.slnx` 文件,Visual Studio 会自动加载整个项目。
|
||||
8. 设置 VS
|
||||
- VS 上方配置选择 `Debug` `x64`
|
||||
- 右键 `MaaWpfGui` - 设为启动项目
|
||||
- 按 F5 运行
|
||||
|
||||
::: tip
|
||||
若需调试 Win32Controller(Windows 窗口控制)相关功能,需要自行从 [MaaFramework Releases](https://github.com/MaaXYZ/MaaFramework/releases) 下载对应平台的压缩包,将 `bin` 目录中的 `MaaWin32ControlUnit.dll` 放到 MAA 的 DLL 同目录下(如 `build/bin/Debug`)。欢迎 PR 一个自动下载脚本!
|
||||
:::
|
||||
|
||||
9. 到这里,你就可以愉快地 ~~瞎 JB 改~~ 发电了
|
||||
10. 开发过程中,每一定数量,记得提交一个 Commit, 别忘了写上 Message
|
||||
假如你不熟悉 git 的使用,你可能想要新建一个分支进行更改,而不是直接提交在 `dev` 上
|
||||
@@ -117,12 +120,48 @@ icon: iconoir:developer
|
||||
git merge # 合并
|
||||
```
|
||||
|
||||
4. 重复上述 7, 8, 9, 10 中的操作
|
||||
4. 重复上述 8, 9, 10, 11 中的操作
|
||||
|
||||
::: tip
|
||||
在打开 VS 之后,和 Git 有关的操作可以不用命令行工具,直接使用 VS 自带的“Git 更改”即可
|
||||
:::
|
||||
|
||||
## 使用 VS Code 进行开发(可选)
|
||||
|
||||
::: warning
|
||||
**推荐优先使用 Visual Studio 进行开发。** MAA 项目主要基于 Visual Studio 构建,上述完整环境配置流程已涵盖所有开发需求,开箱即用体验最佳。VSCode 方案仅作为备选,适合已经熟悉 VS Code + CMake + clangd 工作流的开发者,配置门槛相对较高。
|
||||
:::
|
||||
|
||||
如果你偏好使用 VSCode,可以配合 CMake、clangd 等扩展获得代码补全、跳转和调试能力。在完成前述 1–6 步(克隆、依赖、CMake 配置)后,可按以下步骤配置:
|
||||
|
||||
### 推荐扩展
|
||||
|
||||
在 VS Code 扩展市场安装:
|
||||
|
||||
| 扩展 | 作用 |
|
||||
| --------------------------------------------------------------------------------------------------- | --------------------------------------------------- |
|
||||
| [CMake Tools](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools) | CMake 配置、构建、调试集成 |
|
||||
| [clangd](https://marketplace.visualstudio.com/items?itemName=llvm-vs-code-extensions.vscode-clangd) | C++ 智能提示、代码跳转、诊断(基于 LSP) |
|
||||
| [C/C++](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools) | 调试 C++ 程序(与 CMake Tools 或 launch.json 配合) |
|
||||
|
||||
::: tip
|
||||
使用 clangd 时,建议禁用 C/C++ 扩展的 IntelliSense(`C_Cpp.intelliSenseEngine` 设为 `disabled`),避免与 clangd 冲突。
|
||||
:::
|
||||
|
||||
### 配置步骤
|
||||
|
||||
1. 用 VS Code 打开项目根目录
|
||||
2. 使用 **CMake Tools**:
|
||||
- 状态栏选择 Configure Preset(如 `windows-x64`、`linux-x64` 等)
|
||||
- 选择 Build Preset,执行配置与构建
|
||||
3. 使用 **clangd**:在 Windows 上配合 MSVC 使用时无需 `compile_commands.json` 即可正常开发。Linux/macOS 下预设已开启 `CMAKE_EXPORT_COMPILE_COMMANDS`,clangd 会自动使用 `build/compile_commands.json`
|
||||
4. **调试**:项目已包含 `.vscode/launch.json`,可直接启动 MaaWpfGui 或 Debug Demo 进行调试
|
||||
|
||||
### 快速构建与调试
|
||||
|
||||
- **构建**:`Ctrl+Shift+B` 或通过 CMake Tools 状态栏
|
||||
- **调试**:F5 或运行与调试面板选择对应配置
|
||||
|
||||
## MAA 的文件格式化要求
|
||||
|
||||
MAA 使用一系列的格式化工具来保证仓库中的代码和资源文件美观统一,以便于维护和阅读
|
||||
@@ -134,7 +173,7 @@ MAA 使用一系列的格式化工具来保证仓库中的代码和资源文件
|
||||
| 文件类型 | 格式化工具 |
|
||||
| --------- | --------------------------------------------------------------- |
|
||||
| C++ | [clang-format](https://clang.llvm.org/docs/ClangFormat.html) |
|
||||
| Json/Yaml | [Prettier](https://prettier.io/) |
|
||||
| JSON/YAML | [Prettier](https://prettier.io/) |
|
||||
| Markdown | [markdownlint](https://github.com/DavidAnson/markdownlint-cli2) |
|
||||
|
||||
### 利用 Pre-commit Hooks 自动进行代码格式化
|
||||
|
||||