hxp
2025-12-17 d629712afdd7ff097902578febbc93bf1bec490e
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_Attr.py
@@ -26,6 +26,14 @@
    if calcType == 10:
        buffStateList = curEffect.GetEffectValue(2)
        maxValue = curEffect.GetEffectValue(3) # 累计最高增加值
        checkBatType = curEffect.GetEffectValue(4) # 验证攻击类型 0-不验证;1-连击;2-追击;3-反击
        if checkBatType:
            if not connSkill:
                return
            if connSkill.GetBatType() != checkBatType:
                #GameWorld.DebugLog("额外属性效果非该战斗类型不触发: checkBatType=%s,skillBatType=%s" % (checkBatType, connSkill.GetBatType()))
                return
        layerTotal = 0
        buffMgr = defender.GetBuffManager()
        for buffState in buffStateList:
@@ -34,8 +42,17 @@
        attrValue *= layerTotal
        if maxValue and attrValue > maxValue:
            attrValue = maxValue
        GameWorld.DebugLog("按对方buff层级增加属性: attrID=%s,attrValue=%s,buffStateList=%s,layerTotal=%s,maxValue=%s"
                           % (attrID, attrValue, buffStateList, layerTotal, maxValue))
        GameWorld.DebugLogEx("按对方buff层级增加属性: attrID=%s,attrValue=%s,buffStateList=%s,layerTotal=%s,maxValue=%s,checkBatType=%s",
                             attrID, attrValue, buffStateList, layerTotal, maxValue, checkBatType)
    # 11-根据自己已损失血量百分比
    elif calcType == 11:
        curHP = attacker.GetHP()
        maxHP = attacker.GetMaxHP()
        lostPer = int((maxHP - curHP) / float(maxHP) * 100) # 只算取整
        attrValue = lostPer * attrValue
        GameWorld.DebugLog("按自身已损失生命百分比增加属性: attrID=%s,attrValue=%s,curHP=%s/%s,lostPer=%s"
                           % (attrID, attrValue, curHP, maxHP, lostPer))
    else:
        checkInStateList = curEffect.GetEffectValue(2)
        if checkInStateList: