xdh
2019-03-18 6ef04a63b7411f2570c2c30414697bca8c45dd61
6335 【后端】【2.0】娲皇遗迹修改
1个文件已修改
41 ■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_QueenRelics.py 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_QueenRelics.py
@@ -95,7 +95,12 @@
        GameWorld.DebugLog("上一层非最大评级过关,无法挑战下一层!lineID=%s,preLineID=%s,preLineGrade=%s,maxGrade=%s" 
                           % (lineId, preLineID, preLineGrade, maxGrade), curPlayer.GetPlayerID())
        return False
    #判断战力是否满足本层要求
    helpIpyData = IpyGameDataPY.GetIpyGameData("FBHelpBattle", mapID, lineId)
    if helpIpyData:
        if curPlayer.GetFightPower() < helpIpyData.GetFightPowerMin():
            GameWorld.DebugLog("战力不足%s,无法挑战本层!lineID=%s" % (helpIpyData.GetFightPowerMin(), lineId), curPlayer.GetPlayerID())
            return False
    return True
## 进入传送点
@@ -197,9 +202,9 @@
    helpIpyData = IpyGameDataPY.GetIpyGameData("FBHelpBattle", ChConfig.Def_FBMapID_QueenRelics, lineID)
    if helpIpyData:
        gameFB.SetGameFBDict(ChConfig.FBPD_HelpBattleFBBaseHurt, helpIpyData.GetRobotBaseHurt())
        gameFB.SetGameFBDict(ChConfig.FBPD_HelpBattleFBFightPower, helpIpyData.GetFightPowerMin())
        gameFB.SetGameFBDict(ChConfig.FBPD_HelpBattleFBFightPower, helpIpyData.GetGetFightPowerMin())
        GameWorld.DebugLog("    更新副本助战机器人基础伤害: lineID=%s,RobotBaseHurt=%s,fbFightPower=%s" 
                           % (lineID, helpIpyData.GetRobotBaseHurt(), helpIpyData.GetFightPowerMin()))
                           % (lineID, helpIpyData.GetRobotBaseHurt(), helpIpyData.GetGetFightPowerMin()))
    return
##副本总逻辑计时器
@@ -467,31 +472,39 @@
    fbLineTime = FBCommon.GetFBLineStepTime(ChConfig.Def_FBMapID_QueenRelics, lineID)
    rewardRateList = FBCommon.GetFBGradeRewardRateList(mapID)
    maxGrade = len(rewardRateList)
    curPlayer = FBCommon.GetCurSingleFBPlayer()
    if not curPlayer:
        return
    nextLineID = 0
    # 最高评级过关,可挑战下一关
    if isPass and grade >= maxGrade:
        nextLineIpyData = FBCommon.GetFBLineIpyData(mapID, lineID + 1, False)
        nextLineID = 0 if not nextLineIpyData else (lineID + 1) # 找不到想下一层数据代表通关
        if nextLineID:
            helpIpyData = IpyGameDataPY.GetIpyGameData("FBHelpBattle", mapID, nextLineID)
            if helpIpyData and curPlayer.GetFightPower() < helpIpyData.GetFightPowerMin():
                nextLineID = 0 #战力不足,则不可挑战下一关
        
    
    gameFB = GameWorld.GetGameFB()
    gameFB.SetGameFBDict(FBKey_NextLineID, nextLineID)
    GameWorld.DebugLog("开始过关结算: lineID=%s,grade=%s,isPass=%s,nextLineID=%s" % (lineID, grade, isPass, nextLineID))
    
    playerManager = GameWorld.GetMapCopyPlayerManager()
    for index in xrange(playerManager.GetPlayerCount()):
        curPlayer = playerManager.GetPlayerByIndex(index)
        if not curPlayer:
            continue
#    playerManager = GameWorld.GetMapCopyPlayerManager()
#    for index in xrange(playerManager.GetPlayerCount()):
#        curPlayer = playerManager.GetPlayerByIndex(index)
#        if not curPlayer:
#            continue
        DoFBHelp(curPlayer, tick)
        
        playerID = curPlayer.GetPlayerID()
        rewardLine = gameFB.GetPlayerGameFBDictByKey(playerID, FBPKey_RewardLine)
    rewardLine = lineID #gameFB.GetPlayerGameFBDictByKey(playerID, FBPKey_RewardLine) 改成只给本层奖励
        needSyncFBData = False
        overDict = {}
        if isPass:
            overDict = {FBCommon.Over_costTime:costTime, FBCommon.Over_grade:grade}
        if not nextLineID:#没有下一层则给奖励!!
            rewardRet = __GivePlayerQueenRelicsReward(curPlayer, dataMapID, rewardLine - 1, lineID, grade, maxGrade, rewardRateList)
            if rewardRet:
                needSyncFBData, startRewardLineID, totalSP, rewardItemList = rewardRet
@@ -511,7 +524,7 @@
        updRewardLine = lineID + 1
        gameFB.SetPlayerGameFBDict(playerID, FBPKey_RewardLine, updRewardLine)
        
        if isPass and not rewardLine:
    if isPass and not nextLineID:
            isInFBOnDay = gameFB.GetPlayerGameFBDictByKey(playerID, FBPKey_IsInFBOnDay)
            if not isInFBOnDay:
                GameWorld.DebugLog("首次结算奖励,增加挑战次数!", playerID)
@@ -645,6 +658,12 @@
    if not toLineIpyData:
        GameWorld.ErrLog("没有目标功能线路!toLineID=%s" % toLineID)
        return
    #判断战力是否满足本层要求
    helpIpyData = IpyGameDataPY.GetIpyGameData("FBHelpBattle", mapID, toLineID)
    if helpIpyData:
        if curPlayer.GetFightPower() < helpIpyData.GetFightPowerMin():
            GameWorld.DebugLog("战力不足%s,无法挑战下一层!toLineID=%s" % (helpIpyData.GetFightPowerMin(), toLineID), curPlayer.GetPlayerID())
            return
    
    if curPlayer.GetPlayerAction() == IPY_GameWorld.paDie:
        GameWorld.Log("进入下一层时玩家是死亡状态,先复活!", curPlayer.GetPlayerID())