hxp
6 天以前 0b314dd1d9f0c39e8d86de7e996c62836aa19aca
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnPassive.py
@@ -108,15 +108,17 @@
    callFunc(turnFight, batObj, tagObj, effBuff, curEffect, connSkill, connBuff, **kwargs)
    return
def GetTriggerEffectValue(turnFight, atkObj, defObj, calcEffID, connSkill=None, **kwargs):
def GetTriggerEffectValue(turnFight, atkObj, defObj, calcEffID, connSkill=None, connSkillTypeID=0, triggerWay=ChConfig.TriggerWay_CalcEffValue, **kwargs):
    ''' 获取触发被动的值,一般用于某种条件下才会产生的值,如xx情况下属性变化 或 xx情况下是否发生什么
    @param calcEffID: 需要统计的效果ID,可以是属性ID或者其他自定义效果ID
    @return: 触发的值,0-没有触发或本身触发的值为0;非0-触发的具体值
    '''
    
    triggerWay = ChConfig.TriggerWay_CalcEffValue
    passiveEffMgr = atkObj.GetPassiveEffManager()
    effInfoList = passiveEffMgr.GetPassiveEffByTrigger("%s_%s" % (triggerWay, calcEffID), connSkill)
    if triggerWay == ChConfig.TriggerWay_CalcEffValue:
        effInfoList = passiveEffMgr.GetPassiveEffByTrigger("%s_%s" % (triggerWay, calcEffID), connSkill, connSkillTypeID)
    else:
        effInfoList = passiveEffMgr.GetPassiveEffByTrigger(triggerWay, connSkill, connSkillTypeID)
    if not effInfoList:
        return 0
    
@@ -125,7 +127,6 @@
    buffMgr = atkObj.GetBuffManager()
    # [["skill/buff", skillID/buffID, effIDList], ...]
    tagID = defObj.GetID() if defObj else 0
    GameWorld.DebugLog("统计被动效果值: calcEffID=%s,objID=%s,tagID=%s,%s" % (calcEffID, atkObj.GetID(), tagID, effInfoList))
    for effInfo in effInfoList:
        sign = effInfo[0]
        if sign == "skill":
@@ -162,12 +163,13 @@
            callFunc = GameWorld.GetExecFunc(PassiveTrigger, "%s.%s" % (pyName, "GetHappenValue"))
            if not callFunc:
                continue
            value = callFunc(atkObj, defObj, effect, effSkill, effBuff, **kwargs)
            value = callFunc(atkObj, defObj, effect, effSkill, effBuff, connSkill, **kwargs)
            if value is None:
                continue
            
            if effID in ChConfig.PassiveEffHappenValueList:
                if value:
                    GameWorld.DebugLog("统计被动效果值: calcEffID=%s,objID=%s,tagID=%s,%s,curValue=%s" % (calcEffID, atkObj.GetID(), tagID, effInfoList, value))
                    return value
            elif effID in ChConfig.PassiveEffValueMaxList:
                curValue = max(curValue, value) # 取最大值
@@ -182,5 +184,6 @@
            #    if curSkill.GetCoolDownTime():
            #        SkillCommon.SetSkillRemainTime(curSkill, 0, tick, attacker)
            
    GameWorld.DebugLog("统计被动效果值: calcEffID=%s,objID=%s,tagID=%s,%s,curValue=%s" % (calcEffID, atkObj.GetID(), tagID, effInfoList, curValue))
    return curValue