From a569a7bb683bb01edb14be508e123ba556305f9f Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 26 十二月 2025 14:00:40 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(曹操所有技能;增加触发方式50-敌方受控时(硬控);)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5023.py |   31 +++++++++++++++++++++----------
 1 files changed, 21 insertions(+), 10 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5023.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5023.py
index 9168eeb..4aaf5f7 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5023.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5023.py
@@ -18,12 +18,13 @@
 import TurnBuff
 import GameWorld
 import TurnSkill
+import TurnPassive
+import ChConfig
 
 def DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff, **kwargs):
     buffState = curEffect.GetEffectValue(0)
     needLayers = curEffect.GetEffectValue(1) # 达到多少层时才消耗
-    delLayers = curEffect.GetEffectValue(2) # 扣除层数
-    exSkillID = curEffect.GetEffectValue(3) # 释放技能ID
+    exSkillID = curEffect.GetEffectValue(2) # 释放技能ID
     if not buffState or not needLayers:
         return
     
@@ -31,16 +32,26 @@
     if not curBuff:
         return
     buffLayers = curBuff.GetLayer()
-    if buffLayers < needLayers:
-        GameWorld.DebugLog("buff状态层数不足不触发! buffState=%s,buffLayers=%s < %s" % (buffState, buffLayers, needLayers))
-        return
-    updLayer = buffLayers - delLayers
-    GameWorld.DebugLog("扣除buff层释放技能: buffState=%s,buffLayers=%s,delLayers=%s" % (buffState, buffLayers, delLayers))
-    if delLayers:
-        TurnBuff.DoBuffLayerChange(turnFight, batObj, curBuff, updLayer, connSkill)
+    reduecLayer = TurnPassive.GetTriggerEffectValue(turnFight, batObj, tagObj, ChConfig.PassiveEff_ReduceLayer5023, connSkillTypeID=curBuff.GetSkillTypeID(), reduceBuffState=buffState)
+    if reduecLayer:
+        needLayers = max(0, needLayers - reduecLayer)
+        GameWorld.DebugLogEx("减少5023效果所需消耗的buff层级! buffState=%s,reduecLayer=%s,needLayers=%s", buffState, reduecLayer, needLayers)
         
+    if buffLayers < needLayers:
+        GameWorld.DebugLogEx("buff状态层数不足不触发! buffState=%s,buffLayers=%s < %s", buffState, buffLayers, needLayers)
+        return
+    delLayers = curEffect.GetEffectValue(3) # 指定消耗层数
+    if not delLayers:
+        delLayers = needLayers
+    updLayer = buffLayers - delLayers
+    GameWorld.DebugLogEx("消耗buff层释放技能: buffState=%s,buffLayers=%s,delLayers=%s,updLayer=%s", buffState, buffLayers, delLayers, updLayer)
+    TurnBuff.DoBuffLayerChange(turnFight, batObj, curBuff, updLayer, connSkill)
+    
     if exSkillID:
-        TurnSkill.OnUsePassiveSkill(turnFight, batObj, tagObj, exSkillID, connBuff=connBuff)
+        noUseXP = curEffect.GetEffectValue(4) # 怒气时是否不消耗怒气
+        if noUseXP:
+            kwargs["noUseXP"] = 1
+        TurnSkill.OnUsePassiveSkill(turnFight, batObj, tagObj, exSkillID, connBuff=connBuff, **kwargs)
             
     return True
 

--
Gitblit v1.8.0