From a075f7841fb2d0a3b32bf10c8bc2df5bf02d6acb Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期日, 14 十二月 2025 14:24:28 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(贾诩所有技能;5022效果支持配置buff额外属性计算方式;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5011.py |   30 ++++++++++++++++++++++++++----
 1 files changed, 26 insertions(+), 4 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5011.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5011.py
index 3293030..c977f45 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5011.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5011.py
@@ -17,9 +17,31 @@
 
 import TurnSkill
 import IpyGameDataPY
+import GameWorld
 
-def DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill):
+def DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff, **kwargs):
     skillID = curEffect.GetEffectValue(0) # 技能ID,为0时释放本技能
+    checkHPInfo = curEffect.GetEffectValue(1) # 可附加验证生命值[计算方式, 百分比]
+    checkBatType = curEffect.GetEffectValue(2) # 验证攻击类型 0-不验证;1-连击;2-追击;3-反击
+    if checkHPInfo:
+        checkType, checkHPPer = checkHPInfo
+        nowPer = batObj.GetHP() / float(batObj.GetMaxHP()) * 100
+        # 小于等于
+        if checkType == 0:
+            if nowPer > checkHPPer:
+                return
+        # 大于等于
+        else:
+            if nowPer < checkHPPer:
+                return
+            
+    if checkBatType:
+        if not connSkill:
+            return
+        if connSkill.GetBatType() != checkBatType:
+            GameWorld.DebugLog("5011效果非该战斗类型不触发: checkBatType=%s,skillBatType=%s" % (checkBatType, connSkill.GetBatType()))
+            return
+        
     if not skillID:
         passiveSkill = effSkill
     else:
@@ -28,8 +50,8 @@
         return
     effectID = curEffect.GetEffectID()
     effSkillID = effSkill.GetSkillID()
-    return TurnSkill.OnUsePassiveSkill(turnFight, batObj, tagObj, passiveSkill, connSkill, effSkillID, effectID)
+    return TurnSkill.OnUsePassiveSkill(turnFight, batObj, tagObj, passiveSkill, connSkill, effSkillID, effectID, connBuff, **kwargs)
 
-def DoBuffEffectLogic(turnFight, batObj, tagObj, effBuff, curEffect, connSkill):
+def DoBuffEffectLogic(turnFight, batObj, tagObj, effBuff, curEffect, connSkill, connBuff, **kwargs):
     effSkill = effBuff.GetSkillData().GetIpyData()
-    return DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill)
+    return DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff, **kwargs)

--
Gitblit v1.8.0