From 1a4ac6183072f417c90832baaa8ad8ece44d99b5 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 12 二月 2019 11:39:41 +0800
Subject: [PATCH] 2996 【1.6】boss区域重登,伤血被清空

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4028.py |   21 +++++++++++++++++++--
 1 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4028.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4028.py
index a4d4399..a652780 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4028.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4028.py
@@ -14,20 +14,37 @@
 import ChConfig
 import GameWorld
 import GameObj
-import PlayerControl
-
+import SkillCommon
+import IPY_GameWorld
 
 def CheckCanHappen(attacker, defender, effect, curSkill):
+    if attacker.GetPlayerAction() == IPY_GameWorld.paDie:
+        # 当前已经被处理为死亡,那么就不触发
+        return False
 
+    zhanshaState = attacker.GetDictByKey(ChConfig.Def_PlayerKey_Zhansha)
+    
+    if zhanshaState:
+        # 按位判断,1为斩杀情况下,此技能不可被触发,2为终极斩杀不触发,3为任何斩杀都不触发
+        if (effect.GetEffectValue(2) & pow(2, zhanshaState-1)) != 0:
+            return False
+    
+    
     result = GameWorld.CanHappen(effect.GetEffectValue(0))
     if result:
         GameObj.SetHP(attacker, 1) # 为了避免生命为0时,屏蔽过多逻辑
+        # 提前触发CD, 不然外层无法触发技能的话就不进入CD, 如和平模式
+        if curSkill.GetCoolDownTime():
+            SkillCommon.SetSkillRemainTime(curSkill, 0, GameWorld.GetGameWorld().GetTick(), attacker)
         return True
         
     if effect.GetEffectValue(1):
         #不死血量1,但不触发技能
         if GameWorld.CanHappen(effect.GetEffectValue(1)):
             GameObj.SetHP(attacker, 1)
+            # 提前触发CD, 不然外层无法触发技能的话就不进入CD, 如和平模式
+            if curSkill.GetCoolDownTime():
+                SkillCommon.SetSkillRemainTime(curSkill, 0, GameWorld.GetGameWorld().GetTick(), attacker)
             return False
 
     return False

--
Gitblit v1.8.0