mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-20 02:55:38 +08:00
完成进入指定序号宿舍的接口
This commit is contained in:
@@ -23,15 +23,16 @@ bool asst::InfrastDormTask::run()
|
||||
return false;
|
||||
}
|
||||
|
||||
enter_upper_dorm();
|
||||
enter_dorm(2);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool asst::InfrastDormTask::enter_upper_dorm()
|
||||
bool asst::InfrastDormTask::enter_dorm(int index)
|
||||
{
|
||||
cv::Mat image = get_format_image();
|
||||
// 普通的和mini的,正常情况应该只有一个有结果,另一个是empty
|
||||
// 为了防止识别漏了,这里阈值先放低一点
|
||||
auto dorm_result = m_identify_ptr->find_all_images(image, "Dorm", 0.8);
|
||||
auto dorm_mini_result = m_identify_ptr->find_all_images(image, "DormMini", 0.8);
|
||||
|
||||
@@ -46,16 +47,16 @@ bool asst::InfrastDormTask::enter_upper_dorm()
|
||||
else if (dorm_mini_result.empty()) {
|
||||
cur_dorm_result = std::move(dorm_result);
|
||||
}
|
||||
// 最顶上的宿舍(第一个宿舍)
|
||||
auto upper_iter = std::min_element(cur_dorm_result.cbegin(), cur_dorm_result.cend(), [](
|
||||
if (index >= cur_dorm_result.size()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
std::sort(cur_dorm_result.begin(), cur_dorm_result.end(), [](
|
||||
const auto& lhs, const auto& rhs) -> bool {
|
||||
return lhs.rect.y < rhs.rect.y;
|
||||
});
|
||||
if (upper_iter == cur_dorm_result.cend()) {
|
||||
// 按理说走不到这里,TODO 报错
|
||||
return false;
|
||||
}
|
||||
m_control_ptr->click(upper_iter->rect);
|
||||
|
||||
m_control_ptr->click(cur_dorm_result.at(index).rect);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user