4923 【后端】【1.3】神兵技能--神兵等级差安全防范,模板30增加清除负面技能(减益,持续减益,控制buff)一个
| | |
| | |
|
| | | # 被动技能触发
|
| | | defObj.SetDict(ChConfig.Def_PlayerKey_GodWeaponBeforeProDef, curProDef)
|
| | | PassiveBuffEffMng.OnPassiveSkillTrigger(defObj, atkObj, curSkill, ChConfig.TriggerType_ProDefValue, tick)
|
| | | PassiveBuffEffMng.OnPassiveSkillTrigger(defObj, atkObj, None, ChConfig.TriggerType_ProDefValue, tick)
|
| | | return hurtValue - absortValue
|
| | |
|
| | | ## 计算伤血值
|
| | |
| | | import PlayerControl
|
| | | import IPY_GameWorld
|
| | | import NPCCommon
|
| | | import GameWorld
|
| | | #------------------------------------------------------------------------------
|
| | |
|
| | |
|
| | |
| | | if not defender:
|
| | | return
|
| | |
|
| | | buffType = ChConfig.Def_SkillBuffList.get(curSkill.GetEffect(0).GetEffectValue(0))
|
| | | if not GameWorld.CanHappen(curSkill.GetHappenRate(), ChConfig.Def_MaxRateValue):
|
| | | #清除失败也触发CD
|
| | | return BaseAttack.DoSkillEx_AttackSucess(attacker, defender, curSkill, tick, isEnhanceSkill)
|
| | | |
| | | skillType = curSkill.GetEffect(0).GetEffectValue(0)
|
| | | if skillType == 0:
|
| | | # 无配置代表清除负面buff任意1个
|
| | | skillTypeList = [
|
| | | ChConfig.Def_SkillType_LstDepBuff , #持续减益BUFF 4
|
| | | ChConfig.Def_SkillType_DepBuff , #减益BUFF 6
|
| | | ChConfig.Def_SkillType_Action , #影响行为BUFF 14
|
| | | ]
|
| | | else:
|
| | | skillTypeList = [skillType]
|
| | | |
| | | delSuccess = False
|
| | | |
| | | for skillType in skillTypeList:
|
| | | |
| | | buffType = ChConfig.Def_SkillBuffList.get(skillType)
|
| | | buffTuple = SkillCommon.GetBuffManagerByBuffType(defender, buffType)
|
| | | if buffTuple == ():
|
| | | return
|
| | | continue
|
| | |
|
| | | buffManager = buffTuple[0]
|
| | | if buffManager.GetBuffCount() == 0:
|
| | | return
|
| | | continue
|
| | |
|
| | | curBuff = buffManager.GetBuff(0)
|
| | | ownerID, ownerType = curBuff.GetOwnerID(), curBuff.GetOwnerType()
|
| | |
| | | skillID = buffSkill.GetSkillID()
|
| | | buffManager.DeleteBuffByTypeID(buffSkill.GetSkillTypeID())
|
| | | SkillShell.ClearBuffEffectBySkillID(defender, skillID, ownerID, ownerType)
|
| | | delSuccess = True
|
| | | break
|
| | | |
| | | if not delSuccess:
|
| | | # 没有可清除BUFF也进入CD
|
| | | return BaseAttack.DoSkillEx_AttackSucess(attacker, defender, curSkill, tick, isEnhanceSkill)
|
| | |
|
| | | #刷新属性
|
| | | curObjType = defender.GetGameObjType()
|
| | |
| | | import ChConfig
|
| | | import GameWorld
|
| | | import GameObj
|
| | |
|
| | | import IPY_GameWorld
|
| | |
|
| | | def CheckCanHappen(attacker, defender, effect, curSkill):
|
| | | if not defender:
|
| | | return False
|
| | | if defender.GetGameObjType() != IPY_GameWorld.gotPlayer:
|
| | | return False
|
| | | |
| | | if attacker.GetGameObjType() != IPY_GameWorld.gotPlayer:
|
| | | return False
|
| | | |
| | | attrLV = attacker.NomalDictGetProperty(ChConfig.Def_PDict_GodWeaponLV % effect.GetEffectValue(0))
|
| | | tagAttrLV = defender.NomalDictGetProperty(ChConfig.Def_PDict_GodWeaponLV % effect.GetEffectValue(0))
|
| | |
|
| | |
| | | import ChConfig
|
| | | import GameWorld
|
| | | import GameObj
|
| | |
|
| | | import IPY_GameWorld
|
| | |
|
| | | def CheckCanHappen(attacker, defender, effect, curSkill):
|
| | | if not defender:
|
| | | return False
|
| | | if defender.GetGameObjType() != IPY_GameWorld.gotPlayer:
|
| | | return False
|
| | | |
| | | if attacker.GetGameObjType() != IPY_GameWorld.gotPlayer:
|
| | | return False
|
| | | |
| | | attrLV = attacker.NomalDictGetProperty(ChConfig.Def_PDict_GodWeaponLV % effect.GetEffectValue(0))
|
| | | tagAttrLV = defender.NomalDictGetProperty(ChConfig.Def_PDict_GodWeaponLV % effect.GetEffectValue(0))
|
| | |
|