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 | 116 ++++++++++++++++++----------------------------------------
1 files changed, 36 insertions(+), 80 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 fb59904..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,11 +25,11 @@
import ShareDefine
import GameWorld
import ChConfig
-import PlayerMagicWeapon
import PlayerSuccess
import OpenServerCampaign
import PlayerBillboard
import EventShell
+import DataRecordPack
#------------------------------------------------------------------------------
(
@@ -46,8 +46,7 @@
# DoRealmLVUpLogic(curPlayer)
return True
-def OnLogin(curPlayer):
-
+def OnLogin(curPlayer):
SyncRealmFBState(curPlayer)
return
@@ -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,15 +113,35 @@
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
-def DoRealmLVUpLogic(curPlayer):
+def DoRealmLVUpLogic(curPlayer, needSys=True):
curRealmLV = curPlayer.GetOfficialRank()
nextRealmLv = curRealmLV + 1
GameWorld.DebugLog(' 升级境界nextRealmLv=%s'%nextRealmLv)
@@ -184,10 +151,8 @@
curPlayer.SetOfficialRank(nextRealmLv)
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RealmFBIsOpen, 0)
-
- #realmIpyData = GetRealmIpyData(curRealmLV)
- #if realmIpyData and realmIpyData.GetIsBigRealm():
- PlayerControl.WorldNotify(0, 'RealmUpSuccess', [curPlayer.GetName(), nextRealmLv])
+ if needSys:
+ PlayerControl.WorldNotify(0, 'RealmUpSuccess', [curPlayer.GetName(), nextRealmLv])
RefreshOfficialAttr(curPlayer)
GameFuncComm.DoFuncOpenLogic(curPlayer)
SyncRealmFBState(curPlayer)
@@ -198,6 +163,8 @@
# 记录开服活动
OpenServerCampaign.UpdOpenServerCampaignRecordData(curPlayer, ShareDefine.Def_Campaign_Type_RealmLV, nextRealmLv)
EventShell.EventRespons_RealmUp(curPlayer, nextRealmLv)
+ #流向
+ DataRecordPack.DR_RealmLVUp(curPlayer, nextRealmLv)
return True
def DologicDujieFBPass(curPlayer, realmLV, star):
@@ -205,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