From 6a8e476aa30340626025ee3a4f4cb10a76c831df Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期五, 05 九月 2025 18:16:51 +0800
Subject: [PATCH] 125 【战斗】战斗系统 不让主线打boss的时候报错

---
 Main/System/Battle/BattleField/BattleField.cs                                               |    8 +++++---
 Main/System/Battle/RecordPlayer/RecordPlayer.cs                                             |    6 ++++++
 Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB430_tagSCTurnFightReport.cs |    2 +-
 Main/System/Battle/BattleTweenMgr.cs                                                        |    1 +
 Main/System/Battle/Skill/SkillBase.cs                                                       |    1 +
 Main/System/Battle/BattleObject/BattleObjMgr.cs                                             |    1 +
 Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0407_tagNPCDisappear.cs            |    2 +-
 Main/System/Battle/BattleEffectMgr.cs                                                       |   22 ++++++----------------
 8 files changed, 22 insertions(+), 21 deletions(-)

diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0407_tagNPCDisappear.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0407_tagNPCDisappear.cs
index c3097f1..102df63 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0407_tagNPCDisappear.cs
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0407_tagNPCDisappear.cs
@@ -14,7 +14,7 @@
         BattleField battleField = BattleManager.Instance.GetBattleField(vNetPack.packUID);
         //04 07 NPC娑堝け#tagNPCDisappear 涓殑瀛楁NPCID瀹為檯涓婂悓姝ョ殑鏄疧bjID锛屽彧鏄懡鍚嶉棶棰�
         //	鎻愬墠缁撴潫鎴樻枟 鍒犻櫎NPCID锛堬級瀹為檯涓婃槸瀵硅薄鐨凮bjID
-        battleField.NPCDisappear(vNetData.NPCID);
+        // battleField.NPCDisappear(vNetData.NPCID);
         battleField.DistributeNextPackage();
 
     }
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB430_tagSCTurnFightReport.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB430_tagSCTurnFightReport.cs
index 7203c25..e7d9795 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB430_tagSCTurnFightReport.cs
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB430_tagSCTurnFightReport.cs
@@ -23,7 +23,7 @@
             byte[] vPackBytes;
             int vLeavingLeng = 0;
             int vBodyLeng = 0;
-            int vTotalLeng = vNetData.Report.Length;
+            int vTotalLeng = vNetData.reportBytes.Length;
 
             while (vReadIndex < vTotalLeng)
             {
diff --git a/Main/System/Battle/BattleEffectMgr.cs b/Main/System/Battle/BattleEffectMgr.cs
index 1bb3045..f1c076d 100644
--- a/Main/System/Battle/BattleEffectMgr.cs
+++ b/Main/System/Battle/BattleEffectMgr.cs
@@ -11,6 +11,7 @@
 
     public void Init(BattleField _battleField)
     {
+        Release();
         battleField = _battleField;
     }
 
@@ -112,6 +113,11 @@
 
     public void HaveRest()
     {
+        Release();
+    }
+
+    public void Release()
+    {
         List<int> fKeys = effectDict.Keys.ToList();
 
         for (int i = 0; i < fKeys.Count; i++)
@@ -127,22 +133,6 @@
                 else
                 {
                     effectPlayers.RemoveAt(0);
-                }
-            }
-        }
-
-        effectDict.Clear();
-    }
-
-    public void Release()
-    {
-        foreach (var effect in effectDict)
-        {
-            foreach (var effectPlayer in effect.Value)
-            {
-                if (effectPlayer != null)
-                {
-                    GameObject.DestroyImmediate(effectPlayer.gameObject);
                 }
             }
         }
diff --git a/Main/System/Battle/BattleField/BattleField.cs b/Main/System/Battle/BattleField/BattleField.cs
index 78e5bd0..a745ff9 100644
--- a/Main/System/Battle/BattleField/BattleField.cs
+++ b/Main/System/Battle/BattleField/BattleField.cs
@@ -86,9 +86,7 @@
         battleTweenMgr = new BattleTweenMgr();
         recordPlayer = new RecordPlayer();
 
-        battleEffectMgr.Init(this);
-        battleTweenMgr.Init(this);
-        recordPlayer.Init(this);
+
     }
 
     public virtual void Init(int _MapID, int _FuncLineID, JsonData _extendData,
@@ -103,6 +101,10 @@
         redTeamIndex = 0;
         blueTeamIndex = 0;
 
+        battleEffectMgr.Init(this);
+        battleTweenMgr.Init(this);
+        recordPlayer.Init(this);
+        
         if (blueTeamList == null)
         {
             battleObjMgr.Init(this, redTeamList[redTeamIndex], null);
diff --git a/Main/System/Battle/BattleObject/BattleObjMgr.cs b/Main/System/Battle/BattleObject/BattleObjMgr.cs
index d9136c2..f19f5a6 100644
--- a/Main/System/Battle/BattleObject/BattleObjMgr.cs
+++ b/Main/System/Battle/BattleObject/BattleObjMgr.cs
@@ -18,6 +18,7 @@
 
     public void Init(BattleField _battleField, TeamBase _redTeam, TeamBase _blueTeam)
     {
+        Release();
         battleField = _battleField;
         ReloadTeam(_redTeam, BattleCamp.Red);
         ReloadTeam(_blueTeam, BattleCamp.Blue, false);
diff --git a/Main/System/Battle/BattleTweenMgr.cs b/Main/System/Battle/BattleTweenMgr.cs
index 00cf12f..caebc16 100644
--- a/Main/System/Battle/BattleTweenMgr.cs
+++ b/Main/System/Battle/BattleTweenMgr.cs
@@ -11,6 +11,7 @@
 
     public void Init(BattleField _battleField)
     {
+        Release();
         battleField = _battleField;
     }
 
diff --git a/Main/System/Battle/RecordPlayer/RecordPlayer.cs b/Main/System/Battle/RecordPlayer/RecordPlayer.cs
index 18fa70a..8f2ae83 100644
--- a/Main/System/Battle/RecordPlayer/RecordPlayer.cs
+++ b/Main/System/Battle/RecordPlayer/RecordPlayer.cs
@@ -17,6 +17,7 @@
 
     public void Init(BattleField _battleField)
     {
+        Release();
         battleField = _battleField;
     }
 
@@ -174,7 +175,12 @@
 
     public void Release()
     {
+        if (null != currentRecordAction)
+        {
+            currentRecordAction.ForceFinish();
+        }
         currentRecordAction = null;
         recordActionQueue.Clear();
+        immediatelyActionList.Clear();
     }
 }
\ No newline at end of file
diff --git a/Main/System/Battle/Skill/SkillBase.cs b/Main/System/Battle/Skill/SkillBase.cs
index 4e242ae..f68863f 100644
--- a/Main/System/Battle/Skill/SkillBase.cs
+++ b/Main/System/Battle/Skill/SkillBase.cs
@@ -587,6 +587,7 @@
 	{
 		skillEffect?.ForceFinished();
 		isFinished = true;
+		moveFinished = true;
 
 		while (packList.Count > 0)
 		{

--
Gitblit v1.8.0