This commit is contained in:
unknown
2022-08-17 22:19:14 +08:00
9 changed files with 190 additions and 64 deletions

View File

@@ -8,49 +8,55 @@ labels:
# Add 的优先级比 Remove 高
- name: "module: copilot"
regexes:
- '(?:[Aa]dd (?:`|)(?:module: |)copilot(?:`|)|自动(作战|战斗|编队)|作业|自動(戰|戦)(鬥|闘)|作業|copilot)'
- "(?:[Aa]dd (?:`|)(?:module: |)copilot(?:`|)|^(?![\\s\\S]*(?:\
[Rr]emove (?:[Aa]ll labels|(?:`|)(?:module: |)copilot(?:`|))))[\\s\\S]*$)"
- '(?:[Aa]dd (?:`|)(?:label |)(?:module: |)copilot(?:`|)|自动(?:作战|战斗|编队)|作业|自動[戰戦][鬥闘]|作業|copilot)'
- "(?:[Aa]dd (?:`|)(?:label |)(?:module: |)copilot(?:`|)|^(?![\\s\\S]*(?:\
[Rr]emove (?:(?:[Aa]ll |)[Ll]abels|(?:`|)(?:module: |)copilot(?:`|))))[\\s\\S]*$)"
- name: "module: roguelike"
regexes:
- '(?:[Aa]dd (?:`|)(?:module: |)roguelike(?:`|)|肉(鸽|鴿)|集成战略|rogue|ローグ)'
- "(?:[Aa]dd (?:`|)(?:module: |)roguelike(?:`|)|^(?![\\s\\S]*(?:\
[Rr]emove (?:[Aa]ll labels|(?:`|)(?:module: |)roguelike(?:`|))))[\\s\\S]*$)"
- '(?:[Aa]dd (?:`|)(?:label |)(?:module: |)roguelike(?:`|)|肉[鸽鴿]|集成战略|rogue|ローグ)'
- "(?:[Aa]dd (?:`|)(?:label |)(?:module: |)roguelike(?:`|)|^(?![\\s\\S]*(?:\
[Rr]emove (?:(?:[Aa]ll |)[Ll]abels|(?:`|)(?:module: |)roguelike(?:`|))))[\\s\\S]*$)"
- name: "module: fight"
regexes:
- '(?:[Aa]dd (?:`|)(?:module: |)fight(?:`|)|刷图|剿灭|刷.{0,6}材料|关卡选择|战斗|作战|(戰|戦)(鬥|闘)|fight|battle)'
- "(?:[Aa]dd (?:`|)(?:module: |)fight(?:`|)|^(?![\\s\\S]*(?:\
[Rr]emove (?:[Aa]ll labels|(?:`|)(?:module: |)fight(?:`|))))[\\s\\S]*$)"
- '(?:[Aa]dd (?:`|)(?:label |)(?:module: |)fight(?:`|)|刷图|刷理智|剿灭|刷.{0,6}材料|关卡选择|战斗|作战|[戰戦][鬥闘]|fight|battle)'
- "(?:[Aa]dd (?:`|)(?:label |)(?:module: |)fight(?:`|)|^(?![\\s\\S]*(?:\
[Rr]emove (?:(?:[Aa]ll |)[Ll]abels|(?:`|)(?:module: |)fight(?:`|))))[\\s\\S]*$)"
disabled-if:
- "module: copilot"
- "module: roguelike"
- name: "module: infrast"
regexes:
- "(?:[Aa]dd (?:`|)(?:module: |)infrast(?:`|)|\
- "(?:[Aa]dd (?:`|)(?:label |)(?:module: |)infrast(?:`|)|\
基建|贸易站|制造站|发电站|加工站|会客室|训练室|办公室|控制中枢|宿舍|基地|infrast|dorm)"
- "(?:[Aa]dd (?:`|)(?:module: |)infrast(?:`|)|^(?![\\s\\S]*(?:\
[Rr]emove (?:[Aa]ll labels|(?:`|)(?:module: |)infrast(?:`|))))[\\s\\S]*$)"
- "(?:[Aa]dd (?:`|)(?:label |)(?:module: |)infrast(?:`|)|^(?![\\s\\S]*(?:\
[Rr]emove (?:(?:[Aa]ll |)[Ll]abels|(?:`|)(?:module: |)infrast(?:`|))))[\\s\\S]*$)"
- name: "module: others"
regexes:
- '(?:[Aa]dd (?:`|)(?:module: |)others(?:`|)|信用|拜访|登录|开始唤醒|visit|login|startup)'
- "(?:[Aa]dd (?:`|)(?:module: |)others(?:`|)|^(?![\\s\\S]*(?:\
[Rr]emove (?:[Aa]ll labels|(?:`|)(?:module: |)others(?:`|))))[\\s\\S]*$)"
- '(?:[Aa]dd (?:`|)(?:label |)(?:module: |)others(?:`|)|信用|拜访|登录|开始唤醒|visit|login|startup)'
- "(?:[Aa]dd (?:`|)(?:label |)(?:module: |)others(?:`|)|^(?![\\s\\S]*(?:\
[Rr]emove (?:(?:[Aa]ll |)[Ll]abels|(?:`|)(?:module: |)others(?:`|))))[\\s\\S]*$)"
- name: "module: recruit"
regexes:
- '(?:[Aa]dd (?:`|)(?:module: |)recruit(?:`|)|公招|招募|公開(募集|求人)|recruit)'
- "(?:[Aa]dd (?:`|)(?:module: |)recruit(?:`|)|^(?![\\s\\S]*(?:\
[Rr]emove (?:[Aa]ll labels|(?:`|)(?:module: |)recruit(?:`|))))[\\s\\S]*$)"
- '(?:[Aa]dd (?:`|)(?:label |)(?:module: |)recruit(?:`|)|公招|招募|公開(?:募集|求人)|recruit)'
- "(?:[Aa]dd (?:`|)(?:label |)(?:module: |)recruit(?:`|)|^(?![\\s\\S]*(?:\
[Rr]emove (?:(?:[Aa]ll |)[Ll]abels|(?:`|)(?:module: |)recruit(?:`|))))[\\s\\S]*$)"
disabled-if:
- "module: roguelike"
- name: "module: core"
regexes:
- '(?:[Aa]dd (?:`|)(?:label |)(?:module: |)core(?:`|))'
- "(?:[Aa]dd (?:`|)(?:label |)(?:module: |)core(?:`|)|^(?![\\s\\S]*(?:\
[Rr]emove (?:(?:[Aa]ll |)[Ll]abels|(?:`|)(?:module: |)core(?:`|))))[\\s\\S]*$)"
- name: "module: GUI"
# 其它模块都匹配不上的时候再尝试匹配GUI
# 因为可能有人说“公招界面”“肉鸽崩溃”“基建闪退”等等
regexes:
- '(?:[Aa]dd (?:`|)(?:module: |)GUI(?:`|)|图形化界面|闪退|gui|GUI|インターフェース)'
- "(?:[Aa]dd (?:`|)(?:module: |)GUI(?:`|)|^(?![\\s\\S]*(?:\
[Rr]emove (?:[Aa]ll labels|(?:`|)(?:module: |)GUI(?:`|))))[\\s\\S]*$)"
- '(?:[Aa]dd (?:`|)(?:label |)(?:module: |)GUI(?:`|)|图形化界面|闪退|gui|GUI|インターフェース)'
- "(?:[Aa]dd (?:`|)(?:label |)(?:module: |)GUI(?:`|)|^(?![\\s\\S]*(?:\
[Rr]emove (?:(?:[Aa]ll |)[Ll]abels|(?:`|)(?:module: |)GUI(?:`|))))[\\s\\S]*$)"
disabled-if:
- "module: copilot"
- "module: core"
- "module: fight"
- "module: infrast"
- "module: recruit"
@@ -58,17 +64,17 @@ labels:
- "module: others"
- name: "release"
regexes:
- '(?:[Aa]dd (?:`|)release(?:`|)|Release v(?:\d)+\.(?:\d)+\.(?:\d)+)'
- "(?:[Aa]dd (?:`|)release(?:`|)|^(?![\\s\\S]*(?:\
[Rr]emove (?:[Aa]ll labels|(?:`|)release(?:`|))))[\\s\\S]*$)"
- '(?:[Aa]dd (?:`|)(?:label |)release(?:`|)|Release v(?:\d)+\.(?:\d)+\.(?:\d)+)'
- "(?:[Aa]dd (?:`|)(?:label |)release(?:`|)|^(?![\\s\\S]*(?:\
[Rr]emove (?:(?:[Aa]ll |)[Ll]abels|(?:`|)release(?:`|))))[\\s\\S]*$)"
mode:
pull_request_target: [add, remove]
- name: "ambiguous"
# 不符合上面任何一个的分类并且如果是PR不符合 commitizen
regexes:
- "(?:[Aa]dd (?:`|)ambiguous(?:`|)|^(?![\\s\\S]*(?:\
- "(?:[Aa]dd (?:`|)(?:label |)ambiguous(?:`|)|^(?![\\s\\S]*(?:\
feat|chore|perf|style|refactor|fix|doc|\
[Rr]emove (?:[Aa]ll labels|(?:`|)ambiguous(?:`|))))[\\s\\S]*$)"
[Rr]emove (?:(?:[Aa]ll |)[Ll]abels|(?:`|)ambiguous(?:`|))))[\\s\\S]*$)"
mode:
pull_request_target: [add, remove]
issues: [add, remove]
@@ -81,36 +87,36 @@ labels:
- "module: others"
- "module: recruit"
- "module: roguelike"
- "module: core"
- "release"
- name: "translation required"
# 不要使用日文发 issue
regexes:
- "(?:[Aa]dd (?:`|)translation required(?:`|)|([\\u3040-\\u30ff]|[㍿㍐]))"
- "(?:[Aa]dd (?:`|)translation required(?:`|)|^(?![\\s\\S]*(?:\
[Rr]emove (?:[Aa]ll labels|(?:`|)translation required(?:`|))))[\\s\\S]*$)"
- "(?:[Aa]dd (?:`|)(?:label |)translation required(?:`|)|(?:(?:[\\u3040-\\u30ff]|[㍿㍐])[^`]*){10,})"
- "(?:[Aa]dd (?:`|)(?:label |)translation required(?:`|)|^(?![\\s\\S]*(?:\
[Rr]emove (?:(?:[Aa]ll |)[Ll]abels|(?:`|)translation required(?:`|))))[\\s\\S]*$)"
mode:
pull_request_target: [add, remove]
issues: [add, remove]
- name: "Client: JP"
regexes:
- '(?:[Aa]dd (?:`|)(?:module: |)Client: JP(?:`|)|日(文|语|本|)服|YoStarJP)'
- "(?:[Aa]dd (?:`|)(?:module: |)Client: JP(?:`|)|^(?![\\s\\S]*(?:\
[Rr]emove (?:[Aa]ll labels|(?:`|)(?:module: |)Client: JP(?:`|))))[\\s\\S]*$)"
- '(?:[Aa]dd (?:`|)(?:label |)(?:Client: |)JP(?:`|)|日(?:文|语|本|)服|[Yy]o[Ss]tarJP|(?:JP|jp)服)'
- "(?:[Aa]dd (?:`|)(?:label |)(?:Client: |)JP(?:`|)|^(?![\\s\\S]*(?:\
[Rr]emove (?:(?:[Aa]ll |)[Ll]abels|(?:`|)(?:Client: |)JP(?:`|))))[\\s\\S]*$)"
- name: "Client: EN"
regexes:
- '(?:[Aa]dd (?:`|)(?:module: |)Client: EN(?:`|)|英(文|语|)服|国际服|美服|YoStarEN)'
- "(?:[Aa]dd (?:`|)(?:module: |)Client: EN(?:`|)|^(?![\\s\\S]*(?:\
[Rr]emove (?:[Aa]ll labels|(?:`|)(?:module: |)Client: EN(?:`|))))[\\s\\S]*$)"
- '(?:[Aa]dd (?:`|)(?:label |)(?:Client: |)EN(?:`|)|英(?:文|语|)服|国际服|美服|[Yy]o[Ss]tarEN|(?:EN|en)服)'
- "(?:[Aa]dd (?:`|)(?:label |)(?:Client: |)EN(?:`|)|^(?![\\s\\S]*(?:\
[Rr]emove (?:(?:[Aa]ll |)[Ll]abels|(?:`|)(?:Client: |)EN(?:`|))))[\\s\\S]*$)"
- name: "Client: KR"
regexes:
- '(?:[Aa]dd (?:`|)(?:module: |)Client: KR(?:`|)|韩(文|语|国|)服|YoStarKR)'
- "(?:[Aa]dd (?:`|)(?:module: |)Client: KR(?:`|)|^(?![\\s\\S]*(?:\
[Rr]emove (?:[Aa]ll labels|(?:`|)(?:module: |)Client: KR(?:`|))))[\\s\\S]*$)"
- '(?:[Aa]dd (?:`|)(?:label |)(?:Client: |)KR(?:`|)|韩(?:文|语|国|)服|[Yy]o[Ss]tarKR|(?:KR|kr)服)'
- "(?:[Aa]dd (?:`|)(?:label |)(?:Client: |)KR(?:`|)|^(?![\\s\\S]*(?:\
[Rr]emove (?:(?:[Aa]ll |)[Ll]abels|(?:`|)(?:Client: |)KR(?:`|))))[\\s\\S]*$)"
- name: "Client: ZH_TW"
regexes:
- '(?:[Aa]dd (?:`|)(?:module: |)Client: ZH_TW(?:`|)|繁中服|台(湾|灣|)服|繁体中文服|(龙|龍)成|天下网游|txwy)'
- "(?:[Aa]dd (?:`|)(?:module: |)Client: ZH_TW(?:`|)|^(?![\\s\\S]*(?:\
[Rr]emove (?:[Aa]ll labels|(?:`|)(?:module: |)Client: ZH_TW(?:`|))))[\\s\\S]*$)"
- '(?:[Aa]dd (?:`|)(?:label |)(?:Client: |)ZH_TW(?:`|)|繁中服|台(?:湾|灣|)服|繁体中文服|(?:龙|龍)成|天下网游|txwy)'
- "(?:[Aa]dd (?:`|)(?:label |)(?:Client: |)ZH_TW(?:`|)|^(?![\\s\\S]*(?:\
[Rr]emove (?:(?:[Aa]ll |)[Ll]abels|(?:`|)(?:Client: |)ZH_TW(?:`|))))[\\s\\S]*$)"
- name: "MAA Team"
mode:
pull_request_target: [add]
@@ -122,12 +128,14 @@ labels:
- "(?:(?:`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*\\))\
\\s*fixed|(?:[Ff]ixed by\\s*\
(?:`v\\d+\\.\\d+\\.\\d+(?:-(?:alpha|beta)\\.\\d+|\\.\\d+|)`|\\s+\
v\\d+\\.\\d+\\.\\d+(?:-(?:alpha|beta)\\.\\d+|\\.\\d+|))\\]\\(\\S*\\)|\
https?\\://[^/\\s]+/[^/\\s]+/[^/\\s]+/commit/[0-9a-z]{40,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*\\))"
v\\d+\\.\\d+\\.\\d+(?:-(?:alpha|beta)\\.\\d+|\\.\\d+|))\\]\\(\\S*\\)|\
https?\\://[^/\\s]+/[^/\\s]+/[^/\\s]+/commit/[0-9a-z]{40,40})"
mode:
issue_comment: [add]
- name: "duplicate"

