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