10019 【砍树】回合战斗(优化强化灵兽、弱化灵兽、强化治疗、弱化治疗属性对灵宠治疗技能值的计算规则)
1个文件已修改
15 ■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py
@@ -2261,8 +2261,10 @@
    skillPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(userObj, None, curSkill, ChConfig.TriggerType_AddHP)
    
    # 回合制
    curePer = 0 # 治疗加成、强化灵兽
    cureDefPer = 0 # 敌方的弱化治疗、弱化灵兽
    curePer = 0 # 治疗加成
    cureDefPer = 0 # 敌方的弱化治疗
    baseValueAddPer = 0 # 强化灵兽可影响基础值
    baseValueDefPer = 0 # 弱化灵兽可影响基础值
    if userObj.GetDictByKey(ChConfig.Def_Obj_Dict_TurnFightTimeline):
        isPetNPC = PetControl.IsPetNPC(userObj)
        enemyObj = None
@@ -2272,7 +2274,7 @@
            enemyObj = TurnAttack.GetEnemyObj(petOwner)
            
            curePer += GameObj.GetCurePer(petOwner)
            curePer += GameObj.GetPetStrengthenPer(petOwner) # 强化灵兽
            baseValueAddPer += GameObj.GetPetStrengthenPer(petOwner) # 强化灵兽
        else:
            enemyObj = TurnAttack.GetEnemyObj(userObj)
            
@@ -2281,8 +2283,13 @@
        if enemyObj:
            cureDefPer += GameObj.GetCureDefPer(enemyObj)
            if isPetNPC:
                cureDefPer += GameObj.GetPetWeakenPer(enemyObj) # 弱化灵兽
                baseValueDefPer += GameObj.GetPetWeakenPer(enemyObj) # 弱化灵兽
                
    if baseValueAddPer or baseValueDefPer:
        #GameWorld.DebugLog("治疗基值受强化弱化影响变化: cureBaseValue=%s,baseValueAddPer=%s,baseValueDefPer=%s"
        #                   % (cureBaseValue, baseValueAddPer, baseValueDefPer))
        cureBaseValue = cureBaseValue * (ChConfig.Def_MaxRateValue + baseValueAddPer - baseValueDefPer) / float(ChConfig.Def_MaxRateValue)
    cureBaseValue = max(0, cureBaseValue) # 防止基值被弱化为负值,在恢复比例也是负值的情况下负负得正导致可以恢复血量
    skillPer += (curePer - cureDefPer) # 可能负值
    #公式计算治疗值 
    cureHP = int((cureBaseValue * skillPer / float(ChConfig.Def_MaxRateValue) + skillValue + addExValue) * curePercent)