xdh
2018-08-27 531ef1778441b79979e3d5c9367a53f407a0c604
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
@@ -1590,10 +1590,10 @@
    #当攻击方为NPC,防守方为玩家时,计算压制等级 及 压制战力
    if atkObjType == IPY_GameWorld.gotNPC and defObjType == IPY_GameWorld.gotPlayer:
        
        if curSkill.GetFuncType() == ChConfig.Def_SkillFuncType_RealmSuppress:
        if curSkill and curSkill.GetFuncType() == ChConfig.Def_SkillFuncType_RealmSuppress:
            # 境界压制技能不对高等级境界玩家产生攻击
            aRealmLV, dRealmLV = GetPVERealmLVs(atkObj, defObj, atkObjType, defObjType) 
            if aRealmLV >= dRealmLV:
            if aRealmLV <= dRealmLV:
                return 0, ChConfig.Def_HurtType_Immune   # 免疫
        
        atkIsBoss = 1 if ChConfig.IsGameBoss(atkObj) else 0
@@ -1668,6 +1668,7 @@
    #------- 攻击方
    aMinAtk = atkObj.GetMinAtk()        # 攻击方最小攻击
    aMaxAtk = atkObj.GetMaxAtk()        # 攻击方最大攻击
    aIceAtk = atkObj.GetIceAtk()        # 冰攻, 元素真伤, 玩家及NPC通用
    aIceAtk += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AddIceAtk)
    #------- 防守方
@@ -1688,6 +1689,7 @@
        aDamagePer += PassiveBuffEffMng.GetValueByPassiveBuffTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AddDamagePer)
        
        aDamagePerPVP = PlayerControl.GetDamagePerPVP(atkObj)     # 外层PVP伤害加成
        aFinalHurtPer = PlayerControl.GetFinalHurtPer(atkObj) # 最外层伤害加成
        aFinalHurt = PlayerControl.GetFinalHurt(atkObj)     # 最终固定伤害
        # 被动增加最终伤害
        aFinalHurt += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AttackAddFinalValue)
@@ -1703,9 +1705,9 @@
            aSkillAtkRate += atkObj.GetSkillAtkRate()
        aDamagePer = 0      # 外层伤害加成
        aDamagePerPVP = 0   # 外层PVP伤害加成
        aFinalHurtPer = 0 # 最外层伤害加成
        aFinalHurt = NPCCommon.GetFinalHurt(atkObj) # 最终固定伤害
        aFightPower = NPCCommon.GetSuppressFightPower(atkObj)
        
    #防守方的类型
    if defObjType == IPY_GameWorld.gotPlayer:
@@ -1742,7 +1744,7 @@
            suppressFPFormula = hurtDist[suppressFormulaKeyFP]
            suppressValueFP = eval(FormulaControl.GetCompileFormula(suppressFormulaKeyFP, suppressFPFormula))
    
    # 境界压制百分比, 仅限PVP
    # 境界压制百分比
    SuppressValueRealmRate = 10000 # 默认值
    suppressRealm = 0
    if atkObjType == IPY_GameWorld.gotPlayer and defObjType == IPY_GameWorld.gotPlayer:
@@ -1797,6 +1799,10 @@
    hurtFormula = hurtDist[hurtFormulaKey]
    hurtValue = int(eval(FormulaControl.GetCompileFormula(hurtFormulaKey, hurtFormula)))
    
    if hurtType == ChConfig.Def_HurtType_Normal and SuppressValueRealmRate > 10000:
        # 存在压制
        return hurtValue, ChConfig.Def_HurtType_RealmSupress
    return hurtValue, hurtType