hxp
2024-12-10 cc3b988b52ba3f473862d289ec58e7873e35d713
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_DuJie.py
@@ -61,13 +61,25 @@
    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接口----------
##副本初始化
@@ -128,21 +140,11 @@
        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
@@ -409,7 +411,7 @@
        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)