From 49070a560884ed182b8fb8ca8d5b515c6305fa7c Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期三, 27 三月 2024 14:45:53 +0800 Subject: [PATCH] 10019 【砍树】回合战斗(优化强化灵兽、弱化灵兽、强化治疗、弱化治疗属性对灵宠治疗技能值的计算规则) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py | 15 +++++++++++---- 1 files changed, 11 insertions(+), 4 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py index c42569e..d73897a 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py +++ b/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) -- Gitblit v1.8.0