From f75350fd2dbc04a928ba25c4203b57abc0a972b8 Mon Sep 17 00:00:00 2001 From: Atsuishio <842960157@qq.com> Date: Wed, 16 Jul 2025 00:59:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=99=BA=E6=85=A7=E8=8A=AF?= =?UTF-8?q?=E7=89=87=E9=94=81=E5=AE=9A=E8=B6=85=E5=87=BA=E8=8C=83=E5=9B=B4?= =?UTF-8?q?bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../superbwarfare/event/ClientEventHandler.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java b/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java index 7653211a5..df70cb40b 100644 --- a/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java +++ b/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java @@ -1537,11 +1537,12 @@ public class ClientEventHandler { && drawTime < 0.01 && !ClickHandler.isEditing) { if (!player.isShiftKeyDown()) { - int intelligentChipLevel = data.perk.getLevel(ModPerks.INTELLIGENT_CHIP); + int intelligentChipLevel = GunData.from(stack).perk.getLevel(ModPerks.INTELLIGENT_CHIP); + double seekRange = 32 + 8 * (intelligentChipLevel - 1); if (intelligentChipLevel > 0) { if (ClientEventHandler.entity == null || !entity.isAlive()) { - ClientEventHandler.entity = SeekTool.seekLivingEntity(player, player.level(), 32 + 8 * (intelligentChipLevel - 1), 16 / customZoom); + ClientEventHandler.entity = SeekTool.seekLivingEntity(player, player.level(), seekRange, 16 / customZoom); } if (entity != null && entity.isAlive()) { Vec3 targetVec = new Vec3(Mth.lerp(event.getPartialTick(), entity.xo, entity.getX()), Mth.lerp(event.getPartialTick(), entity.yo + entity.getEyeHeight(), entity.getEyeY()), Mth.lerp(event.getPartialTick(), entity.zo, entity.getZ())); @@ -1552,6 +1553,10 @@ public class ClientEventHandler { var hasGravity = data.perk.getLevel(ModPerks.MICRO_MISSILE) <= 0; Vec3 toVec = RangeTool.calculateFiringSolution(playerVec, targetVec, entity.getDeltaMovement(), data.velocity(), hasGravity ? 0.03 : 0); look(player, toVec); + + if (player.distanceTo(entity) > seekRange) { + entity = null; + } } } } else {