hxp
2026-01-12 c24f0419a11e16c5ccd74767d1cbefc3778ef89a
129 【战斗】战斗系统-服务端(5505效果支持验证自己的生命;)
1个文件已修改
28 ■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5505.py 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5505.py
@@ -4,12 +4,12 @@
#
##@package Skill.PassiveTrigger.PassiveEff_5505
#
# @todo:触发释放技能(验证目标生命)
# @todo:触发释放技能(验证生命)
# @author hxp
# @date 2025-12-16
# @version 1.0
#
# 详细描述: 触发释放技能(验证目标生命)
# 详细描述: 触发释放技能(验证生命)
#
#-------------------------------------------------------------------------------
#"""Version = 2025-12-16 19:30"""
@@ -22,19 +22,21 @@
import ChConfig
def DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff, **kwargs):
    skillID = curEffect.GetEffectValue(0) # 技能ID,为0时释放本技能
    passiveSkillID = curEffect.GetEffectValue(0) # 技能ID,为0时释放本技能
    checkTagHPInfo = curEffect.GetEffectValue(1) # 可附加验证目标生命值[计算方式, 百分比]
    checkTagType = curEffect.GetEffectValue(2) # 验证目标默认0-对方;1自己
    if checkTagHPInfo:
        checkType, checkHPPer = checkTagHPInfo
        tagHP = tagObj.GetHP()
        tagHPMax = tagObj.GetMaxHP()
        checkTag = batObj if checkTagType == 1 else tagObj
        tagHP = checkTag.GetHP()
        tagHPMax = checkTag.GetMaxHP()
        nowPer = tagHP / float(tagHPMax) * 100
        
        effSkillTypeID = effSkill.GetSkillTypeID()
        checkHPPer += TurnPassive.GetTriggerEffectValue(turnFight, batObj, tagObj, ChConfig.PassiveEff_AddCheckPer5505, connSkillTypeID=effSkillTypeID, **kwargs)
        checkHPPer += TurnPassive.GetTriggerEffectValue(turnFight, batObj, checkTag, ChConfig.PassiveEff_AddCheckPer5505, connSkillTypeID=effSkillTypeID, **kwargs)
        
        GameWorld.DebugLogEx("5505验证目标生命! tagHP=%s/%s,nowPer=%s,checkHPPer=%s,checkType=%s,effSkillTypeID=%s",
                             tagHP, tagHPMax, nowPer, checkHPPer, checkType, effSkillTypeID)
        GameWorld.DebugLogEx("5505验证生命! checkTagType=%s,checkTagID=%s,HP=%s/%s,nowPer=%s,checkHPPer=%s,checkType=%s,effSkillTypeID=%s",
                             checkTagType, checkTag.GetID(), tagHP, tagHPMax, nowPer, checkHPPer, checkType, effSkillTypeID)
        
        # 小于等于
        if checkType == 0:
@@ -45,15 +47,11 @@
            if nowPer < checkHPPer:
                return
            
    if not skillID:
        passiveSkill = effSkill
    else:
        passiveSkill = IpyGameDataPY.GetIpyGameData("Skill", skillID)
    if not passiveSkill:
        return
    effectID = curEffect.GetEffectID()
    effSkillID = effSkill.GetSkillID()
    return TurnSkill.OnUsePassiveSkill(turnFight, batObj, tagObj, passiveSkill, connSkill, effSkillID, effectID, connBuff, **kwargs)
    if not passiveSkillID:
        passiveSkillID = effSkillID
    return TurnSkill.OnUsePassiveSkill(turnFight, batObj, tagObj, passiveSkillID, connSkill, effSkillID, effectID, connBuff, **kwargs)
def DoBuffEffectLogic(turnFight, batObj, tagObj, effBuff, curEffect, connSkill, connBuff, **kwargs):
    effSkill = effBuff.GetSkillData().GetIpyData()