hxp
2024-01-18 d37ff1be4e18dee345942f1cac676c616636cb61
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py
@@ -103,12 +103,14 @@
    return layerMaxCnt
## 是否非叠加属性层级
def IsLayerNoPlusAttr(effect): return effect.GetEffectValue(1)/10 == 1
def IsLayerPlusAttr(curBuff):
    ## 是否叠加属性层级buff,可叠加时,属性=单层属性*层级,默认叠加
    hasEffect = SkillCommon.GetSkillEffectByEffectID(curBuff.GetSkill(), ChConfig.Def_Skill_Effect_LayerCnt)
    if not hasEffect:
        return False
    if hasEffect.GetEffectValue(1)/10 == 1:
    if IsLayerNoPlusAttr(hasEffect):
        # 配置不叠加,直接返回False
        return False
    return True
@@ -182,11 +184,13 @@
    # buff层级
    layerMaxCnt = 0
    layerCalc = 0
    layerPlusAttr = False # 层级是提升属性的
    hasEffect = SkillCommon.GetSkillEffectByEffectID(curSkill, ChConfig.Def_Skill_Effect_LayerCnt)
    if hasEffect:
        layerMaxCnt = hasEffect.GetEffectValue(0)   # 能叠加的最大上限
        layerCalc = hasEffect.GetEffectValue(1)%10     # 增加层级还是减少层级 Def_BuffLayer_Add
        layerPlusAttr = not IsLayerNoPlusAttr(hasEffect)
    turnFightTimeline = curObj.GetDictByKey(ChConfig.Def_Obj_Dict_TurnFightTimeline)
    
    #1 检查是否有相同的BUFF,如果有相同的就刷新时间
    for i in range( 0, buffCount ):
@@ -231,6 +235,10 @@
                plusValueList[0] = min(buffValue + plusValueList[0], ChConfig.Def_UpperLimit_DWord)
                
        if buffSkillLV == curSkillLV:
            if layerMaxCnt and curBuff.GetLayer() >= layerMaxCnt and turnFightTimeline and layerPlusAttr:
                #GameWorld.DebugLog("回合制下属性层级达到最大层不再添加! curID=%s,skillID=%s,Layer=%s" % (curObj.GetID(), curSkillID, curBuff.GetLayer()))
                return False
            changeLayer = False
            if layerMaxCnt and curBuff.GetLayer() < layerMaxCnt:
                if layerCalc == ChConfig.Def_BuffLayer_Add: