From 8b48c5f51f276546228ea44bc6e870a73e46b845 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 06 一月 2026 14:52:12 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(6011效果支持验证主技能目标;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_6011.py |   28 ++++++++++++++++++++--------
 1 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_6011.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_6011.py
index be6b8d7..ff365f8 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_6011.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_6011.py
@@ -16,11 +16,12 @@
 #-------------------------------------------------------------------------------
 
 import TurnBuff
+import BattleObj
 
 def GetHappenValue(attacker, defender, curEffect, effSkill, effBuff, connSkill, **skillkwargs):
     layerPer = curEffect.GetEffectValue(0) # 每层增加的万分比
     buffStateList = curEffect.GetEffectValue(1) # buff状态 [状态1, 状态2, ...]
-    checkTag = curEffect.GetEffectValue(2) # buff检查自己还是对方: 0-自己,1-对方
+    checkTag = curEffect.GetEffectValue(2) # buff检查自己还是对方: 0-自己,1-对方,2-主技能目标
     isDelBuff = curEffect.GetEffectValue(3) # 触发效果后是否扣除buff
     if not buffStateList:
         return
@@ -31,12 +32,23 @@
         turnFight = skillkwargs["turnFight"]
         
     layerTotal = 0
-    buffObj = defender if checkTag else attacker
-    buffMgr = buffObj.GetBuffManager()
-    for buffState in buffStateList:
-        for buff in buffMgr.FindBuffListByState(buffState)[::-1]:
-            layerTotal += buff.GetLayer()
-            if isDelBuff:
-                TurnBuff.DoBuffDel(turnFight, buffObj, buff, connSkill)
+    if checkTag == 2:
+        objMgr = BattleObj.GetBatObjMgr()
+        for tagID in attacker.GetMainTagIDList():
+            buffObj = objMgr.getBatObj(tagID)
+            if not buffObj:
+                continue
+            buffMgr = buffObj.GetBuffManager()
+            for buffState in buffStateList:
+                for buff in buffMgr.FindBuffListByState(buffState)[::-1]:
+                    layerTotal += buff.GetLayer()
+    else:
+        buffObj = defender if checkTag else attacker
+        buffMgr = buffObj.GetBuffManager()
+        for buffState in buffStateList:
+            for buff in buffMgr.FindBuffListByState(buffState)[::-1]:
+                layerTotal += buff.GetLayer()
+                if isDelBuff:
+                    TurnBuff.DoBuffDel(turnFight, buffObj, buff, connSkill)
                 
     return layerTotal * layerPer

--
Gitblit v1.8.0