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