From 6756646e51ad28afa1abf296a28330b34e159e69 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期四, 11 四月 2019 18:14:23 +0800
Subject: [PATCH] 6442 子 【2.0】装备莲台 / 【后端】【2.0】装备莲台

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py |   17 ++++++++++++++++-
 1 files changed, 16 insertions(+), 1 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 f637097..2c511af 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
@@ -1305,11 +1305,13 @@
                           ChConfig.Def_HurtType_SuperHit:[False, 0, 0],
                           ChConfig.Def_HurtType_Parry:[False, 0, 0],
                           ChConfig.Def_HurtType_Zhuxian:[False, 0, 0],
+                          ChConfig.Def_HurtType_DeadlyHit:[False, 0, 0],
                           }
     
     calcTypeList =  []
     if atkObjType == IPY_GameWorld.gotPlayer:
-        calcTypeList += [ChConfig.Def_HurtType_LuckyHit, ChConfig.Def_HurtType_SuperHit, ChConfig.Def_HurtType_Zhuxian]
+        calcTypeList += [ChConfig.Def_HurtType_LuckyHit, ChConfig.Def_HurtType_SuperHit, 
+                         ChConfig.Def_HurtType_Zhuxian, ChConfig.Def_HurtType_DeadlyHit]
     if defObjType == IPY_GameWorld.gotPlayer:
         calcTypeList += [ChConfig.Def_HurtType_Parry]
     # 暂时只计算玩家
@@ -1323,6 +1325,7 @@
                   ChConfig.Def_HurtType_SuperHit:lambda aObj, dObj, hState:__HurtTypeHappen_SuperHit(aObj, dObj, hState),
                   ChConfig.Def_HurtType_Parry:lambda aObj, dObj, hState:__HurtTypeHappen_Parry(aObj, dObj, hState),
                   #ChConfig.Def_HurtType_Zhuxian:lambda aObj, dObj, hState:__HurtTypeHappen_Zhuxian(aObj, dObj, hState),
+                  ChConfig.Def_HurtType_DeadlyHit:lambda aObj, dObj, hState:__HurtTypeHappen_Deadly(aObj, dObj, hState),
                   }
     
     hadCheckList = [] # 已经处理过的伤害类型列表
@@ -1418,6 +1421,13 @@
 #    if GameWorld.CanHappen(rate):
 #        return True, PlayerControl.GetZhuXianHurtPer(atkObj), 0
 #    return
+
+# 致命一击
+def __HurtTypeHappen_Deadly(atkObj, defObj, happenState):
+    if PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, None, ChConfig.TriggerType_IsDealy):
+        return True, 0, 0
+    return
+
 
 
 def ChangeSkillHurtPer(atkObj, defObj, curSkill, skillPer):
@@ -1934,6 +1944,7 @@
     isSuperHit, aSuperHit, dSuperHitReduce = hurtTypeResultDict[ChConfig.Def_HurtType_SuperHit] # 暴击
     dDamChanceDef = hurtTypeResultDict[ChConfig.Def_HurtType_Parry][2] # 抵御, 大于0代表触发抵御效果
     isZhuxianHit, aZhuxianHurtPer, dZhuxianReducePer = hurtTypeResultDict[ChConfig.Def_HurtType_Zhuxian] # 诛仙一击
+    isDeadlyHit = hurtTypeResultDict[ChConfig.Def_HurtType_DeadlyHit][0] # 致命一击
     
     if PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(defObj, atkObj, None, ChConfig.TriggerType_OneDamage):
         return 1, hurtType
@@ -1994,6 +2005,7 @@
     dHP = GameObj.GetHP(defObj)                # 防守方当前血量
     dMaxHP = GameObj.GetMaxHP(defObj)          # 防守方最大血量
     dIceDef = defObj.GetIceDef()        # 冰防, 元素真防, 玩家及NPC通用
+    dFinalHurtReducePer = 0             # 最终伤害减少百分比 默认0
     
     # 攻击方
     if atkObjType == IPY_GameWorld.gotPlayer:
@@ -2041,6 +2053,8 @@
         dFinalHurtReduce = PlayerControl.GetFinalHurtReduce(defObj) # 最终固定伤害减少
         dBeHurtPer = PlayerControl.GetBeHurtPer(defObj)      # 加深受到伤害百分比
         dFightPower = defObj.GetFightPower()
+        dFinalHurtReducePer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(defObj, atkObj, curSkill, ChConfig.TriggerType_dFinalHurtReducePer)
+        
     else:
         dIgnoreDefRateReduce = 0    # 无视防御比率抗性
         dSkillAtkRateReduce = 0     # 技能攻击力减少
@@ -2050,6 +2064,7 @@
         dBeHurtPer = 0
         dFightPower = NPCCommon.GetSuppressFightPower(defObj)
         
+        
     #攻击字典 { 攻击类型 : '公式' }
     hurtDist = ReadChConfig.GetEvalChConfig('CalcAttackValue')
     

--
Gitblit v1.8.0