From 367d5e0a2998c414e58a139e35bf44c206b5da1e Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 25 十二月 2025 10:51:44 +0800
Subject: [PATCH] 165 【挑战】天子的考验-服务端(每日重置榜单)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5504.py |   30 ++++++++++++++++++++++++++----
 1 files changed, 26 insertions(+), 4 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5504.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5504.py
index 33dede7..0813b4e 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5504.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5504.py
@@ -21,15 +21,37 @@
 
 def DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff, **kwargs):
     skillID = curEffect.GetEffectValue(0) # 技能ID,为0时释放本技能
-    checkState = curEffect.GetEffectValue(1) # 可附加验证目标处于xx状态
+    checkStateList = curEffect.GetEffectValue(1) # 可附加验证目标处于xx状态
     checkOwner = curEffect.GetEffectValue(2) # 是否只限归属自己的状态buff
+    isSelfDOTTrigger = curEffect.GetEffectValue(3) # 可附加验证触发的持续buff是否是自己施加的
     
-    if checkState:
+    if checkStateList:
         ownerID = batObj.GetID() if checkOwner else 0
-        if not tagObj.GetBuffManager().FindBuffByState(checkState, ownerID):
-            GameWorld.DebugLogEx("目标不在状态下不触发: tagID=%s,checkState=%s,ownerID=%s", tagObj.GetID(), checkState, ownerID)
+        inState = False
+        tagBuffMgr = tagObj.GetBuffManager()
+        for checkState in checkStateList:
+            if tagBuffMgr.FindBuffByState(checkState, ownerID):
+                inState = True
+                break
+        if not inState:
+            #GameWorld.DebugLogEx("目标不在状态下不触发: tagID=%s,checkStateList=%s,ownerID=%s", tagObj.GetID(), checkStateList, ownerID)
             return
         
+    if isSelfDOTTrigger:
+        if not connBuff:
+            GameWorld.DebugLogEx("5504没有关联的buff不处理!")
+            return
+        curID = batObj.GetID()
+        buffOwnerID = connBuff.GetOwnerID()
+        connBuffID = connBuff.GetBuffID()
+        if curID != buffOwnerID:
+            GameWorld.DebugLogEx("5504非自己的持续buff触发的不处理: connBuffID=%s,buffOwnerID=%s != curID=%s", connBuffID, buffOwnerID, curID)
+            return
+        if checkStateList:
+            if connBuff.GetCurBuffState() not in checkStateList:
+                GameWorld.DebugLogEx("5504非自己指定持续buff触发的不处理: connBuffID=%s,buffState=%s not in %s", connBuffID, connBuff.GetCurBuffState(), checkStateList)
+                return
+            
     if not skillID:
         passiveSkill = effSkill
     else:

--
Gitblit v1.8.0