From ecec2bde4584f578e822e614548e3ceec830cfef Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 23 十二月 2025 16:04:59 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(修复吕玲绮队友死亡触发怒技回合受限无效bug;7009效果支持纯被动效果技能;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnPassive.py |   21 ++++++++++++++++++---
 1 files changed, 18 insertions(+), 3 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 3dd3612..fc4ec53 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnPassive.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnPassive.py
@@ -20,6 +20,7 @@
 import IpyGameDataPY
 import BattleObj
 import ChConfig
+import TurnSkill
 
 GameWorld.ImportAll("Script\\Skill\\", "PassiveTrigger")
 
@@ -88,14 +89,28 @@
             return
         kwargs["byEffSkill"] = effSkill # 目前用于触发被动技能时,该效果技能提前先设置CD,防止嵌套触发时CD后置才设置,如关羽的怒技追击
         
+    # 没有类型的,纯配被动效果,有类型的技能在 OnUseSkill 统一处理回合次数,这里只处理纯被动效果的
+    useCntLimit = None
+    if not effSkill.GetSkillType(): 
+        useCntLimit = TurnSkill.CheckSkillUseCntLimit(batObj, effSkill)
+        if useCntLimit:
+            return
+        
+    isOK = False
     kwargs["byTriggerWay"] = triggerWay
     for effID in effIDList:
         curEffect = effSkill.GetEffectByID(effID, triggerWay)
         if not curEffect:
             continue
-        DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff, **kwargs)
+        if DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff, **kwargs):
+            isOK = True # 有效果触发就算
         
-    return
+    if isOK:
+        if useCntLimit != None:
+            #GameWorld.DebugLogEx("增加被动效果回合触发次数! skillID=%s", effSkill.GetSkillID())
+            batObj.AddSkillUseCnt(effSkill.GetSkillID())
+            
+    return isOK
 
 def DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff=None, **kwargs):
     effID = curEffect.GetEffectID()
@@ -115,7 +130,7 @@
         if hasattr(effSkill, "GetRemainTime"):
             effSkill.SetRemainTime(cdTime)
             
-    return
+    return True
 
 def __doTriggerPassiveEffectByBuff(turnFight, batObj, tagObj, triggerWay, buffID, effIDList, connSkill=None, connBuff=None, **kwargs):
     buffMgr = batObj.GetBuffManager()

--
Gitblit v1.8.0