|  |  |  | 
|---|
|  |  |  | callFunc = GameWorld.GetExecFunc(GameBuffs, "Buff_%s.%s"%(moduleSuffix, "OnCalcBuffEx")) | 
|---|
|  |  |  | if callFunc: | 
|---|
|  |  |  | callFunc(objDetel, curEffect, allAttrList[index], curBuff) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 持续性属性变化的buff,目前只有持续减益 | 
|---|
|  |  |  | callFunc = GameWorld.GetExecFunc(GameBuffs, "BuffProcess_%s.%s"%(moduleSuffix, "OnCalcBuffEx")) | 
|---|
|  |  |  | if callFunc: | 
|---|
|  |  |  | callFunc(objDetel, curEffect, allAttrList[index], curBuff) | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ## 获得buff效果的计算模块文件后缀 | 
|---|
|  |  |  | 
|---|
|  |  |  | def CalcBuffers_Effect(curPlayer, allAttrList, calcEffectIDList=[]): | 
|---|
|  |  |  |  | 
|---|
|  |  |  | for buffType in range(IPY_GameWorld.bfBuff, IPY_GameWorld.btBufMax): | 
|---|
|  |  |  | #这些类型不影响玩家计算属性 | 
|---|
|  |  |  | if buffType in [IPY_GameWorld.bfProcessBuff, #IPY_GameWorld.bfProcessDeBuff, | 
|---|
|  |  |  | IPY_GameWorld.bfMapBuff, | 
|---|
|  |  |  | IPY_GameWorld.bfEquipBuff]: | 
|---|
|  |  |  | continue | 
|---|
|  |  |  |  | 
|---|
|  |  |  | buffTuple = SkillCommon.GetBuffManagerByBuffType(curPlayer, buffType) | 
|---|
|  |  |  | #通过类型获取目标的buff管理器为空,则跳出 | 
|---|
|  |  |  | if buffTuple == (): | 
|---|
|  |  |  | continue | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #这些类型不影响玩家计算属性 | 
|---|
|  |  |  | if buffType in [IPY_GameWorld.bfProcessBuff, | 
|---|
|  |  |  | IPY_GameWorld.bfProcessDeBuff, IPY_GameWorld.bfMapBuff, | 
|---|
|  |  |  | IPY_GameWorld.bfEquipBuff]: | 
|---|
|  |  |  | continue | 
|---|
|  |  |  |  | 
|---|
|  |  |  | buffManager = buffTuple[0] | 
|---|