From 56915409677ce25cbbb7fab752c420a26229c84d Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期日, 07 四月 2024 17:50:54 +0800
Subject: [PATCH] 10019 【砍树】回合战斗(新增技能效果ID 1007、1008、4542、5012;新增技能释放方式51) 1. 新增技能效果ID 1007-根据目标状态变更技能伤害百分比;1008-根据目标血量变更技能伤害百分比 2. 增加锁定受到的最大伤害效果 4542-buff锁定受到伤害最大值,不会高于自身最大生命值x% 3. 增加技能被动效果ID 5012-目标闪避后触发技能 4. 增加技能释放方式51-打出目标xx属性的X%伤害,单体攻击,支持配置最大不超过自身xx属性x%

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py |   32 +++++++++++++++++++++++++++-----
 1 files changed, 27 insertions(+), 5 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 2d4ad2a..a228cb9 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
@@ -449,6 +449,7 @@
              5009:ChConfig.TriggerType_BounceHPPer,   # 受到攻击时,反弹伤害百分比值17
              5010:ChConfig.TriggerType_IsDealy,  # 是否触发致命一击 72
              5011:ChConfig.TriggerType_TurnFightStart, # 回合开场触发 100
+             5012:ChConfig.TriggerType_BeMissSkill,   # 目标闪避后触发技能 101
              }
     return tdict.get(effectID, -1) 
     #===========================================================================
@@ -507,6 +508,7 @@
              4539:ChConfig.TriggerType_SkillValue,  # 增加技能伤害固定值 82
              4540:ChConfig.TriggerType_SuperHitPer, # 暴击伤害百分比
              4541:ChConfig.TriggerType_AttackAddSkillPer, # BUFF类:提高主动技能的技能伤害
+             4542:ChConfig.TriggerType_BeHurtMax, # BUFF类:锁定受到伤害最大值 102
              
              803:ChConfig.TriggerType_BloodShield,  # 血盾
              806:ChConfig.TriggerType_BloodShield,  # 血盾
@@ -515,6 +517,11 @@
              }
     return tdict.get(effectID, -1)
 
+# 触发值没有配置取值类型的默认累加
+# 触发值取最大值的触发类型
+TriggerValueMaxList = [ChConfig.TriggerType_IsDealy]
+# 触发值取最小值的触发类型
+TriggerValueMinList = [ChConfig.TriggerType_BeHurtMax]
 
 #--------被动效果---------------------------
 # 被动效果的来源可能是被动技能,被动buff,或者其他增益buff
@@ -1341,10 +1348,16 @@
         if callFunc is None:
             continue
         
-        if triggerType == ChConfig.TriggerType_IsDealy:
-            curValue = max(curValue, callFunc(attacker, defender, effect)) # 取最高倍值
+        value = callFunc(attacker, defender, effect)
+        if triggerType in TriggerValueMaxList:
+            curValue = max(curValue, value) # 取最大值
+        elif triggerType in TriggerValueMinList:
+            if not curValue:
+                curValue = value
+            elif value > 0:
+                curValue = min(curValue, value) # 取最小值
         else:
-            curValue += callFunc(attacker, defender, effect)
+            curValue += value
         if skillTypeID not in Def_PassiveSkillValueNoCD:
             if curSkill.GetCoolDownTime():
                 SkillCommon.SetSkillRemainTime(curSkill, 0, tick, attacker)
@@ -1650,8 +1663,17 @@
             
             # 如被动技能:千幻冥炎真实伤害从2变4倍
             #curValue += GetPassiveSkillValueByTriggerType(attacker, defender, curSkill, ChConfig.TriggerType_PassiveBuffValue)
-            curValue += callFunc(attacker, defender, passiveEffect)
-            
+            value = callFunc(attacker, defender, passiveEffect)
+            if triggerType in TriggerValueMaxList:
+                curValue = max(curValue, value) # 取最大值
+            elif triggerType in TriggerValueMinList:
+                if not curValue:
+                    curValue = value
+                elif value > 0:
+                    curValue = min(curValue, value) # 取最小值
+            else:
+                curValue += value
+                
     return curValue
 
 

--
Gitblit v1.8.0