| | |
| | | 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; |
| | |
| | | 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; // 本次伤害转化的吸血量 |
| | | } |
| | | |
| | | } |