hxp
2026-01-04 42e777349b6f1a57284419fec3e5eb7d62a6dc5c
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5008.py
@@ -17,6 +17,8 @@
import TurnBuff
import GameWorld
import TurnPassive
import ChConfig
import random
def DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff, **kwargs):
@@ -40,21 +42,26 @@
        return
    
    random.shuffle(tagBuffList) # 随机
    changeToLayer = 0
    if changeLayers < len(tagBuffList):
        # 不足时才额外取其他被动增加的
        effSkillTypeID = effSkill.GetSkillTypeID()
        changeLayers += TurnPassive.GetTriggerEffectValue(turnFight, batObj, tagObj, ChConfig.PassiveEff_AddChangeLayers5008, connSkillTypeID=effSkillTypeID, **kwargs)
    remainLayers = changeLayers # 剩余可转层数
    changeToLayer = 0 # 最终转层数
    for tagBuff in tagBuffList:
        if changeLayers <= 0:
        if remainLayers <= 0:
            break
        skillID = tagBuff.GetSkillID()
        curLayer = max(1, tagBuff.GetLayer()) # 至少算1层
        if curLayer > changeLayers:
            updLayer = curLayer - changeLayers
            changeLayers = 0
            changeToLayer += changeLayers
        if curLayer > remainLayers:
            updLayer = curLayer - remainLayers
            changeToLayer += remainLayers
            remainLayers = 0
        else:
            updLayer = 0
            changeLayers -= curLayer
            changeToLayer += curLayer
            remainLayers -= curLayer
        GameWorld.DebugLog("转化buff: tagID=%s,tagBuffID=%s,skillID=%s,curLayer=%s,updLayer=%s,changeToLayer=%s" 
                           % (tagObj.GetID(), tagBuff.GetBuffID(), skillID, curLayer, updLayer, changeToLayer))
        TurnBuff.DoBuffLayerChange(turnFight, tagObj, tagBuff, updLayer, connSkill)