From 21aef56331b2abe2382a35344c10ffb7e10950d7 Mon Sep 17 00:00:00 2001 From: status102 <102887808+status102@users.noreply.github.com> Date: Thu, 26 Feb 2026 15:37:38 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E6=88=98=E6=96=97=E4=B8=AD=E5=BE=85=E9=83=A8=E7=BD=B2=E5=8C=BA?= =?UTF-8?q?=E5=B9=B2=E5=91=98=E5=8C=B9=E9=85=8D=E6=A0=87=E5=BF=97rect?= =?UTF-8?q?=E5=90=8E=E5=A4=84=E7=90=86=E8=B6=8A=E7=95=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/tasks/tasks.json | 2 +- src/MaaCore/Vision/Battle/BattlefieldMatcher.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) 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