local f0_local0 = function ( f1_arg0, f1_arg1, f1_arg2, f1_arg3 ) if f1_arg0 and Cac.Settings.DataLoc.loadouts.baseClassSlots <= f1_arg0 then return Engine.TableLookup( "mp/classTable.csv", 0, f1_arg1, 12 ) elseif f1_arg2 == nil or f1_arg2 == "privateMatchSquadMembers" then return Engine.TableLookup( "mp/classTable.csv", 0, f1_arg1, f1_arg0 % 10 + 1 ) elseif f1_arg3 == 0 then return Engine.TableLookup( "mp/classTableAssault.csv", 0, f1_arg1, 1 ) elseif f1_arg3 == 1 then return Engine.TableLookup( "mp/classTableCQB.csv", 0, f1_arg1, 1 ) elseif f1_arg3 == 2 then return Engine.TableLookup( "mp/classTableAssassin.csv", 0, f1_arg1, 1 ) elseif f1_arg3 == 3 then return Engine.TableLookup( "mp/classTableHeavyGunner.csv", 0, f1_arg1, 1 ) elseif f1_arg3 == 4 then return Engine.TableLookup( "mp/classTableSniper.csv", 0, f1_arg1, 1 ) else return Engine.TableLookup( "mp/classTableAssault.csv", 0, f1_arg1, 1 ) end end local f0_local1 = function ( f2_arg0, f2_arg1, f2_arg2 ) local f2_local0 = {} local f2_local1 = 0 local f2_local2 = Engine.TableLookupByRow( f2_arg0, f2_local1, f2_arg2 ) while f2_local2 ~= "" do if f2_local2 == f2_arg1 then f2_local0[#f2_local0 + 1] = f2_local1 end f2_local1 = f2_local1 + 1 f2_local2 = Engine.TableLookupByRow( f2_arg0, f2_local1, f2_arg2 ) end return f2_local0 end local f0_local2 = function ( f3_arg0, f3_arg1, f3_arg2, f3_arg3, f3_arg4, f3_arg5 ) local f3_local0 = f0_local0( f3_arg3, "loadout" .. f3_arg5, f3_arg1, f3_arg2 ) local f3_local1 = f0_local0( f3_arg3, "loadout" .. f3_arg5 .. "Attachment", f3_arg1, f3_arg2 ) local f3_local2 = f0_local0( f3_arg3, "loadout" .. f3_arg5 .. "Attachment2", f3_arg1, f3_arg2 ) local f3_local3 = f0_local0( f3_arg3, "loadout" .. f3_arg5 .. "Attachment3", f3_arg1, f3_arg2 ) local f3_local4 = f0_local0( f3_arg3, "loadout" .. f3_arg5 .. "Camo", f3_arg1, f3_arg2 ) Cac.SetCacConfig( f3_arg0, f3_arg1, f3_arg2, "loadouts", f3_arg3, "weaponSetups", f3_arg4, "weapon", f3_local0 ) Cac.SetCacConfig( f3_arg0, f3_arg1, f3_arg2, "loadouts", f3_arg3, "weaponSetups", f3_arg4, "attachment", 0, f3_local1 ) Cac.SetCacConfig( f3_arg0, f3_arg1, f3_arg2, "loadouts", f3_arg3, "weaponSetups", f3_arg4, "attachment", 1, f3_local2 ) Cac.SetCacConfig( f3_arg0, f3_arg1, f3_arg2, "loadouts", f3_arg3, "weaponSetups", f3_arg4, "attachment", 2, f3_local3 ) Cac.SetCacConfig( f3_arg0, f3_arg1, f3_arg2, "loadouts", f3_arg3, "weaponSetups", f3_arg4, "camo", f3_local4 ) local f3_local5 = { f3_local1, f3_local2, f3_local3 } local f3_local6 = "none" for f3_local10, f3_local11 in ipairs( f3_local5 ) do if f3_local11 and f3_local11 ~= "" and Cac.AttachmentHasReticles( f3_local11 ) then f3_local6 = Cac.GetReticleDefault( f3_local11 ) break end end Cac.SetCacConfig( f3_arg0, f3_arg1, f3_arg2, "loadouts", f3_arg3, "weaponSetups", f3_arg4, "reticle", f3_local6 ) end local f0_local3 = function ( f4_arg0, f4_arg1, f4_arg2, f4_arg3, f4_arg4, f4_arg5 ) f0_local2( f4_arg0, f4_arg1, f4_arg2, f4_arg3, 0, "Primary" ) f0_local2( f4_arg0, f4_arg1, f4_arg2, f4_arg3, 1, "Secondary" ) end local f0_local4 = function ( f5_arg0, f5_arg1, f5_arg2, f5_arg3 ) local f5_local0 = Cac.GetCacConfig( f5_arg0, f5_arg1, f5_arg2, "loadouts", f5_arg3, "perks", Cac.Indices.Grenade.Primary ) local f5_local1 = Cac.GetCacConfig( f5_arg0, f5_arg1, f5_arg2, "loadouts", f5_arg3, "perks", Cac.Indices.Grenade.Secondary ) Cac.SetCacConfig( f5_arg0, f5_arg1, f5_arg2, "loadouts", f5_arg3, "perks", Cac.Indices.Grenade.Primary, f0_local0( f5_arg3, "loadoutEquipment", f5_arg1, f5_arg2 ) ) Cac.SetCacConfig( f5_arg0, f5_arg1, f5_arg2, "loadouts", f5_arg3, "perks", Cac.Indices.Grenade.Secondary, f0_local0( f5_arg3, "loadoutOffhand", f5_arg1, f5_arg2 ) ) end local f0_local5 = function ( f6_arg0, f6_arg1, f6_arg2, f6_arg3 ) for f6_local0 = 1, 8, 1 do local f6_local3 = f0_local0( f6_arg3, "loadoutPerk" .. f6_local0, f6_arg1, f6_arg2 ) if f6_local3 then if f6_local3 == "" then break end local f6_local4 = tonumber( string.sub( f6_local3, 1, 1 ) ) local f6_local5 = tonumber( string.sub( f6_local3, 2, 2 ) ) if f6_local4 then if not f6_local5 then break end Cac.SetCacConfig( f6_arg0, f6_arg1, f6_arg2, "loadouts", f6_arg3, "abilitiesPicked", f6_local4 - 1, f6_local5 - 1, true ) end end end end local f0_local6 = function ( f7_arg0, f7_arg1, f7_arg2, f7_arg3 ) for f7_local0 = 0, 5, 1 do local f7_local3 = f0_local0( f7_arg3, "loadoutStreak" .. f7_local0, f7_arg1, f7_arg2 ) local f7_local4 = "assaultStreaks" local f7_local5 = f7_local0 if f7_local0 > 2 then f7_local4 = "supportStreaks" f7_local5 = f7_local0 - 3 end Cac.SetCacConfig( f7_arg0, f7_arg1, f7_arg2, "loadouts", f7_arg3, f7_local4, f7_local5, f7_local3 ) end end local f0_local7 = function ( f8_arg0, f8_arg1, f8_arg2 ) for f8_local0 = 0, Cac.Settings.DataLoc.loadouts.baseClassSlots - 1, 1 do Cac.SetCacConfig( f8_arg0, f8_arg1, f8_arg2, "loadouts", f8_local0, "name", Engine.Localize( f0_local0( f8_local0, "loadoutName" ) ) ) f0_local3( f8_arg0, f8_arg1, f8_arg2, f8_local0, 0, "Primary" ) f0_local3( f8_arg0, f8_arg1, f8_arg2, f8_local0, 1, "Secondary" ) f0_local4( f8_arg0, f8_arg1, f8_arg2, f8_local0 ) f0_local5( f8_arg0, f8_arg1, f8_arg2, f8_local0 ) f0_local6( f8_arg0, f8_arg1, f8_arg2, f8_local0 ) if f8_arg1 ~= "privateMatchSquadMembers" then local f8_local3 = false if f8_local0 <= 2 then f8_local3 = true end Cac.SetCacConfig( f8_arg0, f8_arg1, f8_arg2, "loadouts", f8_local0, "inUse", f8_local3 ) end end end local f0_local8 = function ( f9_arg0, f9_arg1, f9_arg2, f9_arg3, f9_arg4, f9_arg5 ) local f9_local0 = { 0, 4, 8, 12, 18, 22, 26, 30, 34, 40 } local f9_local1 = math.random( 1, #f9_local0 ) local f9_local2 = { 0, 4, 9, 13, 27 } local f9_local3 = math.random( 1, #f9_local2 ) local f9_local4 = Cac.GetGenderFromBodyRef( f9_local0[f9_local1] ) local f9_local5 = 0 if f9_local4 == "m" then if math.random( 0, 1 ) == 1 then f9_local5 = 0 else f9_local5 = 8 end else f9_local5 = 20 end Engine.SetPlayerDataEx( f9_arg0, f9_arg1, f9_arg2, f9_arg3, "name", f9_arg4 ) Engine.SetPlayerDataEx( f9_arg0, f9_arg1, f9_arg2, f9_arg3, "head", f9_local5 ) Engine.SetPlayerDataEx( f9_arg0, f9_arg1, f9_arg2, f9_arg3, "helmet", f9_local2[f9_local3] ) Engine.SetPlayerDataEx( f9_arg0, f9_arg1, f9_arg2, f9_arg3, "body", f9_local0[f9_local1] ) if f9_arg5 then f0_local7( f9_arg0, f9_arg2, f9_arg3 ) end end local f0_local9 = function ( f10_arg0, f10_arg1, f10_arg2, f10_arg3 ) local f10_local0 = Cac.MaxSquadMemberCount( f10_arg2 ) local f10_local1 = f0_local1( "mp/namesTable.csv", "american", 0 ) for f10_local2 = 1, f10_local0, 1 do local f10_local5 = math.random( f10_local2, #f10_local1 ) f10_local1[f10_local5] = f10_local1[f10_local2] f10_local1[f10_local2] = f10_local1[f10_local5] end for f10_local2 = 1, f10_local0, 1 do f0_local8( f10_arg0, f10_arg1, f10_arg2, f10_local2 - 1, Engine.TableLookupByRow( "mp/namesTable.csv", f10_local1[f10_local2], 1 ), f10_arg3 ) end end local f0_local10 = function ( f11_arg0, f11_arg1 ) local f11_local0 = Engine.GetPlayerDataEx( f11_arg0, f11_arg1, "prestige" ) Engine.SetPlayerDataEx( f11_arg0, f11_arg1, "challengeState", "ch_prestige", f11_local0 + 1 ) Engine.SetPlayerDataEx( f11_arg0, f11_arg1, "challengeProgress", "ch_prestige", f11_local0 + 1 ) if f11_local0 == 10 then Engine.SetPlayerDataEx( f11_arg0, f11_arg1, "challengeState", "ch_prestige", 2 ) Engine.SetPlayerDataEx( f11_arg0, f11_arg1, "challengeProgress", "ch_prestige", 1 ) end end function InitPlayerData( f12_arg0, f12_arg1 ) local f12_local0 = f12_arg1.controller or 0 f0_local9( f12_local0, CoD.StatsGroup.Ranked, "squadMembers", true ) f0_local9( f12_local0, CoD.StatsGroup.Private, "privateMatchSquadMembers", true ) Engine.SetPlayerDataEx( f12_local0, CoD.StatsGroup.Ranked, "squadMembers", 0, "inUse", true ) Engine.SetPlayerDataEx( f12_local0, CoD.StatsGroup.Ranked, "challengeState", "ch_squad_member1_purchase", 2 ) for f12_local1 = 0, Cac.MaxSquadMemberCount( "privateMatchSquadMembers" ) - 1, 1 do local f12_local4 = f12_local1 Engine.SetPlayerDataEx( f12_local0, CoD.StatsGroup.Private, "privateMatchSquadMembers", 0, "inUse", true ) end f0_local9( f12_local0, CoD.StatsGroup.Coop, "coopSquadMembers", false ) f0_local10( f12_local0, CoD.StatsGroup.Ranked ) Engine.SetPlayerDataEx( f12_local0, CoD.StatsGroup.Common, "enableBattleBuddy", false ) local f12_local1 = f0_local1( "mp/squadDefaults.csv", "squadname", 0 ) Engine.SetPlayerDataEx( f12_local0, CoD.StatsGroup.Ranked, "squadHQ", "squad_name", Engine.TableLookupByRow( "mp/squadDefaults.csv", f12_local1[math.random( 1, #f12_local1 )], 1 ) ) local f12_local4 = f0_local1( "mp/squadDefaults.csv", "mapname", 0 ) Engine.SetPlayerDataEx( f12_local0, CoD.StatsGroup.Ranked, "squadHQ", "squad_base", Engine.TableLookupByRow( "mp/squadDefaults.csv", f12_local4[math.random( 1, #f12_local4 )], 1 ) ) Engine.SetPlayerDataEx( f12_local0, CoD.StatsGroup.Ranked, "squadHQ", "squad_mode", "war" ) for f12_local5 = 0, 9, 1 do Engine.SetPlayerDataEx( f12_local0, CoD.StatsGroup.Ranked, "squadHQ", "aiSquadMembers", f12_local5, f12_local5 ) end InitOperationsData( f12_local0 ) ResetMOTDCounters( f12_local0 ) end function InitPlayerDataExtended( f13_arg0, f13_arg1 ) local f13_local0 = { "privateMatchSquadMembers", "squadMembers" } local f13_local1 = f13_arg1.controller if not f13_local1 then return end for f13_local10, f13_local11 in ipairs( f13_local0 ) do local f13_local12 = Cac.MaxSquadMemberCount( f13_local11 ) local f13_local13 = Cac.Settings.DataLoc.loadouts.baseClassSlots local f13_local14 = Cac.Settings.DataLoc.loadouts.maxClassSlots for f13_local9 = 0, f13_local12 - 1, 1 do for f13_local5 = 0, f13_local14 - f13_local13 - 1, 1 do local f13_local8 = f13_local5 + f13_local13 f0_local3( f13_local1, f13_local11, f13_local9, f13_local8, 0, "Primary" ) f0_local3( f13_local1, f13_local11, f13_local9, f13_local8, 1, "Secondary" ) f0_local4( f13_local1, f13_local11, f13_local9, f13_local8 ) f0_local5( f13_local1, f13_local11, f13_local9, f13_local8 ) f0_local6( f13_local1, f13_local11, f13_local9, f13_local8 ) Cac.SetCacConfig( f13_local1, f13_local11, f13_local9, "loadouts", f13_local8, "name", Engine.Localize( "LUA_MENU_EXTRA_LOADOUT", f13_local5 + 1 ) ) end end end end