From a0dd1dc92bb2f6eb7067a624df20a9c326ecde87 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 06 二月 2026 22:14:54 +0800
Subject: [PATCH] 66 【公会】基础主体-服务端(修改A619,A523封包结构;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5022.py |   16 ++++++++++++----
 1 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5022.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5022.py
index e196c5b..87078df 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5022.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5022.py
@@ -23,6 +23,7 @@
     effEx2 = curEffect.GetEffectValue(1) # 支持多个属性
     calcRule = curEffect.GetEffectValue(2) # 附加计算规则,没配置默认增加固定值
     
+    effExAdd = [0, 0, 0] # 某种条件下再额外效果值组 [buff效果ID/属性ID, 值, 计算方式]
     calcLayer = 1 # 没配置的默认1层,相当于固定值
     if calcRule:
         ruleType = calcRule[0]
@@ -30,10 +31,10 @@
         if ruleType == 100:
             country = calcRule[1] if len(calcRule) > 1 else 0
             onlyAlive = calcRule[2] if len(calcRule) > 2 else 0
-            batLineup = batObj.GetBatLineup()
+            batLineup = batObj.GetTFBatLineup()
             countryCnt = 0
             batObjMgr = BattleObj.GetBatObjMgr()
-            for objID in batLineup.posObjIDDict.values():
+            for objID in batLineup.getBatHeroObjIDList():
                 batObj = batObjMgr.getBatObj(objID)
                 if not batObj:
                     continue
@@ -50,14 +51,21 @@
             if tagObj.GetSex() != onlySex:
                 GameWorld.DebugLogEx("5022额外buff对该性别无效: ruleType=%s,onlySex=%s,tagSex=%s,tagID=%s", ruleType, onlySex, tagObj.GetSex(), tagObj.GetID())
                 return
-            
+        # 102 - 同国武将额外提升 参数1:额外提升值
+        elif ruleType == 102:
+            if batObj.GetCountry() == tagObj.GetCountry() and len(calcRule) == 4:
+                effExAdd = calcRule[1:]
+                GameWorld.DebugLogEx("同国武将再额外buff属性: ruleType=%s,country=%s,effExAdd=%s", ruleType, tagObj.GetCountry(), effExAdd)
+                
     if calcLayer <= 0:
         return
     
-    for effEX in [effEx1, effEx2]:
+    for effEX in [effEx1, effEx2, effExAdd]:
         if not isinstance(effEX, list) or len(effEX) != 3:
             continue
         attrID, attrValue, calcType = effEX
+        if not attrID or not attrValue:
+            continue
         if calcLayer > 1:
             attrValue = int(attrValue * calcLayer)
         GameWorld.DebugLogEx("额外buff效果ID/属性ID值: attrID=%s,attrValue=%s,calcType=%s", attrID, attrValue, calcType)

--
Gitblit v1.8.0