hxp
2019-05-29 be35331b8931d2829f014749a827a1c37c78feff
6997 【后端】【2.0】战力计算整理
3个文件已修改
80 ■■■■■ 已修改文件
PySysDB/PySysDBPY.h 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PySysDB/PySysDBPY.h
@@ -462,28 +462,26 @@
    WORD        _LV;    //等级
    DWORD        CftHit;    //命中系数
    DWORD        CftMiss;    //闪避系数
    DWORD        CftDamagePer;    //增加伤害系数
    DWORD        CftDamReduce;    //减少伤害系数
    DWORD        CftIgnoreDefRate;    //无视防御系数
    DWORD        CftDamChanceDef;    //抵御系数
    DWORD        CftBleedDamage;    //流血伤害系数
    DWORD        CftFaintRate;    //击晕系数
    DWORD        CftSuperHitReduce;    //暴击抗性系数
    DWORD        CftSuperHitRateReduce;    //暴击率抗性系数
    DWORD        CftSuperHitRate;    //暴击率系数
    DWORD        CftLuckyHitRate;    //会心一击率系数
    DWORD        CftLuckyHitRateReduce;    //会心一击抗性系数
    DWORD        CftSkillAtkRate;    //技能伤害系数
    DWORD        CftSkillAtkRateReduce;    //技能减伤系数
    DWORD        CftDamagePerPVP;    //PVP伤害增肌系数
    DWORD        CftFinalHurtPer;    //最终伤害加成系数
    DWORD        CftFinalHurtReducePer;    //最终伤害减免系数
    DWORD        CftDamagePerPVP;    //PVP伤害增加系数
    DWORD        CftDamagePerPVPReduce;    //PVP伤害减少系数
    DWORD        CftNPCHurtAddPer;    //PVE技能加成系数
    DWORD        CftNormalHurtPer;    //普通附加伤害加成系数
    DWORD        CftFabaoHurtPer;    //法宝附加伤害加成系数
    DWORD        CftDamBackPer;    //伤害反射系数
    DWORD        CftIgnoreDefRateReduce;    //无视防御抗性系数
    DWORD        CftFaintDefRate;    //控制抵抗系数
    DWORD        CftAtkSpeed;    //攻速系数
    DWORD        CftLuckyHit;    //会心一击系数
    DWORD        CftSpeedPer;    //移动速度百分比系数
    DWORD        CftAtkPer;    //攻击百分比系数
    DWORD        CftMaxHPPer;    //生命百分比系数
    DWORD        CftJobAHurtAddPer;    //对目标战士伤害加成
    DWORD        CftJobBHurtAddPer;    //对目标法师伤害加成
    DWORD        CftJobCHurtAddPer;    //对目标弓箭伤害加成
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -381,28 +381,26 @@
                        ("WORD", "LV", 1),
                        ("DWORD", "CftHit", 0),
                        ("DWORD", "CftMiss", 0),
                        ("DWORD", "CftDamagePer", 0),
                        ("DWORD", "CftDamReduce", 0),
                        ("DWORD", "CftIgnoreDefRate", 0),
                        ("DWORD", "CftDamChanceDef", 0),
                        ("DWORD", "CftBleedDamage", 0),
                        ("DWORD", "CftFaintRate", 0),
                        ("DWORD", "CftSuperHitReduce", 0),
                        ("DWORD", "CftSuperHitRateReduce", 0),
                        ("DWORD", "CftSuperHitRate", 0),
                        ("DWORD", "CftLuckyHitRate", 0),
                        ("DWORD", "CftLuckyHitRateReduce", 0),
                        ("DWORD", "CftSkillAtkRate", 0),
                        ("DWORD", "CftSkillAtkRateReduce", 0),
                        ("DWORD", "CftFinalHurtPer", 0),
                        ("DWORD", "CftFinalHurtReducePer", 0),
                        ("DWORD", "CftDamagePerPVP", 0),
                        ("DWORD", "CftDamagePerPVPReduce", 0),
                        ("DWORD", "CftNPCHurtAddPer", 0),
                        ("DWORD", "CftNormalHurtPer", 0),
                        ("DWORD", "CftFabaoHurtPer", 0),
                        ("DWORD", "CftDamBackPer", 0),
                        ("DWORD", "CftIgnoreDefRateReduce", 0),
                        ("DWORD", "CftFaintDefRate", 0),
                        ("DWORD", "CftAtkSpeed", 0),
                        ("DWORD", "CftLuckyHit", 0),
                        ("DWORD", "CftSpeedPer", 0),
                        ("DWORD", "CftAtkPer", 0),
                        ("DWORD", "CftMaxHPPer", 0),
                        ("DWORD", "CftJobAHurtAddPer", 0),
                        ("DWORD", "CftJobBHurtAddPer", 0),
                        ("DWORD", "CftJobCHurtAddPer", 0),
