Merge pull request #300 from mslxl/master

fix. 网络环境较为恶劣时无法正常执行
This commit is contained in:
MistEO
2022-03-23 00:13:05 +08:00
committed by GitHub
3 changed files with 137 additions and 9 deletions

View File

@@ -898,6 +898,26 @@
255
],
"next": [
"RecruitBeginLoading",
"RecruitBegin"
]
},
"RecruitBeginLoading": {
"algorithm": "OcrDetect",
"action": "doNothing",
"text": [
"正在提交",
"反馈至神经"
],
"roi": [
700,
600,
300,
120
],
"next": [
"RecruitBeginLoading",
"Recruit",
"RecruitBegin"
]
},
@@ -912,6 +932,27 @@
420
],
"next": [
"RecruitFinishLoading",
"RecruitFinish",
"RecruitSkip",
"RecruitSkipWithoutButton"
]
},
"RecruitFinishLoading":{
"algorithm": "OcrDetect",
"action": "doNothing",
"text": [
"正在提交",
"反馈至神经"
],
"roi": [
700,
600,
300,
120
],
"next": [
"RecruitFinishLoading",
"RecruitFinish",
"RecruitSkip",
"RecruitSkipWithoutButton"
@@ -1691,6 +1732,17 @@
"Stop"
]
},
"RecruitCheckTimeUnreduced":{
"action": "Stop",
"template": "RecruitTimeReduce.png",
"Doc": "检查时间是不是没有调整过",
"roi": [
350,
150,
200,
150
]
},
"RecruitConfirm": {
"action": "clickSelf",
"roi": [
@@ -1700,6 +1752,25 @@
80
],
"next": [
"RecruitConfirmLoading",
"RecruitFlag"
]
},
"RecruitConfirmLoading":{
"algorithm": "OcrDetect",
"action": "doNothing",
"text": [
"正在提交",
"反馈至神经"
],
"roi": [
700,
600,
300,
120
],
"next": [
"RecruitConfirmLoading",
"RecruitFlag"
]
},
@@ -1905,6 +1976,27 @@
150
],
"next": [
"DroneConfirmLoading",
"DeliverableOrder",
"DroneAssist-Trade-Stop",
"DroneAssistMfg"
]
},
"DroneConfirmLoading": {
"algorithm": "OcrDetect",
"action": "doNothing",
"text": [
"正在提交",
"反馈至神经"
],
"roi": [
700,
600,
300,
120
],
"next": [
"DroneConfirmLoading",
"DeliverableOrder",
"DroneAssist-Trade-Stop",
"DroneAssistMfg"
@@ -3036,6 +3128,25 @@
"ClueGiveTo1stConfirm"
]
},
"ClueGiveLoading": {
"algorithm": "OcrDetect",
"action": "doNothing",
"text": [
"正在提交",
"反馈至神经"
],
"roi": [
700,
600,
300,
120
],
"next": [
"ClueGiveLoading",
"SelectClue",
"CloseSendClue"
]
},
"ClueGiveTo1st": {
"template": "ClusCanBeSent.png",
"action": "doNothing",
@@ -3064,6 +3175,7 @@
160
],
"next": [
"ClueGiveLoading",
"SelectClue",
"CloseSendClue"
]
@@ -3096,6 +3208,7 @@
160
],
"next": [
"ClueGiveLoading",
"SelectClue",
"CloseSendClue"
]
@@ -3128,6 +3241,7 @@
160
],
"next": [
"ClueGiveLoading",
"SelectClue",
"CloseSendClue"
]
@@ -3160,6 +3274,7 @@
160
],
"next": [
"ClueGiveLoading",
"SelectClue",
"CloseSendClue"
]

View File

@@ -3,7 +3,6 @@
#include "Resource.h"
#include "OcrImageAnalyzer.h"
#include "Controller.h"
#include "RecruitImageAnalyzer.h"
#include "ProcessTask.h"
#include "RecruitTask.h"
@@ -108,32 +107,39 @@ bool asst::AutoRecruitTask::recruit_index(size_t index)
bool asst::AutoRecruitTask::calc_and_recruit()
{
RecruitTask recurit_task(m_callback, m_callback_arg, m_task_chain);
recurit_task.set_retry_times(m_retry_times);
recurit_task.set_param(m_select_level, true);
RecruitTask recruit_task(m_callback, m_callback_arg, m_task_chain);
recruit_task.set_retry_times(m_retry_times);
recruit_task.set_param(m_select_level, true);
// 识别错误,放弃这个公招位,直接返回
if (!recurit_task.run()) {
if (!recruit_task.run()) {
callback(AsstMsg::SubTaskError, basic_info());
click_return_button();
return true;
}
int maybe_level = recurit_task.get_maybe_level();
int maybe_level = recruit_task.get_maybe_level();
if (need_exit()) {
return false;
}
// 尝试刷新
if (m_need_refresh && maybe_level == 3
&& !recurit_task.get_has_special_tag()
&& recurit_task.get_has_refresh()) {
&& !recruit_task.get_has_special_tag()
&& recruit_task.get_has_refresh()) {
if (refresh()) {
return calc_and_recruit();
}
}
// 如果时间没调整过,那 tag 十有八九也没选,重新试一次
// 造成时间没调的原因可见: https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/300#issuecomment-1073287984
if (check_time_unreduced()) {
return calc_and_recruit();
}
if (need_exit()) {
return false;
}
if (std::find(m_confirm_level.cbegin(), m_confirm_level.cend(), maybe_level) != m_confirm_level.cend()) {
if (!confirm()) {
return false;
@@ -144,6 +150,12 @@ bool asst::AutoRecruitTask::calc_and_recruit()
}
return true;
}
bool asst::AutoRecruitTask::check_time_unreduced()
{
ProcessTask task(*this, {"RecruitCheckTimeUnreduced"});
task.set_retry_times(1);
return task.run();
}
bool asst::AutoRecruitTask::check_recruit_home_page()
{
@@ -168,4 +180,4 @@ bool asst::AutoRecruitTask::refresh()
{
ProcessTask refresh_task(*this, { "RecruitRefresh" });
return refresh_task.run();
}
}

View File

@@ -24,6 +24,7 @@ namespace asst
bool recruit_index(size_t index);
bool calc_and_recruit();
bool check_recruit_home_page();
bool check_time_unreduced();
bool recruit_now();
bool confirm();
bool refresh();