From bc915a9b717eccef3c8d825f9af79a7596394ac7 Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期四, 09 五月 2019 11:34:27 +0800 Subject: [PATCH] 6603 【后端】【2.0】增加新版的sp和被动技能 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_30.py | 91 ++++++++++++++++++++++++++++----------------- 1 files changed, 56 insertions(+), 35 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_30.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_30.py index 165c6f0..18b1bbb 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_30.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_30.py @@ -35,43 +35,24 @@ #清除失败也触发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 + buffSkill = None + buffType = 0 - for skillType in skillTypeList: - - buffType = ChConfig.Def_SkillBuffList.get(skillType) - buffTuple = SkillCommon.GetBuffManagerByBuffType(defender, buffType) - if buffTuple == (): - continue - - buffManager = buffTuple[0] - if buffManager.GetBuffCount() == 0: - continue - - curBuff = buffManager.GetBuff(0) - ownerID, ownerType = curBuff.GetOwnerID(), curBuff.GetOwnerType() - - #删除Buff - BuffSkill.DoBuffDisApperEx(defender, curBuff, tick) - buffSkill = curBuff.GetSkill() - if not buffSkill: - continue - skillID = buffSkill.GetSkillID() - buffManager.DeleteBuffByTypeID(buffSkill.GetSkillTypeID()) - SkillShell.ClearBuffEffectBySkillID(defender, skillID, ownerID, ownerType) - delSuccess = True - break + # 优先清理指定技能 + theSkillID = curSkill.GetEffect(0).GetEffectValue(1) + if theSkillID: + if curSkill.GetEffect(0).GetEffectValue(1): + findBuff = SkillCommon.FindBuffByID(defender, theSkillID) + else: + findBuff = SkillCommon.FindBuffByOwner(defender, theSkillID, attacker.GetID(), attacker.GetGameObjType()) + if findBuff: + delSuccess = True + buffSkill = findBuff.GetSkill() + buffType = ChConfig.Def_SkillBuffList.get(buffSkill.GetSkillType()) + else: + # 某类技能中的一个 + delSuccess, buffSkill, buffType = ClearBySkillType(curSkill, defender, tick) if not delSuccess: # 没有可清除BUFF也进入CD @@ -103,4 +84,44 @@ return BaseAttack.DoSkillEx_AttackSucess(attacker, defender, curSkill, tick, isEnhanceSkill) +def ClearBySkillType(curSkill, defender, tick): + 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 + buffSkill = None + buffType = 0 + for skillType in skillTypeList: + + buffType = ChConfig.Def_SkillBuffList.get(skillType) + buffTuple = SkillCommon.GetBuffManagerByBuffType(defender, buffType) + if buffTuple == (): + continue + + buffManager = buffTuple[0] + if buffManager.GetBuffCount() == 0: + continue + + curBuff = buffManager.GetBuff(0) + ownerID, ownerType = curBuff.GetOwnerID(), curBuff.GetOwnerType() + + #删除Buff + BuffSkill.DoBuffDisApperEx(defender, curBuff, tick) + buffSkill = curBuff.GetSkill() + if not buffSkill: + continue + skillID = buffSkill.GetSkillID() + buffManager.DeleteBuffByTypeID(buffSkill.GetSkillTypeID()) + SkillShell.ClearBuffEffectBySkillID(defender, skillID, ownerID, ownerType) + delSuccess = True + break + return delSuccess, buffSkill, buffType \ No newline at end of file -- Gitblit v1.8.0