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