From 18af22c697cfc551ac97e5e625930dd7cdc8ecbb Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 26 十一月 2025 10:10:06 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(修复5003效果消耗buff层持续伤害扣血bug;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

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 c505673..7c3b80c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
@@ -2534,10 +2534,15 @@
     dMaxHP = defObj.GetMaxHP()
     GameWorld.DebugLog("结算dot: atkID=%s,defID=%s,buffID=%s,skillID=%s,ownerID=%s,hurtValue=%s,hurtTypes=%s,dHP=%s/%s" 
                        % (atkID, defID, buffID, skillID, ownerID, hurtValue, hurtTypes, dHP, dMaxHP))
+    costLayer = kwargs.get("costLayer")
     layer = curBuff.GetLayer()
-    if layer > 0:
-        hurtValue *= layer
-        GameWorld.DebugLog("    多层buff伤害: hurtValue=%s,layer=%s" % (hurtValue, layer))
+    if costLayer > 0:
+        hurtValue *= min(costLayer, max(1, layer))
+        GameWorld.DebugLog("    消耗buff层伤害: hurtValue=%s,costLayer=%s,layer=%s" % (hurtValue, costLayer, layer))
+    else:
+        if layer > 0:
+            hurtValue *= layer
+            GameWorld.DebugLog("    多层buff伤害: hurtValue=%s,layer=%s" % (hurtValue, layer))
     if "FinalDamPer" in kwargs:
         FinalDamPer = kwargs["FinalDamPer"]
         hurtValue *= (10000 + FinalDamPer) / 10000.0

--
Gitblit v1.8.0