hxp
2018-11-01 acd1649429df17b675122b3708704625b61c4b08
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
@@ -816,6 +816,11 @@
        
    return True
#ntSummon:(3)普通召唤兽,可继承主人基础属性如攻击
#ntElf:(4)玩家替身,完全拥有玩家属性和被动功能
#ntFairy :(7)同ntSummon,但技能可触发被动功能
# ntElf 定义为人物使用对地持续性技能,并且人物可以移动,则需要ntElf做依托物的情况
# 那么ntElf执行人物的伤害计算和被动触发效果
# 被动技能只处理玩家,宠物,和灵
@@ -825,7 +830,7 @@
        return attacker
    
    npcType = attacker.GetType()
    if npcType not in [IPY_GameWorld.ntPet, IPY_GameWorld.ntElf]:
    if npcType not in [IPY_GameWorld.ntPet, IPY_GameWorld.ntElf, IPY_GameWorld.ntFairy]:
        if attacker.GetIsBoss():
            return attacker
        return
@@ -834,7 +839,7 @@
        # --宠物
        return attacker
    
    if npcType == IPY_GameWorld.ntElf:
    else:
        # ntElf 定义为人物使用对地持续性技能,并且人物可以移动,则需要ntElf做依托物的情况
        # 那么ntElf执行人物的伤害计算和被动触发效果
        attacker = NPCCommon.GetSummonNPCOwner(IPY_GameWorld.gotPlayer, attacker)
@@ -1135,21 +1140,25 @@
        if curSkill.GetFuncType() != ChConfig.Def_SkillFuncType_Dogz:
            continue
        skillID = curSkill.GetSkillID()
        if skillID in dogzSkills:
            dogzSkills.remove(skillID)
            continue
        
        delDogzSkills.append(skillID)
        
    GameWorld.DebugLog("PlayerDogzSkill:%s - 删除%s"%(dogzSkills, delDogzSkills))
    
    # 删除非助战技能
    # 删除神兽技能
    for skillID in delDogzSkills:
        skillManager.DeleteSkillBySkillID(skillID, False)
    
    # 添加助战技能,同类技能取最高
    dogzSkills.sort()
    for skillID in dogzSkills:
        skillData = GameWorld.GetGameData().GetSkillBySkillID(skillID)
        if not skillData:
            continue
        if skillData.GetSkillType() == ChConfig.Def_SkillType_AttrSkillNoLearn:
            # 同技能可多个叠加的技能不能学,算属性时直接取表
            continue
        skillManager.LearnSkillByID(skillID, False)
    
    # 刷被动效果