From cc207773cbedb51c20300a87c62529ace416b086 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 19 九月 2025 19:23:35 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(无敌支持,免疫伤害、dot、控制;小怪技能;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnPassive.py |   32 ++++++++++++++++++--------------
 1 files changed, 18 insertions(+), 14 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnPassive.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnPassive.py
index 9891021..f91000e 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnPassive.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnPassive.py
@@ -35,9 +35,7 @@
     ''' 触发被动效果,可能触发技能、buff,需根据优先级触发
     '''
     passiveEffMgr = batObj.GetPassiveEffManager()
-    if not connSkillTypeID and connSkill:
-        connSkillTypeID = connSkill.GetSkillTypeID()
-    effInfoList = passiveEffMgr.GetPassiveEffByTrigger(triggerWay, connSkillTypeID)
+    effInfoList = passiveEffMgr.GetPassiveEffByTrigger(triggerWay, connSkill, connSkillTypeID)
     if not effInfoList:
         return
     # [["skill/buff", skillID/buffID, effIDList], ...]
@@ -58,6 +56,8 @@
 def __doTriggerPassiveEffectBySkill(turnFight, batObj, tagObj, triggerWay, skillID, effIDList, connSkill=None):
     skillMgr = batObj.GetSkillManager()
     effSkill = skillMgr.FindSkillByID(skillID)
+    if not effSkill and connSkill and connSkill.GetSkillID() == skillID:
+        effSkill = connSkill
     if not effSkill:
         return
     
@@ -114,8 +114,7 @@
     
     triggerWay = ChConfig.TriggerWay_CalcEffValue
     passiveEffMgr = atkObj.GetPassiveEffManager()
-    connSkillTypeID = connSkill.GetSkillTypeID() if connSkill else 0
-    effInfoList = passiveEffMgr.GetPassiveEffByTrigger("%s_%s" % (triggerWay, calcEffID), connSkillTypeID)
+    effInfoList = passiveEffMgr.GetPassiveEffByTrigger("%s_%s" % (triggerWay, calcEffID), connSkill)
     if not effInfoList:
         return 0
     
@@ -130,6 +129,8 @@
         if sign == "skill":
             skillID, effIDList = effInfo[1:]
             effSkill = skillMgr.FindSkillByID(skillID)
+            if not effSkill and connSkill and connSkill.GetSkillID() == skillID:
+                effSkill = connSkill
         elif sign == "buff":
             buffID, effIDList = effInfo[1:]
             effBuff = buffMgr.GetBuff(buffID)
@@ -162,15 +163,18 @@
             if value is None:
                 continue
             
-            #if triggerType in TriggerValueMaxList:
-            #    curValue = max(curValue, value) # 取最大值
-            #elif triggerType in TriggerValueMinList:
-            #    if not curValue:
-            #        curValue = value
-            #    elif value > 0:
-            #        curValue = min(curValue, value) # 取最小值
-            #else:
-            curValue += value
+            if effID in ChConfig.PassiveEffHappenValueList:
+                if value:
+                    return value
+            elif effID in ChConfig.PassiveEffValueMaxList:
+                curValue = max(curValue, value) # 取最大值
+            elif effID in ChConfig.PassiveEffValueMinList:
+                if not curValue:
+                    curValue = value
+                elif value > 0:
+                    curValue = min(curValue, value) # 取最小值
+            else:
+                curValue += value
             #if skillTypeID not in Def_PassiveSkillValueNoCD:
             #    if curSkill.GetCoolDownTime():
             #        SkillCommon.SetSkillRemainTime(curSkill, 0, tick, attacker)

--
Gitblit v1.8.0