hxp
7 天以前 ffb198b68f7e75f4fb2046189f1e7b2992d2ebac
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5001.py
@@ -4,12 +4,12 @@
#
##@package Skill.PassiveTrigger.PassiveEff_5001
#
# @todo:buff层数结算持续buff
# @todo:结算某持续buff回合效果(可以是攻击或治疗)
# @author hxp
# @date 2025-08-19
# @version 1.0
#
# 详细描述: buff层数结算持续buff
# 详细描述: 结算某持续buff回合效果(可以是攻击或治疗)
#
#-------------------------------------------------------------------------------
#"""Version = 2025-08-19 16:00"""
@@ -17,31 +17,16 @@
import TurnBuff
def DoBuffEffectLogic(turnFight, batObj, tagObj, curBuff, curEffect, connSkill):
    singleLayerCnt = max(1, curEffect.GetEffectValue(0)) # 单次消耗层数/次数
    noDel = curEffect.GetEffectValue(1) # 是否不扣除层数,默认0-扣除 1-不扣除
    isAll = curEffect.GetEffectValue(2) # 是否结算剩余全部层数/次数,默认0结算单次
def DoBuffEffectLogic(turnFight, batObj, tagObj, effBuff, curEffect, connSkill):
    #结算一次扣除1回合
    remainTime = max(0, effBuff.GetRemainTime() - 1)
    effBuff.SetRemainTime(remainTime)
    
    skillData = curBuff.GetSkillData()
    nowLayerCnt = curBuff.GetLayer()
    TurnBuff.DoBuffProcess(turnFight, batObj, effBuff)
    
    # 全部层级
    if isAll:
        logicCnt = nowLayerCnt / singleLayerCnt
        updLayerCnt = 0
    if remainTime <= 0:
        TurnBuff.DoBuffDel(turnFight, batObj, effBuff)
    else:
        logicCnt = 1 # 执行逻辑次数
        updLayerCnt = nowLayerCnt - singleLayerCnt
        TurnBuff.SyncBuffRefresh(turnFight, batObj, effBuff)
        
    for _ in range(logicCnt):
        TurnBuff.DoBuffProcess(turnFight, batObj, curBuff)
    # 消耗层级,有限制层级的才进行消耗
    if not noDel and skillData.GetLayerCnt():
        curBuff.SetLayer(max(updLayerCnt, 0))
        if updLayerCnt <= 0:
            TurnBuff.DoBuffDel(turnFight, batObj, curBuff)
        else:
            TurnBuff.SyncBuffRefresh(turnFight, batObj, curBuff)
    return
    return True