From 1b25d47f1fa7ec2e93e16593eb045ebc8be6a6fd Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期三, 03 一月 2024 15:18:55 +0800 Subject: [PATCH] 10084 【主干】【港台】【越南】【BT0.1】【BT0.1-1元】100%聚灵丹(仙界秘境)与50%聚灵丹(仙界秘境)效果修改 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py | 30 +++++++++++++++++++++++++++--- 1 files changed, 27 insertions(+), 3 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py index 6e637b2..639f63e 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py @@ -89,11 +89,11 @@ # buff替换逻辑,十位数 def GetBuffReplaceType(curSkill): - return curSkill.GetCanRepeatTime()/10 + return curSkill.GetCanRepeatTime()/10%10 # buff根据释放者不同判断是否共存buff,百位数 Def_Buff_NoCoexist def GetBuffCoexistType(curSkill): - return curSkill.GetCanRepeatTime()/10%10 + return curSkill.GetCanRepeatTime()/100 def GetBuffMaxLayer(curSkill): layerMaxCnt = 0 @@ -102,6 +102,16 @@ layerMaxCnt = hasEffect.GetEffectValue(0) # 能叠加的最大上限 return layerMaxCnt + +def IsLayerPlusAttr(curBuff): + ## 是否叠加属性层级buff,可叠加时,属性=单层属性*层级,默认叠加 + hasEffect = SkillCommon.GetSkillEffectByEffectID(curBuff.GetSkill(), ChConfig.Def_Skill_Effect_LayerCnt) + if not hasEffect: + return False + if hasEffect.GetEffectValue(1)/10 == 1: + # 配置不叠加,直接返回False + return False + return True # 改变BUFF持续时间 def ChangeLastTime(attacker, curSkill): @@ -175,7 +185,7 @@ hasEffect = SkillCommon.GetSkillEffectByEffectID(curSkill, ChConfig.Def_Skill_Effect_LayerCnt) if hasEffect: layerMaxCnt = hasEffect.GetEffectValue(0) # 能叠加的最大上限 - layerCalc = hasEffect.GetEffectValue(1) # 增加层级还是减少层级 Def_BuffLayer_Add + layerCalc = hasEffect.GetEffectValue(1)%10 # 增加层级还是减少层级 Def_BuffLayer_Add #1 检查是否有相同的BUFF,如果有相同的就刷新时间 @@ -949,6 +959,20 @@ PYSync_RefreshBuff(gameObj, buff, buffType) return +def ReduceBuffLayer(gameObj, buff, skillTypeID, delLayerCnt=1): + ## 减少buff的Value值 + #GameWorld.DebugLog("ReduceBuffLayer: skillTypeID=%s,delLayerCnt=%s %s" % (skillTypeID, delLayerCnt, buff)) + if not buff and not skillTypeID: + return + + if not buff: + buff = SkillCommon.FindBuffByID(gameObj, skillTypeID)[0] + + if not buff or buff.GetLayer() <= 0: + return + + SetBuffLayer(gameObj, buff, max(0, buff.GetLayer() - delLayerCnt), skillTypeID=skillTypeID, isSync=True) + return ## 属性buff效果id对应计算模块字典{效果id:(计算模块名后缀, [属性类型])} # 带属性的buff 默认以属性类型为效果ID -- Gitblit v1.8.0