From aecf8422a914350ccbf779178a1fdc1acc8971c7 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期一, 11 三月 2019 16:27:41 +0800
Subject: [PATCH] 6341 【后端】【2.0】境界改版开发单

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_DuJie.py         |   39 +++----
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py                                  |   36 ++-----
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DataRecordPack.py                                   |    4 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_AllFamilyBoss.py |   12 ++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py                                    |   26 +---
 PySysDB/PySysDBPY.h                                                                                                     |   10 -
 ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py                                                       |   36 ++-----
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPrestigeSys.py                         |  107 ++++++---------------
 8 files changed, 89 insertions(+), 181 deletions(-)

diff --git a/PySysDB/PySysDBPY.h b/PySysDB/PySysDBPY.h
index 9a49bc0..e055b45 100644
--- a/PySysDB/PySysDBPY.h
+++ b/PySysDB/PySysDBPY.h
@@ -15,16 +15,12 @@
 struct	tagRealm
 {
 	WORD		_Lv;	//境界等级
-	BYTE		IsBigRealm;	//是否大境界
-	DWORD		NeedPoint;	//开启渡劫需要修炼点
-	DWORD		NeedItemID;	//开启渡劫需要道具ID
-	WORD		NeedItemCnt;	//开启渡劫消耗的道具数量
-	dict		NeedActiveTreasure;	//开启渡劫需要激活法宝条件
+	DWORD		NeedLV;	//需要等级
+	DWORD		NeedItemID;	//需要道具ID
+	WORD		NeedItemCnt;	//消耗的道具数量
 	list		AddAttrType;	//境界加成属性类型	
 	list		AddAttrNum;	//境界加成属性值
 	DWORD		BossID;	//渡劫bossid
-	dict		SitTime;	//打坐时间
-	dict		TeamAward;	//组队帮打的人的奖励
 };
 
 //神兵表 #tagGodWeapon
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
index ae970d5..2ca66e3 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -17437,18 +17437,14 @@
 
 
 #------------------------------------------------------
-# A3 11 通知玩家境界渡劫是否开启 #tagMCSyncRealmFBIsOpen
+# A3 11 通知玩家境界信息 #tagMCSyncRealmInfo
 
-class  tagMCSyncRealmFBIsOpen(Structure):
+class  tagMCSyncRealmInfo(Structure):
     _pack_ = 1
     _fields_ = [
                   ("Cmd", c_ubyte),
                   ("SubCmd", c_ubyte),
-                  ("IsOpen", c_ubyte),    #是否开启
-                  ("SitAllTime", c_ushort),    #打坐总时间秒
-                  ("SitRemainTime", c_int),    #开始打坐前剩余时间秒
-                  ("SitStartTime", c_int),    #开始打坐时间
-                  ("LastEnterTime", c_int),    #上次进入渡劫副本时间
+                  ("IsPass", c_ubyte),    #是否通关副本
                   ]
 
     def __init__(self):
@@ -17465,43 +17461,31 @@
     def Clear(self):
         self.Cmd = 0xA3
         self.SubCmd = 0x11
-        self.IsOpen = 0
-        self.SitAllTime = 0
-        self.SitRemainTime = 0
-        self.SitStartTime = 0
-        self.LastEnterTime = 0
+        self.IsPass = 0
         return
 
     def GetLength(self):
-        return sizeof(tagMCSyncRealmFBIsOpen)
+        return sizeof(tagMCSyncRealmInfo)
 
     def GetBuffer(self):
         return string_at(addressof(self), self.GetLength())
 
     def OutputString(self):
-        DumpString = '''// A3 11 通知玩家境界渡劫是否开启 //tagMCSyncRealmFBIsOpen:
+        DumpString = '''// A3 11 通知玩家境界信息 //tagMCSyncRealmInfo:
                                 Cmd:%s,
                                 SubCmd:%s,
