ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py
@@ -18,13 +18,13 @@
import GameBuffs
import ChConfig
import FBLogic
import ReadChConfig
import SkillShell
import PassiveBuffEffMng
import ChNetSendPack
import PlayerTJG
import OperControlManager
import GameObj
import CrossPlayerData
#---------------------------------------------------------------------
#---------------------------------------------------------------------
@@ -156,6 +156,9 @@
    #用于BUFF满的时候处理刷新逻辑
    isDelRefresh = False
    
    # 向跨服发送数据
    CrossPlayerData.SendMergeData_Buff(curObj, curSkillID, plusValueList)
    # buff层级
    layerMaxCnt = 0
    layerCalc = 0
@@ -190,8 +193,8 @@
        
        if buffReplaceType == ChConfig.Def_Buff_Replace_Better:
            if buffSkillLV > curSkillLV:
                # 只取最好的
                continue
                # 只取最好的, 不可加直接退出
                return False
        
        resultTime = -1 #不改变时间的情况
        if buffRepeatTimeType == ChConfig.Def_BuffTime_Reset:
@@ -216,10 +219,10 @@
                        curBuff.SetLayer(curLayerCnt + 1)
                        #BUFF层级变化触发被动
                        if buffOwner:
                            curObj.SetDict("addBuffLayer", curBuff.GetLayer())
                            curObj.SetDict(ChConfig.Def_PlayerKey_AddBuffLayer, curBuff.GetLayer())
                            PassiveBuffEffMng.OnPassiveSkillTrigger(buffOwner, curObj, curSkill, ChConfig.TriggerType_AddLayer, tick)
                            PassiveBuffEffMng.OnPassiveBuffTrigger(buffOwner, curObj, curSkill, ChConfig.TriggerType_AddLayer, tick)
                            curObj.SetDict("addBuffLayer", 0)
                            curObj.SetDict(ChConfig.Def_PlayerKey_AddBuffLayer, 0)
                    else:
                        curBuff.SetLayer(layerMaxCnt)
                    changeLayer = True
@@ -729,6 +732,47 @@
    if passiveEff:
        passiveEff.DelBuffInfo(skillData)
    return
#---------------------------------------------------------------------
## 执行buff消失触发逻辑,不处理buff的功能逻辑,只处理需要的必须状态逻辑
#  如不处理buff的 伤害,爆炸等,但必须处理恢复眩晕状态等
def DoBuffDisApperEx( curObj, curBuff, tick ):
    #这个函数里面不能做Buff添加和删除逻辑!!!!!不然指针会错乱
    curSkill = curBuff.GetSkill()
    skillData = GameWorld.GetGameData().GetSkillBySkillID(curSkill.GetSkillID())
    #是否是持续性技能
    isLstSkill = curSkill.GetSkillType() in ChConfig.Def_LstBuff_List
    PassiveBuffEffMng.OnPassiveSkillTrigger(curObj, None, curSkill, ChConfig.TriggerType_BuffDisappear, tick)
    #buff消失的触发
    for effectIndex in range( 0, curSkill.GetEffectCount() ):
        curEffect = curSkill.GetEffect( effectIndex )
        effectID = curEffect.GetEffectID()
        if not effectID:
            continue
        if isLstSkill:
            callFunc = GameWorld.GetExecFunc( GameBuffs, "BuffProcess_%d.%s"%( effectID, "OnBuffDisappearEx") )
            if not callFunc:
                callFunc = GameWorld.GetExecFunc( GameBuffs, "Buff_%d.%s"%( effectID, "OnBuffDisappearEx") )
        else:
            callFunc = GameWorld.GetExecFunc( GameBuffs, "Buff_%d.%s"%( effectID, "OnBuffDisappearEx") )
        if not callFunc:
            continue
        callFunc( curObj, curSkill, curBuff, curEffect, tick )
    passiveEff = PassiveBuffEffMng.GetPassiveEffManager().GetPassiveEff(curObj)
    if passiveEff:
        passiveEff.DelBuffInfo(skillData)
    return
#---------------------------------------------------------------------
## buff消失
#  @param curObj 当前目标