yyl
5 小时以前 7582d939ddb0256fa9beb6956ee3e86c40097b95
b427 封包同步
1个文件已修改
48 ■■■■ 已修改文件
Main/Core/NetworkPackage/ServerPack/HB4_FightDefine/HB427_tagSCUseSkill.cs 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/ServerPack/HB4_FightDefine/HB427_tagSCUseSkill.cs
@@ -6,13 +6,15 @@
public partial class HB427_tagSCUseSkill : GameNetPackBasic {
    public uint ObjID;
    public byte PMType;    // 物法类型 0或1-物理;2-法术
    public byte BattleType;    // 战斗类型 0-常规;1-连击;2-反击;3-追击;4-子技能;5-被动触发的
    public byte BattleType;    // 战斗类型 0-常规;1-连击;2-反击;3-追击;4-子技能;5-被动触发的;6-dot结算;7-持续治疗结算
    public uint CurHP;    // 释放技能后剩余血量,吸血、反弹可能引起变化,求余亿部分
    public uint CurHPEx;    // 释放技能后剩余血量,吸血、反弹可能引起变化,整除亿部分
    public uint SkillID;
    public uint RelatedSkillID;    // 关联的技能ID,一般是主技能ID或由于某个技能释放引起的
    public byte HurtCount;    //伤害数目
    public  tagSCUseSkillHurt[] HurtList;    //size = HurtCount
    public byte HurtCount;
    public  tagSCUseSkillHurt[] HurtList;    // 主要伤害目标列表
    public byte HurtCountEx;
    public  tagSCUseSkillHurtEx[] HurtListEx;    // 额外伤害目标列表,仅后端单次伤害的有效,如平摊或溅射伤害
    public HB427_tagSCUseSkill () {
        _cmd = (ushort)0xB427;
@@ -38,18 +40,54 @@
            TransBytes (out HurtList[i].CurHPEx, vBytes, NetDataType.DWORD);
            TransBytes (out HurtList[i].SuckHP, vBytes, NetDataType.DWORD);
            TransBytes (out HurtList[i].BounceHP, vBytes, NetDataType.DWORD);
            TransBytes (out HurtList[i].HurtCountEx, vBytes, NetDataType.BYTE);
            HurtList[i].HurtListEx = new tagSCUseSkillHurtEx[HurtList[i].HurtCountEx];
            for (int j = 0; j < HurtList[i].HurtCountEx; j ++) {
                HurtList[i].HurtListEx[j] = new tagSCUseSkillHurtEx();
                TransBytes (out HurtList[i].HurtListEx[j].ObjID, vBytes, NetDataType.DWORD);
                TransBytes (out HurtList[i].HurtListEx[j].AttackTypes, vBytes, NetDataType.DWORD);
                TransBytes (out HurtList[i].HurtListEx[j].HurtHP, vBytes, NetDataType.DWORD);
                TransBytes (out HurtList[i].HurtListEx[j].HurtHPEx, vBytes, NetDataType.DWORD);
                TransBytes (out HurtList[i].HurtListEx[j].CurHP, vBytes, NetDataType.DWORD);
                TransBytes (out HurtList[i].HurtListEx[j].CurHPEx, vBytes, NetDataType.DWORD);
                TransBytes (out HurtList[i].HurtListEx[j].SuckHP, vBytes, NetDataType.DWORD);
            }
        }
        TransBytes (out HurtCountEx, vBytes, NetDataType.BYTE);
        HurtListEx = new tagSCUseSkillHurtEx[HurtCountEx];
        for (int i = 0; i < HurtCountEx; i ++) {
            HurtListEx[i] = new tagSCUseSkillHurtEx();
            TransBytes (out HurtListEx[i].ObjID, vBytes, NetDataType.DWORD);
            TransBytes (out HurtListEx[i].AttackTypes, vBytes, NetDataType.DWORD);
            TransBytes (out HurtListEx[i].HurtHP, vBytes, NetDataType.DWORD);
            TransBytes (out HurtListEx[i].HurtHPEx, vBytes, NetDataType.DWORD);
            TransBytes (out HurtListEx[i].CurHP, vBytes, NetDataType.DWORD);
            TransBytes (out HurtListEx[i].CurHPEx, vBytes, NetDataType.DWORD);
            TransBytes (out HurtListEx[i].SuckHP, vBytes, NetDataType.DWORD);
        }
    }
    public class tagSCUseSkillHurt {
        public uint ObjID;
        public uint AttackTypes;        // 飘血类型汇总,支持多种类型并存,如无视防御且暴击同时被格挡,二进制或运算最终值;0-失败;1-普通;2-回血;5-格挡;6-无视防御;7-暴击;9-闪避
        public uint ObjID;        // 技能自身目标ID
        public uint AttackTypes;        // 飘血类型汇总,支持多种类型并存,如无视防御且暴击同时被格挡,二进制或运算最终值;0-失败;1-普通;2-回血;4-免疫;5-格挡;6-无视防御;7-暴击;8-击晕;9-闪避
        public uint HurtHP;        // 飘血值,求余亿部分
        public uint HurtHPEx;        // 飘血值,整除亿部分
        public uint CurHP;        // 更新剩余血量,求余亿部分
        public uint CurHPEx;        // 更新剩余血量,整除亿部分
        public uint SuckHP;        // 本次伤害转化的吸血量
        public uint BounceHP;        // 本次伤害反弹的伤害量
        public byte HurtCountEx;
        public  tagSCUseSkillHurtEx[] HurtListEx;        // 额外伤害目标列表,仅后端多次伤害的有效,如弹射的平摊伤害
    }
    public class tagSCUseSkillHurtEx {
        public uint ObjID;        // 额外目标,如溅射伤害、平摊伤害目标,非技能自身的主要目标
        public uint AttackTypes;        // 飘血类型汇总,支持多种类型并存,如无视防御且暴击同时被格挡,二进制或运算最终值;0-失败;1-普通;2-回血;4-免疫;5-格挡;6-无视防御;7-暴击;8-击晕;9-闪避
        public uint HurtHP;        // 飘血值,求余亿部分
        public uint HurtHPEx;        // 飘血值,整除亿部分
        public uint CurHP;        // 更新剩余血量,求余亿部分
        public uint CurHPEx;        // 更新剩余血量,整除亿部分
        public uint SuckHP;        // 本次伤害转化的吸血量
    }
}