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