From 4070cde64fce44caf818d8aefa985c2cdbdde0a2 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期一, 23 五月 2022 17:00:06 +0800 Subject: [PATCH] 9415 【BT】【后端】古神战场(修改战场结算信息同步内容) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_CrossBattlefield.py | 32 ++++++++++++++++++++++++++------ 1 files changed, 26 insertions(+), 6 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_CrossBattlefield.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_CrossBattlefield.py index 830fe33..2807769 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_CrossBattlefield.py +++ b/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) -- Gitblit v1.8.0