From c5b0df325fe592a22c885a313eee2219d2ae54b5 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期二, 04 六月 2019 20:21:57 +0800
Subject: [PATCH] 6603 【后端】【2.0】增加新版的sp和被动技能 - 被动触发被动的处理

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py |   20 ++++++++++++++++----
 1 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
index 9fb8a60..03a5c1c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
@@ -918,7 +918,7 @@
         if not connSkill.GetFuncType():
             # 非功能类技能,避免死循环
             return 0, 0
-        if SkillCommon.isPassiveSkill(connSkill):
+        if SkillCommon.isPassiveSkill(connSkill) and not PassPassiveLimit(connSkill):
             stopPassiveSkill = True
         
     if SkillCommon.GetUsingPassiveSkill(attacker) and triggerType != ChConfig.TriggerType_BuffState:
@@ -1164,7 +1164,8 @@
     if connSkill and SkillCommon.isPassiveSkill(connSkill):
         #GameWorld.DebugLog("被动技能不能再次触发被动技能")
         #return 0
-        stopPassiveSkill = True
+        if not PassPassiveLimit(connSkill):
+            stopPassiveSkill = True
         
     passiveEff = GetPassiveEffManager().GetPassiveEff(attacker)
     if not passiveEff:
@@ -1390,7 +1391,7 @@
         if not useSkill.GetFuncType():
             # 非功能类技能,避免死循环
             return
-        if SkillCommon.isPassiveSkill(useSkill):
+        if SkillCommon.isPassiveSkill(useSkill) and not PassPassiveLimit(useSkill):
             #GameWorld.DebugLog("被动技能不能再次触发被动技能")
             #return
             stopPassiveSkill = True
@@ -1476,7 +1477,8 @@
     if useSkill and SkillCommon.isPassiveSkill(useSkill):
         #GameWorld.DebugLog("被动技能不能再次触发被动技能")
         #return 0
-        stopPassiveSkill = True
+        if not PassPassiveLimit(useSkill):
+            stopPassiveSkill = True
 
 
     passiveEff = GetPassiveEffManager().GetPassiveEff(attacker)
@@ -1623,3 +1625,13 @@
             skillsDict[skillID] = skillsDict.get(skillID, 0) + 1  
             
     return skillsDict
+
+# 默认情况下 被动不应该再触发(或加强)被动技能,会造成额外触发或者死循环
+# 但也有一些特殊情况 放在此处过滤
+def PassPassiveLimit(useSkill):
+    # 如灼烧是被动技能 但可以被不断的强化
+    if useSkill.GetSkillType() != ChConfig.Def_SkillType_PassiveLstDepBuff:
+        return False
+    return True
+
+

--
Gitblit v1.8.0