From 7577e420ae88bc68662eb7eee72153d260a07f4f Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 17 五月 2019 09:48:14 +0800
Subject: [PATCH] 6805 【后端】【2.0】副本前端化(有地图ID时才进行自定义场景通用判断)
---
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