hxp
2025-12-16 d3490f0c52cf8415dc0d34929bef8849cb37c32e
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnPassive.py
@@ -17,6 +17,8 @@
import GameWorld
import PassiveTrigger
import IpyGameDataPY
import BattleObj
import ChConfig
GameWorld.ImportAll("Script\\Skill\\", "PassiveTrigger")
@@ -35,13 +37,30 @@
    ''' 触发被动效果,可能触发技能、buff,需根据优先级触发
    '''
    if not batObj.IsAlive():
        if triggerWay not in ChConfig.DeadCanTriggerWayList:
        if triggerWay in ChConfig.DeadCanTriggerWayList:
            pass # 死亡状态下可触发的被动
        elif connSkill:
            if connSkill.GetBatType() == ChConfig.TurnBattleType_Enhance:
                pass # 子技能不限制死亡触发,由主技能决定,主技能能触发了,才会执行到子技能,那么子技能也一定能触发
            elif connSkill.GetByTriggerWay() in ChConfig.DeadCanTriggerWayList:
                pass
                #GameWorld.DebugLogEx("关联技能是由死亡状态下可触发的方式触发的,则也可触发! triggerWay=%s,connSkillID=%s,byTriggerWay=%s",
                #                     triggerWay, connSkill.GetSkillID(), connSkill.GetByTriggerWay())
            else:
                return
        else:
            return
    passiveEffMgr = batObj.GetPassiveEffManager()
    effInfoList = passiveEffMgr.GetPassiveEffByTrigger(triggerWay, connSkill, connSkillTypeID, connBuff)
    if not effInfoList:
        return
    # [["skill/buff", skillID, buffID, effIDList], ...]
    OnTriggerPassiveEffList(turnFight, batObj, triggerWay, tagObj, effInfoList, connSkill, connBuff, **kwargs)
    return
def OnTriggerPassiveEffList(turnFight, batObj, triggerWay, tagObj, effInfoList, connSkill=None, connBuff=None, **kwargs):
    '''触发外部指定的被动效果列表
    @param effInfoList: [["skill/buff", skillID, buffID, effIDList], ...]
    '''
    tagID = tagObj.GetID() if tagObj else 0
    GameWorld.DebugLogEx("触发被动: triggerWay=%s,objID=%s,tagID=%s,%s", triggerWay, batObj.GetID(), tagID, effInfoList)
    for effInfo in effInfoList:
@@ -166,6 +185,7 @@
            callFunc = GameWorld.GetExecFunc(PassiveTrigger, "%s.%s" % (pyName, "GetHappenValue"))
            if not callFunc:
                continue
            kwargs["turnFight"] = turnFight
            value = callFunc(atkObj, defObj, effect, effSkill, effBuff, connSkill, **kwargs)
            if value is None:
                continue