#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#-------------------------------------------------------------------------------
|
#
|
##@package Skill.PassiveTrigger.PassiveEff_6014
|
#
|
# @todo:Ôö¼Ó¼¼ÄܸÅÂÊ
|
# @author hxp
|
# @date 2025-09-25
|
# @version 1.0
|
#
|
# ÏêϸÃèÊö: Ôö¼Ó¼¼ÄܸÅÂÊ
|
#
|
#-------------------------------------------------------------------------------
|
#"""Version = 2025-09-25 18:00"""
|
#-------------------------------------------------------------------------------
|
|
import GameWorld
|
import ChConfig
|
|
def GetHappenValue(attacker, defender, curEffect, effSkill, effBuff, connSkill, **skillkwargs):
|
addRate = curEffect.GetEffectValue(0)
|
onlyFirstUse = curEffect.GetEffectValue(1) # ÊÇ·ñ½öÊ×´ÎÊͷż¼ÄÜÓÐЧ
|
skillID = connSkill.GetSkillID() if connSkill else skillkwargs.get("connSkillID", 0)
|
if onlyFirstUse:
|
if not skillID:
|
#GameWorld.DebugLog("ûÓÐÔö¼Ó¸ÅÂʵļ¼ÄÜID! %s" % skillkwargs)
|
return
|
useCnt = attacker.GetSkillUseCnt(skillID)
|
if useCnt > 0:
|
GameWorld.DebugLog("¼¼ÄÜ·ÇÊ×´ÎʹÓò»Ôö¼Ó¶îÍâ¸ÅÂÊ! skillID=%s,useCnt=%s" % (skillID, useCnt))
|
return
|
|
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
|