From e6c7b82a671add0de5df48acd34f53715d142981 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 09 一月 2026 16:05:58 +0800
Subject: [PATCH] 271 【内政】古宝系统-服务端(属性ID0不统计;)
---
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