-                                IsOpen:%d,
-                                SitAllTime:%d,
-                                SitRemainTime:%d,
-                                SitStartTime:%d,
-                                LastEnterTime:%d
+                                IsPass:%d
                                 '''\
                                 %(
                                 self.Cmd,
                                 self.SubCmd,
-                                self.IsOpen,
-                                self.SitAllTime,
-                                self.SitRemainTime,
-                                self.SitStartTime,
-                                self.LastEnterTime
+                                self.IsPass
                                 )
         return DumpString
 
 
-m_NAtagMCSyncRealmFBIsOpen=tagMCSyncRealmFBIsOpen()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSyncRealmFBIsOpen.Cmd,m_NAtagMCSyncRealmFBIsOpen.SubCmd))] = m_NAtagMCSyncRealmFBIsOpen
+m_NAtagMCSyncRealmInfo=tagMCSyncRealmInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSyncRealmInfo.Cmd,m_NAtagMCSyncRealmInfo.SubCmd))] = m_NAtagMCSyncRealmInfo
 
 
 #------------------------------------------------------
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
index ae970d5..2ca66e3 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -17437,18 +17437,14 @@
 
 
 #------------------------------------------------------
-# A3 11 通知玩家境界渡劫是否开启 #tagMCSyncRealmFBIsOpen
+# A3 11 通知玩家境界信息 #tagMCSyncRealmInfo
 
-class  tagMCSyncRealmFBIsOpen(Structure):
+class  tagMCSyncRealmInfo(Structure):
     _pack_ = 1
     _fields_ = [
                   ("Cmd", c_ubyte),
                   ("SubCmd", c_ubyte),
-                  ("IsOpen", c_ubyte),    #是否开启
-                  ("SitAllTime", c_ushort),    #打坐总时间秒
-                  ("SitRemainTime", c_int),    #开始打坐前剩余时间秒
-                  ("SitStartTime", c_int),    #开始打坐时间
-                  ("LastEnterTime", c_int),    #上次进入渡劫副本时间
+                  ("IsPass", c_ubyte),    #是否通关副本
                   ]
 
     def __init__(self):
@@ -17465,43 +17461,31 @@
     def Clear(self):
         self.Cmd = 0xA3
         self.SubCmd = 0x11
-        self.IsOpen = 0
-        self.SitAllTime = 0
-        self.SitRemainTime = 0
-        self.SitStartTime = 0
-        self.LastEnterTime = 0
+        self.IsPass = 0
         return
 
     def GetLength(self):
-        return sizeof(tagMCSyncRealmFBIsOpen)
+        return sizeof(tagMCSyncRealmInfo)
 
     def GetBuffer(self):
         return string_at(addressof(self), self.GetLength())
 
     def OutputString(self):
-        DumpString = '''// A3 11 通知玩家境界渡劫是否开启 //tagMCSyncRealmFBIsOpen:
+        DumpString = '''// A3 11 通知玩家境界信息 //tagMCSyncRealmInfo:
                                 Cmd:%s,
                                 SubCmd:%s,
-                                IsOpen:%d,
-                                SitAllTime:%d,
-                                SitRemainTime:%d,
-                                SitStartTime:%d,
-                                LastEnterTime:%d
+                                IsPass:%d
                                 '''\
                                 %(
                                 self.Cmd,
                                 self.SubCmd,
-                                self.IsOpen,
-                                self.SitAllTime,
-                                self.SitRemainTime,
-                                self.SitStartTime,
-                                self.LastEnterTime
+                                self.IsPass
                                 )
         return DumpString
 
 
-m_NAtagMCSyncRealmFBIsOpen=tagMCSyncRealmFBIsOpen()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSyncRealmFBIsOpen.Cmd,m_NAtagMCSyncRealmFBIsOpen.SubCmd))] = m_NAtagMCSyncRealmFBIsOpen
+m_NAtagMCSyncRealmInfo=tagMCSyncRealmInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSyncRealmInfo.Cmd,m_NAtagMCSyncRealmInfo.SubCmd))] = m_NAtagMCSyncRealmInfo
 
 
 #------------------------------------------------------
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DataRecordPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DataRecordPack.py
index 2a06a97..3097e88 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DataRecordPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DataRecordPack.py
@@ -1561,9 +1561,9 @@
 
 ## 玩家境界升级
 #  @return
-def DR_RealmLVUp(curPlayer, realmlv, realmPoint, needRealmPoint):
+def DR_RealmLVUp(curPlayer, realmlv):
     dataDict = {'PlayerID':curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), 
