| | |
| | | #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字符 |
| | |
| | | } |
| | | } |
| | | |
| | | 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++) |
| | | { |
| | |
| | | |
| | | 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) |
| | |
| | | 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++; |
| | | } |
| | | } |
| | |
| | | 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++; |
| | | } |
| | |
| | | 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"; |