From edc6a4fa4c3cba93d94083baed6d8cda8a2cf37f Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期五, 21 十一月 2025 16:39:33 +0800
Subject: [PATCH] 125 战斗 1.流血伤害 2.修复技能卡死问题 3.添加战斗回放(Editor)

---
 Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB418_tagSCObjPropertyRefreshView.cs |    3 +
 Main/Core/NetworkPackage/ServerPack/HB4_FightDefine/HB430_tagSCTurnFightReport.cs                  |   17 ++++++++
 Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB422_tagMCTurnFightObjDead.cs       |    3 +
 Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0407_tagNPCDisappear.cs                   |    3 +
 Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB428_tagSCBuffRefresh.cs            |    3 +
 Main/Core/NetworkPackage/CustomServerPack/CustomHB426CombinePack.cs                                |    2 +
 Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0418_tagObjInfoRefresh.cs                 |    3 +
 Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB425_tagSCTurnFightReportSign.cs    |    3 +
 Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB419_tagSCObjHPRefresh.cs           |    3 +
 Main/Core/NetworkPackage/GameNetPackBasic.cs                                                       |    6 +++
 Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB429_tagSCBuffDel.cs                |    3 +
 Main/System/Battle/Define/BattleDmgInfo.cs                                                         |   27 +++++++++----
 12 files changed, 59 insertions(+), 17 deletions(-)

diff --git a/Main/Core/NetworkPackage/CustomServerPack/CustomHB426CombinePack.cs b/Main/Core/NetworkPackage/CustomServerPack/CustomHB426CombinePack.cs
index 0a434a6..d53bbc3 100644
--- a/Main/Core/NetworkPackage/CustomServerPack/CustomHB426CombinePack.cs
+++ b/Main/Core/NetworkPackage/CustomServerPack/CustomHB426CombinePack.cs
@@ -365,6 +365,7 @@
             }
             else
             {
+                pack.commonMark = true;
                 // Debug.LogError("鍙戠幇闈濻kill鍖咃紝鍏堝垎鍙戞帀: " + pack.GetType().Name);
                 PackageRegedit.Distribute(pack);
             }
@@ -413,6 +414,7 @@
             }
             else
             {
+                pack.commonMark = true;
                 // Debug.LogError("鍙戠幇闈濻kill鍖咃紝鍏堝垎鍙戞帀: " + pack.GetType().Name);
                 PackageRegedit.Distribute(pack);
             }
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 95bd33e..ee55c51 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,8 @@
         //04 07 NPC娑堝け#tagNPCDisappear 涓殑瀛楁NPCID瀹為檯涓婂悓姝ョ殑鏄疧bjID锛屽彧鏄懡鍚嶉棶棰�
         //	鎻愬墠缁撴潫鎴樻枟 鍒犻櫎NPCID锛堬級瀹為檯涓婃槸瀵硅薄鐨凮bjID
         // battleField.NPCDisappear(vNetData.NPCID);
-        battleField?.DistributeNextPackage();
+        if (!vNetPack.commonMark)
+            battleField?.DistributeNextPackage();
 
     }
 }
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0418_tagObjInfoRefresh.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0418_tagObjInfoRefresh.cs
index 70cb50d..0e2adc4 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0418_tagObjInfoRefresh.cs
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0418_tagObjInfoRefresh.cs
@@ -52,7 +52,8 @@
         BattleField battleField = BattleManager.Instance.GetBattleField(vNetData.packUID);
         if (null != battleField)
         {
-            battleField.DistributeNextPackage();
+            if (!vNetPack.commonMark)
+                battleField?.DistributeNextPackage();
         }
 
     }
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB418_tagSCObjPropertyRefreshView.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB418_tagSCObjPropertyRefreshView.cs
index 8f9eab8..c5597d5 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB418_tagSCObjPropertyRefreshView.cs
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB418_tagSCObjPropertyRefreshView.cs
@@ -13,7 +13,8 @@
         if (null != battleField)
         {
             battleField.ObjPropertyRefreshView(vNetData);
-            battleField.DistributeNextPackage();
+            if (!vNetPack.commonMark)
+                battleField?.DistributeNextPackage();
         }
     }
 }
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB419_tagSCObjHPRefresh.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB419_tagSCObjHPRefresh.cs
index 3a4b134..64c4d6b 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB419_tagSCObjHPRefresh.cs
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB419_tagSCObjHPRefresh.cs
@@ -12,7 +12,8 @@
         if (null != battleField)
         {
             battleField.OnRefreshObjHP(vNetData);
-            battleField.DistributeNextPackage();
+            if (!vNetPack.commonMark)
+                battleField?.DistributeNextPackage();
         }
     }
 }
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 b003cf8..9d44132 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB422_tagMCTurnFightObjDead.cs
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB422_tagMCTurnFightObjDead.cs
@@ -17,6 +17,7 @@
         BattleDebug.LogError("缂栬緫鍣ㄤ笅鐨勬浜℃祴璇�");
         battleField?.OnObjsDead(new List<HB422_tagMCTurnFightObjDead>(){vNetData});
 #endif
