hxp
10 天以前 9490d06f7d92c2c3b13d88a6b212b491cf1df638
129 【战斗】战斗系统-服务端(步练师禁止复活支持;)
2个文件已修改
16 ■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5507.py 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5507.py
@@ -17,6 +17,7 @@
import TurnSkill
import GameWorld
import ChConfig
def DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff, **kwargs):
    
@@ -40,6 +41,10 @@
    if not passiveSkillID:
        return
    
    if tagObj.CheckInState(ChConfig.BatObjState_RebornLimit):
        GameWorld.DebugLogEx("5507目标被禁止复活不处理! tagHeroID=%s", tagHeroID)
        return
    tagID = tagObj.GetID()
    if costHPPer:
        curHP = batObj.GetHP()
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)