From 1ea23ac831a440e8eb302b199ab1abdadfec184c Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 11 四月 2024 16:30:49 +0800
Subject: [PATCH] 10019 【砍树】回合战斗(增加buff被动效果ID 4543、4544、4545、4546;) 1. 增加buff被动效果ID4543: 被暴击附加额外伤害百分比; 2. 增加buff被动效果ID4544: 触发时减少buff层数; 3. 增加buff被动效果ID4545: 灵宠技能释放成功触发技能; 4. 增加buff被动效果ID4546: 灵宠释放技能后触发删除本buff; 5. 技能被动效果ID 5000,支持每X回合配置; 6. buff替换方式增加方式3 - 只取最高,相同或低级的则不处理,减少长时buff无用的重复添加逻辑;

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py |   19 +++++++++++++++++++
 1 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
index a228cb9..578a15c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
@@ -509,6 +509,9 @@
              4540:ChConfig.TriggerType_SuperHitPer, # 暴击伤害百分比
              4541:ChConfig.TriggerType_AttackAddSkillPer, # BUFF类:提高主动技能的技能伤害
              4542:ChConfig.TriggerType_BeHurtMax, # BUFF类:锁定受到伤害最大值 102
+             4543:ChConfig.TriggerType_BeSuperHitHurtExPer, # BUFF类: 被暴击附加额外伤害百分比 103
+             4545:ChConfig.TriggerType_SkillSuccessPet, # BUFF类: 灵宠技能释放成功都可触发
+             4546:ChConfig.TriggerType_SkillSuccessPet, # BUFF类: 灵宠释放技能后触发删除本buff
              
              803:ChConfig.TriggerType_BloodShield,  # 血盾
              806:ChConfig.TriggerType_BloodShield,  # 血盾
@@ -1564,6 +1567,8 @@
         
         if not IsValidPassiveSkill(curSkill):
             continue
+        
+        triggerCount = 0
         for effectInfo in effectList:
             passiveEffect = effectInfo[0]
             # 被动触发的技能
@@ -1590,8 +1595,14 @@
             SkillCommon.SetUsingPassiveSkill(attacker, 1)
             if SkillShell.UsePassiveTriggerSkill(attacker, skillData, defender, tick):
                 AfterUsePassiveSkill(pyName, attacker, defender, passiveEffect, tick)
+                triggerCount += 1
             SkillCommon.SetUsingPassiveSkill(attacker, 0)
 
+        if triggerCount:
+            hasEffect = SkillCommon.GetSkillEffectByEffectID(curSkill, ChConfig.Def_Skill_Effect_BuffTriggerDelLayer)
+            if hasEffect:
+                BuffSkill.ReduceBuffLayer(attacker, None, curSkill.GetSkillTypeID(), triggerCount)
+                
 def AfterUsePassiveSkill(pyName, attacker, defender, passiveEffect, tick):
     # 附加触发后逻辑
     callFunc = GameWorld.GetExecFunc(PassiveBuff, "%s.%s" % (pyName, "AfterUsePassiveSkill"))
@@ -1641,6 +1652,7 @@
         if not IsValidPassiveSkill(curSkill):
             continue
         
+        triggerCount = 0 # 成功触发次数
         for effectInfo in effectList:
             if stopPassiveSkill and curSkill.GetFuncType() != ChConfig.Def_SkillFuncType_GiftSkill:
                 # 只有天赋才可以再次被触发
@@ -1674,6 +1686,13 @@
             else:
                 curValue += value
                 
+            triggerCount += 1
+            
+        if triggerCount:
+            hasEffect = SkillCommon.GetSkillEffectByEffectID(curSkill, ChConfig.Def_Skill_Effect_BuffTriggerDelLayer)
+            if hasEffect:
+                BuffSkill.ReduceBuffLayer(attacker, None, curSkill.GetSkillTypeID(), triggerCount)
+                
     return curValue
 
 

--
Gitblit v1.8.0