ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
@@ -1489,7 +1489,7 @@
            reducePer += PlayerControl.GetJobCAtkReducePer(defObj)
        
    if addPer or reducePer:
        addSkillPer = (addPer - reducePer) / 10000.0
        addSkillPer = addPer - reducePer
        skillPer = max(0, skillPer + addSkillPer)
        
    return skillPer
@@ -1502,7 +1502,7 @@
        return skillPer, skillValue
    return findEffect.GetEffectValue(0) / float(ChConfig.Def_MaxRateValue), findEffect.GetEffectValue(1)
    return findEffect.GetEffectValue(0), findEffect.GetEffectValue(1)
# 对NPC伤害的特殊处理,为指定伤害替换 非额外加伤害
# 1. 对非BOSS怪的特殊伤害 2.对XX系怪物的特殊伤害
@@ -1709,24 +1709,8 @@
            hurtValue += atkObj.GetDictByKey(ChConfig.Def_PlayerKey_MoreHurtValue)
            
        elif SkillShell.IsPlayerUseSkill(atkObj, curSkill) and SkillShell.isClientHurtValue(defObj.GetID(), defObjType):
            # 缓存单次攻击中的最大伤害,被动技能概率性增加伤害,此处放大最大伤害
            hurtValue = atkObj.GetDictByKey(ChConfig.Def_PlayerKey_ClientMaxHurtValue)
            if hurtValue == 0:
                #hurtValue, hurtType = CalcHurtHP(atkObj, defObj, curSkill, atkSkillValue, atkSkillPer, tick, None, True)
                # 理论伤害一致, 多加点预算伤害避免计算误差
                #hurtValue = min(ShareDefine.Def_UpperLimit_DWord, hurtValue+10)
                #atkObj.SetDict(ChConfig.Def_PlayerKey_ClientMaxHurtValue, int(hurtValue*1.2))
                hurtValue = atkObj.GetMaxAtk()*atkSkillPer*40   # 加入被动计算不准确改成估算
            clientValue, hurtType = SkillShell.GetClientHurtByObj(defObj.GetID(), defObjType)
            if clientValue <= hurtValue:
                hurtValue = clientValue
            else:
                # 外挂最高伤害基本防范
                GameWorld.DebugLog(atkObj, "%s----客户端伤害 %s 服务端最高伤害 %s"%(atkObj.GetID(), [clientValue, hurtType], hurtValue))
                hurtValue = int(hurtValue*0.8)
            #GameWorld.DebugAnswer(atkObj, "客户端伤害 %s 服务端伤害 %s"%([defObj.GetID(), clientValue, hurtType], hurtValue))
            hurtValue = min(clientValue, atkObj.GetMaxAtk()*200)    # 防下伤害可能上限
        else:
            hurtValue, hurtType = CalcHurtHP(atkObj, defObj, curSkill, atkSkillValue, atkSkillPer, tick, orgAtkObj=attacker)
        
@@ -2102,10 +2086,10 @@
    # --- 新增普通攻击的数值和技能攻击的数值,根据类型各自计算
    if atkObjType == IPY_GameWorld.gotPlayer:
        if not curSkill or curSkill.GetFuncType() == ChConfig.Def_SkillFuncType_NormalAttack:
            atkSkillPer += float(PlayerControl.GetNormalHurtPer(atkObj))/ChConfig.Def_MaxRateValue
            atkSkillPer += PlayerControl.GetNormalHurtPer(atkObj)
            atkSkillValue += PlayerControl.GetNormalHurt(atkObj)
        elif curSkill.GetFuncType() in [ChConfig.Def_SkillFuncType_FbSkill, ChConfig.Def_SkillFuncType_FbPassiveSkill]:
            atkSkillPer += float(PlayerControl.GetFabaoHurtPer(atkObj))/ChConfig.Def_MaxRateValue
            atkSkillPer += PlayerControl.GetFabaoHurtPer(atkObj)
            atkSkillValue += PlayerControl.GetFabaoHurt(atkObj)
            
    #  atkSkillPer 包含普攻,所以不是用技能增强处理
@@ -2153,12 +2137,9 @@
        aDamagePVP = PlayerControl.GetDamagePVP(atkObj)     # PVP固定伤害
        aDamagePVE = PlayerControl.GetDamagePVE(atkObj)     # PVE固定伤害
        
        # 被动技能增加伤害
        #aDamagePVP += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AddDamagePer)
        #aDamagePVP += PassiveBuffEffMng.GetValueByPassiveBuffTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AddDamagePer)
        aNPCHurtAddPer = PlayerControl.GetNPCHurtAddPer(atkObj)     # PVE伤害加成
        aDamagePerPVP = PlayerControl.GetDamagePerPVP(atkObj)     # 外层PVP伤害加成
        aDamagePerPVP += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AddPVPDamagePer)
        aFinalHurtPer = PlayerControl.GetFinalHurtPer(atkObj) # 最外层伤害加成, 可能为负值
        aFinalHurtPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AttackAddFinalPer)