赛程数据合并
parent
bdf9331b79
commit
2c744690bc
|
@ -409,11 +409,16 @@ function this.Request_32_EliminationData(func)
|
|||
if this.baseInfo.battleStage ~= TOP_MATCH_STAGE.ELIMINATION and this.baseInfo.battleStage~= TOP_MATCH_STAGE.OVER then return end
|
||||
|
||||
NetManager.GetTopMatchEliminationInfo(1, function(msg)
|
||||
this.EliminationData_32 = msg.championBattlePairInfo
|
||||
-- Log("获取32强数据成功, 数据长度 = "..#this.EliminationData_32)
|
||||
-- LogRed("获取32强数据成功, 数据长度 = "..#msg.championBattlePairInfo)
|
||||
-- for i = 1, #msg.championBattlePairInfo do
|
||||
-- LogPink("roundTImes "..msg.championBattlePairInfo[i].roundTImes.." .teamId "..msg.championBattlePairInfo[i].teamId.." .position ".. msg.championBattlePairInfo[i].position)
|
||||
-- end
|
||||
this.EliminationData_32 = this.RequestEliminationDataMerge(msg.championBattlePairInfo)
|
||||
-- this.EliminationData_32 = msg.championBattlePairInfo
|
||||
if func then func() end
|
||||
end)
|
||||
end
|
||||
|
||||
--- 请求淘汰赛数据(4强)
|
||||
function this.Request_4_EliminationData(func)
|
||||
-- 未开启
|
||||
|
@ -422,12 +427,66 @@ function this.Request_4_EliminationData(func)
|
|||
if this.baseInfo.battleStage ~= TOP_MATCH_STAGE.ELIMINATION and this.baseInfo.battleStage~= TOP_MATCH_STAGE.OVER then return end
|
||||
|
||||
NetManager.GetTopMatchEliminationInfo(2, function(msg)
|
||||
this.EliminationData_4 = msg.championBattlePairInfo
|
||||
-- this.EliminationData_4 = msg.championBattlePairInfo
|
||||
this.EliminationData_4 = this.RequestEliminationDataMerge(msg.championBattlePairInfo)
|
||||
-- Log("获取4强数据成功, 数据长度 = "..#this.EliminationData_4)
|
||||
if func then func() end
|
||||
end)
|
||||
end
|
||||
|
||||
--32 16 8 4 强数据合并
|
||||
--三局两胜 需要将三局 或者两局数据 合并 算出战斗结果 胜利 失败 未打 和 竞猜结果 只要有过1就等于1
|
||||
function this.RequestEliminationDataMerge(EliminationData)
|
||||
local newEliminationData = {}
|
||||
for EliminationDataI, EliminationDataV in ipairs(EliminationData) do
|
||||
local curKey = tonumber(tostring(EliminationDataV.roundTImes)..tostring(EliminationDataV.teamId)..tostring(EliminationDataV.position))
|
||||
if newEliminationData[curKey] then
|
||||
table.insert(newEliminationData[curKey],EliminationDataV)
|
||||
else
|
||||
newEliminationData[curKey] = {}
|
||||
table.insert(newEliminationData[curKey],EliminationDataV)
|
||||
end
|
||||
end
|
||||
-- LogRed("newEliminationData, 数据长度 = "..LengthOfTable(newEliminationData))
|
||||
local datas = {}
|
||||
for newEliminationDataI, newEliminationDataV in pairs(newEliminationData) do
|
||||
-- LogPink("newEliminationDataI "..newEliminationDataI)
|
||||
if newEliminationDataV and #newEliminationDataV > 0 then
|
||||
local singledata = newEliminationDataV[1]
|
||||
local fightResult = 0
|
||||
for i = 1, #newEliminationDataV do
|
||||
fightResult = fightResult + newEliminationDataV[i].fightResult
|
||||
if fightResult < 0 then
|
||||
singledata.fightResult = -1
|
||||
elseif fightResult == 0 then
|
||||
singledata.fightResult = 0
|
||||
elseif fightResult > 0 and fightResult < 2 then
|
||||
singledata.fightResult = 1
|
||||
elseif fightResult >= 2 then
|
||||
singledata.fightResult = 1
|
||||
end
|
||||
if newEliminationDataV[i].isGUess > 0 then
|
||||
singledata.isGUess = newEliminationDataV[i].isGUess
|
||||
end
|
||||
end
|
||||
-- LogPink("fightResult "..singledata.fightResult)
|
||||
-- LogPink("isGUess "..singledata.isGUess)
|
||||
-- newEliminationData_32V = singledata
|
||||
table.insert(datas,singledata)
|
||||
end
|
||||
end
|
||||
table.sort(datas, function(a, b)
|
||||
if a.roundTImes == b.roundTImes then
|
||||
if a.teamId == b.teamId then
|
||||
return a.position < b.position
|
||||
else
|
||||
return a.teamId < b.teamId
|
||||
end
|
||||
else
|
||||
return a.roundTImes < b.roundTImes
|
||||
end
|
||||
end)
|
||||
return datas
|
||||
end
|
||||
--- 获取32强数据
|
||||
function this.Get_32_EliminationData()
|
||||
-- body
|
||||
|
@ -557,67 +616,68 @@ function this.GetRankNameByRank(rank)
|
|||
local curStage = this.baseInfo.battleStage
|
||||
local curTurn = this.baseInfo.battleTurn
|
||||
local curState = this.baseInfo.battleState
|
||||
LogPink("rank "..rank.." curStage "..curStage.." curTurn "..curTurn.." curState "..curState)
|
||||
--- 未获取到数据
|
||||
if curStage == -1 or curTurn == -1 or curState == -1 then
|
||||
return Language[10041]
|
||||
end
|
||||
--- 选拔赛阶段都是相应得强数
|
||||
if curStage == 1 then
|
||||
local config = ConfigManager.GetConfigData(ConfigName.ChampionshipSetting, 1)
|
||||
return config.ChampionshipPlayer..Language[10097]
|
||||
-- 判断淘汰赛阶段的轮数
|
||||
elseif curStage == 2 or curStage == -2 then
|
||||
-- if curState == TOP_MATCH_TIME_STATE.OPEN_IN_END or curState == TOP_MATCH_TIME_STATE.OVER then
|
||||
if rank == 1 then
|
||||
return Language[10095]--冠军
|
||||
elseif rank == 2 then
|
||||
return Language[10096]--亚军
|
||||
end
|
||||
return rank..Language[10097]--几强
|
||||
elseif curStage == -1 then
|
||||
return Language[10041]
|
||||
end
|
||||
-- --- 判断淘汰赛阶段的轮数
|
||||
-- local maxTurn = this.GetEliminationMaxRound()
|
||||
-- LogPink("maxTurn "..maxTurn)
|
||||
-- if curTurn <= 0 then curTurn = maxTurn end
|
||||
-- local opTurn = maxTurn - curTurn + 1 --- 将服务器发过来的轮数倒序,方便计算
|
||||
-- --- 如果是结算状态,按下一轮处理
|
||||
-- LogPink("opTurn "..opTurn)
|
||||
-- if curState == TOP_MATCH_TIME_STATE.OPEN_IN_END or curState == TOP_MATCH_TIME_STATE.OVER then
|
||||
-- opTurn = opTurn - 1
|
||||
-- end
|
||||
-- LogPink("opTurn "..opTurn)
|
||||
-- --- 轮数为0表示决赛的结算阶段
|
||||
-- if opTurn == 0 then
|
||||
-- if curStage == 1 then
|
||||
-- local config = ConfigManager.GetConfigData(ConfigName.ChampionshipSetting, 1)
|
||||
-- return config.ChampionshipPlayer..Language[10097]
|
||||
-- -- 判断淘汰赛阶段的轮数
|
||||
-- elseif curStage == 2 or curStage == -2 then
|
||||
-- -- if curState == TOP_MATCH_TIME_STATE.OPEN_IN_END or curState == TOP_MATCH_TIME_STATE.OVER then
|
||||
-- if rank == 1 then
|
||||
-- return Language[10095]--冠军
|
||||
-- elseif rank == 2 then
|
||||
-- return Language[10096]--亚军
|
||||
-- end
|
||||
-- return rank..Language[10097]--几强
|
||||
-- elseif curStage == -1 then
|
||||
-- return Language[10041]
|
||||
-- end
|
||||
-- --- 如果大于淘汰赛最大轮数的最大名次
|
||||
-- if rank > math.pow(2, maxTurn) then
|
||||
-- local config = ConfigManager.GetConfigData(ConfigName.ChampionshipSetting, 1)
|
||||
-- LogPink(config.ChampionshipPlayer..Language[10097])
|
||||
-- return config.ChampionshipPlayer..Language[10097]--几强
|
||||
-- end
|
||||
-- --- 如果小于当前轮数的最大排名,则返回当前轮数的名称
|
||||
-- local opTurnMaxRank = math.pow(2, opTurn)
|
||||
-- if rank <= opTurnMaxRank then
|
||||
-- LogPink(opTurnMaxRank..Language[10097])
|
||||
-- return opTurnMaxRank..Language[10097]
|
||||
-- end
|
||||
-- --- 如果大于当前的轮数,则可能已被淘汰,返回相应的被淘汰轮数的名称
|
||||
-- for turn = opTurn + 1, maxTurn do
|
||||
-- local turnMaxRank = math.pow(2, turn)
|
||||
-- if rank <= turnMaxRank then
|
||||
-- LogPink(turnMaxRank..Language[10097])
|
||||
-- return turnMaxRank..Language[10097]
|
||||
-- end
|
||||
-- end
|
||||
-- -- 数据没错的情况下不会出现这种情况
|
||||
-- return Language[10041]
|
||||
--- 判断淘汰赛阶段的轮数
|
||||
local maxTurn = this.GetEliminationMaxRound()
|
||||
LogPink("maxTurn "..maxTurn)
|
||||
if curTurn <= 0 then curTurn = maxTurn end
|
||||
local opTurn = maxTurn - curTurn + 1 --- 将服务器发过来的轮数倒序,方便计算
|
||||
--- 如果是结算状态,按下一轮处理
|
||||
LogPink("opTurn "..opTurn)
|
||||
if curState == TOP_MATCH_TIME_STATE.OPEN_IN_END or curState == TOP_MATCH_TIME_STATE.OVER then
|
||||
opTurn = opTurn - 1
|
||||
end
|
||||
LogPink("opTurn "..opTurn)
|
||||
--- 轮数为0表示决赛的结算阶段
|
||||
if opTurn == 0 then
|
||||
if rank == 1 then
|
||||
return Language[10095]--冠军
|
||||
elseif rank == 2 then
|
||||
return Language[10096]--亚军
|
||||
end
|
||||
end
|
||||
--- 如果大于淘汰赛最大轮数的最大名次
|
||||
if rank > math.pow(2, maxTurn) then
|
||||
local config = ConfigManager.GetConfigData(ConfigName.ChampionshipSetting, 1)
|
||||
LogPink(config.ChampionshipPlayer..Language[10097])
|
||||
return config.ChampionshipPlayer..Language[10097]--几强
|
||||
end
|
||||
--- 如果小于当前轮数的最大排名,则返回当前轮数的名称
|
||||
local opTurnMaxRank = math.pow(2, opTurn)
|
||||
if rank <= opTurnMaxRank then
|
||||
LogPink(opTurnMaxRank..Language[10097])
|
||||
return opTurnMaxRank..Language[10097]
|
||||
end
|
||||
--- 如果大于当前的轮数,则可能已被淘汰,返回相应的被淘汰轮数的名称
|
||||
for turn = opTurn + 1, maxTurn do
|
||||
local turnMaxRank = math.pow(2, turn)
|
||||
if rank <= turnMaxRank then
|
||||
LogPink(turnMaxRank..Language[10097])
|
||||
return turnMaxRank..Language[10097]
|
||||
end
|
||||
end
|
||||
-- 数据没错的情况下不会出现这种情况
|
||||
return Language[10041]
|
||||
end
|
||||
|
||||
-- 竞猜币ID
|
||||
|
|
Loading…
Reference in New Issue