From e42a83be74a36868aeaf8e43ee20babb38e0397b Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期日, 14 十二月 2025 18:58:12 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(孙鲁育所有技能;增加效果6025)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_6025.py |   37 +++++++++++++++++++++++++++++++++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnPassive.py                    |    1 +
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py                      |   13 +++++++++++--
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py                             |    1 +
 4 files changed, 50 insertions(+), 2 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index 1b60b04..660534b 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -4044,6 +4044,7 @@
 PassiveEff_IgnoreShield = 6022 # 穿盾效果,无视护盾值
 PassiveEff_ChangeHurtTypeByBuff = 6023 # 变更本次伤害类型(可验证由xx状态buff触发的)
 PassiveEff_ReduceLayer5023 = 6024 # 减少5023效果所需的buff状态层数
+PassiveEff_AddCureMulti = 6025 # 提升治疗技能最终治疗效果(根据身上buff状态层数)
 
 # 被动效果ID有触发值时就返回的
 PassiveEffHappenValueList = [PassiveEff_ChangeHurtType, PassiveEff_ImmuneControlBuff, PassiveEff_MustSuperHit, PassiveEff_SkillInvalid, 
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_6025.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_6025.py
new file mode 100644
index 0000000..1f5b94e
--- /dev/null
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_6025.py
@@ -0,0 +1,37 @@
+#!/usr/bin/python
+# -*- coding: GBK -*-
+#-------------------------------------------------------------------------------
+#
+##@package Skill.PassiveTrigger.PassiveEff_6025
+#
+# @todo:提升治疗技能最终治疗效果(根据身上buff状态层数)
+# @author hxp
+# @date 2025-12-14
+# @version 1.0
+#
+# 详细描述: 提升治疗技能最终治疗效果(根据身上buff状态层数)
+#
+#-------------------------------------------------------------------------------
+#"""Version = 2025-12-14 19:00"""
+#-------------------------------------------------------------------------------
+
+import TurnBuff
+
+
+def GetHappenValue(attacker, defender, curEffect, effSkill, effBuff, connSkill, **skillkwargs):
+    if "turnFight" not in skillkwargs:
+        return
+    turnFight = skillkwargs["turnFight"]
+    
+    addPerLayer = curEffect.GetEffectValue(0) # 每层提升百分比
+    buffState = curEffect.GetEffectValue(1) # 攻击方身上的buff状态
+    isDelBuff = curEffect.GetEffectValue(2) # 触发效果后是否扣除buff
+    
+    layerTotal = 0
+    buffMgr = attacker.GetBuffManager()
+    for buff in buffMgr.FindBuffListByState(buffState):
+        layerTotal += buff.GetLayer()
+        if isDelBuff:
+            TurnBuff.DoBuffDel(turnFight, attacker, buff, connSkill)
+            
+    return layerTotal * addPerLayer
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnPassive.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnPassive.py
index 1609937..2b12021 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnPassive.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnPassive.py
@@ -174,6 +174,7 @@
             callFunc = GameWorld.GetExecFunc(PassiveTrigger, "%s.%s" % (pyName, "GetHappenValue"))
             if not callFunc:
                 continue
+            kwargs["turnFight"] = turnFight
             value = callFunc(atkObj, defObj, effect, effSkill, effBuff, connSkill, **kwargs)
             if value is None:
                 continue
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
index 9b56267..6046bb0 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
@@ -845,8 +845,13 @@
     
     calcCureResults = []
     relativeObj = GetRelativeObj(turnFight, curBatObj)
+    multiValue = 1
+    addCureMulti = TurnPassive.GetTriggerEffectValue(turnFight, curBatObj, None, ChConfig.PassiveEff_AddCureMulti, useSkill)
+    if addCureMulti:
+        multiValue += addCureMulti / 100.0
+        
     for tagBatObj in useSkill.GetTagObjList():
-        cureHP = CalcCureHP(turnFight, curBatObj, tagBatObj, useSkill, relativeObj=relativeObj)
+        cureHP = CalcCureHP(turnFight, curBatObj, tagBatObj, useSkill, relativeObj=relativeObj, multiValue=multiValue)
         poisonCureOwner = GetPoisonCureOwner(tagBatObj)
         calcCureResults.append([tagBatObj, cureHP, poisonCureOwner])
         
@@ -2588,7 +2593,7 @@
     TurnAttack.AddTurnObjCureHP(atkObj, atkObj, suckHP, cureHP)
     return
 
-def CalcCureHP(turnFight, userObj, tagObj, curSkill, relativeObj=None):
+def CalcCureHP(turnFight, userObj, tagObj, curSkill, relativeObj=None, multiValue=1):
     ''' 计算治疗值
     '''
     
@@ -2629,6 +2634,10 @@
         cureHP += cureHPEx
         GameWorld.DebugLogEx("    额外治疗值(%s): cureType=%s,baseValue=%s,skillPer=%s,cureHP=%s", cureHPEx, cureType, baseValue, skillPer, cureHP)
         
+    if multiValue and multiValue != 1:
+        cureHP = int(cureHP * multiValue)
+        GameWorld.DebugLogEx("    治疗倍值: cureHP=%s,multiValue=%s", cureHP, multiValue)
+        
     hurtShareEff = curSkill.GetEffectByID(ChConfig.SkillEff_HurtShare)
     if hurtShareEff:
         tagCnt = max(1, len(curSkill.GetTagObjList()))

--
Gitblit v1.8.0