From 7dafc3a10c56f44ea6ab7fbdbdadd29ba679e1be Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 23 十二月 2025 15:30:09 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(步练师所有技能; 5023效果增加可指定消耗层级或不消耗怒气;增加效果6031;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5023.py | 12 +++++++++---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_6031.py | 33 +++++++++++++++++++++++++++++++++
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnBuff.py | 14 ++++++++------
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py | 1 +
4 files changed, 51 insertions(+), 9 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index 97ad37d..378f9ed 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -4074,6 +4074,7 @@
PassiveEff_AddChangeLayers5008 = 6028 # 增减5008效果的转化层数
PassiveEff_AddBatDamPerByLayer = 6029 # 提升技能战斗伤害(根据身上buff状态层数)
PassiveEff_LostHPProtect = 6030 # 掉血上限保护
+PassiveEff_ImmuneControlDepBuff = 6031 # 某种buff状态层达到x时免疫减益控制效果
# 被动效果ID有触发值时就返回的
PassiveEffHappenValueList = [PassiveEff_ChangeHurtType, PassiveEff_ImmuneControlBuff, PassiveEff_MustSuperHit, PassiveEff_SkillInvalid,
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 f06ae15..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
@@ -40,12 +40,18 @@
if buffLayers < needLayers:
GameWorld.DebugLogEx("buff状态层数不足不触发! buffState=%s,buffLayers=%s < %s", buffState, buffLayers, needLayers)
return
- updLayer = buffLayers - needLayers
- GameWorld.DebugLogEx("消耗buff层释放技能: buffState=%s,buffLayers=%s,delLayers=%s,updLayer=%s", buffState, buffLayers, needLayers, updLayer)
+ 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
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_6031.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_6031.py
new file mode 100644
index 0000000..d8f5cb2
--- /dev/null
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_6031.py
@@ -0,0 +1,33 @@
+#!/usr/bin/python
+# -*- coding: GBK -*-
+#-------------------------------------------------------------------------------
+#
+##@package Skill.PassiveTrigger.PassiveEff_6031
+#
+# @todo:某种buff状态层达到x时免疫减益控制效果
+# @author hxp
+# @date 2025-12-23
+# @version 1.0
+#
+# 详细描述: 某种buff状态层达到x时免疫减益控制效果
+#
+#-------------------------------------------------------------------------------
+#"""Version = 2025-12-23 15:30"""
+#-------------------------------------------------------------------------------
+
+import GameWorld
+
+def GetHappenValue(attacker, defender, curEffect, effSkill, effBuff, connSkill, **skillkwargs):
+ buffState = curEffect.GetEffectValue(0) # buff状态
+ needLayers = curEffect.GetEffectValue(1) # 达到x层
+
+ layerTotal = 0
+ buffMgr = attacker.GetBuffManager()
+ for buff in buffMgr.FindBuffListByState(buffState):
+ layerTotal += buff.GetLayer()
+
+ if layerTotal < needLayers:
+ return
+
+ GameWorld.DebugLogEx("某种buff状态层达到x时免疫减益控制效果! buffState=%s,layerTotal=%s >= %s", buffState, layerTotal, needLayers)
+ return 1
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 13a686b..33f700f 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnBuff.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnBuff.py
@@ -85,12 +85,14 @@
ownerID = buffOwner.GetID()
skillType = buffSkill.GetSkillType()
- #无敌免疫持续减益buff、控制类buff
- if skillType in [ChConfig.Def_SkillType_LstDepBuff, ChConfig.Def_SkillType_Action] \
- and batObj.CheckInState(ChConfig.BatObjState_Wudi):
- GameWorld.DebugLogEx("无敌状态下免疫该buff: curID=%s,skillID=%s,ownerID=%s,relatedSkillID=%s", curID, skillID, ownerID, relatedSkillID)
- return
-
+ #免疫减益buff、控制类buff
+ if skillType in [ChConfig.Def_SkillType_LstDepBuff, ChConfig.Def_SkillType_DepBuff, ChConfig.Def_SkillType_Action]:
+ if batObj.CheckInState(ChConfig.BatObjState_Wudi):
+ GameWorld.DebugLogEx("无敌状态下免疫该buff: curID=%s,skillID=%s,ownerID=%s,relatedSkillID=%s", curID, skillID, ownerID, relatedSkillID)
+ return
+ if TurnPassive.GetTriggerEffectValue(turnFight, batObj, buffOwner, ChConfig.PassiveEff_ImmuneControlDepBuff, buffSkill):
+ return
+
#被动触发免疫控制buff
if skillType == ChConfig.Def_SkillType_Action:
if TurnPassive.GetTriggerEffectValue(turnFight, batObj, buffOwner, ChConfig.PassiveEff_ImmuneControlBuff, buffSkill):
--
Gitblit v1.8.0