From 9490d06f7d92c2c3b13d88a6b212b491cf1df638 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期六, 20 十二月 2025 12:40:30 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(步练师禁止复活支持;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
index adc7c25..4f9849a 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
@@ -59,9 +59,10 @@
     if not skillID:
         return
     
+    skillType = useSkill.GetSkillType()
     byTriggerWay = kwargs["byTriggerWay"] if "byTriggerWay" in kwargs else 0 # 不使用参数名 triggerWay, 防止传递过程中参数混乱
     if not curBatObj.IsAlive():
-        if useSkill.GetSkillType() == ChConfig.Def_SkillType_Revive and useSkill.GetTagAim() == ChConfig.SkillTagAim_Self:
+        if skillType == ChConfig.Def_SkillType_Revive and useSkill.GetTagAim() == ChConfig.SkillTagAim_Self:
             GameWorld.DebugLogEx("死亡时使用复活自己的技能! skillID=%s", skillID)
         else:
             if byTriggerWay in ChConfig.DeadCanTriggerWayList:
@@ -103,10 +104,16 @@
             if not tagObjList and isRemove:
                 return
             
+    if tagObjList and skillType == ChConfig.Def_SkillType_Revive:
+        for tagObj in tagObjList[::-1]:
+            if tagObj.CheckInState(ChConfig.BatObjState_RebornLimit):
+                GameWorld.DebugLogEx("    目标被禁止复活不处理! tagID=%s", tagObj.GetID())
+                tagObjList.remove(tagObj)
+                
     if not tagObjList:
         # 可扩展其他目标选择,如复活技能没有死亡单位时则使用另外的效果
         GameWorld.DebugLogEx("找不到技能目标! skillID=%s,mapID=%s,funcLineID=%s", skillID, turnFight.mapID, turnFight.funcLineID, turnFight.getReqPlayerID())
-        if useSkill.GetSkillType() == ChConfig.Def_SkillType_Revive:
+        if skillType == ChConfig.Def_SkillType_Revive and not isinstance(useSkill, IpyGameDataPY.IPY_Skill):
             otherEff = useSkill.GetEffectByID(ChConfig.SkillEff_ReviveNoUse)
             if otherEff:
                 otherSkillID = otherEff.GetEffectValue(0)

--
Gitblit v1.8.0