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/Attack/AttackLogic/AttackCommon.py |   44 ++++++++++++++++++++++++--------------------
 1 files changed, 24 insertions(+), 20 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
index 505daaf..9cafb12 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
@@ -1264,7 +1264,7 @@
 # Def_HurtType_SuperHit, 
 # Def_HurtType_Miss, 
 # ) = range(0, 3)
-# #类型: 0-普通 1-致命一击 2-躲闪
+# #类型: 0-普通 1-暴击 2-躲闪
 #===============================================================================
 
 ## 伤害结构体类
@@ -1365,11 +1365,11 @@
 
 
 def __HurtTypeHappen_LuckyHit(atkObj, defObj, happenState):
-    ''' 判断伤害类型是否发生 - 幸运一击
-    @return: 是否触发, 触发时伤害计算值, 触发时防守方的伤害减免值
+    ''' 判断伤害类型是否发生 - 会心一击
+    @return: 是否触发, 触发时伤害计算固定值, 触发时防守方的伤害减免固定值
     '''
     if IsHappenStateByType(happenState, ChConfig.Def_Skill_HappenState_LuckyHit):
-        return True, atkObj.GetLuckyHitVal(), PlayerControl.GetLuckyHitReducePer(defObj)
+        return True, atkObj.GetLuckyHitVal(), PlayerControl.GetLuckyHitReduce(defObj)
     
     aLuckyHitRate = atkObj.GetLuckyHitRate()
     dLuckyHitRateReduce = PlayerControl.GetLuckyHitRateReduce(defObj)
@@ -1379,16 +1379,16 @@
     if atkLuckyHitRate <= 0:
         return
     if GameWorld.CanHappen(atkLuckyHitRate):
-        return True, atkObj.GetLuckyHitVal(), PlayerControl.GetLuckyHitReducePer(defObj)
+        return True, atkObj.GetLuckyHitVal(), PlayerControl.GetLuckyHitReduce(defObj)
     return
 
 def __HurtTypeHappen_SuperHit(atkObj, defObj, happenState):
     ''' 判断伤害类型是否发生 - 暴击
