From 80760d7bb7ae12f127bd67613dab8a8a02d4400c Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 12 二月 2026 15:29:30 +0800
Subject: [PATCH] 16 卡牌服务端(删除不需要旧功能:法器、炼体、魅力、情缘、仙宫、神兽、系统特权、印记;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py |  268 -----------------------------------------------------
 1 files changed, 1 insertions(+), 267 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
index 598b4b1..40aecf6 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
@@ -31,15 +31,10 @@
 import PlayerControl
 import NetPackCommon
 import ChPyNetSendPack
-import PlayerVip
 import AttackCommon
 import PyGameData
-import PlayerHorse
 import BaseAttack
-import EventShell
 import NPCCommon
-import PetControl
-import QuestCommon
 import ItemCommon
 import FBCommon
 
@@ -71,74 +66,6 @@
 def OnPassiveSet(index, clientData, tick):
     #改为都生效,不需要设置
     return
-#    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
-#    findSkill = None
-#    if clientData.SkillID != 0:
-#        findSkill = curPlayer.GetSkillManager().FindSkillBySkillID(clientData.SkillID)
-#        if not findSkill:
-#            return
-#        
-#        if findSkill.GetFuncType() != ChConfig.Def_SkillFuncType_FbPassiveSkill:
-#            return
-#  
-#    holeCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 2)
-#    if clientData.Index >= holeCnt:
-#        # 超出孔数
-#        return
-#    
-#    pageCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 3)
-#    if clientData.Page >= pageCnt:
-#        # 超出页数
-#        return
-#    
-#    tmpDict = IpyGameDataPY.GetFuncEvalCfg('PassSkillEquipLimit', 1)
-#    # 剩余VIP时间
-#    #haveVipTime = PlayerVip.GetCurVIPTime(curPlayer)
-#    strIndex = str(clientData.Index) 
-#    if strIndex in tmpDict:
-#        # 判断条件
-#        for key, value in tmpDict[strIndex].items():
-#            if key == "level" and curPlayer.GetLV() < value:
-#                return
-#            if key == "vipLv":
-#                if curPlayer.GetVIPLv() < value:# or haveVipTime <=0:
-#                    return
-#            if key == "MountLv":
-#                if PlayerHorse.GetHorseSumLV(curPlayer) < value:
-#                    return
-#            
-#
-#            # 多加一种任务判断
-#            if key == "OpenSkillSlots":
-#                # 主线任务完成时会设置标志可进地图标志
-#                mission_1 = QuestCommon.GetCommonMission(curPlayer)
-#                if not mission_1:
-#                    return
-#
-#                if (pow(2, int(strIndex)) & mission_1.GetProperty("OpenSkillSlots")) == 0:
-#                    return
-#                
-#    PlayerControl.NomalDictSetProperty(curPlayer, 
-#                                       ChConfig.Def_PDict_GFPassiveIndex%(clientData.Page, clientData.Index),
-#                                       clientData.SkillID,
-#                                       ChConfig.Def_PDictType_GFPassive)
-#    
-#    # 通知客户端设置成功
-#    sendPack = ChPyNetSendPack.tagMCPassiveSetAnswer()
-#    sendPack.Page = clientData.Page
-#    sendPack.Index = clientData.Index
-#    sendPack.SkillID = clientData.SkillID
-#    NetPackCommon.SendFakePack(curPlayer, sendPack)
-#    
-#    # 刷被动效果和属性
-#    page = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GFPassivePage, 0, ChConfig.Def_PDictType_GFPassive)
-#    if clientData.Page == page:
-#        GetPassiveEffManager().RegistPassiveEffSet(curPlayer, True)
-#        PlayerControl.PlayerControl(curPlayer).RefreshPlayerAttrState()
-#        
-#    EventShell.EventRespons_PassiveSet(curPlayer)
-#    return
-
 
 #===============================================================================
 # //B4 08 被动技能页选择(功法) # tagCMPassivePage
@@ -219,87 +146,16 @@
 def OnLoginGFPassive(curPlayer):
     #改为都生效,不需要设置
     return
-#    # ---通知每页数据---
-#    holeCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 2)
-#    pageCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 3)
-#    
-#    sendPack = ChPyNetSendPack.tagMCPassiveSet()
-#    sendPack.PageCnt = pageCnt
-#    sendPack.PassiveSkills = []
-#    
-#    
-#    #tmpDict = IpyGameDataPY.GetFuncEvalCfg('PassSkillEquipLimit', 1)
-#    
-#    # 剩余VIP时间
-#    #haveVipTime = PlayerVip.GetCurVIPTime(curPlayer)
-#    
-#    for i in xrange(pageCnt):
-#        skills = ChPyNetSendPack.tagMCPassiveSkills()
-#        skills.Count = holeCnt
-#        skills.SkillIDList = []
-#        for j in xrange(holeCnt):
-#
-#            #===================================================================
-#            # # 判断VIP过期的情况
-#            # for key, value in tmpDict.get(j, {}).items():
-#            #    if key == "vipLv":
-#            #        if curPlayer.GetVIPLv() < value or haveVipTime <=0:
-#            #            PlayerControl.NomalDictSetProperty(curPlayer, 
-#            #                                               ChConfig.Def_PDict_GFPassiveIndex%(i, j), 
-#            #                                               0,
-#            #                                               ChConfig.Def_PDictType_GFPassive)
-#            #===================================================================
-#        
-#            skillID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GFPassiveIndex%(i, j), 0,
-#                                                     ChConfig.Def_PDictType_GFPassive)
-#            skills.SkillIDList.append(skillID)
-#        
-#        sendPack.PassiveSkills.append(skills)
-#    
-#    NetPackCommon.SendFakePack(curPlayer, sendPack)
-#    
-#    # ---通知激活页---
-#    page = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GFPassivePage, 0, ChConfig.Def_PDictType_GFPassive)
-#    sendPack = ChPyNetSendPack.tagMCPassivePage()
-#    sendPack.Page = page
-#    NetPackCommon.SendFakePack(curPlayer, sendPack)
-#    return
 
 # 切换地图
 def OnLoadMapGFPassive(curPlayer):
     # 被动技能
     GetPassiveEffManager().RegistPassiveEff(curPlayer)
     
-    #tmpDict = IpyGameDataPY.GetFuncEvalCfg('PassSkillEquipLimit', 1)
-    #holeCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 2)
-    
-    # 剩余VIP时间
-    #haveVipTime = PlayerVip.GetCurVIPTime(curPlayer)
-    
-    #当前使用页
-    #page = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GFPassivePage, 0, ChConfig.Def_PDictType_GFPassive)
-
-#===============================================================================
-#    for j in xrange(holeCnt):
-# 
-#        # 判断VIP过期的情况
-#        for key, value in tmpDict.get(j, {}).items():
-#            if key != "vipLv":
-#                continue
-#            if curPlayer.GetVIPLv() < value or haveVipTime <= 0:
-#                PlayerControl.NomalDictSetProperty(curPlayer, 
-#                                                   ChConfig.Def_PDict_GFPassiveIndex%(page, j), 
-#                                                   0,
-#                                                   ChConfig.Def_PDictType_GFPassive)
-#===============================================================================
-    
     # 魔族法宝-被动技能页
     GetPassiveEffManager().RegistPassiveEffSet(curPlayer)
     
     GetPassiveEffManager().RegistPassiveBuff(curPlayer)
-
-    # 助战神兽技能
-    GetPassiveEffManager().RegistPassiveEffDogz(curPlayer)
     
     GetPassiveEffManager().RegistSuperEquipSkillDict(curPlayer)
 
@@ -410,10 +266,6 @@
              4083:ChConfig.TriggerType_AddThumpHitPer, # 增加重击伤害百分比
              4084:ChConfig.TriggerType_ThumpHit, # 对第一目标重击触发技能
              4085:ChConfig.TriggerType_SkillSuccess,  # 任何技能释放成功都可触发 76    加印记
-             4086:ChConfig.TriggerType_AttackAddSkillPerYinji,  # 所有攻击伤害(SkillPer)增加,含普攻,计算时 为了飘字使用
-             4087:ChConfig.TriggerType_AttackAddSkillPerYinji,  # 所有攻击伤害(SkillPer)增加,含普攻,计算时 为了飘字使用
-             4088:ChConfig.TriggerType_AttackAddSkillPerYinji,  # 所有攻击伤害(SkillPer)增加,含普攻,计算时 为了飘字使用
-             4089:ChConfig.TriggerType_AttackAddSkillPerYinji,  # 所有攻击伤害(SkillPer)增加,含普攻,计算时 为了飘字使用
              4090:ChConfig.TriggerType_AttackOver,  # 攻击(对敌技能)后被动技能被触发 4
              4091:ChConfig.TriggerType_SkillOverNoAttack,   # 技能释放后 与TriggerType_AttackOver相反19,
              4092:ChConfig.TriggerType_SkillSuccessExpend,  # 任何技能释放成功都可触发 76  减印记
@@ -570,38 +422,6 @@
     # 获得被动触发的 buff
     def GetBuffsByTriggerType(self, triggerType, useSkillID=0):
         return self.AffectBuffDict.get((triggerType, 0), {})
-     
-    
-    # 重刷神兽助战技能
-    def RefreshDogzBattleSkill(self):
-        self.AffectDogzSkillDict = {}
-        skills = FindDogzBattleSkills(self.gameObj)
-        
-        for curSkill in skills:
-            if not SkillCommon.isPassiveTriggerSkill(curSkill):
-                continue
-            
-            skillTypeID = curSkill.GetSkillTypeID()
-            
-            connSkillID = SkillShell.GetConnectSkillID(curSkill)    # 关联技能ID, 0代表不限技能
-            for i in xrange(curSkill.GetEffectCount()):
-                curEffect = curSkill.GetEffect(i)
-                effectID = curEffect.GetEffectID()
-                if effectID == 0:
-                    continue
-                
-                triggerType = GetTriggerTypeByEffectID(effectID)
-                if triggerType == -1:
-                    continue
-                
-                key = (triggerType,connSkillID)
-                if key not in self.AffectDogzSkillDict:
-                    self.AffectDogzSkillDict[key] = []
-                    
-                self.AffectDogzSkillDict[key].append((skillTypeID, effectID))
-        
-        return self.AffectDogzSkillDict
-    
     
     # 重刷特殊装备技能
     def RefreshSuperEquipSkillDict(self):
@@ -897,23 +717,7 @@
         else:
             passiveEff.RefreshPassiveSkillSet(isCD)
         return
-        
-        
-    # 人物需同步注册神兽技能
-    def RegistPassiveEffDogz(self, gameObj):
-        passiveEff = self.GetPassiveEff(gameObj)
-        if not passiveEff:
-            # 强制刷新所有被动技能
-            passiveEff = PassiveEff(gameObj)
-            if not passiveEff.RefreshDogzBattleSkill():
-                return
-            self.AddPassiveEff(gameObj, passiveEff)
-        else:
-            passiveEff.RefreshDogzBattleSkill()
-        return
-        
-        
-        
+    
     # 人物需同步注册装备技能,技能目前为可触发的被动类,若有定义冲突则可用功能类型划分
     def RegistSuperEquipSkillDict(self, gameObj):
         passiveEff = self.GetPassiveEff(gameObj)
@@ -932,11 +736,6 @@
         # buff # 筛选buffType 否则NPC没有此接口会报错
         for buffType in [IPY_GameWorld.bfBuff, IPY_GameWorld.bfDeBuff, IPY_GameWorld.bfProcessBuff
                          , IPY_GameWorld.btPassiveBuf, IPY_GameWorld.bfActionBuff, IPY_GameWorld.bfProcessDeBuff]:
-            
-            if buffType == IPY_GameWorld.btPassiveBuf and gameObj.GetGameObjType() == IPY_GameWorld.gotNPC:
-                # NPC只有宠物有被动BUFF
-                if not PetControl.IsPet(gameObj):
-                    continue
             
             buffTuple = SkillCommon.GetBuffManagerByBuffType(gameObj, buffType)
             #通过类型获取目标的buff管理器为空,则跳出
@@ -1632,71 +1431,6 @@
             curValue += callFunc(attacker, defender, passiveEffect)
             
     return curValue
-
-
-# 因为要兼容低等级技能,所以技能只能是在助战的时候,先删除神兽技能再学习新的助战神兽技能
-def PlayerDogzSkill(curPlayer):
-
-    dogzSkills = [] # 需要学习的技能
-    ipyDataMgr = IpyGameDataPY.IPY_Data()
-    for i in xrange(ipyDataMgr.GetDogzCount()):
-        ipyData = ipyDataMgr.GetDogzByIndex(i)
-        if not GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_PDict_DogzFightState, i):
-            continue
-        
-        dogzSkills.extend(ipyData.GetHelpBattleSkills())
-    
-    delDogzSkills = [] # 删除不在助战神兽队列的技能
-    skillManager = curPlayer.GetSkillManager()
-    for i in xrange(skillManager.GetSkillCount()):
-        curSkill = skillManager.GetSkillByIndex(i)
-        if curSkill.GetFuncType() != ChConfig.Def_SkillFuncType_Dogz:
-            continue
-        skillID = curSkill.GetSkillID()
-        
-        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)
-    
-    # 刷被动效果
-    GetPassiveEffManager().RegistPassiveEffDogz(curPlayer)
-    return
-
-
-# 获取助战神兽的技能列表
-def FindDogzBattleSkills(gameObj):
-    skills = []
-    if gameObj.GetGameObjType() != IPY_GameWorld.gotPlayer:
-        return skills
-    
-    skillManager = gameObj.GetSkillManager()
-    for i in xrange(skillManager.GetSkillCount()):
-        curSkill = skillManager.GetSkillByIndex(i)
-        if not curSkill:
-            continue
-        
-        if curSkill.GetFuncType() != ChConfig.Def_SkillFuncType_Dogz:
-            continue
-        skills.append(curSkill)
-        
-    return skills
-
 
 # 遍历身上装备技能以及各自个数,装备技能不需要学习
 # 保证不同的装备技能不会有相同的效果, 效果数值的衰减是根据相同技能个数计算而不是效果个数 1-pow((1-初始值),相同技能个数)

--
Gitblit v1.8.0