hxp
2022-03-02 4070cde64fce44caf818d8aefa985c2cdbdde0a2
9415 【BT】【后端】古神战场(修改战场结算信息同步内容)
1个文件已修改
32 ■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_CrossBattlefield.py 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_CrossBattlefield.py
@@ -1507,6 +1507,9 @@
    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()
@@ -1542,6 +1545,28 @@
    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]:
@@ -1559,11 +1584,6 @@
            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
@@ -1603,7 +1623,7 @@
            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)