-        battleField?.DistributeNextPackage(); // 鍒嗗彂涓嬩竴涓寘
+        if (!vNetPack.commonMark)
+            battleField?.DistributeNextPackage();
     }
 }
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB425_tagSCTurnFightReportSign.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB425_tagSCTurnFightReportSign.cs
index a27ad54..7b96368 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB425_tagSCTurnFightReportSign.cs
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB425_tagSCTurnFightReportSign.cs
@@ -38,7 +38,8 @@
 
         if (null != battleField)
         {
-            battleField.DistributeNextPackage();
+            if (!vNetPack.commonMark)
+                battleField?.DistributeNextPackage();
         }
     }
 
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB428_tagSCBuffRefresh.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB428_tagSCBuffRefresh.cs
index b059e7d..b6ea754 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB428_tagSCBuffRefresh.cs
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB428_tagSCBuffRefresh.cs
@@ -16,7 +16,8 @@
         if (null != battleField)
         {
             battleField.OnRefreshBuff(vNetData);
-            battleField.DistributeNextPackage();
+            if (!vNetPack.commonMark)
+                battleField?.DistributeNextPackage();
         }
 
     }
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB429_tagSCBuffDel.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB429_tagSCBuffDel.cs
index 630cfaa..7f3f867 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB429_tagSCBuffDel.cs
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB429_tagSCBuffDel.cs
@@ -12,7 +12,8 @@
         if (null != battleField)
         {
             battleField.OnBuffDel(vNetData);
-            battleField.DistributeNextPackage();
+            if (!vNetPack.commonMark)
+                battleField?.DistributeNextPackage();
         }
     }
 }
diff --git a/Main/Core/NetworkPackage/GameNetPackBasic.cs b/Main/Core/NetworkPackage/GameNetPackBasic.cs
index 91985e0..56f9dbe 100644
--- a/Main/Core/NetworkPackage/GameNetPackBasic.cs
+++ b/Main/Core/NetworkPackage/GameNetPackBasic.cs
@@ -24,6 +24,12 @@
         }
     }
 
+    public bool commonMark
+    {
+        get;
+        set;
+    } = false;
+
     public GameNetPackBasic()
     {
         packUID = AutoIncreaseUID++;
diff --git a/Main/Core/NetworkPackage/ServerPack/HB4_FightDefine/HB430_tagSCTurnFightReport.cs b/Main/Core/NetworkPackage/ServerPack/HB4_FightDefine/HB430_tagSCTurnFightReport.cs
index 48694ae..f9b1fea 100644
--- a/Main/Core/NetworkPackage/ServerPack/HB4_FightDefine/HB430_tagSCTurnFightReport.cs
+++ b/Main/Core/NetworkPackage/ServerPack/HB4_FightDefine/HB430_tagSCTurnFightReport.cs
@@ -1,6 +1,7 @@
 using UnityEngine;
 using System.Collections;
 using System;
+using System.IO;
 
 // B4 30 鏌ョ湅鎴樻姤缁撴灉 #tagSCTurnFightReportRet
 
@@ -18,11 +19,27 @@
 
     public override void ReadFromBytes(byte[] vBytes)
     {
+#if UNITY_EDITOR
+        string fileName = Application.dataPath + "/../BattleReport/B430_ReportBytes_" + "_" + DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".bytes";
+        try
+        {
+            if (Launch.Instance.isOpenBattleDebug)
+            {
+                File.WriteAllBytes(fileName, vBytes);
+            }
+        }
+        catch (Exception e)
+        {
+            Debug.LogError("HB430_tagSCTurnFightReport WriteAllBytes error: " + e.Message + " fileName: " + fileName);
+        }
+#endif
+
         TransBytes(out GUID, vBytes, NetDataType.Chars, 40);
         TransBytes(out Len, vBytes, NetDataType.DWORD);
         TransBytes(out Report, vBytes, NetDataType.Chars, Len);
         reportBytes = new byte[Len];
         Array.Copy(vBytes, 46, reportBytes, 0, Len);
+
     }
 
 }
