From 732aa4f4a768027405d2f1b4051f13babd29b8e4 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期二, 16 四月 2019 15:58:26 +0800
Subject: [PATCH] 6516 【后端】【2.0】战斗公式增加系数

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py |   91 ++++++++++++++++++++++++++++++---------------
 1 files changed, 61 insertions(+), 30 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
index 9948798..eb4d41f 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -3491,8 +3491,6 @@
     def ClearAttr(self):
         for attrIndex in xrange(1, ChConfig.Def_Calc_AllAttrType_MAX):
             value = 0
-#            if attrIndex == ChConfig.TYPE_Calc_SuperHit:
-#                value = ChConfig.Def_SuperHitPercent # 默认最低暴击倍值
             setattr(self, self.__AttrName % attrIndex, value)
         for attrIndex in self.__NolineAttrList:
             setattr(self, self.__AttrNameNoline % attrIndex, 0)            
@@ -3541,15 +3539,20 @@
         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) # 暴击率
-        SuperHit = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SuperHit) # 暴击伤害倍率
-        SuperHitReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SuperHitReducePer) * fpParam.GetCftSuperHitReduce() # 暴击伤害减免
+        SuperHitRateReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SuperHitRateReduce) # 暴击概率抗性
+        SuperHit = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SuperHit) # 暴击伤害固定值
+        SuperHitReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SuperHitReduce) * fpParam.GetCftSuperHitReduce() # 暴击固定减伤
+        SuperHitPer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SuperHitPer) # 暴击伤害万分率加成
         LuckyHitRate = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_LuckyHitRate) # 会心一击
-        LuckyHit = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_LuckyHit) # 会心一击伤害倍率
         LuckyHitRateReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_LuckyHitRateReduce) * fpParam.GetCftLuckyHitRateReduce() # 会心一击概率抗性
+        LuckyHit = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_LuckyHit) # 会心一击伤害固定值
+        LuckyHitReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_LuckyHitReduce) # 会心一击伤害固定减伤
+        LuckyHitPer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_LuckyHitPer) # 会心一击伤害百分比
         SkillAtkRate = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SkillAtkRate) * fpParam.GetCftSkillAtkRate() # 技能攻击比例加成
         SkillAtkRateReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SkillAtkRateReduce) * fpParam.GetCftSkillAtkRateReduce() # 技能攻击比例减少
-        DamagePer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_DamagePer) * fpParam.GetCftDamagePer() # 伤害输出计算百分比
-        DamReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_AttrDamReduce) * fpParam.GetCftDamReduce() # 伤害输出计算百分比减少, 伤害吸收
+        DamagePVP = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_DamagePVP) * fpParam.GetCftDamagePer() # PVP固定伤害
+        DamagePVPReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_DamagePVPReduce) * fpParam.GetCftDamReduce() # PVP固定减伤
+        DamagePVE = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_DamagePVE) * fpParam.GetCftDamagePer() # PVE固定伤害
         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) # 移动速度值
@@ -3568,6 +3571,8 @@
         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) # 最终伤害减少万分率
         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() # 对目标战士伤害加成
@@ -4635,8 +4640,8 @@
                 setAttrDict[ChConfig.AttrName_DefRate] = int(lvIpyData.GetReMiss() * attrPer) # 闪避
                 setAttrDict[ChConfig.AttrName_AtkSpeed] = int(lvIpyData.GetReAtkSpeed() * attrPer) # 攻击速度
                 setAttrDict[ChConfig.AttrName_SkillAtkRate] = int(lvIpyData.GetReSkillAtkRate() * attrPer) # 技能伤害比例
-                setAttrDict[ChConfig.AttrName_DamagePer] = int(lvIpyData.GetReDamagePer() * attrPer) # 增加伤害
-                setAttrDict[ChConfig.AttrName_DamReducePer] = int(lvIpyData.GetReDamReduce() * attrPer) # 减少伤害
+                setAttrDict[ChConfig.AttrName_DamagePVP] = int(lvIpyData.GetReDamagePer() * attrPer) # PVP固定伤害
+                setAttrDict[ChConfig.AttrName_DamagePVPReduce] = int(lvIpyData.GetReDamReduce() * attrPer) # PVP固定减伤
                 setAttrDict[ChConfig.AttrName_IgnoreDefRate] = int(lvIpyData.GetReIgnoreDefRate() * attrPer) # 无视防御比例
                 setAttrDict[ChConfig.AttrName_LuckyHitRate] = int(lvIpyData.GetReLuckyHitRate() * attrPer) # 会心一击率
                 setAttrDict[ChConfig.AttrName_LuckyHit] = int(lvIpyData.GetReLuckyHit() * attrPer) # 会心一击伤害
@@ -4972,9 +4977,6 @@
                         ChConfig.TYPE_Calc_HitSucessRate:ChConfig.Def_MaxRateValue,
                         ChConfig.TYPE_Calc_CurePer:ChConfig.Def_MaxRateValue,
                         
-                        #ChConfig.TYPE_Calc_SuperHit:ChConfig.Def_SuperHitPercent,
-                        #ChConfig.TYPE_Calc_GreatHit:ChConfig.Def_GreatHitVal,
-                        #ChConfig.TYPE_Calc_LuckyHit:ChConfig.Def_LuckyHitVal,
                         }
         
         for i in xrange(1, ChConfig.Def_Calc_AllAttrType_MAX):
@@ -6296,16 +6298,19 @@
 def SetJobCAtkReducePer(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_JobCAtkReducePer, value)
 
 #---特殊伤害减免---