-    @return: 是否触发, 触发时伤害计算值, 触发时防守方的伤害减免值
+    @return: 是否触发, 触发时伤害计算固定值, 触发时防守方的伤害减免固定值
     '''
     
     if IsHappenStateByType(happenState, ChConfig.Def_Skill_HappenState_SuperHit):
-        return True, atkObj.GetSuperHit(), PlayerControl.GetSuperHitReducePer(defObj)
+        return True, atkObj.GetSuperHit(), PlayerControl.GetSuperHitReduce(defObj)
     
     aSuperHitRate = atkObj.GetSuperHitRate()
     dSuperHitRateReduce = PlayerControl.GetSuperHitRateReduce(defObj)
@@ -1398,7 +1398,7 @@
     if superHitRate <= 0:
         return
     if GameWorld.CanHappen(superHitRate):
-        return True, atkObj.GetSuperHit(), PlayerControl.GetSuperHitReducePer(defObj)
+        return True, atkObj.GetSuperHit(), PlayerControl.GetSuperHitReduce(defObj)
     return
 
 def __HurtTypeHappen_Parry(atkObj, defObj, happenState):
@@ -2011,7 +2011,9 @@
     dDamChanceDef = hurtTypeResultDict[ChConfig.Def_HurtType_Parry][2] # 抵御, 大于0代表触发抵御效果
     isZhuxianHit, aZhuxianHurtPer, dZhuxianReducePer = hurtTypeResultDict[ChConfig.Def_HurtType_Zhuxian] # 诛仙一击
     isDeadlyHit = hurtTypeResultDict[ChConfig.Def_HurtType_DeadlyHit][0] # 致命一击
-    
+    aSuperHitPer = PlayerControl.GetSuperHitPer(atkObj) if isSuperHit else 0    # 暴击伤害加成万分率
+    aLuckyHitPer = PlayerControl.SetLuckyHitPer(atkObj) if isLuckyHit else 0   # 会心一击伤害加成万分率
+
     if PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(defObj, atkObj, None, ChConfig.TriggerType_OneDamage):
         return 1, hurtType
     
@@ -2058,7 +2060,7 @@
 
 
     if isLuckyHit:
-        # 会心一击时增加会心伤害百分比 
+        # 会心一击时增加会心伤害固定值 
         aLuckyHit += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_LuckyHit)
         aLuckyHit -= PassiveBuffEffMng.GetValueByPassiveBuffTriggerType(defObj, atkObj, curSkill, ChConfig.TriggerType_BeLuckyHitSubPer)
         aLuckyHit = max(aLuckyHit, 0)
@@ -2079,16 +2081,17 @@
     dHP = GameObj.GetHP(defObj)                # 防守方当前血量
     dMaxHP = GameObj.GetMaxHP(defObj)          # 防守方最大血量
     dIceDef = defObj.GetIceDef()        # 冰防, 元素真防, 玩家及NPC通用
-    dFinalHurtReducePer = 0             # 最终伤害减少百分比 默认0
     
     # 攻击方
     if atkObjType == IPY_GameWorld.gotPlayer:
         aIgnoreDefRate = atkObj.GetIgnoreDefRate()  # 无视防御比率
         aSkillAtkRate = atkObj.GetSkillAtkRate()    # 技能攻击力加成
-        aDamagePer = PlayerControl.GetDamagePer(atkObj)     # 外层伤害加成
+        aDamagePVP = PlayerControl.GetDamagePVP(atkObj)     # PVP固定伤害
+        aDamagePVE = PlayerControl.GetDamagePVE(atkObj)     # PVE固定伤害
+        
         # 被动技能增加伤害
-        aDamagePer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AddDamagePer)
-        aDamagePer += PassiveBuffEffMng.GetValueByPassiveBuffTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AddDamagePer)
+        #aDamagePVP += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AddDamagePer)
+        #aDamagePVP += PassiveBuffEffMng.GetValueByPassiveBuffTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AddDamagePer)
         
         aNPCHurtAddPer = PlayerControl.GetNPCHurtAddPer(atkObj)     # PVE伤害加成
         aDamagePerPVP = PlayerControl.GetDamagePerPVP(atkObj)     # 外层PVP伤害加成
@@ -2111,8 +2114,9 @@
             aSkillAtkRate += atkObj.GetSkillAtkRate()
             
         aNPCHurtAddPer = 0  # PVE伤害加成
-        aDamagePer = 0      # 外层伤害加成
         aDamagePerPVP = 0   # 外层PVP伤害加成
+        aDamagePVP = 0      # PVP固定伤害
+        aDamagePVE = 0      # PVE固定伤害
         aFinalHurt = NPCCommon.GetFinalHurt(atkObj) # 最终固定伤害
         aFightPower = NPCCommon.GetSuppressFightPower(atkObj)
         
@@ -2120,24 +2124,24 @@
     if defObjType == IPY_GameWorld.gotPlayer:
         dIgnoreDefRateReduce = PlayerControl.GetIgnoreDefRateReduce(defObj)  # 无视防御比率抗性
         dSkillAtkRateReduce = PlayerControl.GetSkillAtkRateReduce(defObj) # 技能攻击力减少
-        dDamReduce = defObj.GetDamageReduceRate() # 外层减伤
-        dDamReduce += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(defObj, atkObj, None, ChConfig.TriggerType_DamageReduce)
+        dDamagePVPReduce = PlayerControl.GetDamagePVPReduce(defObj) # PVP固定减伤
+        #dDamReduce += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(defObj, atkObj, None, ChConfig.TriggerType_DamageReduce)
         dDamagePerPVPReduce = PlayerControl.GetDamagePerPVPReduce(defObj) # 外层PVP减伤
         dDamagePerPVPReduce += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(defObj, atkObj, None, ChConfig.TriggerType_DamageReducePVP)
         dFinalHurtReduce = PlayerControl.GetFinalHurtReduce(defObj) # 最终固定伤害减少
         dBeHurtPer = PlayerControl.GetBeHurtPer(defObj)      # 加深受到伤害百分比
         dFightPower = defObj.GetFightPower()
-        dFinalHurtReducePer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(defObj, atkObj, curSkill, ChConfig.TriggerType_dFinalHurtReducePer)
+        dFinalHurtReducePer = PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(defObj, atkObj, curSkill, ChConfig.TriggerType_dFinalHurtReducePer)
         
     else:
         dIgnoreDefRateReduce = 0    # 无视防御比率抗性
         dSkillAtkRateReduce = 0     # 技能攻击力减少
-        dDamReduce = 0              # 外层减伤 
+        dDamagePVPReduce = 0        # PVP固定减伤
         dDamagePerPVPReduce = 0     # 外层PVP减伤
         dFinalHurtReduce = 0        # 最终固定伤害减少
         dBeHurtPer = 0
         dFightPower = NPCCommon.GetSuppressFightPower(defObj)
-        
+        dFinalHurtReducePer = 0             # 最终伤害减少百分比 默认0
         
     #攻击字典 { 攻击类型 : '公式' }
     hurtDist = ReadChConfig.GetEvalChConfig('CalcAttackValue')

--
Gitblit v1.8.0