From 0ff8e21c92b39adfdf062b40c4e0147213bba70a Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期一, 26 十一月 2018 23:18:29 +0800 Subject: [PATCH] 4923 【后端】【1.3】神兵技能 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py | 19 +++++++++++++++++-- 1 files changed, 17 insertions(+), 2 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 3c4b876..b7f7d9f 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 @@ -1503,7 +1503,7 @@ return True # 攻击时防守方神兵护盾的处理 -def CalcAtkProDef(atkObj, defObj, hurtValue): +def CalcAtkProDef(atkObj, defObj, hurtValue, curSkill, tick): if defObj.GetGameObjType() != IPY_GameWorld.gotPlayer: return hurtValue @@ -1518,6 +1518,9 @@ PlayerControl.SetProDef(defObj, curProDef - absortValue) + # 被动技能触发 + defObj.SetDict(ChConfig.Def_PlayerKey_GodWeaponBeforeProDef, curProDef) + PassiveBuffEffMng.OnPassiveSkillTrigger(defObj, atkObj, curSkill, ChConfig.TriggerType_ProDefValue, tick) return hurtValue - absortValue ## 计算伤血值 @@ -1567,7 +1570,19 @@ hurtValue, hurtType = CalcHurtHP(atkObj, defObj, curSkill, atkSkillValue, atkSkillPer, tick, orgAtkObj=attacker) # 优先处理神兵护盾 - hurtValue = CalcAtkProDef(atkObj, defObj, hurtValue) + hurtValue = CalcAtkProDef(atkObj, defObj, hurtValue, curSkill, tick) + + # 伤害吸收盾回血型 + buffManager = defObj.GetBuffState() + curEffect, plusValue, skillID = BuffSkill.FindBuffEffectPlusByEffectID(buffManager, ChConfig.Def_Skill_Effect_AbsorbShieldXMZJ) + if skillID: + absortValue = hurtValue*curEffect.GetEffectValue(0)/ShareDefine.Def_MaxRateValue + if absortValue: + hurtValue -= absortValue + findBuff = SkillCommon.FindBuffByID(defObj, skillID)[0] + if findBuff: + # 用于回血 + findBuff.SetValue(int(findBuff.GetValue() + absortValue)) if defObj.GetDictByKey(ChConfig.Def_PlayerKey_AbsorbShieldValue): # 麒麟护盾吸收伤害,将抵消的伤害存储 -- Gitblit v1.8.0