diff --git a/Main/System/Battle/Define/BattleDmgInfo.cs b/Main/System/Battle/Define/BattleDmgInfo.cs
index bcf03c0..3eea79c 100644
--- a/Main/System/Battle/Define/BattleDmgInfo.cs
+++ b/Main/System/Battle/Define/BattleDmgInfo.cs
@@ -53,19 +53,19 @@
     private void HandleDamageType()
     {
         if (hurt == null) return;
-    
+
         uint originalAttackTypes = hurt.AttackTypes;
         int convertedAttackTypes = 0;
-    
+
         // 閬嶅巻鏈嶅姟鍣ㄥ彂鏉ョ殑鎵�鏈変激瀹崇被鍨嬫爣璁�
         foreach (ServerDamageType serverDamageType in System.Enum.GetValues(typeof(ServerDamageType)))
         {
             int serverValue = (int)serverDamageType;
-        
+    
             // 妫�鏌ユ湇鍔″櫒绫诲瀷鏄惁瀛樺湪
             if ((originalAttackTypes & serverValue) != serverValue)
                 continue;
-        
+    
             // 杞崲鏄犲皠
             switch (serverDamageType)
             {
@@ -99,17 +99,14 @@
                 
                 case ServerDamageType.DamageReverse:
                     convertedAttackTypes |= (int)DamageType.Damage;
-                    // Debug.LogWarning($"[BattleDmgInfo] 鏈嶅姟鍣ㄤ激瀹崇被鍨� DamageReverse({serverValue}) 鍦ㄥ鎴风娌℃湁瀵瑰簲鐨勬灇涓惧��");
                     break;
                 
                 case ServerDamageType.SuckHpReverse:
                     convertedAttackTypes |= (int)DamageType.Damage;
-                    // Debug.LogWarning($"[BattleDmgInfo] 鏈嶅姟鍣ㄤ激瀹崇被鍨� SuckHpReverse({serverValue}) 鍦ㄥ鎴风娌℃湁瀵瑰簲鐨勬灇涓惧��");
                     break;
                 
                 case ServerDamageType.SelfHarm:
                     convertedAttackTypes |= (int)DamageType.Damage;
-                    // Debug.LogWarning($"[BattleDmgInfo] 鏈嶅姟鍣ㄤ激瀹崇被鍨� SelfHarm({serverValue}) 鍦ㄥ鎴风娌℃湁瀵瑰簲鐨勬灇涓惧��");
                     break;
                 
                 default:
@@ -117,13 +114,25 @@
                     break;
             }
         }
-    
+
+        // DOT鎶�鑳界壒娈婂鐞嗭紙SkillType == 3 鎴� 4锛�
+        if (skillConfig != null && (skillConfig.SkillType == 3 || skillConfig.SkillType == 4))
+        {
+            // 濡傛灉鏄激瀹崇被鍨嬶紝鏇挎崲涓烘祦琛�绫诲瀷
+            if ((convertedAttackTypes & (int)DamageType.Damage) != 0)
+            {
+                // 娴佽鏍囪
+                convertedAttackTypes = (int)DamageType.Bloody;
+            }
+            // 娌荤枟绫诲瀷淇濇寔涓嶅彉
+        }
+
         // 妫�鏌ユ槸鍚﹀寘鍚崰浣嶇绫诲瀷
         if ((convertedAttackTypes & (int)DamageType.TakePlace2) == (int)DamageType.TakePlace2)
         {
             Debug.LogWarning($"[BattleDmgInfo] 杞崲鍚庣殑浼ゅ绫诲瀷鍖呭惈鍗犱綅绗� TakePlace2(256)");
         }
-    
+
         hurt.AttackTypes = (uint)convertedAttackTypes;
         Debug.Log($"[BattleDmgInfo] 浼ゅ绫诲瀷杞崲: {originalAttackTypes} -> {hurt.AttackTypes}");
     }

--
Gitblit v1.8.0