| | |
| | | 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
|
| | |
|
| | | ## 进入传送点
|
| | |
| | | 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
|
| | |
|
| | | ##副本总逻辑计时器
|
| | |
| | | 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
|
| | |
| | | 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)
|
| | |
| | | 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())
|