Compare commits
1027 Commits
v4.6.0-alp
...
v4.7.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f24e218eb5 | ||
|
|
39929e7ad5 | ||
|
|
f8cc5b6750 | ||
|
|
0db2226e1a | ||
|
|
d0af1cec90 | ||
|
|
ec389a6509 | ||
|
|
e1c6a2999f | ||
|
|
1f39fc75b9 | ||
|
|
f22e98fb0c | ||
|
|
9e6fc6a738 | ||
|
|
82418535ff | ||
|
|
890f032375 | ||
|
|
6ca90b52bc | ||
|
|
8fe6599e08 | ||
|
|
0b98dc3208 | ||
|
|
cd77388c36 | ||
|
|
ced7f27428 | ||
|
|
adba9affee | ||
|
|
effb5e9e4e | ||
|
|
f35f0de6ca | ||
|
|
110fc9e50a | ||
|
|
eed5d3a3d3 | ||
|
|
417f306b43 | ||
|
|
2819166dfd | ||
|
|
087c60e58e | ||
|
|
ca574a6b8c | ||
|
|
1269446ba7 | ||
|
|
05c902c11c | ||
|
|
590dac3390 | ||
|
|
8898ac4009 | ||
|
|
39705649a2 | ||
|
|
185670b264 | ||
|
|
01346f0613 | ||
|
|
1879848120 | ||
|
|
c4429b83eb | ||
|
|
770cd127db | ||
|
|
42a6cc275e | ||
|
|
03bd52d730 | ||
|
|
d196671255 | ||
|
|
481714dd23 | ||
|
|
a341bac7cc | ||
|
|
273cc4418a | ||
|
|
f0a7d68959 | ||
|
|
cf6fc5a723 | ||
|
|
b4b5faf2ba | ||
|
|
22d89dd992 | ||
|
|
281c0a470b | ||
|
|
dedf9a2e95 | ||
|
|
4b19fbb141 | ||
|
|
3bd4069304 | ||
|
|
bcc7bdbc09 | ||
|
|
a7a9ceaf7a | ||
|
|
14f8d96f11 | ||
|
|
01bff8d972 | ||
|
|
9dac57f8b4 | ||
|
|
bfdc3d43cc | ||
|
|
cb783ccf80 | ||
|
|
c510585fbd | ||
|
|
fef6005f75 | ||
|
|
da32d7e5b1 | ||
|
|
dd968b8274 | ||
|
|
64634a9a94 | ||
|
|
6528bd2f01 | ||
|
|
5aaae7077c | ||
|
|
98e3f22bd6 | ||
|
|
88c2e5c691 | ||
|
|
35eb427a83 | ||
|
|
62817d8369 | ||
|
|
0f1d615108 | ||
|
|
47f827e015 | ||
|
|
5c7edb2d6a | ||
|
|
04d0c61b2e | ||
|
|
047a34cff2 | ||
|
|
a96136cfd9 | ||
|
|
32d4567c24 | ||
|
|
d300c026f9 | ||
|
|
1d84c240a8 | ||
|
|
6c8f51af22 | ||
|
|
6d10f56a98 | ||
|
|
32fbf8d9f2 | ||
|
|
842c6a9dac | ||
|
|
26cce08fd5 | ||
|
|
0d0a824869 | ||
|
|
a29d87296d | ||
|
|
af07e2ddfd | ||
|
|
7a8d9432bd | ||
|
|
54a90186dd | ||
|
|
fd2ef4335b | ||
|
|
c16d7e6111 | ||
|
|
3937595aad | ||
|
|
9454be263d | ||
|
|
9a4b01f760 | ||
|
|
5202455301 | ||
|
|
8447162869 | ||
|
|
ad25df94cb | ||
|
|
bdb4f39c4c | ||
|
|
f55acb4220 | ||
|
|
49484943fc | ||
|
|
c63b2bd94a | ||
|
|
55b0ce2118 | ||
|
|
3a7a00d490 | ||
|
|
2fb6ef096d | ||
|
|
a0e5c4614b | ||
|
|
a50a60c528 | ||
|
|
e8be52e366 | ||
|
|
ebaed23681 | ||
|
|
8dab15d593 | ||
|
|
96c3ac8eed | ||
|
|
4d021c4681 | ||
|
|
b73e24cbe9 | ||
|
|
9dad127ef3 | ||
|
|
0491b1ede8 | ||
|
|
b2009a92f6 | ||
|
|
6eaf631943 | ||
|
|
614f5033e7 | ||
|
|
17eb851d4b | ||
|
|
4b943f0f7a | ||
|
|
eca64fda08 | ||
|
|
d078c6fc37 | ||
|
|
0fad489ec7 | ||
|
|
4f5d04d771 | ||
|
|
52351348dc | ||
|
|
5dc465cee0 | ||
|
|
aa6df8bbcb | ||
|
|
b1ea3c7ccb | ||
|
|
d398c141cf | ||
|
|
b2cc2ab931 | ||
|
|
afd5fe8cdc | ||
|
|
8179450da2 | ||
|
|
289e897e27 | ||
|
|
a16caa7849 | ||
|
|
e150a2bf22 | ||
|
|
8d9704b37b | ||
|
|
c076a005a0 | ||
|
|
2ccba7f101 | ||
|
|
50edd9e5e2 | ||
|
|
b8574ad1fb | ||
|
|
8d9c5b9d8d | ||
|
|
04d74f1c04 | ||
|
|
a1b7598810 | ||
|
|
902783b851 | ||
|
|
cb6b057f92 | ||
|
|
9055670e7d | ||
|
|
ed107d6b35 | ||
|
|
b46b278d5c | ||
|
|
411c9a8538 | ||
|
|
1785f5fb8d | ||
|
|
c986354648 | ||
|
|
904d01684b | ||
|
|
e1c3d30fbf | ||
|
|
4cabf9f53e | ||
|
|
d9413606ab | ||
|
|
d0c12b8fc2 | ||
|
|
d0e7a5211a | ||
|
|
c1a8dc4cc5 | ||
|
|
9614cff5e5 | ||
|
|
3699d19042 | ||
|
|
7e3c3d558a | ||
|
|
e36a02cea6 | ||
|
|
b959958dfc | ||
|
|
632f479e0f | ||
|
|
545fb1ef00 | ||
|
|
876f8296a8 | ||
|
|
5fe5335a5c | ||
|
|
c7f1d633ff | ||
|
|
05dc0147c1 | ||
|
|
35aa7379a5 | ||
|
|
4c839ba817 | ||
|
|
7b34f4fe1c | ||
|
|
6970094a12 | ||
|
|
b159e48a0a | ||
|
|
88aa12e60b | ||
|
|
07b58a8a50 | ||
|
|
2fca0a3203 | ||
|
|
02d203a248 | ||
|
|
72263db4de | ||
|
|
836a3c6212 | ||
|
|
b6b65cd43a | ||
|
|
4892142df2 | ||
|
|
7cdea06f59 | ||
|
|
b629e6ba35 | ||
|
|
51836dd8d4 | ||
|
|
a1d3b606ea | ||
|
|
1064dea5db | ||
|
|
672094ca0a | ||
|
|
3e7fba84f8 | ||
|
|
3746e6b343 | ||
|
|
5748a8e927 | ||
|
|
353fb41a55 | ||
|
|
00460754ee | ||
|
|
3abf8e5f27 | ||
|
|
614847935f | ||
|
|
a93c3d3c63 | ||
|
|
ef4c7218cf | ||
|
|
bf15b7ad09 | ||
|
|
f0e4bf7b09 | ||
|
|
b6dc09a5b5 | ||
|
|
8793be0588 | ||
|
|
59f9cf03df | ||
|
|
4d222e7992 | ||
|
|
baaead6895 | ||
|
|
bfb16d5a8b | ||
|
|
fe93b27515 | ||
|
|
8a7e71c0f2 | ||
|
|
d30e88fff2 | ||
|
|
f329624b9e | ||
|
|
a98be921da | ||
|
|
56d75bc2ab | ||
|
|
81a1569a24 | ||
|
|
d5f69687f6 | ||
|
|
0b921ef4db | ||
|
|
9bfd4246ec | ||
|
|
2d28d448bf | ||
|
|
32cacd4b0d | ||
|
|
28576c1ad9 | ||
|
|
3355b97d26 | ||
|
|
e62cfdbf8d | ||
|
|
ee12dc56d1 | ||
|
|
00073745c9 | ||
|
|
ea6842d94c | ||
|
|
ddbcbd6481 | ||
|
|
9c17767484 | ||
|
|
cc4e4bde3c | ||
|
|
6a1b72638e | ||
|
|
23f49acbc4 | ||
|
|
8d2664e0cc | ||
|
|
12787f8f0e | ||
|
|
ac39e81db4 | ||
|
|
4df87953f3 | ||
|
|
63691306e0 | ||
|
|
c43dfcb7e0 | ||
|
|
878c908829 | ||
|
|
63d7857e71 | ||
|
|
ca39ae1c14 | ||
|
|
45af45d73e | ||
|
|
98b60e9d18 | ||
|
|
01af0ffc24 | ||
|
|
46b7682b50 | ||
|
|
1087690f59 | ||
|
|
824669c684 | ||
|
|
789dbb813a | ||
|
|
b2e7cc4afc | ||
|
|
ba708e0a87 | ||
|
|
ac511992e2 | ||
|
|
3a15a74129 | ||
|
|
7b50951c80 | ||
|
|
7cacdd9512 | ||
|
|
c04dbb6d7c | ||
|
|
68b096aceb | ||
|
|
96ba747663 | ||
|
|
8a8bdce98f | ||
|
|
09cbb365d4 | ||
|
|
42db89cdb1 | ||
|
|
3b01e8f6f9 | ||
|
|
a470ab442a | ||
|
|
ab1cad05a2 | ||
|
|
4182eecc43 | ||
|
|
e723b22ecd | ||
|
|
b0b0fd3a64 | ||
|
|
1a88f572cc | ||
|
|
6bfe952bfa | ||
|
|
ac2b54457f | ||
|
|
59aa87a823 | ||
|
|
9f013a59a6 | ||
|
|
625ccd2c6d | ||
|
|
68c5a67bde | ||
|
|
adc2a3e623 | ||
|
|
413ae17f21 | ||
|
|
02bca1130b | ||
|
|
ebb243d574 | ||
|
|
d2959e5266 | ||
|
|
6ff7754151 | ||
|
|
ffb37d670a | ||
|
|
b5cd1a018f | ||
|
|
a5ce8f0234 | ||
|
|
853d6542eb | ||
|
|
9aa4a299d9 | ||
|
|
0efbfe6293 | ||
|
|
e44913f67c | ||
|
|
98ce13b8b5 | ||
|
|
797f418f5b | ||
|
|
faab4b3c18 | ||
|
|
b02ed4e588 | ||
|
|
2c572199cf | ||
|
|
a622bb6c89 | ||
|
|
4f040c9ab2 | ||
|
|
f00abbb42f | ||
|
|
ba645aa787 | ||
|
|
a5cd569f01 | ||
|
|
dd952714f9 | ||
|
|
965f92cd7d | ||
|
|
297cf35eeb | ||
|
|
1ecc9f060e | ||
|
|
1983bc2424 | ||
|
|
94c08cfd89 | ||
|
|
376cbbc3b8 | ||
|
|
0ae74d8fe3 | ||
|
|
3d51081294 | ||
|
|
d3bf05b6e0 | ||
|
|
c5b95bc303 | ||
|
|
7a08bf6b46 | ||
|
|
d6fca7b6a1 | ||
|
|
f989f5d84d | ||
|
|
d07b5e8b05 | ||
|
|
f6bfdd54b6 | ||
|
|
769ce6d79d | ||
|
|
3acee1f7d9 | ||
|
|
260139052a | ||
|
|
cd77beee43 | ||
|
|
8c331c3e5f | ||
|
|
64cbc15568 | ||
|
|
2fe3d84b4b | ||
|
|
182fc61c82 | ||
|
|
157c548d0d | ||
|
|
60ab6ac729 | ||
|
|
6092c283bc | ||
|
|
c9a354d238 | ||
|
|
2596c9437b | ||
|
|
746574d8cb | ||
|
|
bb6faab2af | ||
|
|
eea0050dba | ||
|
|
d269ef69a8 | ||
|
|
9bd2866cf0 | ||
|
|
117f5fa115 | ||
|
|
f6b85040f6 | ||
|
|
cc84d689ee | ||
|
|
aeda24cba0 | ||
|
|
9bdb60ac4c | ||
|
|
1ba88343b3 | ||
|
|
2eed9cc19e | ||
|
|
6ad11e123a | ||
|
|
9dcde5fdf0 | ||
|
|
19f3854dc1 | ||
|
|
475d49d14b | ||
|
|
36215f0d96 | ||
|
|
880f33b208 | ||
|
|
33841362bf | ||
|
|
e2b2366481 | ||
|
|
1e6c33527b | ||
|
|
f27e9199d4 | ||
|
|
fee582a2bf | ||
|
|
1396bddb18 | ||
|
|
697b37b971 | ||
|
|
881e9e23d6 | ||
|
|
8a2506b1cf | ||
|
|
826008551c | ||
|
|
f1a31de286 | ||
|
|
6177369408 | ||
|
|
7084dede2f | ||
|
|
27f3ad7e73 | ||
|
|
ab82930118 | ||
|
|
7b0d9168f5 | ||
|
|
97835f7bf0 | ||
|
|
8175cd6e82 | ||
|
|
b3549c49a7 | ||
|
|
dca4a21487 | ||
|
|
2968ec6552 | ||
|
|
3e4efddd0c | ||
|
|
52ce7ae26b | ||
|
|
e4ef921c0a | ||
|
|
e0acccf634 | ||
|
|
907627cbf6 | ||
|
|
571577f457 | ||
|
|
b1da06b6a8 | ||
|
|
f2df4a8315 | ||
|
|
27b7bb253b | ||
|
|
ebf34d5966 | ||
|
|
50b4cc073e | ||
|
|
8c29796f4c | ||
|
|
6b1e320bd6 | ||
|
|
ca0080f251 | ||
|
|
9fb4790816 | ||
|
|
afeed42931 | ||
|
|
aee4969748 | ||
|
|
45d331726a | ||
|
|
b9adabc231 | ||
|
|
36aa322a24 | ||
|
|
e7530fe781 | ||
|
|
3344771d02 | ||
|
|
289a09be00 | ||
|
|
4887e81a1c | ||
|
|
12c6d37d6f | ||
|
|
05aaa781d4 | ||
|
|
0aa9afe19b | ||
|
|
7bcc73ac82 | ||
|
|
95d80ee7d7 | ||
|
|
19f8d57a9f | ||
|
|
d0e262473d | ||
|
|
fd0b73c27a | ||
|
|
340a9c030e | ||
|
|
11f8ca6507 | ||
|
|
2774c48168 | ||
|
|
a7523c2a99 | ||
|
|
f786dfe9de | ||
|
|
ade6eeac78 | ||
|
|
f37ca0d2f6 | ||
|
|
6759a8e19c | ||
|
|
6cd1518a15 | ||
|
|
350c8420d9 | ||
|
|
1dc1a1fac3 | ||
|
|
81fe123ca2 | ||
|
|
e0306fbfb1 | ||
|
|
44c369dc50 | ||
|
|
ca1bcc3566 | ||
|
|
b722ab6006 | ||
|
|
1d7529cb93 | ||
|
|
d2a0249e35 | ||
|
|
83488137f5 | ||
|
|
5b68a7a5ad | ||
|
|
b839f00187 | ||
|
|
d5451d825d | ||
|
|
a687221087 | ||
|
|
e641692b53 | ||
|
|
e9f8c7d2c0 | ||
|
|
9f31da95d8 | ||
|
|
df903fa77a | ||
|
|
e505881586 | ||
|
|
2598069667 | ||
|
|
989f02c577 | ||
|
|
16e9609e1a | ||
|
|
5563c3ec1e | ||
|
|
cc8f3a3c88 | ||
|
|
9618968d38 | ||
|
|
a541c3e525 | ||
|
|
0d47ad3fd7 | ||
|
|
42d3cdf412 | ||
|
|
7c690c7e45 | ||
|
|
4023747c1c | ||
|
|
9d98268d27 | ||
|
|
d7879ebaec | ||
|
|
dd0de388f7 | ||
|
|
ef78544ef9 | ||
|
|
60d19c85f2 | ||
|
|
9a526e5737 | ||
|
|
fb6737e64f | ||
|
|
9e2c2b8131 | ||
|
|
8b104a297f | ||
|
|
9b74340136 | ||
|
|
7272af282d | ||
|
|
f76d70472b | ||
|
|
b93f796a2c | ||
|
|
0a62b36c47 | ||
|
|
398fda071b | ||
|
|
8167cfefd2 | ||
|
|
7a74447de5 | ||
|
|
740683caf8 | ||
|
|
8b656c957b | ||
|
|
d52bafd4f3 | ||
|
|
2de1d9e827 | ||
|
|
7e14628529 | ||
|
|
7cf4529946 | ||
|
|
65ae4d29e0 | ||
|
|
96db264e52 | ||
|
|
76f66976c3 | ||
|
|
ae3e2f9bcb | ||
|
|
b58ecd022d | ||
|
|
815d7be24c | ||
|
|
e916a21eea | ||
|
|
8306396cb8 | ||
|
|
ec7f10f424 | ||
|
|
d686cdfb8b | ||
|
|
63f15cbaf0 | ||
|
|
d1ff082212 | ||
|
|
14c3f1886f | ||
|
|
1d7e194c26 | ||
|
|
dccb4efbb7 | ||
|
|
79099d4ba2 | ||
|
|
9d5f4a6861 | ||
|
|
22705d1406 | ||
|
|
16e93186e6 | ||
|
|
d8c922eb6a | ||
|
|
d54a513d12 | ||
|
|
8de5d5d1c7 | ||
|
|
155a74d95d | ||
|
|
190d930c2c | ||
|
|
d016f4dacb | ||
|
|
d3cae73a86 | ||
|
|
247600e607 | ||
|
|
03746598ab | ||
|
|
f903d110e4 | ||
|
|
42da45e807 | ||
|
|
44516bb79e | ||
|
|
64696a8380 | ||
|
|
915f15fd21 | ||
|
|
0e23311aea | ||
|
|
2ec3022eae | ||
|
|
96e7b01496 | ||
|
|
b305ac96fb | ||
|
|
1cc03e8775 | ||
|
|
656e675326 | ||
|
|
c2b9e88585 | ||
|
|
fc1ba2bd74 | ||
|
|
6eaa812eab | ||
|
|
61483af38a | ||
|
|
8f85844370 | ||
|
|
a36679f1ee | ||
|
|
aab55771c5 | ||
|
|
0295b1d525 | ||
|
|
27d7f3537c | ||
|
|
9d18abcd46 | ||
|
|
71fd1ce7ad | ||
|
|
2ab5cdb33b | ||
|
|
fff0865d6e | ||
|
|
0b492b519d | ||
|
|
a0080952c1 | ||
|
|
a31b303eec | ||
|
|
e7d702598f | ||
|
|
eaed0d4cd6 | ||
|
|
3727fcad6a | ||
|
|
4b81064289 | ||
|
|
2af05e8e75 | ||
|
|
5b6328b3cd | ||
|
|
85f5f7365b | ||
|
|
b514ab9547 | ||
|
|
bb82bc1d6e | ||
|
|
70f6bbf980 | ||
|
|
91c1aace9e | ||
|
|
a0256d7bba | ||
|
|
28366130d1 | ||
|
|
24d1dfd3e8 | ||
|
|
d2b5191ca7 | ||
|
|
a2b26cf426 | ||
|
|
71135979d8 | ||
|
|
a9780d51dc | ||
|
|
99bae5c1a3 | ||
|
|
d4c026be2f | ||
|
|
e4e6bf074e | ||
|
|
633301f365 | ||
|
|
fd4dfbf6ce | ||
|
|
5236543d3d | ||
|
|
d04ef3f4f4 | ||
|
|
cc24509cdd | ||
|
|
aa189aed40 | ||
|
|
b977ae03cf | ||
|
|
ceb62f91c1 | ||
|
|
c03b7389e9 | ||
|
|
0d82787073 | ||
|
|
75200911cf | ||
|
|
1a90afb018 | ||
|
|
1d1a7be644 | ||
|
|
1c95de7214 | ||
|
|
8aadb7b0f5 | ||
|
|
e99de1ba6a | ||
|
|
066e8e0034 | ||
|
|
951fa75e15 | ||
|
|
989c844f56 | ||
|
|
cd49d0733f | ||
|
|
25f86b0a31 | ||
|
|
f7f72e9f56 | ||
|
|
33a14dd378 | ||
|
|
00794ab032 | ||
|
|
c5039fa7c3 | ||
|
|
973d64a113 | ||
|
|
b8a66f2229 | ||
|
|
2acf75e7b1 | ||
|
|
5a12c7eaf4 | ||
|
|
19f4ff80ec | ||
|
|
24b53619b9 | ||
|
|
b7c7a43083 | ||
|
|
125ccb8962 | ||
|
|
a8f57a2a09 | ||
|
|
89ded9f2c1 | ||
|
|
2ddba7f54d | ||
|
|
fbe3b4b3e4 | ||
|
|
e5564dd81c | ||
|
|
9120427650 | ||
|
|
b67cb2d19e | ||
|
|
612da61223 | ||
|
|
ad8cc9e0a4 | ||
|
|
a206754575 | ||
|
|
6c96193f72 | ||
|
|
bc915ef5a1 | ||
|
|
6f3441d6db | ||
|
|
7414232bc6 | ||
|
|
224613c112 | ||
|
|
e03c184817 | ||
|
|
68910b759b | ||
|
|
543bb05d32 | ||
|
|
59440c7acb | ||
|
|
f6a7354f4f | ||
|
|
77fd1b1186 | ||
|
|
ed8e0b3df1 | ||
|
|
e5f56cb322 | ||
|
|
2cc4019779 | ||
|
|
f05e1ecf85 | ||
|
|
6737267d2d | ||
|
|
0fe585f731 | ||
|
|
2029be5fcc | ||
|
|
0326465a2d | ||
|
|
559be69a7d | ||
|
|
79df443023 | ||
|
|
11979bf8b0 | ||
|
|
7a445e8525 | ||
|
|
ab02b4175d | ||
|
|
ee8720ed09 | ||
|
|
0522380c13 | ||
|
|
75378e69c2 | ||
|
|
776bc7770e | ||
|
|
3a3247cfda | ||
|
|
6ebc2b48c7 | ||
|
|
a724dafe98 | ||
|
|
cc63eaa79a | ||
|
|
41cfb66736 | ||
|
|
e509d36fdc | ||
|
|
99eebad482 | ||
|
|
ef0cd8efc8 | ||
|
|
80d539b2df | ||
|
|
3ffd653d2d | ||
|
|
ccfadc4221 | ||
|
|
fbc4d4d738 | ||
|
|
2a928a7263 | ||
|
|
1946585c1b | ||
|
|
a63efe1fa9 | ||
|
|
f46bb3a03d | ||
|
|
57e21066ab | ||
|
|
409fc199e0 | ||
|
|
f7fefcde9c | ||
|
|
1d3acf411b | ||
|
|
1083b5ed3f | ||
|
|
77820b134c | ||
|
|
b450e6f265 | ||
|
|
cc50427ae3 | ||
|
|
7d49ea1eab | ||
|
|
cd31802fc7 | ||
|
|
d6d45efc39 | ||
|
|
a421c5c3cb | ||
|
|
9d877b46d9 | ||
|
|
30b1e84b37 | ||
|
|
31cb5e8a4a | ||
|
|
c353fc7c7c | ||
|
|
769082db9c | ||
|
|
6ec11bf0a8 | ||
|
|
30abf0242c | ||
|
|
333a97a829 | ||
|
|
c8bf252ff6 | ||
|
|
b5cda20163 | ||
|
|
435854934f | ||
|
|
05087fb663 | ||
|
|
afb7895433 | ||
|
|
93af574386 | ||
|
|
01f9ec08ab | ||
|
|
0269d33af2 | ||
|
|
e6de08c26d | ||
|
|
677aa3f90c | ||
|
|
809453e40a | ||
|
|
0a8db14315 | ||
|
|
b2cf7163fb | ||
|
|
b8811e587a | ||
|
|
9fb1b94f34 | ||
|
|
e7ca26ec9a | ||
|
|
71f113a8a1 | ||
|
|
cb29b09250 | ||
|
|
3757a561e5 | ||
|
|
ff0949ac02 | ||
|
|
73e47e81c2 | ||
|
|
1361de769c | ||
|
|
a687037a36 | ||
|
|
d935d69bc2 | ||
|
|
2cfccc28bf | ||
|
|
c21b14847b | ||
|
|
7c37b51e40 | ||
|
|
12d05841be | ||
|
|
d40952f519 | ||
|
|
413e4207f5 | ||
|
|
245692f531 | ||
|
|
7a40588606 | ||
|
|
b1d1d5beaf | ||
|
|
436cef62bf | ||
|
|
96545be6c1 | ||
|
|
b995fdc81a | ||
|
|
4da88f326a | ||
|
|
7eb1a55b8c | ||
|
|
c42c40df83 | ||
|
|
75cd67b18d | ||
|
|
35906ec920 | ||
|
|
db1650a9d6 | ||
|
|
275494af3f | ||
|
|
3110fac2c6 | ||
|
|
4b1665edd5 | ||
|
|
251c5d66dc | ||
|
|
1203361a74 | ||
|
|
270d766ed3 | ||
|
|
b8c616a074 | ||
|
|
61bc27d57e | ||
|
|
ce3c338cee | ||
|
|
ada43862ad | ||
|
|
de0ceebba6 | ||
|
|
159700b2df | ||
|
|
d89db93145 | ||
|
|
3e8b2e9b16 | ||
|
|
19010e9ce8 | ||
|
|
74dd879953 | ||
|
|
b63c763c09 | ||
|
|
a399b7cea0 | ||
|
|
de9e2b2f64 | ||
|
|
2c9fa536ab | ||
|
|
fe54e6c85a | ||
|
|
ce9ac86ef5 | ||
|
|
9454424a06 | ||
|
|
3405ed878f | ||
|
|
1ae8b563d6 | ||
|
|
6ade08b8d9 | ||
|
|
4110d233ac | ||
|
|
d2528b6f70 | ||
|
|
019f219ef8 | ||
|
|
c3d6a33966 | ||
|
|
1688ff4daa | ||
|
|
eb484b1950 | ||
|
|
0de7eece6d | ||
|
|
6d583f4ac3 | ||
|
|
d13134dd4a | ||
|
|
2892b45631 | ||
|
|
dfcbcad066 | ||
|
|
f97c68dbe2 | ||
|
|
199967f948 | ||
|
|
134d91fb06 | ||
|
|
450953f711 | ||
|
|
719a169a66 | ||
|
|
7421179be0 | ||
|
|
886eec5e66 | ||
|
|
1d782c6a35 | ||
|
|
8104e7f17c | ||
|
|
9aee5bd4e2 | ||
|
|
43a205c2d5 | ||
|
|
3847bf216d | ||
|
|
deb35c8f6f | ||
|
|
dd2fd782c1 | ||
|
|
965dfb7a09 | ||
|
|
93eca2df02 | ||
|
|
e070db97ed | ||
|
|
26457b7234 | ||
|
|
d68cf0f091 | ||
|
|
03cbeec5d0 | ||
|
|
8a71c873c4 | ||
|
|
77b86d27b3 | ||
|
|
d8ec02d27c | ||
|
|
883db7eaa0 | ||
|
|
f5f2da6a57 | ||
|
|
8f894dae9b | ||
|
|
fb64271f07 | ||
|
|
01e91ec61a | ||
|
|
40479f54f6 | ||
|
|
80eb8f5e1d | ||
|
|
c793ab9284 | ||
|
|
e9b0687547 | ||
|
|
6c53187366 | ||
|
|
be199c574a | ||
|
|
b99dd7d0ff | ||
|
|
aa5286e483 | ||
|
|
f0a65bf721 | ||
|
|
0f41a9cd75 | ||
|
|
737aa36ec9 | ||
|
|
82c3485ed6 | ||
|
|
269bf9a947 | ||
|
|
1ad9f2d482 | ||
|
|
a592711adb | ||
|
|
3603cc15cf | ||
|
|
747e725c8f | ||
|
|
ebb236bbc4 | ||
|
|
05cf6f8bec | ||
|
|
51d8a29d96 | ||
|
|
69d14dbcff | ||
|
|
e9970736ad | ||
|
|
263436eb45 | ||
|
|
9d53747be1 | ||
|
|
e1bce7ceb5 | ||
|
|
a113ae4cd2 | ||
|
|
b2c0572f3e | ||
|
|
501563d215 | ||
|
|
4325b0b00c | ||
|
|
09c1b8e6ca | ||
|
|
6757a12177 | ||
|
|
b90d7892e4 | ||
|
|
f1e53df76e | ||
|
|
6f9b44a7ae | ||
|
|
d2dee78bc7 | ||
|
|
af67aea49b | ||
|
|
1d3fc6254a | ||
|
|
479b235f28 | ||
|
|
c5c6958dee | ||
|
|
740a14c84b | ||
|
|
86a12cce8d | ||
|
|
3c6d4b13d5 | ||
|
|
caf4071cd9 | ||
|
|
9b1d960334 | ||
|
|
40ecedaf74 | ||
|
|
add9ca6ae8 | ||
|
|
b251fe56e4 | ||
|
|
4d1307c2ee | ||
|
|
4562baba31 | ||
|
|
a3aa69849d | ||
|
|
f06231eae0 | ||
|
|
cd4b4fb64d | ||
|
|
d952854591 | ||
|
|
c3ff8f1268 | ||
|
|
0f705361f3 | ||
|
|
9890c942da | ||
|
|
bbb2eda626 | ||
|
|
92b694a46c | ||
|
|
5f5032b4fd | ||
|
|
47b5ecf40b | ||
|
|
deb2213d1c | ||
|
|
553de2be46 | ||
|
|
c9459dfe44 | ||
|
|
c2dd0a67b6 | ||
|
|
278c63938d | ||
|
|
84ed87e322 | ||
|
|
0e442767f7 | ||
|
|
deaacba25e | ||
|
|
18050712d2 | ||
|
|
f131044643 | ||
|
|
c1c6fb721e | ||
|
|
330596eff2 | ||
|
|
9c08e8c4b2 | ||
|
|
c05972396f | ||
|
|
d631e1f8b4 | ||
|
|
05aa9fc425 | ||
|
|
db724a3c6c | ||
|
|
053d76507c | ||
|
|
28f0d9ecec | ||
|
|
249bc9fdb0 | ||
|
|
11064c631f | ||
|
|
3d834e763e | ||
|
|
4eedfb0273 | ||
|
|
b30e598998 | ||
|
|
1978c17e6c | ||
|
|
37ca1f07a0 | ||
|
|
64c3f8f5c2 | ||
|
|
68585a70ab | ||
|
|
fd23720b4e | ||
|
|
05282c95bd | ||
|
|
8e978cfd0f | ||
|
|
e7ab0fc41a | ||
|
|
d488883946 | ||
|
|
c876256d2a | ||
|
|
69a2308528 | ||
|
|
3b87d395bb | ||
|
|
1527e2e863 | ||
|
|
d52981637b | ||
|
|
9771ab3933 | ||
|
|
20d3f8ee9c | ||
|
|
7c524bf46c | ||
|
|
db7d8dc728 | ||
|
|
58e8c9f0e7 | ||
|
|
6b5802488a | ||
|
|
6a2f6d1534 | ||
|
|
366b95fdc2 | ||
|
|
16e074fe18 | ||
|
|
de8dd265f3 | ||
|
|
ebefa51911 | ||
|
|
92e7e029ff | ||
|
|
8c06519996 | ||
|
|
97f3a860b7 | ||
|
|
666b0c58f0 | ||
|
|
7ab69085a3 | ||
|
|
58e838e653 | ||
|
|
7cccce31d1 | ||
|
|
2a3f38a876 | ||
|
|
fdb398a22f | ||
|
|
1f5d243efd | ||
|
|
33eb9ec6b1 | ||
|
|
5761ba3af1 | ||
|
|
61d0bdf715 | ||
|
|
46198a9807 | ||
|
|
7cd2d4c673 | ||
|
|
5eb9a7d27a | ||
|
|
e54c16d64e | ||
|
|
27debb67e9 | ||
|
|
45bc7b5607 | ||
|
|
4c753794df | ||
|
|
bdbcbe17e9 | ||
|
|
8b0d552eff | ||
|
|
883719b1bb | ||
|
|
943e8ca6ff | ||
|
|
9f334be58e | ||
|
|
e8b500b15a | ||
|
|
23d2948707 | ||
|
|
ce792e8e51 | ||
|
|
37a9fb6729 | ||
|
|
0c51b4da33 | ||
|
|
6902ed23b3 | ||
|
|
75fccffa5c | ||
|
|
e5c28eeca0 | ||
|
|
fa002b6003 | ||
|
|
1cc8e1cf46 | ||
|
|
f4c3651f8f | ||
|
|
ae4fe7dbe8 | ||
|
|
446aefea8f | ||
|
|
e0c92d8787 | ||
|
|
eb981d494a | ||
|
|
242da9ba77 | ||
|
|
f515b8f80b | ||
|
|
437d7b0a77 | ||
|
|
ce8ee94dc9 | ||
|
|
d4471e4e91 | ||
|
|
34f6447cb8 | ||
|
|
37dc58a1ec | ||
|
|
45e5189cfa | ||
|
|
509ec9d0ad | ||
|
|
23e2a67153 | ||
|
|
88711b2b50 | ||
|
|
edf3da646f | ||
|
|
a3887f6583 | ||
|
|
bd045487a1 | ||
|
|
d8eec5b208 | ||
|
|
a81ba7db02 | ||
|
|
f19f55fe61 | ||
|
|
e7c26fd347 | ||
|
|
05ddee8c50 | ||
|
|
23d4dfd3cb | ||
|
|
404ae31214 | ||
|
|
1366108eea | ||
|
|
d23c6efb3c | ||
|
|
5542b6c458 | ||
|
|
58f12882bd | ||
|
|
87085bc28d | ||
|
|
9fadcbca38 | ||
|
|
06e6962867 | ||
|
|
6fa071c21d | ||
|
|
a9c8f09461 | ||
|
|
34e82dd08d | ||
|
|
e40fc37648 | ||
|
|
95afc10b58 | ||
|
|
54803c23a1 | ||
|
|
753a0650d4 | ||
|
|
2ca58d2953 | ||
|
|
acfe3395b2 | ||
|
|
8ba056a643 | ||
|
|
c3591787aa | ||
|
|
d5024989e2 | ||
|
|
23369da077 | ||
|
|
2fc6fc2c94 | ||
|
|
b84f129d8b | ||
|
|
8c8b4885a6 | ||
|
|
17e992e6a4 | ||
|
|
607bc8f544 | ||
|
|
369c4fc35e | ||
|
|
a9365a1fa6 | ||
|
|
097516fa5d | ||
|
|
74306d6d4f | ||
|
|
21dfe881af | ||
|
|
d8f794d9f7 | ||
|
|
14733b1430 | ||
|
|
7a13b937c9 | ||
|
|
644e2f6f8f | ||
|
|
02400176ec | ||
|
|
883429ffb1 | ||
|
|
beddc7c828 | ||
|
|
5cdb64d96c | ||
|
|
81c3c5640d | ||
|
|
59bb50a26d | ||
|
|
6936700515 | ||
|
|
bab3668c22 | ||
|
|
fffbfc5d9d | ||
|
|
774b820302 | ||
|
|
af89771086 | ||
|
|
6bd8bb82ea | ||
|
|
077b43a1f4 | ||
|
|
785cd4a44e | ||
|
|
dad2fdd7a4 | ||
|
|
38ed0ed408 | ||
|
|
7416357248 | ||
|
|
674abf9639 | ||
|
|
76d1aaff6d | ||
|
|
13c4dd4b21 | ||
|
|
375db8107a | ||
|
|
decd22cd46 | ||
|
|
0302bbf4b7 | ||
|
|
e5fe9b8b32 | ||
|
|
051871f077 | ||
|
|
8bd5a390cc | ||
|
|
da0cfd4dbb | ||
|
|
809611503a | ||
|
|
7ceb7cead6 | ||
|
|
54ddca80df | ||
|
|
0a20d9904e | ||
|
|
984db71aca | ||
|
|
cd46dcc5ee | ||
|
|
a3677518b6 | ||
|
|
439555b2d3 | ||
|
|
727907c7ed | ||
|
|
b63b687245 | ||
|
|
9f3c79d446 | ||
|
|
cada49478f | ||
|
|
df37355d6f | ||
|
|
af157c4da4 | ||
|
|
2a24f1cadf | ||
|
|
cf579ecafa | ||
|
|
d9534908e3 | ||
|
|
16455719d0 | ||
|
|
327d633cee | ||
|
|
8a071b2a07 | ||
|
|
f552bdc79d | ||
|
|
a33e708b2b | ||
|
|
08d45ed839 | ||
|
|
ef2a7e8ce1 | ||
|
|
76dce545a7 | ||
|
|
ec30b7c3b2 | ||
|
|
30ede2d7c8 | ||
|
|
37de7332e2 | ||
|
|
c87d6a9e8a | ||
|
|
da00534847 | ||
|
|
ac1e9e537c | ||
|
|
f62694525b | ||
|
|
8857aa0e7b | ||
|
|
8e6c7dd0eb | ||
|
|
d39b138faf | ||
|
|
2036426d47 | ||
|
|
719746c95d | ||
|
|
494092369c | ||
|
|
cb678fb86d | ||
|
|
0ed041b089 | ||
|
|
419f704429 | ||
|
|
97261abe25 | ||
|
|
5847e3685f | ||
|
|
11fa16a488 | ||
|
|
e5c69bb322 | ||
|
|
b9f51e4f4b | ||
|
|
255758bb1c | ||
|
|
559c913fca | ||
|
|
c9b5aa638a | ||
|
|
206df466fd | ||
|
|
1fae5d65d2 | ||
|
|
24ea6ce17c | ||
|
|
9d1547a150 | ||
|
|
7d2b074620 | ||
|
|
18ae9d07f7 |
@@ -15,3 +15,8 @@
|
||||
# incorrect format of 3rdparty/resource/Arknights-Tile-Pos/levels.json
|
||||
65d654e54b9d04d1902c9ee9f9fb2679520adafd
|
||||
81ea2c4d4fce29862f719972ecb32877fc4e654f
|
||||
|
||||
# refactor: 为 MaaCore 重新建立文件结构
|
||||
206df466fd5e3d8ef80387049b0c5011fb58cada
|
||||
c9b5aa638a97397ab8666031ea646904527afc09
|
||||
559c913fca0dd0966896396e251be13f76ea3e52
|
||||
|
||||
2
.github/ISSUE_TEMPLATE/cn-bug-report.yaml
vendored
@@ -1,4 +1,4 @@
|
||||
name: 问题反馈(使用中文)
|
||||
name: Bug 反馈(使用中文)
|
||||
description: 识别错误、操作异常、连接错误等
|
||||
labels: ['bug']
|
||||
body:
|
||||
|
||||
2
.github/ISSUE_TEMPLATE/cn-others.yaml
vendored
@@ -1,5 +1,5 @@
|
||||
name: 其他议题(使用中文)
|
||||
description: 提出问题,而不是问题反馈或需求建议
|
||||
description: 提出问题,而不是 bug 反馈或需求建议
|
||||
labels: ['question']
|
||||
body:
|
||||
- type: textarea
|
||||
|
||||
141
.github/issue-checker.yml
vendored
@@ -132,6 +132,12 @@ labels:
|
||||
- name: remove client-ZH_TW
|
||||
content:
|
||||
regexes: '[Rr]emove (?:[Ll]abels? |)(?:`|)Client: ZH_TW(?:`|)'
|
||||
- name: skip macOS
|
||||
content:
|
||||
regexes: '[Ss]kip (?:[Ll]abels? |)(?:`|)macOS(?:`|)'
|
||||
- name: remove macOS
|
||||
content:
|
||||
regexes: '[Rr]emove (?:[Ll]abels? |)(?:`|)macOS(?:`|)'
|
||||
- name: skip incomplete
|
||||
content:
|
||||
regexes: '[Ss]kip (?:[Ll]abels? |)(?:`|)incomplete(?:`|)'
|
||||
@@ -150,7 +156,7 @@ labels:
|
||||
- name: infrast
|
||||
content: "module: infrast"
|
||||
regexes:
|
||||
"(?:基建|换班|贸易站|制造站|发电站|加工站|会客室|训练室|办公室|控制中枢|宿舍|基地|[Ii]nfrast|[Dd]orm)"
|
||||
"基建|换班|贸易站|制造站|发电站|加工站|会客室|训练室|办公室|控制中枢|宿舍|基地|[Ii]nfrast|[Dd]orm"
|
||||
skip-if:
|
||||
- skip all
|
||||
- skip module
|
||||
@@ -160,38 +166,11 @@ labels:
|
||||
- remove module
|
||||
- remove infrast
|
||||
|
||||
# `module: copilot`
|
||||
- name: copilot1
|
||||
content: "module: copilot"
|
||||
regexes: '(?:自动(?:作战|战斗|编队)|自動[戰戦][鬥闘]|[Cc]opilot)'
|
||||
mode: add
|
||||
skip-if:
|
||||
- skip all
|
||||
- skip module
|
||||
- skip copilot
|
||||
remove-if:
|
||||
- remove all
|
||||
- remove module
|
||||
- remove copilot
|
||||
- name: copilot2
|
||||
content: "module: copilot"
|
||||
regexes: '(?:作[业業])'
|
||||
skip-if:
|
||||
- skip all
|
||||
- skip module
|
||||
- skip copilot
|
||||
- copilot1
|
||||
- infrast
|
||||
remove-if:
|
||||
- remove all
|
||||
- remove module
|
||||
- remove copilot
|
||||
|
||||
# `module: roguelike`
|
||||
- name: roguelike
|
||||
content: "module: roguelike"
|
||||
regexes:
|
||||
"(?:肉[鸽鴿]|集成战略|[Rr]ogue|ローグ)"
|
||||
"肉[鸽鴿]|集成战略|[Rr]ogue|ローグ"
|
||||
skip-if:
|
||||
- skip all
|
||||
- skip module
|
||||
@@ -201,11 +180,40 @@ labels:
|
||||
- remove module
|
||||
- remove roguelike
|
||||
|
||||
# `module: copilot`
|
||||
- name: copilot1
|
||||
content: "module: copilot"
|
||||
regexes: '自动(?:作战|战斗|编队)|自動[戰戦][鬥闘]|[Cc]opilot'
|
||||
mode: add
|
||||
skip-if:
|
||||
- skip all
|
||||
- skip module
|
||||
- skip copilot
|
||||
- roguelike
|
||||
remove-if:
|
||||
- remove all
|
||||
- remove module
|
||||
- remove copilot
|
||||
- name: copilot2
|
||||
content: "module: copilot"
|
||||
regexes: '作[业業]'
|
||||
skip-if:
|
||||
- skip all
|
||||
- skip module
|
||||
- skip copilot
|
||||
- copilot1
|
||||
- infrast
|
||||
- roguelike
|
||||
remove-if:
|
||||
- remove all
|
||||
- remove module
|
||||
- remove copilot
|
||||
|
||||
# `module: drop`
|
||||
- name: drop
|
||||
content: "module: drop"
|
||||
regexes:
|
||||
"(?:掉落物?识别)"
|
||||
"掉落物?(?:识别|检测)"
|
||||
skip-if:
|
||||
- skip all
|
||||
- skip module
|
||||
@@ -219,7 +227,7 @@ labels:
|
||||
- name: fight
|
||||
content: "module: fight"
|
||||
regexes:
|
||||
"(?:刷图|刷理智|剿灭|刷.{0,6}材料|关卡选择|战斗|作战|[戰戦][鬥闘]|[Ff]ight|[Bb]attle|[Aa]nihilation)"
|
||||
"刷图|刷理智|剿灭|刷.{0,6}材料|关卡选择|战斗|作战|[戰戦][鬥闘]|[Ff]ight|[Bb]attle|[Aa]nihilation"
|
||||
skip-if:
|
||||
- skip all
|
||||
- skip module
|
||||
@@ -237,7 +245,7 @@ labels:
|
||||
- name: depot
|
||||
content: "module: depot"
|
||||
regexes:
|
||||
"(?:仓库识别|仓库检测|仓检|[Dd]epot)"
|
||||
"仓库识别|仓库检测|仓检|[Dd]epot"
|
||||
skip-if:
|
||||
- skip all
|
||||
- skip module
|
||||
@@ -251,7 +259,7 @@ labels:
|
||||
- name: others
|
||||
content: "module: others"
|
||||
regexes:
|
||||
"(?:信用|拜访|登录|开始唤醒|[Vv]isit|[Ll]ogin|[Ss]tartup)"
|
||||
"信用|拜访|登录|开始唤醒|连接模拟器|[Vv]isit|[Ll]ogin|[Ss]tartup"
|
||||
skip-if:
|
||||
- skip all
|
||||
- skip module
|
||||
@@ -265,7 +273,7 @@ labels:
|
||||
- name: recruit
|
||||
content: "module: recruit"
|
||||
regexes:
|
||||
"(?:公招|招募|公開(?:募集|求人)|[Rr]ecruit)"
|
||||
"公招|(?<!肉鸽)招募|公開(?:募集|求人)|[Rr]ecruit"
|
||||
skip-if:
|
||||
- skip all
|
||||
- skip module
|
||||
@@ -280,7 +288,7 @@ labels:
|
||||
- name: GUI
|
||||
content: "module: GUI"
|
||||
regexes:
|
||||
"(?:软件更新|自动下载|图形化?界面|[Gg]ui|GUI)"
|
||||
'软件更新|自动下载|图形化?界面|gui(?!\.)|GUI|Gui'
|
||||
skip-if:
|
||||
- skip all
|
||||
- skip module
|
||||
@@ -291,6 +299,18 @@ labels:
|
||||
- remove GUI
|
||||
|
||||
# `ambiguous`
|
||||
- name: pr-ambiguous
|
||||
# 不符合 commitizen 的 PR
|
||||
content: ambiguous
|
||||
regexes: '^(?!(?:build|chore|ci|docs?|feat|fix|perf|refactor|rft|style|test)[\:\.\(\,]|[Mm]erge|[Rr]evert|[Rr]elease)'
|
||||
mode:
|
||||
pull_request_target:
|
||||
skip-if:
|
||||
- skip all
|
||||
- skip ambiguous
|
||||
remove-if:
|
||||
- remove all
|
||||
- remove ambiguous
|
||||
- name: ambiguous
|
||||
# 不符合上面任何一个的分类的 issue
|
||||
content: ambiguous
|
||||
@@ -298,6 +318,7 @@ labels:
|
||||
issues:
|
||||
issue_comment: remove
|
||||
skip-if:
|
||||
- pr-ambiguous
|
||||
- skip all
|
||||
- skip ambiguous
|
||||
remove-if:
|
||||
@@ -314,18 +335,6 @@ labels:
|
||||
- others
|
||||
- recruit
|
||||
- roguelike
|
||||
- name: pr-ambiguous
|
||||
# 不符合 commitizen 的 PR
|
||||
content: ambiguous
|
||||
regexes: '^(?!(?:build|chore|ci|docs?|feat|fix|perf|refactor|rft|style|test)[\:\.\(\,]|[Mm]erge|[Rr]evert|[Rr]elease)'
|
||||
mode:
|
||||
pull_request_target:
|
||||
skip-if:
|
||||
- skip all
|
||||
- skip ambiguous
|
||||
remove-if:
|
||||
- remove all
|
||||
- remove ambiguous
|
||||
|
||||
# `release`
|
||||
- name: release
|
||||
@@ -417,27 +426,37 @@ labels:
|
||||
- remove client
|
||||
- remove client-ZH_TW
|
||||
|
||||
# `macOS`
|
||||
- name: macOS
|
||||
regexes: '[Mm]ac(?:(?:book|os|OS)|\s*(?:(?:操作|)系统|电脑|版))'
|
||||
skip-if:
|
||||
- skip all
|
||||
- skip macOS
|
||||
remove-if:
|
||||
- remove all
|
||||
- remove macOS
|
||||
|
||||
# `fixed`
|
||||
- name: fixed
|
||||
regexes:
|
||||
- "(?:(?:`v\\d+\\.\\d+\\.\\d+(?:-(?:alpha|beta)\\.\\d+|\\.\\d+|)`|\
|
||||
v\\d+\\.\\d+\\.\\d+(?:-(?:alpha|beta)\\.\\d+|\\.\\d+|)\\s+)|\
|
||||
\\[(?:`v\\d+\\.\\d+\\.\\d+(?:-(?:alpha|beta)\\.\\d+|\\.\\d+|)`|\
|
||||
v\\d+\\.\\d+\\.\\d+(?:-(?:alpha|beta)\\.\\d+|\\.\\d+|))\\]\\(\\S*\\)|\
|
||||
(?:https?\\://[^/\\s]+/[^/\\s]+/[^/\\s]+/commit/|)[0-9a-z]{40,40})\
|
||||
- "(?:(?:`v\\d+\\.\\d+\\.\\d+(?:-(?:alpha|beta|rc)\\.\\d+|\\.\\d+|)`|\
|
||||
v\\d+\\.\\d+\\.\\d+(?:-(?:alpha|beta|rc)\\.\\d+|\\.\\d+|)\\s+)|\
|
||||
\\[(?:`v\\d+\\.\\d+\\.\\d+(?:-(?:alpha|beta|rc)\\.\\d+|\\.\\d+|)`|\
|
||||
v\\d+\\.\\d+\\.\\d+(?:-(?:alpha|beta|rc)\\.\\d+|\\.\\d+|))\\]\\(\\S*\\)|\
|
||||
(?:https?\\://(?:[^/\\s]+/){3}commit/|)[0-9a-z]{40})\
|
||||
\\s*fixed|[Ff]ixed (?:in|at|by)\\s*\
|
||||
(?:(?:`v\\d+\\.\\d+\\.\\d+(?:-(?:alpha|beta)\\.\\d+|\\.\\d+|)`|\\s+\
|
||||
v\\d+\\.\\d+\\.\\d+(?:-(?:alpha|beta)\\.\\d+|\\.\\d+|))|\
|
||||
\\[(?:`v\\d+\\.\\d+\\.\\d+(?:-(?:alpha|beta)\\.\\d+|\\.\\d+|)`|\
|
||||
v\\d+\\.\\d+\\.\\d+(?:-(?:alpha|beta)\\.\\d+|\\.\\d+|))\\]\\(\\S*\\)|\
|
||||
(?:https?\\://[^/\\s]+/[^/\\s]+/[^/\\s]+/commit/|)[0-9a-z]{40,40})"
|
||||
(?:(?:`v\\d+\\.\\d+\\.\\d+(?:-(?:alpha|beta|rc)\\.\\d+|\\.\\d+|)`|\\s+\
|
||||
v\\d+\\.\\d+\\.\\d+(?:-(?:alpha|beta|rc)\\.\\d+|\\.\\d+|))|\
|
||||
\\[(?:`v\\d+\\.\\d+\\.\\d+(?:-(?:alpha|beta|rc)\\.\\d+|\\.\\d+|)`|\
|
||||
v\\d+\\.\\d+\\.\\d+(?:-(?:alpha|beta|rc)\\.\\d+|\\.\\d+|))\\]\\(\\S*\\)|\
|
||||
(?:https?\\://(?:[^/\\s]+/){3}commit/|)[0-9a-z]{40})"
|
||||
mode:
|
||||
issue_comment: add
|
||||
|
||||
# `duplicate`
|
||||
- name: duplicate
|
||||
regexes:
|
||||
"[Dd]uplicate of\\s*\\[?`?#\\d+"
|
||||
"[Dd]uplicate of\\s*\\[?`?(?:https?\\://(?:[^/\\s]+/){3}issues/|#)\\d+"
|
||||
mode:
|
||||
issue_comment: add
|
||||
|
||||
@@ -452,8 +471,7 @@ labels:
|
||||
- name: incomplete
|
||||
content: incomplete
|
||||
regexes: '(?:\[Uploading asst(?:.bak|)(?: - 副本|)(?:.log|)(?:.zip|)…\]\(\))'
|
||||
mode:
|
||||
add: [issues, issue_comment]
|
||||
mode: add
|
||||
skip-if:
|
||||
- skip all
|
||||
- skip incomplete
|
||||
@@ -465,8 +483,7 @@ labels:
|
||||
regexes: '(?:\[asst(?:.bak|)(?: - 副本|)(?:.log|)(?:.zip|)\]\([^\)]+\))'
|
||||
- name: remove incomplete
|
||||
content: incomplete
|
||||
mode:
|
||||
remove: [issues, issue_comment]
|
||||
mode: remove
|
||||
skip-if:
|
||||
- skip all
|
||||
- skip incomplete
|
||||
|
||||
56
.github/workflows/dev-build-mac.yml
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
name: dev-build-mac
|
||||
|
||||
on:
|
||||
push:
|
||||
branches-ignore:
|
||||
- master
|
||||
paths:
|
||||
- 'src/MeoAssistant/**'
|
||||
- 'src/MeoAsstGui/**'
|
||||
- 'src/MeoAsstMac/**'
|
||||
- '3rdparty/**'
|
||||
- 'include/**'
|
||||
- 'resource/**'
|
||||
- CMakeLists.txt
|
||||
pull_request:
|
||||
branches:
|
||||
- dev
|
||||
paths:
|
||||
- 'src/MeoAssistant/**'
|
||||
- 'src/MeoAsstGui/**'
|
||||
- 'src/MeoAsstMac/**'
|
||||
- '3rdparty/**'
|
||||
- 'include/**'
|
||||
- 'resource/**'
|
||||
- CMakeLists.txt
|
||||
|
||||
jobs:
|
||||
macos-latest:
|
||||
runs-on: macos-12
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: recursive
|
||||
fetch-depth: 100
|
||||
- name: Cache Homebrew
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: $(brew --prefix)
|
||||
key: ${{ runner.os }}-homebrew-${{ hashFiles('.config/brew/Brewfile') }}
|
||||
- name: Install Dependencies
|
||||
run: |
|
||||
brew update --preinstall
|
||||
brew install ninja range-v3
|
||||
- name: Configure MeoAssistant
|
||||
run: |
|
||||
mkdir build && cd build
|
||||
cmake .. -GNinja -DBUILD_XCFRAMEWORK=ON -DBUILD_UNIVERSAL=ON
|
||||
- name: Build libMeoAssistant
|
||||
run: cmake --build build
|
||||
- name: Build MeoAsstMac
|
||||
working-directory: src/MeoAsstMac
|
||||
run: xcodebuild ARCHS="arm64 x86_64" CODE_SIGN_IDENTITY="-" DEVELOPMENT_TEAM="-" ONLY_ACTIVE_ARCH=NO -derivedDataPath DerivedData -project MeoAsstMac.xcodeproj -scheme MeoAsstMac
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: MAA-macos
|
||||
path: src/MeoAsstMac/DerivedData/Build/Products/Debug
|
||||
@@ -9,12 +9,12 @@
|
||||
#
|
||||
# - To trigger manual generation invoke:
|
||||
#
|
||||
# nuke --generate-configuration GitHubActions_dev-build --host GitHubActions
|
||||
# nuke --generate-configuration GitHubActions_dev-build-win --host GitHubActions
|
||||
#
|
||||
# </auto-generated>
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
name: dev-build
|
||||
name: dev-build-win
|
||||
|
||||
on:
|
||||
push:
|
||||
@@ -55,9 +55,9 @@ jobs:
|
||||
name: windows-latest
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
- name: Cache .nuke/temp, ~/.nuget/packages
|
||||
uses: actions/cache@v2
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
.nuke/temp
|
||||
@@ -69,7 +69,7 @@ jobs:
|
||||
Reason: ${{ github.event.inputs.Reason }}
|
||||
ReleaseSimulation: ${{ github.event.inputs.ReleaseSimulation }}
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- uses: actions/upload-artifact@v1
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: artifacts
|
||||
name: MAA-win-x64
|
||||
path: artifacts
|
||||
90
.github/workflows/release-maa-mac.yml
vendored
Normal file
@@ -0,0 +1,90 @@
|
||||
name: release-maa-mac
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
jobs:
|
||||
macos-latest:
|
||||
name: macos-latest
|
||||
runs-on: macos-12
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: 'Install Developer ID Certificate'
|
||||
uses: apple-actions/import-codesign-certs@v1
|
||||
with:
|
||||
p12-file-base64: ${{ secrets.HGUANDL_SIGN_CERT_P12 }}
|
||||
p12-password: ${{ secrets.HGUANDL_SIGN_CERT_PASSWD }}
|
||||
- name: Cache Homebrew
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: $(brew --prefix)
|
||||
key: ${{ runner.os }}-homebrew-${{ hashFiles('.config/brew/Brewfile') }}
|
||||
- name: Install Dependencies
|
||||
run: |
|
||||
brew update --preinstall
|
||||
brew install ninja range-v3 create-dmg
|
||||
- name: Configure MeoAssistant
|
||||
run: |
|
||||
mkdir build && cd build
|
||||
cmake .. -GNinja -DCMAKE_BUILD_TYPE=Release -DBUILD_XCFRAMEWORK=ON -DBUILD_UNIVERSAL=ON
|
||||
- name: Build libMeoAssistant
|
||||
run: cmake --build build
|
||||
- name: Build MeoAsstMac
|
||||
working-directory: src/MeoAsstMac
|
||||
run: xcodebuild -project MeoAsstMac.xcodeproj -scheme MeoAsstMac archive -archivePath MeoAsstMac.xcarchive -configuration Release
|
||||
- name: Export MeoAsstMac
|
||||
working-directory: src/MeoAsstMac
|
||||
run: xcodebuild -exportArchive -archivePath MeoAsstMac.xcarchive -exportOptionsPlist ExportOptions.plist -exportPath Export
|
||||
- name: Create disk image
|
||||
working-directory: src/MeoAsstMac
|
||||
run: create-dmg --background dmg-bkg.png --window-size 500 300 --icon-size 128 --icon MeoAsstMac.app 0 120 --hide-extension MeoAsstMac.app --app-drop-link 270 120 MeoAsstMac.dmg Export/MeoAsstMac.app
|
||||
- name: Archive debug symbols
|
||||
working-directory: src/MeoAsstMac/MeoAsstMac.xcarchive/dSYMs
|
||||
run: ditto -c -k --keepParent MeoAsstMac.app.dSYM MeoAsstMac.app.dSYM.zip
|
||||
- name: Upload products
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: MAA-macos
|
||||
path: |
|
||||
src/MeoAsstMac/MeoAsstMac.dmg
|
||||
src/MeoAsstMac/MeoAsstMac.xcarchive/dSYMs/MeoAsstMac.app.dSYM.zip
|
||||
|
||||
macos-release:
|
||||
name: macos-release
|
||||
runs-on: macos-12
|
||||
needs: [macos-latest]
|
||||
steps:
|
||||
- name: 'Setup tag information'
|
||||
run: |
|
||||
GIT_TAG=${GITHUB_REF#refs/*/}
|
||||
echo "GIT_TAG=${GIT_TAG}" >> $GITHUB_ENV
|
||||
echo "APP_DMG=MAA-${GIT_TAG}-macos.dmg" >> $GITHUB_ENV
|
||||
echo "APP_SYM=MAAComponent-DebugSymbol-${GIT_TAG}-macos.zip" >> $GITHUB_ENV
|
||||
- name: Download artifacts
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: MAA-macos
|
||||
- name: 'Verify image'
|
||||
run: |
|
||||
mv MeoAsstMac.dmg $APP_DMG
|
||||
mv MeoAsstMac.xcarchive/dSYMs/MeoAsstMac.app.dSYM.zip $APP_SYM
|
||||
hdiutil verify $APP_DMG
|
||||
- name: 'Notarize image'
|
||||
env:
|
||||
NOTARY_USER: ${{ secrets.HGUANDL_NOTARY_AAPL_ID }}
|
||||
NOTARY_PASSWD: ${{ secrets.HGUANDL_NOTARY_PASSWD }}
|
||||
NOTARY_TEAM: ${{ secrets.HGUANDL_SIGN_IDENTITY }}
|
||||
run: |
|
||||
xcrun notarytool submit --apple-id "$NOTARY_USER" --password "$NOTARY_PASSWD" --team-id "$NOTARY_TEAM" --wait $APP_DMG
|
||||
xcrun stapler staple $APP_DMG
|
||||
- name: Upload image to release
|
||||
uses: svenstaro/upload-release-action@v2
|
||||
with:
|
||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: 'MAA*${{ env.GIT_TAG }}-macos*'
|
||||
file_glob: true
|
||||
tag: ${{ env.GIT_TAG }}
|
||||
overwrite: true
|
||||
@@ -9,12 +9,12 @@
|
||||
#
|
||||
# - To trigger manual generation invoke:
|
||||
#
|
||||
# nuke --generate-configuration GitHubActions_release-maa --host GitHubActions
|
||||
# nuke --generate-configuration GitHubActions_release-maa-win --host GitHubActions
|
||||
#
|
||||
# </auto-generated>
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
name: release-maa
|
||||
name: release-maa-win
|
||||
|
||||
on:
|
||||
push:
|
||||
@@ -26,9 +26,9 @@ jobs:
|
||||
name: windows-latest
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
- name: Cache .nuke/temp, ~/.nuget/packages
|
||||
uses: actions/cache@v2
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
.nuke/temp
|
||||
@@ -39,7 +39,7 @@ jobs:
|
||||
env:
|
||||
PUBLISH_GH_PAT: ${{ secrets.PUBLISH_GH_PAT }}
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- uses: actions/upload-artifact@v1
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: artifacts
|
||||
name: MAA-win-x64
|
||||
path: artifacts
|
||||
157
.github/workflows/release-nightly-ota.yml
vendored
Normal file
@@ -0,0 +1,157 @@
|
||||
name: release-nightly-ota
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
ref:
|
||||
description: 'Commit to build (git checkout)'
|
||||
type: string
|
||||
required: true
|
||||
limit:
|
||||
description: 'Number of releases to fetch from MaaAssistantArknights'
|
||||
required: false
|
||||
default: 30
|
||||
type: number
|
||||
limit_2:
|
||||
description: 'Number of releases to fetch from MaaRelease'
|
||||
required: false
|
||||
default: 30
|
||||
tag_name:
|
||||
description: 'Tag name to release'
|
||||
required: false
|
||||
|
||||
jobs:
|
||||
build-win-nightly:
|
||||
runs-on: windows-latest
|
||||
outputs:
|
||||
tag: ${{ steps.set_tag.outputs.tag }}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
# repository: 'MaaAssistantArknights/MaaAssistantArknights'
|
||||
submodules: recursive
|
||||
#ref: ${{ inputs.ref }}
|
||||
fetch-depth: 0
|
||||
- name: Checkout ref
|
||||
run: |
|
||||
git checkout --progress --recurse-submodules ${{ inputs.ref || 'dev' }}
|
||||
- run: |
|
||||
npm install --global --progress semver
|
||||
- name: Set tag
|
||||
id: set_tag
|
||||
run: |
|
||||
if ("${{ inputs.tag_name }}" -ne "") {
|
||||
echo "tag=${{ inputs.tag_name }}" >> $env:GITHUB_OUTPUT
|
||||
exit 0
|
||||
}
|
||||
$described = $(git describe --tags --long --match 'v*')
|
||||
$ids = $($described -split "-")
|
||||
if ($ids.length -eq 3) {
|
||||
$ver = "v$(semver --increment $ids[0].Substring(1))"
|
||||
echo "tag=$ver-alpha.0.$($ids[1]).$($ids[2])" >> $env:GITHUB_OUTPUT
|
||||
exit 0
|
||||
}
|
||||
if ($ids.length -eq 4) {
|
||||
echo "tag=$($ids[0])-$($ids[1]).$($ids[2]).$($ids[3])" >> $env:GITHUB_OUTPUT
|
||||
exit 0
|
||||
}
|
||||
exit 1
|
||||
- name: Cache .nuke/temp, ~/.nuget/packages
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
.nuke/temp
|
||||
~/.nuget/packages
|
||||
key: ${{ runner.os }}-${{ hashFiles('**/global.json', '**/*.csproj') }}
|
||||
- name: Run './build.cmd DevBuild'
|
||||
run: |
|
||||
$env:GITHUB_WORKFLOW = 'dev-build-win' # pretend this is a dev-build-win workflow
|
||||
$env:MAA_BUILDER_MAA_VERSION = "${{steps.set_tag.outputs.tag}}"
|
||||
echo "tag: " $env:MAA_BUILDER_MAA_VERSION
|
||||
./build.cmd DevBuild
|
||||
env:
|
||||
Reason: 'Build nightly version'
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: MAA-win-x64
|
||||
path: artifacts
|
||||
|
||||
make-ota:
|
||||
needs: build-win-nightly
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- run: echo ${{ needs.build-win-nightyl.outputs.tag }}
|
||||
- name: "Fetch MaaRelease"
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: ${{ format('{0}/{1}', github.repository_owner, 'MaaRelease') }}
|
||||
path: MaaRelease
|
||||
fetch-depth: 0
|
||||
token: ${{ secrets.MAARELEASE_RELEASE }}
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
path: MaaAssistantArknights
|
||||
- uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: MAA-win-x64
|
||||
path: ${{ format('{0}/{1}', 'build-ota', needs.build-win-nightly.outputs.tag) }}
|
||||
- name: "Fetch release info"
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
mkdir -pv build-ota && cd build-ota
|
||||
cd ${{ needs.build-win-nightly.outputs.tag }}
|
||||
mkdir -pv content
|
||||
unzip -q *.zip -x '*.lib' -x '*.pdb' -x '*.config' -x '*.xml' -d content
|
||||
cd ..
|
||||
|
||||
gh release list --repo 'MaaAssistantArknights/MaaAssistantArknights' --limit ${{ inputs.limit || 30 }} | tee ./release_maa.txt
|
||||
gh release list --repo "${{ github.repository_owner }}/MaaRelease" --limit ${{ inputs.limit_2 || 30 }} | tee ./release_mr.txt
|
||||
echo ${{ needs.build-win-nightly.outputs.tag }} > ./config
|
||||
|
||||
cat ./release_maa.txt | awk '{ print $1 }' > ./tags_maa.txt
|
||||
cat ./release_mr.txt | awk '{ print $1 }' > ./tags_mr.txt
|
||||
|
||||
comm <(sort ./tags_maa.txt) <(sort ./tags_mr.txt) | awk '{ print $1 }' >> ./config
|
||||
|
||||
echo "config:"
|
||||
cat ./config
|
||||
|
||||
echo "release_tag=$(head -n 1 ./config)" >> $GITHUB_ENV
|
||||
- name: "Build OTA"
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
cd build-ota
|
||||
$GITHUB_WORKSPACE/MaaAssistantArknights/tools/OTAPacker/build.sh 'MaaAssistantArknights/MaaAssistantArknights' ./config "${{ github.repository_owner }}/MaaRelease"
|
||||
mv -v ${{ needs.build-win-nightly.outputs.tag }}/*.zip ./MAA-${{ env.release_tag }}-win-x64.zip
|
||||
- name: "Commit and setup tag"
|
||||
run: |
|
||||
cd MaaRelease
|
||||
git config user.name 'github-actions[bot]'
|
||||
git config user.email 'github-actions[bot]@users.noreply.github.com'
|
||||
git checkout --orphan __temp
|
||||
git rm -rf .
|
||||
git commit --allow-empty --message ${{ env.release_tag }}
|
||||
git tag ${{ env.release_tag }} || exit 0 # do nothing if the tag already exists
|
||||
git push --tags
|
||||
- name: "Upload to MaaRelease"
|
||||
uses: svenstaro/upload-release-action@v2
|
||||
with:
|
||||
repo_name: ${{ format('{0}/{1}', github.repository_owner, 'MaaRelease') }}
|
||||
repo_token: ${{ secrets.MAARELEASE_RELEASE }}
|
||||
file_glob: true
|
||||
file: build-ota/*.zip
|
||||
tag: ${{ env.release_tag }}
|
||||
prerelease: true
|
||||
overwrite: true
|
||||
- name: "Upload to server"
|
||||
uses: appleboy/scp-action@master
|
||||
with:
|
||||
host: ${{ secrets.SSH_HOST }}
|
||||
username: ${{ secrets.SSH_USER }}
|
||||
key: ${{ secrets.SSH_ID }}
|
||||
source: "build-ota/*.zip"
|
||||
strip_components: 1
|
||||
target: ${{ format('{0}/{1}', 'OTA/MaaAssistantArknights/MaaRelease/releases/download', env.release_tag) }}
|
||||
97
.github/workflows/release-ota.yml
vendored
Normal file
@@ -0,0 +1,97 @@
|
||||
name: release-ota
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
limit:
|
||||
description: 'Number of releases to fetch from MaaAssistantArknights, 2 at least'
|
||||
required: false
|
||||
default: 31
|
||||
type: number
|
||||
limit_2:
|
||||
description: 'Number of releases to fetch from MaaRelease'
|
||||
required: false
|
||||
default: 30
|
||||
|
||||
jobs:
|
||||
make-ota:
|
||||
runs-on: "ubuntu-latest"
|
||||
steps:
|
||||
- name: "Fetch MaaRelease"
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: ${{ format('{0}/{1}', github.repository_owner, 'MaaRelease') }}
|
||||
path: MaaRelease
|
||||
fetch-depth: 0
|
||||
token: ${{ secrets.MAARELEASE_RELEASE }}
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
path: MaaAssistantArknights
|
||||
- name: "Fetch release info"
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
mkdir -pv build-ota && cd build-ota
|
||||
gh release list --repo 'MaaAssistantArknights/MaaAssistantArknights' --limit ${{ inputs.limit || 31 }} | tee ./release_maa.txt
|
||||
gh release list --repo "${{ github.repository_owner }}/MaaRelease" --limit ${{ inputs.limit_2 || 30 }} | tee ./release_mr.txt
|
||||
head -n 1 ./release_maa.txt | awk '{ print $1 }' > ./config
|
||||
|
||||
tail -n +1 ./release_maa.txt | awk '{ print $1 }' > ./tags_maa.txt
|
||||
cat ./release_mr.txt | awk '{ print $1 }' > ./tags_mr.txt
|
||||
|
||||
comm <(sort ./tags_maa.txt) <(sort ./tags_mr.txt) | awk '{ print $1 }' >> ./config
|
||||
|
||||
echo "config:"
|
||||
cat ./config
|
||||
|
||||
echo "prerelease=$([ $(head -n 1 release_maa.txt | awk '{ print $2}') = 'Pre-release' ] && echo true || echo false)" >> $GITHUB_ENV
|
||||
echo "release_tag=$(head -n 1 ./config)" >> $GITHUB_ENV
|
||||
- name: "Download latest version for server"
|
||||
run: |
|
||||
mkdir -pv build-ota/${{ env.release_tag }}
|
||||
cd build-ota/${{ env.release_tag }}
|
||||
mkdir -pv content
|
||||
gh release download ${{ env.release_tag }} --repo 'MaaAssistantArknights/MaaAssistantArknights' --pattern "MAA-${{ env.release_tag }}-win-x64.zip" --clobber
|
||||
unzip -q -O gbk -o "*.zip" -d 'content'
|
||||
mv *.zip ..
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: "Build OTA"
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
cd build-ota
|
||||
$GITHUB_WORKSPACE/MaaAssistantArknights/tools/OTAPacker/build.sh 'MaaAssistantArknights/MaaAssistantArknights' ./config
|
||||
- name: "Commit and setup tag"
|
||||
run: |
|
||||
cd MaaRelease
|
||||
git config user.name 'github-actions[bot]'
|
||||
git config user.email 'github-actions[bot]@users.noreply.github.com'
|
||||
git checkout --orphan __temp
|
||||
git rm -rf .
|
||||
git commit --allow-empty --message ${{ env.release_tag }}
|
||||
git tag ${{ env.release_tag }} || exit 0 # do nothing if the tag already exists
|
||||
git push --tags
|
||||
env:
|
||||
PUSH_REMOTE: https://github-actions[bot]:${{ secrets.MAARELEASE_RELEASE }}@github.com/${{ github.repository_owner }}/MaaRelease
|
||||
- name: "Upload to MaaRelease"
|
||||
uses: svenstaro/upload-release-action@v2
|
||||
with:
|
||||
repo_name: ${{ format('{0}/{1}', github.repository_owner, 'MaaRelease') }}
|
||||
repo_token: ${{ secrets.MAARELEASE_RELEASE }}
|
||||
file_glob: true
|
||||
file: build-ota/*.zip
|
||||
tag: ${{ env.release_tag }}
|
||||
prerelease: ${{ env.prerelease }}
|
||||
overwrite: true
|
||||
- name: "Upload to server"
|
||||
uses: appleboy/scp-action@master
|
||||
with:
|
||||
host: ${{ secrets.SSH_HOST }}
|
||||
username: ${{ secrets.SSH_USER }}
|
||||
key: ${{ secrets.SSH_ID }}
|
||||
source: "build-ota/*.zip"
|
||||
strip_components: 1
|
||||
target: ${{ format('{0}/{1}', 'OTA/MaaAssistantArknights/MaaRelease/releases/download', env.release_tag) }}
|
||||
1
.gitignore
vendored
@@ -23,6 +23,7 @@ build
|
||||
# Fortran module files
|
||||
*.mod
|
||||
*.smod
|
||||
!go.mod
|
||||
|
||||
# Compiled Static libraries
|
||||
*.lai
|
||||
|
||||
6
.gitmodules
vendored
@@ -1,3 +1,9 @@
|
||||
[submodule "test"]
|
||||
path = test
|
||||
url = https://github.com/MaaAssistantArknights/MaaTestSet.git
|
||||
[submodule "3rdparty/VisionOCR"]
|
||||
path = 3rdparty/VisionOCR
|
||||
url = https://github.com/MaaAssistantArknights/VisionOCR.git
|
||||
[submodule "src/MeoAsstMac"]
|
||||
path = src/MeoAsstMac
|
||||
url = https://github.com/MaaAssistantArknights/MeoAsstMac.git
|
||||
|
||||
1
3rdparty/VisionOCR
vendored
Submodule
BIN
3rdparty/bin/ppocr.dll
vendored
201
3rdparty/include/Arknights-Tile-Pos/TileCalc.hpp
vendored
@@ -1,13 +1,15 @@
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <cmath>
|
||||
#include <fstream>
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include <opencv2/core.hpp>
|
||||
#include <meojson/json.hpp>
|
||||
#include <opencv2/core.hpp>
|
||||
|
||||
#include "TileDef.hpp"
|
||||
|
||||
namespace Map
|
||||
{
|
||||
@@ -26,21 +28,28 @@ namespace Map
|
||||
int get_height() const { return height; }
|
||||
Tile get_item(int y, int x) const { return tiles[y][x]; }
|
||||
std::vector<cv::Point3d> view;
|
||||
std::string stageId;
|
||||
std::string code;
|
||||
std::string levelId;
|
||||
std::string name;
|
||||
LevelKey key;
|
||||
|
||||
private:
|
||||
int height = 0;
|
||||
int width = 0;
|
||||
std::vector<std::vector<Tile>> tiles;
|
||||
};
|
||||
|
||||
class TileCalc
|
||||
{
|
||||
public:
|
||||
TileCalc(int width, int height, const std::filesystem::path& dir);
|
||||
bool run(const std::string& code_or_name, bool side, std::vector<std::vector<cv::Point2d>>& out_pos, std::vector<std::vector<Tile>>& out_tiles) const;
|
||||
bool run(const std::string& any_key, bool side, std::vector<std::vector<cv::Point2d>>& out_pos,
|
||||
std::vector<std::vector<Tile>>& out_tiles) const;
|
||||
bool run(const LevelKey& key, bool side, std::vector<std::vector<cv::Point2d>>& out_pos,
|
||||
std::vector<std::vector<Tile>>& out_tiles) const;
|
||||
|
||||
private:
|
||||
bool run(const Level& level, bool side, std::vector<std::vector<cv::Point2d>>& out_pos,
|
||||
std::vector<std::vector<Tile>>& out_tiles) const;
|
||||
bool adapter(double& x, double& y) const;
|
||||
|
||||
int width = 0;
|
||||
int height = 0;
|
||||
const double degree = atan(1.0) * 4 / 180;
|
||||
@@ -48,10 +57,9 @@ namespace Map
|
||||
cv::Mat MatrixP = cv::Mat(4, 4, CV_64F);
|
||||
cv::Mat MatrixX = cv::Mat(4, 4, CV_64F);
|
||||
cv::Mat MatrixY = cv::Mat(4, 4, CV_64F);
|
||||
bool adapter(double& x, double& y) const;
|
||||
};
|
||||
|
||||
inline void InitMat4x4(cv::Mat& m, double(*num)[4])
|
||||
inline void InitMat4x4(cv::Mat& m, double (*num)[4])
|
||||
{
|
||||
for (int i = 0; i < m.rows; i++)
|
||||
for (int j = 0; j < m.cols; j++)
|
||||
@@ -60,28 +68,26 @@ namespace Map
|
||||
|
||||
inline Level::Level(const json::value& data)
|
||||
{
|
||||
Level::stageId = data.at("stageId").as_string();
|
||||
Level::code = data.at("code").as_string();
|
||||
Level::levelId = data.at("levelId").as_string();
|
||||
Level::name = data.get("name", "null");
|
||||
Level::height = data.at("height").as_integer();
|
||||
Level::width = data.at("width").as_integer();
|
||||
key.stageId = data.at("stageId").as_string();
|
||||
key.code = data.at("code").as_string();
|
||||
key.levelId = data.at("levelId").as_string();
|
||||
key.name = data.get("name", "null");
|
||||
this->height = data.at("height").as_integer();
|
||||
this->width = data.at("width").as_integer();
|
||||
for (const json::value& point_data : data.at("view").as_array()) {
|
||||
cv::Point3d tmp;
|
||||
auto point_array = point_data.as_array();
|
||||
tmp.x = point_array[0].as_double();
|
||||
tmp.y = point_array[1].as_double();
|
||||
tmp.z = point_array[2].as_double();
|
||||
Level::view.emplace_back(std::move(tmp));
|
||||
this->view.emplace_back(std::move(tmp));
|
||||
}
|
||||
for (const json::value& row : data.at("tiles").as_array()) {
|
||||
std::vector<Tile> tmp;
|
||||
tmp.reserve(Level::width);
|
||||
tmp.reserve(this->width);
|
||||
for (const json::value& tile : row.as_array()) {
|
||||
tmp.emplace_back(Tile{
|
||||
tile.at("heightType").as_integer(),
|
||||
tile.at("buildableType").as_integer(),
|
||||
tile.get("tileKey", std::string()) });
|
||||
tmp.emplace_back(Tile { tile.at("heightType").as_integer(), tile.at("buildableType").as_integer(),
|
||||
tile.get("tileKey", std::string()) });
|
||||
}
|
||||
tiles.emplace_back(std::move(tmp));
|
||||
}
|
||||
@@ -89,30 +95,24 @@ namespace Map
|
||||
|
||||
inline TileCalc::TileCalc(int width, int height, const std::filesystem::path& dir)
|
||||
{
|
||||
TileCalc::width = width;
|
||||
TileCalc::height = height;
|
||||
this->width = width;
|
||||
this->height = height;
|
||||
double ratio = static_cast<double>(height) / width;
|
||||
double matrixP[4][4]{
|
||||
{ ratio / tan(20 * degree), 0, 0, 0},
|
||||
{ 0, 1 / tan(20 * degree), 0, 0},
|
||||
{ 0, 0, -(1000 + 0.3) / (1000 - 0.3), -(1000 * 0.3 * 2) / (1000 - 0.3)},
|
||||
{ 0, 0, -1, 0 }
|
||||
};
|
||||
InitMat4x4(TileCalc::MatrixP, matrixP);
|
||||
double matrixX[4][4]{
|
||||
{ 1, 0, 0, 0},
|
||||
{ 0, cos(30 * degree), -sin(30 * degree), 0},
|
||||
{ 0, -sin(30 * degree), -cos(30 * degree), 0},
|
||||
{ 0, 0, 0, 1}
|
||||
};
|
||||
InitMat4x4(TileCalc::MatrixX, matrixX);
|
||||
double matrixY[4][4]{
|
||||
{ cos(10 * degree), 0, sin(10 * degree), 0},
|
||||
{ 0, 1, 0, 0},
|
||||
{ -sin(10 * degree), 0, cos(10 * degree), 0},
|
||||
{ 0, 0, 0, 1}
|
||||
};
|
||||
InitMat4x4(TileCalc::MatrixY, matrixY);
|
||||
double matrixP[4][4] { { ratio / tan(20 * degree), 0, 0, 0 },
|
||||
{ 0, 1 / tan(20 * degree), 0, 0 },
|
||||
{ 0, 0, -(1000 + 0.3) / (1000 - 0.3), -(1000 * 0.3 * 2) / (1000 - 0.3) },
|
||||
{ 0, 0, -1, 0 } };
|
||||
InitMat4x4(this->MatrixP, matrixP);
|
||||
double matrixX[4][4] { { 1, 0, 0, 0 },
|
||||
{ 0, cos(30 * degree), -sin(30 * degree), 0 },
|
||||
{ 0, -sin(30 * degree), -cos(30 * degree), 0 },
|
||||
{ 0, 0, 0, 1 } };
|
||||
InitMat4x4(this->MatrixX, matrixX);
|
||||
double matrixY[4][4] { { cos(10 * degree), 0, sin(10 * degree), 0 },
|
||||
{ 0, 1, 0, 0 },
|
||||
{ -sin(10 * degree), 0, cos(10 * degree), 0 },
|
||||
{ 0, 0, 0, 1 } };
|
||||
InitMat4x4(this->MatrixY, matrixY);
|
||||
std::ifstream ifs(dir, std::ios::in);
|
||||
if (!ifs.is_open()) {
|
||||
std::cerr << "Read resource failed" << std::endl;
|
||||
@@ -128,7 +128,7 @@ namespace Map
|
||||
throw "Parsing failed";
|
||||
}
|
||||
for (const json::value& item : ret.value().as_array()) {
|
||||
TileCalc::levels.emplace_back(item);
|
||||
this->levels.emplace_back(item);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,55 +148,66 @@ namespace Map
|
||||
return true;
|
||||
}
|
||||
|
||||
inline bool TileCalc::run(const std::string& code_or_name, bool side, std::vector<std::vector<cv::Point2d>>& out_pos, std::vector<std::vector<Tile>>& out_tiles) const
|
||||
inline bool TileCalc::run(const std::string& any_key, bool side, std::vector<std::vector<cv::Point2d>>& out_pos,
|
||||
std::vector<std::vector<Tile>>& out_tiles) const
|
||||
{
|
||||
for (const Map::Level& level : TileCalc::levels) {
|
||||
if (level.code != code_or_name &&
|
||||
level.name != code_or_name &&
|
||||
level.levelId != code_or_name &&
|
||||
level.stageId != code_or_name) {
|
||||
continue;
|
||||
}
|
||||
auto [x, y, z] = level.view[side ? 1 : 0];
|
||||
double adapter_y = 0, adapter_z = 0;
|
||||
TileCalc::adapter(adapter_y, adapter_z);
|
||||
double matrix[4][4]{
|
||||
{ 1, 0, 0, -x},
|
||||
{ 0, 1, 0, -y - adapter_y},
|
||||
{ 0, 0, 1, -z - adapter_z},
|
||||
{ 0, 0, 0, 1}
|
||||
};
|
||||
auto raw = cv::Mat(cv::Size(4, 4), CV_64F);
|
||||
auto Finall_Matrix = cv::Mat(cv::Size(4, 4), CV_64F);
|
||||
InitMat4x4(raw, matrix);
|
||||
if (side) {
|
||||
Finall_Matrix = TileCalc::MatrixP * TileCalc::MatrixX * TileCalc::MatrixY * raw;
|
||||
}
|
||||
else {
|
||||
Finall_Matrix = TileCalc::MatrixP * TileCalc::MatrixX * raw;
|
||||
}
|
||||
int h = level.get_height();
|
||||
int w = level.get_width();
|
||||
auto map_point = cv::Mat(cv::Size(1, 4), CV_64F);
|
||||
map_point.at<double>(3, 0) = 1;
|
||||
auto tmp_pos = std::vector<cv::Point2d>(w);
|
||||
auto tmp_tiles = std::vector<Tile>(w);
|
||||
for (int i = 0; i < h; i++) {
|
||||
for (int j = 0; j < w; j++) {
|
||||
tmp_tiles[j] = level.get_item(i, j);
|
||||
map_point.at<double>(0, 0) = j - (w - 1) / 2.0;
|
||||
map_point.at<double>(1, 0) = (h - 1) / 2.0 - i;
|
||||
map_point.at<double>(2, 0) = tmp_tiles[j].heightType * -0.4;
|
||||
cv::Mat view_point = Finall_Matrix * map_point;
|
||||
view_point = view_point / view_point.at<double>(3, 0);
|
||||
view_point = (view_point + 1) / 2;
|
||||
tmp_pos[j] = cv::Point2d(view_point.at<double>(0, 0) * TileCalc::width, (1 - view_point.at<double>(1, 0)) * TileCalc::height);
|
||||
}
|
||||
out_pos.emplace_back(tmp_pos);
|
||||
out_tiles.emplace_back(tmp_tiles);
|
||||
}
|
||||
return true;
|
||||
auto iter = std::find_if(levels.cbegin(), levels.cend(),
|
||||
[&any_key](const Level& level) -> bool { return level.key == any_key; });
|
||||
if (iter == levels.cend()) {
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
return run(*iter, side, out_pos, out_tiles);
|
||||
}
|
||||
}
|
||||
inline bool TileCalc::run(const LevelKey& key, bool side, std::vector<std::vector<cv::Point2d>>& out_pos,
|
||||
std::vector<std::vector<Tile>>& out_tiles) const
|
||||
{
|
||||
auto iter = std::find_if(levels.cbegin(), levels.cend(),
|
||||
[&key](const Level& level) -> bool { return level.key == key; });
|
||||
if (iter == levels.cend()) {
|
||||
return false;
|
||||
}
|
||||
return run(*iter, side, out_pos, out_tiles);
|
||||
}
|
||||
|
||||
inline bool TileCalc::run(const Level& level, bool side, std::vector<std::vector<cv::Point2d>>& out_pos,
|
||||
std::vector<std::vector<Tile>>& out_tiles) const
|
||||
{
|
||||
auto [x, y, z] = level.view[side ? 1 : 0];
|
||||
double adapter_y = 0, adapter_z = 0;
|
||||
this->adapter(adapter_y, adapter_z);
|
||||
double matrix[4][4] {
|
||||
{ 1, 0, 0, -x }, { 0, 1, 0, -y - adapter_y }, { 0, 0, 1, -z - adapter_z }, { 0, 0, 0, 1 }
|
||||
};
|
||||
auto raw = cv::Mat(cv::Size(4, 4), CV_64F);
|
||||
auto Finall_Matrix = cv::Mat(cv::Size(4, 4), CV_64F);
|
||||
InitMat4x4(raw, matrix);
|
||||
if (side) {
|
||||
Finall_Matrix = this->MatrixP * this->MatrixX * this->MatrixY * raw;
|
||||
}
|
||||
else {
|
||||
Finall_Matrix = this->MatrixP * this->MatrixX * raw;
|
||||
}
|
||||
int h = level.get_height();
|
||||
int w = level.get_width();
|
||||
auto map_point = cv::Mat(cv::Size(1, 4), CV_64F);
|
||||
map_point.at<double>(3, 0) = 1;
|
||||
auto tmp_pos = std::vector<cv::Point2d>(w);
|
||||
auto tmp_tiles = std::vector<Tile>(w);
|
||||
for (int i = 0; i < h; i++) {
|
||||
for (int j = 0; j < w; j++) {
|
||||
tmp_tiles[j] = level.get_item(i, j);
|
||||
map_point.at<double>(0, 0) = j - (w - 1) / 2.0;
|
||||
map_point.at<double>(1, 0) = (h - 1) / 2.0 - i;
|
||||
map_point.at<double>(2, 0) = tmp_tiles[j].heightType * -0.4;
|
||||
cv::Mat view_point = Finall_Matrix * map_point;
|
||||
view_point = view_point / view_point.at<double>(3, 0);
|
||||
view_point = (view_point + 1) / 2;
|
||||
tmp_pos[j] = cv::Point2d(view_point.at<double>(0, 0) * this->width,
|
||||
(1 - view_point.at<double>(1, 0)) * this->height);
|
||||
}
|
||||
out_pos.emplace_back(tmp_pos);
|
||||
out_tiles.emplace_back(tmp_tiles);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
} // namespace Map
|
||||
|
||||
29
3rdparty/include/Arknights-Tile-Pos/TileDef.hpp
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
|
||||
namespace Map
|
||||
{
|
||||
struct LevelKey
|
||||
{
|
||||
std::string stageId;
|
||||
std::string code;
|
||||
std::string levelId;
|
||||
std::string name;
|
||||
|
||||
bool empty_or_equal(const std::string& lhs, const std::string& rhs) const noexcept
|
||||
{
|
||||
return (lhs.empty() || rhs.empty()) ? true : lhs == rhs;
|
||||
}
|
||||
bool operator==(const LevelKey& other) const noexcept
|
||||
{
|
||||
return empty_or_equal(stageId, other.stageId) && empty_or_equal(code, other.code) &&
|
||||
empty_or_equal(levelId, other.levelId) && empty_or_equal(name, other.name);
|
||||
}
|
||||
bool operator==(const std::string& any_key) const noexcept
|
||||
{
|
||||
return empty_or_equal(stageId, any_key) || empty_or_equal(code, any_key) ||
|
||||
empty_or_equal(levelId, any_key) || empty_or_equal(name, any_key);
|
||||
}
|
||||
};
|
||||
}
|
||||
BIN
3rdparty/ppocr_noavx.zip
vendored
75005
3rdparty/resource/Arknights-Tile-Pos/levels.json
vendored
BIN
3rdparty/resource/PaddleCharOCR/det/inference.pdiparams
vendored
Normal file
BIN
3rdparty/resource/PaddleCharOCR/det/inference.pdmodel
vendored
Normal file
1
3rdparty/resource/PaddleCharOCR/det/version.txt
vendored
Normal file
@@ -0,0 +1 @@
|
||||
en_PP-OCRv3_det_slim_infer
|
||||
95
3rdparty/resource/PaddleCharOCR/ppocr_keys_v1.txt
vendored
Normal file
@@ -0,0 +1,95 @@
|
||||
0
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
:
|
||||
;
|
||||
<
|
||||
=
|
||||
>
|
||||
?
|
||||
@
|
||||
A
|
||||
B
|
||||
C
|
||||
D
|
||||
E
|
||||
F
|
||||
G
|
||||
H
|
||||
I
|
||||
J
|
||||
K
|
||||
L
|
||||
M
|
||||
N
|
||||
O
|
||||
P
|
||||
Q
|
||||
R
|
||||
S
|
||||
T
|
||||
U
|
||||
V
|
||||
W
|
||||
X
|
||||
Y
|
||||
Z
|
||||
[
|
||||
\
|
||||
]
|
||||
^
|
||||
_
|
||||
`
|
||||
a
|
||||
b
|
||||
c
|
||||
d
|
||||
e
|
||||
f
|
||||
g
|
||||
h
|
||||
i
|
||||
j
|
||||
k
|
||||
l
|
||||
m
|
||||
n
|
||||
o
|
||||
p
|
||||
q
|
||||
r
|
||||
s
|
||||
t
|
||||
u
|
||||
v
|
||||
w
|
||||
x
|
||||
y
|
||||
z
|
||||
{
|
||||
|
|
||||
}
|
||||
~
|
||||
!
|
||||
"
|
||||
#
|
||||
$
|
||||
%
|
||||
&
|
||||
'
|
||||
(
|
||||
)
|
||||
*
|
||||
+
|
||||
,
|
||||
-
|
||||
.
|
||||
/
|
||||
|
||||
BIN
3rdparty/resource/PaddleCharOCR/rec/inference.pdiparams
vendored
Normal file
BIN
3rdparty/resource/PaddleCharOCR/rec/inference.pdmodel
vendored
Normal file
1
3rdparty/resource/PaddleCharOCR/rec/version.txt
vendored
Normal file
@@ -0,0 +1 @@
|
||||
en_PP-OCRv3_rec_slim_infer
|
||||
BIN
3rdparty/resource/minitouch/arm64-v8a/minitouch
vendored
Normal file
BIN
3rdparty/resource/minitouch/armeabi-v7a/minitouch
vendored
Normal file
BIN
3rdparty/resource/minitouch/armeabi/minitouch
vendored
Normal file
BIN
3rdparty/resource/minitouch/x86/minitouch
vendored
Normal file
BIN
3rdparty/resource/minitouch/x86_64/minitouch
vendored
Normal file
44
CHANGELOG.md
@@ -1,9 +1,35 @@
|
||||
- 新增 水月肉鸽 卡住时,自动保存截图到 `debug/roguelike/` @MistEO
|
||||
汇报 bug 请附上其中的图片,感谢~
|
||||
- 优化 水月肉鸽 部分地图部署位置 @nightofknife
|
||||
- 优化 水月肉鸽 招募及藏品优先级 @zzyyyl
|
||||
- 修复 水月肉鸽 亿点点卡住的 bug @MistEO
|
||||
- 修复 截图出错时的重试机制 @MistEO
|
||||
- 更新 界面翻译及文档 @wallsman @Tastror
|
||||
- 更新 QQ 五群链接 @ABA2396 @MistEO
|
||||
- 修复 编译错误 @horror-proton
|
||||
### 若更新后可以连接,但完全没反应,请进入 `设置` - `连接设置` - `强制替换 ADB`
|
||||
|
||||
### If you can connect, but stuck at all, please go to `MAA Settings` - `Connection settings` - `Forced replacement of ADB`
|
||||
|
||||
- 新增并全面启用 minitouch,大幅优化所有操作速度 @MistEO @zzyyyl @horror-proton @hguandl
|
||||
- 新增 兼容触控模式,请进入设置 - 连接设置中启用。不推荐开启,仅建议在 minitouch 无法工作时使用 @MistEO
|
||||
- 新增 自动战斗 `ButtleTime`, `costs` 字段 @MistEO
|
||||
- 新增 自定义基建 `description_post` 字段,整理内置作业格式 @MistEO
|
||||
- 更新 危机合约、IS-S 关卡 地图数据 @MistEO
|
||||
- 优化 水月肉鸽 安全屋选项,支持安全屋再利用 @txtxj @zzyyyl
|
||||
- 优化 自定义基建 内置 243 3 换作业 @Black1312
|
||||
- 优化 macOS 截图操作,新增支持 nc 转发,并禁用可能造成内存泄漏的 gzip 方式 @hguandl
|
||||
- 优化 文字识别器 参数结构 @zzyyyl @MistEO
|
||||
- 修复 活动关卡导航 @ABA2396
|
||||
- 修复 肉鸽 关卡识别错误时狂吃内存的问题 @zzyyyl
|
||||
- 修复 基建 制造/贸易站 偶尔点漏一个房间的问题 @MistEO
|
||||
- 修复 基建 干员 `霜叶` 识别错误 @Black1312
|
||||
- 修复 macOS 繁中肉鸽 文字识别错误 @hguandl
|
||||
- 修复 macOS 信用商店 设置错误 @hguandl
|
||||
- 修复 POSIX 下 socket 超时时间过长的问题 @aa889788
|
||||
- 修复 下载 镜像站地址,修复 内测版 打包策略 及 CHANGELOG 生成 @horror-proton @zzyyyl @MistEO
|
||||
- 修复 界面 基建设置心情阈值显示错误的问题 @ABA2396
|
||||
- 修复 界面 不支持通知时崩溃的问题,使用兼容版通知 @zzyyyl
|
||||
- 修复 Java 接口路径错误 @CaoMeiYouRen
|
||||
- 清理 代码 等 @MistEO @zzyyyl
|
||||
- 新增 调试后门,在启动前新建 `DEBUG.txt`,将会在每次运行时都重新读取资源文件 @MistEO
|
||||
- 新增 Issue Bot mac 标签 @zzyyyl
|
||||
- 更新 文档 @MistEO @DavidWang19
|
||||
|
||||
### For Overseas clients
|
||||
|
||||
- Support Base function for the JP client @ajk946009123
|
||||
- Support Annihilation Combat for the JP and EN clients @MistEO @wallsman
|
||||
- Fix StartUp and Daily error for the JP client @liuyifan-eric
|
||||
- Fix a dead loop when recruiting opers in the auto-IS function of the EN client @MistEO
|
||||
|
||||
@@ -6,6 +6,12 @@ if (NOT CMAKE_BUILD_TYPE)
|
||||
endif ()
|
||||
|
||||
option(BUILD_TEST "build a demo" OFF)
|
||||
option(BUILD_XCFRAMEWORK "build xcframework for macOS app" OFF)
|
||||
option(BUILD_UNIVERSAL "build both arm64 and x86_64 on macOS" OFF)
|
||||
|
||||
if (BUILD_UNIVERSAL)
|
||||
set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64")
|
||||
endif ()
|
||||
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
@@ -29,6 +35,7 @@ if (MSVC)
|
||||
endif ()
|
||||
|
||||
include_directories(include)
|
||||
include_directories(src/MeoAssistant)
|
||||
|
||||
file(GLOB_RECURSE maa_src src/MeoAssistant/*.cpp)
|
||||
|
||||
@@ -41,15 +48,29 @@ if (MSVC)
|
||||
target_link_libraries(MeoAssistant ws2_32 ${OpenCV} ${PaddleOCR_LIB} ${ZLIB})
|
||||
target_include_directories(MeoAssistant PRIVATE 3rdparty/include)
|
||||
else ()
|
||||
find_package(OpenCV REQUIRED)
|
||||
target_include_directories(MeoAssistant PRIVATE ${OpenCV_INCLUDE_DIRS})
|
||||
target_link_libraries(MeoAssistant ${OpenCV_LIBS})
|
||||
|
||||
find_package(ZLIB REQUIRED)
|
||||
target_include_directories(MeoAssistant PRIVATE ${ZLIB_INCLUDE_DIRS})
|
||||
target_link_libraries(MeoAssistant ${ZLIB_LIBRARY})
|
||||
|
||||
target_link_libraries(MeoAssistant ppocr paddle_inference protobuf cryptopp gflags glog utf8proc xxhash iomp5 mkldnn mklml_intel)
|
||||
if (CMAKE_CXX_COMPILER_ID MATCHES ".*Clang")
|
||||
find_package(range-v3 REQUIRED)
|
||||
target_link_libraries(MeoAssistant range-v3::range-v3)
|
||||
endif ()
|
||||
|
||||
if (APPLE)
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET 12.0)
|
||||
add_subdirectory(3rdparty/VisionOCR)
|
||||
target_link_libraries(MeoAssistant
|
||||
vnocr
|
||||
"-framework Accelerate"
|
||||
)
|
||||
else ()
|
||||
find_package(OpenCV REQUIRED)
|
||||
target_include_directories(MeoAssistant PRIVATE ${OpenCV_INCLUDE_DIRS})
|
||||
target_link_libraries(MeoAssistant ${OpenCV_LIBS})
|
||||
|
||||
target_link_libraries(MeoAssistant ppocr paddle_inference protobuf cryptopp gflags glog utf8proc xxhash iomp5 mkldnn mklml_intel)
|
||||
endif (APPLE)
|
||||
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -idirafter ${PROJECT_SOURCE_DIR}/3rdparty/include")
|
||||
endif ()
|
||||
@@ -58,3 +79,55 @@ if (BUILD_TEST)
|
||||
add_executable(test tools/TestCaller/main.cpp)
|
||||
target_link_libraries(test MeoAssistant)
|
||||
endif (BUILD_TEST)
|
||||
|
||||
if (BUILD_XCFRAMEWORK)
|
||||
add_custom_command(OUTPUT MeoAssistant.xcframework
|
||||
COMMAND rm -rf MeoAssistant.xcframework
|
||||
COMMAND xcodebuild -create-xcframework -library libMeoAssistant.dylib -headers ${PROJECT_SOURCE_DIR}/include -output MeoAssistant.xcframework
|
||||
DEPENDS MeoAssistant
|
||||
)
|
||||
|
||||
add_custom_target(MaaXCFramework ALL
|
||||
DEPENDS MeoAssistant MeoAssistant.xcframework
|
||||
)
|
||||
endif (BUILD_XCFRAMEWORK)
|
||||
|
||||
# define MAA_VERSION from git
|
||||
if (NOT MAA_VERSION)
|
||||
find_package(Git)
|
||||
endif ()
|
||||
if (GIT_FOUND)
|
||||
execute_process(
|
||||
COMMAND "${GIT_EXECUTABLE}" describe --tags --dirty --broken --abbrev=40
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
RESULT_VARIABLE result
|
||||
OUTPUT_VARIABLE output
|
||||
ERROR_VARIABLE err
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
if (result EQUAL 0)
|
||||
set(MAA_VERSION "${output}")
|
||||
else ()
|
||||
message(WARNING "git describe returning ${result}, output:\n${err}")
|
||||
endif()
|
||||
endif ()
|
||||
if (NOT MAA_VERSION AND GIT_FOUND)
|
||||
execute_process(
|
||||
COMMAND "${GIT_EXECUTABLE}" rev-parse HEAD
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
RESULT_VARIABLE result
|
||||
OUTPUT_VARIABLE output
|
||||
ERROR_VARIABLE err
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
if (result EQUAL 0)
|
||||
set(MAA_VERSION "${output}")
|
||||
else ()
|
||||
message(WARNING "git rev-parse returning ${result}, output:\n${err}")
|
||||
endif ()
|
||||
endif ()
|
||||
if (NOT MAA_VERSION)
|
||||
set(MAA_VERSION "DEBUG VERSION")
|
||||
endif ()
|
||||
message(STATUS "MAA_VERSION=${MAA_VERSION}")
|
||||
add_compile_definitions(MAA_VERSION="${MAA_VERSION}")
|
||||
|
||||
40
README.md
@@ -1,6 +1,6 @@
|
||||
<div align="center">
|
||||
|
||||
<img alt="LOGO" src="https://user-images.githubusercontent.com/18511905/148931479-23aef436-2fc1-4c1e-84c9-bae17be710a5.png" width=360 height=270/>
|
||||
<img alt="LOGO" src="https://cdn.jsdelivr.net/gh/MaaAssistantArknights/design@main/logo/maa-logo_512x512.png" width="256" height="256" />
|
||||
|
||||
# MaaAssistantArknights
|
||||
|
||||
@@ -37,7 +37,7 @@ MAA 的意思是 MAA Assistant Arknights
|
||||
- 自动公招,可选使用加急许可,一次全部刷完!公招数据上传 [企鹅物流](https://penguin-stats.cn/result/stage/recruit/recruit),[一图流](https://yituliu.site/maarecruitdata)
|
||||
- 访问好友、收取信用及购物、领取日常奖励等。一键全日常自动长草!
|
||||
- 肉鸽全自动刷源石锭和蜡烛,自动识别干员及练度
|
||||
- 导入作业 JSON 文件,自动抄作业! [视频演示](https://www.bilibili.com/video/BV14u411673q/)
|
||||
- 导入作业 JSON 文件,自动抄作业! [视频演示](https://www.bilibili.com/video/BV1H841177Fk/)
|
||||
- 新功能:仓库识别!支持导出至 [企鹅物流刷图规划器](https://penguin-stats.cn/planner), [明日方舟工具箱](https://arkn.lolicon.app/#/material), [ARK-NIGHTS 干员培养表](https://ark-nights.com/settings)
|
||||
|
||||
话不多说,看图!
|
||||
@@ -48,19 +48,8 @@ MAA 的意思是 MAA Assistant Arknights
|
||||
|
||||
## 下载地址
|
||||
|
||||
***第一次使用请下载 `MaaBundle-vX.Y.Z.zip`***
|
||||
|
||||
***第一次使用请下载 `MaaBundle-vX.Y.Z.zip`***
|
||||
|
||||
***第一次使用请下载 `MaaBundle-vX.Y.Z.zip`***
|
||||
|
||||
[稳定版](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases/latest)
|
||||
[测试版](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases)
|
||||
|
||||
下载太慢?尝试使用 fastgit 镜像
|
||||
|
||||
[fastgit 镜像稳定版](https://hub.fastgit.xyz/MaaAssistantArknights/MaaAssistantArknights/releases/latest)
|
||||
[fastgit 镜像测试版](https://hub.fastgit.xyz/MaaAssistantArknights/MaaAssistantArknights/releases)
|
||||
[开发版](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases)
|
||||
|
||||
## 使用说明
|
||||
|
||||
@@ -76,9 +65,11 @@ MAA 的意思是 MAA Assistant Arknights
|
||||
|
||||
- 软件一打开就闪退
|
||||
- 连接错误、不知道 adb 路径怎么填写
|
||||
- 识别错误/任务开始后一直不动、没有反应
|
||||
- 连接成功了,但没反应
|
||||
- 如何连接自定义端口
|
||||
- 下载速度慢,且镜像站无法打开网页
|
||||
- 下载到一半提示“登陆”/“鉴权”
|
||||
- 连接正常,任务开始了,但是没反应
|
||||
|
||||
请参考 [常见问题](docs/1.2-常见问题.md)
|
||||
|
||||
@@ -87,19 +78,19 @@ MAA 的意思是 MAA Assistant Arknights
|
||||
- 国际服(美服)
|
||||
支持基本的刷理智、信用购物、访问好友、领取奖励、自动肉鸽(测试版本)、公招识别,请参考 [说明](resource/global/YoStarEN/readme.md)
|
||||
- 日服
|
||||
支持基本的刷理智、信用购物、自动公招、访问好友、领取奖励、自动肉鸽(测试版本)、公招识别,请参考 [说明](resource/global/YoStarJP/readme.md)
|
||||
支持基本的刷理智、自动基建、信用购物、自动公招、访问好友、领取奖励、自动肉鸽(测试版本)、公招识别,请参考 [说明](resource/global/YoStarJP/readme.md)
|
||||
- 韩服
|
||||
支持基本的刷理智功能,请参考 [说明](resource/global/YoStarKR/readme.md)
|
||||
- 繁中服
|
||||
支持基本的刷理智、自动公招、公招识别功能,请参考 [说明](resource/global/txwy/readme.md)
|
||||
支持基本的刷理智、自动公招、自动肉鸽、领取日常、公招识别功能,请参考 [说明](resource/global/txwy/readme.md)
|
||||
|
||||
由于外服用户较少及项目人手不足的问题,外服目前都仅适配了基本的功能。若您有强需求,欢迎在 [讨论区](https://github.com/MaaAssistantArknights/MaaAssistantArknights/discussions) 催更,~~或加入我们一起建设 MAA~~
|
||||
由于外服用户较少及项目人手不足的问题,外服目前都仅适配了基本的功能。若您有强需求,欢迎在 [讨论区](https://github.com/MaaAssistantArknights/MaaAssistantArknights/discussions) 催更,或加入我们一起建设 MAA!
|
||||
|
||||
## 主要关联项目
|
||||
|
||||
- 全新 GUI:[MaaAsstElectronUI](https://github.com/MaaAssistantArknights/MaaAsstElectronUI) (正在开发中,欢迎加入!)
|
||||
- 更新服务器:[MaaDownloadServer](https://github.com/MaaAssistantArknights/MaaDownloadServer)
|
||||
- 官网 <https://maa.plus>:[maa-website](https://github.com/MaaAssistantArknights/maa-website)
|
||||
- 数据服务器:[MaaGameDataServer](https://github.com/MaaAssistantArknights/MaaGameDataServer)
|
||||
- 官网 [maa.plus](https://maa.plus):[maa-website](https://github.com/MaaAssistantArknights/maa-website)
|
||||
- 作业分享站 [prts.plus](https://prts.plus) 或 [抄作业.com](http://抄作业.com):[前端](https://github.com/MaaAssistantArknights/maa-copilot-frontend),[后端](https://github.com/MaaAssistantArknights/MaaCopilotServer)
|
||||
|
||||
## 致谢
|
||||
@@ -116,6 +107,7 @@ MAA 的意思是 MAA Assistant Arknights
|
||||
- ~~C++ base64编解码:[cpp-base64](https://github.com/ReneNyffenegger/cpp-base64)~~
|
||||
- C++ 解压压缩库:[zlib](https://github.com/madler/zlib)
|
||||
- C++ Gzip封装:[gzip-hpp](https://github.com/mapbox/gzip-hpp)
|
||||
- 安卓触控事件器:[minitouch](https://github.com/openstf/minitouch)
|
||||
- WPF MVVW框架:[Stylet](https://github.com/canton7/Stylet)
|
||||
- WPF控件库:[HandyControl](https://github.com/HandyOrg/HandyControl)
|
||||
- C# JSON库:[Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json)
|
||||
@@ -150,11 +142,11 @@ MAA 的意思是 MAA Assistant Arknights
|
||||
|
||||
- [C 接口](include/AsstCaller.h):[集成示例](tools/TestCaller/main.cpp)
|
||||
- [Python 接口](src/Python/asst.py):[集成示例](src/Python/sample.py)
|
||||
- [Golang 接口](src/Golang/maa/):[集成示例](src/Golang/cli.go)(已停止维护 orz)
|
||||
- [Golang 接口](src/Golang/MaaAssistantArknights/):[集成示例](src/Golang/MaaAssistantArknights/maa/maa.go)
|
||||
- [Dart 接口](src/dart/)
|
||||
- [Java 接口](src/Java/Maaj/src/main/java/com/iguigui/maaj/easySample/MeoAssistant.java):[集成示例](src/Java/Maaj/src/main/java/com/iguigui/maaj/easySample/MaaJavaSample.java)
|
||||
- [Java HTTP 接口](src/Java/Maaj/Readme.md)
|
||||
- [Rust 接口](src/Rust/src/maa_sys/):[HTTP 接口](src/Rust)
|
||||
- [HTTP 接口](src/Java/Maaj/Readme.md)
|
||||
- [集成文档](docs/3.1-集成文档.md)
|
||||
- [回调消息协议](docs/3.2-回调消息协议.md)
|
||||
- [任务流程协议](docs/3.4-任务流程协议.md)
|
||||
@@ -173,12 +165,12 @@ MAA 的意思是 MAA Assistant Arknights
|
||||
|
||||
## 声明
|
||||
|
||||
- 本软件 logo 并非使用 AGPL 3.0 协议开源,画师 [耗毛](https://weibo.com/u/3251357314) 及软件全体开发者保留所有权利。不得以 AGPL 3.0 协议已授权为由在未经授权的情况下使用本软件 logo,不得在未经授权的情况下将本软件 logo 用于任何商业用途。
|
||||
- 本软件 logo 并非使用 AGPL 3.0 协议开源,[耗毛](https://weibo.com/u/3251357314)、vie 两位画师及软件全体开发者保留所有权利。不得以 AGPL 3.0 协议已授权为由在未经授权的情况下使用本软件 logo,不得在未经授权的情况下将本软件 logo 用于任何商业用途。
|
||||
- 本软件开源、免费,仅供学习交流使用。若您遇到商家使用本软件进行代练并收费,可能是设备与时间等费用,产生的问题及后果与本软件无关。
|
||||
|
||||
## 广告
|
||||
|
||||
用户交流群:[Telegram 群](https://t.me/+Mgc2Zngr-hs3ZjU1),[QQ 一群(已满)](https://jq.qq.com/?_wv=1027&k=ig786LJZ),[QQ 二群(已满)](https://jq.qq.com/?_wv=1027&k=R3oleoKc),[QQ 三群(已满)](https://jq.qq.com/?_wv=1027&k=mKdOnhWV),[QQ 四群(已满)](https://jq.qq.com/?_wv=1027&k=ABkU8mCR),[QQ 五群](https://jq.qq.com/?_wv=1027&k=To6b6H6m)
|
||||
用户交流群:[Telegram 群](https://t.me/+Mgc2Zngr-hs3ZjU1),[QQ 一群(已满)](https://jq.qq.com/?_wv=1027&k=ig786LJZ),[QQ 二群(已满)](https://jq.qq.com/?_wv=1027&k=R3oleoKc),[QQ 三群(已满)](https://jq.qq.com/?_wv=1027&k=mKdOnhWV),[QQ 四群(已满)](https://jq.qq.com/?_wv=1027&k=ABkU8mCR),[QQ 五群(已满)](https://jq.qq.com/?_wv=1027&k=To6b6H6m),[QQ 六群(已满)](https://jq.qq.com/?_wv=1027&k=PYoCP2lS),[QQ 七群(已满)](https://jq.qq.com/?_wv=1027&k=xDT9vHvB),[QQ 八群](https://jq.qq.com/?_wv=1027&k=PzvqFhOr)
|
||||
自动战斗 JSON 作业分享:[prts.plus](https://prts.plus) 或 [抄作业.com](http://抄作业.com)
|
||||
[Bilibili 直播间](https://live.bilibili.com/2808861):每晚直播敲代码,近期很长一段时间应该都是在写本软件~
|
||||
[舟无关技术交流 & 吹水群(QQ 群)](https://jq.qq.com/?_wv=1027&k=ypbzXcA2):内卷地狱!
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<div align="center">
|
||||
|
||||
<img alt="LOGO" src="https://user-images.githubusercontent.com/18511905/148931479-23aef436-2fc1-4c1e-84c9-bae17be710a5.png" width=360 height=270/>
|
||||
<img alt="LOGO" src="https://cdn.jsdelivr.net/gh/MaaAssistantArknights/design@main/logo/maa-logo_512x512.png" width="256" height="256" />
|
||||
|
||||
# MaaAssistantArknights
|
||||
|
||||
@@ -32,36 +32,25 @@ Development in progress ✿✿ヽ(°▽°)ノ✿
|
||||
|
||||
## Features
|
||||
|
||||
- Auto-battle, drop items recognition, auto-uploading to [Penguin Stats](https://penguin-stats.io/)
|
||||
- Auto-shifting in the infrastructure, auto efficiency calculation of operators, optimal solution in single facility
|
||||
- Auto-recruitment, support for expedited plan. Auto-uploading recruitment data to [Penguin Stats](https://penguin-stats.io/result/stage/recruit/recruit), [Yituliu](https://yituliu.site/maarecruitdata)
|
||||
- Auto-battle, drop items recognition, auto-uploading to [Penguin Stats](https://penguin-stats.io/).
|
||||
- Auto-shifting in the Base, auto efficiency calculation of operators, optimal solution in single room. (Only CN client is supported now.)
|
||||
- Auto-recruitment, support for expedited plan. Auto-uploading recruitment data to [Penguin Stats](https://penguin-stats.io/result/stage/recruit/recruit), [Yituliu](https://yituliu.site/maarecruitdata).
|
||||
- Visiting friends, collecting credits and purchasing items, collecting daily rewards, completing daily quests in one click!
|
||||
- Auto-battle for Integrated Strategy (I.S.) for collecting originium ingots and candles.
|
||||
- Importing JSON task file for auto-battle! [Video](https://www.bilibili.com/video/BV14u411673q/)
|
||||
- Importing JSON task file for auto-battle! [Video](https://www.bilibili.com/video/BV1H841177Fk/)
|
||||
- New feature: Depot recognition! Supports exporting to [Penguin Stats Planner](https://penguin-stats.cn/planner), [Arknight Tools](https://arkn.lolicon.app/#/material), and [ARK-NIGHTS Operator Builds](https://ark-nights.com/settings)
|
||||
|
||||
Talk is cheap. Show me the pictures!
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
## Download
|
||||
|
||||
***Please download `MaaBundle-vX.Y.Z.zip` for first time use***
|
||||
|
||||
***Please download `MaaBundle-vX.Y.Z.zip` for first time use***
|
||||
|
||||
***Please download `MaaBundle-vX.Y.Z.zip` for first time use***
|
||||
|
||||
[Stable](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases/latest)
|
||||
[Development](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases)
|
||||
|
||||
Try fastgit mirror if the download speed is slow:
|
||||
|
||||
[Fastgit Mirror Stable](https://hub.fastgit.xyz/MaaAssistantArknights/MaaAssistantArknights/releases/latest)
|
||||
[Fastgit Mirror Development](https://hub.fastgit.xyz/MaaAssistantArknights/MaaAssistantArknights/releases)
|
||||
|
||||
## How to Use
|
||||
|
||||
### Basic Settings
|
||||
@@ -76,9 +65,10 @@ See also: [User Manual](docs/en-us/1.1-USER_MANUAL.md)
|
||||
|
||||
- The program crashes immediately when I try to run it.
|
||||
- Connection error/not knowing how to fill in ADB path.
|
||||
- Wrong recognition/program freezes after starting.
|
||||
- Connected successfully, then it got stuck.
|
||||
- Custom connection settings.
|
||||
- Download speed is too slow, or the mirror site is not accessible.
|
||||
- Download halfway and prompt "login"/"authentication"
|
||||
|
||||
Please refer to: [FAQ](docs/en-us/1.2-FAQ.md)
|
||||
|
||||
@@ -87,11 +77,11 @@ Please refer to: [FAQ](docs/en-us/1.2-FAQ.md)
|
||||
- Global(EN) Client
|
||||
Supports basic features like Combat, Credit Shopping, Visiting, Collocting, Auto Roguelike(beta), Recruitment calculate, etc. See also [README](resource/global/YoStarEN/readme.md)
|
||||
- JP Client
|
||||
Supports basic features like Combat, Credit Shopping, Auto Recruiting, Visiting, Collocting, Auto Roguelike(beta), Recruitment calculate, etc. See also [README](resource/global/YoStarJP/readme.md)
|
||||
Supports basic features like Combat, Auto Base shift, Credit Shopping, Auto Recruiting, Visiting, Collocting, Auto Roguelike(beta), Recruitment calculate, etc. See also [README](resource/global/YoStarJP/readme.md)
|
||||
- KR Client
|
||||
Supports basic features like Combat, etc. See also [README](resource/global/YoStarKR/readme.md)
|
||||
Supports basic features like Combat, etc. See also [README](resource/global/YoStarKR/readme.md)
|
||||
- ZH_CHT Client
|
||||
Supports basic features like Combat, etc. See also [README](resource/global/txwy/readme.md)
|
||||
Supports basic features like Combat, Auto Recruiting, Auto Roguelike(beta), Recruitment calculate, etc. See also [README](resource/global/txwy/readme.md)
|
||||
|
||||
Due to the small number of overseas clients users and the lack of project manpower, the overseas clients is currently only adapted to basic functions. If you have strong needs, welcome to ask the progress in the [discussions](https://github.com/MaaAssistantArknights/MaaAssistantArknights/discussions), or join us to make MAA better!
|
||||
|
||||
@@ -116,6 +106,7 @@ Due to the small number of overseas clients users and the lack of project manpow
|
||||
- ~~C++ Base64 encoding/decoding[cpp-base64](https://github.com/ReneNyffenegger/cpp-base64)~~
|
||||
- C++ ZIP library: [zlib](https://github.com/madler/zlib)
|
||||
- C++ Gzip library: [gzip-hpp](https://github.com/mapbox/gzip-hpp)
|
||||
- Touch event producer for Android: [minitouch](https://github.com/openstf/minitouch)
|
||||
- WPF MVVW framework: [Stylet](https://github.com/canton7/Stylet)
|
||||
- WPF control library: [HandyControl](https://github.com/HandyOrg/HandyControl)
|
||||
- C# JSON library: [Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json)
|
||||
@@ -150,7 +141,7 @@ Please refer to [Linux Tutorial](docs/en-us/2.1-LINUX_TUTORIAL.md)
|
||||
|
||||
- [C interface](include/AsstCaller.h): [Integration Example](tools/TestCaller/main.cpp)
|
||||
- [Python interface](src/Python/asst.py): [Integration Example](src/Python/sample.py)
|
||||
- [Golang interface](src/Golang/maa/): [Integration Example](src/Golang/cli.go) (deprecated)
|
||||
- [Golang interface](src/Golang/MaaAssistantArknights/): [Integration Example](src/Golang/MaaAssistantArknights/maa/maa.go)
|
||||
- [Dart interface](src/dart/)
|
||||
- [Java interface](src/Java/Maaj): [Integration Example](src/Java/Maaj/src/main/java/com/iguigui/maaj/MaaJavaSample.java)
|
||||
- [Rust interface](src/Rust/src/maa_sys/): [HTTP api](src/Rust)
|
||||
@@ -173,13 +164,13 @@ Please refer to [Issue Bot Usage](docs/en-us/2.3-ISSUE_BOT_USAGE.md) for more de
|
||||
|
||||
## Disclaimer
|
||||
|
||||
- The logo of this software is NOT granted rights under AGPL 3.0 License. The artist [耗毛](https://weibo.com/u/3251357314) and all developers of the software reserves all rights. The logo of the software shall not be used without authorization even if the project has an AGPL 3.0 License. Nor shall the logo be used for commercial purposes without authorization.
|
||||
- The logo of this software is NOT granted rights under AGPL 3.0 License. [耗毛](https://weibo.com/u/3251357314) and Vie, the two artists and all developers of the software reserves all rights. The logo of the software shall not be used without authorization even if the project has an AGPL 3.0 License. Nor shall the logo be used for commercial purposes without authorization.
|
||||
- The software is an open-source, free of charge software only for studying and communication purposes. There is no agreement or understanding between the developers of the software and the 3rd party person who uses this software as an assistant and charges you. In that case, the developers of the software is not responsible for the problems and consequences caused.
|
||||
|
||||
## Advertisement
|
||||
|
||||
[User Group (Telegram)](https://t.me/+Mgc2Zngr-hs3ZjU1)
|
||||
Copilot JSON Sharing: <https://www.prts.plus/>, [QQ Group 1(full)](https://jq.qq.com/?_wv=1027&k=1giyMpPb), [QQ Group 2(full)](https://jq.qq.com/?_wv=1027&k=R3oleoKc), [QQ Group 3(full)](https://jq.qq.com/?_wv=1027&k=mKdOnhWV), [QQ Group 4](https://jq.qq.com/?_wv=1027&k=ABkU8mCR)
|
||||
Copilot JSON Sharing: <https://www.prts.plus/>, [QQ Group 1(full)](https://jq.qq.com/?_wv=1027&k=1giyMpPb), [QQ Group 2(full)](https://jq.qq.com/?_wv=1027&k=R3oleoKc), [QQ Group 3(full)](https://jq.qq.com/?_wv=1027&k=mKdOnhWV), [QQ Group 4(full)](https://jq.qq.com/?_wv=1027&k=ABkU8mCR), [QQ Group 5(full)](https://jq.qq.com/?_wv=1027&k=To6b6H6m), [QQ Group 6(full)](https://jq.qq.com/?_wv=1027&k=PYoCP2lS), [QQ Group 7](https://jq.qq.com/?_wv=1027&k=xDT9vHvB)
|
||||
[Bilibili Live](https://live.bilibili.com/2808861): live coding on this program
|
||||
[Technical Discussion & Talk(QQ Group)](https://jq.qq.com/?_wv=1027&k=ypbzXcA2)
|
||||
[Dev Group(QQ Group)](https://jq.qq.com/?_wv=1027&k=JM9oCk3C)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<div align="center">
|
||||
|
||||
<img alt="LOGO" src="https://user-images.githubusercontent.com/18511905/148931479-23aef436-2fc1-4c1e-84c9-bae17be710a5.png" width=360 height=270/>
|
||||
<img alt="LOGO" src="https://cdn.jsdelivr.net/gh/MaaAssistantArknights/design@main/logo/maa-logo_512x512.png" width="256" height="256" />
|
||||
|
||||
# MaaAssistantArknights
|
||||
|
||||
@@ -37,7 +37,7 @@ MAAは、MAA Assistant Arknightsです。
|
||||
- 自動公開求人、緊急招集票を使う、使い切るのもサポート。[PenguinStats](https://penguin-stats.io/result/stage/recruit/recruit)と[Yituliu](https://yituliu.site/maarecruitdata)へ公開求人データのアップロード
|
||||
- 戦友訪問、FP収集、買い物、デイリーリワード収集、ワンクリックして全自動操作!(現在JPは未対応)
|
||||
- 統合戦略自動作戦、オペレーターとレベルの自動認識、源石錐とキャンドルの自動収集!(現在JPはベータ対応)
|
||||
- 作業JSONファイルをインポートし、自動操作も可能! [ビデオデモ](https://www.bilibili.com/video/BV14u411673q/)(現在JP未対応/中文)
|
||||
- 作業JSONファイルをインポートし、自動操作も可能! [ビデオデモ](https://www.bilibili.com/video/BV1H841177Fk/)(現在JP未対応/中文)
|
||||
- **新機能!倉庫のアイテム認識機能(アルファ)** [Arkplanner](https://penguin-stats.io/planner)/[ARK-NIGHTS.com](https://ark-nights.com/settings)と[アークナイツ ツールボックス](https://arkn.lolicon.app/#/material)へ出力可能!使用方法はツール内文章を参照してください。
|
||||
|
||||
UIを見れば使い方もすぐ分かる!
|
||||
@@ -48,19 +48,8 @@ UIを見れば使い方もすぐ分かる!
|
||||
|
||||
## ダウンロードリンク
|
||||
|
||||
***初めて使用する場合 `MaaBundle-vX.Y.Z.zip` をダウンロードしてください***
|
||||
|
||||
***初めて使用する場合 `MaaBundle-vX.Y.Z.zip` をダウンロードしてください***
|
||||
|
||||
***初めて使用する場合 `MaaBundle-vX.Y.Z.zip` をダウンロードしてください***
|
||||
|
||||
[安定版](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases/latest)
|
||||
[ベータ版](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases)
|
||||
|
||||
ダウンロードが遅い場合はfastgitミラーを試してみてください
|
||||
|
||||
[fastgitミラー安定版](https://hub.fastgit.xyz/MaaAssistantArknights/MaaAssistantArknights/releases/latest)
|
||||
[fastgitミラーベータ版](https://hub.fastgit.xyz/MaaAssistantArknights/MaaAssistantArknights/releases)
|
||||
[ベータ版](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases)
|
||||
|
||||
## マニュアル
|
||||
|
||||
@@ -87,13 +76,13 @@ UIを見れば使い方もすぐ分かる!
|
||||
作戦、戦友訪問、FP交換所、レワード収集、統合戦略(ベータ版)、公開求人認識の機能がサポートされている。
|
||||
サポート内容については[README](resource/global/YoStarEN/readme.md)を参照してください。
|
||||
- 日本サーバー
|
||||
作戦、自動公開求人、戦友訪問、FP交換所、レワード収集、統合戦略(ベータ版)、公開求人認識の機能がサポートされている。
|
||||
作戦、自動基建、自動公開求人、戦友訪問、FP交換所、レワード収集、統合戦略(ベータ版)、公開求人認識の機能がサポートされている。
|
||||
サポート内容については[README](resource/global/YoStarJP/readme.md)を参照してください。
|
||||
- 韓国サーバー
|
||||
基本的な作戦機能のみサポートされている。
|
||||
サポート内容については[README](resource/global/YoStarKR/readme.md)を参照してください。
|
||||
- TXWYサーバー
|
||||
基本的な作戦、自動公開求人、公開求人認識の機能がサポートされている。
|
||||
基本的な作戦、自動公開求人、統合戦略(ベータ版)、公開求人認識の機能がサポートされている。
|
||||
サポート内容については[README](resource/global/txwy/readme.md)を参照してください。
|
||||
|
||||
海外サーバーのユーザーが不足しており、基本的な機能しかサポートされていません。要件があれば[提案](https://github.com/MaaAssistantArknights/MaaAssistantArknights/discussions)ページで提案をお願い致します。~~いっしょにMAAの開発に協力しましょう~~
|
||||
@@ -119,6 +108,7 @@ UIを見れば使い方もすぐ分かる!
|
||||
- ~~C++ base64エンコードとデコード:[cpp-base64](https://github.com/ReneNyffenegger/cpp-base64)~~
|
||||
- C++ 圧縮・解凍ライブラリ:[zlib](https://github.com/madler/zlib)
|
||||
- C++ Gzipカプセル化ライブラリ:[gzip-hpp](https://github.com/mapbox/gzip-hpp)
|
||||
- Android タッチ イベント: [minitouch](https://github.com/openstf/minitouch)
|
||||
- WPF MVVWフレームワーク:[Stylet](https://github.com/canton7/Stylet)
|
||||
- WPFコントロールライブラリ:[HandyControl](https://github.com/HandyOrg/HandyControl)
|
||||
- C# JSONライブラリ:[Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json)
|
||||
@@ -153,7 +143,7 @@ MAAをより良くするために開発・テストに貢献してくれたす
|
||||
|
||||
- [Cインターフェース](include/AsstCaller.h):[統合例](tools/TestCaller/main.cpp)
|
||||
- [Pythonインターフェース](src/Python/asst.py):[統合例](src/Python/sample.py)
|
||||
- [Golangインターフェース](src/Golang/maa/):[統合例](src/Golang/cli.go)(メンテナンスが停止しました orz)
|
||||
- [Golangインターフェース](src/Golang/MaaAssistantArknights/):[統合例](src/Golang/MaaAssistantArknights/maa/maa.go)
|
||||
- [Dartインターフェース](src/dart/)
|
||||
- [Javaインターフェース](src/Java/Maaj/src/main/java/com/iguigui/maaj/easySample/MeoAssistant.java):[統合例](src/Java/Maaj/src/main/java/com/iguigui/maaj/easySample/MaaJavaSample.java)
|
||||
- [Rustインターフェース](src/Rust/src/maa_sys/):[HTTPインターフェース](src/Rust)
|
||||
@@ -176,13 +166,13 @@ MAAをより良くするために開発・テストに貢献してくれたす
|
||||
|
||||
## 免責事項
|
||||
|
||||
- 本ソフトウェアのロゴはAGPL 3.0ライセンスを使用しており、オープンソースではなく、絵師[耗毛](https://weibo.com/u/3251357314)および本ソフトウェアのすべての開発者がすべての権利を留保しています。「AGPL 3.0ライセンスに基づいて許可されている」という理由で、許可がない場合に本ソフトウェアのロゴを無断で使用することは禁止しております。また、許可なく商業目的で本ソフトウェアのロゴを無断で使用することも禁止しております。
|
||||
- 本ソフトウェアのロゴはAGPL 3.0ライセンスを使用しており、オープンソースではなく、[耗毛](https://weibo.com/u/3251357314)とVie、2人のアーティストと開発者がすべての権利を留保しています。「AGPL 3.0ライセンスに基づいて許可されている」という理由で、許可がない場合に本ソフトウェアのロゴを無断で使用することは禁止しております。また、許可なく商業目的で本ソフトウェアのロゴを無断で使用することも禁止しております。
|
||||
- 本ソフトウェアはオープンソースで無料であり、学習と研究のみの目的としています。販売者が本ソフトウェアの料金を請求する場合は、デバイスや時間の料金である可能性があります。発生した問題と結果は、本ソフトウェアとは一切関係ありません。
|
||||
|
||||
## 広告
|
||||
|
||||
[ユーザー研究グループ(Telegram)](https://t.me/+Mgc2Zngr-hs3ZjU1)
|
||||
自動作戦JSON作業シェア:<https://www.prts.plus>、[QQグループ1(満員)](https://jq.qq.com/?_wv=1027&k=ig786LJZ)、[QQグループ2(満員)](https://jq.qq.com/?_wv=1027&k=R3oleoKc)、[QQグループ3(満員)](https://jq.qq.com/?_wv=1027&k=mKdOnhWV)、[QQグループ4](https://jq.qq.com/?_wv=1027&k=ABkU8mCR)
|
||||
自動作戦JSON作業シェア:<https://www.prts.plus>、[QQグループ1(満員)](https://jq.qq.com/?_wv=1027&k=ig786LJZ)、[QQグループ2(満員)](https://jq.qq.com/?_wv=1027&k=R3oleoKc)、[QQグループ3(満員)](https://jq.qq.com/?_wv=1027&k=mKdOnhWV)、[QQグループ4(満員)](https://jq.qq.com/?_wv=1027&k=ABkU8mCR)、[QQグループ5(満員)](https://jq.qq.com/?_wv=1027&k=To6b6H6m)、[QQグループ6(満員)](https://jq.qq.com/?_wv=1027&k=PYoCP2lS)、[QQグループ7](https://jq.qq.com/?_wv=1027&k=xDT9vHvB)
|
||||
[ビリビリ生放送](https://live.bilibili.com/2808861):毎晩ライブでコーディングします、最近はずっとこのソフトウェアのプログラミングをしていることが多いです。
|
||||
[アークナイツ無関係技術研究 & チャットグループ(QQ)](https://jq.qq.com/?_wv=1027&k=ypbzXcA2):インボリューション・ヘル!
|
||||
[開発者グループ(QQ)](https://jq.qq.com/?_wv=1027&k=JM9oCk3C)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<div align="center">
|
||||
|
||||
<img alt="LOGO" src="https://user-images.githubusercontent.com/18511905/148931479-23aef436-2fc1-4c1e-84c9-bae17be710a5.png" width=360 height=270/>
|
||||
<img alt="LOGO" src="https://cdn.jsdelivr.net/gh/MaaAssistantArknights/design@main/logo/maa-logo_512x512.png" width="256" height="256" />
|
||||
|
||||
# MaaAssistantArknights
|
||||
|
||||
@@ -37,7 +37,7 @@ MAA 的意思是 MAA Assistant Arknights
|
||||
- 自動公招,可選使用加急許可,一次全部刷完!公招数据上傳 [企鵝物流](https://penguin-stats.cn/result/stage/recruit/recruit),[一圖流](https://yituliu.site/maarecruitdata)
|
||||
- 訪問好友、收取信用及購物、領取日常獎勵等。一鍵全日常自動長草!
|
||||
- 肉鴿全自動刷源石錠和蠟燭,自動辨識幹員及練度
|
||||
- 導入作業 JSON 檔案,自動抄作業! [影片演示](https://www.bilibili.com/video/BV14u411673q/)
|
||||
- 導入作業 JSON 檔案,自動抄作業! [影片演示](https://www.bilibili.com/video/BV1H841177Fk/)
|
||||
- 新功能:倉庫辨識!支援導出至 [企鵝物流刷圖規劃器](https://penguin-stats.cn/planner), [明日方舟工具箱](https://arkn.lolicon.app/#/material), [ARK-NIGHTS 幹員培養表](https://ark-nights.com/settings)
|
||||
|
||||
話不多說,看圖!
|
||||
@@ -48,19 +48,8 @@ MAA 的意思是 MAA Assistant Arknights
|
||||
|
||||
## 下載連結
|
||||
|
||||
***第一次使用請下載 `MaaBundle-vX.Y.Z.zip`***
|
||||
|
||||
***第一次使用請下載 `MaaBundle-vX.Y.Z.zip`***
|
||||
|
||||
***第一次使用請下載 `MaaBundle-vX.Y.Z.zip`***
|
||||
|
||||
[穩定版](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases/latest)
|
||||
[測試版](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases)
|
||||
|
||||
下載太慢?嘗試使用 fastgit 鏡像
|
||||
|
||||
[fastgit 鏡像穩定版](https://hub.fastgit.xyz/MaaAssistantArknights/MaaAssistantArknights/releases/latest)
|
||||
[fastgit 鏡像測試版](https://hub.fastgit.xyz/MaaAssistantArknights/MaaAssistantArknights/releases)
|
||||
[開發版](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases)
|
||||
|
||||
## 使用說明
|
||||
|
||||
@@ -79,6 +68,7 @@ MAA 的意思是 MAA Assistant Arknights
|
||||
- 辨識錯誤/任務開始後一直不動、沒有反應
|
||||
- 如何連接自定義通訊埠
|
||||
- 下載速度慢,且鏡像站無法打開網頁
|
||||
- 下載到一半提示“登陸”/“鑑權”
|
||||
|
||||
請參考 [常見問題](docs/zh-tw/1.2-常見問題.md)
|
||||
|
||||
@@ -87,11 +77,11 @@ MAA 的意思是 MAA Assistant Arknights
|
||||
- 國際服(美服)
|
||||
支援基本的刷理智、信用購物、訪問好友、領取獎勵、自動肉鴿(測試版本)、公招辨識,請參考 [說明](resource/global/YoStarEN/readme.md)
|
||||
- 日服
|
||||
支援基本的刷理智、信用購物、自動公招、訪問好友、領取獎勵、自動肉鴿(測試版本)、公招辨識,請參考 [說明](resource/global/YoStarJP/readme.md)
|
||||
支援基本的刷理智、自動基建、信用購物、自動公招、訪問好友、領取獎勵、自動肉鴿(測試版本)、公招辨識,請參考 [說明](resource/global/YoStarJP/readme.md)
|
||||
- 韓服
|
||||
支援基本的刷理智功能,請參考 [說明](resource/global/YoStarKR/readme.md)
|
||||
- 繁中服
|
||||
支援基本的刷理智、自動公招、公招辨識功能,請參考 [說明](resource/global/txwy/readme.md)
|
||||
支援基本的刷理智、自動公招、自動肉鴿、領取日常、公招辨識功能,請參考 [說明](resource/global/txwy/readme.md)
|
||||
|
||||
由於外服使用者較少及項目人手不足的問題,外服目前都僅適配了基本的功能。若您有強需求,歡迎在 [討論區](https://github.com/MaaAssistantArknights/MaaAssistantArknights/discussions) 催更,~~或加入我們一起建設 MAA~~
|
||||
|
||||
@@ -116,6 +106,7 @@ MAA 的意思是 MAA Assistant Arknights
|
||||
- ~~C++ base64編解碼:[cpp-base64](https://github.com/ReneNyffenegger/cpp-base64)~~
|
||||
- C++ 解壓壓縮庫:[zlib](https://github.com/madler/zlib)
|
||||
- C++ Gzip封裝:[gzip-hpp](https://github.com/mapbox/gzip-hpp)
|
||||
- 安卓觸控事件器:[minitouch](https://github.com/openstf/minitouch)
|
||||
- WPF MVVW框架:[Stylet](https://github.com/canton7/Stylet)
|
||||
- WPF部件庫:[HandyControl](https://github.com/HandyOrg/HandyControl)
|
||||
- C# JSON庫:[Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json)
|
||||
@@ -150,7 +141,7 @@ MAA 的意思是 MAA Assistant Arknights
|
||||
|
||||
- [C 介面](include/AsstCaller.h):[整合示例](tools/TestCaller/main.cpp)
|
||||
- [Python 介面](src/Python/asst.py):[整合示例](src/Python/sample.py)
|
||||
- [Golang 介面](src/Golang/maa/):[整合示例](src/Golang/cli.go)(已停止維護 orz)
|
||||
- [Golang 介面](src/Golang/MaaAssistantArknights/):[整合示例](src/Golang/MaaAssistantArknights/maa/maa.go)
|
||||
- [Dart 介面](src/dart/)
|
||||
- [Java 介面](src/Java/Maaj/src/main/java/com/iguigui/maaj/easySample/MeoAssistant.java):[整合示例](src/Java/Maaj/src/main/java/com/iguigui/maaj/easySample/MaaJavaSample.java)
|
||||
- [Rust 介面](src/Rust/src/maa_sys/):[HTTP 介面](src/Rust)
|
||||
@@ -173,13 +164,13 @@ MAA 的意思是 MAA Assistant Arknights
|
||||
|
||||
## 聲明
|
||||
|
||||
- 本軟體 logo 並非使用 AGPL 3.0 條款開源,畫師 [耗毛](https://weibo.com/u/3251357314) 及軟體全體開發者保留所有權利。不得以 AGPL 3.0 條款已授權為由在未經授權的情況下使用本軟體 logo, 不得在未經授權的情況下將本軟體 logo 用於任何商業用途。
|
||||
- 本軟體 logo 並非使用 AGPL 3.0 條款開源,[耗毛](https://weibo.com/u/3251357314)、Vie 兩位畫師以及軟體全體開發者保留所有權利。不得以 AGPL 3.0 條款已授權為由在未經授權的情況下使用本軟體 logo, 不得在未經授權的情況下將本軟體 logo 用於任何商業用途。
|
||||
- 本軟體開源、免費,僅供學習交流使用。若您遇到商家使用本軟體進行代練並收費,可能是設備與時間等費用,產生的問題及後果與本軟件無關。
|
||||
|
||||
## 廣告
|
||||
|
||||
[用戶交流群(Telegram 群)](https://t.me/+Mgc2Zngr-hs3ZjU1)
|
||||
自動戰鬥 JSON 作業分享:<https://www.prts.plus> , [QQ 一群(已滿)](https://jq.qq.com/?_wv=1027&k=ig786LJZ),[QQ 二群(已滿)](https://jq.qq.com/?_wv=1027&k=R3oleoKc),[QQ 三群(已滿)](https://jq.qq.com/?_wv=1027&k=mKdOnhWV),[QQ 四群](https://jq.qq.com/?_wv=1027&k=ABkU8mCR)
|
||||
自動戰鬥 JSON 作業分享:<https://www.prts.plus> , [QQ 一群(已滿)](https://jq.qq.com/?_wv=1027&k=ig786LJZ),[QQ 二群(已滿)](https://jq.qq.com/?_wv=1027&k=R3oleoKc),[QQ 三群(已滿)](https://jq.qq.com/?_wv=1027&k=mKdOnhWV),[QQ 四群(已滿)](https://jq.qq.com/?_wv=1027&k=ABkU8mCR),[QQ 五群(已滿)](https://jq.qq.com/?_wv=1027&k=To6b6H6m),[QQ 六群(已滿)](https://jq.qq.com/?_wv=1027&k=PYoCP2lS),[QQ 七群](https://jq.qq.com/?_wv=1027&k=xDT9vHvB)
|
||||
[Bilibili 直播間](https://live.bilibili.com/2808861):每晚直播敲代碼,近期很長一段時間應該都是在寫本軟體~
|
||||
[舟無關技術交流 & 吹水群(QQ 群)](https://jq.qq.com/?_wv=1027&k=ypbzXcA2):內捲地獄!
|
||||
[開發者群(QQ 群)](https://jq.qq.com/?_wv=1027&k=JM9oCk3C)
|
||||
|
||||
@@ -2,20 +2,42 @@
|
||||
|
||||
## 功能介绍
|
||||
|
||||
### 刷理智
|
||||
### 一键长草:刷理智
|
||||
|
||||
- 若选项中没有你需要的关卡,请手动进入游戏 **蓝色开始按钮** 界面,并选择 `当前/上次`。(若当前不处于 **蓝色开始按钮** 界面,则会自动进入游戏中 “上次作战” 的关卡)
|
||||
- 主界面上的 `吃理智`、`吃石头`、`指定次数`、`指定材料` 四个选项为短路开关,即四个选项中的任一条件达到,均会视为任务完成,停止刷理智。
|
||||
- 举例1:设置 `吃理智药` : `999`、`吃石头` : `10`、`指定次数` : `1`。则在刷完 **一次** 后,由于满足了 `指定次数`:`1` 的条件,视为任务完成,停止刷理智。
|
||||
- 举例2:不勾选 `吃理智药`、不勾选 `吃石头`,设置 `指定次数` : `100`。则在当前可用理智全部刷完后(可能只刷了几次),由于满足了 `不吃理智药`、`不吃石头` 的条件,视为任务完成,停止刷理智。
|
||||
- 关卡选择可在 `设置` - `界面设置` 中启用 `手动输入关卡名`,支持全部主线关卡 + 原先下拉列表中的关卡,如 `1-7`, `S3-2`, `CE-6` 等
|
||||
- 若关卡选择中没有你需要的关卡,请在MAA中选择 `当前/上次`,然后在游戏中手动定位关卡,确保画面停留在有 **开始按钮** 和 **代理指挥** 的关卡详情界面。
|
||||
- 若当前不处于此界面,则 `当前/上次` 会自动进入游戏中“上次作战”的关卡(以终端首页右下角记录为准)。
|
||||
- 也可以在 `设置` - `界面设置` 中启用 `手动输入关卡名` 手动输入关卡编号,支持全部主线关卡 + 原先下拉列表中的关卡,如 `1-7`, `S3-2`, `CE-6` 等
|
||||
<details><summary>示例画面</summary>
|
||||
|
||||

|
||||
|
||||
</details>
|
||||
|
||||
- 主界面上的 `吃理智`、`吃石头`、`指定次数`、`指定材料` 四个选项为短路开关,即 **四个选项中的任一条件** 达到,均会视为任务完成,停止刷理智。
|
||||
- 其中:
|
||||
- `吃理智` 指定吃理智药的 **次数**(通常每次 1 瓶,即理智耗尽后开始作战时游戏默认选择的一瓶;小样由于理智较少可能会默认选择多瓶,请注意自行计算次数)
|
||||
- `吃石头` 指定碎石多少次(每次 1 颗)
|
||||
- `指定次数` 指定刷多少次图(例如“刷 15 次停手”)
|
||||
- `指定材料` 指定刷多少个指定的材料(例如“刷 5 个 固源岩 就停”)
|
||||
|
||||
| 例 | 吃理智药 | 吃石头 | 指定次数 | 指定材料 | 结果 |
|
||||
|:--:|:--------:|:------:|:--------:|:---------:|-----------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| A | 999 | 10 | 1 | ✖ | 会尝试吃理智药和/或石头,直到刷满 **一次**,满足了`指定次数:1`的条件,即视为任务完成,停止刷理智;如果一开始理智药不够、石头不够、现有的理智也不够就会不刷图自动结束。 |
|
||||
| B | ✖ | ✖ | 100 | ✖ | 会尝试刷满100次,但在当前可用理智全部刷完后(可能只刷了几次),由于满足了`不吃理智药`、`不吃石头`的条件,无理智可用,视为任务完成,停止刷理智。 |
|
||||
| C | 1 | ✖ | 100 | ✖ | 会尝试刷满100次,期间最多吃 1 次理智药,如果吃了一次理智药理智也刷完了,由于满足了`吃理智药:1`、`不吃石头`的条件,无理智可用,视为任务完成,停止刷理智。 |
|
||||
| D | 999 | ✖ | 100 | 3个固源岩 | 会尝试刷满100次,期间会吃 999 次理智药,但如果在这期间累计刷出了3个固源岩,由于满足了`指定材料:3个固源岩`的条件,视为任务完成,停止刷理智。 |
|
||||
- `指定材料` 与 `关卡选择` 是两个互相独立的逻辑。
|
||||
- `指定材料` 只是以材料个数作为任务完成依据,并不是说你指定了材料就会帮你导航到对应关卡
|
||||
- 支持未勾选 `代理指挥` 时自动勾选,避免你蹭信赖后忘记勾选的尴尬~
|
||||
- 支持识别并显示材料掉落,且会自动上传 [企鹅物流数据统计](https://penguin-stats.cn/),并可设置企鹅用户 ID
|
||||
- `指定材料` 与 `关卡选择` 是两个互相独立的逻辑:`指定材料` 是用来限制刷取次数的,比如 “刷 5 个 固源岩就停” 这样的需求,并不是说你指定了材料就会帮你导航到对应关卡
|
||||
- 掉线后会重连,继续刷上次的图;凌晨 4 点刷新后也会重连,继续刷上次的图
|
||||
- 支持剿灭模式自动使用 `全权委托`
|
||||
- 支持打完升级了的情况;支持代理失败的情况,会自动放弃本次行动
|
||||
- 支持剩余理智清空
|
||||
- 主任务刷完后,自动跳到指定关卡清理剩余的“边角”理智(如剩下的理智拿来刷 1-7)
|
||||
- 如果剩余理智不够清空(比如要刷 1-7 但连6理智都不够)则会立即结束任务
|
||||
|
||||
### 基建换班
|
||||
### 一键长草:基建换班
|
||||
|
||||
#### 换班策略
|
||||
|
||||
@@ -31,10 +53,15 @@
|
||||
- 若 `无人机用途` 选择 `贸易站-龙门币` ,则将额外识别是否有 `巫恋组`,并优先为其使用。
|
||||
- 会客室仅缺一个线索时,会选择对应流派的干员;否则会选择通用干员。
|
||||
- 会客室仅当自有线索满时,才会送出线索,并且只送三个。有需要的同学可自行修改 `resource/tasks.json` 中 `SelectClue` - `maxTimes` 字段,自定义送出个数。
|
||||
- 若不希望 `艾丽妮` 等干员在训练室未训练时被进驻到宿舍,可在设置中关闭 `不将已进驻干员放入宿舍`。但可能会带来加工站中心情不满的干员也不进驻宿舍的问题。
|
||||
- 若不希望 `艾丽妮` 等干员在训练室未训练时被进驻到宿舍,可在设置中打开 `不将已进驻干员放入宿舍`。但可能会带来加工站中心情不满的干员也不进驻宿舍的问题。
|
||||
- 控制中枢策略太过复杂,目前只考虑 `阿米娅`、`诗怀雅`、`凯尔希`、`彩虹小队` 及其他心情 +0.05 的干员,后续逐步优化。
|
||||
- 部分异格干员会在基建内产生冲突,请留意辅助界面上是否有提示 “干员冲突”,若有请手动再查看下基建换班情况(可能会有某个设施没人)
|
||||
|
||||
#### 自定义基建换班(测试功能)
|
||||
|
||||
一图流的大佬们帮忙写了一个 [排班生成器](https://yituliu.site/riicCal/),请参考 [文档](3.6-基建排班协议.md) 使用
|
||||
在 `resource/custom_infrast` 中内置了几套极限效率的作业,也可用作参考
|
||||
|
||||
### 公开招募识别
|
||||
|
||||
- 自动公招和公招识别是两个独立的功能!
|
||||
@@ -42,14 +69,25 @@
|
||||
- 出 5、6 星都会有弹出通知提示
|
||||
- 自动公招时自动选取数据上传 [企鹅物流数据统计](https://penguin-stats.cn/) 和 [素材获取一图流](https://yituliu.site/)
|
||||
|
||||
### 自动肉鸽功能
|
||||
### 一键长草:自动肉鸽
|
||||
|
||||
- 请在MAA设置中选择 `傀影/水月` 主题,并在游戏中将对应的肉鸽主题“订阅到终端”(PIN UP),否则会因为默认显示最新一期主题而可能出现问题。
|
||||
- 如果不订阅主题,请确保当前界面为肉鸽主题的大厅页面(有“开始探索”/“继续探索”按钮)后再启动本功能。
|
||||
- 如果存在非目标主题的探索(如你打算用MAA刷水月,但现在还有一个未完成的傀影主题探索),请手动结束它。
|
||||
<details><summary>订阅方法</summary>
|
||||
|
||||

|
||||
|
||||
</details>
|
||||
|
||||
- 设置中可选择分队、开局干员(仅单个干员名)等
|
||||
- 支持自动识别干员及练度,并自动选择较优干员及技能
|
||||
- 支持识别商店物品,优先购买更厉害的收藏品
|
||||
- 支持掉线重连、支持凌晨 4 点更新后继续回去刷
|
||||
- 战斗过程中如果刮痧了一直打不完,超过 5 分钟会自动撤退所有地面单位;超过 6 分钟会自动放弃当局战斗,不会卡住
|
||||
- 如果软件出现 bug 卡住了,会自动放弃当次探索并重试。但如果经常在某个地方卡住然后放弃、严重影响效率的,欢迎提个 issue 反馈一下~
|
||||
|
||||
### 自动抄作业
|
||||
### 自动战斗/抄作业
|
||||
|
||||
欢迎使用作业分享站 www.抄作业.com, www.prts.plus 分享/使用 作业文件!
|
||||
|
||||
@@ -69,19 +107,22 @@
|
||||
- 欢迎使用作业分享站 www.抄作业.com, www.prts.plus 分享自己的作业!
|
||||
- 推荐在作业描述里填上你自己的名字(作者名)、参考的攻略视频 url, 其他想说的等等
|
||||
|
||||
### 仓库识别
|
||||
### 仓库识别 (测试功能)
|
||||
|
||||
请从仓库 `养成材料` 界面开始功能。目前仅支持导出到几个数据站,后面可能会用来做一些更实用的功能(画饼
|
||||
|
||||
初版功能,请从仓库 `养成材料` 界面开始功能。目前仅支持导出到几个数据站,后面可能会用来做一些更实用的功能(画饼
|
||||
如您是某个数据站站长,也欢迎联系我们适配贵站的材料 JSON 协议~
|
||||
|
||||
### 其他乱七八糟的说明
|
||||
|
||||
- 主界面上要执行的任务,是可以拖动改变顺序的。同样设置中基建换班的顺序,也是可以拖动改变的。
|
||||
- 主界面和设置中更改的配置一般都会自动保存,含有 * 号的选项除外。
|
||||
- 主界面和设置中更改的配置一般都会自动保存,含有 `*` 号的选项除外。
|
||||
- 所有点击操作,都是点击按钮内随机位置,并模拟泊松分布(按钮偏中间位置点的概率大,越往旁边点到的概率越小)。
|
||||
- 底层算法纯 C++ 开发,并设计了多重的缓存技术,最大限度降低 CPU 和内存占用。
|
||||
- 软件支持自动更新 ✿✿ヽ(°▽°)ノ✿ 推荐非杠精的同学使用测试版,一般来说更新快且 bug 少(什么 MIUI (╯‵□′)╯︵┻━┻
|
||||
- 如果新版本自动下载失败,可手动下载后,直接把压缩包放到同目录下,会自动更新的。
|
||||
- 我们还提供了 GPU 版本 ~~图一乐版本~~ ,最少需要 6G 显存的 N 卡(建议 8G 或更高),实测 CPU 占用大幅下降,但内存会占用 3G 以上,显存占用 4G 以上。有兴趣的朋友可自行体验:[下载地址](https://115.com/s/sw6qxpd3hu0?password=j2f1&#),下载后替换到 MAA 中即可,若链接不可用也可以去 QQ 群文件获取~
|
||||
|
||||
|
||||
## 其他功能
|
||||
|
||||
|
||||
@@ -49,16 +49,19 @@ _注意蓝叠安装完后,需要在模拟器设置中打开 `Android 调试桥
|
||||
|
||||
重启能解决 90% 的问题(确信
|
||||
|
||||
## 识别错误/任务开始后一直不动、没有反应
|
||||
## 连接正常,完全没反应,一点不动
|
||||
|
||||
提示 1. 自动战斗功能,是需要手动点到关卡页有 `开始行动` 按钮的地方再开始任务的。请确认是否是这个问题~
|
||||
提示 2. 按照下面的次序依次进行,若问题解决则无需继续向下
|
||||
部分模拟器自带的 adb 版本过于老旧,不支持 minitouch 相关操作。
|
||||
|
||||
1. 请根据 [模拟器支持情况](1.3-模拟器支持.md) 确定您的模拟器是受支持的
|
||||
2. 修改模拟器分辨率设置,`320 dpi`
|
||||
3. 修改模拟器分辨率设置,横屏 `1280 * 720` 分辨率
|
||||
4. 换模拟器,推荐 [蓝叠国际版](https://www.bluestacks.com/download.html) Nougat 64 bit(请注意蓝叠需要在模拟器设置里开启 adb)
|
||||
5. 若仍有问题,请提 issue
|
||||
请使用管理员权限打开 MAA,点击 MAA 设置 - 连接设置 - 强制替换 ADB (建议关闭模拟器并重启 MAA 后再操作,不然可能替换不正确)
|
||||
|
||||
如果即使这样也无法正常使用,请勾选 “兼容性的触控模式”。
|
||||
|
||||
## 连接正常,偶尔能点几下,然后就卡住了,或者任务出错了
|
||||
|
||||
- 自动战斗功能,是需要手动点到关卡页有 `开始行动` 按钮的地方再开始任务的。请确认是否是这个问题~
|
||||
- 若您使用外服,请先在设置 - 启动设置 - 选择客户端版本。且并不是所有功能都是被支持的,请参考对应的外服使用文档
|
||||
- 若您进行的是肉鸽模式,请参考 [文档](1.1-详细介绍.md#一键长草自动肉鸽) 将需要刷的肉鸽“订阅到终端”,并在 设置 - 肉鸽设置 中选择正确的 肉鸽主题
|
||||
|
||||
## 自定义连接
|
||||
|
||||
@@ -73,3 +76,7 @@ _注意蓝叠安装完后,需要在模拟器设置中打开 `Android 调试桥
|
||||
4. 将链接地址粘贴到浏览器地址栏
|
||||
5. 将链接地址中的 `github.com` 替换为 `download.fastgit.org`
|
||||
6. 回车以开始下载
|
||||
|
||||
## 下载到一半提示“登陆”/“鉴权”
|
||||
|
||||
请使用 浏览器 / IDM / FDM 等正规下载器下载文件,**不要用傻逼迅雷!**
|
||||
|
||||
@@ -36,19 +36,20 @@
|
||||
|
||||
## ✅ [夜神模拟器](https://www.yeshen.com/)
|
||||
|
||||
完美支持
|
||||
完美支持。
|
||||
|
||||
## ✅ [夜神模拟器 安卓 9](https://www.yeshen.com/)
|
||||
|
||||
完美支持
|
||||
完美支持。
|
||||
|
||||
## ⚠️ [MuMu 模拟器](https://mumu.163.com/)
|
||||
|
||||
支持。但
|
||||
|
||||
- 需要使用管理员权限打开 MAA 才能自动获取 adb 路径和地址(因为 MuMu 本身是管理员启动的)
|
||||
- 如果不希望管理员启动,可以在 MAA 设置中自行填写 adb 路径和地址
|
||||
- 可能会卡在主界面无法识别,过一会提示任务出错:和 MuMu 的渲染方式有关,暂时不知道根本原因,推荐换模拟器(
|
||||
- 需要使用管理员权限打开才能支持 “完成后退出模拟器” 相关功能
|
||||
- 不推荐使用 mumu 默认的几个奇葩分辨率,最好改成主流的 `1280x720`, `1920x1080`, `2560x1440` 等
|
||||
- MuMu 多开使用的是同一个 adb 端口,所以无法支持多开的 MuMu
|
||||
|
||||
## 🚫 MuMu 手游助手(星云引擎)
|
||||
|
||||
@@ -58,14 +59,20 @@
|
||||
|
||||
不支持。adb 截图出来是黑的,无法解决
|
||||
|
||||
## 🚫 MuMu 模拟器 X
|
||||
|
||||
不支持。adb 截图出来是透明的,无法解决
|
||||
|
||||
## 🚫 雷电模拟器
|
||||
|
||||
勉强支持,但非常不推荐使用。雷电存在小概率画面颠倒及黑屏的问题,会造成各种奇怪的问题。
|
||||
例如准备点击左上角返回键的一瞬间画面颠倒 180°,导致点到了右下角的碎石确认按钮,造成误碎石(这个情况有用户真实遇到过)
|
||||
勉强支持,但非常不推荐使用。
|
||||
雷电存在各样奇怪的问题,包括但不限于端口变动导致连接失败、游戏卡死、截图黑屏、画面颠倒等。
|
||||
我们为兼容雷电耗费了大量的精力,结果还是会有层出不穷并难以解决的新问题。最终我们决定放弃对雷电模拟器的支持。
|
||||
如果你可以使用,那当然更好;如果无法使用或存在异常,请更换模拟器,或自行尝试解决,我们不接受雷电模拟器的问题反馈(当然啦,如果有需要,我们仍然欢迎你提交相关的 PR)
|
||||
|
||||
## ⚠️ [逍遥模拟器](https://www.xyaz.cn/)
|
||||
|
||||
支持。但可能有莫名其妙的识别错误问题
|
||||
完美支持,但测试较少。
|
||||
|
||||
## 🚫 腾讯手游助手
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ sudo ldconfig
|
||||
1. 直接拷贝上面编译的第三方库到 `3rdparty/lib` 或者 手动修改 `CMakeLists.txt` 指定第三方库路径
|
||||
2. `3rdparty/include/opencv` 中的头文件是 `4.5.3` 版本的,若是使用其他版本,请注意头文件冲突问题(直接将你的 `opencv` 头文件覆盖过去就好)
|
||||
3. 安装 `adb`
|
||||
4. 复制资源文件到 `libMeoAssitant.so` 同一目录下
|
||||
4. 复制资源文件到 `libMeoAssistant.so` 同一目录下
|
||||
|
||||
```sh
|
||||
cd tools
|
||||
|
||||
@@ -2,6 +2,12 @@
|
||||
|
||||
## Github Pull Request 流程简述
|
||||
|
||||
### 我不懂编程,只是想改一点点 JSON 文件/文档等,要怎么操作?
|
||||
|
||||
欢迎收看 [牛牛也能看懂的 GitHub Pull Request 使用指南](2.4-纯网页端PR教程.md) (纯网页端操作)
|
||||
|
||||
### 我会编程,但没接触过 GitHub/C++/……,要怎么操作?
|
||||
|
||||
1. 如果很久以前 fork 过,先在自己仓库的 `Settings` 里,翻到最下面,删除
|
||||
2. 打开 [MAA 主仓库](https://github.com/MaaAssistantArknights/MaaAssistantArknights),点击 `Fork`,继续点击 `Create fork`
|
||||
3. clone 仓库(你自己账号下) dev 分支到本地
|
||||
|
||||
113
docs/2.4-纯网页端PR教程.md
Normal file
@@ -0,0 +1,113 @@
|
||||
# 牛牛也能看懂的 GitHub Pull Request 使用指南 (\*´▽`)ノノ
|
||||
|
||||
⚠️ **PALLAS WARNING** ⚠️ **叠 buff 警告** ⚠️
|
||||
|
||||
本教程中对很多概念进行了简化,为了让更多朋友能实际用起来,甚至有一些很不优雅~~但是简单~~的操作,还有一些不那么正确的解释,还请大佬们轻喷。
|
||||
若您有一定的 git 使用经验及编程基础,~~那你还看个~~🔨,可以看稍微进阶一点的教程 [Github Pull Request 流程简述](2.2-开发相关.md)
|
||||
|
||||
## 基本概念及名词解释
|
||||
|
||||
这一章节内容略微枯燥,不感兴趣可以直接跳过到下面实操部分,有不理解的再回来看
|
||||
|
||||
### Repository(仓库)
|
||||
|
||||
简称 repo,存放我们代码及其他资源文件的地方
|
||||
|
||||
👇 可以简单理解为当前这个网页及里面所有的内容,就是 MAA 的仓库(我们一般称之为 MAA 的主仓库)
|
||||
|
||||

|
||||
|
||||
### Fork(复制)
|
||||
|
||||
复制,字面意思,将 MAA 的代码复制一份,然后可以进行后续修改等等的操作,避免把原来的弄坏了
|
||||
但一般说中文“复制”我们可能首先想到的是 copy 的意思,fork 也没有其他明确的翻译,所以我们一般习惯直接说英文,比如“把代码 fork 一份走”
|
||||
|
||||
既然是复制后的,那就是 `MAA (1)`(bushi)
|
||||
为了和原本的仓库区分开,所以我们一般将原本的 MAA 仓库称为 “主仓库”、“upstream(上游仓库)”、“origin(原仓库)”;
|
||||
因为每个人都可以自己复制一份走,所以复制后的称之为“个人仓库”
|
||||
|
||||

|
||||
|
||||
### Pull Request(拉取请求、合并请求)
|
||||
|
||||
简称 PR,“拉取请求”这个太直译了,听起来很奇怪,~~而且字太多了打起来太累~~,所以也是一样的大家一般就直接说:“来个PR”
|
||||
书接上文,你 fork(复制)的个人仓库,修改完了,怎么把内容提供给主仓库呢?这时候我们就可以开一个 PR,申请将自己修改的内容加入到主仓库中。
|
||||
|
||||
当然啦,既然是“请求”,那自然是需要审批的,MAA Team 的各位可能会针对你的修改提一些意见等,当然我们的意见也不一定完全正确,大家合理讨论~
|
||||
|
||||
👇 下面的是目前大佬们提的 PR,正在等待审批的
|
||||
|
||||

|
||||
|
||||
### Conflict(冲突)
|
||||
|
||||
假设一下,主仓库中有个 A 文件,它的内容是 111
|
||||
你 fork 了一份,将其内容改成了 222,但是你刚准备提交 PR,这时候张三也 fork 了一份并提交了 PR,并将 A 文件改成了 333
|
||||
这时候我们就会看到,你俩都修改了 A 文件,并且修改的不同,那听谁的好呢?这就是 Conflict(冲突)
|
||||
冲突解决起来比较麻烦,这里仅阐述概念,方便实际遇到时能理解发生了什么,暂不阐述解决方案
|
||||
|
||||
## 纯网页端 PR 操作全流程
|
||||
|
||||
1. 首先进入 MAA 主仓库,fork 一份代码
|
||||
|
||||

|
||||
|
||||
2. 把 “仅 master 分支” 这个选项去掉,然后点击 Create Fork
|
||||
|
||||

|
||||
|
||||
3. 接下来来到了你的个人仓库,可以看到标题是 “你的名字/MaaAssistantArknights”,下面一行小字 forked from MaaAssistantArknights/MaaAssistantArknights (复制自 MAA 主仓库)
|
||||
|
||||

|
||||
|
||||
4. 切换到 dev 分支(分支这个概念和本文关系不大,~~其实是我懒得写~~,有兴趣可以搜索了解下,这里只需要这样操作即可,暂时不用关心原理)
|
||||
|
||||

|
||||
|
||||
5. 找到你要改的文件,可以点 “Go to file” 进行全局搜索,也可以直接在下面的文件夹里翻(如果你知道文件在哪的话)
|
||||
|
||||

|
||||
|
||||
6. 打开文件后,直接点击文件右上角的 ✏️ 进行编辑
|
||||
|
||||

|
||||
|
||||
7. 开改!(当然如果是资源文件这种,我们建议先在你电脑上的 MAA 文件夹里测试修改,确认没问题了再粘贴到网页上,避免改错了)
|
||||
8. 改完了,翻到最下面,写一下你改了啥
|
||||
|
||||

|
||||
|
||||
9. 还有第二个文件要改的?改完了发现弄错了想再改改?都没关系!重复 5-8 即可!
|
||||
10. 全改好了进行 PR !直接点 **个人仓库** 里的 Pull Request 标签页
|
||||
如果有 Compare & Pull Request 按钮,那最好,直接点他!如果没有也不用着急,点下面的 New Pull Request 也是一样的(请看步骤 11)
|
||||
|
||||

|
||||
|
||||
11. 这时候来到了主仓库,请核对一下你要 PR 的是否确认。
|
||||
如图中,中间有个向左的箭头,是将右边的的 个人姓名/MAA 的 dev 分支,申请合并到 主仓库/MAA 的 dev 分支。
|
||||
然后写一下标题,你要修改了的具体内容等等的,然后点确认
|
||||
|
||||

|
||||
|
||||
12. 等待 MAA Team 的大佬们审核吧!当然他们也可能会提意见
|
||||
👇 比如(纯属娱乐切勿当真)
|
||||

|
||||
|
||||
13. 如果大佬们说要再修改一些小问题的话,回到 **你的个人仓库**,切换到先前的 dev 分支,重复 步骤 3-9 即可!
|
||||
注意不需要操作步骤 2(重新 fork),也不需要操作步骤 10(重新 Pull Request),你当前的 Pull Request 仍处于待审核状态,后续的修改会直接进入到这个 Pull Request 中
|
||||
👇 比如可以看到最下面多了一条“重新修改演示”的内容
|
||||

|
||||
|
||||
14. 等大佬们审批通过,就全部完成啦!**版本发布后**,你的 GitHub 头像将会自动进入到贡献者列表名单中,非常感谢各位的无私奉献!
|
||||
~~怎么全是二次元啊,哦我也是啊,那没事了~~
|
||||

|
||||
|
||||
15. 下次如果还想提别的 PR,请先切换到 dev 分支,然后直接如下图操作
|
||||
**请注意!** 这个操作会强制将你的个人仓库同步到和主仓库一模一样的状态,这是最简单粗暴但行之有效的解决冲突的方法。但如果你的个人仓库已经有额外的编辑了,会被直接删掉!
|
||||
如果确定不会造成冲突,请使用右侧绿色的 `Update Branch` 按钮
|
||||
|
||||
如果你不清楚/不 care 我上面说的这一大堆,也请点击左侧的按钮
|
||||
|
||||

|
||||
|
||||
接着重复步骤 3-14,修改、提 PR 即可~
|
||||
@@ -7,7 +7,7 @@
|
||||
#### 接口原型
|
||||
|
||||
```c++
|
||||
TaskId ASSTAPI AsstAppendTask(AsstHandle handle, const char* type, const char* params);
|
||||
AsstTaskId ASSTAPI AsstAppendTask(AsstHandle handle, const char* type, const char* params);
|
||||
```
|
||||
|
||||
#### 接口说明
|
||||
@@ -16,7 +16,7 @@ TaskId ASSTAPI AsstAppendTask(AsstHandle handle, const char* type, const char* p
|
||||
|
||||
#### 返回值
|
||||
|
||||
- `TaskId`
|
||||
- `AsstTaskId`
|
||||
若添加成功,返回该任务 ID, 可用于后续设置任务参数;
|
||||
若添加失败,返回 0
|
||||
|
||||
@@ -185,6 +185,9 @@ TaskId ASSTAPI AsstAppendTask(AsstHandle handle, const char* type, const char* p
|
||||
```jsonc
|
||||
{
|
||||
"enable": bool, // 是否启用本任务,可选,默认为 true
|
||||
"theme": string, // 肉鸽名,可选,默认 "Phantom"
|
||||
// Phantom - 傀影与猩红血钻
|
||||
// Mizuki - 水月与深蓝之树
|
||||
"mode": int, // 模式,可选项。默认 0
|
||||
// 0 - 刷蜡烛,尽可能稳定的打更多层数
|
||||
// 1 - 刷源石锭,第一层投资完就退出
|
||||
@@ -230,7 +233,7 @@ TaskId ASSTAPI AsstAppendTask(AsstHandle handle, const char* type, const char* p
|
||||
#### 接口原型
|
||||
|
||||
```c++
|
||||
bool ASSTAPI AsstSetTaskParams(AsstHandle handle, TaskId id, const char* params);
|
||||
bool ASSTAPI AsstSetTaskParams(AsstHandle handle, AsstTaskId id, const char* params);
|
||||
```
|
||||
|
||||
#### 接口说明
|
||||
@@ -246,8 +249,74 @@ bool ASSTAPI AsstSetTaskParams(AsstHandle handle, TaskId id, const char* params)
|
||||
|
||||
- `AsstHandle handle`
|
||||
实例句柄
|
||||
- `TaskId task`
|
||||
- `AsstTaskId task`
|
||||
任务 ID, `AsstAppendTask` 接口的返回值
|
||||
- `const char* params`
|
||||
任务参数,json string,与 `AsstAppendTask` 接口相同。
|
||||
未标注“不支持运行中设置”的字段都支持实时修改;否则若当前任务正在运行,会忽略对应的字段
|
||||
|
||||
### `AsstSetProcessOption`
|
||||
|
||||
#### 接口原型
|
||||
|
||||
```c++
|
||||
bool ASSTAPI AsstSetProcessOption(AsstProcessOptionKey key, const char* value);
|
||||
```
|
||||
|
||||
#### 接口说明
|
||||
|
||||
设置进程级参数
|
||||
|
||||
#### 返回值
|
||||
|
||||
- `bool`
|
||||
返回是否设置成功
|
||||
|
||||
#### 参数说明
|
||||
|
||||
- `AsstProcessOptionKey key`
|
||||
键
|
||||
- `const char* value`
|
||||
值
|
||||
|
||||
##### 键值一览
|
||||
|
||||
暂无
|
||||
|
||||
### `AsstSetProcessOption`
|
||||
|
||||
#### 接口原型
|
||||
|
||||
```c++
|
||||
bool ASSTAPI AsstSetInstanceOption(AsstHandle handle, AsstInstanceOptionKey key, const char* value);
|
||||
```
|
||||
|
||||
#### 接口说明
|
||||
|
||||
设置实例级参数
|
||||
|
||||
#### 返回值
|
||||
|
||||
- `bool`
|
||||
返回是否设置成功
|
||||
|
||||
#### 参数说明
|
||||
|
||||
- `AsstHandle handle`
|
||||
实例句柄
|
||||
- `AsstInstanceOptionKey key`
|
||||
键
|
||||
- `const char* value`
|
||||
值
|
||||
|
||||
##### 键值一览
|
||||
|
||||
```jsonc
|
||||
enum InstanceOptionKey
|
||||
{
|
||||
Invalid = 0,
|
||||
MinitouchEnabled = 1, // 是否启用 minitouch
|
||||
// 开了也不代表就一定能用,有可能设备不支持等
|
||||
// "1" 开,"0" 关
|
||||
};
|
||||
```
|
||||
|
||||
@@ -15,20 +15,24 @@ typedef void(ASST_CALL* AsstCallback)(int msg, const char* details, void* custom
|
||||
enum class AsstMsg
|
||||
{
|
||||
/* Global Info */
|
||||
InternalError = 0, // 内部错误
|
||||
InitFailed, // 初始化失败
|
||||
ConnectionInfo, // 连接相关信息
|
||||
AllTasksCompleted, // 全部任务完成
|
||||
InternalError = 0, // 内部错误
|
||||
InitFailed = 1, // 初始化失败
|
||||
ConnectionInfo = 2, // 连接相关信息
|
||||
AllTasksCompleted = 3, // 全部任务完成
|
||||
|
||||
/* TaskChain Info */
|
||||
TaskChainError = 10000, // 任务链执行/识别错误
|
||||
TaskChainStart, // 任务链开始
|
||||
TaskChainCompleted, // 任务链完成
|
||||
TaskChainExtraInfo, // 任务链额外信息
|
||||
TaskChainError = 10000, // 任务链执行/识别错误
|
||||
TaskChainStart = 10001, // 任务链开始
|
||||
TaskChainCompleted = 10002, // 任务链完成
|
||||
TaskChainExtraInfo = 10003, // 任务链额外信息
|
||||
TaskChainStopped = 10004, // 任务链手动停止
|
||||
|
||||
/* SubTask Info */
|
||||
SubTaskError = 20000, // 原子任务执行/识别错误
|
||||
SubTaskStart, // 原子任务开始
|
||||
SubTaskCompleted, // 原子任务完成
|
||||
SubTaskExtraInfo // 原子任务额外信息
|
||||
SubTaskError = 20000, // 原子任务执行/识别错误
|
||||
SubTaskStart = 20001, // 原子任务开始
|
||||
SubTaskCompleted = 20002, // 原子任务完成
|
||||
SubTaskExtraInfo = 20003, // 原子任务额外信息
|
||||
SubTaskStopped = 20004, // 原子任务手动停止
|
||||
};
|
||||
```
|
||||
|
||||
@@ -96,7 +100,7 @@ Todo
|
||||
{
|
||||
"taskchain": string, // 最后的任务链
|
||||
"uuid": string, // 设备唯一码
|
||||
"finished_tasks": [ // 已经运行过的任务 id
|
||||
"finished_tasks": [ // 已经运行过的任务 id
|
||||
int,
|
||||
...
|
||||
]
|
||||
@@ -186,29 +190,29 @@ Todo
|
||||
汇报到一图流大数据
|
||||
- `InfrastDormDoubleConfirmButton`
|
||||
基建宿舍的二次确认按钮,仅当干员冲突时才会有,请提示用户
|
||||
- `Roguelike1Start`
|
||||
- `StartExplore`
|
||||
肉鸽开始探索
|
||||
- `Roguelike1StageTraderInvestConfirm`
|
||||
- `StageTraderInvestConfirm`
|
||||
肉鸽投资了源石锭
|
||||
- `Roguelike1StageTraderInvestSystemFull`
|
||||
- `StageTraderInvestSystemFull`
|
||||
肉鸽投资达到了游戏上限
|
||||
- `Roguelike1ExitThenAbandon`
|
||||
- `ExitThenAbandon`
|
||||
肉鸽放弃了本次探索
|
||||
- `Roguelike1MissionCompletedFlag`
|
||||
- `MissionCompletedFlag`
|
||||
肉鸽战斗完成
|
||||
- `Roguelike1MissionFailedFlag`
|
||||
- `MissionFailedFlag`
|
||||
肉鸽战斗失败
|
||||
- `Roguelike1StageSafeHouseEnter`
|
||||
- `StageSafeHouseEnter`
|
||||
肉鸽关卡:诡异行商
|
||||
- `Roguelike1StageSafeHouseEnter`
|
||||
- `StageSafeHouseEnter`
|
||||
肉鸽关卡:安全的角落
|
||||
- `Roguelike1StageEncounterEnter`
|
||||
- `StageEncounterEnter`
|
||||
肉鸽关卡:不期而遇/古堡馈赠
|
||||
- `Roguelike1StageCambatDpsEnter`
|
||||
- `StageCambatDpsEnter`
|
||||
肉鸽关卡:普通作战
|
||||
- `Roguelike1StageEmergencyDps`
|
||||
- `StageEmergencyDps`
|
||||
肉鸽关卡:紧急作战
|
||||
- `Roguelike1StageDreadfulFoe`
|
||||
- `StageDreadfulFoe`
|
||||
肉鸽关卡:险路恶敌
|
||||
- `StartGameTask`
|
||||
打开客户端失败(配置文件与传入client_type不匹配)
|
||||
@@ -260,17 +264,20 @@ Todo
|
||||
{
|
||||
"itemId": "3301",
|
||||
"itemName": "技巧概要·卷1",
|
||||
"quantity": 4
|
||||
"quantity": 4,
|
||||
"addQuantity": 2 //本次新增的掉落数量
|
||||
},
|
||||
{
|
||||
"itemId": "3302",
|
||||
"itemName": "技巧概要·卷2",
|
||||
"quantity": 3
|
||||
"quantity": 3,
|
||||
"addQuantity": 1
|
||||
},
|
||||
{
|
||||
"itemId": "3303",
|
||||
"itemName": "技巧概要·卷3",
|
||||
"quantity": 4
|
||||
"quantity": 4,
|
||||
"addQuantity": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -51,21 +51,31 @@
|
||||
"actions": [ // 战斗中的操作。有序,执行完前一个才会去执行下一个。必选
|
||||
{
|
||||
"type": "部署", // 操作类型,可选,默认 "Deploy"
|
||||
// "Deploy" | "Skill" | "Retreat" | "SpeedUp" | "BulletTime" | "SkillUsage" | "Ouput" | "SkillDaemon"
|
||||
// "Deploy" | "Skill" | "Retreat" | "SpeedUp" | "BulletTime" | "SkillUsage" | "Output" | "SkillDaemon"
|
||||
// "部署" | "技能" | "撤退" | "二倍速" | "子弹时间" | "技能用法" | "打印" | "摆完挂机"
|
||||
// 中英文皆可,效果相同
|
||||
// 若为 "部署", 当费用不够时,会一直等待到费用够(除非 timeout)
|
||||
// 若为 "技能", 当技能 cd 没转好时,一直等待到技能 cd 好(除非 timeout)
|
||||
// "二倍速" 是可切换的,即使用一次变成二倍速,再次使用又变回一倍速
|
||||
// "子弹时间" 保留接口,暂未实现,即点击任意干员后的 1/5 速度,再进行任意 action 会恢复正常速度
|
||||
// "子弹时间" 即点击任意干员后的 1/5 速度,再进行任意 action 会恢复正常速度
|
||||
// 仅支持且必须下一条任务是 "部署"、"技能"、"撤退"
|
||||
// 若下一条任务是 "部署",会提前点开该干员,等待满足条件且费用足够后上场
|
||||
// 若下一条任务是 "技能",同样会提前点开该干员,等待满足条件后再开技能
|
||||
// 若下一条任务是 "撤退",同样会提前点开该干员,等待满足条件后再撤退
|
||||
// "打印" 界面不显示这条步骤,仅用于输出 doc 里的内容(用来做字幕之类的)
|
||||
// "摆完挂机" 仅使用 "好了就用" 的技能,其他什么都不做,直到战斗结束
|
||||
|
||||
// 目前下面三个条件是且的关系,即 &&
|
||||
// 目前下面四个条件是且的关系,即 &&
|
||||
"kills": 0, // 击杀数条件,如果没达到就一直等待。可选,默认为 0,直接执行
|
||||
|
||||
"costs": 50, // 费用条件,如果没达到就一直等待。可选,默认为 0,直接执行
|
||||
// 费用受潜能等影响,可能并不完全正确,仅适合对时间轴要求不严格的战斗。
|
||||
// 否则请使用下面的 cost_changes
|
||||
// 另外仅在费用是两位数的时候识别的比较准,三位数的费用可能会识别错,不推荐使用
|
||||
|
||||
"cost_changes": 5, // 费用变化量条件,如果没达到就一直等待。可选,默认为 0,直接执行
|
||||
// 注意是从开始执行本 actions 开始计算的(即前一个 action 结束时的费用作为基准)
|
||||
// 支持负数,即费用变少了(例如“孑”等吸费干员使得费用变少了)
|
||||
// 另外仅在费用是两位数的时候识别的比较准,三位数的费用可能会识别错,不推荐使用
|
||||
|
||||
"cooling": 2, // CD 中干员数量条件,如果没达到就一直等待。可选,默认 -1,不识别
|
||||
@@ -92,7 +102,7 @@
|
||||
// 则可以在对应时刻设置为 1
|
||||
|
||||
"pre_delay": 0, // 前置延时。可选,默认 0, 单位毫秒
|
||||
"rear_delay": 0, // 后置延时。可选,默认 0, 单位毫秒
|
||||
"post_delay": 0, // 后置延时。可选,默认 0, 单位毫秒
|
||||
|
||||
// "timeout": 999999999, // 保留字段,暂未实现。
|
||||
// 超时时间。当 type 为 "部署" | "技能" 时可选。默认 INT_MAX, 单位毫秒
|
||||
|
||||
@@ -15,22 +15,14 @@
|
||||
// - OcrDetect: 文字识别
|
||||
// - Hash: 哈希计算
|
||||
|
||||
"template": "xxx.png", // 仅当 algorithm 为 MatchTemplate 时有效;可选项,要匹配的图片文件名
|
||||
// 不填时写默认 "任务名.png"
|
||||
|
||||
"text": [ "接管作战", "代理指挥" ], // 仅当 algorithm 为 OcrDetect 时有效;必选项,要识别的文字内容,只要任一匹配上了即认为识别到了
|
||||
|
||||
"action": "ClickSelf", // 可选项,表示识别到后的动作
|
||||
// 不填写时默认为 DoNothing
|
||||
// - ClickSelf: 点击识别到的位置(识别到的目标范围内随机点)
|
||||
// - ClickRand: 点击整个画面中随机位置
|
||||
// - DoNothing: 什么都不做
|
||||
// - Stop: 停止当前任务
|
||||
// - ClickRect: 点击指定的区域,对应 specificRect 字段,不建议使用该选项
|
||||
// - SwipeToTheLeft: 滑动到最左侧
|
||||
// - SwipeToTheRight: 滑动到最右侧
|
||||
// - SlowlySwipeToTheLeft: 缓慢左滑
|
||||
// - SlowlySwipeToTheRight: 缓慢右滑
|
||||
// - ClickSelf: 点击识别到的位置(识别到的目标范围内随机点)
|
||||
// - ClickRand: 点击整个画面中随机位置
|
||||
// - ClickRect: 点击指定的区域,对应 specificRect 字段,不建议使用该选项
|
||||
// - DoNothing: 什么都不做
|
||||
// - Stop: 停止当前任务
|
||||
// - Swipe: 滑动,对应 specificRect 与 rectMove 字段
|
||||
|
||||
"sub": [ "SubTaskName1", "SubTaskName2" ],
|
||||
// 可选项,子任务。会在执行完当前任务后,依次执行每一个子任务
|
||||
@@ -41,10 +33,13 @@
|
||||
// 为 false 时,若某个子任务出错,则不继续执行后续任务(相当于本任务出错了)
|
||||
// 为 true 时,子任务是否出错没有影响
|
||||
|
||||
"next": [ "OtherTaskName1", "OtherTaskName2"],
|
||||
"next": [ "OtherTaskName1", "OtherTaskName2" ],
|
||||
// 可选项,表示执行完当前任务和 sub 任务后,下一个要执行的任务
|
||||
// 会从前往后依次去识别,去执行第一个匹配上的
|
||||
// 不填写默认执行完当前任务直接停止
|
||||
// 对于相同任务,第一次识别后第二次就不再识别:
|
||||
// "next": [ "A", "B", "A", "A" ] -> "next": [ "A", "B" ]
|
||||
// 不允许 JustReturn 型任务位于非最后一项
|
||||
|
||||
"maxTimes": 10, // 可选项,表示该任务最大执行次数
|
||||
// 不填写时默认无穷大
|
||||
@@ -57,9 +52,9 @@
|
||||
// 可选项,表示执行出错时,后续要执行的任务
|
||||
|
||||
"preDelay": 1000, // 可选项,表示识别到后延迟多久才执行 action,单位毫秒;不填写时默认 0
|
||||
"rearDelay": 1000, // 可选项,表示 action 执行完后延迟多久才去识别 next, 单位毫秒;不填写时默认 0
|
||||
"postDelay": 1000, // 可选项,表示 action 执行完后延迟多久才去识别 next, 单位毫秒;不填写时默认 0
|
||||
|
||||
"roi": [ 0, 0, 1280, 720], // 可选项,表示识别的范围,格式为 [ x, y, width, height ]
|
||||
"roi": [ 0, 0, 1280, 720 ], // 可选项,表示识别的范围,格式为 [ x, y, width, height ]
|
||||
// 以 1280 * 720 为基准自动缩放;不填写时默认 [ 0, 0, 1280, 720 ]
|
||||
// 尽量填写,减小识别范围可以减少性能消耗,加快识别速度
|
||||
|
||||
@@ -67,20 +62,28 @@
|
||||
// 第一次识别到后,以后永远只在第一次识别到的位置进行识别,开启可大幅节省性能
|
||||
// 但仅适用于待识别目标位置完全不会变的任务,若待识别目标位置会变请设为 false
|
||||
|
||||
"rectMove": [0, 0, 0, 0], // 可选项,识别后的目标移动,不建议使用该选项。以 1280 * 720 为基准自动缩放
|
||||
// 例如识别到了 A 图标,但实际要点击的是 A 图标旁边的某个位置,则进行移动后再点击。
|
||||
// 可以的话尽量直接识别要点击的位置,不建议使用该选项
|
||||
"rectMove": [ 0, 0, 0, 0 ], // 可选项,识别后的目标移动,不建议使用该选项。以 1280 * 720 为基准自动缩放
|
||||
// 例如识别到了 A ,但实际要点击的是 A 下方 10 像素 5 * 2 区域的某个位置,
|
||||
// 则可填写[ 0, 10, 5, 2 ],可以的话尽量直接识别要点击的位置,不建议使用该选项
|
||||
// 额外的,当 action 为 Swipe 时有效且必选,表示滑动终点。
|
||||
|
||||
"reduceOtherTimes": [ "OtherTaskName1", "OtherTaskName2" ],
|
||||
// 可选项,执行后减少其他任务的执行计数。
|
||||
// 例如执行了吃理智药,则说明上一次点击蓝色开始行动按钮没生效,所以蓝色开始行动要-1
|
||||
|
||||
"specificRect": [ 100, 100, 50, 50],
|
||||
// 仅当 action 为 ClickRect 时有效且必选,表示指定的点击位置(范围内随机一点)。
|
||||
"specificRect": [ 100, 100, 50, 50 ],
|
||||
// 当 action 为 ClickRect 时有效且必选,表示指定的点击位置(范围内随机一点)。
|
||||
// 当 action 为 Swipe 时有效且必选,表示滑动起点。
|
||||
// 以 1280 * 720 为基准自动缩放
|
||||
|
||||
"specialParams": [ int, ... ], // 某些特殊识别器需要的参数
|
||||
// 额外的,当 action 为 Swipe 时可选,[0] 表示 duration,[1] 表示 是否启用额外滑动
|
||||
|
||||
/* 以下字段仅当 algorithm 为 MatchTemplate 时有效 */
|
||||
|
||||
"template": "xxx.png", // 可选项,要匹配的图片文件名
|
||||
// 默认 "任务名.png"
|
||||
|
||||
"templThreshold": 0.8, // 可选项,图片模板匹配得分的阈值,超过阈值才认为识别到了。
|
||||
// 默认 0.8, 可根据日志查看实际得分是多少
|
||||
|
||||
@@ -90,14 +93,22 @@
|
||||
|
||||
/* 以下字段仅当 algorithm 为 OcrDetect 时有效 */
|
||||
|
||||
"fullMatch": false, // 可选项,文字识别是否需要全字匹配(不能多字),默认为 false
|
||||
// false 时只要是子串即可:例如 text: [ "开始" ],实际识别到了 "开始行动",也算识别成功;
|
||||
// true 时则必须识别到了 "开始",多一个字都不行
|
||||
"text": [ "接管作战", "代理指挥" ], // 必选项,要识别的文字内容,只要任一匹配上了即认为识别到了
|
||||
|
||||
"ocrReplace": [ // 可选项,针对常见识别错的文字进行替换(支持正则)
|
||||
[ "千员", "干员" ],
|
||||
[ ".+击干员", "狙击干员" ]
|
||||
]
|
||||
],
|
||||
|
||||
"fullMatch": false, // 可选项,文字识别是否需要全字匹配(不能多字),默认为 false
|
||||
// false 时只要是子串即可:例如 text: [ "开始" ],实际识别到了 "开始行动",也算识别成功;
|
||||
// true 时则必须识别到了 "开始",多一个字都不行
|
||||
|
||||
"isAscii": false, // 可选项,要识别的文字内容是否为 ASCII 码字符
|
||||
// 不填写默认 false
|
||||
|
||||
"withoutDet": false // 可选项,是否不使用检测模型
|
||||
// 不填写默认 false
|
||||
|
||||
/* 以下字段仅当 algorithm 为 Hash 时有效 */
|
||||
// 算法不成熟,仅部分特例情况中用到了,暂不推荐使用
|
||||
@@ -106,48 +117,108 @@
|
||||
}
|
||||
```
|
||||
|
||||
## 一些小技巧
|
||||
|
||||
- `next` 中再填写自身的任务名,可形成循环。例如
|
||||
## 特殊任务类型
|
||||
|
||||
```jsonc
|
||||
### Template Task(`@` 型任务)
|
||||
|
||||
Template task 与 base task 合称**模板任务**。
|
||||
|
||||
允许把某个任务 "A" 当作模板,然后 "B@A" 表示由 "A" 生成的任务。
|
||||
|
||||
- 如果 `tasks.json` 中未显式定义任务 "B@A",则在 `sub`, `next`, `onErrorNext`, `exceededNext`, `reduceOtherTimes` 字段中增加 `B@` 前缀(如遇任务名开头为 `#` 则增加 `B` 前缀),其余参数与 "A" 任务相同。就是说如果任务 "A" 有以下参数:
|
||||
```jsonc
|
||||
"A": {
|
||||
"template": "A.png",
|
||||
...,
|
||||
"next": [ "N1", "N2" ]
|
||||
}
|
||||
```
|
||||
就相当于同时定义了
|
||||
```jsonc
|
||||
"B@A": {
|
||||
"template": "A.png",
|
||||
...,
|
||||
"next": [ "B@N1", "B@N2" ]
|
||||
}
|
||||
```
|
||||
- 如果 `tasks.json` 中定义了任务 "B@A",则:
|
||||
1. 如果 "B@A" 与 "A" 的 `algorithm` 字段不同,则派生类参数不继承(只继承 `TaskInfo` 定义的参数)
|
||||
2. 如果是图像匹配任务,`template` 若未显式定义则为 `B@A.png`(而不是继承"A"的 `template` 名),其余情况任何派生类参数若未显式定义,直接继承 "A" 任务的参数
|
||||
3. 对于 `TaskInfo` 基类中定义的参数(任何类型任务都有的参数,例如 `algorithm`, `roi`, `next` 等),若没有在 "B@A" 内显式定义,则除了上面提到的 `sub` 等五个字段在继承时会增加 "B@" 前缀外,其余参数直接继承 "A" 任务的参数
|
||||
|
||||
|
||||
### Base Task
|
||||
|
||||
Base task 与 template task 合称**模板任务**。
|
||||
|
||||
有字段 `baseTask` 的任务即为 base task。
|
||||
|
||||
除了 `template` 未显式定义时仍为 `"任务名.png"`,其余任何参数若未显式定义直接使用 `baseTask` 对应任务的参数。(不加前缀)
|
||||
|
||||
#### 其它相关
|
||||
|
||||
- 外服 `tasks.json` 中定义的同名任务直接继承国服 `tasks.json` 的参数,相当于 `"A": { "baseTask": "国服的A" }`
|
||||
- 如果国服 `tasks.json` 中定义了任务 "B@A",外服 `tasks.json` 中也定义了 "B@A",那么
|
||||
1. 如果外服 "B@A" 有字段 `"baseTask": ""`,则不继承国服 "B@A"
|
||||
- 若有定义任务 "A",则以 template task 的逻辑处理 "B@A"
|
||||
- 若未定义任务 "A",则以普通任务的逻辑处理 "B@A"
|
||||
2. 如果外服 "B@A" 没有 `baseTask`,则直接继承国服 "B@A" 参数
|
||||
|
||||
### Virtual Task(虚任务)
|
||||
|
||||
Virtual task 也称 sharp task(`#` 型任务)。
|
||||
|
||||
任务名带 `#` 的任务即为 virtual task。 `#` 后可接 `next`, `back`, `self`, `sub`, `on_error_next`, `exceeded_next`, `reduce_other_times`。
|
||||
|
||||
| 虚任务类型 | 含义 | 简单示例 |
|
||||
|:---------:|:---:|:--------:|
|
||||
| self | 父任务名 | `"A": {"next": "#self"}` 中的 `"#self"` 被解释为 `"A"`<br>`"B": {"next": "A@B@C#self"}` 中的 `"A@B@C#self"` 被解释为 `"B"`。<sup>1</sup> |
|
||||
| back | # 前面的任务名 | `"A@B#back"` 被解释为 `"A@B"`<br>`"#back"` 直接出现则会被跳过 |
|
||||
| next, sub 等 | # 前任务名对应字段 | 以 `next` 为例:<br>`"A#next"` 被解释为 `Task.get("A")->next`<br>`"#next"` 直接出现则会被跳过 |
|
||||
|
||||
_Note<sup>1</sup>: `"XXX#self"` 与 `"#self"` 含义相同。_
|
||||
|
||||
#### 简单示例
|
||||
|
||||
```json
|
||||
{
|
||||
"Waiting": {
|
||||
"algorithm": "OcrDetect",
|
||||
"text": [ "正在加载" ],
|
||||
"next": [
|
||||
"Succeed", // 首先识别 "加载完成",
|
||||
"Waiting" // 如果没识别到,再识别 "正在加载"
|
||||
]
|
||||
"A": { "next": [ "N1", "N2" ] },
|
||||
"C": { "next": [ "B@A#next" ] },
|
||||
|
||||
"Loading": {
|
||||
"next": [ "#self", "#next", "#back" ]
|
||||
},
|
||||
"Succeed": {
|
||||
"algorithm": "OcrDetect",
|
||||
"text": [ "加载完成" ],
|
||||
"next": [
|
||||
"OtherTask"
|
||||
]
|
||||
"B": {
|
||||
"next": [ "Other", "B@Loading" ]
|
||||
}
|
||||
}
|
||||
```
|
||||
可以得到:
|
||||
```cpp
|
||||
Task.get("C")->next = { "B@N1", "B@N2" };
|
||||
|
||||
- `algorithm` 的 `JustReturn` 不建议形成循环,如果出现 adb 断开等情况,会出现一直当做识别成功
|
||||
Task.get("B@Loading")->next = { "B@Loading", "Other", "B" };
|
||||
Task.get("Loading")->next = { "Loading" };
|
||||
Task.get_raw("B@Loading")->next = { "B#self", "B#next", "B#back" };
|
||||
```
|
||||
|
||||
- 某些任务每次要执行 N 次,可将该任务复制 N 遍,分别取不同的名字,例如
|
||||
#### 一些用途
|
||||
|
||||
```jsonc
|
||||
- 当几个任务有 `"next": [ "#back" ]` 时,`"Task1@Task2@Task3"` 代表依次执行 `Task3`, `Task2`, `Task1`。
|
||||
|
||||
|
||||
#### 其它相关
|
||||
|
||||
```json
|
||||
{
|
||||
"DoIt": {
|
||||
"next": [
|
||||
"DoItAgain"
|
||||
]
|
||||
},
|
||||
"DoItAgain": {
|
||||
"next": [
|
||||
"OtherTask"
|
||||
]
|
||||
}
|
||||
"A": { "next": [ "N0" ] },
|
||||
"B": { "next": [ "A#next" ] },
|
||||
"C@A": { "next": [ "N1" ] }
|
||||
}
|
||||
```
|
||||
以上这种情况, `"C@B" -> next`(即 `C@A#next`)为 `[ "N1" ]` 而不是 `[ "C@N0" ]`.
|
||||
|
||||
|
||||
## Schema 检验
|
||||
|
||||
|
||||
@@ -8,19 +8,65 @@
|
||||
[
|
||||
{
|
||||
"stage_name": "驯兽小屋", // 关卡名,必选
|
||||
"replacement_home": [ // 替换掉家门的位置,可选,默认为空
|
||||
[ 2, 8 ] // 会使用这里面的坐标来代替蓝门的坐标,然后堵门
|
||||
"replacement_home": { // 替换掉家门的位置,可选,默认为空
|
||||
"location": [ // 会使用这里面的坐标来代替蓝门的坐标,然后堵门
|
||||
6,
|
||||
4
|
||||
],
|
||||
"direction": "left" // 优先朝向,但并不代表绝对是这个方向(算法自行判断)
|
||||
// 不填默认 none,即没有推荐方向,完全由算法自行判断
|
||||
// "none / left / right / up / down / 无 / 上 / 下 / 左 / 右"
|
||||
},
|
||||
"blacklist_location": [ // 黑名单点,永远不会在这个格子上部署干员
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
1,
|
||||
1
|
||||
]
|
||||
],
|
||||
"key_kills": [ // 关键击杀数,可选,默认为空
|
||||
15, // 若不为空,干员技能会攒着,不是好了就放,而是等到击杀数达到时再释放
|
||||
... // 当跑完数组里所有的元素之后,再把干员技能变成好了就放
|
||||
],
|
||||
"not_use_dice": false, // 若为true,则核心干员撤退后不使用骰子
|
||||
"role_order": [ // 部署干员的顺序
|
||||
"warrior",
|
||||
"pioneer",
|
||||
"medic",
|
||||
"tank",
|
||||
"sniper",
|
||||
"caster",
|
||||
"support",
|
||||
"special",
|
||||
"drone"
|
||||
],
|
||||
"force_air_defense_when_deploy_blocking_num": { // 填不填写均不影响正常部署逻辑
|
||||
"melee_num": 3, // 场上有3个阻挡单位就开始强制部署
|
||||
"air_defense_num": 1, // 总共1个对空单位
|
||||
"ban_medic": false // 在此期间不禁止部署医疗干员(默认false)
|
||||
},
|
||||
"force_deploy_direction": [ // 这些点对某些职业强制部署方向
|
||||
{
|
||||
"location": [
|
||||
1,
|
||||
1
|
||||
],
|
||||
"role": [ "warrior", "pioneer" ],
|
||||
"direction": "left"
|
||||
},
|
||||
{
|
||||
"location": [
|
||||
1,
|
||||
2
|
||||
],
|
||||
"role": [ "sniper" ],
|
||||
"direction": "right"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"stage_name": "巡逻队",
|
||||
"replacement_home": [
|
||||
[ 2, 8 ]
|
||||
]
|
||||
}
|
||||
...
|
||||
]
|
||||
```
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# 基建排班协议
|
||||
|
||||
`resource/custom_infrast/*.json` 的使用方法及各字段说明
|
||||
`resource/custom_infrast/*.json` 的使用方法及各字段说明。**因 json 不支持注释,使用下方示例时需将注释删除**
|
||||
|
||||
## 完整字段一览
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
{
|
||||
"name": "早班", // 计划名,可选
|
||||
"description": "lol", // 计划描述,可选
|
||||
"description_post": "", // 计划执行完时显示的描述,可选
|
||||
"period": [ // 换班时间段,可选
|
||||
// 若当前时间在该区间内,则自动选择该计划(整个 json 文件中可能包含多个计划)
|
||||
// core 不处理该字段,若您使用接口集成 maa,请自行实现该逻辑
|
||||
@@ -106,5 +107,5 @@
|
||||
|
||||
## 举例
|
||||
|
||||
[243 极限效率,一天三换](../resource/custom_infrast/243_layout_3_times_pre_day.json)
|
||||
[153 极限效率,一天三换](../resource/custom_infrast/153_layout_3_times_pre_day.json)
|
||||
[243 极限效率,一天三换](../resource/custom_infrast/243_layout_3_times_a_day.json)
|
||||
[153 极限效率,一天三换](../resource/custom_infrast/153_layout_3_times_a_day.json)
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
### Possible cause 0: incomplete file downloaded
|
||||
|
||||
- If you are the first time using this software, please DO NOT download the zip file with `OTA` in the file name, which is for incremental update and shall not be used alone.
|
||||
- If the application does not run properly after an automatic update, there may be some bugs in the automatic update function, you can try to manually download the full version and try again.
|
||||
- If the application does not run properly after an automatic update, there may be some bugs in the automatic update function, and you can try to manually download the full version and try again.
|
||||
|
||||
### Possible cause 1: missing runtime libraries
|
||||
|
||||
@@ -15,13 +15,13 @@
|
||||
|
||||
This project requires `PaddleOCR` for image recognition, which depends on the `AVX` instruction set supported only by some of the newly-released CPUs, while old versions may not support it.
|
||||
|
||||
You can also try downloading `PaddleOCR` of [NoAVX](../3rdparty/ppocr_noavx.zip) version, unzip and replace the files with the same names. Since it may cause performance drop, please do not use it unless it is necessary.
|
||||
You can also try downloading `PaddleOCR` of [NoAVX](../3rdparty/ppocr_noavx.zip) version, unzip and replace the files with the same names. Since it may cause a performance drop, please do not use it unless it is necessary.
|
||||
|
||||
_([CPU-Z](https://www.cpuid.com/softwares/cpu-z.html) is a tool that provides check of existence of `AVX` instruction set.)_
|
||||
_([CPU-Z](https://www.cpuid.com/softwares/cpu-z.html) is a tool that provides a check of the existence of `AVX` instruction set.)_
|
||||
|
||||
### Possible cause 3: other runtime library problems
|
||||
|
||||
If you are the user of Windows Server or other lite versions, you can try [Microsoft C++ Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/) to configure complete development environment (only .NET and C++ environments are required).
|
||||
If you are a user of Windows Server or other lite versions, you can try [Microsoft C++ Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/) to configure a complete development environment (only .NET and C++ environments are required).
|
||||
|
||||
**Please note that you may need about 10GB disk space to install these tools. Please make sure that your free space is enough.**
|
||||
|
||||
@@ -49,16 +49,17 @@ _After installation of Bluestack, you need to enable `Android Debug Bridge` in t
|
||||
|
||||
Try restarting your computer.
|
||||
|
||||
## Wrong recognition/program freezes after starting
|
||||
## Connected successfully, then stuck, not operating at all
|
||||
|
||||
Tip 1: The auto battle requires you to go to the screen with the `Start` button. Please confirm they are not related.
|
||||
Tip 2: Follow the steps below until the problem is solved.
|
||||
The adb version with some emulators is too old and does not support minitouch. Please open MAA with administrator and enter Settings - Connection Settings - Forced Replace ADB. (It is recommended to close the emulator and restart MAA before proceeding, otherwise the replacement may not be correct)
|
||||
|
||||
1. Confirm that your emulator is supported in the [List of the Supported Emulators](1.3-EMULATOR_SUPPORTS.md).
|
||||
2. Change the DPI to `320 dpi`.
|
||||
3. Change the resolution to landscape, `1280 * 720`.
|
||||
4. Try with another emulator, such as [Bluestacks international version](https://www.bluestacks.com/download.html) Nougat 64 bit. (Please note that you are required to switch on ADB in Bluestack emulator.)
|
||||
5. Submit an issue to us if the problem still exists.
|
||||
If still not work, please enable the "Compatibility Touch Mode" (without minitouch).
|
||||
|
||||
## Connected successfully, can click a few times, then stuck or task error
|
||||
|
||||
- The auto battle requires you to go to the screen with the `Start` button. Please confirm they are not related.
|
||||
- If you are using a non-CN client, please go to MAA Settings - Start Up Settings - Select your client version. And not all features are supported for non-CN client, please refer to docs.
|
||||
- If you are running auto-IS function, please PIN UP the IS theme you want in the game, and select IS theme in MAA Settings - IS Settings.
|
||||
|
||||
## Custom Connection
|
||||
|
||||
@@ -69,7 +70,11 @@ Tip 2: Follow the steps below until the problem is solved.
|
||||
|
||||
1. Go to [Download](../../README.md#Download) to get the link (non-mirror) to you want to download.
|
||||
2. Find the link to your file you need to download.
|
||||
3. Right click it and select `Copy link address`.
|
||||
3. Right-click it and select `Copy link address`.
|
||||
4. Paste the link into your browser.
|
||||
5. Replace the `github.com` in the link with `download.fastgit.org`.
|
||||
6. Press `Enter` to download.
|
||||
|
||||
## Download halfway and prompt "login"/"authentication"
|
||||
|
||||
Please use a browser / IDM / FDM and other regular downloaders to download files, **Do NOT fucking use Thunder!**
|
||||
|
||||
@@ -49,6 +49,7 @@ Compatible but:
|
||||
- Requires MAA to "Run as Administrator" to get ADB path and address (since MuMu runs as admin).
|
||||
- You can also fill in the ADB path and address if you do not wish to run as admin.
|
||||
- It has a chance that MAA may stuck at the main screen and prompt mission failed, which is probably related to the rendering method of MuMu. Recommend to change other emulator.
|
||||
- MuMu uses the same adb port for multiple openings, so it cannot support multiple openings of MuMu
|
||||
|
||||
## 🚫 MuMu Mobile Game Assistant
|
||||
|
||||
@@ -60,12 +61,14 @@ Incompatible. ADB screenshot is black.
|
||||
|
||||
## 🚫 Leidian
|
||||
|
||||
Compatible but not recommended. There is a small chance that the game will be displayed upside down or blackscreen, and with other problems.
|
||||
For example, when it clicks the "Back" button at the top left corner, the screen rotated 180°, causing the application to click the button of using Originium by mistake (reported by users).
|
||||
Compatible but highly discouraged.
|
||||
Leidian has a variety of strange problems, like port changes that cause connection failures, game jams, black screenshots, screen reversals etc.
|
||||
We spent a lot of time to make MAA compatible with it, but new and difficult issues kept arising. Finally, we decided to drop support for the Leidian emulator.
|
||||
If you can use it, congratulations, otherwise, please change the emulator, or try to solve it by yourself, we don't accept feedback on Leidian emulator related problems. (However, you are still welcome to provide us with Pull Request if needed.)
|
||||
|
||||
## ⚠️ [Memu](https://www.memuplay.com)
|
||||
|
||||
Compatible, but some recognition error may occur.
|
||||
Compatible, but there are fewer tests and there may be unknown issues
|
||||
|
||||
## 🚫 Tencent Mobile Game Assistant
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ If zlib does not exist in other distribution, you can try compiling from [source
|
||||
1. Copy the compiled 3rd-party library to `3rdparty/lib` or change `CMakeLists.txt` to indicate 3rd-party library path manually.
|
||||
2. The header files in `3rdparty/include/opencv` is version `4.5.3`. If you are using other versions, please notice there may be conflicts in header files (you can simply replace them with your `opencv` header files).
|
||||
3. Install `adb`
|
||||
4. Copy resource files to the same folder of `libMeoAssitant.so`.
|
||||
4. Copy resource files to the same folder of `libMeoAssistant.so`.
|
||||
|
||||
```sh
|
||||
cd tools
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
6. Run a build to test whether the development environment has been configured correctly. Chosse `Release` & `x64`, right-click `MeoAsstGui` to set it as the startup project, and run it. If the build is successful, the `MeoAsstGui` window will appear. You can connect to the emulator in order to confirm again that the development environment has been configured correctly.
|
||||
7. Now you are free to contribute to MAA.
|
||||
8. Remember to commit once you have proper number of changes. Don't forget to write a commit message.
|
||||
If you are a beginner of git, you might want to make changes on a newly created branch instead of commiting to `dev` directly
|
||||
If you are a beginner of git, you might want to make changes on a newly created branch instead of committing to `dev` directly
|
||||
|
||||
```bash
|
||||
git branch your_own_branch
|
||||
|
||||
@@ -102,9 +102,9 @@ Appends a task.
|
||||
...
|
||||
},
|
||||
"report_to_penguin": bool, // Whether to report to Penguin Stats, optional, by default false.
|
||||
"penguin_id": string, // Penguin Stats user id, optional, by default empty. Vaild only if report_to_penguin is true.
|
||||
"penguin_id": string, // Penguin Stats user id, optional, by default empty. Valid only if report_to_penguin is true.
|
||||
"report_to_yituliu": bool, // Whether to report to YITULIU, optional, by default false.
|
||||
"yituliu_id": string, // YITULIU user id, optional, by default empty. Vaild only if report_to_yituliu is true.
|
||||
"yituliu_id": string, // YITULIU user id, optional, by default empty. Valid only if report_to_yituliu is true.
|
||||
}
|
||||
```
|
||||
|
||||
@@ -173,6 +173,9 @@ Appends a task.
|
||||
```jsonc
|
||||
{
|
||||
"enable": bool, // Whether to enable this task, optional, by default true
|
||||
"theme": string, // Name of the theme, optional, by default "Phantom"
|
||||
// Phantom - 傀影与猩红血钻
|
||||
// Mizuki - 水月与深蓝之树
|
||||
"mode": int, // Mode, optional, by default 0
|
||||
// 0 - For candle, plays as much as you can with stable strategy
|
||||
// 1 - For Originium Ingots, exits after first level
|
||||
@@ -239,3 +242,69 @@ Set task parameters
|
||||
- `const char* params`
|
||||
Task parameter in JSON, same as `AsstAppendTask`
|
||||
For those fields that do not mention "Editing in run-time is not supported" can be changed during run-time. Otherwise these changes will be ignored when the task is running.
|
||||
|
||||
### `AsstSetProcessOption`
|
||||
|
||||
#### Prototype
|
||||
|
||||
```c++
|
||||
bool ASSTAPI AsstSetProcessOption(AsstProcessOptionKey key, const char* value);
|
||||
```
|
||||
|
||||
#### Description
|
||||
|
||||
Set process-level parameters
|
||||
|
||||
#### Return Value
|
||||
|
||||
- `bool`
|
||||
Is the setup successful
|
||||
|
||||
#### Parameter Description
|
||||
|
||||
- `AsstProcessOptionKey key`
|
||||
key
|
||||
- `const char* value`
|
||||
value
|
||||
|
||||
##### List of Key and value
|
||||
|
||||
None
|
||||
|
||||
### `AsstSetProcessOption`
|
||||
|
||||
#### Prototype
|
||||
|
||||
```c++
|
||||
bool ASSTAPI AsstSetInstanceOption(AsstHandle handle, AsstInstanceOptionKey key, const char* value);
|
||||
```
|
||||
|
||||
#### Description
|
||||
|
||||
Set instance-level parameters
|
||||
|
||||
#### Return Value
|
||||
|
||||
- `bool`
|
||||
Is the setup successful
|
||||
|
||||
#### Parameter Description
|
||||
|
||||
- `AsstHandle handle`
|
||||
handle
|
||||
- `AsstInstanceOptionKey key`
|
||||
key
|
||||
- `const char* value`
|
||||
value
|
||||
|
||||
##### List of Key and value
|
||||
|
||||
```jsonc
|
||||
enum InstanceOptionKey
|
||||
{
|
||||
Invalid = 0,
|
||||
MinitouchEnabled = 1, // Is minitouch enabled
|
||||
// If you can't use minitouch, it's useless to turn it on.
|
||||
// "1" - on,"0" - off
|
||||
};
|
||||
```
|
||||
|
||||
@@ -24,11 +24,13 @@ typedef void(ASST_CALL* AsstCallback)(int msg, const char* details, void* custom
|
||||
TaskChainStart, // Task chain starts
|
||||
TaskChainCompleted, // Task chain completes
|
||||
TaskChainExtraInfo, // Extra information about task chain
|
||||
TaskChainStopped, // Task chain stopped
|
||||
/* SubTask Info */
|
||||
SubTaskError = 20000, // Errors in subtask execution/recognition
|
||||
SubTaskStart, // Subtask starts
|
||||
SubTaskCompleted, // Subtask completes
|
||||
SubTaskExtraInfo // Extra information about subtask
|
||||
SubTaskExtraInfo, // Extra information about subtask
|
||||
SubTaskStopped, // Subtask stopped
|
||||
};
|
||||
```
|
||||
|
||||
@@ -95,8 +97,8 @@ Todo
|
||||
```jsonc
|
||||
{
|
||||
"taskchain": string, // Last task chain
|
||||
"uuid": string // UUID
|
||||
"finished_tasks": [ // ID of the last task run
|
||||
"uuid": string, // UUID
|
||||
"finished_tasks": [ // ID of the last task run
|
||||
int,
|
||||
...
|
||||
]
|
||||
@@ -186,29 +188,29 @@ Todo
|
||||
Reporting to Yituliu Big Data.
|
||||
- `InfrastDormDoubleConfirmButton`
|
||||
Double confirmation at infrastructure, only happens when there is a conflict with other operators.
|
||||
- `Roguelike1Start`
|
||||
- `StartExplore`
|
||||
Integrated Strategy: starting.
|
||||
- `Roguelike1StageTraderInvestConfirm`
|
||||
- `StageTraderInvestConfirm`
|
||||
Integrated Strategy: trading items with Originium Ingot.
|
||||
- `Roguelike1StageTraderInvestSystemFull`
|
||||
- `StageTraderInvestSystemFull`
|
||||
Integrated Strategy: trading system full.
|
||||
- `Roguelike1ExitThenAbandon`
|
||||
- `ExitThenAbandon`
|
||||
Integrated Strategy: exit confirmation.
|
||||
- `Roguelike1MissionCompletedFlag`
|
||||
- `MissionCompletedFlag`
|
||||
Integrated Strategy: mission completed.
|
||||
- `Roguelike1MissionFailedFlag`
|
||||
- `MissionFailedFlag`
|
||||
Integrated Strategy: mission failed.
|
||||
- `Roguelike1StageSafeHouseEnter`
|
||||
- `StageSafeHouseEnter`
|
||||
Integrated Strategy: Cunning Merchant
|
||||
- `Roguelike1StageSafeHouseEnter`
|
||||
- `StageSafeHouseEnter`
|
||||
Integrated Strategy: Safehouse
|
||||
- `Roguelike1StageEncounterEnter`
|
||||
- `StageEncounterEnter`
|
||||
Integrated Strategy: Chance Meeting
|
||||
- `Roguelike1StageCambatDpsEnter`
|
||||
- `StageCambatDpsEnter`
|
||||
Integrated Strategy: Operation
|
||||
- `Roguelike1StageEmergencyDps`
|
||||
- `StageEmergencyDps`
|
||||
Integrated Strategy: Emergency Operation
|
||||
- `Roguelike1StageDreadfulFoe`
|
||||
- `StageDreadfulFoe`
|
||||
Integrated Strategy: Dreadful Foe
|
||||
- `StartGameTask`
|
||||
Failed to launch client (incompatible config file with client_type)
|
||||
|
||||
@@ -63,6 +63,10 @@ Usage of `resource/copilot/*.json` and field description.
|
||||
|
||||
// The relationship between the following three fields is AND, i.e. &&
|
||||
"kills": 0, // Waiting until the number of kills required is reached, optional, 0 by default
|
||||
|
||||
"costs": 50, // Waiting until the cost for the amount specified, optional, 0 by default
|
||||
// Note that costs can change due to potential, so this field is only for easy fights. Otherwise, please use "cost_changes"
|
||||
// Recognition is accurate when the cost is 2 digits. Not recommended for 3-digit costs.
|
||||
|
||||
"cost_changes": 5, // Waiting until the cost changes for the amount specified, optional, 0 by default
|
||||
// Note that it calculates since the action starts (based on the cost of the previous action)
|
||||
@@ -92,7 +96,7 @@ Usage of `resource/copilot/*.json` and field description.
|
||||
// Set it to 1 in that case.
|
||||
|
||||
"pre_delay": 0, // Pre-delay in ms, optional, 0 by default
|
||||
"rear_delay": 0, // Post-delay in ms, optional, 0 by default
|
||||
"post_delay": 0, // Post-delay in ms, optional, 0 by default
|
||||
|
||||
// "timeout": 999999999, // Reserved field, not implemented
|
||||
// Timeout time in ms, optional when `type` is "Deploy" | "Skill", INT_MAX by default
|
||||
|
||||
@@ -57,7 +57,7 @@ Usage of `resource/tasks.json` and description of each field
|
||||
// Proceeding tasks when there are errors, optional
|
||||
|
||||
"preDelay": 1000, // Pre-delay of action in ms after recognition, optional; 0 by default
|
||||
"rearDelay": 1000, // Post-delay of action in ms after recognition, optional; 0 by default
|
||||
"postDelay": 1000, // Post-delay of action in ms after recognition, optional; 0 by default
|
||||
|
||||
"roi": [ 0, 0, 1280, 720], // Recognition region with the format of [ x, y, width, height ], optional
|
||||
// Auto-scaling based on 1280 * 720 resolution;[ 0, 0, 1280, 720 ] by default
|
||||
|
||||
@@ -8,19 +8,29 @@ Usage of `resource/roguelike_copilot.json` and description of each field
|
||||
[
|
||||
{
|
||||
"stage_name": "驯兽小屋", // Stage name, required
|
||||
"replacement_home": [ // Replace the position of home, optional, empty by default
|
||||
[ 2, 8 ] // The coordinates of the home
|
||||
"replacement_home": { // Replace the position of home, optional, empty by default
|
||||
"location": [
|
||||
6,
|
||||
4
|
||||
],
|
||||
"direction": "left" // Recommended direction, default by none.
|
||||
// "none / left / right / up / down / 无 / 上 / 下 / 左 / 右"
|
||||
},
|
||||
"blacklist_location": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
1,
|
||||
1
|
||||
]
|
||||
],
|
||||
"key_kills": [ // The number of key kills, optional, empty by default
|
||||
15, // If this value is not empty, the operators will keep their skills and cast them when the number of kills reach the value, instead of casting when ready.
|
||||
... // When all elements are processed, operators will cast skills when they are ready.
|
||||
]
|
||||
},
|
||||
{
|
||||
"stage_name": "巡逻队",
|
||||
"replacement_home": [
|
||||
[ 2, 8 ]
|
||||
]
|
||||
}
|
||||
...
|
||||
]
|
||||
```
|
||||
|
||||
@@ -66,9 +66,9 @@ D32钢|D32 Steel|D32鋼|D32강
|
||||
|
||||
中文|English|日本語|한국어
|
||||
---|---|---|---
|
||||
技巧概要·卷1|Skill Summary - 1|アーツ学I|스킬개론 제1권
|
||||
技巧概要·卷2|Skill Summary - 2|アーツ学II|스킬개론 제2권
|
||||
技巧概要·卷3|Skill Summary - 3|アーツ学III|스킬개론 제3권
|
||||
技巧概要·卷1|Skill Summary - 1|アーツ学Ⅰ|스킬개론 제1권
|
||||
技巧概要·卷2|Skill Summary - 2|アーツ学Ⅱ|스킬개론 제2권
|
||||
技巧概要·卷3|Skill Summary - 3|アーツ学Ⅲ|스킬개론 제3권
|
||||
|
||||
中文|English|日本語|한국어
|
||||
---|---|---|---
|
||||
@@ -107,7 +107,7 @@ D32钢|D32 Steel|D32鋼|D32강
|
||||
中文|English|日本語|한국어
|
||||
---|---|---|---
|
||||
应急理智小样|Emergency Sanity Sampler|試供理性回復剤|응급 이성 샘플
|
||||
应急理智合剂|Emergency Sanity Potion|初級理性回復剤|응급 이성 회복제
|
||||
应急理智合剂|Emergency Sanity Potion|初級理性回復剤+|응급 이성 회복제
|
||||
应急理智顶液|Top Emergency Sanity Potion|上級理性回復剤|긴급 이성 회복제
|
||||
双人汉堡餐|Burger Set For Two|ハンバーガーセット|햄버거 커플 세트
|
||||
咸蛋黄味巧克力|Salted Egg Yolk Flavor Chocolate|塩卵味チョコレート|솔티드 에그 초콜릿
|
||||
@@ -118,8 +118,8 @@ D32钢|D32 Steel|D32鋼|D32강
|
||||
加急许可|Expedited Plan|緊急招集票|즉시 완료 허가증
|
||||
寻访凭证|Headhunting Permit|スカウト券|헤드헌팅 허가증
|
||||
十连寻访凭证|Ten-roll Headhunting Permit|10回スカウト券|헤드헌팅 10회 허가증
|
||||
公开招募★3兑换券·I|★3 Recruitment Exchange Voucher I|公開求人★3指名券I|공개 모집 ★3 교환권·I
|
||||
公开招募★4兑换券·I|★4 Recruitment Exchange Voucher I|公開求人★4指名券I|공개 모집 ★4 교환권·I
|
||||
公开招募★3兑换券·I|★3 Recruitment Exchange Voucher I|公開求人★3指名券 I|공개 모집 ★3 교환권·I
|
||||
公开招募★4兑换券·I|★4 Recruitment Exchange Voucher I|公開求人★4指名券 I|공개 모집 ★4 교환권·I
|
||||
预约干员随机4选1|Preregister to get 1 of 4 Operators randomly||
|
||||
干员兑换券|Operator Voucher|オペレーター指名券|오퍼레이터 교환권
|
||||
资深干员特训邀请函|Senior Operator Training Invitation Letter|★5特訓招待状|특별 채용 훈련 초대장
|
||||
|
||||
@@ -88,7 +88,7 @@ THRM-EX|THRM-EX|THRM-EX|THRM-EX
|
||||
深靛|Indigo|インディゴ|인디고
|
||||
罗比菈塔|Roberta|ロベルタ|로베르타
|
||||
布丁|Pudding|プリン|푸딩
|
||||
褐果|||
|
||||
褐果|Chestnut|チェストナット|
|
||||
|
||||
中文|English|日本語|한국어
|
||||
---|---|---|---
|
||||
@@ -169,7 +169,7 @@ THRM-EX|THRM-EX|THRM-EX|THRM-EX
|
||||
羽毛笔|La Pluma|ラ・プルマ|라 플루마
|
||||
极光|Aurora|オーロラ|오로라
|
||||
灰毫|Ashlock|アッシュロック|애쉬락
|
||||
掠风|||
|
||||
掠风||ウインドフリット|
|
||||
絮雨|Whisperain|ウィスパーレイン|위스퍼레인
|
||||
蜜莓|Honeyberry|ハニーベリー|허니베리
|
||||
罗宾|Robin|ロビン|로빈
|
||||
@@ -179,11 +179,11 @@ THRM-EX|THRM-EX|THRM-EX|THRM-EX
|
||||
战车|Tachanka|Tachanka|Tachanka
|
||||
桑葚|Mulberry|マルベリー|멀베리
|
||||
赤冬|Akafuyu|アカフユ|아카후유
|
||||
夜半|||
|
||||
夜半|Blacknight|ブラックナイト|
|
||||
绮良|Kirara|キララ|키라라
|
||||
龙舌兰|Tequila|テキーラ|테킬라
|
||||
蚀清|Corroserum|コロセラム|코로세럼
|
||||
夏栎|||
|
||||
夏栎|Quercus|クエルクス|
|
||||
野鬃|Wild Mane|ワイルドメイン|와일드메인
|
||||
Sharp|Sharp|Sharp|Sharp
|
||||
Pith|Pith|Pith|Pith
|
||||
@@ -191,17 +191,17 @@ Touch|Touch|Touch|Touch
|
||||
Stormeye|Stormeye|Stormeye|Stormeye
|
||||
暮落|Shalem|シャレム|샬렘
|
||||
炎狱炎熔|Lava the Purgatory|炎獄ラヴァ|라바 더 퍼거토리
|
||||
寒芒克洛丝|||
|
||||
寒芒克洛丝|Kroos the keen Glint|寒芒クルース|
|
||||
濯尘芙蓉|||
|
||||
承曦格雷伊|||
|
||||
耶拉|Kjera|イェラ|쉐라
|
||||
风丸|||
|
||||
风丸|Kazemaru|カゼマル|
|
||||
九色鹿|Nine-Colored Deer|九色鹿|나인컬러드 디어
|
||||
暮落|Shalem|シャレム|샬렘
|
||||
见行者|||
|
||||
洛洛|||
|
||||
见行者|Enforcer|エンフォーサー|
|
||||
洛洛|Rockrock|ロックロック|
|
||||
埃拉托|||
|
||||
海蒂|||
|
||||
海蒂|Heidi|ハイディ|
|
||||
车尔尼|||
|
||||
|
||||
中文|English|日本語|한국어
|
||||
@@ -231,15 +231,15 @@ W|W|W|W
|
||||
山|Mountain|マウンテン|마운틴
|
||||
安洁莉娜|Angelina|アンジェリーナ|안젤리나
|
||||
棘刺|Thorns|ソーンズ|쏜즈
|
||||
菲亚梅塔|||
|
||||
菲亚梅塔|Fiammetta|フィアメッタ|
|
||||
泥岩|Mudrock|マドロック|머드락
|
||||
老鲤|||
|
||||
老鲤|Lee|リー|
|
||||
空弦|Archetto|アルケット|아르케토
|
||||
黑|Schwarz|シュヴァルツ|슈바르츠
|
||||
史尔特尔|Surtr|スルト|수르트
|
||||
铃兰|Suzuran|スズラン|스즈란
|
||||
嵯峨|Saga|サガ|사가
|
||||
澄闪|||
|
||||
澄闪|Goldenglow|ゴールデングロー|
|
||||
迷迭香|Rosmontis|ロスモンティス|로즈몬티스
|
||||
温蒂|Weedy|ウィーディ|위디
|
||||
森蚺|Eunectes|ユーネクテス|유넥티스
|
||||
@@ -256,14 +256,14 @@ W|W|W|W
|
||||
浊心斯卡蒂|Skadi the Corrupting Heart|濁心スカジ|스카디 더 커럽팅 하트
|
||||
假日威龙陈|Ch'en the Holungday|遊龍チェン|첸 더 홀룽데이
|
||||
耀骑士临光|Nearl the Radiant Knight|耀騎士ニアール|니어 더 래디언트 나이트
|
||||
归溟幽灵鲨|||
|
||||
归溟幽灵鲨||帰溟スペクター|
|
||||
刻俄柏|Ceobe|ケオベ|케오베
|
||||
年|Nian|ニェン|니엔
|
||||
夕|Dusk|シー|시
|
||||
令|||
|
||||
艾丽妮|||
|
||||
号角|||
|
||||
流明|||
|
||||
令|Ling|リィン|
|
||||
艾丽妮||アイリーニ|
|
||||
号角|Horn|ホルン|
|
||||
流明||ルーメン|
|
||||
黑键|||
|
||||
多萝西|||
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
[NoAVX](../3rdparty/ppocr_noavx.zip)バージョンの `PaddleOCR` をダウンロードして解凍し、このアプリで同じ名前のファイルに置き換えてください。これは、`AVX` 命令セットをサポートしていないCPUのユーザー向けのパフォーマンス低下の代替手段であり、必要でない限り使用しないでください。
|
||||
|
||||
_具体的には、[CPU-Z](https://www.cpuid.com/softwares/cpu-z.html)をダウンロードし、「命令セット」に `AVX` があるかどうかで判断できます。_
|
||||
_具体的には、[CPU-Z](https://www.cpuid.com/softwares/cpu-z.html) をダウンロードし、「命令セット」に `AVX` があるかどうかで判断できます。_
|
||||
|
||||
### 可能性3:ほかのランタイムライブラリの問題
|
||||
|
||||
@@ -47,16 +47,17 @@ _BlueStacksをインストールした後、エミュレーターの設定で `A
|
||||
|
||||
再起動すると、問題の90%が解決します(確信
|
||||
|
||||
## 認識エラー/タスクが動かなくなり、反応しなくなる
|
||||
## 接続に成功した後、固まり、全く操作できなくなる
|
||||
|
||||
<!-- ヒント1:自動戦闘機能の場合は、`行動開始` ボタンのあるインターフェースを入ってから、ミッションを開始する必要があります。これが問題かどうかを確認してください。 -->
|
||||
ヒント1:以下の手順に従ってください。問題が解決した場合は、続行する必要はありません。
|
||||
一部のエミュレータのadbのバージョンが古すぎて、ミニタッチに対応していない。MAAを管理者権限で開き、設定-接続設定-ADBの強制交換を入力してください。(エミュレータを終了し、MAAを再起動してから作業を進めると、正しく置き換えられない場合があります)
|
||||
|
||||
1. [エミュレータのサポート](1.3-エミュレータのサポート.md)に従って、エミュレータがサポートされていることを確認してください。
|
||||
2. エミュレータの解像度設定を変更:`320 dpi`
|
||||
3. エミュレータの解像度設定を変更:横画面、`1280 * 720` 解像度
|
||||
4. エミュレータの変更。[Bluestacks](https://www.bluestacks.com/download.html) Android 64 bitをおすすめします(BlueStacksはエミュレータ設定でadbをオンにする必要があることに注意してください)
|
||||
5. それでも問題が解決しない場合は、issueを提出してください
|
||||
それでもうまくいかない場合は、"互換タッチモード "を有効にしてください(minitouchなし)。
|
||||
|
||||
## 接続に成功し、数回クリックすることができ、その後スタックまたはタスクエラーになる
|
||||
|
||||
- オートバトルは`スタート`ボタンのある画面まで行く必要があります。関連性がないことをご確認ください。
|
||||
- CN以外のクライアントをお使いの場合は、MAA設定-起動設定-クライアントバージョンの選択でご確認ください。また、非CNクライアントでは全ての機能がサポートされているわけではありませんので、ドキュメントを参照してください。
|
||||
- 自動IS機能を実行している場合、ゲーム内で使用したいISテーマをPIN UPし、MAA設定 - IS設定にてISテーマを選択してください。
|
||||
|
||||
## カスタム接続
|
||||
|
||||
|
||||
@@ -172,6 +172,9 @@ TaskId ASSTAPI AsstAppendTask(AsstHandle handle, const char* type, const char* p
|
||||
```jsonc
|
||||
{
|
||||
"enable": bool, // このタスクを有効にするかどうか, オプション, デフォルトは true
|
||||
"theme": string, // テーマの名前, オプション, デフォルトは "Phantom"
|
||||
// Phantom - 傀影与猩红血钻
|
||||
// Mizuki - 水月与深蓝之树
|
||||
"mode": int, // モード, オプション, デフォルトは 0
|
||||
// 0 - キャンドル収集, 安定した戦略で続けられるだけ続ける
|
||||
// 1 - 源石錐収集, 一階層で終了します
|
||||
|
||||
@@ -24,11 +24,13 @@ typedef void(ASST_CALL* AsstCallback)(int msg, const char* details, void* custom
|
||||
TaskChainStart, // 一連のタスク開始
|
||||
TaskChainCompleted, // 一連のタスク完了
|
||||
TaskChainExtraInfo, // 一連のタスクの追加情報
|
||||
TaskChainStopped,
|
||||
/* SubTask Info */
|
||||
SubTaskError = 20000, // サブタスク 実行/認識におけるエラー
|
||||
SubTaskStart, // サブタスク 実行
|
||||
SubTaskCompleted, // サブタスク 完了
|
||||
SubTaskExtraInfo // サブタスクの追加情報
|
||||
SubTaskExtraInfo, // サブタスクの追加情報
|
||||
SubTaskStopped,
|
||||
};
|
||||
```
|
||||
|
||||
@@ -95,8 +97,8 @@ Todo
|
||||
```jsonc
|
||||
{
|
||||
"taskchain": string, // 最後の一連のタスク
|
||||
"uuid": string // UUID
|
||||
"finished_tasks": [ // 最終動作タスクの ID
|
||||
"uuid": string, // UUID
|
||||
"finished_tasks": [ // 最終動作タスクの ID
|
||||
int,
|
||||
...
|
||||
]
|
||||
@@ -186,29 +188,29 @@ Todo
|
||||
Yituliu へビッグデータの報告.
|
||||
- `InfrastDormDoubleConfirmButton`
|
||||
基地施設での二重確認は、他のオペレーターとの競合がある場合のみ発生します.
|
||||
- `Roguelike1Start`
|
||||
- `StartExplore`
|
||||
統合戦略: 開始.
|
||||
- `Roguelike1StageTraderInvestConfirm`
|
||||
- `StageTraderInvestConfirm`
|
||||
統合戦略: 源石錐とアイテム交換.
|
||||
- `Roguelike1StageTraderInvestSystemFull`
|
||||
- `StageTraderInvestSystemFull`
|
||||
統合戦略: 投資満額.
|
||||
- `Roguelike1ExitThenAbandon`
|
||||
- `ExitThenAbandon`
|
||||
統合戦略: 終了確認.
|
||||
- `Roguelike1MissionCompletedFlag`
|
||||
- `MissionCompletedFlag`
|
||||
統合戦略: ミッション完了.
|
||||
- `Roguelike1MissionFailedFlag`
|
||||
- `MissionFailedFlag`
|
||||
統合戦略: ミッション失敗.
|
||||
- `Roguelike1StageSafeHouseEnter`
|
||||
- `StageSafeHouseEnter`
|
||||
統合戦略: 怪しい旅商人
|
||||
- `Roguelike1StageSafeHouseEnter`
|
||||
- `StageSafeHouseEnter`
|
||||
統合戦略: 安全な片隅
|
||||
- `Roguelike1StageEncounterEnter`
|
||||
- `StageEncounterEnter`
|
||||
統合戦略: 思わぬ遭遇
|
||||
- `Roguelike1StageCambatDpsEnter`
|
||||
- `StageCambatDpsEnter`
|
||||
統合戦略: 作戦
|
||||
- `Roguelike1StageEmergencyDps`
|
||||
- `StageEmergencyDps`
|
||||
統合戦略: 緊急作戦
|
||||
- `Roguelike1StageDreadfulFoe`
|
||||
- `StageDreadfulFoe`
|
||||
統合戦略: 悪路凶敵
|
||||
- `StartGameTask`
|
||||
クライアントの起動に失敗 (client_type と設定ファイルの互換性なし)
|
||||
@@ -238,17 +240,17 @@ Todo
|
||||
{
|
||||
"itemId": "3301",
|
||||
"quantity": 2,
|
||||
"itemName": "技巧概要·卷1" // Skill Summary - 1 // アーツ学1
|
||||
"itemName": "アーツ学1"
|
||||
},
|
||||
{
|
||||
"itemId": "3302",
|
||||
"quantity": 1,
|
||||
"itemName": "技巧概要·卷2" // Skill Summary - 2 // アーツ学2
|
||||
"itemName": "アーツ学2"
|
||||
},
|
||||
{
|
||||
"itemId": "3303",
|
||||
"quantity": 2,
|
||||
"itemName": "技巧概要·卷3" // Skill Summary - 3 // アーツ学3
|
||||
"itemName": "アーツ学3"
|
||||
}
|
||||
],
|
||||
"stage": { // レベル情報
|
||||
@@ -259,17 +261,17 @@ Todo
|
||||
"stats": [ // ドロップの統計
|
||||
{
|
||||
"itemId": "3301",
|
||||
"itemName": "技巧概要·卷1", // アーツ学1
|
||||
"itemName": "アーツ学1",
|
||||
"quantity": 4
|
||||
},
|
||||
{
|
||||
"itemId": "3302",
|
||||
"itemName": "技巧概要·卷2", // アーツ学2
|
||||
"itemName": "アーツ学2",
|
||||
"quantity": 3
|
||||
},
|
||||
{
|
||||
"itemId": "3303",
|
||||
"itemName": "技巧概要·卷3", // アーツ学3
|
||||
"itemName": "アーツ学3",
|
||||
"quantity": 4
|
||||
}
|
||||
]
|
||||
@@ -283,11 +285,11 @@ Todo
|
||||
// 対応するフィールドの詳細
|
||||
{
|
||||
"tags": [
|
||||
"费用回复", // DP-Recovery // COST回復
|
||||
"防护", // Defense // 防御
|
||||
"先锋干员", // Vanguard // 先鋒タイプ
|
||||
"辅助干员", // Support // 補助タイプ
|
||||
"近战位" // Melee // 近接攻撃
|
||||
"COST回復",
|
||||
"防御",
|
||||
"先鋒タイプ",
|
||||
"補助タイプ",
|
||||
"近接攻撃"
|
||||
]
|
||||
}
|
||||
```
|
||||
@@ -298,7 +300,7 @@ Todo
|
||||
```jsonc
|
||||
// 対応する詳細フィールドの例
|
||||
{
|
||||
"tag": "高级资深干员" // Senior operator // 上級エリート
|
||||
"tag": "上級エリート"
|
||||
}
|
||||
```
|
||||
|
||||
@@ -309,68 +311,68 @@ Todo
|
||||
// 対応する詳細フィールドの例
|
||||
{
|
||||
"tags": [ // 全てのタグ, 5つまで
|
||||
"削弱",
|
||||
"减速",
|
||||
"术师干员",
|
||||
"辅助干员",
|
||||
"近战位"
|
||||
"弱化",
|
||||
"減速",
|
||||
"術師タイプ",
|
||||
"補助タイプ",
|
||||
"近接攻撃"
|
||||
],
|
||||
"level": 4, // レアリティのトータル
|
||||
"result": [
|
||||
{
|
||||
"tags": [
|
||||
"削弱" // Debuff // 弱化
|
||||
"弱化"
|
||||
],
|
||||
"level": 4, // レアリティに対応するタグ
|
||||
"opers": [
|
||||
{
|
||||
"name": "初雪", // Pramanix // プラマニクス
|
||||
"name": "プラマニクス",
|
||||
"level": 5 // レアリティに対応するオペレーター
|
||||
},
|
||||
{
|
||||
"name": "陨星", // Meteorite // メテオリーテ
|
||||
"name": "メテオリーテ",
|
||||
"level": 5
|
||||
},
|
||||
{
|
||||
"name": "槐琥", // Waai Fu // ワイフー
|
||||
"name": "ワイフー",
|
||||
"level": 5
|
||||
},
|
||||
{
|
||||
"name": "夜烟", // Haze // ヘイズ
|
||||
"name": "ヘイズ",
|
||||
"level": 4
|
||||
},
|
||||
{
|
||||
"name": "流星", // Meteor // メテオ
|
||||
"name": "メテオ",
|
||||
"level": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tags": [
|
||||
"减速", // Slow // 原則
|
||||
"术师干员" // Caster // 術師タイプ
|
||||
"減速",
|
||||
"術師タイプ"
|
||||
],
|
||||
"level": 4,
|
||||
"opers": [
|
||||
{
|
||||
"name": "夜魔", // Nightmare // ナイトメア
|
||||
"name": "ナイトメア",
|
||||
"level": 5
|
||||
},
|
||||
{
|
||||
"name": "格雷伊", // Greyy // グレイ
|
||||
"name": "グレイ",
|
||||
"level": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tags": [
|
||||
"削弱", // Debuff // 弱化
|
||||
"术师干员" // Caster // 術師タイプ
|
||||
"弱化",
|
||||
"術師タイプ"
|
||||
],
|
||||
"level": 4,
|
||||
"opers": [
|
||||
{
|
||||
"name": "夜烟", // Haze // ヘイズ
|
||||
"name": "ヘイズ",
|
||||
"level": 4
|
||||
}
|
||||
]
|
||||
@@ -397,8 +399,8 @@ Todo
|
||||
// 対応する詳細フィールドの例
|
||||
{
|
||||
"tags": [
|
||||
"减速", // Slow // 原則
|
||||
"术师干员" // Caster // 術師タイプ
|
||||
"減速",
|
||||
"術師タイプ"
|
||||
]
|
||||
}
|
||||
```
|
||||
@@ -478,22 +480,22 @@ Todo
|
||||
{
|
||||
"id": "2004",
|
||||
"have": 4,
|
||||
"name": "高级作战记录"
|
||||
"name": "上級作戦記録"
|
||||
},
|
||||
{
|
||||
"id": "mod_unlock_token",
|
||||
"have": 25,
|
||||
"name": "模组数据块"
|
||||
"name": "モジュールデータ"
|
||||
},
|
||||
{
|
||||
"id": "2003",
|
||||
"have": 20,
|
||||
"name": "中级作战记录"
|
||||
"name": "中級作戦記録"
|
||||
}
|
||||
],
|
||||
"@type": "@penguin-statistics/depot"
|
||||
},
|
||||
"data": "{\"@type\":\"@penguin-statistics/depot\",\"items\":[{\"id\":\"2004\",\"have\":4,\"name\":\"高级作战记录\"},{\"id\":\"mod_unlock_token\",\"have\":25,\"name\":\"模组数据块\"},{\"id\":\"2003\",\"have\":20,\"name\":\"中级作战记录\"}]}"
|
||||
"data": "{\"@type\":\"@penguin-statistics/depot\",\"items\":[{\"id\":\"2004\",\"have\":4,\"name\":\"上級作戦記録\"},{\"id\":\"mod_unlock_token\",\"have\":25,\"name\":\"モジュールデータ\"},{\"id\":\"2003\",\"have\":20,\"name\":\"中級作戦記録\"}]}"
|
||||
},
|
||||
"lolicon": { // https://arkn.lolicon.app/#/material
|
||||
"object": {
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"stage_name": "暴君", // ステージ名, 必須. CN版のステージ名, コード, ステージID, レベルID, 他. これらは全てサポート範囲です.
|
||||
"opers": [ // オペーレーターリスト
|
||||
{
|
||||
"name": "棘刺", // オペーレーター名(CN版準拠)
|
||||
"name": "ソーンズ", // オペーレーター名
|
||||
|
||||
"skill": 3, // スキルID と範囲 [1, 3], オプション, 1 がデフォルト
|
||||
|
||||
@@ -31,17 +31,17 @@
|
||||
],
|
||||
"groups": [
|
||||
{
|
||||
"name": "任意正常群奶", // グループ名, 必須
|
||||
"name": "一般群体ヒーラー", // グループ名, 必須
|
||||
// `name` フィールドと `deploy` が一致していればどのような名前でも構いません
|
||||
|
||||
"opers": [ // ランダムに選ばれるオペレーター, `opers` フィールドと同様. レベルの高いオペレータほど優先されます.
|
||||
{
|
||||
"name": "夜莺", // ナイチンゲール
|
||||
"name": "ナイチンゲール",
|
||||
"skill": 3,
|
||||
"skill_usage": 2 // スキルのCDは異なる場合があり
|
||||
},
|
||||
{
|
||||
"name": "白面鸮", // フィリオプシス
|
||||
"name": "フィリオプシス",
|
||||
"skill": 2,
|
||||
"skill_usage": 2
|
||||
}
|
||||
@@ -50,7 +50,7 @@
|
||||
],
|
||||
"actions": [ // 順番に行動, 必須. 順次実行されます
|
||||
{
|
||||
"type": "部署", // 行動タイプ, オプション, デフォルトは "Deploy"
|
||||
"type": "Deploy", // 行動タイプ, オプション, デフォルトは "Deploy"
|
||||
// "Deploy" | "Skill" | "Retreat" | "SpeedUp" | "BulletTime" | "SkillUsage" | "Output" | "SkillDaemon"
|
||||
// "部署" | "技能" | "撤退" | "二倍速" | "子弹时间" | "技能用法" | "打印" | "摆完挂机"
|
||||
// 英語と中国語のみサポート
|
||||
@@ -74,7 +74,7 @@
|
||||
// TODO: "condition_type": 0, // 条件集約型, オプション, デフォルトは 0
|
||||
// // 0 - AND; 1 - OR
|
||||
|
||||
"name": "棘刺", // オペレーター/グループ名, `type` が "Deploy" の場合必須, "Skill" か "Retreat" の場合はオプション
|
||||
"name": "ソーンズ", // オペレーター/グループ名, `type` が "Deploy" の場合必須, "Skill" か "Retreat" の場合はオプション
|
||||
|
||||
"location": [ 5, 5 ], // 配置位置
|
||||
// `type` が "Deploy" の場合必須.
|
||||
@@ -82,7 +82,7 @@
|
||||
// "Skill": マップ内設備(灯台など)の使用での推奨, name ではなく location を指定してスキルを使用することを推奨します, 通常のオペレーターがスキルを使用する場合は name を使用するだけにしてください
|
||||
// "Retreat": 複数の召喚ユニットがいる場合のみ推奨, name ではなく location で退却, 通常のオペレーターは単純に name で退却してください
|
||||
|
||||
"direction": "左", // 配置方向, `type` が "Deploy" の場合必須
|
||||
"direction": "Left", // 配置方向, `type` が "Deploy" の場合必須
|
||||
// "Left" | "Right" | "Up" | "Down" | "None"
|
||||
// "左" | "右" | "上" | "下" | "无"
|
||||
// 英語と中国語のみサポート
|
||||
@@ -92,39 +92,39 @@
|
||||
// 上記例の場合 1 に設定してください
|
||||
|
||||
"pre_delay": 0, // 事前遅延 ms(ミリ秒), オプション, デフォルトは 0
|
||||
"rear_delay": 0, // 事後遅延 ms(ミリ秒), オプション, デフォルトは 0
|
||||
"post_delay": 0, // 事後遅延 ms(ミリ秒), オプション, デフォルトは 0
|
||||
|
||||
// "timeout": 999999999, // 予約フィールド, 未実装
|
||||
// タイムアウト時間 ms(ミリ秒), `type` が "Deploy" | "Skill" の場合オプション, デフォルトは INT_MAX
|
||||
// タイムアウト時に次のアクションを実行する
|
||||
|
||||
"doc": "下棘刺了!", // 説明文, オプション, UIの表示のみで効果はありません
|
||||
"doc": "ソーンズ使え!", // 説明文, オプション, UIの表示のみで効果はありません
|
||||
"doc_color": "orange" // 説明文の色, オプション, UIの表示のみで効果はありません
|
||||
},
|
||||
// 例 1
|
||||
{
|
||||
"name": "任意正常群奶",
|
||||
"name": "一般群体ヒーラー",
|
||||
"location": [ 5, 6 ],
|
||||
"direction": "右"
|
||||
"direction": "Right"
|
||||
},
|
||||
// 例 2
|
||||
{
|
||||
"name": "史尔特尔",
|
||||
"name": "スルト",
|
||||
"location": [ 4, 5 ],
|
||||
"direction": "左",
|
||||
"doc": "你史尔特尔奶奶来啦!",
|
||||
"direction": "Left",
|
||||
"doc": "スルト来た!",
|
||||
"doc_color": "red"
|
||||
},
|
||||
// 例 3
|
||||
{
|
||||
"type": "二倍速"
|
||||
"type": "SpeedUp"
|
||||
}
|
||||
],
|
||||
"minimum_required": "v4.0", // 最低要求の MAA バージョン, 必須, 予約フィールド, 未実装
|
||||
"doc": { // 説明文, オプション
|
||||
"title": "低练度高成功率作业",
|
||||
"title": "低レベル高成功率タスク",
|
||||
"title_color": "dark",
|
||||
"details": "对练度要求很低balabala……", // 個々に名前や, 動画へのリンク, 攻略へのリンクなどお書きください.
|
||||
"details": "レベル要求低い〇〇〇…", // 個々に名前や, 動画へのリンク, 攻略へのリンクなどお書きください.
|
||||
"details_color": "dark"
|
||||
},
|
||||
}
|
||||
|
||||
@@ -8,19 +8,29 @@
|
||||
[
|
||||
{
|
||||
"stage_name": "驯兽小屋", // ステージ名, 必須(CN版準拠での入力)
|
||||
"replacement_home": [ // 基準点の変更, オプション機能, デフォルトは空欄
|
||||
[ 2, 8 ] // 基準点座標
|
||||
"replacement_home": { // 基準点の変更, オプション機能, デフォルトは空欄
|
||||
"location": [
|
||||
6,
|
||||
4
|
||||
],
|
||||
"direction": "left" // Recommended direction, default by none.
|
||||
// "none / left / right / up / down / 无 / 上 / 下 / 左 / 右"
|
||||
},
|
||||
"blacklist_location": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
1,
|
||||
1
|
||||
]
|
||||
],
|
||||
"key_kills": [ // キル数でのトリガー, オプション機能, デフォルトは空欄
|
||||
15, // この値が0でない場合、オペレーターは準備ができたときにスキルを使用せず、キル数がこの値に達した際に使用します。
|
||||
... // すべての要素が処理されれば、オペレーターは準備が整った時点でスキルを使用します。
|
||||
]
|
||||
},
|
||||
{
|
||||
"stage_name": "巡逻队",
|
||||
"replacement_home": [
|
||||
[ 2, 8 ]
|
||||
]
|
||||
}
|
||||
...
|
||||
]
|
||||
```
|
||||
|
||||
@@ -6,11 +6,11 @@
|
||||
|
||||
```jsonc
|
||||
{
|
||||
"title": "小号的换班方案", // タイトル,オプション
|
||||
"description": "哈哈哈哈", // 説明,オプション
|
||||
"title": "サブ垢スケジュール", // タイトル,オプション
|
||||
"description": "イロハニホヘト", // 説明,オプション
|
||||
"plans": [
|
||||
{
|
||||
"name": "早班", // プランタイトル,オプション
|
||||
"name": "朝", // プランタイトル,オプション
|
||||
"description": "lol", // 説明,オプション
|
||||
"period": [ // シフト時間の間隔,オプション
|
||||
// 現在時刻がこの間隔内にある場合、プランが自動的に選択されます (jsonファイル全体が複数のプランを含む場合もあります)
|
||||
@@ -95,7 +95,7 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "晚班"
|
||||
"name": "夜"
|
||||
// ...
|
||||
}
|
||||
]
|
||||
@@ -104,5 +104,5 @@
|
||||
|
||||
## サンプル
|
||||
|
||||
[243 极限效率,一天三换](../resource/custom_infrast/243_layout_3_times_pre_day.json)
|
||||
[153 极限效率,一天三换](../resource/custom_infrast/153_layout_3_times_pre_day.json)
|
||||
[243 効率最高,一日三回](../resource/custom_infrast/243_layout_3_times_a_day.json)
|
||||
[153 効率最高,一日三回](../resource/custom_infrast/153_layout_3_times_a_day.json)
|
||||
|
||||
280
docs/maa-infra.schema.json
Normal file
@@ -0,0 +1,280 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema",
|
||||
"title": "Maa Copilot Infrastructure",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"title": {
|
||||
"type": "string",
|
||||
"description": "The title of the Maa Copilot Infrastructure Plan"
|
||||
},
|
||||
"description": {
|
||||
"type": "string",
|
||||
"description": "The description of the Maa Copilot Infrastructure Plan"
|
||||
},
|
||||
"plans": {
|
||||
"type": "array",
|
||||
"description": "Plans list.",
|
||||
"items": {
|
||||
"$ref": "#/definitions/plans"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"plans"
|
||||
],
|
||||
"definitions": {
|
||||
"operator": {
|
||||
"type": "string",
|
||||
"description": "Operator name in corresponding languages since MAA uses OCR to detect operator."
|
||||
},
|
||||
"plans": {
|
||||
"type": "object",
|
||||
"description": "Plans for the infrastructure.",
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name of the plan."
|
||||
},
|
||||
"description": {
|
||||
"type": "string",
|
||||
"description": "Description of the plan."
|
||||
},
|
||||
"period": {
|
||||
"type": "array",
|
||||
"description": "Period list.",
|
||||
"$ref": "#/definitions/planPeriod"
|
||||
},
|
||||
"duration": {
|
||||
"type": "number",
|
||||
"description": "Duration of the plan. Reserved."
|
||||
},
|
||||
"Fiammetta": {
|
||||
"type": "object",
|
||||
"$ref": "#/definitions/Fiammetta"
|
||||
},
|
||||
"drones": {
|
||||
"type": "object",
|
||||
"$ref": "#/definitions/drones"
|
||||
},
|
||||
"rooms": {
|
||||
"type": "object",
|
||||
"$ref": "#/definitions/rooms"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"rooms"
|
||||
]
|
||||
},
|
||||
"planPeriod": {
|
||||
"type": "array",
|
||||
"description": "Period of the plan.",
|
||||
"items": {
|
||||
"$ref": "#/definitions/planPeriodTimeFormat"
|
||||
},
|
||||
"minItems": 2,
|
||||
"maxItems": 2
|
||||
},
|
||||
"planPeriodTimeFormat": {
|
||||
"type": "string",
|
||||
"description": "Time notation in HH:MM format (24 hours format). For the next day, see MAA docs.",
|
||||
"pattern": "^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$"
|
||||
},
|
||||
"Fiammetta": {
|
||||
"type": "object",
|
||||
"description": "Fiammetta configuration.",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"type": "boolean",
|
||||
"description": "Enable Fiammetta."
|
||||
},
|
||||
"target": {
|
||||
"$ref": "#/definitions/operator"
|
||||
},
|
||||
"order": {
|
||||
"type": "string",
|
||||
"description": "Order of the Fiammetta.",
|
||||
"anyOf": [
|
||||
{
|
||||
"const": "pre",
|
||||
"description": "Before executing infrastructure plan."
|
||||
},
|
||||
{
|
||||
"const": "post",
|
||||
"description": "After executing infrastructure plan."
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"enabled",
|
||||
"target",
|
||||
"order"
|
||||
]
|
||||
},
|
||||
"drones": {
|
||||
"type": "object",
|
||||
"description": "Drones configuration.",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"type": "boolean",
|
||||
"description": "Enable drones."
|
||||
},
|
||||
"room": {
|
||||
"type": "string",
|
||||
"description": "Target drons's usage.",
|
||||
"anyOf": [
|
||||
{
|
||||
"const": "trading",
|
||||
"description": "Use drones in trading"
|
||||
},
|
||||
{
|
||||
"const": "manufacture",
|
||||
"description": "Use drones in manufacture"
|
||||
}
|
||||
]
|
||||
},
|
||||
"index": {
|
||||
"type": "integer",
|
||||
"description": "Index of the infrastructure room.",
|
||||
"minimum": 0,
|
||||
"maximum": 9
|
||||
},
|
||||
"rule": {
|
||||
"type": "string",
|
||||
"description": "The usage of drones."
|
||||
},
|
||||
"order": {
|
||||
"type": "string",
|
||||
"description": "Order of the Drones.",
|
||||
"anyOf": [
|
||||
{
|
||||
"const": "pre",
|
||||
"description": "Before executing infrastructure plan."
|
||||
},
|
||||
{
|
||||
"const": "post",
|
||||
"description": "After executing infrastructure plan."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"rooms": {
|
||||
"type": "object",
|
||||
"description": "All arknights infrastructure rooms.",
|
||||
"properties": {
|
||||
"control": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/roomConfig"
|
||||
},
|
||||
"maxItems": 1
|
||||
},
|
||||
"meeting": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/roomConfig"
|
||||
},
|
||||
"maxItems": 1
|
||||
},
|
||||
"hire": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/roomConfig"
|
||||
},
|
||||
"maxItems": 1
|
||||
},
|
||||
"manufacture": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/roomConfig"
|
||||
},
|
||||
"maxItems": 9
|
||||
},
|
||||
"trading": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/roomConfig"
|
||||
},
|
||||
"maxItems": 9
|
||||
},
|
||||
"power": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/roomConfig"
|
||||
},
|
||||
"maxItems": 9
|
||||
},
|
||||
"dormitory": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/roomConfig"
|
||||
},
|
||||
"maxItems": 4
|
||||
}
|
||||
}
|
||||
},
|
||||
"roomConfig": {
|
||||
"type": "object",
|
||||
"description": "Room configuration.",
|
||||
"properties": {
|
||||
"operators": {
|
||||
"type": "array",
|
||||
"description": "Operators list.",
|
||||
"items": {
|
||||
"$ref": "#/definitions/operator"
|
||||
},
|
||||
"maxItems": 5
|
||||
},
|
||||
"sort": {
|
||||
"type": "boolean",
|
||||
"description": "Sort operators in the same order as listed in operators."
|
||||
},
|
||||
"skip": {
|
||||
"type": "boolean",
|
||||
"description": "Skip this room or not."
|
||||
},
|
||||
"autofill": {
|
||||
"type": "boolean",
|
||||
"description": "Autofill with default algorithm this room or not."
|
||||
},
|
||||
"product": {
|
||||
"type": "string",
|
||||
"description": "Product name of this manufacture station",
|
||||
"anyOf": [
|
||||
{
|
||||
"const": "Battle Record",
|
||||
"description": "Battle Record"
|
||||
},
|
||||
{
|
||||
"const": "Pure Gold",
|
||||
"description": "Pure Gold"
|
||||
},
|
||||
{
|
||||
"const": "Dualchip",
|
||||
"description": "Dualchip"
|
||||
},
|
||||
{
|
||||
"const": "Originium Shard",
|
||||
"description": "Originium Shard"
|
||||
},
|
||||
{
|
||||
"const": "LMD",
|
||||
"description": "Lungmen dollar"
|
||||
},
|
||||
{
|
||||
"const": "Orundum",
|
||||
"description": "Orundum"
|
||||
}
|
||||
]
|
||||
},
|
||||
"candidates": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/operator"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -29,6 +29,12 @@
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"ParamsArray": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"TaskNameList": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
@@ -44,7 +50,7 @@
|
||||
},
|
||||
"action": {
|
||||
"type": "string",
|
||||
"pattern": "ClickSelf|ClickRand|DoNothing|Stop|ClickRect|SwipeToTheLeft|SwipeToTheRight",
|
||||
"pattern": "ClickSelf|ClickRand|DoNothing|Stop|ClickRect|Swipe",
|
||||
"default": "DoNothing",
|
||||
"description": "可选项,表示识别到后的动作\n不填写时默认为 DoNothing"
|
||||
},
|
||||
@@ -77,7 +83,7 @@
|
||||
"type": "number",
|
||||
"description": "可选项,表示识别到后延迟多久才执行 action,单位毫秒;不填写时默认 0"
|
||||
},
|
||||
"rearDelay": {
|
||||
"postDelay": {
|
||||
"type": "number",
|
||||
"description": "可选项,表示 action 执行完后延迟多久才去识别 next, 单位毫秒;不填写时默认 0"
|
||||
},
|
||||
@@ -92,7 +98,7 @@
|
||||
},
|
||||
"rectMove": {
|
||||
"$ref": "#/definitions/Rectangle",
|
||||
"description": "可选项,识别后的目标移动,不建议使用该选项。以 1280 * 720 为基准自动缩放\n例如识别到了 A 图标,但实际要点击的是 A 图标旁边的某个位置,则进行移动后再点击。可以的话尽量直接识别要点击的位置,不建议使用该选项"
|
||||
"description": "可选项,识别后的目标移动,不建议使用该选项。以 1280 * 720 为基准自动缩放\n例如识别到了 A 图标,但实际要点击的是 A 图标旁边的某个位置,则进行移动后再点击。可以的话尽量直接识别要点击的位置,不建议使用该选项\n当 action 为 Swipe 时表示滑动终点"
|
||||
},
|
||||
"reduceOtherTimes": {
|
||||
"type": "array",
|
||||
@@ -104,7 +110,11 @@
|
||||
},
|
||||
"specificRect": {
|
||||
"$ref": "#/definitions/Rectangle",
|
||||
"description": "仅当 action 为 ClickRect 时有效且必选,表示指定的点击位置(范围内随机一点)。以 1280 * 720 为基准自动缩放"
|
||||
"description": "当 action 为 ClickRect 时有效且必选,表示指定的点击位置(范围内随机一点),以 1280 * 720 为基准自动缩放\n当 action 为 Swipe 时有效且必现,表示滑动起点"
|
||||
},
|
||||
"specialParams": {
|
||||
"$ref": "#/definitions/ParamsArray",
|
||||
"description": "某些任务使用的特殊参数(大部分是手写阈值等)"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -49,16 +49,19 @@ _注意藍疊安裝完後,需要在模擬器設定中打開 `Android 調試橋
|
||||
|
||||
重啟能解決 90% 的問題(確信
|
||||
|
||||
## 辨識錯誤/任務開始後一直不動、沒有反應
|
||||
## 連接正常,完全沒反應,一點不動
|
||||
|
||||
提示 1. 自動戰鬥功能,是需要手動點到關卡頁有 `開始行動` 按鈕的地方再開始任務的。請確認是否是這個問題~
|
||||
提示 2. 按照下面的次序依次進行,若問題解決則無需繼續向下
|
||||
部分模擬器自帶的 adb 版本過於老舊,不支持 minitouch 相關操作。
|
||||
|
||||
1. 請根據 [模擬器支援情況](1.3-模擬器支援.md) 確定您的模擬器是受支援的
|
||||
2. 修改模擬器解析度設定,`320 dpi`
|
||||
3. 修改模擬器解析度設定,橫向 `1280 * 720` 解析度
|
||||
4. 換模擬器,推薦 [藍疊國際版](https://www.bluestacks.com/download.html) Nougat 64 bit(請注意藍疊需要在模擬器設定裡開啟 adb)
|
||||
5. 若仍有問題,請提 issue
|
||||
請使用管理員權限打開 MAA,點擊 MAA 設置 - 連接設置 - 強制替換 ADB (建議關閉模擬器並重啟 MAA 後再操作,不然可能替換不正確)
|
||||
|
||||
如果即使這樣也無法正常使用,請勾選 “兼容性的觸控模式”。
|
||||
|
||||
## 連接正常,偶爾能點幾下,然後就卡住了,或者任務出錯了
|
||||
|
||||
- 自動戰鬥功能,是需要手動點到關卡頁有 `開始行動` 按鈕的地方再開始任務的。請確認是否是這個問題~
|
||||
- 若您使用外服,請先在設置 - 啟動設置 - 選擇客戶端版本。且並不是所有功能都是被支持的,請參考對應的外服使用文檔
|
||||
- 若您進行的是肉鴿模式,請參考 [文檔](1.1-詳細介紹.md#一鍵長草自動肉鴿) 將需要刷的肉鴿“訂閱到終端”,並在 設置 - 肉鴿設置 中選擇正確的 肉鴿主題
|
||||
|
||||
## 自定義連接
|
||||
|
||||
@@ -73,3 +76,7 @@ _注意藍疊安裝完後,需要在模擬器設定中打開 `Android 調試橋
|
||||
4. 將連結位址貼到瀏覽器位址欄
|
||||
5. 將連結位址中的 `github.com` 替換為 `download.fastgit.org`
|
||||
6. 確認以開始下載
|
||||
|
||||
## 下載到一半提示“登陸”/“鑑權”
|
||||
|
||||
請使用 瀏覽器 / IDM / FDM 等正規下載器下載文件,**不要用傻逼迅雷!**
|
||||
|
||||
@@ -49,6 +49,7 @@
|
||||
- 需要使用管理員權限打開 MAA 才能自動獲取 adb 路徑和位址(因為 MuMu 本身是管理員啟動的)
|
||||
- 如果不希望管理員啟動,可以在 MAA 設定中自行填寫 adb 路徑和位址
|
||||
- 可能會卡在主畫面無法辨識,過一會提示任務出錯:和 MuMu 的彩現方式有關,暫時不知道根本原因,推薦換模擬器(
|
||||
- MuMu 多開時使用的是同一個 adb 埠,所以無法支持多開的 MuMu
|
||||
|
||||
## 🚫 MuMu 手游助手(星雲引擎)
|
||||
|
||||
@@ -65,7 +66,7 @@
|
||||
|
||||
## ⚠️ [逍遙模擬器](https://www.xyaz.cn/)
|
||||
|
||||
支援。但可能有莫名其妙的辨識錯誤問題
|
||||
支援。但測試較少,可能存在未知問題
|
||||
|
||||
## 🚫 騰訊手游助手
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ sudo ldconfig
|
||||
1. 直接拷貝上面編譯的第三方庫到 `3rdparty/lib` 或者 手動修改 `CMakeLists.txt` 指定第三方庫路徑
|
||||
2. `3rdparty/include/opencv` 中的標頭檔是 `4.5.3` 版本的,若是使用其他版本,請注意標頭檔衝突問題(直接將你的 `opencv` 標頭檔覆蓋過去就好)
|
||||
3. 安裝 `adb`
|
||||
4. 複製資源檔案到 `libMeoAssitant.so` 同一目錄下
|
||||
4. 複製資源檔案到 `libMeoAssistant.so` 同一目錄下
|
||||
|
||||
```sh
|
||||
cd tools
|
||||
|
||||
@@ -172,6 +172,9 @@ TaskId ASSTAPI AsstAppendTask(AsstHandle handle, const char* type, const char* p
|
||||
```jsonc
|
||||
{
|
||||
"enable": bool, // 是否啟用本任務,可選,預設為 true
|
||||
"theme": string, // 肉鴿名,可選,預設 "Phantom"
|
||||
// Phantom - 傀影與猩紅血鑽
|
||||
// Mizuki - 水月與深藍之樹
|
||||
"mode": int, // 模式,可選項。預設 0
|
||||
// 0 - 刷蠟燭,盡可能穩定地打更多層數
|
||||
// 1 - 刷源石錠,第一層投資完就退出
|
||||
|
||||
@@ -24,11 +24,13 @@ typedef void(ASST_CALL* AsstCallback)(int msg, const char* details, void* custom
|
||||
TaskChainStart, // 任務鏈開始
|
||||
TaskChainCompleted, // 任務鏈完成
|
||||
TaskChainExtraInfo, // 任務鏈額外資訊
|
||||
TaskChainStopped, // 任務鏈手動停止
|
||||
/* SubTask Info */
|
||||
SubTaskError = 20000, // 原子任務執行/辨識錯誤
|
||||
SubTaskStart, // 原子任務開始
|
||||
SubTaskCompleted, // 原子任務完成
|
||||
SubTaskExtraInfo // 原子任務額外資訊
|
||||
SubTaskExtraInfo, // 原子任務額外資訊
|
||||
SubTaskStopped, // 原子任務手動停止
|
||||
};
|
||||
```
|
||||
|
||||
@@ -186,29 +188,29 @@ Todo
|
||||
匯報到一圖流巨量資料
|
||||
- `InfrastDormDoubleConfirmButton`
|
||||
基建宿舍的二次確認按鈕,僅當幹員衝突時才會有,請提示使用者
|
||||
- `Roguelike1Start`
|
||||
- `StartExplore`
|
||||
肉鴿開始探索
|
||||
- `Roguelike1StageTraderInvestConfirm`
|
||||
- `StageTraderInvestConfirm`
|
||||
肉鴿投資了源石錠
|
||||
- `Roguelike1StageTraderInvestSystemFull`
|
||||
- `StageTraderInvestSystemFull`
|
||||
肉鴿投資達到了遊戲上限
|
||||
- `Roguelike1ExitThenAbandon`
|
||||
- `ExitThenAbandon`
|
||||
肉鴿放棄了本次探索
|
||||
- `Roguelike1MissionCompletedFlag`
|
||||
- `MissionCompletedFlag`
|
||||
肉鴿戰鬥完成
|
||||
- `Roguelike1MissionFailedFlag`
|
||||
- `MissionFailedFlag`
|
||||
肉鴿戰鬥失敗
|
||||
- `Roguelike1StageSafeHouseEnter`
|
||||
- `StageSafeHouseEnter`
|
||||
肉鴿關卡:詭異行商
|
||||
- `Roguelike1StageSafeHouseEnter`
|
||||
- `StageSafeHouseEnter`
|
||||
肉鴿關卡:安全的角落
|
||||
- `Roguelike1StageEncounterEnter`
|
||||
- `StageEncounterEnter`
|
||||
肉鴿關卡:不期而遇/古堡饋贈
|
||||
- `Roguelike1StageCambatDpsEnter`
|
||||
- `StageCambatDpsEnter`
|
||||
肉鴿關卡:普通作戰
|
||||
- `Roguelike1StageEmergencyDps`
|
||||
- `StageEmergencyDps`
|
||||
肉鴿關卡:緊急作戰
|
||||
- `Roguelike1StageDreadfulFoe`
|
||||
- `StageDreadfulFoe`
|
||||
肉鴿關卡:險路惡敵
|
||||
- `StartGameTask`
|
||||
打開用戶端失敗(設定檔與傳入client_type不匹配)
|
||||
|
||||
@@ -92,7 +92,7 @@
|
||||
// 則可以在對應時刻設置為 1
|
||||
|
||||
"pre_delay": 0, // 前置延時。可選,預設 0, 單位毫秒
|
||||
"rear_delay": 0, // 後置延時。可選,預設 0, 單位毫秒
|
||||
"post_delay": 0, // 後置延時。可選,預設 0, 單位毫秒
|
||||
|
||||
// "timeout": 999999999, // 保留欄位,暫未實現。
|
||||
// 超時時間。當 type 為 "部署" | "技能" 時可選。預設 INT_MAX, 單位毫秒
|
||||
@@ -133,4 +133,4 @@
|
||||
## 舉例
|
||||
|
||||
[Sample](../resource/copilot/test.json)
|
||||
[GA-EX8 突襲作業](../resource/copilot/GA-EX8-raid.json)
|
||||
[GA-EX8 突襲作業](../resource/copilot/GA-EX8-raid.json)
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
// 可選項,表示執行出錯時,後續要執行的任務
|
||||
|
||||
"preDelay": 1000, // 可選項,表示辨識到後延遲多久才執行 action,單位毫秒;不填寫時預設 0
|
||||
"rearDelay": 1000, // 可選項,表示 action 執行完後延遲多久才去辨識 next, 單位毫秒;不填寫時預設 0
|
||||
"postDelay": 1000, // 可選項,表示 action 執行完後延遲多久才去辨識 next, 單位毫秒;不填寫時預設 0
|
||||
|
||||
"roi": [ 0, 0, 1280, 720], // 可選項,表示辨識的範圍,格式為 [ x, y, width, height ]
|
||||
// 以 1280 * 720 為基準自動縮放;不填寫時預設 [ 0, 0, 1280, 720 ]
|
||||
|
||||
@@ -7,20 +7,31 @@
|
||||
```jsonc
|
||||
[
|
||||
{
|
||||
"stage_name": "馴獸小屋", // 關卡名,必選
|
||||
"replacement_home": [ // 替換掉家門的位置,可選,預設為空
|
||||
[ 2, 8 ] // 會使用這裡面的坐標來代替藍門的坐標,然後堵門
|
||||
"stage_name": "驯兽小屋", // 關卡名,必選
|
||||
"replacement_home": { // 替換掉家門的位置,可選,預設為空
|
||||
"location": [ // 會使用這裡面的坐標來代替藍門的坐標,然後堵門
|
||||
6,
|
||||
4
|
||||
],
|
||||
"direction": "left" // 优先朝向,但并不代表绝对是这个方向(算法自行判断)
|
||||
// 不填默认 none,即没有推荐方向,完全由算法自行判断
|
||||
// "none / left / right / up / down / 无 / 上 / 下 / 左 / 右"
|
||||
},
|
||||
"blacklist_location": [ // 黑名单位置,永远不会在这个格子上部署干员
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
1,
|
||||
1
|
||||
]
|
||||
],
|
||||
"key_kills": [ // 關鍵擊殺數,可選,預設為空
|
||||
15, // 若不為空,幹員技能會攢著,不是好了就放,而是等到擊殺數達到時再釋放
|
||||
... // 當跑完陣列裡所有的元素之後,再把幹員技能變成好了就放
|
||||
]
|
||||
},
|
||||
{
|
||||
"stage_name": "巡邏隊",
|
||||
"replacement_home": [
|
||||
[ 2, 8 ]
|
||||
]
|
||||
}
|
||||
...
|
||||
]
|
||||
```
|
||||
|
||||
@@ -2,39 +2,56 @@
|
||||
|
||||
#include "AsstPort.h"
|
||||
|
||||
#ifndef __cplusplus
|
||||
#include <stdbool.h>
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
namespace asst
|
||||
{
|
||||
class Assistant;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
#ifdef __cplusplus
|
||||
typedef asst::Assistant* AsstHandle;
|
||||
typedef int TaskId;
|
||||
#else
|
||||
typedef void* AsstHandle;
|
||||
#endif
|
||||
typedef int AsstTaskId;
|
||||
typedef int AsstProcessOptionKey;
|
||||
typedef int AsstInstanceOptionKey;
|
||||
typedef unsigned long long AsstSize;
|
||||
|
||||
typedef void(ASST_CALL* AsstApiCallback)(int msg, const char* detail_json, void* custom_arg);
|
||||
|
||||
bool ASSTAPI AsstSetUserDir(const char* path);
|
||||
bool ASSTAPI AsstLoadResource(const char* path);
|
||||
bool ASSTAPI AsstSetProcessOption(AsstProcessOptionKey key, const char* value);
|
||||
|
||||
AsstHandle ASSTAPI AsstCreate();
|
||||
AsstHandle ASSTAPI AsstCreateEx(AsstApiCallback callback, void* custom_arg);
|
||||
void ASSTAPI AsstDestroy(AsstHandle handle);
|
||||
|
||||
bool ASSTAPI AsstSetInstanceOption(AsstHandle handle, AsstInstanceOptionKey key, const char* value);
|
||||
bool ASSTAPI AsstConnect(AsstHandle handle, const char* adb_path, const char* address, const char* config);
|
||||
|
||||
TaskId ASSTAPI AsstAppendTask(AsstHandle handle, const char* type, const char* params);
|
||||
bool ASSTAPI AsstSetTaskParams(AsstHandle handle, TaskId id, const char* params);
|
||||
AsstTaskId ASSTAPI AsstAppendTask(AsstHandle handle, const char* type, const char* params);
|
||||
bool ASSTAPI AsstSetTaskParams(AsstHandle handle, AsstTaskId id, const char* params);
|
||||
|
||||
bool ASSTAPI AsstStart(AsstHandle handle);
|
||||
bool ASSTAPI AsstStop(AsstHandle handle);
|
||||
bool ASSTAPI AsstRunning(AsstHandle handle);
|
||||
|
||||
bool ASSTAPI AsstCtrlerClick(AsstHandle handle, int x, int y, bool block);
|
||||
unsigned long long ASSTAPI AsstGetImage(AsstHandle handle, void* buff, unsigned long long buff_size);
|
||||
unsigned long long ASSTAPI AsstGetUUID(AsstHandle handle, char* buff, unsigned long long buff_size);
|
||||
unsigned long long ASSTAPI AsstGetTasksList(AsstHandle handle, TaskId* buff, unsigned long long buff_size);
|
||||
unsigned long long ASSTAPI AsstGetNullSize();
|
||||
bool ASSTAPI AsstClick(AsstHandle handle, int x, int y);
|
||||
AsstSize ASSTAPI AsstGetImage(AsstHandle handle, void* buff, AsstSize buff_size);
|
||||
AsstSize ASSTAPI AsstGetUUID(AsstHandle handle, char* buff, AsstSize buff_size);
|
||||
AsstSize ASSTAPI AsstGetTasksList(AsstHandle handle, AsstTaskId* buff, AsstSize buff_size);
|
||||
AsstSize ASSTAPI AsstGetNullSize();
|
||||
|
||||
ASSTAPI_PORT const char* ASST_CALL AsstGetVersion();
|
||||
void ASSTAPI AsstLog(const char* level, const char* message);
|
||||
|
||||
8
include/module.modulemap
Normal file
@@ -0,0 +1,8 @@
|
||||
module MeoAssistant {
|
||||
umbrella header "AsstCaller.h"
|
||||
export *
|
||||
link framework "Accelerate"
|
||||
link framework "OpenCL"
|
||||
link framework "Vision"
|
||||
link "c++"
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
[
|
||||
{
|
||||
"name_template": "MaaBundle-{VERSION}",
|
||||
"name_template": "MAA-{VERSION}-win-x64",
|
||||
"type": "MaaBundle",
|
||||
"configuration": {
|
||||
"include": [
|
||||
@@ -9,22 +9,22 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"name_template": "MaaBundle-OTA-{VERSION}",
|
||||
"name_template": "MAAComponent-OTA-{VERSION}-win-x64",
|
||||
"type": "MaaBundleOta",
|
||||
"configuration": {
|
||||
"include": [
|
||||
"resource/**",
|
||||
"MeoAssistant.dll",
|
||||
"MeoAsstGui.exe",
|
||||
"作业制作器/**"
|
||||
"MeoAsstGui.exe"
|
||||
],
|
||||
"exclude": [
|
||||
"**/PaddleOCR/**"
|
||||
"**/PaddleOCR/**",
|
||||
"**/PaddleCharOCR/**"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name_template": "MaaCore-{VERSION}",
|
||||
"name_template": "MAAComponent-Core-{VERSION}-win-x64",
|
||||
"type": "MaaCore",
|
||||
"configuration": {
|
||||
"include": [
|
||||
@@ -33,7 +33,7 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"name_template": "MaaDependency-{VERSION}",
|
||||
"name_template": "MAAComponent-Dependency-{VERSION}-win-x64",
|
||||
"type": "MaaDependency",
|
||||
"configuration": {
|
||||
"include": [
|
||||
@@ -43,30 +43,42 @@
|
||||
"paddle_inference.dll",
|
||||
"ppocr.dll",
|
||||
"opencv_world453.dll",
|
||||
"**/PaddleOCR/**"
|
||||
"**/PaddleOCR/**",
|
||||
"**/PaddleCharOCR/**"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name_template": "MaaDependencyNoAvx-{VERSION}",
|
||||
"name_template": "MAAComponent-DependencyNoAvx-{VERSION}-win-x64",
|
||||
"type": "MaaDependencyNoAvx",
|
||||
"configuration": {
|
||||
"include": [
|
||||
"opencv_world453.dll",
|
||||
"**/PaddleOCR/**"
|
||||
"**/PaddleOCR/**",
|
||||
"**/PaddleCharOCR/**"
|
||||
],
|
||||
"no_avx_bundle": "3rdparty/ppocr_noavx.zip"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name_template": "MaaResource-{VERSION}",
|
||||
"name_template": "MAAComponent-DebugSymbol-{VERSION}-win-x64",
|
||||
"type": "MaaDebugSymbol",
|
||||
"configuration": {
|
||||
"include": [
|
||||
"**/*.pdb"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name_template": "MAAComponent-Resource-{VERSION}",
|
||||
"type": "MaaResource",
|
||||
"configuration": {
|
||||
"include": [
|
||||
"resource/**"
|
||||
],
|
||||
"exclude": [
|
||||
"**/PaddleOCR/**"
|
||||
"**/PaddleOCR/**",
|
||||
"**/PaddleCharOCR/**"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,450 +0,0 @@
|
||||
{
|
||||
"roles": [
|
||||
"Warrior",
|
||||
"Pioneer",
|
||||
"Tank",
|
||||
"Sniper",
|
||||
"Caster",
|
||||
"Special",
|
||||
"Medic",
|
||||
"Support",
|
||||
"Alternate"
|
||||
],
|
||||
"Warrior": [
|
||||
{
|
||||
"name": "帕拉斯",
|
||||
"skill": 1,
|
||||
"recruit_priority": 900,
|
||||
"promote_priority": 850
|
||||
},
|
||||
{
|
||||
"name": "Sharp",
|
||||
"skill": 1,
|
||||
"recruit_priority": 650,
|
||||
"promote_priority": 600
|
||||
},
|
||||
{
|
||||
"name": "艾丽妮",
|
||||
"skill": 1,
|
||||
"recruit_priority": 800,
|
||||
"promote_priority": 750
|
||||
},
|
||||
{
|
||||
"name": "煌",
|
||||
"skill": 2,
|
||||
"recruit_priority": 700,
|
||||
"promote_priority": 650
|
||||
},
|
||||
{
|
||||
"name": "山",
|
||||
"skill": 2,
|
||||
"skill_usage": 2,
|
||||
"recruit_priority": 700,
|
||||
"promote_priority": 650
|
||||
},
|
||||
{
|
||||
"name": "羽毛笔",
|
||||
"skill": 1,
|
||||
"recruit_priority": 600,
|
||||
"promote_priority": 550
|
||||
},
|
||||
{
|
||||
"name": "海沫",
|
||||
"skill": 1,
|
||||
"recruit_priority": 600,
|
||||
"promote_priority": 550
|
||||
},
|
||||
{
|
||||
"name": "银灰",
|
||||
"skill": 3,
|
||||
"alternate_skill": 1,
|
||||
"recruit_priority": 500,
|
||||
"promote_priority": 800
|
||||
},
|
||||
{
|
||||
"name": "陈",
|
||||
"skill": 2,
|
||||
"recruit_priority": 500,
|
||||
"promote_priority": 600
|
||||
},
|
||||
{
|
||||
"name": "拉普兰德",
|
||||
"skill": 2,
|
||||
"recruit_priority": 450,
|
||||
"promote_priority": 400
|
||||
},
|
||||
{
|
||||
"name": "幽灵鲨",
|
||||
"skill": 2,
|
||||
"recruit_priority": 450,
|
||||
"promote_priority": 400
|
||||
},
|
||||
{
|
||||
"name": "龙舌兰",
|
||||
"skill": 1,
|
||||
"recruit_priority": 400,
|
||||
"promote_priority": 400
|
||||
},
|
||||
{
|
||||
"name": "星极",
|
||||
"skill": 2,
|
||||
"recruit_priority": 400,
|
||||
"promote_priority": 400
|
||||
},
|
||||
{
|
||||
"name": "棘刺",
|
||||
"skill": 3,
|
||||
"alternate_skill": 1,
|
||||
"recruit_priority": 350,
|
||||
"promote_priority": 1000
|
||||
},
|
||||
{
|
||||
"name": "柏喙",
|
||||
"skill": 2,
|
||||
"recruit_priority": 350,
|
||||
"promote_priority": 300
|
||||
},
|
||||
{
|
||||
"name": "泡普卡",
|
||||
"skill": 1,
|
||||
"recruit_priority": 10,
|
||||
"promote_priority": 0
|
||||
},
|
||||
{
|
||||
"name": "月见夜",
|
||||
"skill": 1,
|
||||
"recruit_priority": 10,
|
||||
"promote_priority": 0
|
||||
},
|
||||
{
|
||||
"name": "玫兰莎",
|
||||
"skill": 1,
|
||||
"recruit_priority": 10,
|
||||
"promote_priority": 0
|
||||
}
|
||||
],
|
||||
"Pioneer": [
|
||||
{
|
||||
"name": "风笛",
|
||||
"skill": 2,
|
||||
"recruit_priority": 600,
|
||||
"promote_priority": 500
|
||||
},
|
||||
{
|
||||
"name": "芬",
|
||||
"skill": 1,
|
||||
"recruit_priority": 200,
|
||||
"promote_priority": 0
|
||||
},
|
||||
{
|
||||
"name": "桃金娘",
|
||||
"skill": 1,
|
||||
"recruit_priority": 200,
|
||||
"promote_priority": 550
|
||||
},
|
||||
{
|
||||
"name": "翎羽",
|
||||
"skill": 1,
|
||||
"recruit_priority": 10,
|
||||
"promote_priority": 0
|
||||
}
|
||||
],
|
||||
"Tank": [
|
||||
{
|
||||
"name": "泥岩",
|
||||
"skill": 2,
|
||||
"recruit_priority": 750,
|
||||
"promote_priority": 650
|
||||
},
|
||||
{
|
||||
"name": "塞雷娅",
|
||||
"skill": 2,
|
||||
"recruit_priority": 800,
|
||||
"promote_priority": 650
|
||||
},
|
||||
{
|
||||
"name": "斑点",
|
||||
"skill": 1,
|
||||
"recruit_priority": 100,
|
||||
"promote_priority": 0
|
||||
},
|
||||
{
|
||||
"name": "卡缇",
|
||||
"skill": 1,
|
||||
"recruit_priority": 80,
|
||||
"promote_priority": 0
|
||||
}
|
||||
],
|
||||
"Sniper": [
|
||||
{
|
||||
"name": "假日威龙陈",
|
||||
"skill": 3,
|
||||
"alternate_skill": 1,
|
||||
"recruit_priority": 900,
|
||||
"promote_priority": 900
|
||||
},
|
||||
{
|
||||
"name": "Stormeye",
|
||||
"skill": 1,
|
||||
"recruit_priority": 750,
|
||||
"promote_priority": 650
|
||||
},
|
||||
{
|
||||
"name": "能天使",
|
||||
"skill": 3,
|
||||
"alternate_skill": 1,
|
||||
"recruit_priority": 700,
|
||||
"promote_priority": 650
|
||||
},
|
||||
{
|
||||
"name": "空弦",
|
||||
"skill": 1,
|
||||
"recruit_priority": 650,
|
||||
"promote_priority": 600
|
||||
},
|
||||
{
|
||||
"name": "克洛丝",
|
||||
"skill": 1,
|
||||
"recruit_priority": 150,
|
||||
"promote_priority": 0
|
||||
},
|
||||
{
|
||||
"name": "安德切尔",
|
||||
"skill": 1,
|
||||
"recruit_priority": 100,
|
||||
"promote_priority": 0
|
||||
},
|
||||
{
|
||||
"name": "空爆",
|
||||
"skill": 1,
|
||||
"recruit_priority": 80,
|
||||
"promote_priority": 0
|
||||
}
|
||||
],
|
||||
"Caster": [
|
||||
{
|
||||
"name": "澄闪",
|
||||
"skill": 3,
|
||||
"alternate_skill": 2,
|
||||
"recruit_priority": 700,
|
||||
"promote_priority": 800
|
||||
},
|
||||
{
|
||||
"name": "Pith",
|
||||
"skill": 1,
|
||||
"recruit_priority": 600,
|
||||
"promote_priority": 600
|
||||
},
|
||||
{
|
||||
"name": "艾雅法拉",
|
||||
"skill": 2,
|
||||
"recruit_priority": 600,
|
||||
"promote_priority": 600
|
||||
},
|
||||
{
|
||||
"name": "阿米娅",
|
||||
"skill": 1,
|
||||
"recruit_priority": 500,
|
||||
"promote_priority": 500
|
||||
},
|
||||
{
|
||||
"name": "史都华德",
|
||||
"skill": 1,
|
||||
"recruit_priority": 100,
|
||||
"promote_priority": 0
|
||||
},
|
||||
{
|
||||
"name": "炎熔",
|
||||
"skill": 1,
|
||||
"recruit_priority": 80,
|
||||
"promote_priority": 0
|
||||
}
|
||||
],
|
||||
"Special": [
|
||||
{
|
||||
"name": "归溟幽灵鲨",
|
||||
"skill": 2,
|
||||
"recruit_priority": 700,
|
||||
"promote_priority": 700
|
||||
},
|
||||
{
|
||||
"name": "风丸",
|
||||
"skill": 2,
|
||||
"recruit_priority": 550,
|
||||
"promote_priority": 650
|
||||
},
|
||||
{
|
||||
"name": "贝娜",
|
||||
"skill": 2,
|
||||
"recruit_priority": 500,
|
||||
"promote_priority": 600
|
||||
},
|
||||
{
|
||||
"name": "伊桑",
|
||||
"skill": 2,
|
||||
"recruit_priority": 500,
|
||||
"promote_priority": 400
|
||||
},
|
||||
{
|
||||
"name": "狮蝎",
|
||||
"skill": 2,
|
||||
"recruit_priority": 500,
|
||||
"promote_priority": 500
|
||||
},
|
||||
{
|
||||
"name": "水月",
|
||||
"skill": 2,
|
||||
"recruit_priority": 300,
|
||||
"promote_priority": 550
|
||||
},
|
||||
{
|
||||
"name": "温蒂",
|
||||
"skill": 3,
|
||||
"alternate_skill": 2,
|
||||
"recruit_priority": 100,
|
||||
"promote_priority": 650
|
||||
}
|
||||
],
|
||||
"Medic": [
|
||||
{
|
||||
"name": "凯尔希",
|
||||
"skill": 3,
|
||||
"alternate_skill": 2,
|
||||
"recruit_priority": 650,
|
||||
"promote_priority": 600
|
||||
},
|
||||
{
|
||||
"name": "Touch",
|
||||
"skill": 1,
|
||||
"recruit_priority": 600,
|
||||
"promote_priority": 500
|
||||
},
|
||||
{
|
||||
"name": "夜莺",
|
||||
"skill": 2,
|
||||
"recruit_priority": 550,
|
||||
"promote_priority": 450
|
||||
},
|
||||
{
|
||||
"name": "白面鸮",
|
||||
"skill": 2,
|
||||
"recruit_priority": 550,
|
||||
"promote_priority": 450
|
||||
},
|
||||
{
|
||||
"name": "桑葚",
|
||||
"skill": 1,
|
||||
"recruit_priority": 500,
|
||||
"promote_priority": 400
|
||||
},
|
||||
{
|
||||
"name": "蜜莓",
|
||||
"skill": 1,
|
||||
"recruit_priority": 700,
|
||||
"promote_priority": 1
|
||||
},
|
||||
{
|
||||
"name": "苏苏洛",
|
||||
"skill": 2,
|
||||
"recruit_priority": 500,
|
||||
"promote_priority": 400
|
||||
},
|
||||
{
|
||||
"name": "调香师",
|
||||
"skill": 1,
|
||||
"recruit_priority": 700,
|
||||
"promote_priority": 650
|
||||
},
|
||||
{
|
||||
"name": "安赛尔",
|
||||
"skill": 1,
|
||||
"recruit_priority": 100,
|
||||
"promote_priority": 0
|
||||
},
|
||||
{
|
||||
"name": "芙蓉",
|
||||
"skill": 1,
|
||||
"recruit_priority": 80,
|
||||
"promote_priority": 0
|
||||
}
|
||||
],
|
||||
"Support": [
|
||||
{
|
||||
"name": "灵知",
|
||||
"skill": 3,
|
||||
"alternate_skill": 1,
|
||||
"recruit_priority": 10,
|
||||
"promote_priority": 500
|
||||
},
|
||||
{
|
||||
"name": "令",
|
||||
"skill": 3,
|
||||
"alternate_skill": 1,
|
||||
"recruit_priority": 10,
|
||||
"promote_priority": 900
|
||||
},
|
||||
{
|
||||
"name": "铃兰",
|
||||
"skill": 3,
|
||||
"alternate_skill": 2,
|
||||
"recruit_priority": 10,
|
||||
"promote_priority": 300
|
||||
},
|
||||
{
|
||||
"name": "安洁莉娜",
|
||||
"skill": 3,
|
||||
"alternate_skill": 2,
|
||||
"recruit_priority": 10,
|
||||
"promote_priority": 200
|
||||
},
|
||||
{
|
||||
"name": "浊心斯卡蒂",
|
||||
"skill": 2,
|
||||
"recruit_priority": 10,
|
||||
"promote_priority": 500
|
||||
},
|
||||
{
|
||||
"name": "梓兰",
|
||||
"skill": 1,
|
||||
"recruit_priority": 10,
|
||||
"promote_priority": 0
|
||||
}
|
||||
],
|
||||
"Alternate": [
|
||||
{
|
||||
"name": "预备干员-近战",
|
||||
"skill": 0,
|
||||
"recruit_priority": 5,
|
||||
"promote_priority": 0,
|
||||
"is_alternate": true
|
||||
},
|
||||
{
|
||||
"name": "预备干员-狙击",
|
||||
"skill": 0,
|
||||
"recruit_priority": 5,
|
||||
"promote_priority": 0,
|
||||
"is_alternate": true
|
||||
},
|
||||
{
|
||||
"name": "预备干员-术师",
|
||||
"skill": 0,
|
||||
"recruit_priority": 5,
|
||||
"promote_priority": 0,
|
||||
"is_alternate": true
|
||||
},
|
||||
{
|
||||
"name": "预备干员-后勤",
|
||||
"skill": 0,
|
||||
"recruit_priority": 5,
|
||||
"promote_priority": 0,
|
||||
"is_alternate": true
|
||||
},
|
||||
{
|
||||
"name": "预备干员-重装",
|
||||
"skill": 0,
|
||||
"recruit_priority": 5,
|
||||
"promote_priority": 0,
|
||||
"is_alternate": true
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,489 +0,0 @@
|
||||
[
|
||||
{
|
||||
"name": "长生者之证"
|
||||
},
|
||||
{
|
||||
"name": "血魔的寝床"
|
||||
},
|
||||
{
|
||||
"name": "《旧高卢地名源流考》"
|
||||
},
|
||||
{
|
||||
"name": "石像鬼塑像"
|
||||
},
|
||||
{
|
||||
"name": "特殊抑制器"
|
||||
},
|
||||
{
|
||||
"name": "《杜林地上环游记》"
|
||||
},
|
||||
{
|
||||
"name": "金酒之杯",
|
||||
"no_longer_buy": true,
|
||||
"ignore_no_longer_buy": true
|
||||
},
|
||||
{
|
||||
"name": "骑士戒律·新编",
|
||||
"no_longer_buy": true,
|
||||
"ignore_no_longer_buy": true
|
||||
},
|
||||
{
|
||||
"name": "投币玩具",
|
||||
"no_longer_buy": true,
|
||||
"ignore_no_longer_buy": true
|
||||
},
|
||||
{
|
||||
"name": "扩散之手",
|
||||
"chars": [
|
||||
"异客"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "撕扯之手",
|
||||
"chars": [
|
||||
"帕拉斯"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "人事部密信"
|
||||
},
|
||||
{
|
||||
"name": "残弩-典训",
|
||||
"roles": [
|
||||
"SNIPER"
|
||||
],
|
||||
"promotion": 1
|
||||
},
|
||||
{
|
||||
"name": "绿叶菜罐头"
|
||||
},
|
||||
{
|
||||
"name": "073号安全试剂"
|
||||
},
|
||||
{
|
||||
"name": "Miss.Christine摸摸券",
|
||||
"promotion": 2
|
||||
},
|
||||
{
|
||||
"name": "残弩-神速",
|
||||
"roles": [
|
||||
"SNIPER"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "折戟-浴血",
|
||||
"roles": [
|
||||
"WARRIOR"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "玻璃小鸟"
|
||||
},
|
||||
{
|
||||
"name": "赤金的远征"
|
||||
},
|
||||
{
|
||||
"name": "锈蚀的铁锤"
|
||||
},
|
||||
{
|
||||
"name": "《第二经济改革法》"
|
||||
},
|
||||
{
|
||||
"name": "被撬开的道具箱"
|
||||
},
|
||||
{
|
||||
"name": "尖笑鬼牌",
|
||||
"promotion": 1
|
||||
},
|
||||
{
|
||||
"name": "“时光之末”"
|
||||
},
|
||||
{
|
||||
"name": "折戟-典训",
|
||||
"roles": [
|
||||
"WARRIOR"
|
||||
],
|
||||
"promotion": 1
|
||||
},
|
||||
{
|
||||
"name": "高卢银行支票"
|
||||
},
|
||||
{
|
||||
"name": "折戟-破釜沉舟",
|
||||
"roles": [
|
||||
"WARRIOR"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "折戟-一夫当关",
|
||||
"roles": [
|
||||
"WARRIOR"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "全局作战文件"
|
||||
},
|
||||
{
|
||||
"name": "折戟-锋刃",
|
||||
"roles": [
|
||||
"WARRIOR"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "皇家利口酒"
|
||||
},
|
||||
{
|
||||
"name": "断杖-典训",
|
||||
"roles": [
|
||||
"CASTER"
|
||||
],
|
||||
"promotion": 1
|
||||
},
|
||||
{
|
||||
"name": "古旧乐谱残章"
|
||||
},
|
||||
{
|
||||
"name": "苦行者泡芙"
|
||||
},
|
||||
{
|
||||
"name": "乌萨斯列巴"
|
||||
},
|
||||
{
|
||||
"name": "高卢小圆饼"
|
||||
},
|
||||
{
|
||||
"name": "微缩舞台模型"
|
||||
},
|
||||
{
|
||||
"name": "蓝色丝巾"
|
||||
},
|
||||
{
|
||||
"name": "钝爪-典训",
|
||||
"roles": [
|
||||
"PIONEER"
|
||||
],
|
||||
"promotion": 1
|
||||
},
|
||||
{
|
||||
"name": "残弩-百步穿杨",
|
||||
"roles": [
|
||||
"SNIPER"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "万能钥匙"
|
||||
},
|
||||
{
|
||||
"name": "“法术杀手”"
|
||||
},
|
||||
{
|
||||
"name": "猩红剧团票根"
|
||||
},
|
||||
{
|
||||
"name": "老蒲扇"
|
||||
},
|
||||
{
|
||||
"name": "空白名片"
|
||||
},
|
||||
{
|
||||
"name": "难闻的止血剂"
|
||||
},
|
||||
{
|
||||
"name": "迷迭香之拥"
|
||||
},
|
||||
{
|
||||
"name": "源石鸢尾花"
|
||||
},
|
||||
{
|
||||
"name": "断杖-织法者",
|
||||
"roles": [
|
||||
"CASTER"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "“当红歌手”"
|
||||
},
|
||||
{
|
||||
"name": "银餐叉"
|
||||
},
|
||||
{
|
||||
"name": "Scout的狙击镜"
|
||||
},
|
||||
{
|
||||
"name": "维多利亚“废铁”勋章"
|
||||
},
|
||||
{
|
||||
"name": "折戟-突破",
|
||||
"roles": [
|
||||
"WARRIOR"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "莱塔尼亚荣誉勋章"
|
||||
},
|
||||
{
|
||||
"name": "女妖之吻"
|
||||
},
|
||||
{
|
||||
"name": "突击协议-利刃",
|
||||
"roles": [
|
||||
"WARRIOR",
|
||||
"PIONEER"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "爱丽舍钱袋"
|
||||
},
|
||||
{
|
||||
"name": "至宝指环",
|
||||
"ignore_no_longer_buy": true
|
||||
},
|
||||
{
|
||||
"name": "制式防暴用具"
|
||||
},
|
||||
{
|
||||
"name": "幸运硬币",
|
||||
"ignore_no_longer_buy": true
|
||||
},
|
||||
{
|
||||
"name": "维多利亚蛋糕"
|
||||
},
|
||||
{
|
||||
"name": "“黑夜呢喃”"
|
||||
},
|
||||
{
|
||||
"name": "红色蝴蝶结"
|
||||
},
|
||||
{
|
||||
"name": "残弩-战场依存",
|
||||
"roles": [
|
||||
"SNIPER"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "断杖-咏唱",
|
||||
"roles": [
|
||||
"CASTER"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "支柱-典训",
|
||||
"roles": [
|
||||
"SUPPORT"
|
||||
],
|
||||
"promotion": 1
|
||||
},
|
||||
{
|
||||
"name": "香草沙士汽水"
|
||||
},
|
||||
{
|
||||
"name": "悬丝傀儡"
|
||||
},
|
||||
{
|
||||
"name": "镶金骨骰"
|
||||
},
|
||||
{
|
||||
"name": "钝爪-爆发",
|
||||
"roles": [
|
||||
"PIONEER"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "苍白花冠"
|
||||
},
|
||||
{
|
||||
"name": "“绽放”"
|
||||
},
|
||||
{
|
||||
"name": "作者的喉舌"
|
||||
},
|
||||
{
|
||||
"name": "设计师量尺"
|
||||
},
|
||||
{
|
||||
"name": "古高卢银币"
|
||||
},
|
||||
{
|
||||
"name": "医者-妙手",
|
||||
"roles": [
|
||||
"MEDIC"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "急救药箱"
|
||||
},
|
||||
{
|
||||
"name": "钝爪-百战",
|
||||
"roles": [
|
||||
"PIONEER"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "皇帝的收藏"
|
||||
},
|
||||
{
|
||||
"name": "断杖-凝神",
|
||||
"roles": [
|
||||
"CASTER"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "铁棍面包"
|
||||
},
|
||||
{
|
||||
"name": "迷梦香精"
|
||||
},
|
||||
{
|
||||
"name": "赶车夫的长鞭"
|
||||
},
|
||||
{
|
||||
"name": "人偶之家"
|
||||
},
|
||||
{
|
||||
"name": "锈蚀刀片"
|
||||
},
|
||||
{
|
||||
"name": "贵族刺剑"
|
||||
},
|
||||
{
|
||||
"name": "路线说明图"
|
||||
},
|
||||
{
|
||||
"name": "摩根队长佳酿"
|
||||
},
|
||||
{
|
||||
"name": "试制巧克力"
|
||||
},
|
||||
{
|
||||
"name": "黄铜指南针"
|
||||
},
|
||||
{
|
||||
"name": "“噤声”"
|
||||
},
|
||||
{
|
||||
"name": "“童趣玩偶”"
|
||||
},
|
||||
{
|
||||
"name": "显圣吊坠"
|
||||
},
|
||||
{
|
||||
"name": "破坏协议-消除",
|
||||
"roles": [
|
||||
"CASTER",
|
||||
"SPECIAL"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "远程协议-遥击",
|
||||
"roles": [
|
||||
"SNIPER",
|
||||
"MEDIC"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "地区行动方案"
|
||||
},
|
||||
{
|
||||
"name": "舞者手链"
|
||||
},
|
||||
{
|
||||
"name": "安洁莉娜的创想"
|
||||
},
|
||||
{
|
||||
"name": "异铁小圆盾"
|
||||
},
|
||||
{
|
||||
"name": "破损的面具"
|
||||
},
|
||||
{
|
||||
"name": "羽兽肝酱"
|
||||
},
|
||||
{
|
||||
"name": "活玫瑰"
|
||||
},
|
||||
{
|
||||
"name": "“聚焦”"
|
||||
},
|
||||
{
|
||||
"name": "钝爪-熟稔",
|
||||
"roles": [
|
||||
"PIONEER"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "独奏八音盒"
|
||||
},
|
||||
{
|
||||
"name": "球球果汁"
|
||||
},
|
||||
{
|
||||
"name": "古怪的长笛"
|
||||
},
|
||||
{
|
||||
"name": "女皇之愿"
|
||||
},
|
||||
{
|
||||
"name": "荒地龙舌兰"
|
||||
},
|
||||
{
|
||||
"name": "演出用香水"
|
||||
},
|
||||
{
|
||||
"name": "医者-理智固剂",
|
||||
"roles": [
|
||||
"MEDIC"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "生命之水"
|
||||
},
|
||||
{
|
||||
"name": "奇渊面具"
|
||||
},
|
||||
{
|
||||
"name": "昏暗的提灯"
|
||||
},
|
||||
{
|
||||
"name": "皇族金胸针"
|
||||
},
|
||||
{
|
||||
"name": "皇帝的恩宠"
|
||||
},
|
||||
{
|
||||
"name": "开裂的束缚带"
|
||||
},
|
||||
{
|
||||
"name": "解约协议"
|
||||
},
|
||||
{
|
||||
"name": "残破合影"
|
||||
},
|
||||
{
|
||||
"name": "精神治疗录像带"
|
||||
},
|
||||
{
|
||||
"name": "军团护心镜"
|
||||
},
|
||||
{
|
||||
"name": "“迷醉荷谟伊”"
|
||||
},
|
||||
{
|
||||
"name": "食腐者手杖"
|
||||
},
|
||||
{
|
||||
"name": "凯旋号角"
|
||||
},
|
||||
{
|
||||
"name": "假面舞会面具",
|
||||
"ignore_no_longer_buy": true
|
||||
},
|
||||
{
|
||||
"name": "高闪相机"
|
||||
},
|
||||
{
|
||||
"name": "“逝者垂泪”"
|
||||
},
|
||||
{
|
||||
"name": "四叶草化石"
|
||||
}
|
||||
]
|
||||
@@ -1,324 +0,0 @@
|
||||
{
|
||||
"Roguelike1StageEncounter": {
|
||||
"Doc": "不期而遇(随机奖励)",
|
||||
"action": "ClickSelf",
|
||||
"cache": false,
|
||||
"roi": [
|
||||
0,
|
||||
53,
|
||||
1280,
|
||||
554
|
||||
],
|
||||
"templThreshold": 0.95,
|
||||
"next": [
|
||||
"Roguelike1StageEncounterEnter",
|
||||
"Roguelike1StageTrader",
|
||||
"Roguelike1StageSafeHouse",
|
||||
"Roguelike1StageEncounter",
|
||||
"Roguelike1StageBoons",
|
||||
"Roguelike1StageCambatDps",
|
||||
"Roguelike1StageEmergencyDps",
|
||||
"Roguelike1StageDreadfulFoe",
|
||||
"Roguelike2StageDreadfulFoe-5",
|
||||
"Roguelike2StageRegionalCommissioning",
|
||||
"Roguelike2StageGambling",
|
||||
"Roguelike2DiceConfirm"
|
||||
]
|
||||
},
|
||||
"Roguelike1StageBoons": {
|
||||
"Doc": "古堡馈赠(随机奖励)",
|
||||
"action": "ClickSelf",
|
||||
"cache": false,
|
||||
"roi": [
|
||||
0,
|
||||
53,
|
||||
1280,
|
||||
554
|
||||
],
|
||||
"templThreshold": 0.95,
|
||||
"next": [
|
||||
"Roguelike1StageEncounterEnter",
|
||||
"Roguelike1StageTrader",
|
||||
"Roguelike1StageSafeHouse",
|
||||
"Roguelike1StageEncounter",
|
||||
"Roguelike1StageBoons",
|
||||
"Roguelike1StageCambatDps",
|
||||
"Roguelike1StageEmergencyDps",
|
||||
"Roguelike1StageDreadfulFoe",
|
||||
"Roguelike2StageDreadfulFoe-5",
|
||||
"Roguelike2StageRegionalCommissioning",
|
||||
"Roguelike2StageGambling",
|
||||
"Roguelike2DiceConfirm"
|
||||
]
|
||||
},
|
||||
"Roguelike1StageCambatDps": {
|
||||
"Doc": "普通作战",
|
||||
"action": "ClickSelf",
|
||||
"cache": false,
|
||||
"templThreshold": 0.95,
|
||||
"roi": [
|
||||
0,
|
||||
53,
|
||||
1280,
|
||||
554
|
||||
],
|
||||
"next": [
|
||||
"Roguelike1StageCambatDpsEnter",
|
||||
"Roguelike1StageEmergencyDpsEnter",
|
||||
"Roguelike1StageTrader",
|
||||
"Roguelike1StageSafeHouse",
|
||||
"Roguelike1StageEncounter",
|
||||
"Roguelike1StageBoons",
|
||||
"Roguelike1StageCambatDps",
|
||||
"Roguelike1StageEmergencyDps",
|
||||
"Roguelike1StageDreadfulFoe",
|
||||
"Roguelike2StageDreadfulFoe-5",
|
||||
"Roguelike2StageRegionalCommissioning",
|
||||
"Roguelike2StageGambling",
|
||||
"Roguelike2DiceConfirm"
|
||||
]
|
||||
},
|
||||
"Roguelike1StageEmergencyDps": {
|
||||
"Doc": "紧急作战",
|
||||
"action": "ClickSelf",
|
||||
"cache": false,
|
||||
"templThreshold": 0.95,
|
||||
"roi": [
|
||||
0,
|
||||
53,
|
||||
1280,
|
||||
554
|
||||
],
|
||||
"next": [
|
||||
"Roguelike1StageEmergencyDpsEnter",
|
||||
"Roguelike1StageCambatDpsEnter",
|
||||
"Roguelike1StageTrader",
|
||||
"Roguelike1StageSafeHouse",
|
||||
"Roguelike1StageEncounter",
|
||||
"Roguelike1StageBoons",
|
||||
"Roguelike1StageCambatDps",
|
||||
"Roguelike1StageEmergencyDps",
|
||||
"Roguelike1StageDreadfulFoe",
|
||||
"Roguelike2StageDreadfulFoe-5",
|
||||
"Roguelike2StageRegionalCommissioning",
|
||||
"Roguelike2StageGambling",
|
||||
"Roguelike2DiceConfirm"
|
||||
]
|
||||
},
|
||||
"Roguelike2StageRegionalCommissioning": {
|
||||
"Doc": "地区委托(随机奖励)",
|
||||
"action": "ClickSelf",
|
||||
"cache": false,
|
||||
"roi": [
|
||||
0,
|
||||
53,
|
||||
1280,
|
||||
554
|
||||
],
|
||||
"templThreshold": 0.95,
|
||||
"next": [
|
||||
"Roguelike1StageEncounterEnter",
|
||||
"Roguelike1StageTrader",
|
||||
"Roguelike1StageSafeHouse",
|
||||
"Roguelike1StageEncounter",
|
||||
"Roguelike1StageBoons",
|
||||
"Roguelike1StageCambatDps",
|
||||
"Roguelike1StageEmergencyDps",
|
||||
"Roguelike1StageDreadfulFoe",
|
||||
"Roguelike2StageDreadfulFoe-5",
|
||||
"Roguelike2StageRegionalCommissioning",
|
||||
"Roguelike2StageGambling",
|
||||
"Roguelike2DiceConfirm"
|
||||
]
|
||||
},
|
||||
"Roguelike2StageGambling": {
|
||||
"Doc": "骰子关卡",
|
||||
"action": "ClickSelf",
|
||||
"cache": false,
|
||||
"roi": [
|
||||
0,
|
||||
53,
|
||||
1280,
|
||||
554
|
||||
],
|
||||
"templThreshold": 0.95,
|
||||
"next": [
|
||||
"Roguelike1StageEncounterEnter",
|
||||
"Roguelike1StageTrader",
|
||||
"Roguelike1StageSafeHouse",
|
||||
"Roguelike1StageEncounter",
|
||||
"Roguelike1StageBoons",
|
||||
"Roguelike1StageCambatDps",
|
||||
"Roguelike1StageEmergencyDps",
|
||||
"Roguelike1StageDreadfulFoe",
|
||||
"Roguelike2StageDreadfulFoe-5",
|
||||
"Roguelike2StageRegionalCommissioning",
|
||||
"Roguelike2StageGambling",
|
||||
"Roguelike2DiceConfirm"
|
||||
]
|
||||
},
|
||||
"Roguelike2StageDreadfulFoe-5": {
|
||||
"Doc": "第五层的boss关卡",
|
||||
"action": "ClickSelf",
|
||||
"cache": false,
|
||||
"roi": [
|
||||
0,
|
||||
53,
|
||||
1280,
|
||||
554
|
||||
],
|
||||
"templThreshold": 0.95,
|
||||
"next": [
|
||||
"Roguelike1StageEncounterEnter",
|
||||
"Roguelike1StageTrader",
|
||||
"Roguelike1StageSafeHouse",
|
||||
"Roguelike1StageEncounter",
|
||||
"Roguelike1StageBoons",
|
||||
"Roguelike1StageCambatDps",
|
||||
"Roguelike1StageEmergencyDps",
|
||||
"Roguelike1StageDreadfulFoe",
|
||||
"Roguelike2StageDreadfulFoe-5",
|
||||
"Roguelike2StageRegionalCommissioning",
|
||||
"Roguelike2StageGambling",
|
||||
"Roguelike2DiceConfirm"
|
||||
]
|
||||
},
|
||||
"Roguelike1StageTrader": {
|
||||
"Doc": "诡意行商(交易所)",
|
||||
"action": "ClickSelf",
|
||||
"cache": false,
|
||||
"roi": [
|
||||
0,
|
||||
53,
|
||||
1280,
|
||||
554
|
||||
],
|
||||
"templThreshold": 0.95,
|
||||
"next": [
|
||||
"Roguelike1StageTraderEnter",
|
||||
"Roguelike1StageTrader",
|
||||
"Roguelike1StageSafeHouse",
|
||||
"Roguelike1StageEncounter",
|
||||
"Roguelike1StageBoons",
|
||||
"Roguelike1StageCambatDps",
|
||||
"Roguelike1StageEmergencyDps",
|
||||
"Roguelike1StageDreadfulFoe",
|
||||
"Roguelike2StageDreadfulFoe-5",
|
||||
"Roguelike2DiceConfirm"
|
||||
]
|
||||
},
|
||||
"Roguelike1StageSafeHouse": {
|
||||
"Doc": "安全的角落",
|
||||
"action": "ClickSelf",
|
||||
"cache": false,
|
||||
"roi": [
|
||||
0,
|
||||
53,
|
||||
1280,
|
||||
554
|
||||
],
|
||||
"templThreshold": 0.95,
|
||||
"next": [
|
||||
"Roguelike1StageSafeHouseEnter",
|
||||
"Roguelike1StageTrader",
|
||||
"Roguelike1StageSafeHouse",
|
||||
"Roguelike1StageEncounter",
|
||||
"Roguelike1StageBoons",
|
||||
"Roguelike1StageCambatDps",
|
||||
"Roguelike1StageEmergencyDps",
|
||||
"Roguelike1StageDreadfulFoe",
|
||||
"Roguelike2StageDreadfulFoe-5",
|
||||
"Roguelike2DiceConfirm"
|
||||
]
|
||||
},
|
||||
"Roguelike1StageDreadfulFoe": {
|
||||
"Doc": "险路恶敌(boss关卡)",
|
||||
"action": "ClickSelf",
|
||||
"cache": false,
|
||||
"roi": [
|
||||
0,
|
||||
53,
|
||||
1280,
|
||||
554
|
||||
],
|
||||
"next": [
|
||||
"Roguelike1StageDreadfulFoeEnter",
|
||||
"Roguelike1StageEmergencyDpsEnter",
|
||||
"Roguelike1StageCambatDpsEnter",
|
||||
"Roguelike1StageTrader",
|
||||
"Roguelike1StageSafeHouse",
|
||||
"Roguelike1StageEncounter",
|
||||
"Roguelike1StageBoons",
|
||||
"Roguelike1StageCambatDps",
|
||||
"Roguelike1StageEmergencyDps",
|
||||
"Roguelike1StageDreadfulFoe",
|
||||
"Roguelike2StageDreadfulFoe-5",
|
||||
"Roguelike2StageRegionalCommissioning",
|
||||
"Roguelike2StageGambling",
|
||||
"Roguelike2DiceConfirm"
|
||||
],
|
||||
"next_Doc": "普通作战和紧急作战的图比较像,有时候会识别错,这里的next把两个开始的按钮都放进来,提高容错"
|
||||
},
|
||||
"Roguelike2DiceConfirm": {
|
||||
"Doc": "骰子的确认按钮",
|
||||
"action": "ClickSelf",
|
||||
"cache": false,
|
||||
"roi": [
|
||||
551,
|
||||
577,
|
||||
174,
|
||||
143
|
||||
],
|
||||
"templThreshold": 0.95,
|
||||
"next": [
|
||||
"Roguelike1StageEncounterEnter",
|
||||
"Roguelike1StageTrader",
|
||||
"Roguelike1StageSafeHouse",
|
||||
"Roguelike1StageEncounter",
|
||||
"Roguelike1StageBoons",
|
||||
"Roguelike1StageCambatDps",
|
||||
"Roguelike1StageEmergencyDps",
|
||||
"Roguelike1StageDreadfulFoe",
|
||||
"Roguelike2StageDreadfulFoe-5",
|
||||
"Roguelike2StageRegionalCommissioning",
|
||||
"Roguelike2StageGambling",
|
||||
"Roguelike2DiceConfirm"
|
||||
]
|
||||
},
|
||||
"Roguelike2GetDropBox": {
|
||||
"Doc": "漂流密匣“打开”按钮",
|
||||
"action": "ClickSelf",
|
||||
"cache": false,
|
||||
"roi": [
|
||||
0,
|
||||
471,
|
||||
1280,
|
||||
157
|
||||
],
|
||||
"templThreshold": 0.85,
|
||||
"rearDelay": 1000,
|
||||
"next": [
|
||||
"Roguelike1DropsFlag",
|
||||
"Roguelike2GetDropBoxSelect",
|
||||
"Roguelike1ChooseOperFlag"
|
||||
]
|
||||
},
|
||||
"Roguelike2GetDropBoxSelect": {
|
||||
"Doc": "漂流密匣-锤子砸开“选择”按钮",
|
||||
"action": "ClickSelf",
|
||||
"cache": false,
|
||||
"roi": [
|
||||
830,
|
||||
438,
|
||||
276,
|
||||
140
|
||||
],
|
||||
"templThreshold": 0.85,
|
||||
"rearDelay": 1000,
|
||||
"next": [
|
||||
"Roguelike1DropsFlag",
|
||||
"Roguelike1ChooseOperFlag",
|
||||
"Roguelike1ClickToDrops"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 153 KiB |
|
Before Width: | Height: | Size: 9.6 KiB |
|
Before Width: | Height: | Size: 32 KiB |
@@ -10,27 +10,33 @@
|
||||
"controlDelayRange_Doc": "点击随机延时:每次点击操作会进行随机延时,降低封号风险(好像也没听说过谁被封号的)。格式为 [ 最小延时, 最大延时 ],单位为毫秒。例如想设置3~5秒延时,即修改为[ 3000, 5000 ],默认0~0",
|
||||
"adbExtraSwipeDist": 100,
|
||||
"adbExtraSwipeDist_Doc": "额外的滑动距离:adb有bug,同样的参数,偶尔会划得非常远。额外做一个短程滑动,把之前的停下来",
|
||||
"adbExtraSwipeDuration": 1000,
|
||||
"adbExtraSwipeDuration": 500,
|
||||
"adbExtraSwipeDuration_Doc": "额外的滑动持续时间:adb有bug,同样的参数,偶尔会划得非常远。额外做一个短程滑动,把之前的停下来。若小于0,则关闭额外滑动功能",
|
||||
"adbSwipeDurationMultiplier": 10.0,
|
||||
"adbSwipeDurationMultiplier_Doc": "adb 滑动延迟倍数",
|
||||
"minitouchExtraSwipeDist": 100,
|
||||
"minitouchExtraSwipeDuration": 200,
|
||||
"penguinReport": {
|
||||
"Doc": "企鹅物流汇报: https://penguin-stats.cn/",
|
||||
"cmdFormat": "curl -H \"Content-Type: application/json\" -s -S -m 10 -i -d \"[body]\" \"https://penguin-stats.io/PenguinStats/api/v2/report\" [extra]",
|
||||
"cmdFormat": "curl -H \"Content-Type: application/json\" -s -S -m 10 -i -d \"[body]\" \"https://penguin-stats.io/PenguinStats/api/v2/report\" --ssl-no-revoke [extra]",
|
||||
"cmdFormat_Doc": "命令格式,想打印详细信息可以尝试添加 -v -i"
|
||||
},
|
||||
"yituliuReport": {
|
||||
"Doc": "一图流汇报:https://yituliu.site/maarecruitdata",
|
||||
"cmdFormat": "curl -H \"Content-Type: application/json\" -s -S -m 5 -i -d \"[body]\" \"https://houduan.yituliu.site/tool/recruitUpload\" [extra]",
|
||||
"cmdFormat": "curl -H \"Content-Type: application/json\" -s -S -m 5 -i -d \"[body]\" \"https://houduan.yituliu.site/tool/recruitUpload\" --ssl-no-revoke [extra]",
|
||||
"cmdFormat_Doc": "命令格式,想打印详细信息可以尝试添加 -v -i"
|
||||
},
|
||||
"depotExportTemplate": {
|
||||
"Doc": "仓库识别导出结果模板",
|
||||
"arkPlanner": "{\"@type\": \"@penguin-statistics/depot\",\"items\": []}",
|
||||
"arkPlanner_Doc": "https://penguin-stats.cn/planner"
|
||||
}
|
||||
},
|
||||
"ocrWithRawData": true,
|
||||
"ocrWithRawData_Doc": "是否使用图片原始数据进行OCR,可以提高性能,但在部分设备上可能有兼容性问题"
|
||||
},
|
||||
"intent": {
|
||||
"Official": "com.hypergryph.arknights/com.u8.sdk.U8UnityContext",
|
||||
"Bilibili": "com.hypergryph.arknights.bilibili/com.u8.sdk.SplashActivity",
|
||||
"Bilibili": "com.hypergryph.arknights.bilibili/com.u8.sdk.U8UnityContext",
|
||||
"YoStarEN": "com.YoStarEN.Arknights/com.u8.sdk.U8UnityContext",
|
||||
"YoStarJP": "com.YoStarJP.Arknights/com.u8.sdk.U8UnityContext",
|
||||
"YoStarKR": "com.YoStarKR.Arknights/com.u8.sdk.U8UnityContext",
|
||||
@@ -53,7 +59,12 @@
|
||||
"screencapEncode": "[Adb] -s [AdbSerial] exec-out screencap -p",
|
||||
"release": "[Adb] kill-server",
|
||||
"start": "[Adb] -s [AdbSerial] shell am start -n [Intent]",
|
||||
"stop": "[Adb] -s [AdbSerial] shell \"am force-stop `dumpsys activity activities 2>/dev/null | grep Activities= 2>/dev/null | grep -m 1 -i -o -E [^\\ ]*arknights[^/]*`\""
|
||||
"stop": "[Adb] -s [AdbSerial] shell \"am force-stop `dumpsys activity activities 2>/dev/null | grep Activities= 2>/dev/null | grep -m 1 -i -o -E [^\\ ]*arknights[^/]*`\"",
|
||||
"abilist": "[Adb] -s [AdbSerial] shell getprop ro.product.cpu.abilist",
|
||||
"orientation": "[Adb] -s [AdbSerial] shell dumpsys input | grep SurfaceOrientation | grep -m 1 -o -E [0-9]",
|
||||
"pushMinitouch": "[Adb] -s [AdbSerial] push \"[minitouchLocalPath]\" \"/data/local/tmp/[minitouchWorkingFile]\"",
|
||||
"chmodMinitouch": "[Adb] -s [AdbSerial] shell chmod 700 \"/data/local/tmp/[minitouchWorkingFile]\"",
|
||||
"callMinitouch": "[Adb] -s [AdbSerial] shell \"/data/local/tmp/[minitouchWorkingFile]\" -i"
|
||||
},
|
||||
"BlueStacks": {
|
||||
"devices": "[Adb] devices",
|
||||
@@ -71,7 +82,12 @@
|
||||
"screencapEncode": "[Adb] -s [AdbSerial] exec-out screencap -p",
|
||||
"release": "[Adb] kill-server",
|
||||
"start": "[Adb] -s [AdbSerial] shell am start -n [Intent]",
|
||||
"stop": "[Adb] -s [AdbSerial] shell \"am force-stop `dumpsys activity activities 2>/dev/null | grep Activities= 2>/dev/null | grep -m 1 -i -o -E [^\\ ]*arknights[^/]*`\""
|
||||
"stop": "[Adb] -s [AdbSerial] shell \"am force-stop `dumpsys activity activities 2>/dev/null | grep Activities= 2>/dev/null | grep -m 1 -i -o -E [^\\ ]*arknights[^/]*`\"",
|
||||
"abilist": "[Adb] -s [AdbSerial] shell getprop ro.product.cpu.abilist",
|
||||
"orientation": "[Adb] -s [AdbSerial] shell dumpsys input | grep SurfaceOrientation | grep -m 1 -o -E [0-9]",
|
||||
"pushMinitouch": "[Adb] -s [AdbSerial] push \"[minitouchLocalPath]\" \"/data/local/tmp/[minitouchWorkingFile]\"",
|
||||
"chmodMinitouch": "[Adb] -s [AdbSerial] shell chmod 700 \"/data/local/tmp/[minitouchWorkingFile]\"",
|
||||
"callMinitouch": "[Adb] -s [AdbSerial] shell \"/data/local/tmp/[minitouchWorkingFile]\" -i"
|
||||
},
|
||||
"MuMuEmulator": {
|
||||
"devices": "[Adb] devices",
|
||||
@@ -89,7 +105,12 @@
|
||||
"screencapEncode": "[Adb] -s [AdbSerial] exec-out screencap -p",
|
||||
"release": "[Adb] kill-server",
|
||||
"start": "[Adb] -s [AdbSerial] shell am start -n [Intent]",
|
||||
"stop": "[Adb] -s [AdbSerial] shell \"am force-stop `dumpsys activity activities 2>/dev/null | grep Activities= 2>/dev/null | grep -m 1 -i -o -E [^\\ ]*arknights[^/]*`\""
|
||||
"stop": "[Adb] -s [AdbSerial] shell \"am force-stop `dumpsys activity activities 2>/dev/null | grep Activities= 2>/dev/null | grep -m 1 -i -o -E [^\\ ]*arknights[^/]*`\"",
|
||||
"abilist": "[Adb] -s [AdbSerial] shell getprop ro.product.cpu.abilist",
|
||||
"orientation": "[Adb] -s [AdbSerial] shell dumpsys input | grep SurfaceOrientation | grep -m 1 -o -E [0-9]",
|
||||
"pushMinitouch": "[Adb] -s [AdbSerial] push \"[minitouchLocalPath]\" \"/data/local/tmp/[minitouchWorkingFile]\"",
|
||||
"chmodMinitouch": "[Adb] -s [AdbSerial] shell chmod 700 \"/data/local/tmp/[minitouchWorkingFile]\"",
|
||||
"callMinitouch": "[Adb] -s [AdbSerial] shell \"/data/local/tmp/[minitouchWorkingFile]\" -i"
|
||||
},
|
||||
"LDPlayer": {
|
||||
"devices": "[Adb] devices",
|
||||
@@ -107,7 +128,12 @@
|
||||
"screencapEncode": "[Adb] -s [AdbSerial] shell screencap -p",
|
||||
"release": "[Adb] kill-server",
|
||||
"start": "[Adb] -s [AdbSerial] shell am start -n [Intent]",
|
||||
"stop": "[Adb] -s [AdbSerial] shell \"am force-stop `dumpsys activity activities 2>/dev/null | grep Activities= 2>/dev/null | grep -m 1 -i -o -E [^\\ ]*arknights[^/]*`\""
|
||||
"stop": "[Adb] -s [AdbSerial] shell \"am force-stop `dumpsys activity activities 2>/dev/null | grep Activities= 2>/dev/null | grep -m 1 -i -o -E [^\\ ]*arknights[^/]*`\"",
|
||||
"abilist": "[Adb] -s [AdbSerial] shell getprop ro.product.cpu.abilist",
|
||||
"orientation": "[Adb] -s [AdbSerial] shell dumpsys input | grep SurfaceOrientation | grep -m 1 -o -E [0-9]",
|
||||
"pushMinitouch": "[Adb] -s [AdbSerial] push \"[minitouchLocalPath]\" \"/data/local/tmp/[minitouchWorkingFile]\"",
|
||||
"chmodMinitouch": "[Adb] -s [AdbSerial] shell chmod 700 \"/data/local/tmp/[minitouchWorkingFile]\"",
|
||||
"callMinitouch": "[Adb] -s [AdbSerial] shell \"/data/local/tmp/[minitouchWorkingFile]\" -i"
|
||||
},
|
||||
"Nox": {
|
||||
"devices": "[Adb] devices",
|
||||
@@ -125,7 +151,12 @@
|
||||
"screencapEncode": "[Adb] -s [AdbSerial] exec-out screencap -p",
|
||||
"release": "[Adb] kill-server",
|
||||
"start": "[Adb] -s [AdbSerial] shell am start -n [Intent]",
|
||||
"stop": "[Adb] -s [AdbSerial] shell \"am force-stop `dumpsys activity activities 2>/dev/null | grep Activities= 2>/dev/null | grep -m 1 -i -o -E [^\\ ]*arknights[^/]*`\""
|
||||
"stop": "[Adb] -s [AdbSerial] shell \"am force-stop `dumpsys activity activities 2>/dev/null | grep Activities= 2>/dev/null | grep -m 1 -i -o -E [^\\ ]*arknights[^/]*`\"",
|
||||
"abilist": "[Adb] -s [AdbSerial] shell getprop ro.product.cpu.abilist",
|
||||
"orientation": "[Adb] -s [AdbSerial] shell dumpsys input | grep SurfaceOrientation | grep -m 1 -o -E [0-9]",
|
||||
"pushMinitouch": "[Adb] -s [AdbSerial] push \"[minitouchLocalPath]\" \"/data/local/tmp/[minitouchWorkingFile]\"",
|
||||
"chmodMinitouch": "[Adb] -s [AdbSerial] shell chmod 700 \"/data/local/tmp/[minitouchWorkingFile]\"",
|
||||
"callMinitouch": "[Adb] -s [AdbSerial] shell \"/data/local/tmp/[minitouchWorkingFile]\" -i"
|
||||
},
|
||||
"XYAZ": {
|
||||
"devices": "[Adb] devices",
|
||||
@@ -143,7 +174,12 @@
|
||||
"screencapEncode": "[Adb] -s [AdbSerial] shell screencap -p",
|
||||
"release": "[Adb] kill-server",
|
||||
"start": "[Adb] -s [AdbSerial] shell am start -n [Intent]",
|
||||
"stop": "[Adb] -s [AdbSerial] shell \"am force-stop `dumpsys activity activities 2>/dev/null | grep Activities= 2>/dev/null | grep -m 1 -i -o -E [^\\ ]*arknights[^/]*`\""
|
||||
"stop": "[Adb] -s [AdbSerial] shell \"am force-stop `dumpsys activity activities 2>/dev/null | grep Activities= 2>/dev/null | grep -m 1 -i -o -E [^\\ ]*arknights[^/]*`\"",
|
||||
"abilist": "[Adb] -s [AdbSerial] shell getprop ro.product.cpu.abilist",
|
||||
"orientation": "[Adb] -s [AdbSerial] shell dumpsys input | grep SurfaceOrientation | grep -m 1 -o -E [0-9]",
|
||||
"pushMinitouch": "[Adb] -s [AdbSerial] push \"[minitouchLocalPath]\" \"/data/local/tmp/[minitouchWorkingFile]\"",
|
||||
"chmodMinitouch": "[Adb] -s [AdbSerial] shell chmod 700 \"/data/local/tmp/[minitouchWorkingFile]\"",
|
||||
"callMinitouch": "[Adb] -s [AdbSerial] shell \"/data/local/tmp/[minitouchWorkingFile]\" -i"
|
||||
},
|
||||
"WSA": {
|
||||
"devices": "[Adb] devices",
|
||||
@@ -162,13 +198,18 @@
|
||||
"screencapEncode": "[Adb] -s [AdbSerial] shell screencap -d [DisplayId] -p",
|
||||
"release": "[Adb] kill-server",
|
||||
"start": "[Adb] -s [AdbSerial] shell am start -n [Intent]",
|
||||
"stop": "[Adb] -s [AdbSerial] shell \"am force-stop `dumpsys activity activities 2>/dev/null | grep Activities= 2>/dev/null | grep -m 1 -i -o -E [^\\ ]*arknights[^/]*`\""
|
||||
"stop": "[Adb] -s [AdbSerial] shell \"am force-stop `dumpsys activity activities 2>/dev/null | grep Activities= 2>/dev/null | grep -m 1 -i -o -E [^\\ ]*arknights[^/]*`\"",
|
||||
"abilist": "[Adb] -s [AdbSerial] shell getprop ro.product.cpu.abilist",
|
||||
"orientation": "[Adb] -s [AdbSerial] shell dumpsys input | grep SurfaceOrientation | grep -m 1 -o -E [0-9]",
|
||||
"pushMinitouch": "[Adb] -s [AdbSerial] push \"[minitouchLocalPath]\" \"/data/local/tmp/[minitouchWorkingFile]\"",
|
||||
"chmodMinitouch": "[Adb] -s [AdbSerial] shell chmod 700 \"/data/local/tmp/[minitouchWorkingFile]\"",
|
||||
"callMinitouch": "[Adb] -s [AdbSerial] shell \"/data/local/tmp/[minitouchWorkingFile]\" -i"
|
||||
},
|
||||
"Compatible": {
|
||||
"devices": "[Adb] devices",
|
||||
"addressRegex": "(.+)\tdevice",
|
||||
"connect": "[Adb] connect [AdbSerial]",
|
||||
"uuid": "[Adb] -s [AdbSerial] shell settings get secure android_id",
|
||||
"uuid": "[Adb] -s [AdbSerial] shell echo 111111",
|
||||
"click": "[Adb] -s [AdbSerial] shell input tap [x] [y]",
|
||||
"swipe": "[Adb] -s [AdbSerial] shell input swipe [x1] [y1] [x2] [y2] [duration]",
|
||||
"display": "[Adb] -s [AdbSerial] shell dumpsys window displays | grep -o -E cur=+[^\\ ]+ | grep -o -E [0-9]+",
|
||||
@@ -180,7 +221,35 @@
|
||||
"screencapEncode": "[Adb] -s [AdbSerial] exec-out screencap -p",
|
||||
"release": "[Adb] kill-server",
|
||||
"start": "[Adb] -s [AdbSerial] shell am start -n [Intent]",
|
||||
"stop": "[Adb] -s [AdbSerial] shell \"am force-stop `dumpsys activity activities 2>/dev/null | grep Activities= 2>/dev/null | grep -m 1 -i -o -E [^\\ ]*arknights[^/]*`\""
|
||||
"stop": "[Adb] -s [AdbSerial] shell \"am force-stop `dumpsys activity activities 2>/dev/null | grep Activities= 2>/dev/null | grep -m 1 -i -o -E [^\\ ]*arknights[^/]*`\"",
|
||||
"abilist": "[Adb] -s [AdbSerial] shell getprop ro.product.cpu.abilist",
|
||||
"orientation": "[Adb] -s [AdbSerial] shell dumpsys input | grep SurfaceOrientation | grep -m 1 -o -E [0-9]",
|
||||
"pushMinitouch": "[Adb] -s [AdbSerial] push \"[minitouchLocalPath]\" \"/data/local/tmp/[minitouchWorkingFile]\"",
|
||||
"chmodMinitouch": "[Adb] -s [AdbSerial] shell chmod 700 \"/data/local/tmp/[minitouchWorkingFile]\"",
|
||||
"callMinitouch": "[Adb] -s [AdbSerial] shell \"/data/local/tmp/[minitouchWorkingFile]\" -i"
|
||||
},
|
||||
"CompatMac": {
|
||||
"devices": "[Adb] devices",
|
||||
"addressRegex": "(.+)\tdevice",
|
||||
"connect": "[Adb] connect [AdbSerial]",
|
||||
"uuid": "[Adb] -s [AdbSerial] shell echo 111111",
|
||||
"click": "[Adb] -s [AdbSerial] shell input tap [x] [y]",
|
||||
"swipe": "[Adb] -s [AdbSerial] shell input swipe [x1] [y1] [x2] [y2] [duration]",
|
||||
"display": "[Adb] -s [AdbSerial] shell dumpsys window displays | grep -o -E cur=+[^\\ ]+ | grep -o -E [0-9]+",
|
||||
"displayFormat": "%d%d",
|
||||
"screencapRawByNC": "[Adb] -s [AdbSerial] exec-out \"screencap | nc -w 3 [NcAddress] [NcPort]\"",
|
||||
"ncAddress": "[Adb] -s [AdbSerial] shell \" cat /proc/net/arp | grep : \"",
|
||||
"ncPort": 6723,
|
||||
"screencapRawWithGzip": "",
|
||||
"screencapEncode": "[Adb] -s [AdbSerial] exec-out screencap -p",
|
||||
"release": "[Adb] kill-server",
|
||||
"start": "[Adb] -s [AdbSerial] shell am start -n [Intent]",
|
||||
"stop": "[Adb] -s [AdbSerial] shell \"am force-stop `dumpsys activity activities 2>/dev/null | grep Activities= 2>/dev/null | grep -m 1 -i -o -E [^\\ ]*arknights[^/]*`\"",
|
||||
"abilist": "[Adb] -s [AdbSerial] shell getprop ro.product.cpu.abilist",
|
||||
"orientation": "[Adb] -s [AdbSerial] shell dumpsys input | grep SurfaceOrientation | grep -m 1 -o -E [0-9]",
|
||||
"pushMinitouch": "[Adb] -s [AdbSerial] push \"[minitouchLocalPath]\" \"/data/local/tmp/[minitouchWorkingFile]\"",
|
||||
"chmodMinitouch": "[Adb] -s [AdbSerial] shell chmod 700 \"/data/local/tmp/[minitouchWorkingFile]\"",
|
||||
"callMinitouch": "[Adb] -s [AdbSerial] shell \"/data/local/tmp/[minitouchWorkingFile]\" -i"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -98,7 +98,7 @@
|
||||
"kills": 26,
|
||||
"type": "技能",
|
||||
"name": "银灰",
|
||||
"rear_delay": 6000
|
||||
"post_delay": 6000
|
||||
},
|
||||
{
|
||||
"name": "史尔特尔",
|
||||
|
||||
@@ -151,7 +151,7 @@
|
||||
6
|
||||
],
|
||||
"direction": "右",
|
||||
"rear_delay": 6000
|
||||
"post_delay": 6000
|
||||
},
|
||||
{
|
||||
"doc": "莱瓦汀!",
|
||||
|
||||
@@ -3,8 +3,9 @@
|
||||
"description": "干员配置要求极高,请留意\n若缺少干员请自行拷贝文件并修改(请勿直接修改,以免更新后被覆盖)\n第一个制造站可根据赤金储量选赤金/记录\n\n作业作者:uye\n\n感谢公孙长乐大佬提供数据及方案支持!",
|
||||
"plans": [
|
||||
{
|
||||
"name": "A+B 组",
|
||||
"description": "最高效率长班\n下次换班请在约16小时后进行",
|
||||
"name": "A+B 组 16H",
|
||||
"description": "最高效率长班",
|
||||
"description_post": "下次换班请在约16小时后进行",
|
||||
"Fiammetta": {
|
||||
"target": "巫恋"
|
||||
},
|
||||
@@ -91,7 +92,7 @@
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"伊芙利特"
|
||||
"格雷伊"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -128,8 +129,9 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "A+Y 组",
|
||||
"description": "次高效替补 1 班\n下次换班请在约4小时后进行",
|
||||
"name": "A+Y 组 4H",
|
||||
"description": "次高效替补 1 班",
|
||||
"description_post": "下次换班请在约4小时后进行",
|
||||
"Fiammetta": {
|
||||
"target": "龙舌兰"
|
||||
},
|
||||
@@ -164,10 +166,11 @@
|
||||
"manufacture": [
|
||||
{
|
||||
"operators": [
|
||||
"温蒂",
|
||||
"异客",
|
||||
"森蚺"
|
||||
]
|
||||
"泡泡",
|
||||
"火神",
|
||||
"刻俄柏"
|
||||
],
|
||||
"sort": true
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
@@ -187,11 +190,10 @@
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"泡泡",
|
||||
"火神",
|
||||
"刻俄柏"
|
||||
"温蒂",
|
||||
"异客",
|
||||
"森蚺"
|
||||
],
|
||||
"sort": true,
|
||||
"product": "Battle Record"
|
||||
},
|
||||
{
|
||||
@@ -223,7 +225,7 @@
|
||||
"hire": [
|
||||
{
|
||||
"operators": [
|
||||
"艾雅法拉"
|
||||
"斥罪"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -249,8 +251,9 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "B+Y 组",
|
||||
"description": "次高效替补 2 班\n下次换班请在约4小时后进行",
|
||||
"name": "B+Y 组 4H",
|
||||
"description": "次高效替补 2 班",
|
||||
"description_post": "下次换班请在约4小时后进行",
|
||||
"drones": {
|
||||
"room": "trading",
|
||||
"index": 1,
|
||||
@@ -288,6 +291,14 @@
|
||||
],
|
||||
"sort": true
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"红豆",
|
||||
"霜叶",
|
||||
"食铁兽"
|
||||
],
|
||||
"product": "Battle Record"
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"断罪者",
|
||||
@@ -305,14 +316,6 @@
|
||||
"sort": true,
|
||||
"product": "Battle Record"
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"红豆",
|
||||
"霜叶",
|
||||
"食铁兽"
|
||||
],
|
||||
"product": "Battle Record"
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"水月",
|
||||
@@ -3,8 +3,9 @@
|
||||
"description": "干员配置要求极高,请留意\n若缺少干员请自行拷贝文件并修改(请勿直接修改,以免更新后被覆盖)\n\n作业作者:MistEO\n感谢公孙长乐大佬提供数据及方案支持!",
|
||||
"plans": [
|
||||
{
|
||||
"name": "A+B 组",
|
||||
"description": "最高效率长班\n下次换班请在约16小时后进行",
|
||||
"name": "A+B 组 8H",
|
||||
"description": "最高效率长班",
|
||||
"description_post": "下次换班请在约8小时后进行",
|
||||
"Fiammetta": {
|
||||
"target": "巫恋"
|
||||
},
|
||||
@@ -37,7 +38,7 @@
|
||||
{
|
||||
"operators": [
|
||||
"但书",
|
||||
"空弦",
|
||||
"伺夜",
|
||||
"黑键"
|
||||
],
|
||||
"product": "LMD"
|
||||
@@ -57,7 +58,7 @@
|
||||
"operators": [
|
||||
"食铁兽",
|
||||
"断罪者",
|
||||
"至简"
|
||||
"槐琥"
|
||||
],
|
||||
"product": "Battle Record"
|
||||
},
|
||||
@@ -72,7 +73,7 @@
|
||||
{
|
||||
"operators": [
|
||||
"砾",
|
||||
"槐琥",
|
||||
"至简",
|
||||
"迷迭香"
|
||||
],
|
||||
"product": "Pure Gold"
|
||||
@@ -91,7 +92,7 @@
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"炎狱炎熔"
|
||||
"格雷伊"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -111,7 +112,8 @@
|
||||
{
|
||||
"operators": [
|
||||
"爱丽丝",
|
||||
"车尔尼"
|
||||
"车尔尼",
|
||||
"菲亚梅塔"
|
||||
],
|
||||
"autofill": true
|
||||
},
|
||||
@@ -128,8 +130,9 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "A+Y 组",
|
||||
"description": "次高效替补 1 班\n下次换班请在约4小时后进行",
|
||||
"name": "A+Y 组 8H",
|
||||
"description": "次高效替补 1 班",
|
||||
"description_post": "下次换班请在约8小时后进行",
|
||||
"Fiammetta": {
|
||||
"target": "龙舌兰"
|
||||
},
|
||||
@@ -145,7 +148,7 @@
|
||||
"凯尔希",
|
||||
"灵知",
|
||||
"焰尾",
|
||||
"玛恩纳"
|
||||
"老鲤"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -196,9 +199,9 @@
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"泡泡",
|
||||
"火神",
|
||||
"刻俄柏"
|
||||
"水月",
|
||||
"海沫",
|
||||
"多萝西"
|
||||
],
|
||||
"sort": true,
|
||||
"product": "Pure Gold"
|
||||
@@ -217,14 +220,14 @@
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"炎狱炎熔"
|
||||
"格雷伊"
|
||||
]
|
||||
}
|
||||
],
|
||||
"hire": [
|
||||
{
|
||||
"operators": [
|
||||
"艾雅法拉"
|
||||
"斥罪"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -237,7 +240,8 @@
|
||||
{
|
||||
"operators": [
|
||||
"爱丽丝",
|
||||
"车尔尼"
|
||||
"车尔尼",
|
||||
"菲亚梅塔"
|
||||
],
|
||||
"autofill": true
|
||||
},
|
||||
@@ -254,10 +258,14 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "B+Y 组",
|
||||
"description": "次高效替补 2 班\n下次换班请在约4小时后进行",
|
||||
"name": "B+Y 组 8H",
|
||||
"description": "次高效替补 2 班",
|
||||
"description_post": "下次换班请在约8小时后进行",
|
||||
"Fiammetta": {
|
||||
"target": "但书"
|
||||
},
|
||||
"drones": {
|
||||
"room": "manufacture",
|
||||
"room": "trading",
|
||||
"index": 1
|
||||
},
|
||||
"rooms": {
|
||||
@@ -265,10 +273,10 @@
|
||||
{
|
||||
"operators": [
|
||||
"阿米娅",
|
||||
"焰尾",
|
||||
"夕",
|
||||
"琴柳",
|
||||
"令",
|
||||
"夕"
|
||||
"焰尾"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -292,6 +300,14 @@
|
||||
}
|
||||
],
|
||||
"manufacture": [
|
||||
{
|
||||
"operators": [
|
||||
"食铁兽",
|
||||
"断罪者",
|
||||
"槐琥"
|
||||
],
|
||||
"product": "Battle Record"
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"远牙",
|
||||
@@ -302,26 +318,18 @@
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"食铁兽",
|
||||
"断罪者",
|
||||
"至简"
|
||||
],
|
||||
"product": "Battle Record"
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"泡泡",
|
||||
"火神",
|
||||
"刻俄柏"
|
||||
"砾",
|
||||
"至简",
|
||||
"迷迭香"
|
||||
],
|
||||
"sort": true,
|
||||
"product": "Pure Gold"
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"砾",
|
||||
"槐琥",
|
||||
"迷迭香"
|
||||
"水月",
|
||||
"海沫",
|
||||
"多萝西"
|
||||
],
|
||||
"product": "Pure Gold"
|
||||
}
|
||||
@@ -334,12 +342,12 @@
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"澄闪"
|
||||
"雷蛇"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"雷蛇"
|
||||
"澄闪"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -359,7 +367,8 @@
|
||||
{
|
||||
"operators": [
|
||||
"爱丽丝",
|
||||
"车尔尼"
|
||||
"车尔尼",
|
||||
"菲亚梅塔"
|
||||
],
|
||||
"autofill": true
|
||||
},
|
||||
604
resource/custom_infrast/243_layout_4_times_a_day.json
Normal file
@@ -0,0 +1,604 @@
|
||||
{
|
||||
"title": "顶配版243,极限效率,一天四换,2022年11月版本",
|
||||
"description": "请不要直接在原文件上修改,更新会覆盖\n在内置版243一天三换基础上,做到了007但书+007巫恋+007龙舌兰,最大化肥鸭效率\n添加period可以配合自启动实现自动化,括号内举例了一个可能的时间段;宿舍已经手动写死,可以自行更改\n\n作业作者:OCEANUS\n感谢公孙长乐大佬提供数据及方案支持!",
|
||||
"plans": [
|
||||
{
|
||||
"name": "A+B 组 8H",
|
||||
"description": "最高效率长班",
|
||||
"description_post": "下次换班请在8小时后进行",
|
||||
"drones": {
|
||||
"order": "post",
|
||||
"room": "trading",
|
||||
"index": 1
|
||||
},
|
||||
"Fiammetta": {
|
||||
"target": "巫恋"
|
||||
},
|
||||
"rooms": {
|
||||
"control": [
|
||||
{
|
||||
"operators": [
|
||||
"阿米娅",
|
||||
"凯尔希",
|
||||
"琴柳",
|
||||
"令",
|
||||
"夕"
|
||||
]
|
||||
}
|
||||
],
|
||||
"trading": [
|
||||
{
|
||||
"operators": [
|
||||
"柏喙",
|
||||
"龙舌兰",
|
||||
"巫恋"
|
||||
],
|
||||
"sort": true,
|
||||
"product": "LMD"
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"但书",
|
||||
"空弦",
|
||||
"黑键"
|
||||
],
|
||||
"product": "LMD"
|
||||
}
|
||||
],
|
||||
"manufacture": [
|
||||
{
|
||||
"operators": [
|
||||
"红云",
|
||||
"稀音",
|
||||
"帕拉斯"
|
||||
],
|
||||
"sort": true,
|
||||
"product": "Battle Record"
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"食铁兽",
|
||||
"断罪者",
|
||||
"槐琥"
|
||||
],
|
||||
"product": "Battle Record"
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"清流",
|
||||
"温蒂",
|
||||
"森蚺"
|
||||
],
|
||||
"product": "Pure Gold"
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"砾",
|
||||
"至简",
|
||||
"迷迭香"
|
||||
],
|
||||
"product": "Pure Gold"
|
||||
}
|
||||
],
|
||||
"power": [
|
||||
{
|
||||
"operators": [
|
||||
"承曦格雷伊"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"澄闪"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"炎狱炎熔"
|
||||
]
|
||||
}
|
||||
],
|
||||
"hire": [
|
||||
{
|
||||
"operators": [
|
||||
"絮雨"
|
||||
]
|
||||
}
|
||||
],
|
||||
"meeting": [
|
||||
{
|
||||
"operators": [
|
||||
"陈",
|
||||
"伺夜"
|
||||
]
|
||||
}
|
||||
],
|
||||
"dormitory": [
|
||||
{
|
||||
"operators": [
|
||||
"菲亚梅塔",
|
||||
"焰尾",
|
||||
"老鲤",
|
||||
"诗怀雅",
|
||||
"灵知"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"孑",
|
||||
"银灰",
|
||||
"水月",
|
||||
"海沫",
|
||||
"多萝西"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"灰毫",
|
||||
"野鬃",
|
||||
"远牙",
|
||||
"正义骑士号",
|
||||
"雷蛇"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"爱丽丝",
|
||||
"车尔尼",
|
||||
"斥罪",
|
||||
"星极",
|
||||
"红"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "A+B 组 8H",
|
||||
"description": "最高效率长班,中途用一次肥鸭,同时清体力",
|
||||
"description_post": "下次换班请在8小时后进行",
|
||||
"drones": {
|
||||
"order": "post",
|
||||
"room": "trading",
|
||||
"index": 1
|
||||
},
|
||||
"Fiammetta": {
|
||||
"target": "龙舌兰"
|
||||
},
|
||||
"rooms": {
|
||||
"control": [
|
||||
{
|
||||
"operators": [
|
||||
"阿米娅",
|
||||
"凯尔希",
|
||||
"琴柳",
|
||||
"令",
|
||||
"夕"
|
||||
]
|
||||
}
|
||||
],
|
||||
"trading": [
|
||||
{
|
||||
"operators": [
|
||||
"柏喙",
|
||||
"龙舌兰",
|
||||
"巫恋"
|
||||
],
|
||||
"sort": true,
|
||||
"product": "LMD"
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"但书",
|
||||
"空弦",
|
||||
"黑键"
|
||||
],
|
||||
"product": "LMD"
|
||||
}
|
||||
],
|
||||
"manufacture": [
|
||||
{
|
||||
"operators": [
|
||||
"红云",
|
||||
"稀音",
|
||||
"帕拉斯"
|
||||
],
|
||||
"sort": true,
|
||||
"product": "Battle Record"
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"食铁兽",
|
||||
"断罪者",
|
||||
"槐琥"
|
||||
],
|
||||
"product": "Battle Record"
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"清流",
|
||||
"温蒂",
|
||||
"森蚺"
|
||||
],
|
||||
"product": "Pure Gold"
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"砾",
|
||||
"至简",
|
||||
"迷迭香"
|
||||
],
|
||||
"product": "Pure Gold"
|
||||
}
|
||||
],
|
||||
"power": [
|
||||
{
|
||||
"operators": [
|
||||
"承曦格雷伊"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"澄闪"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"炎狱炎熔"
|
||||
]
|
||||
}
|
||||
],
|
||||
"hire": [
|
||||
{
|
||||
"operators": [
|
||||
"絮雨"
|
||||
]
|
||||
}
|
||||
],
|
||||
"meeting": [
|
||||
{
|
||||
"operators": [
|
||||
"陈",
|
||||
"伺夜"
|
||||
]
|
||||
}
|
||||
],
|
||||
"dormitory": [
|
||||
{
|
||||
"operators": [
|
||||
"菲亚梅塔",
|
||||
"焰尾",
|
||||
"老鲤",
|
||||
"诗怀雅",
|
||||
"灵知"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"孑",
|
||||
"银灰",
|
||||
"水月",
|
||||
"海沫",
|
||||
"多萝西"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"灰毫",
|
||||
"野鬃",
|
||||
"远牙",
|
||||
"雷蛇",
|
||||
"年"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"爱丽丝",
|
||||
"车尔尼",
|
||||
"九色鹿",
|
||||
"瑕光",
|
||||
"泥岩"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "B+C 组 4H",
|
||||
"description": "次高效替补 1 班",
|
||||
"description_post": "下次换班请在4小时后进行",
|
||||
"drones": {
|
||||
"order": "post",
|
||||
"room": "trading",
|
||||
"index": 1
|
||||
},
|
||||
"Fiammetta": {
|
||||
"target": "但书"
|
||||
},
|
||||
"rooms": {
|
||||
"control": [
|
||||
{
|
||||
"operators": [
|
||||
"阿米娅",
|
||||
"焰尾",
|
||||
"琴柳",
|
||||
"令",
|
||||
"老鲤"
|
||||
]
|
||||
}
|
||||
],
|
||||
"trading": [
|
||||
{
|
||||
"operators": [
|
||||
"柏喙",
|
||||
"龙舌兰",
|
||||
"巫恋"
|
||||
],
|
||||
"sort": true,
|
||||
"product": "LMD"
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"但书",
|
||||
"空弦",
|
||||
"黑键"
|
||||
],
|
||||
"product": "LMD"
|
||||
}
|
||||
],
|
||||
"manufacture": [
|
||||
{
|
||||
"operators": [
|
||||
"远牙",
|
||||
"野鬃",
|
||||
"灰毫"
|
||||
],
|
||||
"product": "Battle Record"
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"食铁兽",
|
||||
"断罪者",
|
||||
"槐琥"
|
||||
],
|
||||
"product": "Battle Record"
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"水月",
|
||||
"海沫",
|
||||
"多萝西"
|
||||
],
|
||||
"sort": true,
|
||||
"product": "Pure Gold"
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"砾",
|
||||
"至简",
|
||||
"迷迭香"
|
||||
],
|
||||
"product": "Pure Gold"
|
||||
}
|
||||
],
|
||||
"power": [
|
||||
{
|
||||
"operators": [
|
||||
"正义骑士号"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"澄闪"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"雷蛇"
|
||||
]
|
||||
}
|
||||
],
|
||||
"hire": [
|
||||
{
|
||||
"operators": [
|
||||
"絮雨"
|
||||
]
|
||||
}
|
||||
],
|
||||
"meeting": [
|
||||
{
|
||||
"operators": [
|
||||
"陈",
|
||||
"伺夜"
|
||||
]
|
||||
}
|
||||
],
|
||||
"dormitory": [
|
||||
{
|
||||
"operators": [
|
||||
"菲亚梅塔",
|
||||
"凯尔希",
|
||||
"夕",
|
||||
"清流",
|
||||
"斥罪"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"流明",
|
||||
"温蒂",
|
||||
"森蚺",
|
||||
"红云",
|
||||
"帕拉斯"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"杜林",
|
||||
"稀音",
|
||||
"承曦格雷伊",
|
||||
"炎狱炎熔",
|
||||
"年"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"爱丽丝",
|
||||
"车尔尼",
|
||||
"九色鹿",
|
||||
"瑕光"
|
||||
],
|
||||
"autofill": true
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "A+C 组 4H",
|
||||
"description": "次高效替补 2 班",
|
||||
"description_post": "下次换班请在4小时后进行",
|
||||
"drones": {
|
||||
"order": "post",
|
||||
"room": "trading",
|
||||
"index": 1
|
||||
},
|
||||
"rooms": {
|
||||
"control": [
|
||||
{
|
||||
"operators": [
|
||||
"诗怀雅",
|
||||
"凯尔希",
|
||||
"灵知",
|
||||
"焰尾",
|
||||
"老鲤"
|
||||
]
|
||||
}
|
||||
],
|
||||
"trading": [
|
||||
{
|
||||
"operators": [
|
||||
"卡夫卡",
|
||||
"龙舌兰",
|
||||
"巫恋"
|
||||
],
|
||||
"sort": true,
|
||||
"product": "LMD"
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"孑",
|
||||
"银灰",
|
||||
"但书"
|
||||
],
|
||||
"product": "LMD"
|
||||
}
|
||||
],
|
||||
"manufacture": [
|
||||
{
|
||||
"operators": [
|
||||
"红云",
|
||||
"稀音",
|
||||
"帕拉斯"
|
||||
],
|
||||
"sort": true,
|
||||
"product": "Battle Record"
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"远牙",
|
||||
"野鬃",
|
||||
"灰毫"
|
||||
],
|
||||
"product": "Battle Record"
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"清流",
|
||||
"温蒂",
|
||||
"森蚺"
|
||||
],
|
||||
"product": "Pure Gold"
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"水月",
|
||||
"海沫",
|
||||
"多萝西"
|
||||
],
|
||||
"sort": true,
|
||||
"product": "Pure Gold"
|
||||
}
|
||||
],
|
||||
"power": [
|
||||
{
|
||||
"operators": [
|
||||
"承曦格雷伊"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"雷蛇"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"炎狱炎熔"
|
||||
]
|
||||
}
|
||||
],
|
||||
"hire": [
|
||||
{
|
||||
"operators": [
|
||||
"斥罪"
|
||||
]
|
||||
}
|
||||
],
|
||||
"meeting": [
|
||||
{
|
||||
"operators": [
|
||||
"星极",
|
||||
"红"
|
||||
]
|
||||
}
|
||||
],
|
||||
"dormitory": [
|
||||
{
|
||||
"operators": [
|
||||
"菲亚梅塔",
|
||||
"阿米娅",
|
||||
"柏喙",
|
||||
"琴柳",
|
||||
"夜莺"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"流明",
|
||||
"黑键",
|
||||
"空弦",
|
||||
"迷迭香",
|
||||
"砾"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"杜林",
|
||||
"至简",
|
||||
"槐琥",
|
||||
"食铁兽",
|
||||
"断罪者"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"澄闪",
|
||||
"絮雨",
|
||||
"陈",
|
||||
"伺夜",
|
||||
"令"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
373
resource/custom_infrast/252_layout_3_times_a_day.json
Normal file
@@ -0,0 +1,373 @@
|
||||
{
|
||||
"title": "满血252,一天三换",
|
||||
"description": "干员配置要求极高,请留意\n若缺少干员请自行拷贝文件并修改(请勿直接修改,以免更新后被覆盖)\n\n作业作者:筱竹聽雨\n感谢公孙长乐大佬提供数据及方案支持!",
|
||||
"plans": [
|
||||
{
|
||||
"name": "A+B 组 16H",
|
||||
"description": "最高效率长班",
|
||||
"description_post": "下次换班请在约16小时后进行",
|
||||
"Fiammetta": {
|
||||
"target": "巫恋"
|
||||
},
|
||||
"drones": {
|
||||
"room": "manufacture",
|
||||
"index": 1
|
||||
},
|
||||
"rooms": {
|
||||
"control": [
|
||||
{
|
||||
"operators": [
|
||||
"诗怀雅",
|
||||
"森蚺",
|
||||
"夕",
|
||||
"令",
|
||||
"焰尾"
|
||||
]
|
||||
}
|
||||
],
|
||||
"trading": [
|
||||
{
|
||||
"operators": [
|
||||
"巫恋",
|
||||
"龙舌兰",
|
||||
"柏喙"
|
||||
],
|
||||
"sort": true,
|
||||
"product": "LMD"
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"但书",
|
||||
"黑键"
|
||||
],
|
||||
"product": "LMD"
|
||||
}
|
||||
],
|
||||
"manufacture": [
|
||||
{
|
||||
"operators": [
|
||||
"红云",
|
||||
"稀音",
|
||||
"帕拉斯"
|
||||
],
|
||||
"sort": true,
|
||||
"product": "Battle Record"
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"远牙",
|
||||
"野鬃",
|
||||
"灰毫"
|
||||
],
|
||||
"product": "Battle Record"
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"清流",
|
||||
"温蒂",
|
||||
"森蚺"
|
||||
],
|
||||
"product": "Pure Gold"
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"砾",
|
||||
"夜烟",
|
||||
"迷迭香"
|
||||
],
|
||||
"product": "Pure Gold"
|
||||
}
|
||||
],
|
||||
"power": [
|
||||
{
|
||||
"operators": [
|
||||
"正义骑士号"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"Lancet-2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"autofill": true
|
||||
}
|
||||
],
|
||||
"hire": [
|
||||
{
|
||||
"operators": [
|
||||
"絮雨"
|
||||
]
|
||||
}
|
||||
],
|
||||
"meeting": [
|
||||
{
|
||||
"autofill": true
|
||||
}
|
||||
],
|
||||
"dormitory": [
|
||||
{
|
||||
"operators": [
|
||||
"爱丽丝",
|
||||
"车尔尼"
|
||||
],
|
||||
"autofill": true
|
||||
},
|
||||
{
|
||||
"autofill": true
|
||||
},
|
||||
{
|
||||
"autofill": true
|
||||
},
|
||||
{
|
||||
"autofill": true
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "A+Y 组 4H",
|
||||
"description": "次高效替补 1 班",
|
||||
"description_post": "下次换班请在约4小时后进行",
|
||||
"Fiammetta": {
|
||||
"target": "龙舌兰"
|
||||
},
|
||||
"drones": {
|
||||
"room": "manufacture",
|
||||
"index": 1
|
||||
},
|
||||
"rooms": {
|
||||
"control": [
|
||||
{
|
||||
"operators": [
|
||||
"阿米娅",
|
||||
"森蚺",
|
||||
"布丁",
|
||||
"焰尾",
|
||||
"玛恩纳"
|
||||
]
|
||||
}
|
||||
],
|
||||
"trading": [
|
||||
{
|
||||
"operators": [
|
||||
"巫恋",
|
||||
"龙舌兰",
|
||||
"柏喙"
|
||||
],
|
||||
"sort": true,
|
||||
"product": "LMD"
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"能天使",
|
||||
"崖心"
|
||||
],
|
||||
"product": "LMD"
|
||||
}
|
||||
],
|
||||
"manufacture": [
|
||||
{
|
||||
"operators": [
|
||||
"槐琥",
|
||||
"断罪者",
|
||||
"食铁兽"
|
||||
],
|
||||
"sort": true,
|
||||
"product": "Battle Record"
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"远牙",
|
||||
"野鬃",
|
||||
"灰毫"
|
||||
],
|
||||
"product": "Battle Record"
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"清流",
|
||||
"温蒂",
|
||||
"森蚺"
|
||||
],
|
||||
"product": "Pure Gold"
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"泡泡",
|
||||
"火神",
|
||||
"刻俄柏"
|
||||
],
|
||||
"sort": true,
|
||||
"product": "Pure Gold"
|
||||
}
|
||||
],
|
||||
"power": [
|
||||
{
|
||||
"operators": [
|
||||
"承曦格雷伊"
|
||||
]
|
||||
},
|
||||
{
|
||||
"autofill": true
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"澄闪"
|
||||
]
|
||||
}
|
||||
],
|
||||
"hire": [
|
||||
{
|
||||
"operators": [
|
||||
"斥罪"
|
||||
]
|
||||
}
|
||||
],
|
||||
"meeting": [
|
||||
{
|
||||
"autofill": true
|
||||
}
|
||||
],
|
||||
"dormitory": [
|
||||
{
|
||||
"operators": [
|
||||
"爱丽丝",
|
||||
"车尔尼"
|
||||
],
|
||||
"autofill": true
|
||||
},
|
||||
{
|
||||
"autofill": true
|
||||
},
|
||||
{
|
||||
"autofill": true
|
||||
},
|
||||
{
|
||||
"autofill": true
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "B+Y 组 4H",
|
||||
"description": "次高效替补 2 班",
|
||||
"description_post": "下次换班请在约4小时后进行",
|
||||
"drones": {
|
||||
"room": "manufacture",
|
||||
"index": 1
|
||||
},
|
||||
"rooms": {
|
||||
"control": [
|
||||
{
|
||||
"operators": [
|
||||
"阿米娅",
|
||||
"凯尔希",
|
||||
"夕",
|
||||
"令",
|
||||
"玛恩纳"
|
||||
]
|
||||
}
|
||||
],
|
||||
"trading": [
|
||||
{
|
||||
"operators": [
|
||||
"巫恋",
|
||||
"龙舌兰",
|
||||
"卡夫卡"
|
||||
],
|
||||
"sort": true,
|
||||
"product": "LMD"
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"但书",
|
||||
"黑键"
|
||||
],
|
||||
"product": "LMD"
|
||||
}
|
||||
],
|
||||
"manufacture": [
|
||||
{
|
||||
"operators": [
|
||||
"食铁兽",
|
||||
"断罪者",
|
||||
"槐琥"
|
||||
],
|
||||
"product": "Battle Record"
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"红云",
|
||||
"稀音",
|
||||
"帕拉斯"
|
||||
],
|
||||
"product": "Battle Record"
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"砾",
|
||||
"夜烟",
|
||||
"迷迭香"
|
||||
],
|
||||
"sort": true,
|
||||
"product": "Pure Gold"
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"泡泡",
|
||||
"火神",
|
||||
"刻俄柏"
|
||||
],
|
||||
"product": "Pure Gold"
|
||||
}
|
||||
],
|
||||
"power": [
|
||||
{
|
||||
"operators": [
|
||||
"正义骑士号"
|
||||
]
|
||||
},
|
||||
{
|
||||
"autofill": true
|
||||
},
|
||||
{
|
||||
"operators": [
|
||||
"Lancet-2"
|
||||
]
|
||||
}
|
||||
],
|
||||
"hire": [
|
||||
{
|
||||
"operators": [
|
||||
"絮雨"
|
||||
]
|
||||
}
|
||||
],
|
||||
"meeting": [
|
||||
{
|
||||
"autofill": true
|
||||
}
|
||||
],
|
||||
"dormitory": [
|
||||
{
|
||||
"operators": [
|
||||
"爱丽丝",
|
||||
"车尔尼"
|
||||
],
|
||||
"autofill": true
|
||||
},
|
||||
{
|
||||
"autofill": true
|
||||
},
|
||||
{
|
||||
"autofill": true
|
||||
},
|
||||
{
|
||||
"autofill": true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,376 @@
|
||||
{
|
||||
"plans": [
|
||||
{
|
||||
"rooms": {
|
||||
"trading": [
|
||||
{
|
||||
"product": "LMD",
|
||||
"operators": [
|
||||
"巫恋",
|
||||
"龙舌兰",
|
||||
"卡夫卡"
|
||||
],
|
||||
"sort": true
|
||||
},
|
||||
{
|
||||
"product": "LMD",
|
||||
"operators": [
|
||||
"月见夜",
|
||||
"古米",
|
||||
"空爆"
|
||||
],
|
||||
"sort": true
|
||||
},
|
||||
{
|
||||
"product": "Orundum",
|
||||
"operators": [
|
||||
"芬",
|
||||
"夜刀",
|
||||
"慕斯"
|
||||
],
|
||||
"sort": true
|
||||
}
|
||||
],
|
||||
"manufacture": [
|
||||
{
|
||||
"product": "Pure Gold",
|
||||
"operators": [
|
||||
"砾",
|
||||
"夜烟",
|
||||
"斑点"
|
||||
],
|
||||
"sort": true
|
||||
},
|
||||
{
|
||||
"product": "Pure Gold",
|
||||
"operators": [
|
||||
"香草",
|
||||
"杰西卡",
|
||||
"至简"
|
||||
],
|
||||
"sort": true
|
||||
},
|
||||
{
|
||||
"product": "Originium Shard",
|
||||
"operators": [
|
||||
"艾雅法拉",
|
||||
"炎熔",
|
||||
"地灵"
|
||||
],
|
||||
"sort": true
|
||||
}
|
||||
],
|
||||
"hire": [
|
||||
{
|
||||
"autofill": true
|
||||
}
|
||||
],
|
||||
"dormitory": [
|
||||
{
|
||||
"autofill": true
|
||||
},
|
||||
{
|
||||
"autofill": true
|
||||
},
|
||||
{
|
||||
"autofill": true
|
||||
},
|
||||
{
|
||||
"autofill": true
|
||||
}
|
||||
],
|
||||
"control": [
|
||||
{
|
||||
"operators": [
|
||||
"阿米娅",
|
||||
"凯尔希",
|
||||
"灵知"
|
||||
],
|
||||
"autofill": true
|
||||
}
|
||||
],
|
||||
"power": [
|
||||
{
|
||||
"autofill": true
|
||||
},
|
||||
{
|
||||
"autofill": true
|
||||
},
|
||||
{
|
||||
"autofill": true
|
||||
}
|
||||
],
|
||||
"meeting": [
|
||||
{
|
||||
"autofill": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"Fiammetta": {
|
||||
"enable": true,
|
||||
"target": "巫恋",
|
||||
"order": "pre"
|
||||
},
|
||||
"drones": {
|
||||
"enable": true,
|
||||
"index": "3",
|
||||
"room": "trading",
|
||||
"order": "post"
|
||||
},
|
||||
"name": "A 组 6 H",
|
||||
"description": "中效率组",
|
||||
"description_post": "下次换班请在约6小时后进行"
|
||||
},
|
||||
{
|
||||
"rooms": {
|
||||
"trading": [
|
||||
{
|
||||
"product": "LMD",
|
||||
"operators": [
|
||||
"巫恋",
|
||||
"龙舌兰",
|
||||
"卡夫卡"
|
||||
],
|
||||
"sort": true
|
||||
},
|
||||
{
|
||||
"product": "LMD",
|
||||
"operators": [
|
||||
"月见夜",
|
||||
"古米",
|
||||
"空爆"
|
||||
],
|
||||
"sort": true
|
||||
},
|
||||
{
|
||||
"product": "Orundum",
|
||||
"operators": [
|
||||
"芬",
|
||||
"夜刀",
|
||||
"慕斯"
|
||||
],
|
||||
"sort": true
|
||||
}
|
||||
],
|
||||
"manufacture": [
|
||||
{
|
||||
"product": "Pure Gold",
|
||||
"operators": [
|
||||
"清流",
|
||||
"温蒂",
|
||||
"森蚺"
|
||||
],
|
||||
"sort": false
|
||||
},
|
||||
{
|
||||
"product": "Pure Gold",
|
||||
"operators": [
|
||||
"香草",
|
||||
"杰西卡",
|
||||
"至简"
|
||||
],
|
||||
"sort": true
|
||||
},
|
||||
{
|
||||
"product": "Originium Shard",
|
||||
"operators": [
|
||||
"泡泡",
|
||||
"火神",
|
||||
"褐果"
|
||||
],
|
||||
"sort": true
|
||||
}
|
||||
],
|
||||
"hire": [
|
||||
{
|
||||
"autofill": true
|
||||
}
|
||||
],
|
||||
"dormitory": [
|
||||
{
|
||||
"autofill": true
|
||||
},
|
||||
{
|
||||
"autofill": true
|
||||
},
|
||||
{
|
||||
"autofill": true
|
||||
},
|
||||
{
|
||||
"autofill": true
|
||||
}
|
||||
],
|
||||
"control": [
|
||||
{
|
||||
"operators": [
|
||||
"阿米娅",
|
||||
"灵知",
|
||||
"凯尔希"
|
||||
],
|
||||
"autofill": true
|
||||
}
|
||||
],
|
||||
"power": [
|
||||
{
|
||||
"operators": [
|
||||
"承曦格雷伊"
|
||||
]
|
||||
},
|
||||
{
|
||||
"autofill": true
|
||||
},
|
||||
{
|
||||
"autofill": true
|
||||
}
|
||||
],
|
||||
"meeting": [
|
||||
{
|
||||
"autofill": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"Fiammetta": {
|
||||
"enable": true,
|
||||
"target": "龙舌兰",
|
||||
"order": "pre"
|
||||
},
|
||||
"drones": {
|
||||
"enable": true,
|
||||
"index": "3",
|
||||
"room": "manufacture",
|
||||
"order": "post"
|
||||
},
|
||||
"name": "B 组 6H",
|
||||
"description": "中效率组",
|
||||
"description_post": "下次换班请在约6小时后进行"
|
||||
},
|
||||
{
|
||||
"rooms": {
|
||||
"trading": [
|
||||
{
|
||||
"product": "LMD",
|
||||
"operators": [
|
||||
"巫恋",
|
||||
"龙舌兰",
|
||||
"卡夫卡"
|
||||
],
|
||||
"sort": true
|
||||
},
|
||||
{
|
||||
"product": "LMD",
|
||||
"operators": [
|
||||
"孑",
|
||||
"银灰",
|
||||
"但书"
|
||||
],
|
||||
"sort": true
|
||||
},
|
||||
{
|
||||
"product": "Orundum",
|
||||
"operators": [
|
||||
"能天使",
|
||||
"德克萨斯",
|
||||
"拉普兰德"
|
||||
],
|
||||
"sort": true
|
||||
}
|
||||
],
|
||||
"manufacture": [
|
||||
{
|
||||
"product": "Pure Gold",
|
||||
"operators": [
|
||||
"清流",
|
||||
"温蒂",
|
||||
"森蚺"
|
||||
],
|
||||
"sort": false
|
||||
},
|
||||
{
|
||||
"product": "Pure Gold",
|
||||
"operators": [
|
||||
"砾",
|
||||
"夜烟",
|
||||
"斑点"
|
||||
],
|
||||
"sort": true
|
||||
},
|
||||
{
|
||||
"product": "Originium Shard",
|
||||
"operators": [
|
||||
"泡泡",
|
||||
"火神",
|
||||
"褐果"
|
||||
],
|
||||
"sort": true
|
||||
}
|
||||
],
|
||||
"hire": [
|
||||
{
|
||||
"autofill": true
|
||||
}
|
||||
],
|
||||
"dormitory": [
|
||||
{
|
||||
"autofill": true
|
||||
},
|
||||
{
|
||||
"autofill": true
|
||||
},
|
||||
{
|
||||
"autofill": true
|
||||
},
|
||||
{
|
||||
"autofill": true
|
||||
}
|
||||
],
|
||||
"control": [
|
||||
{
|
||||
"operators": [
|
||||
"阿米娅",
|
||||
"灵知",
|
||||
"凯尔希"
|
||||
],
|
||||
"autofill": true
|
||||
}
|
||||
],
|
||||
"power": [
|
||||
{
|
||||
"operators": [
|
||||
"承曦格雷伊"
|
||||
]
|
||||
},
|
||||
{
|
||||
"autofill": true
|
||||
},
|
||||
{
|
||||
"autofill": true
|
||||
}
|
||||
],
|
||||
"meeting": [
|
||||
{
|
||||
"autofill": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"Fiammetta": {
|
||||
"enable": true,
|
||||
"target": "卡夫卡",
|
||||
"order": "pre"
|
||||
},
|
||||
"drones": {
|
||||
"enable": true,
|
||||
"index": 3,
|
||||
"room": "manufacture",
|
||||
"order": "post"
|
||||
},
|
||||
"name": "C 组 12H",
|
||||
"description": "高效率组",
|
||||
"description_post": "下次换班请在约12小时后进行"
|
||||
}
|
||||
],
|
||||
"author": "面包猫南北",
|
||||
"description": "长期搓玉333排班协议",
|
||||
"id": 1664692636351064,
|
||||
"title": "333长期搓玉,具体干员配置参考公孙长乐大佬,使用换班时间为6-6-12组,要求有菲亚",
|
||||
"buildingType": "333"
|
||||
}
|
||||
1570
resource/global/YoStarEN/resource/item_index.json
Normal file
@@ -7,6 +7,7 @@
|
||||
"tags": [
|
||||
"治疗",
|
||||
"远程位",
|
||||
"支援机械",
|
||||
"医疗干员"
|
||||
]
|
||||
},
|
||||
@@ -17,6 +18,7 @@
|
||||
"tags": [
|
||||
"支援",
|
||||
"近战位",
|
||||
"支援机械",
|
||||
"近卫干员"
|
||||
]
|
||||
},
|
||||
@@ -27,6 +29,7 @@
|
||||
"tags": [
|
||||
"爆发",
|
||||
"近战位",
|
||||
"支援机械",
|
||||
"特种干员"
|
||||
]
|
||||
},
|
||||
@@ -37,6 +40,7 @@
|
||||
"tags": [
|
||||
"支援",
|
||||
"远程位",
|
||||
"支援机械",
|
||||
"狙击干员"
|
||||
]
|
||||
},
|
||||
@@ -561,6 +565,17 @@
|
||||
"狙击干员"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "char_337_utage",
|
||||
"name": "Utage",
|
||||
"rarity": 4,
|
||||
"tags": [
|
||||
"输出",
|
||||
"生存",
|
||||
"近战位",
|
||||
"近卫干员"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "char_155_tiger",
|
||||
"name": "Indra",
|
||||
@@ -963,6 +978,18 @@
|
||||
"术师干员"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "char_379_sesa",
|
||||
"name": "Sesa",
|
||||
"rarity": 5,
|
||||
"tags": [
|
||||
"群攻",
|
||||
"削弱",
|
||||
"远程位",
|
||||
"资深干员",
|
||||
"狙击干员"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "char_103_angel",
|
||||
"name": "Exusiai",
|
||||
@@ -1167,6 +1194,18 @@
|
||||
"高级资深干员",
|
||||
"术师干员"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "char_222_bpipe",
|
||||
"name": "Bagpipe",
|
||||
"rarity": 6,
|
||||
"tags": [
|
||||
"费用回复",
|
||||
"输出",
|
||||
"近战位",
|
||||
"高级资深干员",
|
||||
"先锋干员"
|
||||
]
|
||||
}
|
||||
],
|
||||
"tags": {
|
||||
|
||||
|
After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 8.5 KiB |
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |