From ab3c1e29995e5bae442a06bbd8c4ae821efe88d0 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 27 十一月 2025 11:11:46 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(优化被动buff触发有效效果逻辑;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnBuff.py | 14 ++++++++------
1 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnBuff.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnBuff.py
index 38074fd..193fe3a 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnBuff.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnBuff.py
@@ -78,7 +78,7 @@
poolMgr.release(useSkill)
return addBuff
-def OnAddBuff(turnFight, batObj, buffSkill, buffOwner=None, bySkill=None, afterLogic=False, isSync=True, setLayerCnt=0):
+def OnAddBuff(turnFight, batObj, buffSkill, buffOwner=None, bySkill=None, afterLogic=False, isSync=True, **kwargs):
skillID = buffSkill.GetSkillID()
bySkill = buffSkill.GetBySkill() if not bySkill else bySkill
relatedSkillID = bySkill.GetSkillID() if bySkill else 0
@@ -114,6 +114,7 @@
skillTypeID = buffSkill.GetSkillTypeID()
buffRepeat = buffSkill.GetBuffRepeat()
+ setLayerCnt = kwargs.get("setLayerCnt", 0)
if setLayerCnt > 0:
addLayerCnt = setLayerCnt
GameWorld.DebugLog("外部直接指定添加的buff层级: setLayerCnt=%s" % setLayerCnt)
@@ -124,6 +125,7 @@
# 可指定来源技能技能才生效,不指定的话默认生效
if not addLayerEff.GetTriggerSrc() or addLayerEff.GetTriggerSrc() == relatedSkillID:
addLayerCnt = GameWorld.GetResultByWeightList(addLayerEff.GetEffectValues(), addLayerCnt)
+ addLayerCnt += TurnPassive.GetTriggerEffectValue(turnFight, buffOwner, batObj, ChConfig.PassiveEff_AddBuffLayer, buffSkill)
maxLayerCnt = buffSkill.GetLayerMax()
if maxLayerCnt:
maxLayerCnt += TurnPassive.GetTriggerEffectValue(turnFight, buffOwner, batObj, ChConfig.PassiveEff_AddBuffLayerMax, buffSkill)
@@ -255,7 +257,7 @@
continue
if curEffect.GetTriggerWay():
- if curEffect.GetTriggerSrc() not in [ChConfig.TriggerSrc_Skill, ChConfig.TriggerSrc_SkillSelf] and refreshType == 1:
+ if refreshType == 1 and curEffect.GetTriggerBuffEnable():
passiveEffMgr.AddBuffPassiveEffect(curBuff, skillData, curEffect)
elif effectID in ChConfig.AttrIDList:
@@ -384,7 +386,7 @@
if triggerWay == ChConfig.TriggerWay_BuffDel:
TurnPassive.OnTriggerPassiveEffect(turnFight, batObj, ChConfig.TriggerWay_BuffDel, connBuff=curBuff)
- if curEffect.GetTriggerSrc() not in [ChConfig.TriggerSrc_Skill, ChConfig.TriggerSrc_SkillSelf]:
+ if curEffect.GetTriggerBuffEnable():
haveBuffPassiveEff = True
elif effectID in ChConfig.AttrIDList:
@@ -455,8 +457,8 @@
effID = effect.GetEffectID()
if effID not in ChConfig.AttrIDList:
continue
- if effect.GetTriggerSrc() not in [ChConfig.TriggerSrc_Skill, ChConfig.TriggerSrc_SkillSelf]:
- # 技能时仅技能有效
+ if effect.GetTriggerSrc() not in [ChConfig.TriggerSrc_Skill]:
+ # 技能属性仅技能时有效
continue
attrID = effID
attrValue = effect.GetEffectValue(0)
@@ -489,7 +491,7 @@
effID = effect.GetEffectID()
if effID not in ChConfig.AttrIDList:
continue
- if effect.GetTriggerSrc() and effect.GetTriggerSrc() not in [ChConfig.TriggerSrc_Buff, ChConfig.TriggerSrc_BuffSelf]:
+ if not (not effect.GetTriggerSrc() or effect.GetTriggerBuffEnable()):
# buff时,不配默认有效,或仅buff有效
continue
attrID = effID
--
Gitblit v1.8.0