2683 子 天赋技能和新增双职业各两个技能 / 【后端】天赋技能 --- 天赋技能减CD,buff减层关联技能可触发
| | |
| | | TriggerType_StormAttackReduceCD, # 类剑刃风暴攻击每攻击一次减少CD 58
|
| | | TriggerType_AttackAddFinalPer, #增加最终伤害百分比 59
|
| | | TriggerType_SummonDie, #自身召唤兽死亡触发技能 60
|
| | | ) = range(1, 61)
|
| | | TriggerType_GiftReduceCD, # 天赋用的减CD 61
|
| | | ) = range(1, 62)
|
| | |
|
| | |
|
| | | # NPC功能类型定义
|
| | |
| | | coolDownTime = curSkill.GetCoolDownTime()
|
| | | remainTime = coolDownTime
|
| | | if isPassiveSkill(curSkill):
|
| | | if curSkill.GetFuncType() == ChConfig.Def_SkillFuncType_GiftSkill:
|
| | | # 天赋有减CD效果
|
| | | reduceSkillCDPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, None, curSkill, ChConfig.TriggerType_GiftReduceCD)
|
| | | # 减CD比率
|
| | | if reduceSkillCDPer > 0:
|
| | | remainTime = int(remainTime * max(0, ShareDefine.Def_MaxRateValue - reduceSkillCDPer) / ShareDefine.Def_MaxRateValue)
|
| | | |
| | | # 被动技能的处理和主动技能区分
|
| | | curSkill.SetRemainTime(remainTime)
|
| | | return
|
| | |
| | | # remainTime = skillData.GetCoolDownTime()
|
| | |
|
| | | reduceSkillCDPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, None, curSkill, ChConfig.TriggerType_ReduceCD)
|
| | |
|
| | | # 减CD比率
|
| | | if reduceSkillCDPer > 0:
|
| | | remainTime = int(remainTime * max(0, ShareDefine.Def_MaxRateValue - reduceSkillCDPer) / ShareDefine.Def_MaxRateValue)
|
| | |
| | | import IPY_GameWorld
|
| | |
|
| | | def CheckCanHappen(attacker, defender, passiveEffect, skillID, **skillkwargs):
|
| | | # 先判断概率
|
| | | rate = passiveEffect.GetEffectValue(0)
|
| | | if rate and not GameWorld.CanHappen(rate):
|
| | | return False
|
| | | |
| | | # 关联技能
|
| | | checkSkillID = passiveEffect.GetEffectValue(2)
|
| | | if checkSkillID:
|
| | | useSkill = skillkwargs.get("useSkill", None)
|
| | | if not useSkill:
|
| | | return False
|
| | | if useSkill.GetSkillTypeID() != checkSkillID:
|
| | | return False
|
| | | |
| | | curSkill = GameWorld.GetGameData().GetSkillBySkillID(skillID)
|
| | | if not curSkill:
|
| | | return False
|
| | |
| | | return False
|
| | |
|
| | | if buff.GetLayer() <= 0:
|
| | | return False
|
| | |
|
| | | rate = passiveEffect.GetEffectValue(0)
|
| | | if rate and not GameWorld.CanHappen(rate):
|
| | | return False
|
| | |
|
| | | BuffSkill.SetBuffLayer(attacker, buff, buff.GetLayer()-1, skillTypeID=curSkill.GetSkillTypeID())
|
New file |
| | |
| | | #!/usr/bin/python
|
| | | # -*- coding: GBK -*-
|
| | | #
|
| | | # @todo: 天赋减CD
|
| | | #
|
| | | # @author: Alee
|
| | | # @date 2018-1-9 下午09:39:37
|
| | | # @version 1.0
|
| | | #
|
| | | # @note: |
| | | #
|
| | | #---------------------------------------------------------------------
|
| | |
|
| | | import ChConfig
|
| | | import GameObj
|
| | |
|
| | | def CheckCanHappen(attacker, defender, effect, curSkill):
|
| | | return True
|
| | |
|
| | | def GetValue(attacker, defender, effect):
|
| | | return effect.GetEffectValue(0)
|
| | |
| | | 4061:ChConfig.TriggerType_AttackOverPassive, # 攻击(对敌技能)后被动技能被触发在其他被动效果处理后调用,触发顺序原因
|
| | | 4062:ChConfig.TriggerType_AttackAddFinalPer, # 增加最终伤害百分比 59
|
| | | 4063:ChConfig.TriggerType_SummonDie, #自身召唤兽死亡触发技能 60
|
| | | 4064:ChConfig.TriggerType_GiftReduceCD, # 天赋减少CD9, #CD
|
| | | }
|
| | | return tdict.get(effectID, -1)
|
| | | #===========================================================================
|