Allow setting master rank
This commit is contained in:
parent
6245762862
commit
5a6b14faa9
@ -151,43 +151,57 @@ DataSources.MPStatsSettings = DataSourceHelpers.ListSetup("MPStatsSettings", fun
|
||||
end
|
||||
|
||||
local rankLevels = {}
|
||||
if Engine.CurrentSessionMode() == Enum.eModes.MODE_MULTIPLAYER then
|
||||
rankLevels = { 1, 10, 20, 30, 40, 50, 55 }
|
||||
elseif Engine.CurrentSessionMode() == Enum.eModes.MODE_ZOMBIES then
|
||||
rankLevels = { 1, 10, 20, 30, 35 }
|
||||
end
|
||||
local rankObjs = {}
|
||||
local hasDefault = false
|
||||
local hasDefault = true
|
||||
local currentPrestige = CoD.PrestigeUtility.GetCurrentPLevel(controller, Engine.CurrentSessionMode())
|
||||
local currentRank = CoD.BlackMarketUtility.GetCurrentRank(controller) + 1
|
||||
for index, value in ipairs(rankLevels) do
|
||||
table.insert(rankObjs, {
|
||||
name = value,
|
||||
value = value - 1,
|
||||
default = value == currentRank,
|
||||
title = "Rank Level",
|
||||
desc = ""
|
||||
})
|
||||
if not hasDefault then
|
||||
hasDefault = value == currentRank
|
||||
|
||||
local isMasterPrestige = currentPrestige == 11
|
||||
|
||||
if Engine.CurrentSessionMode() == Enum.eModes.MODE_MULTIPLAYER then
|
||||
if not isMasterPrestige then
|
||||
rankLevels = { 1, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55 }
|
||||
else
|
||||
rankLevels = { 56, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000 }
|
||||
end
|
||||
|
||||
elseif Engine.CurrentSessionMode() == Enum.eModes.MODE_ZOMBIES then
|
||||
if not isMasterPrestige then
|
||||
rankLevels = { 1, 5, 10, 15, 20, 25, 30, 35 }
|
||||
else
|
||||
rankLevels = { 36, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000 }
|
||||
end
|
||||
end
|
||||
|
||||
if not hasDefault then
|
||||
local maxlevel = math.max(table.unpack(rankLevels))
|
||||
local minlevel = math.min(table.unpack(rankLevels))
|
||||
|
||||
for index, value in ipairs(rankLevels) do
|
||||
table.insert(rankObjs, {
|
||||
name = currentRank,
|
||||
name = value <= minlevel and "Min" or value >= maxlevel and "Max" or value,
|
||||
value = value - 1,
|
||||
default = value == currentRank,
|
||||
title = "Rank Level",
|
||||
desc = value~=currentRank and "" or "Current Rank"
|
||||
})
|
||||
end
|
||||
|
||||
if hasDefault and currentRank ~= minlevel and currentRank < maxlevel and not isMasterPrestige then
|
||||
table.insert(rankObjs, {
|
||||
name = "Current: " .. tostring(currentRank <= minlevel and "Min" or currentRank >= maxlevel and "Max" or currentRank),
|
||||
value = currentRank - 1,
|
||||
default = true,
|
||||
title = "Rank Level",
|
||||
desc = ""
|
||||
desc = "Do not adjust rank"
|
||||
})
|
||||
end
|
||||
|
||||
local prestigeTable = {}
|
||||
for i = 0, 10 do
|
||||
for i = 0, 11 do
|
||||
table.insert(prestigeTable, {
|
||||
name = i == 0 and "None" or i,
|
||||
name = i == 0 and "None" or i==11 and "Master" or i,
|
||||
value = i,
|
||||
default = i == CoD.PrestigeUtility.GetCurrentPLevel(controller),
|
||||
default = i == currentPrestige,
|
||||
title = "Prestige",
|
||||
desc = ""
|
||||
})
|
||||
@ -228,25 +242,18 @@ DataSources.MPStatsSettings = DataSourceHelpers.ListSetup("MPStatsSettings", fun
|
||||
|
||||
table.insert(optionsTable, {
|
||||
models = {
|
||||
name = "Rank Level",
|
||||
name = "Prestige",
|
||||
desc = "",
|
||||
image = nil,
|
||||
optionsDatasource = createSettingsDatasource(controller, "MPStatsSettings_rank_level", rankObjs,
|
||||
CoD.BlackMarketUtility.GetCurrentRank(controller), false, function(f1_arg0, f1_arg1, f1_arg2, dvarName, f1_arg4)
|
||||
optionsDatasource = createSettingsDatasource(controller, "MPStatsSettings_rank_prestige", prestigeTable,
|
||||
CoD.PrestigeUtility.GetCurrentPLevel(controller, Engine.CurrentSessionMode()), false, function(f1_arg0, f1_arg1, f1_arg2, dvarName, f1_arg4)
|
||||
UpdateInfoModels(f1_arg1)
|
||||
local rankTable = nil
|
||||
if Engine.CurrentSessionMode() == Enum.eModes.MODE_MULTIPLAYER then
|
||||
rankTable = "gamedata/tables/mp/mp_ranktable.csv"
|
||||
elseif Engine.CurrentSessionMode() == Enum.eModes.MODE_ZOMBIES then
|
||||
rankTable = "gamedata/tables/zm/zm_ranktable.csv"
|
||||
local newPrestige = f1_arg1.value
|
||||
if newPrestige == 11 then
|
||||
Engine.Exec( f1_arg0, "PrestigeStatsMaster " .. tostring( Engine.CurrentSessionMode() ) )
|
||||
end
|
||||
local skipLines = Engine.CurrentSessionMode() == Enum.eModes.MODE_MULTIPLAYER and 3 or 2
|
||||
local maxXp = tonumber(Engine.TableLookupGetColumnValueForRow(rankTable, f1_arg1.value + skipLines, 7))
|
||||
if maxXp == nil then
|
||||
maxXp = 9999999999
|
||||
end
|
||||
Engine.ExecNow(f1_arg0, "statsetbyname rankxp " .. maxXp - 1)
|
||||
Engine.ExecNow(f1_arg0, "statsetbyname rank " .. f1_arg1.value)
|
||||
Engine.ExecNow(f1_arg0, "statsetbyname plevel " .. newPrestige)
|
||||
Engine.ExecNow(f1_arg0, "statsetbyname hasprestiged " .. (newPrestige > 0 and 1 or 0))
|
||||
Engine.Exec(f1_arg0, "uploadstats " .. tostring(Engine.CurrentSessionMode()))
|
||||
end)
|
||||
},
|
||||
@ -258,16 +265,70 @@ DataSources.MPStatsSettings = DataSourceHelpers.ListSetup("MPStatsSettings", fun
|
||||
|
||||
table.insert(optionsTable, {
|
||||
models = {
|
||||
name = "Prestige",
|
||||
name = "Rank Level",
|
||||
desc = "",
|
||||
image = nil,
|
||||
optionsDatasource = createSettingsDatasource(controller, "MPStatsSettings_rank_prestige", prestigeTable,
|
||||
CoD.PrestigeUtility.GetCurrentPLevel(controller), false, function(f1_arg0, f1_arg1, f1_arg2, dvarName, f1_arg4)
|
||||
optionsDatasource = createSettingsDatasource(controller, "MPStatsSettings_rank_level", rankObjs,
|
||||
CoD.BlackMarketUtility.GetCurrentRank(controller), false, function(f1_arg0, f1_arg1, f1_arg2, dvarName, f1_arg4)
|
||||
UpdateInfoModels(f1_arg1)
|
||||
local newPrestige = f1_arg1.value
|
||||
Engine.ExecNow(f1_arg0, "statsetbyname plevel " .. newPrestige)
|
||||
Engine.ExecNow(f1_arg0, "statsetbyname hasprestiged " .. (newPrestige > 0 and 1 or 0))
|
||||
local rankTable = nil
|
||||
local rank = f1_arg1.value + 1
|
||||
if currentPrestige <= 10 then
|
||||
if Engine.CurrentSessionMode() == Enum.eModes.MODE_MULTIPLAYER then
|
||||
rankTable = "gamedata/tables/mp/mp_ranktable.csv"
|
||||
elseif Engine.CurrentSessionMode() == Enum.eModes.MODE_ZOMBIES then
|
||||
rankTable = "gamedata/tables/zm/zm_ranktable.csv"
|
||||
end
|
||||
local skipLines = Engine.CurrentSessionMode() == Enum.eModes.MODE_MULTIPLAYER and 3 or 2
|
||||
local maxXp = tonumber(Engine.TableLookupGetColumnValueForRow(rankTable, rank - 2 + skipLines, 7))
|
||||
if Engine.CurrentSessionMode() == Enum.eModes.MODE_MULTIPLAYER then
|
||||
if maxXp ~= nil and rank == maxlevel then
|
||||
maxXp = maxXp + 55600
|
||||
end
|
||||
end
|
||||
if Engine.CurrentSessionMode() == Enum.eModes.MODE_ZOMBIES then
|
||||
if maxXp ~= nil and rank == maxlevel then
|
||||
maxXp = maxXp + 54244
|
||||
end
|
||||
end
|
||||
if maxXp == nil then
|
||||
maxXp = 0
|
||||
end
|
||||
Engine.ExecNow(f1_arg0, "statsetbyname rank " .. rank - 1 )
|
||||
Engine.ExecNow(f1_arg0, "statsetbyname rankxp " .. maxXp )
|
||||
Engine.ExecNow(f1_arg0, "statsetbyname paragon_rankxp " .. 0 )
|
||||
else
|
||||
if Engine.CurrentSessionMode() == Enum.eModes.MODE_MULTIPLAYER then
|
||||
rankTable = "gamedata/tables/mp/mp_paragonranktable.csv"
|
||||
elseif Engine.CurrentSessionMode() == Enum.eModes.MODE_ZOMBIES then
|
||||
rankTable = "gamedata/tables/zm/zm_paragonranktable.csv"
|
||||
end
|
||||
local skipLines = 2
|
||||
local maxXp = 0
|
||||
if Engine.CurrentSessionMode() == Enum.eModes.MODE_MULTIPLAYER then
|
||||
maxXp = tonumber(Engine.TableLookupGetColumnValueForRow(rankTable, rank - 57 + skipLines, 7))
|
||||
if maxXp ~= nil and rank == maxlevel then
|
||||
maxXp = maxXp + 55600
|
||||
end
|
||||
rank = rank - 55
|
||||
end
|
||||
if Engine.CurrentSessionMode() == Enum.eModes.MODE_ZOMBIES then
|
||||
maxXp = tonumber(Engine.TableLookupGetColumnValueForRow(rankTable, rank - 37 + skipLines, 7))
|
||||
if maxXp ~= nil and rank == maxlevel then
|
||||
maxXp = maxXp + 54244
|
||||
end
|
||||
rank = rank - 35
|
||||
end
|
||||
if maxXp == nil then
|
||||
maxXp = 0
|
||||
end
|
||||
Engine.ExecNow(f1_arg0, "statsetbyname paragon_rank " .. rank - 1 )
|
||||
Engine.ExecNow(f1_arg0, "statsetbyname paragon_rankxp " .. maxXp )
|
||||
end
|
||||
Engine.Exec(f1_arg0, "uploadstats " .. tostring(Engine.CurrentSessionMode()))
|
||||
Engine.Exec(f1_arg0, "savegamerprofilestats")
|
||||
|
||||
currentRank = rank
|
||||
end)
|
||||
},
|
||||
properties = {
|
||||
@ -300,8 +361,7 @@ LUI.createMenu.BoiiiStatsMenu = function(controller)
|
||||
GameSettingsBackground:setLeftRight(true, true, 0, 0)
|
||||
GameSettingsBackground:setTopBottom(true, true, 0, 0)
|
||||
GameSettingsBackground.MenuFrame.titleLabel:setText(Engine.Localize("STATS SETTINGS"))
|
||||
GameSettingsBackground.MenuFrame.cac3dTitleIntermediary0.FE3dTitleContainer0.MenuTitle.TextBox1.Label0:setText(Engine
|
||||
.Localize("STATS SETTINGS"))
|
||||
GameSettingsBackground.MenuFrame.cac3dTitleIntermediary0.FE3dTitleContainer0.MenuTitle.TextBox1.Label0:setText(Engine.Localize("STATS SETTINGS"))
|
||||
GameSettingsBackground.GameSettingsSelectedItemInfo.GameModeInfo:setAlpha(0)
|
||||
GameSettingsBackground.GameSettingsSelectedItemInfo.GameModeName:setAlpha(0)
|
||||
self:addElement(GameSettingsBackground)
|
||||
|
Loading…
Reference in New Issue
Block a user