-                'AccID':curPlayer.GetAccID(), 'realmlv':realmlv, 'curRealmPoint':realmPoint, 'costRealmPoint':needRealmPoint,
+                'AccID':curPlayer.GetAccID(), 'realmlv':realmlv,
                 'playerlv':curPlayer.GetLV(), 'power':curPlayer.GetFightPower()}
     
     #发送封包
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_AllFamilyBoss.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_AllFamilyBoss.py
index dea11ce..33fe2a7 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_AllFamilyBoss.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_AllFamilyBoss.py
@@ -380,6 +380,7 @@
     if isPass:
         worldLV = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_WorldAverageLv)
         familyAuctionItemDict = {} #{仙盟ID:[[享受收益的成员ID, ...], [[拍品ID,总个数,拍品组数], ...]], ...}
+        batchPlayerIDList, batchAddItemList, batchParamList, batchDetailList = [], [], [], []
         event=["AllFamilyBoss", False, {}]
         needMemberCnt = IpyGameDataPY.GetFuncCfg('LeagueBOSSNumber1')
         for rank, hurtInfo in enumerate(playerHurtList, 1):
@@ -395,6 +396,7 @@
                             FBCommon.Over_itemInfo:FBCommon.GetJsonItemList(menberItemList),
                             'AuctionItem':FBCommon.GetJsonItemList(familyAuctionItemList), 
                             'memberCnt':len(memberIDList)}
+                mailPlayerIDList = []
                 for memberID in memberIDList:
                     member = playerManager.FindPlayerByID(memberID)
                     if member:
@@ -402,7 +404,15 @@
                         member.Sync_TimeTick(IPY_GameWorld.tttLeaveMap, 0, leaveTick, True)
                         FBCommon.NotifyFBOver(member, ChConfig.Def_FBMapID_AllFamilyBoss, lineID, isPass, overDict)
                     else:
-                        PlayerControl.SendMailByKey('LeagueBOSS2', [memberID], menberItemList)
+                        mailPlayerIDList.append(memberID)
+                if mailPlayerIDList:
+                    batchPlayerIDList.append(mailPlayerIDList)
+                    batchAddItemList.append(menberItemList)
+                    batchParamList.append([])
+                    batchDetailList.append({'rank':rank})
+  
+        if batchPlayerIDList:
+            PlayerControl.SendMailBatch("LeagueBOSS2", batchPlayerIDList, batchAddItemList, batchParamList, batchDetail=batchDetailList)
         if familyAuctionItemDict:
             GameWorld.Log('familyAuctionItemDict=%s'%familyAuctionItemDict)
             PlayerAuctionHouse.DoAddFamilyAuctionItem(familyAuctionItemDict)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_DuJie.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_DuJie.py
index 3a91193..3ae9ac9 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_DuJie.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_DuJie.py
@@ -134,17 +134,16 @@
         if not realmIpyData:
             GameWorld.ErrLog("没有该境界等级数据! Lv=%s" % curRealmLV)
             return False
-        needRealmPoint = realmIpyData.GetNeedPoint()
-        if not needRealmPoint:
+        needLV = realmIpyData.GetNeedLV()
+        if not needLV:
             GameWorld.DebugLog("境界已是最大等级,不能升级! Lv=%s" % curRealmLV, curPlayer.GetPlayerID())
             return False
-        if not PlayerControl.HaveMoney(curPlayer, ShareDefine.TYPE_Price_RealmPoint, needRealmPoint, False):
-            GameWorld.DebugLog("境界修炼点不足,无法开启渡劫!needRealmPoint=%s" % (needRealmPoint), curPlayer.GetPlayerID())
+        if curPlayer.GetLV() < needLV:
+            GameWorld.DebugLog("等级不足,无法开启渡劫!needRealmPoint=%s" % (needLV), curPlayer.GetPlayerID())
             return False
-#        if curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmFBIsOpen) != 1:
-#            return False
-   
-    
+        if not GetDuJieBossID():
+            return False
+
     return True
 
 
@@ -187,8 +186,8 @@
         GameWorld.GetGameFB().SetGameFBDict(ChConfig.Map_FBDict_PropertyMark, propertyMark + 1)
         PlayerControl.SetFBFuncLineID(curPlayer, lineID)
         #FBCommon.SetFBPropertyMark(lineID)
-        if lineID == 0:
-            FBCommon.SetFBStep(FB_Step_MapPrepare, tick)
+        #if lineID == 0:
+        FBCommon.SetFBStep(FB_Step_MapPrepare, tick)
 
             
     
@@ -209,9 +208,9 @@
 #                __OnDuJieFBStart(tick)
     fbStep = gameFB.GetFBStep()
     