@@ -2194,28 +2192,26 @@
        self.LV = 0
        self.CftHit = 0
        self.CftMiss = 0
        self.CftDamagePer = 0
        self.CftDamReduce = 0
        self.CftIgnoreDefRate = 0
        self.CftDamChanceDef = 0
        self.CftBleedDamage = 0
        self.CftFaintRate = 0
        self.CftSuperHitReduce = 0
        self.CftSuperHitRateReduce = 0
        self.CftSuperHitRate = 0
        self.CftLuckyHitRate = 0
        self.CftLuckyHitRateReduce = 0
        self.CftSkillAtkRate = 0
        self.CftSkillAtkRateReduce = 0
        self.CftFinalHurtPer = 0
        self.CftFinalHurtReducePer = 0
        self.CftDamagePerPVP = 0
        self.CftDamagePerPVPReduce = 0
        self.CftNPCHurtAddPer = 0
        self.CftNormalHurtPer = 0
        self.CftFabaoHurtPer = 0
        self.CftDamBackPer = 0
        self.CftIgnoreDefRateReduce = 0
        self.CftFaintDefRate = 0
        self.CftAtkSpeed = 0
        self.CftLuckyHit = 0
        self.CftSpeedPer = 0
        self.CftAtkPer = 0
        self.CftMaxHPPer = 0
        self.CftJobAHurtAddPer = 0
        self.CftJobBHurtAddPer = 0
        self.CftJobCHurtAddPer = 0
