From 7195d1d30b81845d21e49461099e370ca4c812e1 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 31 十二月 2025 16:42:57 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(王异所有技能;优化效果6009;增加效果6036;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_6009.py |   30 +++++++++++++++++++++++++-----
 1 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_6009.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_6009.py
index 943909f..60ec420 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_6009.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_6009.py
@@ -4,18 +4,38 @@
 #
 ##@package Skill.PassiveTrigger.PassiveEff_6009
 #
-# @todo:目标生命值低于x%必定暴击
+# @todo:必定暴击
 # @author hxp
 # @date 2025-09-23
 # @version 1.0
 #
-# 详细描述: 目标生命值低于x%必定暴击
+# 详细描述: 必定暴击
 #
 #-------------------------------------------------------------------------------
 #"""Version = 2025-09-23 19:00"""
 #-------------------------------------------------------------------------------
 
+import GameWorld
+
 def GetHappenValue(attacker, defender, curEffect, effSkill, effBuff, connSkill, **skillkwargs):
-    lowerThanPer = curEffect.GetEffectValue(0)
-    nowPer = defender.GetHP() / float(defender.GetMaxHP()) * 100
-    return 1 if nowPer < lowerThanPer else 0
+    checkValue = curEffect.GetEffectValue(0) # 判断参数
+    checkType = curEffect.GetEffectValue(1) # 判断方式: 0-按目标生命, 1-按目标状态
+    defID = defender.GetID()
+    
+    # 0 - 按目标生命低于x%;参数:单值即可,如30就是30%
+    if checkType == 0:
+        lowerThanPer = checkValue
+        defHP = defender.GetHP()
+        defMaxHP = defender.GetMaxHP()
+        nowPer = defHP / float(defMaxHP) * 100
+        if nowPer < lowerThanPer:
+            GameWorld.DebugLogEx("必定暴击->目标血量低于%s%%: defID=%s,hp:%s/%s", lowerThanPer, defID, defHP, defMaxHP)
+            return 1
+        
+    # 1 - 按目标处于状态;参数:支持多状态列表 [状态1, ...]
+    elif checkType == 1:
+        if defender.CheckInState(checkValue):
+            GameWorld.DebugLogEx("必定暴击->目标处于状态%s: defID=%s", checkValue, defID)
+            return 1
+        
+    return

--
Gitblit v1.8.0