From f724b8e55ee83824c3231bd955785b839f88be63 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 16 一月 2020 16:28:50 +0800
Subject: [PATCH] 8369 境界修改(法宝被动技能改为激活即生效,不需要再设置)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py |  298 ++++++++++++++++++++++++++++++++---------------------------
 1 files changed, 162 insertions(+), 136 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 5960074..59a371e 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
@@ -68,73 +68,75 @@
 # };
 #===============================================================================
 def OnPassiveSet(index, clientData, tick):
-    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
+#    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
 
 
 #===============================================================================
@@ -148,40 +150,44 @@
 #===============================================================================
 
 def OnPassivePage(index, clientData, tick):
-    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
-    pageCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 3)
-    if clientData.Page >= pageCnt:
-        # 超出页数
-        return
-    
-    
-    PlayerControl.NomalDictSetProperty(curPlayer, 
-                                       ChConfig.Def_PDict_GFPassivePage,
-                                       clientData.Page,
-                                       ChConfig.Def_PDictType_GFPassive)
-    
-    # 通知客户端设置成功
-    sendPack = ChPyNetSendPack.tagMCPassivePage()
-    sendPack.Page = clientData.Page
-    NetPackCommon.SendFakePack(curPlayer, sendPack)
-    
-    # 刷被动效果和属性
-    GetPassiveEffManager().RegistPassiveEffSet(curPlayer, True)
-    PlayerControl.PlayerControl(curPlayer).RefreshPlayerAttrState()
+    #改为都生效,不需要设置
     return
+#    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
+#    pageCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 3)
+#    if clientData.Page >= pageCnt:
+#        # 超出页数
+#        return
+#    
+#    
+#    PlayerControl.NomalDictSetProperty(curPlayer, 
+#                                       ChConfig.Def_PDict_GFPassivePage,
+#                                       clientData.Page,
+#                                       ChConfig.Def_PDictType_GFPassive)
+#    
+#    # 通知客户端设置成功
+#    sendPack = ChPyNetSendPack.tagMCPassivePage()
+#    sendPack.Page = clientData.Page
+#    NetPackCommon.SendFakePack(curPlayer, sendPack)
+#    
+#    # 刷被动效果和属性
+#    GetPassiveEffManager().RegistPassiveEffSet(curPlayer, True)
+#    PlayerControl.PlayerControl(curPlayer).RefreshPlayerAttrState()
+#    return
 
 
 # 检查是否当前正在使用的被动技能
 def FindUsePassiveSkills(curPlayer):
-    page = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GFPassivePage, 0, ChConfig.Def_PDictType_GFPassive)
-    holeCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 2)
     skills = []
-    for i in xrange(holeCnt):
-        findSkillID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GFPassiveIndex%(page, i), 0, 
-                                                     ChConfig.Def_PDictType_GFPassive)
-        if findSkillID == 0:
+    skillManager = curPlayer.GetSkillManager()
+    for i in xrange(skillManager.GetSkillCount()):
+        curSkill = skillManager.GetSkillByIndex(i)
+        if not curSkill:
             continue
         
+        if curSkill.GetFuncType() != ChConfig.Def_SkillFuncType_FbPassiveSkill:
+            continue
+        
+        findSkillID = curSkill.GetSkillID()
         passiveEff = GetPassiveEffManager().GetPassiveEff(curPlayer)
         if passiveEff:
             findSkillID = passiveEff.ChangeSkillTypeID(findSkillID)
@@ -190,53 +196,73 @@
         
     return skills
 
+#改为都生效,不需要设置
+#    page = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GFPassivePage, 0, ChConfig.Def_PDictType_GFPassive)
+#    holeCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 2)
+#    skills = []
+#    for i in xrange(holeCnt):
+#        findSkillID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GFPassiveIndex%(page, i), 0, 
+#                                                     ChConfig.Def_PDictType_GFPassive)
+#        if findSkillID == 0:
+#            continue
+#        
+#        passiveEff = GetPassiveEffManager().GetPassiveEff(curPlayer)
+#        if passiveEff:
+#            findSkillID = passiveEff.ChangeSkillTypeID(findSkillID)
+#            
+#        skills.append(findSkillID)
+#        
+#    return skills
+
 # 登录通知,并过滤过期VIP孔
 def OnLoginGFPassive(curPlayer):
-    # ---通知每页数据---
-    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
+#    # ---通知每页数据---
+#    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):

--
Gitblit v1.8.0