View File

@@ -130,7 +130,7 @@ MAA 的意思是 MAA Assistant Arknights
### 贡献/参与者
感谢所有参与到开发/测试中的朋友们,是大家的帮助让 MAA 越来越好! (*´▽`)
感谢所有参与到开发/测试中的朋友们,是大家的帮助让 MAA 越来越好! (\*´▽`)
[![Contributors](https://contributors-img.web.app/image?repo=MaaAssistantArknights/MaaAssistantArknights)](https://github.com/MaaAssistantArknights/MaaAssistantArknights/graphs/contributors)
@@ -158,6 +158,13 @@ MAA 的意思是 MAA Assistant Arknights
- [任务流程协议](docs/任务流程协议.md)
- [自动抄作业协议](docs/战斗流程协议.md)
### Issue bot
- 使用 `Add {LABEL_NAME}` 增加标签,使用 `Remove {LABEL_NAME}` 删除标签。
- 在提交说明中用 `close #{ISSUE_NUMBER}``fix #{ISSUE_NUMBER}` 给对应议题增加 `fixed` 标签。
更多说明请参考 [Issue bot 使用方法](docs/IssueBot使用方法.md)。
### 想参与开发,但不太会用 Github?
[Github Pull Request 流程简述](docs/PR流程简述.md)

View File

@@ -0,0 +1,58 @@
# Issue bot 使用方法
Issue bot 使用的 action 为 [issue-checker](https://github.com/zzyyyl/issue-checker),配置文件为 [issue-checker.yml](.github/issue-checker.yml)。
## 功能
### 自动触发
- 给上传文件失败的议题评论,告诉用户文件上传失败。
- 给 议题 和 拉取请求 增加标签,包括 `module` 系列,`Client` 系列,`ambiguous``translation required` 等。
Issue bot 会根据关键词自动增加分类标签,也可以通过手动添加的方式增加或删除标签。
具体关键词可以参考[配置文件](.github/issue-checker.yml)。
- 给可见性设置为 public 的 MAA 成员增加 `MAA Team` 标签。
### 手动触发
多使用关键词详细描述问题来自动触发分类标签,少使用下列指令。但**当你知道自己的行为会导致 Issue bot 误解时除外**。
尽量不要直接增加或删除分类标签,因为手动增加或删除的分类标签可能在修改后会被恢复原样。
#### 议题Issue及其评论
**修改/新增** 一个议题时:
- `Add {LABEL_NAME}` 可以增加一个标签。
- `Remove {LABEL_NAME}` 可以删除一个标签。
- `Remove labels` 可以删除所有标签。
**修改/新增** 一个议题评论时:
- `Add ambiguous` 可以保证不删除 `ambiguous` 标签,但没有 `ambiguous` 标签时不会添加。
- `Remove {LABEL_NAME}` 可以保证不增加标签。<sup>1</sup>
- `Remove labels` 可以保证不增加任何标签。<sup>1</sup>
- 以下几种方法可以为议题增加 `fixed` 标签:<sup>2</sup>
- `https://github.com/MaaAssistantArknights/MaaAssistantArknights/commit/{COMMIT_HASH} fixed`
- `fixed by https://github.com/MaaAssistantArknights/MaaAssistantArknights/commit/{COMMIT_HASH}`
- `{VERSION} fixed`
- `fixed by {VERSION}`
- `Duplicate of #{ISSUE_NUMBER}` 可以为当前议题增加 `duplicate` 标签。
- **当你知道自己的议题评论会导致 Issue bot 误解时,尽量添加一些 remove 操作。**
_Note<sup>1</sup>: `Remove ambiguous` 和 `Remove labels` 会删除 `ambiguous` 标签。_
_Note<sup>2</sup>: 这里的 COMMIT_HASH 需要完整的 40 位。_
#### 拉取请求Pull Request及其评论
与[议题Issue及其评论](#议题issue及其评论)基本相同。另外:
- `Release {VERSION}` 会增加 `release` 标签。
- **不会**自动添加 `fixed`, `duplicate` 标签。
#### 推送Push
- 在 commit message 中包含以下几种任意一个,可以为对应议题加上 `fixed` 标签:
- `fix #{ISSUE_NUMBER}`
- `close #{ISSUE_NUMBER}`
- `fix https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/{ISSUE_NUMBER}`
- `close https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/{ISSUE_NUMBER}`

View File

@@ -26,6 +26,14 @@ Compatible.
4. LinkStart!
- If you need to run multiple emulators (ignore this step if you do not need to do so), you can change the keywords for MAA to detect configuration files.
Add field `Bluestacks.Config.Keyword` following the steps above
Example:
```jsonc
"Bluestacks.Config.Keyword":"bst.instance.Nougat64.status.adb_port",
```
### ✅ Nox
Fully compatible.
@@ -52,7 +60,8 @@ 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, causing the application to click the button to use Originium by mistake (reported by users).
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).
### ⚠️ MEmu
@@ -80,6 +89,41 @@ Compatible.
### ⚙️ Custom Connection
1. Download [adb](https://dl.google.com/android/repository/platform-tools-latest-windows.zip) and unzip.
2. Go to `Settings` - `Connection Settings`, and fill in ADB path and address (IP+port is required, e.g. `127.0.0.1:5555`)
2. Go to `Settings` - `Connection Settings`, and fill in ADB path and address (IP + port are required, e.g. `127.0.0.1:5555`)
**Note:** If your device is non-`16:9` resolution like mobile phone or Android pad, You can set resolution with `adb shell wm size` on your phone and change it back later.
### ⚙️ Non-`16:9` devices like smartphones or tablets
You may need to change the resolution manually since MAA supports only `16:9` resolution.
1. Turn on USB debugging mode and connect your device to the computer with a cable, or debug with ADB remotely.
2. Run `Command Prompt (CMD)`, check the device address and connect.
- Use the following command to check device ID if you are using USB cable to connect:
```bash
adb devices # Checks the connection status of the current device, with the first column to be the device ID
```
- If you are using remote ADB connection: go to `Settings -> WLAN -> View` to find the corresponding IP address, and the port will usually be 5555 or 5037.
```bash
adb connect <IP Address + Port> # E.g. 192.168.0.10:5555
```
3. Enter the command prompt to proceed
```bash
adb -s <Device ID or IP + Port> shell # Enters the command prompt of the device
wm size # Checks the resolution of the current device
wm size 720x1280 # Changes the resolution to 720p
```
4. Fill in the ADB path and the address of your smartphone (device ID or IP + port) in MAA
5. Set the `Special-shaped screen adaptation` to 0 (off) in the game settings.
Otherwise, your phone UI and click response may be dislocated if you change the resolution with ADB later.
6. Use MAA (≧∇≦)ノ
7. Before exiting MAA, reset the resolution of your phone.
```bash
wm size reset # Resets resolution
```

View File

@@ -6917,9 +6917,9 @@
},
"Roguelike1RecruitOcrFlag": {
"roi": [
350,
100,
700,
525,
110,
640,
500
],
"templThreshold": 0.95

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 941 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -56,7 +56,13 @@ bool asst::RoguelikeRecruitTaskPlugin::_run()
auto image = m_ctrler->get_image();
RoguelikeRecruitImageAnalyzer analyzer(image);
if (!analyzer.analyze()) {
// 本页没有检测到符合条件的干员,向右滑动
// 如果还没滑动就识别失败,通常是招募界面为空,视为招募成功并退出
if (i == 0) {
Log.trace(__FUNCTION__, "| Recruit list analyse failed before swiping");
return true;
}
// 已经滑动过,识别失败可能是意外情况,尝试继续滑动
Log.trace(__FUNCTION__, "| Recruit list analyze failed after swiping: ", i);
slowly_swipe(ProcessTaskAction::SlowlySwipeToTheRight);
sleep(Task.get("Roguelike1Custom-HijackSquad")->rear_delay);
continue;
@@ -78,13 +84,7 @@ bool asst::RoguelikeRecruitTaskPlugin::_run()
const auto& char_opt = chars_map.find(oper_info.name);
if (char_opt.has_value()) {
// 干员已在编队中
int elite = char_opt.value().get("elite", 0);
if (elite == 2) {
// 干员已精二,忽略
continue;
}
// 干员已在编队中,又出现在招募列表,只有待晋升和预备干员两种情况
if (recruit_info.is_alternate) {
// 预备干员可以重复招募
priority = recruit_info.recruit_priority;
@@ -95,15 +95,19 @@ bool asst::RoguelikeRecruitTaskPlugin::_run()
}
}
else {
// 干员待招募
// 干员待招募,检查练度
if (oper_info.elite == 2) {
// TODO: 招募时已精二 (随机提升或对应分队) => promoted_priority
priority = recruit_info.recruit_priority;
}
else {
// 招募时未精二
else if (oper_info.elite == 1 && oper_info.level >= 50) {
// 精一50级以上
priority = recruit_info.recruit_priority;
}
else {
// 精一50级以下默认不招募
Log.trace(__FUNCTION__, "| Ignored low level oper:", oper_info.name, oper_info.elite, oper_info.level);
}
}
// 已经划到后备干员,且已有候选干员,假定后面的干员优先级不会更高,不再划动
@@ -111,6 +115,11 @@ bool asst::RoguelikeRecruitTaskPlugin::_run()
stop_swipe = true;
}
// 优先级为0可能练度不够被忽略
if (priority == 0) {
continue;
}
// 添加到候选名单
auto existing_it = ranges::find_if(recruit_list, [&](const RoguelikeRecruitInfo& pri) -> bool {
return pri.name == recruit_info.name;