From 891f4b056a19ff205eb9997873c7bb24588c7f9b Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 23 十二月 2025 10:57:45 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(修复被动触发的怒气追击时怒气溢出值无效bug;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5507.py | 25 ++++++++++++++++++-------
1 files changed, 18 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 955165f..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
@@ -17,20 +17,27 @@
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
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
@@ -40,7 +47,11 @@
if not passiveSkillID:
return
- tagID = tagObj.GetID()
+ if tagHero.CheckInState(ChConfig.BatObjState_RebornLimit):
+ GameWorld.DebugLogEx("5507目标被禁止复活不处理! tagHeroID=%s", tagHeroID)
+ return
+
+ tagID = tagHero.GetID()
if costHPPer:
curHP = batObj.GetHP()
maxHP = batObj.GetMaxHP()
@@ -49,10 +60,10 @@
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) # 直接扣除
+ 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