ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnBuff.py
@@ -177,18 +177,26 @@
            nowLayerCnt = buff.GetLayer()
            GameWorld.DebugLogEx("    已经存在该buff: buffID=%s,skillTypeID=%s,ownerID=%s,buffRepeat=%s", buffID, skillTypeID, ownerID, buffRepeat)
            
            resetAddTiming = False # 一般只有覆盖的才重新计算回合,视为重新添加
            remainTime = buffSkill.GetLastTime()
            updLayerCnt = addLayerCnt
            if buffRepeat == 3: # 叠加层级
                updLayerCnt = nowLayerCnt + addLayerCnt
                if maxLayerCnt and updLayerCnt > maxLayerCnt:
                    updLayerCnt = maxLayerCnt
                GameWorld.DebugLogEx("        叠加层级: nowLayerCnt=%s,addLayerCnt=%s,updLayerCnt=%s,maxLayerCnt=%s", nowLayerCnt, addLayerCnt, updLayerCnt, maxLayerCnt)
            elif buffRepeat == 1: # 延长回合
                addTime = buffSkill.GetLastTime()
                remainTime = buff.GetRemainTime() + addTime
                GameWorld.DebugLogEx("        延长回合: addTime=%s,updRemainTime=%s", addTime, remainTime)
            else:
                GameWorld.DebugLogEx("        默认覆盖")
                resetAddTiming = True
                
            # 重置回合、CD、值等
            if resetAddTiming:
            buff.SetAddTiming(batObj.GetTiming())
            buff.SetRemainTime(buffSkill.GetLastTime())
            buff.SetRemainTime(remainTime)
            buff.SetLayer(updLayerCnt)
            buff.SetBuffValueList(buffValueList)
            buff.ResetEffectValueEx()
@@ -528,11 +536,11 @@
    '''
    
    objID = batObj.GetID()
    befHP = batObj.GetHP()
    befMaxHP = batObj.GetMaxHP()
    
    batAttrDict = batObj.ResetBattleEffect()
    
    befHP = batObj.GetHP()
    befMaxHP = batObj.GetMaxHP()
    GameWorld.DebugLogEx("RefreshBuffAttr ID:%s,atk=%s,def=%s,hp=%s/%s,batAttrDict=%s", 
                         objID, batObj.GetAtk(), batObj.GetDef(), befHP, befMaxHP, batAttrDict)
    
@@ -571,11 +579,14 @@
        skillData = buff.GetSkillData()
        
        effExDict = buff.GetEffectExDict()
        for effID, effValueEx in effExDict.items():
        for effCalcInfo, effValueEx in effExDict.items():
            effID, calcType = effCalcInfo
            if effID not in ChConfig.AttrIDList:
                continue
            attrID = effID
            attrValue = effValueEx * layer
            if calcType == 2: # 减少,其他默认增加
                attrValue = -attrValue
            buffsAttrDict[attrID] = buffsAttrDict.get(attrID, 0) + attrValue
            skbufAttrDict[attrID] = skbufAttrDict.get(attrID, 0) + attrValue
            
@@ -631,6 +642,9 @@
        if befHP and aftMaxHP > befMaxHP:
            aftHP += (aftMaxHP - befMaxHP)
            batObj.SetHP(aftHP, isNotify)
        elif aftHP > aftMaxHP:
            aftHP = aftMaxHP
            batObj.SetHP(aftHP, isNotify)
    GameWorld.DebugLogEx("    befHP=%s/%s, aftHP=%s/%s", befHP, befMaxHP, aftHP, aftMaxHP)
    GameWorld.DebugLogEx("    最终属性 ID:%s,atk=%s,def=%s,hp=%s/%s,%s", objID, batObj.GetAtk(), batObj.GetDef(), aftHP, aftMaxHP, batObj.GetBatAttrDict())
    return