From 68c06a7abc6ad911baf81bde36e68019ecd1a11d Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 22 十二月 2025 19:06:15 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(小乔所有技能;增加触发方式53-友方造成持续伤害时;优化效果5022 5507 5509;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5509.py |   36 +++++++++++++++++++++++++++++-------
 1 files changed, 29 insertions(+), 7 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5509.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5509.py
index 7dac9f2..3a733e1 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5509.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5509.py
@@ -24,13 +24,27 @@
     byFriendObj = kwargs.pop("byFriendObj") # 直接取出,防止传递
     
     passiveSkillID = curEffect.GetEffectValue(0) # 技能ID,为0时释放本技能
-    byHeorID = curEffect.GetEffectValue(1) # 仅友军武将ID时有效(验证用,不一定是技能目标)
+    byFriendRule = curEffect.GetEffectValue(1) # 友军验证规则[验证方式, 验证值]
+    tagRule = curEffect.GetEffectValue(2) # 指定目标 0-按技能,1-对击杀方,2-对来源友军,3-对关联对象
     
-    friendHeroID = byFriendObj.GetHeroID()
-    if friendHeroID != byHeorID:
-        GameWorld.DebugLogEx("5509非友军触发来源不处理! friendHeroID=%s != %s", friendHeroID, byHeorID)
-        return
-    
+    if byFriendRule:
+        checkType = byFriendRule[0]
+        # 验证方式 1 - 按武将ID, 值-武将ID
+        if checkType == 1:
+            byHeorID = byFriendRule[1] if len(byFriendRule) > 1 else 0
+            friendHeroID = byFriendObj.GetHeroID()
+            if friendHeroID != byHeorID:
+                GameWorld.DebugLogEx("5509友军武将非触发来源不处理! friendHeroID=%s != %s", friendHeroID, byHeorID)
+                return
+            
+        # 验证方式 2 - 按国家, 值-国家
+        elif checkType == 2:
+            byCountry = byFriendRule[1] if len(byFriendRule) > 1 else 0
+            friendCountry = byFriendObj.GetCountry()
+            if friendCountry != byCountry:
+                GameWorld.DebugLogEx("5509友军国家非触发来源不处理! friendCountry=%s != %s", friendCountry, byCountry)
+                return
+            
     if not passiveSkillID:
         passiveSkillID = effSkill.GetSkillID()
     if not passiveSkillID:
@@ -38,4 +52,12 @@
     
     effectID = curEffect.GetEffectID()
     effSkillID = effSkill.GetSkillID()
-    return TurnSkill.OnUsePassiveSkill(turnFight, batObj, byFriendObj, passiveSkillID, connSkill, effSkillID, effectID, connBuff, **kwargs)
+    toTagObj = None
+    if tagRule == 1:
+        toTagObj = byFriendObj.GetKiller()
+    elif tagRule == 2:
+        toTagObj = byFriendObj
+    elif tagRule == 3:
+        toTagObj = tagObj
+        
+    return TurnSkill.OnUsePassiveSkill(turnFight, batObj, toTagObj, passiveSkillID, connSkill, effSkillID, effectID, connBuff, **kwargs)

--
Gitblit v1.8.0