From ae75fd5ec02495ca1433809a5e0f01e749ad9fb5 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期三, 28 八月 2019 17:01:34 +0800 Subject: [PATCH] 8199 【400】【主干】【后端】运营活动 和开(合)服活动时间交叉优化 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py | 26 +++++++++++++++----------- 1 files changed, 15 insertions(+), 11 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 cd6970a..cf93871 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py @@ -126,7 +126,7 @@ if not SkillCommon.IsBuff(curSkill): GameWorld.ErrLog("%s 不能加这个buff, 因为它是攻击技能! %s-->TypeID = %d"%(curObj.GetName(), curSkill.GetSkillName(), curSkill.GetSkillType())) return False - + buffTuple = SkillCommon.GetBuffManagerByBuffType( curObj, buffType ) #通过类型获取目标的buff管理器为空,则跳出 if buffTuple == (): @@ -232,14 +232,13 @@ changeLayer = True # Def_Buff_Replace_New和Def_Buff_Recharge 均可走到此逻辑 - __BuffCanRemain(buffState, curBuff, i, resultTime, plusValueList, buffOwner) - # 此处考虑下plusValue变强是否刷属性 - #DoAddBuffOver(curObj, curSkill, addBuff, tick) + __BuffCanRemain(curObj, buffState, curBuff, i, resultTime, plusValueList, buffOwner) + return changeLayer else: if buffReplaceType == ChConfig.Def_Buff_Recharge: # 充能型 - __BuffCanRemain(buffState, curBuff, i, resultTime, plusValueList, buffOwner) + __BuffCanRemain(curObj, buffState, curBuff, i, resultTime, plusValueList, buffOwner) return processInterval = curBuff.GetProcessInterval() @@ -414,7 +413,7 @@ # 此处不能传技能curSkill 屏蔽被动触发被动限制 # 暂且特殊处理控制类buff才触发 if SkillCommon.GetBuffType(curSkill) == IPY_GameWorld.bfActionBuff: - PassiveBuffEffMng.OnPassiveBuffTrigger(curObj, buffOwner, None, ChConfig.TriggerType_AddBuffOver, tick) + PassiveBuffEffMng.GetValueByPassiveBuffTriggerType(curObj, buffOwner, curSkill, ChConfig.TriggerType_AddBuffOver, False) #是否是持续性技能 isLstSkill = curSkill.GetSkillType() in ChConfig.Def_LstBuff_List @@ -437,7 +436,7 @@ if not callFunc: continue - callFunc(curObj, addBuff, curEffect, tick) + callFunc(curObj, addBuff, curEffect, tick, buffOwner) return @@ -545,14 +544,15 @@ # @param tick 当前时间 # @return None # @remarks 函数详细说明. -def __BuffCanRemain(buffState, curBuff, buffIndex, resultTime, plusValueList, buffOwner): +def __BuffCanRemain(curObj, buffState, curBuff, buffIndex, resultTime, plusValueList, buffOwner): if resultTime != -1: curBuff.SetRemainTime(resultTime) #重置buff总值 __SetBuffValue(curBuff , plusValueList , buffOwner) buffState.Sync_RefreshBuff(buffIndex, curBuff.GetRemainTime()) - + + DoAddBuffOver(curObj, curBuff.GetSkill(), curBuff, buffOwner, GameWorld.GetGameWorld().GetTick()) return #--------------------------------------------------------------------- @@ -698,7 +698,8 @@ skillInfo = [addSkillID, ownerID, ownerType] if skillInfo not in skillIDListInDelBuff: skillIDListInDelBuff.append(skillInfo) - + curObj.SetDict(ChConfig.Def_PlayerKey_SkillInDelBuff, 0) + OnSkillAfterBuffDisappear(curObj, skillIDListInDelBuff, tick) #执行DoBuffDisApper中,标记的玩家处理要求 @@ -1001,7 +1002,10 @@ def PYSync_RefreshBuff(gameObj, curBuff, buffType, notifyAll=True, owner = None): sendPack = ChNetSendPack.tagObjAddBuff() - + if not curBuff: + return + if not curBuff.GetSkill(): + return sendPack.ObjType = gameObj.GetGameObjType() sendPack.ObjID = gameObj.GetID(); sendPack.SkillID = curBuff.GetSkill().GetSkillID(); -- Gitblit v1.8.0