| | |
| | | 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 == ():
|
| | |
| | | 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()
|
| | |
| | | # 此处不能传技能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
|
| | |
| | | if not callFunc:
|
| | | continue
|
| | |
|
| | | callFunc(curObj, addBuff, curEffect, tick)
|
| | | callFunc(curObj, addBuff, curEffect, tick, buffOwner)
|
| | |
|
| | | return
|
| | |
|
| | |
| | | # @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
|
| | |
|
| | | #---------------------------------------------------------------------
|
| | |
| | | skillInfo = [addSkillID, ownerID, ownerType]
|
| | | if skillInfo not in skillIDListInDelBuff:
|
| | | skillIDListInDelBuff.append(skillInfo)
|
| | | |
| | | curObj.SetDict(ChConfig.Def_PlayerKey_SkillInDelBuff, 0) |
| | | |
| | | OnSkillAfterBuffDisappear(curObj, skillIDListInDelBuff, tick)
|
| | |
|
| | | #执行DoBuffDisApper中,标记的玩家处理要求
|
| | |
| | |
|
| | | 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();
|