@@ -2227,28 +2223,26 @@
    def GetLV(self): return self.LV # 等级
    def GetCftHit(self): return self.CftHit # 命中系数
    def GetCftMiss(self): return self.CftMiss # 闪避系数
    def GetCftDamagePer(self): return self.CftDamagePer # 增加伤害系数
    def GetCftDamReduce(self): return self.CftDamReduce # 减少伤害系数
    def GetCftIgnoreDefRate(self): return self.CftIgnoreDefRate # 无视防御系数
    def GetCftDamChanceDef(self): return self.CftDamChanceDef # 抵御系数
    def GetCftBleedDamage(self): return self.CftBleedDamage # 流血伤害系数
    def GetCftFaintRate(self): return self.CftFaintRate # 击晕系数
    def GetCftSuperHitReduce(self): return self.CftSuperHitReduce # 暴击抗性系数
    def GetCftSuperHitRateReduce(self): return self.CftSuperHitRateReduce # 暴击率抗性系数
    def GetCftSuperHitRate(self): return self.CftSuperHitRate # 暴击率系数
    def GetCftLuckyHitRate(self): return self.CftLuckyHitRate # 会心一击率系数
    def GetCftLuckyHitRateReduce(self): return self.CftLuckyHitRateReduce # 会心一击抗性系数
    def GetCftSkillAtkRate(self): return self.CftSkillAtkRate # 技能伤害系数
    def GetCftSkillAtkRateReduce(self): return self.CftSkillAtkRateReduce # 技能减伤系数
    def GetCftDamagePerPVP(self): return self.CftDamagePerPVP # PVP伤害增肌系数
    def GetCftFinalHurtPer(self): return self.CftFinalHurtPer # 最终伤害加成系数
    def GetCftFinalHurtReducePer(self): return self.CftFinalHurtReducePer # 最终伤害减免系数
    def GetCftDamagePerPVP(self): return self.CftDamagePerPVP # PVP伤害增加系数
    def GetCftDamagePerPVPReduce(self): return self.CftDamagePerPVPReduce # PVP伤害减少系数
    def GetCftNPCHurtAddPer(self): return self.CftNPCHurtAddPer # PVE技能加成系数
    def GetCftNormalHurtPer(self): return self.CftNormalHurtPer # 普通附加伤害加成系数
    def GetCftFabaoHurtPer(self): return self.CftFabaoHurtPer # 法宝附加伤害加成系数
    def GetCftDamBackPer(self): return self.CftDamBackPer # 伤害反射系数
    def GetCftIgnoreDefRateReduce(self): return self.CftIgnoreDefRateReduce # 无视防御抗性系数
    def GetCftFaintDefRate(self): return self.CftFaintDefRate # 控制抵抗系数
    def GetCftAtkSpeed(self): return self.CftAtkSpeed # 攻速系数
    def GetCftLuckyHit(self): return self.CftLuckyHit # 会心一击系数
    def GetCftSpeedPer(self): return self.CftSpeedPer # 移动速度百分比系数
    def GetCftAtkPer(self): return self.CftAtkPer # 攻击百分比系数
    def GetCftMaxHPPer(self): return self.CftMaxHPPer # 生命百分比系数
    def GetCftJobAHurtAddPer(self): return self.CftJobAHurtAddPer # 对目标战士伤害加成
    def GetCftJobBHurtAddPer(self): return self.CftJobBHurtAddPer # 对目标法师伤害加成
    def GetCftJobCHurtAddPer(self): return self.CftJobCHurtAddPer # 对目标弓箭伤害加成
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -3579,9 +3579,9 @@
        Miss = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_AttrMiss) * fpParam.GetCftMiss() # 闪避值
        AtkSpeed = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_AttrAtkSpeed) # 攻击速度(数值非攻击间隔)
        SuperHitRate = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SuperHitRate) * fpParam.GetCftSuperHitRate() # 暴击率
        SuperHitRateReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SuperHitRateReduce) # 暴击概率抗性
        SuperHitRateReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SuperHitRateReduce) * fpParam.GetCftSuperHitRateReduce() # 暴击概率抗性
        SuperHit = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SuperHit) # 暴击伤害固定值
        SuperHitReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SuperHitReduce) * fpParam.GetCftSuperHitReduce() # 暴击固定减伤
        SuperHitReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SuperHitReduce) # 暴击固定减伤
        LuckyHitRate = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_LuckyHitRate) * fpParam.GetCftLuckyHitRate() # 会心一击
        LuckyHitRateReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_LuckyHitRateReduce) * fpParam.GetCftLuckyHitRateReduce() # 会心一击概率抗性
        LuckyHit = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_LuckyHit) # 会心一击伤害固定值
@@ -3594,7 +3594,7 @@
        HPRestore = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_HPRestorePer) # 自动回复血量,固定值
        DamBackPer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_DamBackPer) * fpParam.GetCftDamBackPer() # 反伤百分比
        SpeedValue = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_AttrSpeed) # 移动速度值
        SpeedPer = getattr(self, self.__AttrNameNoline % ChConfig.TYPE_Calc_AttrSpeed) * fpParam.GetCftSpeedPer() # 移动速度百分比系数
        SpeedPer = 0#getattr(self, self.__AttrNameNoline % ChConfig.TYPE_Calc_AttrSpeed) * fpParam.GetCftSpeedPer() # 移动速度百分比系数
        PetMinAtk = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_PetMinAtk) # 宠物最小攻击
        PetMaxAtk = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_PetMaxAtk) # 宠物最大攻击
        PetDamPer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_PetDamPer) # 宠物伤害百分比提升