-    if lineID !=0 and fbStep == FB_Step_CallHelp:
-        FBHelpBattle.SendGameServer_RefreshHelpBattlePlayer(curPlayer, ChConfig.Def_FBMapID_DuJie)
-        return
+#    if lineID !=0 and fbStep == FB_Step_CallHelp:
+#        FBHelpBattle.SendGameServer_RefreshHelpBattlePlayer(curPlayer, ChConfig.Def_FBMapID_DuJie)
+#        return
     
     if fbStep == FB_Step_MapPrepare:
         #初始化并通知等待倒计时
@@ -395,7 +394,7 @@
 
     curStar = gameFB.GetGameFBDictByKey(DuJieFB_Star)
     realmLV = gameFB.GetGameFBDictByKey(DuJieFB_RealmLV)
-    realmIpyData = PlayerPrestigeSys.GetRealmIpyData(realmLV)
+
     FBPropertyMark = FBCommon.GetFBPropertyMark()
     lineID = 1 if FBPropertyMark else 0
     leaveTick = invadeCfg[Def_Time_Leave] * 1000
@@ -423,11 +422,7 @@
                     addXianyuanCoin, reason = FBHelpBattle.DoFBAddXianyuanCoin(curPlayer, ChConfig.Def_FBMapID_DuJie, FBPropertyMark)
                     overDict[FBCommon.Over_xianyuanCoin] = [addXianyuanCoin, reason]
             
-            if realmIpyData and realmIpyData.GetIsBigRealm():
-                #成就
-                PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_DujieFBHelpPass, 1)
-            if playerCnt > 1: #多人组队渡劫
-                EventShell.EventRespons_FBEvent(curPlayer, 'teamdujie')
+            
         FBCommon.NotifyFBOver(curPlayer, ChConfig.Def_FBMapID_DuJie, lineID, isPass, overDict)
     
     return
@@ -525,14 +520,12 @@
 #    if curPlayer.GetFamilyID() <= 0:
 #        GameWorld.DebugLog("没有战盟,不能请求守护!")
 #        return
-    
+    return
     realmLV = GameWorld.GetGameFB().GetGameFBDictByKey(DuJieFB_RealmLV)
     realmIpyData = PlayerPrestigeSys.GetRealmIpyData(realmLV)
     if not realmIpyData:
         return
