yyl
2025-12-01 6e82336ed03fa9b48ca3713b62e36f1d016ae4dc
125 战斗 战报调试信息扩展
2个文件已修改
2个文件已添加
198 ■■■■■ 已修改文件
Main/Core/NetworkPackage/CustomServerPack/CustomHB430_tagSCTurnFightReport.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/CustomServerPack/CustomHB430_tagSCTurnFightReport.cs.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB430_tagSCTurnFightReport.cs 170 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/ServerPack/HB4_FightDefine/HB430_tagSCTurnFightReport.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/CustomServerPack/CustomHB430_tagSCTurnFightReport.cs
New file
@@ -0,0 +1,13 @@
using UnityEngine;
using System.Collections;
using System;
using System.IO;
// B4 30 查看战报结果 #tagSCTurnFightReportRet
public partial class HB430_tagSCTurnFightReport : GameNetPackBasic {
    //是不是回放
    public bool isRecord = false;
}
Main/Core/NetworkPackage/CustomServerPack/CustomHB430_tagSCTurnFightReport.cs.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 4948f08f4c291a0439af388446754c07
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB430_tagSCTurnFightReport.cs
@@ -83,14 +83,62 @@
#endif
                }
            }
#if UNITY_EDITOR
            string originPack = string.Empty;
            BattleField battleField = BattleManager.Instance.GetBattleField(guid);
            for (int i = 0; i < vPackList.Count; i++)
            {
                var pack = vPackList[i];
                if (pack is HB427_tagSCUseSkill skill)
                {
                    string heroName = skill.ObjID.ToString();
                    if (battleField != null)
                    {
                        var battleObj = battleField.battleObjMgr.GetBattleObject((int)skill.ObjID);
                        if (battleObj != null && battleObj.teamHero != null)
                        {
                            heroName = battleObj.teamHero.name;
                        }
                    }
                    string skillName = SkillConfig.Get((int)skill.SkillID)?.SkillName ?? "Unknown";
                    originPack += $"[{pack.packUID}] HB427_tagSCUseSkill - ObjID:{skill.ObjID} HeroName:{heroName} SkillID:{skill.SkillID} SkillName:{skillName}\n";
                }
                else if (pack is HB426_tagSCTurnFightTag tag)
                {
                    string signText = tag.Sign == 0 ? "Start" : tag.Sign == 1 ? "End" : "Unknown";
                    originPack += $"[{pack.packUID}] HB426_tagSCTurnFightTag - Tag:{tag.Tag} Sign:{tag.Sign}({signText})\n";
                }
                else if (pack is HB422_tagMCTurnFightObjDead deadPack)
                {
                    string heroName = deadPack.ObjID.ToString();
                    if (battleField != null)
                    {
                        var battleObj = battleField.battleObjMgr.GetBattleObject((int)deadPack.ObjID);
                        if (battleObj != null && battleObj.teamHero != null)
                        {
                            heroName = battleObj.teamHero.name;
                        }
                    }
                    originPack += $"[{pack.packUID}] HB422_tagMCTurnFightObjDead - ObjID:{deadPack.ObjID} HeroName:{heroName}\n";
                }
                else
                {
                    originPack += $"[{pack.packUID}] {pack.GetType().Name}\n";
                }
            }
#endif
            vPackList = AnalysisPackQueueAndDistribute(guid, vPackList);
