ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5507.py
@@ -17,22 +17,30 @@
import TurnSkill
import GameWorld
import ChConfig
def DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff, **kwargs):
    
    passiveSkillID = curEffect.GetEffectValue(0) # 技能ID,为0时释放本技能
    effHeroID = curEffect.GetEffectValue(1) # 指定目标武将ID
    effHeroID = curEffect.GetEffectValue(1) # 指定目标武将ID,0时为来源友军目标
    costHPPer = curEffect.GetEffectValue(2) # 可附加消耗自身血量百分比,配0不消耗,大于0血量不足时不释放
    searchFrom = curEffect.GetEffectValue(3) # 目标武将ID是否从阵容中搜索
    
    if not effHeroID or not tagObj:
        return
    if tagObj.IsAlive():
        return
    tagHeroID = tagObj.GetHeroID()
    if tagHeroID != effHeroID:
        #GameWorld.DebugLogEx("5507非目标武将死亡不处理! tagHeroID=%s,effHeroID=%s", tagHeroID, effHeroID)
    tagHero = tagObj
    if effHeroID:
        if searchFrom:
            batLineup = batObj.GetBatLineup()
            tagHero = batLineup.getHeroObj(effHeroID)
        if not tagHero:
            return
        tagHeroID = tagHero.GetHeroID()
        if tagHeroID != effHeroID:
            GameWorld.DebugLogEx("5507非目标武将死亡不处理! tagHeroID=%s,effHeroID=%s", tagHeroID, effHeroID)
            return
    if tagHero.IsAlive():
        return
    
    if not passiveSkillID:
@@ -40,7 +48,12 @@
    if not passiveSkillID:
        return
    
    tagID = tagObj.GetID()
    if tagHero.CheckInState(ChConfig.BatObjState_RebornLimit):
        GameWorld.DebugLogEx("5507目标被禁止复活不处理! tagHeroID=%s", tagHeroID)
        return
    tagHeroID = tagHero.GetHeroID()
    tagID = tagHero.GetID()
    if costHPPer:
        curHP = batObj.GetHP()
        maxHP = batObj.GetMaxHP()
@@ -48,11 +61,12 @@
        if curHP < costHP:
            GameWorld.DebugLogEx("5507自身血量不足,无法复活对方! curHP=%s/%s,costHPPer=%s,costHP=%s", curHP, maxHP, costHPPer, costHP)
            return
        GameWorld.DebugLogEx("5507扣血复活指定目标! curHP=%s/%s,costHPPer=%s,costHP=%s,tagHeroID=%s,tagID=%s", curHP, maxHP, costHPPer, costHP, tagHeroID, tagID)
        batObj.SetHP(max(1, curHP - costHP), False) # 直接扣除
        updHP = curHP - costHP
        GameWorld.DebugLogEx("5507扣血复活指定目标! curHP=%s/%s,costHPPer=%s,costHP=%s,updHP=%s,tagHeroID=%s,tagID=%s", curHP, maxHP, costHPPer, costHP, updHP, tagHeroID, tagID)
        batObj.SetHP(updHP, True) # 直接扣除
    else:
        GameWorld.DebugLogEx("5507直接复活指定目标! curHP=%s/%s,costHPPer=%s,costHP=%s,tagHeroID=%s,tagID=%s", curHP, maxHP, costHPPer, costHP, tagHeroID, tagID)
        GameWorld.DebugLogEx("5507直接复活指定目标! tagHeroID=%s,tagID=%s,searchFrom=%s", tagHeroID, tagID, searchFrom)
        
    effectID = curEffect.GetEffectID()
    effSkillID = effSkill.GetSkillID()
    return TurnSkill.OnUsePassiveSkill(turnFight, batObj, tagObj, passiveSkillID, connSkill, effSkillID, effectID, connBuff, **kwargs)
    return TurnSkill.OnUsePassiveSkill(turnFight, batObj, tagHero, passiveSkillID, connSkill, effSkillID, effectID, connBuff, **kwargs)