Main/Core/NetworkPackage/CustomServerPack/CustomHB426CombinePack.cs
@@ -365,6 +365,7 @@ } else { pack.commonMark = true; // Debug.LogError("发现非Skill包,先分发掉: " + pack.GetType().Name); PackageRegedit.Distribute(pack); } @@ -413,6 +414,7 @@ } else { pack.commonMark = true; // Debug.LogError("发现非Skill包,先分发掉: " + pack.GetType().Name); PackageRegedit.Distribute(pack); } Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0407_tagNPCDisappear.cs
@@ -15,7 +15,8 @@ //04 07 NPC消失#tagNPCDisappear 中的字段NPCID实际上同步的是ObjID,只是命名问题 // 提前结束战斗 删除NPCID()实际上是对象的ObjID // battleField.NPCDisappear(vNetData.NPCID); battleField?.DistributeNextPackage(); if (!vNetPack.commonMark) battleField?.DistributeNextPackage(); } } 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(); } } 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(); } } } 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(); } } } 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(); } } Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB425_tagSCTurnFightReportSign.cs
@@ -38,7 +38,8 @@ if (null != battleField) { battleField.DistributeNextPackage(); if (!vNetPack.commonMark) battleField?.DistributeNextPackage(); } } 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(); } } 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(); } } } Main/Core/NetworkPackage/GameNetPackBasic.cs
@@ -24,6 +24,12 @@ } } public bool commonMark { get; set; } = false; public GameNetPackBasic() { packUID = AutoIncreaseUID++; 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); } } 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}"); }