@@ -3603,14 +3603,14 @@
        IgnoreDefRate = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_IgnoreDefRate) * fpParam.GetCftIgnoreDefRate() # 无视防御几率
        IgnoreDefRateReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_IgnoreDefRateReduce) * fpParam.GetCftIgnoreDefRateReduce() # 无视防御概率抗性
        DamChanceDef = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_DamChanceDef) * fpParam.GetCftDamChanceDef() # 20%的概率抵御伤害比率
        BleedDamage = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_BleedDamage) * fpParam.GetCftBleedDamage() # 流血伤害
        BleedDamage = 0#getattr(self, self.__AttrName % ChConfig.TYPE_Calc_BleedDamage) * fpParam.GetCftBleedDamage() # 流血伤害
        AtkBackHP = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_AtkBackHPPer) # 攻击回复血量
        FaintRate = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_FaintRate) * fpParam.GetCftFaintRate() # 触发击晕
        FaintDefRate = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_FaintDefRate) * fpParam.GetCftFaintDefRate() # 击晕抵抗
        FinalHurt = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_FinalHurt) # 最终固定伤害增加
        FinalHurtReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_FinalHurtReduce) # 最终固定伤害减少
        FinalHurtPer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_FinalHurtPer) # 最终伤害万分率
        FinalHurtReducePer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_FinalHurtReducePer) # 最终伤害减少万分率
        FinalHurtPer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_FinalHurtPer) * fpParam.GetCftFinalHurtPer() # 最终伤害万分率
        FinalHurtReducePer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_FinalHurtReducePer) * fpParam.GetCftFinalHurtReducePer() # 最终伤害减少万分率
        DamagePerPVP = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_DamagePerPVP) * fpParam.GetCftDamagePerPVP() # 伤害输出计算百分比PVP
        DamagePerPVPReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_DamagePerPVPReduce) * fpParam.GetCftDamagePerPVPReduce() # 伤害输出计算百分比PVP减少
        JobAHurtAddPer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_JobAHurtAddPer) * fpParam.GetCftJobAHurtAddPer() # 对目标战士伤害加成
@@ -3621,9 +3621,9 @@
        JobCAtkReducePer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_JobCAtkReducePer) * fpParam.GetCftJobCAtkReducePer() # 弓箭攻击伤害减免
        
        NormalHurt = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_NormalHurt) 
        NormalHurtPer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_NormalHurtPer)
        NormalHurtPer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_NormalHurtPer) * fpParam.GetCftNormalHurtPer() # 普通附加伤害加成
        FabaoHurt = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_FabaoHurt)
        FabaoHurtPer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_FabaoHurtPer)
        FabaoHurtPer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_FabaoHurtPer) * fpParam.GetCftFabaoHurtPer() # 法宝附加伤害加成
        Luck = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_Luck)
        
        ComboRate = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_ComboRate) # 连击几率
@@ -3634,11 +3634,11 @@
        
        OnlyFinalHurt = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_OnlyFinalHurt) # 额外输出伤害
        PVPAtkBackHP = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_PVPAtkBackHP) # PVP攻击回血
        NPCHurtAddPer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_NPCHurtAddPer) # 对怪物伤害加成
        NPCHurtAddPer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_NPCHurtAddPer) * fpParam.GetCftNPCHurtAddPer() # 对怪物伤害加成
        
        #其他需作为公式参数的系数
        AtkSpeedParameter = fpParam.GetCftAtkSpeed()
        LuckyHitParameter = fpParam.GetCftLuckyHit()
        LuckyHitParameter = 0#fpParam.GetCftLuckyHit()
        
        #取总属性的
        SuperHitRateTotal = curPlayer.GetSuperHitRate()