-## 会心一击伤害减免
-def GetLuckyHitReducePer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_LuckyHitReducePer)
-def SetLuckyHitReducePer(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_LuckyHitReducePer, value)
+## 会心一击伤害减免固定值
+def GetLuckyHitReduce(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_LuckyHitReduce)
+def SetLuckyHitReduce(curPlayer, value): 
+    curPlayer.SetDict(ChConfig.Def_PlayerKey_LuckyHitReduce, value)
+    curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_LuckyHitReduce, value, False)
+    
 ## 卓越一击伤害减免
 def GetGreatHitReducePer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_GreatHitReducePer)
 def SetGreatHitReducePer(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_GreatHitReducePer, value)
-## 致命一击伤害减免
-def GetSuperHitReducePer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_SuperHitReducePer)
-def SetSuperHitReducePer(curPlayer, value):
-    curPlayer.SetDict(ChConfig.Def_PlayerKey_SuperHitReducePer, value)
+## 暴击伤害减免
+def GetSuperHitReduce(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_SuperHitReduce)
+def SetSuperHitReduce(curPlayer, value):
+    curPlayer.SetDict(ChConfig.Def_PlayerKey_SuperHitReduce, value)
     curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_SuperHitReduce, value, False)
 ## 无视防御伤害减免
 def GetIgnoreDefReducePer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_IgnoreDefReducePer)
@@ -6320,9 +6325,11 @@
 ## 抗卓越一击概率
 def GetGreatHitRateReduce(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_GreatHitRateReduce)
 def SetGreatHitRateReduce(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_GreatHitRateReduce, value)
-## 抗致命一击概率
+## 抗暴击概率
 def GetSuperHitRateReduce(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_SuperHitRateReduce)
-def SetSuperHitRateReduce(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_SuperHitRateReduce, value)
+def SetSuperHitRateReduce(curPlayer, value): 
+    curPlayer.SetDict(ChConfig.Def_PlayerKey_SuperHitRateReduce, value)
+    curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_SuperHitRateReduce, value, False)
 ## 抗无视防御概率
 def GetIgnoreDefRateReduce(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_IgnoreDefRateReduce)
 def SetIgnoreDefRateReduce(curPlayer, value):
@@ -6345,6 +6352,13 @@
 def SetFinalHurtPer(curPlayer, value):
     curPlayer.SetDict(ChConfig.Def_PlayerKey_FinalHurtPer, value)
     curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_FinalHurtPer, value, False)
+    
+## 最终伤害减免百分比
+def GetFinalHurtReducePer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_FinalHurtReducePer)
+def SetFinalHurtReducePer(curPlayer, value):
+    curPlayer.SetDict(ChConfig.Def_PlayerKey_FinalHurtReducePer, value)
+    curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_FinalHurtReducePer, value, False)
+    
 ## 最终固定伤害增加
 def GetFinalHurt(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_FinalHurt)
 def SetFinalHurt(curPlayer, value):
@@ -6507,15 +6521,22 @@
 def SetSkillAtkRateReduce(curPlayer, value):
     curPlayer.SetDict(ChConfig.Def_PlayerKey_SkillAtkRateReduce, value)
     curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_SkillAtkRateReduce, value, False)
-#---伤害输出计算百分比----
-def GetDamagePer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_AttrDamagePer)
-def SetDamagePer(curPlayer, value):
-    curPlayer.SetDict(ChConfig.Def_PlayerKey_AttrDamagePer, value)
-    curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_DamagePer, value, False)
-#---伤害输出计算百分比对NPC附加----
-def GetDamagePerPVE(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_AttrDamagePerPVE)
-def SetDamagePerPVE(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_AttrDamagePerPVE, value)
-
+#---PVP固定伤害----
+def GetDamagePVP(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_AttrDamagePVP)
+def SetDamagePVP(curPlayer, value):
+    curPlayer.SetDict(ChConfig.Def_PlayerKey_AttrDamagePVP, value)
+    curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_DamagePVP, value, False)
+#---PVP固定伤害减少----
+def GetDamagePVPReduce(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_AttrDamagePVPReduce)
+def SetDamagePVPReduce(curPlayer, value):
+    curPlayer.SetDict(ChConfig.Def_PlayerKey_AttrDamagePVPReduce, value)
+    curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_DamagePVPReduce, value, False)
+#---伤害输出固定值计算对NPC附加----
+def GetDamagePVE(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_AttrDamagePVE)
+def SetDamagePVE(curPlayer, value): 
+    curPlayer.SetDict(ChConfig.Def_PlayerKey_AttrDamagePVE, value)
+    curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_DamagePVE, value, False)
+    
 #---伤害输出计算百分比对玩家附加----
 def GetDamagePerPVP(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_AttrDamagePerPVP)
 def SetDamagePerPVP(curPlayer, value):
@@ -6612,6 +6633,16 @@
 #法宝技能加成:法宝技能攻击附加的伤害百分比
 def GetFabaoHurtPer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_FabaoHurtPer)
 def SetFabaoHurtPer(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_FabaoHurtPer, value)
+# 暴击万分率加成
+def GetSuperHitPer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_SuperHitPer)
+def SetSuperHitPer(curPlayer, value): 
+    curPlayer.SetDict(ChConfig.Def_PlayerKey_SuperHitPer, value)
+    curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_SuperHitPer, value, False)
+# 会心一击万分率加成
+def GetLuckyHitPer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_LuckyHitPer)
+def SetLuckyHitPer(curPlayer, value): 
+    curPlayer.SetDict(ChConfig.Def_PlayerKey_LuckyHitPer, value)
+    curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_LuckyHitPer, value, False)
 
 ## 计算功能背包物品属性 
 #  @param curPlayer 当前玩家

--
Gitblit v1.8.0