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