From 7233e49b8737d54c3d634e53e36274271c016439 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期三, 15 十月 2025 11:47:55 +0800
Subject: [PATCH] 125 战斗 连击问题修复 新增特效错误配置销毁容错、技能表现配置错误容错

---
 Main/System/Battle/Skill/SkillBase.cs                |    4 +++-
 Main/System/Battle/Buff/BattleObjectBuffMgr.cs       |   14 ++++++++++++--
 Main/System/Battle/SkillEffect/SkillEffectFactory.cs |    3 ++-
 3 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/Main/System/Battle/Buff/BattleObjectBuffMgr.cs b/Main/System/Battle/Buff/BattleObjectBuffMgr.cs
index 2143f97..e221da3 100644
--- a/Main/System/Battle/Buff/BattleObjectBuffMgr.cs
+++ b/Main/System/Battle/Buff/BattleObjectBuffMgr.cs
@@ -24,12 +24,13 @@
 
     public void Run()
     {
+        List<int> removeEffectList = new List<int>();
         //  璺熼殢BattleObject
         foreach (var kv in buffEffectDict)
         {
-            // foreach (var kv2 in effectDict)
+            BattleEffectPlayer effectPlayer = kv.Value.Key;
+            if (null != effectPlayer)
             {
-                BattleEffectPlayer effectPlayer = kv.Value.Key;
                 effectPlayer.transform.position = battleObject.heroRectTrans.position;
                 var effectPos = effectPlayer.effectConfig.effectPos;
                 if (null != effectPos && effectPos.Length >= 2)
@@ -37,6 +38,15 @@
                     effectPlayer.rectTrans.anchoredPosition += new Vector2(effectPos[0], effectPos[1]);
                 }
             }
+            else
+            {
+                removeEffectList.Add(kv.Key);
+            }
+        }
+        
+        foreach (var effectId in removeEffectList)
+        {
+            buffEffectDict.Remove(effectId);
         }
     }
 
diff --git a/Main/System/Battle/Skill/SkillBase.cs b/Main/System/Battle/Skill/SkillBase.cs
index 639bde7..57bd849 100644
--- a/Main/System/Battle/Skill/SkillBase.cs
+++ b/Main/System/Battle/Skill/SkillBase.cs
@@ -251,7 +251,8 @@
         skillEffect.Play(OnHitTargets);
         foreach (var subSkillPack in tagUseSkillAttack.subSkillList)
         {
-            RecordAction recordAction = CustomHB426CombinePack.CreateSkillAction(battleField.guid, new List<GameNetPackBasic>() { subSkillPack });
+            SkillRecordAction recordAction = CustomHB426CombinePack.CreateSkillAction(battleField.guid, new List<GameNetPackBasic>() { subSkillPack });
+            otherSkillActionList.Add(recordAction);
             battleField.recordPlayer.ImmediatelyPlay(recordAction);
         }
         isPlay = true;
@@ -669,6 +670,7 @@
                     BattleDebug.LogError("other skill casting " + combinePack.startTag.Tag);
                     var otherSkillAction = combinePack.CreateSkillAction();
                     otherSkillAction.fromSkillId = skillConfig.SkillID;
+                    otherSkillActionList.Add(otherSkillAction);
                     return;
                 }
 
diff --git a/Main/System/Battle/SkillEffect/SkillEffectFactory.cs b/Main/System/Battle/SkillEffect/SkillEffectFactory.cs
index 755c163..9e30aa7 100644
--- a/Main/System/Battle/SkillEffect/SkillEffectFactory.cs
+++ b/Main/System/Battle/SkillEffect/SkillEffectFactory.cs
@@ -20,7 +20,8 @@
             case SkillEffectType.NoEffect:
                 return new NoEffect(skillConfig, caster, tagUseSkillAttack);
             default:
-                BattleDebug.LogError("Unknown Skill Effect Type");
+                UnityEngine.Debug.LogError("Unknown Skill Effect Type " + skillConfig.effectType + " skill id is " + skillConfig.SkillID);
+                return new NoEffect(skillConfig, caster, tagUseSkillAttack);
                 break;
         }
         return null;

--
Gitblit v1.8.0