| | |
| | | FBCommon.NotifyCopyMapPlayerFBHelp(tick, DoFBHelp, 0)
|
| | |
|
| | | #awardOnlineTimes = IpyGameDataPY.GetFuncCfg("CrossBattlefieldAward", 1) # 结算奖励需参与活动时长,秒钟
|
| | | winnerOrderAwardDict = IpyGameDataPY.GetFuncEvalCfg("CrossBattlefieldAward", 2, {})
|
| | | winnerOrderIntAwardDict = {int(k):v for k, v in winnerOrderAwardDict.items()}
|
| | | syncRankCount = max(winnerOrderIntAwardDict) if winnerOrderIntAwardDict else 20
|
| | |
|
| | | #gameFB = GameWorld.GetGameFB()
|
| | | worldObj = GetBattleWorld()
|
| | |
| | | for callTeam in callTeamInfo.values():
|
| | | allCallPlayerIDList.extend(callTeam["callPlayerIDList"])
|
| | |
|
| | | factionInfoList = []
|
| | | for faction in [ShareDefine.CampType_Justice, ShareDefine.CampType_Evil]:
|
| | | factionObj = GetBattleFactionObj(faction)
|
| | | rankPlayerList = []
|
| | | for battleObj in factionObj.battlePlayerSortList[:syncRankCount]:
|
| | | rankPlayerList.append({"name":battleObj.name, "job":battleObj.job, "score":battleObj.score, |
| | | "killCount":battleObj.killCount, "crystalCollCnt":battleObj.crystalCollCnt})
|
| | | |
| | | callPlayerName = ""
|
| | | for callPlayerID, callFaction in worldObj.callOpenPlayerInfo.items():
|
| | | if callFaction == faction:
|
| | | callBattleObj = GetBattlePlayerObj(callPlayerID)
|
| | | callPlayerName = callBattleObj.name
|
| | | break
|
| | | |
| | | factionInfoList.append({"faction":faction, "rankPlayerList":rankPlayerList, "callPlayerName":callPlayerName, |
| | | "superItemPlayerName":factionObj.superItemPlayerName})
|
| | | |
| | | costTime = int((tick - GameWorld.GetGameFB().GetFBStepTick()) / 1000.0)
|
| | | overDict = {"winnerFaction":winnerFaction, "factionInfoList":factionInfoList, FBCommon.Over_costTime:costTime, |
| | | "finalSuperItemPlayerName":finalSuperItemPlayerName}
|
| | | |
| | | scoreKingID, scoreKingName = 0, "" # 本场积分王: 获胜方在线第一名积分
|
| | | battlePlayerList = []
|
| | | for faction in [ShareDefine.CampType_Justice, ShareDefine.CampType_Evil]:
|
| | |
| | | scoreKingObj = GetBattlePlayerObj(scoreKingID)
|
| | | scoreKingName = scoreKingObj.name
|
| | |
|
| | | rankPlayerList = []
|
| | | for battleObj in factionObj.battlePlayerSortList[:20]:
|
| | | rankPlayerList.append({"Name":battleObj.name, "Job":battleObj.job, "Score":battleObj.score})
|
| | | |
| | | overDict = {"rankPlayerList":rankPlayerList, "faction":faction, "superItemPlayerName":finalSuperItemPlayerName, "scoreKingName":scoreKingName}
|
| | | for rank, battleObj in enumerate(factionObj.battlePlayerSortList, 1):
|
| | | playerID = battleObj.playerID
|
| | | score = battleObj.score
|
| | |
| | | player.Sync_TimeTick(IPY_GameWorld.tttLeaveMap, 0, leaveTime, True)
|
| | |
|
| | | lineID = 0
|
| | | overDict.update({FBCommon.Over_rank:rank, "score":score, "highScoreToday":highScoreToday, "onlineTimes":onlineTimes})
|
| | | overDict.update({FBCommon.Over_rank:rank, "score":score, "highScoreToday":highScoreToday, "onlineTimes":onlineTimes, "faction":faction})
|
| | | FBCommon.NotifyFBOver(player, ChConfig.Def_FBMapID_CrossBattlefield, lineID, isWinner, overDict)
|
| | |
|
| | | GameWorld.Log("本场最终结算积分王: scoreKingID=%s" % scoreKingID, fbPropertyID)
|