diff --git a/resource/tasks/tasks.json b/resource/tasks/tasks.json index bd14013ab6..ec5e904b78 100644 --- a/resource/tasks/tasks.json +++ b/resource/tasks/tasks.json @@ -3816,7 +3816,7 @@ }, "BattleOpersFlag": { "templThreshold": 0.65, - "roi": [0, 588, 1280, 18], + "roi": [35, 588, 1210, 18], "maskRange": [1, 255] }, "BattleAvatarReMatch": { diff --git a/src/MaaCore/Vision/Battle/BattlefieldMatcher.cpp b/src/MaaCore/Vision/Battle/BattlefieldMatcher.cpp index 8f5ca7d266..fc2b0ba976 100644 --- a/src/MaaCore/Vision/Battle/BattlefieldMatcher.cpp +++ b/src/MaaCore/Vision/Battle/BattlefieldMatcher.cpp @@ -103,7 +103,7 @@ std::vector BattlefieldMatcher::deployment_analyze() con battle::DeploymentOper oper; oper.rect = flag_res.rect.move(click_move); - Rect role_rect = flag_res.rect.move(role_move); + Rect role_rect = correct_rect(flag_res.rect.move(role_move), m_image); oper.role = oper_role_analyze(role_rect); if (oper.role == battle::Role::Unknown) { Log.warn("Unknown role"); @@ -113,10 +113,10 @@ std::vector BattlefieldMatcher::deployment_analyze() con if (oper.rect.x + oper.rect.width >= m_image.cols) { oper.rect.width = m_image.cols - oper.rect.x; } - Rect avatar_rect = oper.rect.move(avatar_move); + Rect avatar_rect = correct_rect(oper.rect.move(avatar_move), m_image); oper.avatar = m_image(make_rect(avatar_rect)); - Rect available_rect = flag_res.rect.move(avlb_move); + Rect available_rect = correct_rect(flag_res.rect.move(avlb_move), m_image); oper.available = oper_available_analyze(available_rect); #ifdef ASST_DEBUG