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/Player/PlayerPrestigeSys.py | 107 +++++++++++++++-------------------------------------- 1 files changed, 30 insertions(+), 77 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 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