129 【战斗】战斗系统-服务端(丁奉格挡潜能2反弹计算增加效果6037)
| | |
| | | PassiveEff_IgnoreSex = 6034 # 去除性别验证
|
| | | PassiveEff_AddBuffTime = 6035 # 增加buff持续时间
|
| | | PassiveEff_AddSkillUseCntLimit = 6036 # 增加7009回合数
|
| | | PassiveEff_AddDamBackPerByBuffLayer = 6037 # 增加反弹伤害万分比(根据buff层级)
|
| | |
|
| | | # 被动效果ID有触发值时就返回的
|
| | | PassiveEffHappenValueList = [PassiveEff_ChangeHurtType, PassiveEff_ImmuneControlBuff, PassiveEff_MustSuperHit, PassiveEff_SkillInvalid,
|
| New file |
| | |
| | | #!/usr/bin/python
|
| | | # -*- coding: GBK -*-
|
| | | #-------------------------------------------------------------------------------
|
| | | #
|
| | | ##@package Skill.PassiveTrigger.PassiveEff_6037
|
| | | #
|
| | | # @todo:增加反弹伤害万分比(根据buff层级)
|
| | | # @author hxp
|
| | | # @date 2026-01-04
|
| | | # @version 1.0
|
| | | #
|
| | | # 详细描述: 增加反弹伤害万分比(根据buff层级)
|
| | | #
|
| | | #-------------------------------------------------------------------------------
|
| | | #"""Version = 2026-01-04 19:00"""
|
| | | #-------------------------------------------------------------------------------
|
| | |
|
| | | import GameWorld
|
| | |
|
| | | def GetHappenValue(attacker, defender, curEffect, effSkill, effBuff, connSkill, **skillkwargs):
|
| | | layerPer = curEffect.GetEffectValue(0) # 每层增加的万分比
|
| | | buffStateList = curEffect.GetEffectValue(1) # buff״̬ [״̬1, ״̬2, ...]
|
| | | checkTag = curEffect.GetEffectValue(2) # buff检查自己还是对方: 0-自己,1-对方
|
| | | if not buffStateList:
|
| | | return
|
| | | |
| | | layerTotal = 0
|
| | | buffObj = defender if checkTag else attacker
|
| | | buffMgr = buffObj.GetBuffManager()
|
| | | for buffState in buffStateList:
|
| | | for buff in buffMgr.FindBuffListByState(buffState)[::-1]:
|
| | | layerTotal += buff.GetLayer()
|
| | | |
| | | if layerTotal <= 0:
|
| | | return
|
| | | |
| | | addPer = layerTotal * layerPer
|
| | | GameWorld.DebugLog(" 反弹时buff状态层数: %s,addPer=%s,buffStateList=%s,buffObjID=%s" % (layerTotal, addPer, buffStateList, buffObj.GetID()))
|
| | | return addPer
|
| | |
| | | for buff in buffMgr.FindBuffListByState(ChConfig.BatObjState_DamBackShield):
|
| | | damBackPer += buff.GetValue1()
|
| | | connSkillTypeID = buff.GetSkillTypeID()
|
| | | damBackPer += TurnPassive.GetTriggerEffectValue(turnFight, defObj, atkObj, ChConfig.PassiveEff_AddSkillPerByBuffLayer, connSkillTypeID=connSkillTypeID)
|
| | | damBackPer += TurnPassive.GetTriggerEffectValue(turnFight, defObj, atkObj, ChConfig.PassiveEff_AddDamBackPerByBuffLayer, connSkillTypeID=connSkillTypeID)
|
| | |
|
| | | if damBackPer <= 0:
|
| | | return
|