hxp
1 天以前 9d5ec7599f3abe0cebb76ce1df3c3b8c4e0aa51e
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
@@ -2154,6 +2154,8 @@
    pmType = GetPMType(atkObj, curSkill)
    ignoreDef = IsIgnoreDef(curSkill)
    batType = curSkill.GetBatType()
    atkMGObj = atkObj.GetTFBatLineup().getMinggeObj()
    defMGObj = defObj.GetTFBatLineup().getMinggeObj()
    
    changeHurtType = TurnPassive.GetTriggerEffectValue(turnFight, atkObj, defObj, ChConfig.PassiveEff_ChangeHurtType, curSkill)
    if not changeHurtType:
@@ -2185,6 +2187,8 @@
    if not isDot:
        aMissRateDef = atkObj.GetBatAttrValue(ChConfig.AttrID_AbsoluteMissRateDef)
        dMissRate = defObj.GetBatAttrValue(ChConfig.AttrID_AbsoluteMissRate)
        if defMGObj:
            dMissRate += defMGObj.GetBatAttrValue(ChConfig.AttrID_AbsoluteMissRate)
        missNum = curSkill.GetTagMissNum(defID)
        if dMissRate > 0:
            missRate = eval(IpyGameDataPY.GetFuncCompileCfg("MissCfg", 1))
@@ -2213,7 +2217,8 @@
        aSuperDamPer = IpyGameDataPY.GetFuncCfg("SuperHitCfg", 2) * 10000
        aSuperDamPer += atkObj.GetBatAttrValue(ChConfig.AttrID_SuperDamPer)
        aSuperDamPer += TurnPassive.GetTriggerEffectValue(turnFight, atkObj, defObj, ChConfig.AttrID_SuperDamPer, curSkill)
        if atkMGObj:
            aSuperDamPer += atkMGObj.GetBatAttrValue(ChConfig.AttrID_SuperDamPer)
        dSuperDamPerDef = defObj.GetBatAttrValue(ChConfig.AttrID_SuperDamPerDef)
        
    if isParry:
@@ -2242,6 +2247,9 @@
    aFinalDamPer += TurnPassive.GetTriggerEffectValue(turnFight, atkObj, defObj, ChConfig.PassiveEff_AddFinalDamPer, curSkill)
    aFinalDamPer += TurnPassive.GetTriggerEffectValue(turnFight, atkObj, defObj, ChConfig.AttrID_FinalDamPer, curSkill)
    
    if defMGObj:
        dFinalDamPerDef += defMGObj.GetBatAttrValue(ChConfig.AttrID_FinalDamPerDef)
    #招架  - 无视攻击方最终增伤百分比
    dZhaojia = defObj.GetBatAttrValue(ChConfig.AttrID_Zhaojia)
    aZhaojiaDef = atkObj.GetBatAttrValue(ChConfig.AttrID_ZhaojiaDef)
@@ -2289,6 +2297,8 @@
            aDOTPer += atkObj.GetBatAttrValue(ChConfig.AttrID_DOTBurnPer)
            dDOTPerDef += defObj.GetBatAttrValue(ChConfig.AttrID_DOTBurnPerDef)
            GameWorld.DebugLogEx("是灼烧: aDOTPer=%s,dDOTPerDef=%s", aDOTPer, dDOTPerDef)
        if atkMGObj:
            aDOTPer += atkMGObj.GetBatAttrValue(ChConfig.AttrID_DOTPer)
            
    #aAddSkillPer = 0 # 技能增伤
    dBatDamPerDef = 0 # 战斗增减伤
@@ -2296,7 +2306,9 @@
    aBatDamPer += TurnPassive.GetTriggerEffectValue(turnFight, atkObj, defObj, ChConfig.AttrID_BatDamPer, curSkill)
    aBatDamPer += TurnPassive.GetTriggerEffectValue(turnFight, atkObj, defObj, ChConfig.PassiveEff_AddBatDamPerByTagLostHP, curSkill)
    aBatDamPer += addBatDamPer
    if atkMGObj:
        aBatDamPer += TurnPassive.GetTriggerEffectValue(turnFight, atkMGObj, defObj, ChConfig.AttrID_BatDamPer, curSkill)
    # 物法增减伤
    if pmType == IPY_GameWorld.ghtMag: # 法伤
        aPMDamPer = atkObj.GetBatAttrValue(ChConfig.AttrID_MagDamPer)
@@ -2320,12 +2332,15 @@
    if batType == ChConfig.TurnBattleType_Combo:
        aComboDamPer = atkObj.GetBatAttrValue(ChConfig.AttrID_ComboDamPer)
        dComboDamPerDef = defObj.GetBatAttrValue(ChConfig.AttrID_ComboDamPerDef)
        if atkMGObj:
            aComboDamPer += atkMGObj.GetBatAttrValue(ChConfig.AttrID_ComboDamPer)
    aPursueDamPer, dPursueDamPerDef = 0, 0 # 追击增伤
    if batType == ChConfig.TurnBattleType_Pursue:
        aPursueDamPer = atkObj.GetBatAttrValue(ChConfig.AttrID_PursueDamPer)
        dPursueDamPerDef = defObj.GetBatAttrValue(ChConfig.AttrID_PursueDamPerDef)
        if atkMGObj:
            aPursueDamPer += atkMGObj.GetBatAttrValue(ChConfig.AttrID_PursueDamPer)
    aPVPDamPer, dPVPDamPerDef = 0, 0 # PVP
    if turnFight.isPVP() > 0:
        aPVPDamPer = atkObj.GetBatAttrValue(ChConfig.AttrID_PVPDamPer)
@@ -2929,6 +2944,12 @@
        connSkillTypeID = buff.GetSkillTypeID()
        damBackPer += TurnPassive.GetTriggerEffectValue(turnFight, defObj, atkObj, ChConfig.PassiveEff_AddDamBackPerByBuffLayer, connSkillTypeID=connSkillTypeID)
        
    defMGObj = defObj.GetTFBatLineup().getMinggeObj()
    if defMGObj:
        mgBuffMgr = defMGObj.GetBuffManager()
        for buff in mgBuffMgr.FindBuffListByState(ChConfig.BatObjState_DamBackShield):
            damBackPer += buff.GetValue1() * max(1, buff.GetLayer())
    if damBackPer <= 0:
        return
    
@@ -2957,7 +2978,10 @@
        # dot施法者已死亡不再吸血
        return
    
    atkMGObj = atkObj.GetTFBatLineup().getMinggeObj()
    aSuckHPPer = atkObj.GetBatAttrValue(ChConfig.AttrID_SuckHPPer)
    if atkMGObj:
        aSuckHPPer += atkMGObj.GetBatAttrValue(ChConfig.AttrID_SuckHPPer)
    aCurePer = atkObj.GetBatAttrValue(ChConfig.AttrID_CurePer)
    
    dSuckHPPerDef = defObj.GetBatAttrValue(ChConfig.AttrID_SuckHPPerDef)