From 34dde2b281bb2e430046b4f3fbb565f86072b621 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=A8=E8=90=BD=E5=9F=BA=E5=9B=B4=E8=99=BE?= <3161880837@qq.com> Date: Wed, 28 Jan 2026 20:34:32 +0800 Subject: [PATCH] =?UTF-8?q?fix(BulletTool):=20=E4=BF=AE=E5=A4=8D=E5=8F=AC?= =?UTF-8?q?=E5=94=A4=E7=89=A9=E5=8F=8B=E5=86=9B=E4=BC=A4=E5=AE=B3=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 调整友军伤害判断逻辑,正确处理召唤物与其主人的玩家身份关系,避免误伤友军 --- scripts/Tools/BulletTool.gd | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/scripts/Tools/BulletTool.gd b/scripts/Tools/BulletTool.gd index 4fa0c13..d35cb9f 100644 --- a/scripts/Tools/BulletTool.gd +++ b/scripts/Tools/BulletTool.gd @@ -8,8 +8,13 @@ static func fromArea(area: Area2D) -> BulletBase: static func canDamage(bullet: BulletBase, target: EntityBase) -> bool: if !bullet or !target or !bullet.launcher: return false if target.currentInvinsible: return false - if !GameRule.allowFriendlyFire: - if target.isPlayer() == bullet.launcher.isPlayer() and bullet.launcher.currentFocusedBoss != target and !bullet.allowFriendlyDamage: + var launcherIsPlayer = bullet.launcher.isPlayer() + if bullet.launcher is SummonBase: + var summon = bullet.launcher as SummonBase + if is_instance_valid(summon.myMaster): + launcherIsPlayer = summon.myMaster.isPlayer() + if !GameRule.allowFriendlyFire and !bullet.allowFriendlyDamage: + if target.isPlayer() == launcherIsPlayer and bullet.launcher.currentFocusedBoss != target: return false if !bullet.canDamageSelf: if target == bullet.launcher: