yyl
2026-01-21 9780ce2ecf6950bf855cd93a7d8824dfffbbe457
125 战斗 修复战斗死亡技能导致卡死的问题
3个文件已修改
40 ■■■■ 已修改文件
Main/System/Battle/BattleField/RecordActions/SkillRecordAction.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleObject/BattleObject.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/Skill/SkillBase.cs 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleField/RecordActions/SkillRecordAction.cs
@@ -66,17 +66,9 @@
        {
            return true;
        }
        return skillBase.IsFinishedForJudge();
        return skillBase.IsActionCompleted();
    }
    public bool IsFinishedForJudge()
    {
        if (null == skillBase)
        {
            return true;
        }
        return skillBase.IsFinishedForJudge();
    }
    public override void ForceFinish()
    {
Main/System/Battle/BattleObject/BattleObject.cs
@@ -315,9 +315,9 @@
        return true;
    }
    public virtual RecordAction Hurt(BattleHurtParam battleHurtParam, RecordAction _causingRecordAction = null)
    public virtual DeathRecordAction Hurt(BattleHurtParam battleHurtParam, RecordAction _causingRecordAction = null)
    {
        RecordAction recordAction = null;
        DeathRecordAction recordAction = null;
        bool isLastHit = battleHurtParam.hitIndex >= battleHurtParam.skillConfig.DamageDivide.Length - 1;
        bool firstHit = battleHurtParam.hitIndex == 0;
        
Main/System/Battle/Skill/SkillBase.cs
@@ -814,7 +814,7 @@
#endif
        // 先调用目标受伤
        var recordAc = target.Hurt(hurtParam, parentRecordAction);
        DeathRecordAction recordAc = target.Hurt(hurtParam, parentRecordAction);
        if (null != recordAc)
        {
@@ -1171,7 +1171,7 @@
    }
    public virtual bool IsFinishedForJudge()
    public virtual bool IsActionCompleted()
    {
        if (!isPlay) return false;
@@ -1180,32 +1180,14 @@
            if (!skillEffect.IsFinished()) return false;
        }
        if (currentWaitingSkill.Count > 0)
        if (moveFinished)
        {
            if (currentWaitingSkill.Any(s => !s.IsFinished()))
            {
                return false;
            }
        }
        if (parentRecordAction != null && parentRecordAction.GetInnerRecordPlayer().IsPlaying())
        {
            return false;
        }
        if (isFinished && moveFinished)
        {
            if (packList.Count > 0)
            {
                return false;
            }
            //  如果技能有动画(SkillMotionName不为空),需要等待动画播放完成
            if (skillConfig != null && !string.IsNullOrEmpty(skillConfig.SkillMotionName))
            {
                if (!isMotionCompleted)
                {
                    BattleDebug.LogError($"SkillBase.IsFinishedForJudge: 技能 {skillConfig.SkillID} 等待动画播放完成");
                    BattleDebug.LogError($"SkillBase.IsActionCompleted: 技能 {skillConfig.SkillID} 等待动画播放完成");
                    return false;
                }
            }