#if UNITY_EDITOR
if (Launch.Instance.isOpenSkillLogFile)
{
string packDetail = "AnalysisPackQueueAndDistribute 处理后的包列表:\n";
packDetail += PrintPackListDetail(vPackList, 0);
string packDetail = "处理前 : " + originPack + "\n";
packDetail += "AnalysisPackQueueAndDistribute 处理后的包列表:\n";
packDetail += PrintPackListDetail(vPackList, 0, guid);
// 分段打印,避免消息被截断
int chunkSize = 15000; // Unity日志单条消息最大长度约16000字符
@@ -131,10 +179,13 @@
        }
    }
    private string PrintPackListDetail(List<GameNetPackBasic> packList, int indent)
    private string PrintPackListDetail(List<GameNetPackBasic> packList, int indent, string guid = "")
    {
        string result = string.Empty;
        string indentStr = new string(' ', indent * 2);
        // 尝试获取战场,用于查询武将名字
        BattleField battleField = BattleManager.Instance.GetBattleField(guid);
        
        for (int i = 0; i < packList.Count; i++)
        {
@@ -142,7 +193,79 @@
            
            if (pack is HB427_tagSCUseSkill skill)
            {
                result += $"{indentStr}[{i}] HB427_tagSCUseSkill - ObjID:{skill.ObjID} SkillID:{skill.SkillID} RelatedSkillID:{skill.RelatedSkillID} BattleType:{skill.BattleType} UID:{skill.packUID}\n";
                string heroName = skill.ObjID.ToString();
                if (battleField != null)
                {
                    var battleObj = battleField.battleObjMgr.GetBattleObject((int)skill.ObjID);
                    if (battleObj != null && battleObj.teamHero != null)
                    {
                        heroName = battleObj.teamHero.name;
                    }
                }
                string skillName = SkillConfig.Get((int)skill.SkillID)?.SkillName ?? "Unknown";
                result += $"{indentStr}[{i}] HB427_tagSCUseSkill - ObjID:{skill.ObjID} HeroName:{heroName} SkillID:{skill.SkillID} SkillName:{skillName} RelatedSkillID:{skill.RelatedSkillID} BattleType:{skill.BattleType} UID:{skill.packUID}\n";
                // 打印主要伤害目标列表
                if (skill.HurtList != null && skill.HurtList.Length > 0)
                {
                    result += $"{indentStr}  HurtList ({skill.HurtList.Length}):\n";
                    for (int j = 0; j < skill.HurtList.Length; j++)
                    {
                        var hurt = skill.HurtList[j];
                        string targetName = hurt.ObjID.ToString();
                        if (battleField != null)
                        {
                            var targetObj = battleField.battleObjMgr.GetBattleObject((int)hurt.ObjID);
                            if (targetObj != null && targetObj.teamHero != null)
                            {
                                targetName = targetObj.teamHero.name;
                            }
                        }
                        result += $"{indentStr}    [{j}] Target - ObjID:{hurt.ObjID} Name:{targetName} HurtHP:{hurt.HurtHP} AttackTypes:{hurt.AttackTypes}\n";
                        // 打印该目标的额外伤害列表(如弹射的平摊伤害)
                        if (hurt.HurtListEx != null && hurt.HurtListEx.Length > 0)
                        {
                            result += $"{indentStr}      HurtListEx ({hurt.HurtListEx.Length}):\n";
                            for (int k = 0; k < hurt.HurtListEx.Length; k++)
                            {
                                var hurtEx = hurt.HurtListEx[k];
                                string targetExName = hurtEx.ObjID.ToString();
                                if (battleField != null)
                                {
                                    var targetExObj = battleField.battleObjMgr.GetBattleObject((int)hurtEx.ObjID);
                                    if (targetExObj != null && targetExObj.teamHero != null)
                                    {
                                        targetExName = targetExObj.teamHero.name;
                                    }
                                }
                                result += $"{indentStr}        [{k}] ExTarget - ObjID:{hurtEx.ObjID} Name:{targetExName} HurtHP:{hurtEx.HurtHP} AttackTypes:{hurtEx.AttackTypes}\n";
                            }
                        }
                    }
                }
                // 打印额外伤害目标列表(溅射、平摊等)
                if (skill.HurtListEx != null && skill.HurtListEx.Length > 0)
                {
                    result += $"{indentStr}  HurtListEx ({skill.HurtListEx.Length}):\n";
                    for (int j = 0; j < skill.HurtListEx.Length; j++)
                    {
                        var hurtEx = skill.HurtListEx[j];
                        string targetExName = hurtEx.ObjID.ToString();
                        if (battleField != null)
                        {
                            var targetExObj = battleField.battleObjMgr.GetBattleObject((int)hurtEx.ObjID);
                            if (targetExObj != null && targetExObj.teamHero != null)
                            {
                                targetExName = targetExObj.teamHero.name;
                            }
                        }
                        result += $"{indentStr}    [{j}] ExTarget - ObjID:{hurtEx.ObjID} Name:{targetExName} HurtHP:{hurtEx.HurtHP} AttackTypes:{hurtEx.AttackTypes}\n";
                    }
                }
                
                // 打印子技能列表
                if (skill.subSkillList != null && skill.subSkillList.Count > 0)
@@ -151,7 +274,8 @@
                    int j = 0;
                    foreach (var subSkill in skill.subSkillList)
                    {
                        result += $"{indentStr}    [{j}] SubSkill - SkillID:{subSkill.SkillID} RelatedSkillID:{subSkill.RelatedSkillID}\n";
                        string subSkillName = SkillConfig.Get((int)subSkill.SkillID)?.SkillName ?? "Unknown";
                        result += $"{indentStr}    [{j}] SubSkill - SkillID:{subSkill.SkillID} SkillName:{subSkillName} RelatedSkillID:{subSkill.RelatedSkillID}\n";
                        j++;
                    }
                }
@@ -164,12 +288,13 @@
                    foreach (var subCombinePack in skill.subSkillCombinePackList)
                    {
                        var subMainSkill = subCombinePack.GetMainHB427SkillPack();
                        result += $"{indentStr}    [{j}] SubCombinePack - Tag:{subCombinePack.startTag?.Tag} MainSkill:{subMainSkill?.SkillID} PackCount:{subCombinePack.packList.Count}\n";
                        string subMainSkillName = subMainSkill != null ? (SkillConfig.Get((int)subMainSkill.SkillID)?.SkillName ?? "Unknown") : "N/A";
                        result += $"{indentStr}    [{j}] SubCombinePack - Tag:{subCombinePack.startTag?.Tag} MainSkill:{subMainSkill?.SkillID} SkillName:{subMainSkillName} PackCount:{subCombinePack.packList.Count}\n";
                        
                        // 递归打印子CombinePack内部
                        if (subCombinePack.packList.Count > 0)
                        {
                            result += PrintPackListDetail(subCombinePack.packList, indent + 3);
                            result += PrintPackListDetail(subCombinePack.packList, indent + 3, guid);
                        }
                        j++;
                    }
@@ -178,14 +303,41 @@
            else if (pack is CustomHB426CombinePack combinePack)
            {
                var mainSkill = combinePack.GetMainHB427SkillPack();
                result += $"{indentStr}[{i}] CustomHB426CombinePack - Tag:{combinePack.startTag?.Tag} MainSkill:{mainSkill?.SkillID} PackCount:{combinePack.packList.Count}\n";
                string heroName = "Unknown";
                string skillName = "N/A";
                if (mainSkill != null)
                {
                    skillName = SkillConfig.Get((int)mainSkill.SkillID)?.SkillName ?? "Unknown";
                    if (battleField != null)
                    {
                        var battleObj = battleField.battleObjMgr.GetBattleObject((int)mainSkill.ObjID);
                        if (battleObj != null && battleObj.teamHero != null)
                        {
                            heroName = battleObj.teamHero.name;
                        }
                    }
                }
                result += $"{indentStr}[{i}] CustomHB426CombinePack - Tag:{combinePack.startTag?.Tag} MainSkill:{mainSkill?.SkillID} SkillName:{skillName} HeroName:{heroName} PackCount:{combinePack.packList.Count}\n";
                
                // 递归打印内部包
                if (combinePack.packList.Count > 0)
                {
                    result += PrintPackListDetail(combinePack.packList, indent + 1);
                    result += PrintPackListDetail(combinePack.packList, indent + 1, guid);
                }
            }
            else if (pack is HB422_tagMCTurnFightObjDead deadPack)
            {
                string heroName = "Unknown";
                if (battleField != null)
                {
                    var battleObj = battleField.battleObjMgr.GetBattleObject((int)deadPack.ObjID);
                    if (battleObj != null && battleObj.teamHero != null)
                    {
                        heroName = battleObj.teamHero.name;
                    }
                }
                result += $"{indentStr}[{i}] HB422_tagMCTurnFightObjDead - ObjID:{deadPack.ObjID} HeroName:{heroName} UID:{deadPack.packUID}\n";
            }
            else
            {
                result += $"{indentStr}[{i}] {pack.GetType().Name} UID:{pack.packUID}\n";
Main/Core/NetworkPackage/ServerPack/HB4_FightDefine/HB430_tagSCTurnFightReport.cs
@@ -5,7 +5,7 @@
// B4 30 查看战报结果 #tagSCTurnFightReportRet
public class HB430_tagSCTurnFightReport : GameNetPackBasic {
public partial class HB430_tagSCTurnFightReport : GameNetPackBasic {
    public string GUID;    //该战报guid
    public uint Len;
    public string Report;    //完整战报
@@ -20,7 +20,7 @@
    public override void ReadFromBytes(byte[] vBytes)
    {
#if UNITY_EDITOR
        if (Launch.Instance.isOpenBattleDebug)
        if (Launch.Instance.isOpenBattleDebug && !isRecord)
        {
            try
            {