ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_6014.py
@@ -16,11 +16,13 @@
#-------------------------------------------------------------------------------
import GameWorld
import ChConfig
def GetHappenValue(attacker, defender, curEffect, effSkill, effBuff, connSkill, **skillkwargs):
    addRate = curEffect.GetEffectValue(0)
    onlyFirstUse = curEffect.GetEffectValue(1) # 是否仅首次释放技能有效
    if onlyFirstUse:
        skillID = connSkill.GetSkillID() if connSkill else skillkwargs.get("connSkillID", 0)
    if onlyFirstUse:
        if not skillID:
            #GameWorld.DebugLog("没有增加概率的技能ID! %s" % skillkwargs)
            return
@@ -28,4 +30,22 @@
        if useCnt > 0:
            GameWorld.DebugLog("技能非首次使用不增加额外概率! skillID=%s,useCnt=%s" % (skillID, useCnt))
            return
    return curEffect.GetEffectValue(0)
    failAddRateEx = curEffect.GetEffectValue(2) # 失败次数额外增加概率
    if failAddRateEx:
        failCnt = attacker.GetSkillHappenFailCnt(skillID)
        mustHappenFailCnt = curEffect.GetEffectValue(3) # x次失败后必定释放,大于0有效
        if mustHappenFailCnt and failCnt >= mustHappenFailCnt:
            addRate = ChConfig.Def_MaxRateValue # 强制增加满概率
            GameWorld.DebugLog("技能概率失败次数必定成功: mustHappenFailCnt=%s,failCnt=%s,addRate=%s" % (mustHappenFailCnt, failCnt, addRate))
        elif failCnt > 0:
            addRate = failAddRateEx * failCnt
            GameWorld.DebugLog("技能概率失败次数增加概率: failAddRateEx=%s,failCnt=%s,addRate=%s" % (failAddRateEx, failCnt, addRate))
    if effBuff:
        buffLayer = effBuff.GetLayer()
        if buffLayer > 1:
            addRate *= buffLayer
            GameWorld.DebugLog("多层buff增加技能概率! skillID=%s,buffLayer=%s,addRate=%s" % (effBuff.GetSkillID(), buffLayer, addRate))
    return addRate