From f37d1d34a67ab894a13bcff454cc0ecd973806b3 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 10 Dec 2024 04:38:02 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E7=BC=A9=E6=94=BE?= =?UTF-8?q?=E7=9A=84=E9=80=BB=E8=BE=91=EF=BC=8C=E5=B9=B6=E4=B8=94=E7=BC=A9?= =?UTF-8?q?=E6=94=BE=E5=90=8E=E6=9B=B4=E6=96=B0=E9=BC=A0=E6=A0=87=E7=A7=BB?= =?UTF-8?q?=E5=8A=A8=E7=9A=84=E8=B7=9D=E7=A6=BB=EF=BC=8C=E9=81=BF=E5=85=8D?= =?UTF-8?q?=E5=9B=A0=E4=B8=BA=E7=BC=A9=E6=94=BE=E5=AF=BC=E8=87=B4=E7=A7=BB?= =?UTF-8?q?=E5=8A=A8=E8=B7=9D=E7=A6=BB=E4=B8=8D=E5=A4=9F=E6=88=96=E8=80=85?= =?UTF-8?q?=E8=BF=87=E5=A4=9A=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GameTask/AutoTrackPath/TpTask.cs | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/BetterGenshinImpact/GameTask/AutoTrackPath/TpTask.cs b/BetterGenshinImpact/GameTask/AutoTrackPath/TpTask.cs index fe590229..83439781 100644 --- a/BetterGenshinImpact/GameTask/AutoTrackPath/TpTask.cs +++ b/BetterGenshinImpact/GameTask/AutoTrackPath/TpTask.cs @@ -218,8 +218,16 @@ public class TpTask(CancellationToken ct) double totalMoveMouseY = Math.Abs(moveMouseY * yOffset / diffMapY); double mouseDistance = Math.Sqrt(totalMoveMouseX * totalMoveMouseX + totalMoveMouseY * totalMoveMouseY); // 调整地图缩放 + // mapZoomLevel<5 才显示传送锚点和秘境; + // mapZoomLevel<3 是为了避免部分锚点过于接近导致选错锚点; + // 风龙废墟无法避免,但是目前没有风龙废墟的脚本吧。:) // https://github.com/babalae/better-genshin-impact/issues/318 - if (mouseDistance > 1000 && mapZoomLevel < 6) + if (mouseDistance < tolerance && mapZoomLevel < 3) + { + Debug.WriteLine($"在 {iteration} 迭代后,已经接近目标点,不再进一步调整。"); + break; + } + else if (mouseDistance > 1000 && mapZoomLevel < 6) { // 缩小地图 await AdjustMapZoomLevel(false); totalMoveMouseX *= (mapZoomLevel) / (mapZoomLevel + 1); @@ -235,14 +243,8 @@ public class TpTask(CancellationToken ct) mouseDistance *= (mapZoomLevel) / (mapZoomLevel - 1); mapZoomLevel--; } - // mapZoomLevel<5 才显示传送锚点和秘境; - // mapZoomLevel<3 是为了避免部分锚点过于接近导致选错锚点; - // 风龙废墟无法避免,但是目前没有风龙废墟的脚本吧。:) - else if (mouseDistance < tolerance && mapZoomLevel < 3) - { - Debug.WriteLine($"在 {iteration} 迭代后,已经接近目标点,不再进一步调整。"); - break; - } + + // 单次移动最大距离为 100, moveMouseX = (int)Math.Min(totalMoveMouseX, 100 * totalMoveMouseX / mouseDistance) * Math.Sign(xOffset); moveMouseY = (int)Math.Min(totalMoveMouseY, 100 * totalMoveMouseY / mouseDistance) * Math.Sign(yOffset);