From fa27fcddf47bf4ef847af3fce78c055cb334682f Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期四, 16 十月 2025 17:09:01 +0800
Subject: [PATCH] 125 战斗 结算部分容错 + 找错战场结算的问题修复

---
 Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB421_tagMCTurnFightObjAction.cs |    2 +-
 Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB423_tagMCTurnFightObjReborn.cs |    2 +-
 Main/System/Battle/BattleManager.cs                                                            |    7 -------
 Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB422_tagMCTurnFightObjDead.cs   |    6 ++++--
 Main/System/Battle/Motion/MotionBase.cs                                                        |    6 ++++++
 Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0407_tagNPCDisappear.cs               |    2 +-
 Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB420_tagMCTurnFightState.cs     |    4 ++--
 7 files changed, 15 insertions(+), 14 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 102df63..95bd33e 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0407_tagNPCDisappear.cs
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0407_tagNPCDisappear.cs
@@ -15,7 +15,7 @@
         //04 07 NPC娑堝け#tagNPCDisappear 涓殑瀛楁NPCID瀹為檯涓婂悓姝ョ殑鏄疧bjID锛屽彧鏄懡鍚嶉棶棰�
         //	鎻愬墠缁撴潫鎴樻枟 鍒犻櫎NPCID锛堬級瀹為檯涓婃槸瀵硅薄鐨凮bjID
         // battleField.NPCDisappear(vNetData.NPCID);
-        battleField.DistributeNextPackage();
+        battleField?.DistributeNextPackage();
 
     }
 }
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB420_tagMCTurnFightState.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB420_tagMCTurnFightState.cs
index e6409e9..612a104 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB420_tagMCTurnFightState.cs
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB420_tagMCTurnFightState.cs
@@ -16,9 +16,9 @@
 		//  TurnNum;    // 褰撳墠杞
 		//  Len;
 		//  Msg;    //size = Len    
-		JsonData extendData = JsonMapper.ToObject(vNetData.Msg);
 		if (battleField != null)
-        {
+		{
+			JsonData extendData = JsonMapper.ToObject(vNetData.Msg);
     		battleField.OnTurnFightState(vNetData.TurnNum, vNetData.State, (int)vNetData.FuncLineID, extendData);
         }
     }
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB421_tagMCTurnFightObjAction.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB421_tagMCTurnFightObjAction.cs
index a19ab02..8ff6cff 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB421_tagMCTurnFightObjAction.cs
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB421_tagMCTurnFightObjAction.cs
@@ -9,7 +9,7 @@
         base.Done(vNetPack);
         HB421_tagMCTurnFightObjAction vNetData = vNetPack as HB421_tagMCTurnFightObjAction;
         BattleField battleField = BattleManager.Instance.GetBattleField(vNetPack.packUID);
-        battleField.OnTurnFightObjAction(vNetData.TurnNum, (int)vNetData.ObjID);
+        battleField?.OnTurnFightObjAction(vNetData.TurnNum, (int)vNetData.ObjID);
         // BattleManager.Instance.OnTurnFightObjAction(vNetData.TurnNum, (int)vNetData.ObjID);
     }
 }
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB422_tagMCTurnFightObjDead.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB422_tagMCTurnFightObjDead.cs
index ec4612a..b003cf8 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB422_tagMCTurnFightObjDead.cs
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB422_tagMCTurnFightObjDead.cs
@@ -10,11 +10,13 @@
         base.Done(vNetPack);
 
         HB422_tagMCTurnFightObjDead vNetData = vNetPack as HB422_tagMCTurnFightObjDead;
+        BattleField battleField = BattleManager.Instance.GetBattleField(BattleManager.Instance.GetGUID(vNetPack.packUID));
+
         // 鐢辨妧鑳藉幓閫氱煡鎴樺満姝讳骸 battleField.OnObjsDead(deadList)
 #if UNITY_EDITOR
         BattleDebug.LogError("缂栬緫鍣ㄤ笅鐨勬浜℃祴璇�");
-        BattleField battleField = BattleManager.Instance.GetBattleField(BattleManager.Instance.GetGUID(vNetPack.packUID));
-        battleField.OnObjsDead(new List<HB422_tagMCTurnFightObjDead>(){vNetData});
+        battleField?.OnObjsDead(new List<HB422_tagMCTurnFightObjDead>(){vNetData});
 #endif
+        battleField?.DistributeNextPackage(); // 鍒嗗彂涓嬩竴涓寘
     }
 }
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB423_tagMCTurnFightObjReborn.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB423_tagMCTurnFightObjReborn.cs
index 42b63eb..f5cfe3c 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB423_tagMCTurnFightObjReborn.cs
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB423_tagMCTurnFightObjReborn.cs
@@ -11,6 +11,6 @@
 
         HB423_tagMCTurnFightObjReborn vNetData = vNetPack as HB423_tagMCTurnFightObjReborn;
         BattleField battleField = BattleManager.Instance.GetBattleField(vNetPack.packUID);
-        battleField.OnObjReborn(vNetData);
+        battleField?.OnObjReborn(vNetData);
     }
 }
diff --git a/Main/System/Battle/BattleManager.cs b/Main/System/Battle/BattleManager.cs
index 366c219..fdcbb3f 100644
--- a/Main/System/Battle/BattleManager.cs
+++ b/Main/System/Battle/BattleManager.cs
@@ -452,13 +452,6 @@
         {
             Debug.LogError("DistributeNextPackage: 鍒嗗彂鍖呭紓甯� " + ex);
         }
-
-        if (queue.Count <= 0)
-        {
-            battleReportDict.Remove(guid);
-            battlePackRelationList.Remove(guid);
-        }
-
     }
     #endregion
 
diff --git a/Main/System/Battle/Motion/MotionBase.cs b/Main/System/Battle/Motion/MotionBase.cs
index 304d99e..f969f71 100644
--- a/Main/System/Battle/Motion/MotionBase.cs
+++ b/Main/System/Battle/Motion/MotionBase.cs
@@ -156,7 +156,13 @@
             if (hasAnim)
             {
                 if (currentTrack != skillTrack)
+                {
                     Debug.LogError("鎶�鑳藉姩鐢昏鎵撴柇锛屽己鍒剁粨鏉� " + skillConfig.SkillID);
+                    skillBase.ForceFinished();
+                    RemoveAction(frameHandler);
+                    playingSkillAnim = false;
+                    return;
+                }
                 
                 if (skillTrack.TrackTime == 0) failCount++;
                 if (failCount > 100)

--
Gitblit v1.8.0