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