ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
@@ -177,6 +177,11 @@
                                                     ChConfig.Def_PDictType_GFPassive)
        if findSkillID == 0:
            continue
        passiveEff = GetPassiveEffManager().GetPassiveEff(curPlayer)
        if passiveEff:
            findSkillID = passiveEff.ChangeSkillTypeID(findSkillID)
        skills.append(findSkillID)
        
    return skills
@@ -393,6 +398,7 @@
             4106:ChConfig.TriggerType_AddHP,   # 技能回血 84
             4107:ChConfig.TriggerType_SkillValue,   # 增加技能伤害固定值 82
             4108:ChConfig.TriggerType_SkillSuccess,  # 使用技能成功后不触发技能 处理消耗等问题用 87
             4109:ChConfig.TriggerType_SkillValue,   # 增加技能伤害固定值 82
             }
    return tdict.get(effectID, -1) 
    #===========================================================================
@@ -474,6 +480,9 @@
        self.AffectDogzSkillDict = {}   # 神兽助战技能
        self.AffectSuperEquipSkillDict = {}   # 特殊装备持有技能,相同技能不重复,数值增长性衰减, 触发使用
        self.AffectSuperEquipEffectCntDict = {}  # 特殊装备技能效果对应的已计算后的数值,直接调用
        self.ChangeSkill = {}   # 改变释放的技能ID,方便处理特效动作表现等问题 {原SkillTypeID: 改变后的SkillTypeID}
        self.IsChangeSkill = False # 当前是否刷新技能替换
    
    #记录会影响其他技能或者被动触发释放技能的BUFF
    def AddBuffInfoByEffect(self, effect, skillID, onwerID, onwerType):
@@ -635,10 +644,26 @@
        
        return self.AffectPassiveSkillSetDict
    
    # 改变技能ID的处理, 先存储释放的时候替换, 并且不登记到被动触发
    def ChangeSkillTypeIDDict(self, curSkill):
        hasEffect = SkillCommon.GetSkillEffectByEffectID(curSkill, ChConfig.Def_Skill_Effect_ChangeSkillTypeID)
        if not hasEffect:
            return
        self.ChangeSkill[hasEffect.GetEffectValue(0)] = curSkill.GetSkillTypeID()
        self.IsChangeSkill = True
        GameWorld.DebugLog("self.ChangeSkill  --- %s"%self.ChangeSkill)
        return True
    # 真实替换技能ID
    def ChangeSkillTypeID(self, skillID):
        return self.ChangeSkill.get(skillID, skillID)
    
    # 重刷被动型技能(含sp,天赋,不含被动技能功能)存储
    def RefreshPassiveSkill(self):
        self.AffectSkillDict = {}
        self.ChangeSkill = {}
        skillManager = self.gameObj.GetSkillManager()
        for i in range(0 , skillManager.GetSkillCount()):
            curSkill = skillManager.GetSkillByIndex(i)
@@ -651,6 +676,10 @@
            if curSkill.GetFuncType() in [ChConfig.Def_SkillFuncType_FbPassiveSkill,
                                          ChConfig.Def_SkillFuncType_Dogz]:
                # 被动技能和神兽需设置才有效
                continue
            # 改变技能ID的处理
            if self.ChangeSkillTypeIDDict(curSkill):
                continue
            
            skillTypeID = curSkill.GetSkillTypeID()
@@ -776,9 +805,19 @@
                return
            self.AddPassiveEff(gameObj, passiveEff)
        elif skillID:
            curSkill = GameWorld.GetGameData().GetSkillBySkillID(skillID)
            if curSkill and passiveEff.ChangeSkillTypeIDDict(curSkill):
                # 替换技能不添加
                return
            # 单个添加被动技能
            passiveEff.AddPassiveSkill(skillID)
        if passiveEff.IsChangeSkill:
            GameWorld.DebugLog("刷被动----")
            # 存在替换技能 目前需要刷新镶嵌的被动技能,存在多刷现象
            self.RegistPassiveEffSet(gameObj)
            return True
        return
    
    # 人物需同步注册被动技能
@@ -1632,6 +1671,10 @@
    # 如灼烧是被动技能 但可以被不断的强化
    if useSkill.GetSkillType() != ChConfig.Def_SkillType_PassiveLstDepBuff:
        return False
    if useSkill.GetFuncType() == ChConfig.Def_SkillFuncType_PassiveSkillWithSP:
        # 有专精的被动技能,可以再次触发被动效果
        return False
    return True