-    if realmIpyData.GetIsBigRealm():
-        GameWorld.DebugLog("大境界渡劫,不能请求守护!")
-        return
+    
     GameWorld.DebugLog("向盟友寻求渡劫守护!")
     atkAdd = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmFBAttrAdd % ShareDefine.Def_Effect_BaseAtkAddPer)
     msgStr = str([atkAdd, isInspire])
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
index d157c2e..bb2af09 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -43,16 +43,12 @@
 
                 "Realm":(
                         ("WORD", "Lv", 1),
-                        ("BYTE", "IsBigRealm", 0),
-                        ("DWORD", "NeedPoint", 0),
+                        ("DWORD", "NeedLV", 0),
                         ("DWORD", "NeedItemID", 0),
                         ("WORD", "NeedItemCnt", 0),
-                        ("dict", "NeedActiveTreasure", 0),
                         ("list", "AddAttrType", 0),
                         ("list", "AddAttrNum", 0),
                         ("DWORD", "BossID", 0),
-                        ("dict", "SitTime", 0),
-                        ("dict", "TeamAward", 0),
                         ),
 
                 "GodWeapon":(
@@ -1436,29 +1432,21 @@
     
     def __init__(self):
         self.Lv = 0
-        self.IsBigRealm = 0
-        self.NeedPoint = 0
+        self.NeedLV = 0
         self.NeedItemID = 0
         self.NeedItemCnt = 0
-        self.NeedActiveTreasure = {}
         self.AddAttrType = []
         self.AddAttrNum = []
-        self.BossID = 0
-        self.SitTime = {}
-        self.TeamAward = {}
+        self.BossID = 0
         return
         
     def GetLv(self): return self.Lv # 境界等级
-    def GetIsBigRealm(self): return self.IsBigRealm # 是否大境界
-    def GetNeedPoint(self): return self.NeedPoint # 开启渡劫需要修炼点
-    def GetNeedItemID(self): return self.NeedItemID # 开启渡劫需要道具ID
-    def GetNeedItemCnt(self): return self.NeedItemCnt # 开启渡劫消耗的道具数量
-    def GetNeedActiveTreasure(self): return self.NeedActiveTreasure # 开启渡劫需要激活法宝条件
+    def GetNeedLV(self): return self.NeedLV # 需要等级
+    def GetNeedItemID(self): return self.NeedItemID # 需要道具ID
+    def GetNeedItemCnt(self): return self.NeedItemCnt # 消耗的道具数量
     def GetAddAttrType(self): return self.AddAttrType # 境界加成属性类型
     def GetAddAttrNum(self): return self.AddAttrNum # 境界加成属性值
-    def GetBossID(self): return self.BossID # 渡劫bossid
-    def GetSitTime(self): return self.SitTime # 打坐时间
-    def GetTeamAward(self): return self.TeamAward # 组队帮打的人的奖励
+    def GetBossID(self): return self.BossID # 渡劫bossid
 
 # 神兵表
 class IPY_GodWeapon():
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPrestigeSys.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPrestigeSys.py
index 41eeaff..683d721 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPrestigeSys.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPrestigeSys.py
@@ -25,7 +25,6 @@
 import ShareDefine
 import GameWorld
 import ChConfig
-import PlayerMagicWeapon
 import PlayerSuccess
 import OpenServerCampaign
 import PlayerBillboard
@@ -61,66 +60,14 @@
 #};
 def OpenRealmFB(index, clientData, tick):
     return
-    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
-    if not GameFuncComm.GetFuncCanUse(curPlayer, ShareDefine.GameFuncID_Official):
-        GameWorld.DebugLog("爵位境界功能未开启, 无法开启渡劫!curLV=%s" % curPlayer.GetLV())
-        return
     
-    if curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmFBIsOpen):
-        GameWorld.DebugLog("渡劫已开启,无法再次开启!")
-        return
-    
-    curRealmLV = curPlayer.GetOfficialRank()
-    realmIpyData = GetRealmIpyData(curRealmLV)
-    if not realmIpyData:
-        GameWorld.ErrLog("没有该境界等级数据! Lv=%s" % curRealmLV)
-        return
-    needRealmPoint = realmIpyData.GetNeedPoint()
-    if not needRealmPoint:
-        GameWorld.DebugLog("境界已是最大等级,不能升级! Lv=%s" % curRealmLV, curPlayer.GetPlayerID())
-        return
-    if not PlayerControl.HaveMoney(curPlayer, ShareDefine.TYPE_Price_RealmPoint, needRealmPoint, False):
-        GameWorld.DebugLog("境界修炼点不足,无法开启渡劫!needRealmPoint=%s" % (needRealmPoint), curPlayer.GetPlayerID())
-        return
-    needActiveTreasureDict = realmIpyData.GetNeedActiveTreasure()
-    for mwType, needActiveCnt in needActiveTreasureDict.items():
-        activeCnt = PlayerMagicWeapon.GetMWActiveCntByType(curPlayer, mwType)
-        if activeCnt < needActiveCnt:
-            GameWorld.DebugLog("开启渡劫 需要法宝的激活条件不满足! needActiveTreasureDict=%s,法宝类型=%s, 已激活数量=%s" % (needActiveTreasureDict, mwType, activeCnt))
-            return
-    
-    
-    needItemID = realmIpyData.GetNeedItemID()
-    needItemCount = realmIpyData.GetNeedItemCnt()
-    # 支持不消耗物品升级
-    if needItemID > 0 and needItemCount > 0:
-        curPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem)
-        hasEnough, itemIndexList = ItemCommon.GetItem_FromPack_ByID(needItemID, curPack, needItemCount)
-        if not hasEnough:
-            GameWorld.DebugLog("渡劫开启, 材料不足! Lv=%s, needItemID=%s,needItemCount=%s" 
-                               % (curRealmLV, needItemID, needItemCount))
-            return
-        #扣除物品
-        ItemCommon.ReduceItem(curPlayer, curPack, itemIndexList, needItemCount, True, "Realm")
-    PlayerControl.PayMoney(curPlayer, ShareDefine.TYPE_Price_RealmPoint, needRealmPoint)
-    
-    
-    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RealmFBIsOpen, 1)
-    SyncRealmFBState(curPlayer)
-    GameWorld.Log("开启渡劫副本成功: curRealmLV=%s" % curRealmLV, curPlayer.GetPlayerID())
-    return
 
 def SyncRealmFBState(curPlayer):
     #通知客户端渡劫副本是否开启
