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/GM/Commands/OpenFunc.py | 4 +++-
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5003.py | 2 +-
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py | 11 ++++++++---
3 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/OpenFunc.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/OpenFunc.py
index a5c4857..a61efa6 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/OpenFunc.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/OpenFunc.py
@@ -22,6 +22,7 @@
import GameFuncComm
import ChConfig
import ShareDefine
+import PlayerOnline
## GM命令执行入口
# @param curPlayer 当前玩家
@@ -43,7 +44,8 @@
else:
openFuncID = cmdList[1] if len(cmdList) > 1 else 0
DoGMOpenFunc(curPlayer, openFuncID)
-
+ PlayerOnline.GetOnlinePlayer(curPlayer).ReCalcAllAttr()
+
PrintFuncOpenState(curPlayer)
return
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5003.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5003.py
index a1df592..d87d0f1 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5003.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5003.py
@@ -22,7 +22,7 @@
remainLayer = max(0, effBuff.GetLayer() - 1)
effBuff.SetLayer(remainLayer)
- TurnBuff.DoBuffProcess(turnFight, batObj, effBuff)
+ TurnBuff.DoBuffProcess(turnFight, batObj, effBuff, costLayer=1)
if remainLayer <= 0:
TurnBuff.DoBuffDel(turnFight, batObj, effBuff)
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