From 68c06a7abc6ad911baf81bde36e68019ecd1a11d Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 22 十二月 2025 19:06:15 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(小乔所有技能;增加触发方式53-友方造成持续伤害时;优化效果5022 5507 5509;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5507.py |   20 +++++++++++++-------
 1 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5507.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5507.py
index 93d9a64..85a4eff 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5507.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5507.py
@@ -24,14 +24,20 @@
     passiveSkillID = curEffect.GetEffectValue(0) # 技能ID,为0时释放本技能
     effHeroID = curEffect.GetEffectValue(1) # 指定目标武将ID
     costHPPer = curEffect.GetEffectValue(2) # 可附加消耗自身血量百分比,配0不消耗,大于0血量不足时不释放
+    searchFrom = curEffect.GetEffectValue(3) # 目标武将ID是否从阵容中搜索
     
-    if not effHeroID or not tagObj:
+    tagHero = tagObj
+    if searchFrom:
+        batLineup = batObj.GetBatLineup()
+        tagHero = batLineup.getHeroObj(effHeroID)
+        
+    if not effHeroID or not tagHero:
         return
     
-    if tagObj.IsAlive():
+    if tagHero.IsAlive():
         return
     
-    tagHeroID = tagObj.GetHeroID()
+    tagHeroID = tagHero.GetHeroID()
     if tagHeroID != effHeroID:
         #GameWorld.DebugLogEx("5507非目标武将死亡不处理! tagHeroID=%s,effHeroID=%s", tagHeroID, effHeroID)
         return
@@ -41,11 +47,11 @@
     if not passiveSkillID:
         return
     
-    if tagObj.CheckInState(ChConfig.BatObjState_RebornLimit):
+    if tagHero.CheckInState(ChConfig.BatObjState_RebornLimit):
         GameWorld.DebugLogEx("5507目标被禁止复活不处理! tagHeroID=%s", tagHeroID)
         return
     
-    tagID = tagObj.GetID()
+    tagID = tagHero.GetID()
     if costHPPer:
         curHP = batObj.GetHP()
         maxHP = batObj.GetMaxHP()
@@ -56,8 +62,8 @@
         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), 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)

--
Gitblit v1.8.0