-    return
     if not GameFuncComm.GetFuncCanUse(curPlayer, ShareDefine.GameFuncID_Official):
         return
-    sendPack = ChPyNetSendPack.tagMCSyncRealmFBIsOpen()
-    sendPack.IsOpen = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmFBIsOpen)
-    sendPack.SitAllTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmSitAllTime)
-    sendPack.SitRemainTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmSitRemainTime)
-    sendPack.SitStartTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmSitStartTime)
-    #sendPack.LastEnterTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmFBLastEnterTime)
+    sendPack = ChPyNetSendPack.tagMCSyncRealmInfo()
+    sendPack.IsPass = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmFBIsOpen)
     NetPackCommon.SendFakePack(curPlayer, sendPack)
     return
 
@@ -166,10 +113,30 @@
 def DoRealmLVUp(index, clientData, tick):
     #升级境界
     curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
-    canLvUp = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmFBIsOpen) == 2
-    if not canLvUp:
-        GameWorld.DebugLog('    不能升级境界')
+    curRealmLV = curPlayer.GetOfficialRank()
+    realmIpyData = GetRealmIpyData(curRealmLV)
+    if not realmIpyData:
+        GameWorld.ErrLog("没有该境界等级数据! Lv=%s" % curRealmLV)
         return
+    if realmIpyData.GetBossID():
+        canLvUp = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmFBIsOpen) == 1
+        if not canLvUp:
+            GameWorld.DebugLog('    副本未过关,不能升级境界')
+            return
+    
+    needItemID = realmIpyData.GetNeedItemID()
+    needItemCount = realmIpyData.GetNeedItemCnt()
+    # 支持不消耗物品升级
+    if needItemID > 0 and needItemCount > 0:
+        curPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem)
+        hasEnough, itemIndexList = ItemCommon.GetItem_FromPack_ByID(needItemID, curPack, needItemCount)
+        if not hasEnough:
+            GameWorld.DebugLog("渡劫开启, 材料不足! Lv=%s, needItemID=%s,needItemCount=%s" 
+                               % (curRealmLV, needItemID, needItemCount))
+            return
+        #扣除物品
+        ItemCommon.ReduceItem(curPlayer, curPack, itemIndexList, needItemCount, True, "Realm")
+    
     
     DoRealmLVUpLogic(curPlayer)
     return
@@ -197,10 +164,7 @@
     OpenServerCampaign.UpdOpenServerCampaignRecordData(curPlayer, ShareDefine.Def_Campaign_Type_RealmLV, nextRealmLv)
     EventShell.EventRespons_RealmUp(curPlayer, nextRealmLv)
     #流向
-    realmPoint = PlayerControl.GetMoney(curPlayer, ShareDefine.TYPE_Price_RealmPoint)
-    realmIpyData = GetRealmIpyData(curRealmLV)
-    needRealmPoint = realmIpyData.GetNeedPoint() if realmIpyData else 0
-    DataRecordPack.DR_RealmLVUp(curPlayer, nextRealmLv, realmPoint, needRealmPoint)
+    DataRecordPack.DR_RealmLVUp(curPlayer, nextRealmLv)
     return True
 
 def DologicDujieFBPass(curPlayer, realmLV, star):
@@ -208,21 +172,10 @@
     realmIpyData = GetRealmIpyData(realmLV)
     if not realmIpyData:
         return
-    needRealmPoint = realmIpyData.GetNeedPoint()
-    PlayerControl.PayMoney(curPlayer, ShareDefine.TYPE_Price_RealmPoint, needRealmPoint)
-    DoRealmLVUpLogic(curPlayer)
-    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RealmFBIsOpen, 0)
-    
-#    sitTimeDict = realmIpyData.GetSitTime()
-#    sitSecond = sitTimeDict.get(str(star), 0)
-#    if sitSecond == 0:
-#        #没有打坐时间,直接升境界
-#        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RealmFBIsOpen, 2)
-#    else:
-#        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RealmSitAllTime, sitSecond)
-#        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RealmSitRemainTime, sitSecond)
-#    SyncRealmFBState(curPlayer)
-    
+    #DoRealmLVUpLogic(curPlayer)
+    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RealmFBIsOpen, 1)
+    SyncRealmFBState(curPlayer)
+
     
     return
 

--
Gitblit v1.8.0