From 921ba9c6e954f2f1377cb08d5a8476c9e6c2b30e Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 15 三月 2019 17:44:27 +0800
Subject: [PATCH] 6332 【后端】【2.0】主要是拍品相关规则调整及背包优化(给非拍卖物品为拍品时优化)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPrestigeSys.py |  134 ++++++++++----------------------------------
 1 files changed, 31 insertions(+), 103 deletions(-)

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 ed64d70..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
@@ -47,32 +46,7 @@
 #        DoRealmLVUpLogic(curPlayer)
     return True
 
-def OnLogin(curPlayer):
-    if not GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_VersionFix, ChConfig.Def_VerFix_ReamlvFix):
-        GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_VersionFix, ChConfig.Def_VerFix_ReamlvFix, 1)
-        #计算老号当前境界修行点--折算修行点对应新境界--弥补多余修行点
-        oldRealmLV = curPlayer.GetOfficialRank()
-        if oldRealmLV:
-            givePoint = IpyGameDataPY.GetFuncEvalCfg('ReRealm', 1, {}).get(oldRealmLV, 0)
-            newRealmLV = 0
-            ipyMgr = IpyGameDataPY.IPY_Data()
-            maxRealmLV = ipyMgr.GetRealmByIndex(ipyMgr.GetRealmCount()-1).GetLv()
-            for lv in xrange(maxRealmLV):
-                ipyData = GetRealmIpyData(lv)
-                if not ipyData:
-                    break
-                needPoint = ipyData.GetNeedPoint()
-                if givePoint < needPoint:
-                    break
-                givePoint -= needPoint
-                newRealmLV = lv + 1
-            if newRealmLV > 0:
-                curPlayer.SetOfficialRank(newRealmLV-1)
-                DoRealmLVUpLogic(curPlayer, False)
-            PlayerControl.SendMailByKey('ReRealm', [curPlayer.GetID()], [(ChConfig.Def_ItemID_RealmPoint, givePoint, 1)], [newRealmLV, givePoint])
-            GameWorld.Log('老号境界处理 oldRealmLV=%s,newRealmLV=%s,givePoint=%s'%(oldRealmLV, newRealmLV, givePoint), curPlayer.GetID())
-        
-        
+def OnLogin(curPlayer):        
     SyncRealmFBState(curPlayer)
     return
 
@@ -86,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
 
@@ -191,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
@@ -222,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):
@@ -233,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