From 649b36b642546062ab5102b6225b9f78ea72309d Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 04 十一月 2025 18:11:02 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(优化完整战报仅包含战斗相关封包,结算奖励相关如物品,经验,货币,挑战次数等统一放在战报数据B430后同步)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5001.py |   43 +++++++++++++++++--------------------------
 1 files changed, 17 insertions(+), 26 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5001.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5001.py
index c5e745b..d9422e6 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5001.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5001.py
@@ -4,44 +4,35 @@
 #
 ##@package Skill.PassiveTrigger.PassiveEff_5001
 #
-# @todo:buff层数结算持续buff
+# @todo:结算某持续buff回合效果(可以是攻击或治疗)
 # @author hxp
 # @date 2025-08-19
 # @version 1.0
 #
-# 详细描述: buff层数结算持续buff
+# 详细描述: 结算某持续buff回合效果(可以是攻击或治疗)
 #
 #-------------------------------------------------------------------------------
 #"""Version = 2025-08-19 16:00"""
 #-------------------------------------------------------------------------------
 
 import TurnBuff
+import GameWorld
 
-def DoBuffEffectLogic(turnFight, batObj, curBuff, curEffect, connSkill):
-    singleLayerCnt = max(1, curEffect.GetEffectValue(0)) # 单次消耗层数/次数
-    noDel = curEffect.GetEffectValue(1) # 是否不扣除层数,默认0-扣除 1-不扣除
-    isAll = curEffect.GetEffectValue(2) # 是否结算剩余全部层数/次数,默认0结算单次
+def DoBuffEffectLogic(turnFight, batObj, tagObj, effBuff, curEffect, connSkill, connBuff, **kwargs):
+    #结算一次扣除1回合
+    remainTime = effBuff.GetRemainTime()
     
-    skillData = curBuff.GetSkillData()
-    nowLayerCnt = curBuff.GetLayer()
+    TurnBuff.DoBuffProcess(turnFight, batObj, effBuff)
     
-    # 全部层级
-    if isAll:
-        logicCnt = nowLayerCnt / singleLayerCnt
-        updLayerCnt = 0
+    if remainTime == 0:
+        GameWorld.DebugLog("永久buff,不扣回合数")
+        return True
+    
+    remainTime -= 1
+    if remainTime <= 0:
+        TurnBuff.DoBuffDel(turnFight, batObj, effBuff)
     else:
-        logicCnt = 1 # 执行逻辑次数
-        updLayerCnt = nowLayerCnt - singleLayerCnt
+        effBuff.SetRemainTime(remainTime)
+        TurnBuff.SyncBuffRefresh(turnFight, batObj, effBuff)
         
-    for _ in range(logicCnt):
-        TurnBuff.DoBuffProcess(turnFight, batObj, curBuff)
-        
-    # 消耗层级,有限制层级的才进行消耗
-    if not noDel and skillData.GetLayerCnt():
-        curBuff.SetLayer(max(updLayerCnt, 0))
-        if updLayerCnt <= 0:
-            TurnBuff.DoBuffDel(turnFight, batObj, curBuff)
-        else:
-            TurnBuff.SyncBuffRefresh(turnFight, batObj, curBuff)
-            
-    return
+    return True

--
Gitblit v1.8.0