#!/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