yyl
9 小时以前 edc6a4fa4c3cba93d94083baed6d8cda8a2cf37f
125 战斗 1.流血伤害 2.修复技能卡死问题 3.添加战斗回放(Editor)
12个文件已修改
76 ■■■■ 已修改文件
Main/Core/NetworkPackage/CustomServerPack/CustomHB426CombinePack.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0407_tagNPCDisappear.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0418_tagObjInfoRefresh.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB418_tagSCObjPropertyRefreshView.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB419_tagSCObjHPRefresh.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB422_tagMCTurnFightObjDead.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB425_tagSCTurnFightReportSign.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB428_tagSCBuffRefresh.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB429_tagSCBuffDel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/GameNetPackBasic.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/ServerPack/HB4_FightDefine/HB430_tagSCTurnFightReport.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/Define/BattleDmgInfo.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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}");
    }