hch
2019-05-09 bc915a9b717eccef3c8d825f9af79a7596394ac7
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py
@@ -25,6 +25,7 @@
import OperControlManager
import GameObj
import CrossPlayerData
import AttackCommon
#---------------------------------------------------------------------
#---------------------------------------------------------------------
@@ -51,6 +52,8 @@
    and SkillCommon.GetSkillBattleType(curSkill) == ChConfig.Def_BattleRelationType_CommNoBoss:
        # 释放后 对指定BOSS无效的技能
        return True
    buffOwner = AttackCommon.ElfChangeAttacker(buffOwner)  # Elf灵为替身攻击,要取玩家的属性
    
    result = AddBuffNoRefreshState(curObj, buffType, curSkill, tick, addBuffValueList, buffOwner, addForce)
    
@@ -378,7 +381,7 @@
        if triggerType == -1:
            continue
        passiveEff = PassiveBuffEffMng.GetPassiveEffManager().InitObjPassiveEff(curObj)
        passiveEff.AddBuffInfoByEffect(curEffect, skillID)
        passiveEff.AddBuffInfoByEffect(curEffect, skillID, onwerID, onwerType)
        
    #添加BUFF后的特殊处理
@@ -568,6 +571,8 @@
        return curBuff, i
    
    return None, 0
#---------------------------------------------------------------------
## 刷新BUFF的时间
#  @param curBuff 当前BUFF
@@ -685,8 +690,10 @@
        SkillShell.ClearBuffEffectBySkillID(curObj, curSkill.GetSkillID(), ownerID, ownerType)
        
        addSkillID = curObj.GetDictByKey(ChConfig.Def_PlayerKey_SkillInDelBuff) 
        if addSkillID and addSkillID not in skillIDListInDelBuff:
            skillIDListInDelBuff.append(addSkillID)
        if addSkillID:
            skillInfo = [addSkillID, ownerID, ownerType]
            if skillInfo not in skillIDListInDelBuff:
                skillIDListInDelBuff.append(skillInfo)
        
    OnSkillAfterBuffDisappear(curObj, skillIDListInDelBuff, tick)
    
@@ -699,12 +706,15 @@
# DoBuffDisApper不能做Buff添加和删除逻辑!!!!!不然指针会错乱, 故在外层处理
def OnSkillAfterBuffDisappear(curObj, skillIDListInDelBuff, tick):
    posX, posY = curObj.GetPosX(), curObj.GetPosY()
    for skillID in skillIDListInDelBuff:
        skillData = GameWorld.GetGameData().GetSkillBySkillID(skillID)
    for skillInfo in skillIDListInDelBuff:
        attacker = GameWorld.GetObj(skillInfo[1], skillInfo[2])
        if not attacker:
            attacker = curObj
        skillData = GameWorld.GetGameData().GetSkillBySkillID(skillInfo[0])
        if not skillData:
            continue
        
        SkillShell.Trigger_UseSkill(curObj, curObj, skillData, tick, posX, posY)
        SkillShell.Trigger_UseSkill(attacker, curObj, skillData, tick, posX, posY)
    return
#---------------------------------------------------------------------