| | |
| | | lineID = 1 if FBCommon.GetFBPropertyMark() else 0
|
| | | return FBCommon.GetFBLineStepTime(ChConfig.Def_FBMapID_DuJie, lineID)
|
| | |
|
| | | def GetDuJieBossID():
|
| | | realmLV = GameWorld.GetGameFB().GetGameFBDictByKey(DuJieFB_RealmLV)
|
| | | realmIpyData = PlayerPrestigeSys.GetRealmIpyData(realmLV)
|
| | | if not realmIpyData:
|
| | | GameWorld.ErrLog("没有该境界等级数据! Lv=%s" % realmLV)
|
| | | def GetDuJieBossID(curPlayer=None):
|
| | | if curPlayer:
|
| | | realmLV = curPlayer.GetOfficialRank()
|
| | | else:
|
| | | realmLV = GameWorld.GetGameFB().GetGameFBDictByKey(DuJieFB_RealmLV)
|
| | | taskIpyDataList = IpyGameDataPY.GetIpyGameDataListNotLog("RealmLVUPTask", realmLV)
|
| | | if not taskIpyDataList:
|
| | | return
|
| | | return realmIpyData.GetBossID()
|
| | | for taskIpyData in taskIpyDataList:
|
| | | if taskIpyData.GetTaskType() != PlayerPrestigeSys.RealmTaskType_Dujie:
|
| | | continue
|
| | | taskID = taskIpyData.GetTaskID()
|
| | | if curPlayer:
|
| | | if curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmTaskValue % taskID):
|
| | | GameWorld.DebugLog("玩家渡劫boss已完成击杀! realmLV=%s,taskID=%s" % (realmLV, taskID), curPlayer.GetPlayerID())
|
| | | return
|
| | | valueList = taskIpyData.GetNeedValueList()
|
| | | return valueList[0] if valueList else 0
|
| | | return
|
| | |
|
| | | #---FB接口----------
|
| | | ##副本初始化
|
| | |
| | | GameWorld.DebugLog("爵位境界功能未开启, 无法开启渡劫!curLV=%s" % curPlayer.GetLV())
|
| | | return False
|
| | | if lineID == 0 or curPlayer.GetTeamLV() == IPY_GameWorld.tmlLeader or (lineID == 1 and curPlayer.GetTeamID() == 0):
|
| | | curRealmLV = curPlayer.GetOfficialRank()
|
| | | realmIpyData = PlayerPrestigeSys.GetRealmIpyData(curRealmLV)
|
| | | if not realmIpyData:
|
| | | GameWorld.ErrLog("没有该境界等级数据! Lv=%s" % curRealmLV)
|
| | | bossID = GetDuJieBossID(curPlayer)
|
| | | if not bossID:
|
| | | GameWorld.ErrLog("没有可挑战的渡劫boss或已完成: realmLV=%s" % curPlayer.GetOfficialRank(), curPlayer.GetPlayerID())
|
| | | return False
|
| | | needLV = realmIpyData.GetNeedLV()
|
| | | if not needLV:
|
| | | GameWorld.DebugLog("境界已是最大等级,不能升级! Lv=%s" % curRealmLV, curPlayer.GetPlayerID())
|
| | | return False
|
| | | if curPlayer.GetLV() < needLV:
|
| | | GameWorld.DebugLog("等级不足,无法开启渡劫!needRealmPoint=%s" % (needLV), curPlayer.GetPlayerID())
|
| | | return False
|
| | | if not realmIpyData.GetBossID():
|
| | | return False
|
| | |
|
| | | |
| | | return True
|
| | |
|
| | |
|
| | |
| | | if isPass and leaderPlayer:
|
| | | if curPlayer.GetPlayerID() == leaderPlayerID:
|
| | | #渡劫通过处理
|
| | | PlayerPrestigeSys.DologicDujieFBPass(curPlayer, realmLV, curStar)
|
| | | PlayerPrestigeSys.AddRealmTaskValue(curPlayer, PlayerPrestigeSys.RealmTaskType_Dujie, 1)
|
| | | #清除CD
|
| | | FBCommon.SetFBPDictValue(curPlayer, ChConfig.Def_PDict_LastEnterFBTick % ChConfig.Def_FBMapID_DuJie, 0)
|
| | | FBCommon.SyncFBEnterTick(curPlayer)
|