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 ++++++++++++++++++---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py   |    4 ++--
 2 files changed, 20 insertions(+), 5 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()
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
index 002d94a..dadceb8 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
@@ -203,7 +203,7 @@
 
 def CheckSkillUseCntLimit(batObj, useSkill):
     ## 检查技能使用次数是否受限
-    # @return: 是否受限
+    # @return: 是否受限,None-没有受限效果,False-不受限,True-受限了
     if not hasattr(useSkill, "GetEffectByID"):
         return
     effect = useSkill.GetEffectByID(ChConfig.SkillEff_SkillUseCntLimit)
@@ -225,7 +225,7 @@
             GameWorld.DebugLogEx("技能每大回合使用次数受限! skillID=%s,turnUseCnt=%s >= %s", skillID, turnUseCnt, turnUseCntLimit)
             return True
         
-    return
+    return False
 
 def IsNeedSyncSkill(useSkill):
     ## 使用需要同步B427使用技能

--
Gitblit v1.8.0