From ce9190555eb8ba098d25632fdea39ae198cad599 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 12 三月 2020 23:50:35 +0800
Subject: [PATCH] 8401 【后端】BOSS复活修改(增加活跃修炼完成事件16;宝箱支持动态开出玩家当前解锁的最大境界装备)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/Item_Chests.py |    6 ++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py             |   37 +++++++++++++++++++++++++++++++++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActivity.py    |    3 +++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py                 |    3 ++-
 4 files changed, 48 insertions(+), 1 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index 224bf86..2da3418 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -5326,7 +5326,8 @@
 Def_BRAct_RuneTreasure,  #符印寻宝 13
 Def_BRAct_FairyDomain,  #缥缈仙域 14
 Def_BRAct_FamilyBoss,  #仙盟BOSS 15
-) = range(1, 15+1)
+Def_BRAct_ActivityPlace,  #活跃放置 16
+) = range(1, 16+1)
 
 #全民来嗨活动定义(仙界盛典)
 PeoplePartyActIDList = (
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py
index 777be72..3b459b6 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py
@@ -1394,6 +1394,43 @@
     curPlayer.SetEquipShowSwitch(updEquipShowSwitch)
     return
 
+def GetPlayerMaxEquipClassLV(curPlayer):
+    ## 获取玩家当前解锁的装备阶
+    key = "RealmEquipClassLVMap"
+    RealmEquipClassLVMap = IpyGameDataPY.GetConfigEx(key)
+    if not RealmEquipClassLVMap:
+        RealmEquipClassLVMap = {}
+        infoDict = {}
+        ipyDataMgr = IpyGameDataPY.IPY_Data()
+        for index in xrange(ipyDataMgr.GetEquipControlCount()):
+            ipyData = ipyDataMgr.GetEquipControlByIndex(index)
+            infoDict[ipyData.GetNeedRealmLV()] = ipyData.GetClassLV()
+        needReamlLVList = infoDict.keys()
+        needReamlLVList.sort() # 升序排
+        for i, realmLV in enumerate(needReamlLVList):
+            classLV = infoDict[realmLV]
+            if i == len(needReamlLVList) - 1:
+                RealmEquipClassLVMap[realmLV] = classLV
+            if i == 0:
+                continue
+            else:
+                preRealmLV = needReamlLVList[i - 1]
+                preClassLV = infoDict[preRealmLV]
+                for pRealmLV in range(preRealmLV, realmLV):
+                    RealmEquipClassLVMap[pRealmLV] = preClassLV
+        GameWorld.DebugLog("加载境界对应开放最大装备阶设置: %s" % RealmEquipClassLVMap)
+        IpyGameDataPY.SetConfigEx(key, RealmEquipClassLVMap)
+        
+    playerRealmLV = curPlayer.GetOfficialRank()
+    if playerRealmLV in RealmEquipClassLVMap:
+        return RealmEquipClassLVMap[playerRealmLV]
+    
+    maxRealmLV = max(RealmEquipClassLVMap)
+    if playerRealmLV >= maxRealmLV:
+        return RealmEquipClassLVMap[maxRealmLV]
+    
+    return 0
+
 #获取当前是第几套装备外观
 def GetEquipFacadeClassLV(curPlayer):return curPlayer.GetEquipShowSwitch()%1000/10
 
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/Item_Chests.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/Item_Chests.py
index cefa863..27a7a75 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/Item_Chests.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/Item_Chests.py
@@ -25,6 +25,7 @@
 import PlayerRune
 import NPCCommon
 import ChConfig
+import ChEquip
 import ChItem
 
 import random
@@ -351,6 +352,11 @@
         if not placeList:
             GameWorld.ErrLog("部位集合key不存在!chestsItemID=%s,placeKey=%s" % (chestsItemID, placeKey))
             continue
+        # 未指定,默认取当前解锁的最大境界装备阶
+        if classLV == 0:
+            classLV = ChEquip.GetPlayerMaxEquipClassLV(curPlayer)
+            GameWorld.DebugLog("    未指定装备阶,默认取玩家当前解锁的最大阶: classLV=%s" % classLV)
+            
         randEquipIDList = NPCCommon.__GetEquipIDList(chestsItemID, classLV, color, isSuit, placeList, itemJobList, findType="ChestsItem")
         if not randEquipIDList:
             continue
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActivity.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActivity.py
index e077b0d..c994ea8 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActivity.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActivity.py
@@ -35,6 +35,7 @@
 import datetime
 import time
 import FormulaControl
+import PlayerBossReborn
 
 #关联类型
 (
@@ -899,6 +900,8 @@
     EventShell.EventRespons_ActivityPlace(curPlayer, "cangetreward")
     
     Sync_ActivityPlaceInfo(curPlayer)
+    
+    PlayerBossReborn.AddBossRebornActionCnt(curPlayer, ChConfig.Def_BRAct_ActivityPlace, endCount)
     return
 
 def GetActivityPlaceReward(curPlayer):

--
Gitblit v1.8.0