From ecec2bde4584f578e822e614548e3ceec830cfef Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 23 十二月 2025 16:04:59 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(修复吕玲绮队友死亡触发怒技回合受限无效bug;7009效果支持纯被动效果技能;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5023.py | 35 +++++++++++++++++++++++++----------
1 files changed, 25 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 aef81a4..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,15 +32,29 @@
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
+
+def DoBuffEffectLogic(turnFight, batObj, tagObj, effBuff, curEffect, connSkill, connBuff, **kwargs):
+ effSkill = effBuff.GetSkillData().GetIpyData()
+ return DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff, **kwargs)
--
Gitblit v1.8.0