Add game files and server configs

This commit is contained in:
Ahrimdon 2024-02-27 03:20:09 -05:00
parent d2e50ebd30
commit e8e3442ed0
31 changed files with 13231 additions and 0 deletions

14
cfg/!start_client.bat Normal file
View File

@ -0,0 +1,14 @@
@echo off
:: Either put the batch in the Advanced Warfare install dir, or change the value below to the Advanced Warfare install dir
set AW_INSTALL=%~dp0
:: Remove this line if automatic updates on start should be disabled
start /W alterware-launcher.exe --update
::///////////////////////////////////////////////////////////////////////
:://You're done!! WARNING!!! Don't mess with anything below this line //
::///////////////////////////////////////////////////////////////////////
set GAME_EXE=s1-mod.exe
start %GAME_EXE%

View File

@ -0,0 +1,23 @@
@echo off
set ServerFilename=server_horde.cfg
:://///////////////////////////////////////////////////////////////////////////
::// What port do you want the server to run on? //
::// You must port forward this port & allow it through your firewall //
:://///////////////////////////////////////////////////////////////////////////
set port=27016
:: Either put the batch in the Advanced Warfare install dir, or change the value below to the Advanced Warfare install dir
set AW_INSTALL=%~dp0
:: Remove this line if automatic updates on start should be disabled
start /W alterware-launcher.exe --update
::///////////////////////////////////////////////////////////////////////
:://You're done!! WARNING!!! Don't mess with anything below this line //
::///////////////////////////////////////////////////////////////////////
set GAME_EXE=s1-mod.exe
start %GAME_EXE% -dedicated +survival 1 +set net_port "%port%" +exec %ServerFilename% +map_rotate

22
cfg/!start_mp_server.bat Normal file
View File

@ -0,0 +1,22 @@
@echo off
set ServerFilename=server.cfg
:://///////////////////////////////////////////////////////////////////////////
::// What port do you want the server to run on? //
::// You must port forward this port & allow it through your firewall //
:://///////////////////////////////////////////////////////////////////////////
set port=27016
:: Either put the batch in the Advanced Warfare install dir, or change the value below to the Advanced Warfare install dir
set AW_INSTALL=%~dp0
:: Remove this line if automatic updates on start should be disabled
start /W alterware-launcher.exe --update
::///////////////////////////////////////////////////////////////////////
:://You're done!! WARNING!!! Don't mess with anything below this line //
::///////////////////////////////////////////////////////////////////////
set GAME_EXE=s1-mod.exe
start %GAME_EXE% -dedicated +set net_port "%port%" +exec %ServerFilename% +map_rotate

23
cfg/!start_zm_server.bat Normal file
View File

@ -0,0 +1,23 @@
@echo off
set ServerFilename=server_zm.cfg
:://///////////////////////////////////////////////////////////////////////////
::// What port do you want the server to run on? //
::// You must port forward this port & allow it through your firewall //
:://///////////////////////////////////////////////////////////////////////////
set port=27016
:: Either put the batch in the Advanced Warfare install dir, or change the value below to the Advanced Warfare install dir
set AW_INSTALL=%~dp0
:: Remove this line if automatic updates on start should be disabled
start /W alterware-launcher.exe --update
::///////////////////////////////////////////////////////////////////////
:://You're done!! WARNING!!! Don't mess with anything below this line //
::///////////////////////////////////////////////////////////////////////
set GAME_EXE=s1-mod.exe
start %GAME_EXE% -dedicated +zombiesMode 1 +set net_port "%port%" +exec %ServerFilename% +map_rotate

255
cfg/s1/server.cfg Normal file
View File

@ -0,0 +1,255 @@
//////////////////////////////////////////////////
/// S1 Server Configuration //
//////////////////////////////////////////////////
//////////////////////////////////////////////////
// SERVER NAME & COLORS TIPS //
//////////////////////////////////////////////////
// //
// ^1 Red //
// ^2 Green //
// ^3 Yellow //
// ^4 Blue //
// ^5 Cyan //
// ^6 Pink //
// ^7 White //
// ^8 Depends on the team colors playing. //
// ^9 Grey //
// ^0 Black //
// ^: Rainbow colors //
// //
//////////////////////////////////////////////////
set sv_hostname "S1 Default Server" // Sets the server hostname.
set sv_motd "" // Sets a custom motd which is shown on the intel message loadscreen when a player joins. Leave blank for default intel messages.
//////////////////////////////////////////////////
// ADMIN INFO (Optional) //
//////////////////////////////////////////////////
set _Admin "" // Your username.
set _Email "" // E-mail address. you can leave blank
set _Website "" // Website. (IW4MAdmin uses this.)
set _Location "Earth" // Location
//////////////////////////////////////////////////
// NON-GAMEPLAY CONFIGURATION //
//////////////////////////////////////////////////
set scr_game_high_jump 1 // Disable Exos?
set party_maxplayers "18" // Max players in your server.
set rcon_password "" // Access to your server to change stuff remotely or ingame. (Empty = disabled)
set g_password "" // Password Protected Server. Leave blank if you want players to join or set password if you want to keep public out.
set sv_privateClients "0" // Maximum number of private clients allowed on the server (range 0-18 (clamped to sv_maxclients) )
set sv_privatePassword "" // Password for reserved slots.
set sv_voice "2" // Server voice chat configuration ( 0 = "No Chat", 1 = "Free Chat", 2 = "Team Chat" (default) )
set g_allowVote "1" // Toggle voting for [player kick/map restart/next map] (0 or 1 (default) )
set g_deadChat "0" // Toggle allowing dead players to chat with living players (0 (default) or 1)
set g_inactivity "420" // Time in seconds before the server will kick a user for inactivity (range 0 - 10000)
set sv_kickBanTime "3600" // Time in seconds for a player temporary ban (on kick/tempban) (range 0 - 3600)
set sv_allowClientConsole "1" // Enable or Disable players ability to access server commands
set sv_timeout "60" // Timeout time period. You will timeout after (60) seconds when attempting to connect or if you are getting connection interruptions
set sv_reconnectlimit "3" // How many times you can try to reconnect
set sv_pure "1" // verifying cilent files
set sv_floodProtect "1" // Chat Spam Protection
set sv_sayName "console" // name server-side 'say' commands show up as
set logfile "2" // Enable loging 1-2? enable. 0 disable. Leave it on if you plan on using B3 or IW4MAdmin.
set g_logSync "1" // 1 always flush games_mp.log, 0 only flush on game end. Recommended to stay on for b3 and IW4MAdmin
set g_log "s1/logs/games_mp.log" // Gamelog filename. If you edit this, Make sure you change B3.xml if you have bigbrotherbot. IW4MAdmin auto-detects however.
//////////////////////////////////////////////////
// BASE GAME CONFIGURATION //
//////////////////////////////////////////////////
// //
// dm - Free-for-all //
// war - Team Deathmatch //
// twar - Momentum //
// ball - Uplink //
// sd - Search and Destroy //
// sr - Search and Rescue //
// dom - Domination //
// conf - Kill Confirmed //
// ctf - Capture the Flag //
// hp - Hardpoint //
// infect - Infected //
// //
//////////////////////////////////////////////////
set g_gametype "war" // Default gametype in case map rotation doesn't have any gametypes. Choose a gametype from the list above.
set scr_game_allowkillcam "1" // Allow Killcam
set team_rebalance "1" // Auto Balance teams?
set scr_teambalance "1" // Enable or Disable auto balance.
set scr_game_spectatetype "2" // Allow Spectators. 0 Disabled, 1 Team/Player only, 2 Free
set scr_thirdPerson "0" // third-person mode
set scr_game_hardpoints "1" // Enable/Disable Killstreak rewards
set scr_game_perks "1" // Allow players to have perks
set scr_nukeTimer "10" // Timer when nuke goes off
set scr_game_killstreakdelay "12" // Delay killstreak from the start of the round.
//////////////////////////////////////////////////
// HARDCORE CONFIGURATION //
//////////////////////////////////////////////////
// uncomment below commands for some hardcore //
// by removing the // before each set dvar. //
//////////////////////////////////////////////////
// set g_hardcore "1" // Enable hardcore mode
// set scr_hardcore "1" // Enable hardcore mode again...
// set ui_hud_hardcore "1" // Removes Heads up display which can be used both regular and HC
// set scr_player_maxhealth "30" // Percent of Health players will have on Respawn. (100 is normal. 30 is hardcore)
// set scr_team_fftype "1" // Enable or Disable Friendly Fire. (1 on, 2 reflect, 3 shared)
// set scr_player_healthregentime "0" // Time it takes you to recover damage. (5 is normal, 0 is hardcore)
// set scr_game_onlyheadshots "0" // Enable/Disable Only Headshots mode. You can only kill players by taking headshots.
//////////////////////////////////////////////////
// FREE FOR ALL GAMETYPE SETTINGS //
//////////////////////////////////////////////////
set scr_dm_scorelimit "30" // Score limit to win the game.
set scr_dm_timelimit "10" // Duration in minutes for the game to end if the score limit isn't reached.
set scr_dm_playerrespawndelay "-1" // How long player will wait until respawn.
set scr_dm_numlives "0" // Number of lives per player. 0 for unlimited.
set scr_dm_roundlimit "1" // Rounds per game.
set scr_dm_winlimit "1" // amount of wins needed to win a round-based game
set scr_dm_promode "0"
//////////////////////////////////////////////////
// TEAM DEATHMATCH GAMETYPE SETTINGS //
//////////////////////////////////////////////////
set scr_war_scorelimit "75" // Score limit to win the game.
set scr_war_timelimit "10" // Duration in minutes for the game to end if the score limit isn't reached.
set scr_war_playerrespawndelay "0" // How long player will wait until respawn.
set scr_war_waverespawndelay "0" // Duration is seconds before the first respawn in each round.
set scr_war_numlives "0" // Number of lives per player 0 for unlimited.
set scr_war_roundlimit "1" // Rounds per game.
set scr_war_winlimit "1" // amount of wins needed to win a round-based game
set scr_war_promode "0"
//////////////////////////////////////////////////
// SEARCH AND DESTROY GAMETYPE SETTINGS //
//////////////////////////////////////////////////
set scr_sd_scorelimit "1" // Score limit required to win the game.
set scr_sd_timelimit "2.5" // Duration in minutes for the game to end if the score limit isn't reached.
set scr_sd_playerrespawndelay "0" // How long player will wait until respawn.
set scr_sd_waverespawndelay "0" // Duration is seconds before the first respawn in each round.
set scr_sd_numlives "1" // Number of lives per player per game.
set scr_sd_roundlimit "0" // Rounds the game is limited to 0 for unlimited.
set scr_sd_winlimit "4" // amount of wins needed to win a round-based game.
set scr_sd_roundswitch "3" // after X rounds, switch sides.
set scr_sd_bombtimer "45" // Time taken for the bomb to detonate.
set scr_sd_defusetime "5" // Time taken to defuse the bomb.
set scr_sd_multibomb "0" // allow multiple people to 'have the bomb'.
set scr_sd_planttime "5" // How long will it take player to 'plant the bomb'.
set scr_sd_promode "0"
//////////////////////////////////////////////////
// SEARCH AND RESCUE GAMETYPE SETTINGS //
//////////////////////////////////////////////////
set scr_sr_scorelimit "1" // Score limit required to win the game.
set scr_sr_timelimit "2.5" // Duration in minutes for the game to end if the score limit isn't reached.
set scr_sr_playerrespawndelay "0" // How long player will wait until respawn.
set scr_sr_waverespawndelay "0" // Duration is seconds before the first respawn in each round.
set scr_sr_numlives "1" // Number of lives per player per game.
set scr_sr_roundlimit "0" // Rounds the game is limited to 0 for unlimited.
set scr_sr_winlimit "4" // amount of wins needed to win a round-based game.
set scr_sr_roundswitch "3" // after X rounds, switch sides.
set scr_sr_bombtimer "45" // Time taken for the bomb to detonate.
set scr_sr_defusetime "5" // Time taken to defuse the bomb.
set scr_sr_multibomb "0" // allow multiple people to 'have the bomb'.
set scr_sr_planttime "5" // How long will it take player to 'plant the bomb'.
set scr_sr_promode "0"
//////////////////////////////////////////////////
// DOMINATION GAMETYPE SETTINGS //
//////////////////////////////////////////////////
set scr_dom_scorelimit "200" // Score limit to win the game.
set scr_dom_timelimit "0" // Duration in minutes for the game to end if the score limit isn't reached.
set scr_dom_playerrespawndelay "0" // How long player will wait until respawn.
set scr_dom_waverespawndelay "0" // Duration is seconds before the first respawn in each round.
set scr_dom_numlives "0" // Number of lives per player per game. 0 is unlimited.
set scr_dom_roundlimit "1" // Rounds per game
set scr_dom_winlimit "1" // amount of wins needed to win a round-based game
set scr_dom_promode "0"
//////////////////////////////////////////////////
// KILL CONFIRMED GAMETYPE SETTINGS //
//////////////////////////////////////////////////
set scr_conf_scorelimit "65" // Score limit to win the game.
set scr_conf_timelimit "10" // Duration in minutes for the game to end if the score limit isn't reached.
set scr_conf_playerrespawndelay "0" // How long player will wait until respawn.
set scr_conf_waverespawndelay "0" // Duration is seconds before the first respawn in each round.
set scr_conf_numlives "0" // Number of lives per player 0 for unlimited.
set scr_conf_roundlimit "1" // Rounds per game.
set scr_conf_winlimit "1" // amount of wins needed to win a round-based game
set scr_conf_promode "0"
//////////////////////////////////////////////////
// CAPTURE THE FLAG GAMETYPE SETTINGS //
//////////////////////////////////////////////////
set scr_ctf_scorelimit "0" // Target score before the round ends.
set scr_ctf_timelimit "10" // Duration in minutes for the game to end if the score limit isn't reached.
set scr_ctf_numlives "0" // Number of lives per player 0 for unlimited.
set scr_ctf_halftime "1" // Half-Time
set scr_ctf_roundlimit "1" // How many rounds match would last.
set scr_ctf_returntime "30" // How many seconds before flag returns to base without nobody touching it.
set scr_ctf_playerrespawndelay "0" // Respawn wait in seconds.
set scr_ctf_waverespawndelay "10" // Time delay for first respawn before the game.
set scr_ctf_promode "0"
//////////////////////////////////////////////////
// INFECTED GAMETYPE SETTINGS //
//////////////////////////////////////////////////
set scr_infect_timelimit "10" // Duration in minutes for the game to end if the score limit isn't reached.
set scr_infect_playerrespawndelay "0" // How long player will wait until respawn.
set scr_infect_waverespawndelay "0" // Duration is seconds before the first respawn in each round.
set scr_infect_numlives "0" // Number of lives per player 0 for unlimited.
set scr_infect_roundlimit "1" // Rounds per game.
set scr_infect_winlimit "1" // amount of wins needed to win a round-based game
set scr_infect_promode "0"
//////////////////////////////////////////////////////////
// MAP SHORT NAMES ROTATION LIST //
//////////////////////////////////////////////////////////
// //
// Ascend - mp_refraction //
// Bio Lab - mp_lab2 //
// Comeback - mp_comeback //
// Defender - mp_laser2 //
// Detroit - mp_detroit //
// Greenband - mp_greenband //
// Horizon - mp_levity //
// Instinct - mp_instinct //
// Recovery - mp_recovery //
// Retreat - mp_venus //
// Riot - mp_prison //
// Solar - mp_solar //
// Terrace - mp_terrace //
// //
// Atlas Gorge - mp_dam //
// Chop Shop - mp_spark //
// Climate - mp_climate_3 //
// Compound - mp_sector17 //
// Core - mp_lost //
// Drift - mp_torqued //
// Fracture - mp_fracture //
// Kremlin - mp_kremlin //
// Overload - mp_lair //
// Parliament - mp_bigben2 //
// Perplex - mp_perplex_1 //
// Quarantine - mp_liberty //
// Sideshow - mp_clowntown3 //
// Site 244 - mp_blackbox //
// Skyrise - mp_highrise2 //
// Swarm - mp_seoul2 //
// Urban - mp_urban //
// //
//////////////////////////////////////////////////////////
set sv_maprotation "gametype war map mp_refraction map mp_lab2 map mp_comeback map mp_laser2 map mp_detroit map mp_greenband map mp_levity map mp_instinct map mp_recovery map mp_venus map mp_prison map mp_solar map mp_terrace map mp_dam map mp_torqued map mp_clowntown3 map mp_lost map mp_urban map mp_blackbox map mp_climate_3 map mp_perplex_1 map mp_kremlin map mp_bigbend map mp_sector17 map mp_fracture map mp_lair map mp_liberty map mp_seoul2"

107
cfg/s1/server_horde.cfg Normal file
View File

@ -0,0 +1,107 @@
//////////////////////////////////////////////////
/// S1 Server Configuration //
//////////////////////////////////////////////////
//////////////////////////////////////////////////
// SERVER NAME & COLORS TIPS //
//////////////////////////////////////////////////
// //
// ^1 Red //
// ^2 Green //
// ^3 Yellow //
// ^4 Blue //
// ^5 Cyan //
// ^6 Pink //
// ^7 White //
// ^8 Depends on the team colors playing. //
// ^9 Grey //
// ^0 Black //
// ^: Rainbow colors //
// //
//////////////////////////////////////////////////
set sv_hostname "S1 Default Server" // Sets the server hostname.
set sv_motd "" // Sets a custom motd which is shown on the intel message loadscreen when a player joins. Leave blank for default intel messages.
//////////////////////////////////////////////////
// ADMIN INFO (Optional) //
//////////////////////////////////////////////////
set _Admin "" // Your username.
set _Email "" // E-mail address. you can leave blank
set _Website "" // Website. (IW4MAdmin uses this.)
set _Location "Earth" // Location
//////////////////////////////////////////////////
// NON-GAMEPLAY CONFIGURATION //
//////////////////////////////////////////////////
set party_maxplayers "4" // Max players in your server.
set rcon_password "" // Access to your server to change stuff remotely or ingame. (Empty = disabled)
set g_password "" // Password Protected Server. Leave blank if you want players to join or set password if you want to keep public out.
set sv_privateClients "0" // Maximum number of private clients allowed on the server (range 0-18 (clamped to sv_maxclients) )
set sv_privatePassword "" // Password for reserved slots.
set sv_voice "2" // Server voice chat configuration ( 0 = "No Chat", 1 = "Free Chat", 2 = "Team Chat" (default) )
set g_allowVote "1" // Toggle voting for [player kick/map restart/next map] (0 or 1 (default) )
set g_deadChat "0" // Toggle allowing dead players to chat with living players (0 (default) or 1)
set g_inactivity "420" // Time in seconds before the server will kick a user for inactivity (range 0 - 10000)
set sv_kickBanTime "3600" // Time in seconds for a player temporary ban (on kick/tempban) (range 0 - 3600)
set sv_allowClientConsole "1" // Enable or Disable players ability to access server commands
set sv_timeout "60" // Timeout time period. You will timeout after (60) seconds when attempting to connect or if you are getting connection interruptions
set sv_reconnectlimit "3" // How many times you can try to reconnect
set sv_pure "1" // verifying cilent files
set sv_floodProtect "1" // Chat Spam Protection
set sv_sayName "console" // name server-side 'say' commands show up as
set logfile "2" // Enable loging 1-2? enable. 0 disable. Leave it on if you plan on using B3 or IW4MAdmin.
set g_logSync "1" // 1 always flush games_mp.log, 0 only flush on game end. Recommended to stay on for b3 and IW4MAdmin
set g_log "s1/logs/games_h.log" // Gamelog filename. If you edit this, Make sure you change B3.xml if you have bigbrotherbot. IW4MAdmin auto-detects however.
//////////////////////////////////////////////////
// EXO SURVIVAL GAMETYPE SETTINGS //
//////////////////////////////////////////////////
set scr_horde_scorelimit "0" // Target score before the round ends.
set scr_horde_timelimit "0" // Duration in minutes for the game to end if the score limit isn't reached.
set scr_horde_numlives "1" // Number of lives per player 0 for unlimited.
set scr_horde_promode "0"
//////////////////////////////////////////////////////////
// EXO SURVIVAL ROTATION LIST //
//////////////////////////////////////////////////////////
// //
// TIER 1 //
// //
// Bio Lab - mp_lab2 //
// Retreat - mp_venus //
// Detroit - mp_detroit //
// Ascend - mp_refraction //
// //
// TIER 2 //
// //
// Horizon - mp_levity //
// Comeback - mp_comeback //
// Terrace - mp_terrace //
// Instinct - mp_instinct //
// //
// TIER 3 //
// //
// Greenband - mp_greenband //
// Solar - mp_solar //
// Recovery - mp_recovery //
// Defender - mp_laser2 //
// //
// TIER 4 //
// //
// Riot - mp_prison //
// //
// BONUS //
// //
// Sideshow - mp_clowntown3 //
// Core - mp_lost //
// Drift - mp_torqued //
// Urban - mp_urban //
// //
//////////////////////////////////////////////////////////
set sv_maprotation "gametype horde map mp_lab2 mp_venus mp_detroit mp_refraction mp_levity mp_comeback mp_terrace mp_instinct mp_greenband mp_solar mp_recovery mp_laser2 mp_prison mp_clowntown3 mp_lost mp_torqued mp_urban"

80
cfg/s1/server_zm.cfg Normal file
View File

@ -0,0 +1,80 @@
//////////////////////////////////////////////////
/// S1 Server Configuration //
//////////////////////////////////////////////////
//////////////////////////////////////////////////
// SERVER NAME & COLORS TIPS //
//////////////////////////////////////////////////
// //
// ^1 Red //
// ^2 Green //
// ^3 Yellow //
// ^4 Blue //
// ^5 Cyan //
// ^6 Pink //
// ^7 White //
// ^8 Depends on the team colors playing. //
// ^9 Grey //
// ^0 Black //
// ^: Rainbow colors //
// //
//////////////////////////////////////////////////
set sv_hostname "S1 Default Server" // Sets the server hostname.
set sv_motd "" // Sets a custom motd which is shown on the intel message loadscreen when a player joins. Leave blank for default intel messages.
//////////////////////////////////////////////////
// ADMIN INFO (Optional) //
//////////////////////////////////////////////////
set _Admin "" // Your username.
set _Email "" // E-mail address. you can leave blank
set _Website "" // Website. (IW4MAdmin uses this.)
set _Location "Earth" // Location
//////////////////////////////////////////////////
// NON-GAMEPLAY CONFIGURATION //
//////////////////////////////////////////////////
set party_maxplayers "4" // Max players in your server.
set rcon_password "" // Access to your server to change stuff remotely or ingame. (Empty = disabled)
set g_password "" // Password Protected Server. Leave blank if you want players to join or set password if you want to keep public out.
set sv_privateClients "0" // Maximum number of private clients allowed on the server (range 0-18 (clamped to sv_maxclients) )
set sv_privatePassword "" // Password for reserved slots.
set sv_voice "2" // Server voice chat configuration ( 0 = "No Chat", 1 = "Free Chat", 2 = "Team Chat" (default) )
set g_allowVote "1" // Toggle voting for [player kick/map restart/next map] (0 or 1 (default) )
set g_deadChat "0" // Toggle allowing dead players to chat with living players (0 (default) or 1)
set g_inactivity "420" // Time in seconds before the server will kick a user for inactivity (range 0 - 10000)
set sv_kickBanTime "3600" // Time in seconds for a player temporary ban (on kick/tempban) (range 0 - 3600)
set sv_allowClientConsole "1" // Enable or Disable players ability to access server commands
set sv_timeout "60" // Timeout time period. You will timeout after (60) seconds when attempting to connect or if you are getting connection interruptions
set sv_reconnectlimit "3" // How many times you can try to reconnect
set sv_pure "1" // verifying cilent files
set sv_floodProtect "1" // Chat Spam Protection
set sv_sayName "console" // name server-side 'say' commands show up as
set logfile "2" // Enable loging 1-2? enable. 0 disable. Leave it on if you plan on using B3 or IW4MAdmin.
set g_logSync "1" // 1 always flush games_mp.log, 0 only flush on game end. Recommended to stay on for b3 and IW4MAdmin
set g_log "s1/logs/games_zm.log" // Gamelog filename. If you edit this, Make sure you change B3.xml if you have bigbrotherbot. IW4MAdmin auto-detects however.
//////////////////////////////////////////////////
// EXO ZOMBIES GAMETYPE SETTINGS //
//////////////////////////////////////////////////
set scr_zombies_scorelimit "0" // Target score before the round ends.
set scr_zombies_timelimit "0" // Duration in minutes for the game to end if the score limit isn't reached.
set scr_zombies_numlives "1" // Number of lives per player 0 for unlimited.
set scr_zombies_promode "0"
//////////////////////////////////////////////////////////
// EXO ZOMBIE ROTATION LIST //
//////////////////////////////////////////////////////////
// //
// Outbreak - mp_zombie_lab //
// Infection - mp_zombie_brg //
// Carrier - mp_zombie_ark //
// Descent - mp_zombie_h2o //
// //
//////////////////////////////////////////////////////////
set sv_maprotation "gametype zombies map mp_zombie_ark map mp_zombie_brg map mp_zombie_h2o map mp_zombie_lab"

View File

@ -0,0 +1,228 @@
version 7
// Entitlement ID Ranges
// 0 - 299 ???
// 300 - 399 Clan Entitlements
// 400 - 599 ???
// 600 - 699 Clan War Entitlements
// 700 - 799 Generic Elite Entitlements
// Number of keys to read from the key archive
keys_to_read 16
// unlocks in game - type, key index, bit, name, payload...
unlock 0 0 600 //clan wars demon_skull_p
unlock 0 1 601 //clan wars dead_ninja_p
unlock 0 2 602 //clan wars mummy_p
unlock 0 3 603 //clan wars skull_bow_p
unlock 0 4 604 //clan wars cyclops_skull_p
unlock 0 5 605 //clan wars dead_gnome_p
unlock 0 6 606 //clan wars gold_grill_p
unlock 0 7 607 //clan wars pirate_skull_p
unlock 0 8 608 //clan wars gargoyle_p
unlock 0 9 609 //clan wars vulture_p
unlock 0 10 610 //clan wars warrior_mask_p
unlock 0 11 611 //clan wars yeti_p
unlock 0 12 612 //clan wars dead_owl_p
unlock 0 13 613 //clan wars money_bags_p
unlock 0 14 614 //clan wars injured_octopus_p
unlock 0 15 615 //clan wars hotdog_p
unlock 0 16 616 //clan wars crab_p
unlock 0 17 617 //clan wars angry_robot_p
unlock 0 18 618 //clan wars triangle_dot_ret
unlock 0 19 619 //clan wars gold_chain_emb
unlock 0 20 620 //clan wars wing_emb
unlock 0 21 621 //clan wars brass_knuck_emb
unlock 0 22 622 //clan wars ninja_emb
unlock 0 25 623 //clan wars reaper head
unlock 0 26 624 //clan wars merc head
unlock 0 27 625 //clan wars body
unlock 0 28 460 //clan wars diamond division reticle
unlock 0 29 401 //clan wars diamond division camo
unlock 0 30 627 //clan wars diamond division assassin head
unlock 0 31 626 //clan wars diamond division savage head
unlock 0 32 628 //clan wars diamond division body
unlock 3 0 700 //Download the mobile app
unlock 3 1 701 //Founder Skull
unlock 3 4 500 //NEVERSOFT
unlock 3 3 501 //IW
unlock 3 5 502 //RAVEN
unlock 3 7 503 //HIGH_MOON
unlock 3 6 504 //BEACHHEAD
unlock 13 0 209 //monster beast patch
unlock 13 2 210 //monster beast playercard
unlock 13 1 211 //monster viper patch
unlock 13 3 212 //monster viper playercard
unlock 13 4 216 //riley / classic ghost head
unlock 13 30 217 //watcher patch
unlock 13 31 213 //federation patch
unlock 13 32 215 //into the deep patch
unlock 13 33 214 //no man's land patch
//Platform Unlocks
platform 200 255161 //team leader head
platform 201 255161 //team leader playercard
platform 202 255161 //team leader patch
platform 403 255161 //team leader camo
platform 451 255161 //team leader reticle
platform 200 255160 //team leader head
platform 201 255160 //team leader playercard
platform 202 255160 //team leader patch
platform 403 255160 //team leader camo
platform 451 255160 //team leader reticle
platform 206 255162 //insignia playercard
platform 205 255162 //insignia patch
platform 216 255165 //classic ghost character
platform 213 255167 //federation patch
platform 214 255168 //no mans land patch
platform 215 255169 //into the deep patch
platform 207 255163 //digital hardened patch
platform 208 255163 //digital hardened playercard
platform 217 255166 //Steam Patch - The Watcher
platform 222 268100 //festive playercard
platform 221 268100 //festive patch
platform 410 268100 //festive camo
platform 453 268100 //festive reticle
platform 550 268101 //wolf
platform 551 277670 //extra slots
platform 552 277671 // hero character - elias
platform 553 277672 // hero character - hesh
platform 554 277673 // hero character - merrick
platform 555 277674 // hero character - keegan
platform 556 277675 // hero character - price
platform 557 281343 // Hazmat character
platform 558 281340 // Makarov Legend Pack
platform 559 281342 // Rorke Character
platform 560 281341 // Zakhaev Character
platform 561 286632 // Soap Legend Pack
platform 562 286633 // Extinction Squad
platform 563 286634 // TF141
platform 490 277676 // Personalization pack 1 - Ducky
platform 491 277677 // Personalization pack 2 - Blood
platform 492 277678 // Personalization pack 3 - Inferno
platform 493 277679 // Personalization pack 4 - Kittens
platform 494 281344 // Personalization pack 5
platform 495 281345 // Personalization pack 6
platform 496 281346 // Personalization pack 7
platform 497 281347 // Personalization pack 8
platform 498 286630 // Personalization pack 9
platform 499 286631 // Personalization pack 10
platform 510 295430 // Personalization pack 11
platform 511 295431 // Personalization pack 12
platform 512 295432 // Personalization pack 13
platform 513 295433 // Personalization pack 14
platform 515 295434 // Personalization pack 15
platform 516 295435 // Personalization pack 16
platform 517 295439 // Personalization pack 17
platform 518 295440 // Personalization pack 18
platform 519 301111 // Personalization pack 19
platform 520 301112 // Personalization pack 20
platform 521 301113 // Personalization pack 21
platform 522 301114 // Personalization pack 22
platform 523 301110 // Personalization pack Flags
platform 564 295436 // Spectrum Character
platform 565 295437 // Astronaut Character
platform 566 295438 // Resistance Squad
platform 567 309870 // Bluntforce Character
platform 568 309871 // Inferno Character
platform 569 309872 // Bling Character
platform 480 259250 //dlc gun 1
platform 480 301116 //dlc gun 1
platform 481 259250 //dlc gun 1
platform 481 301116 //dlc gun 1
platform 482 259251 //Ripper from Devastation
platform 482 255161 //Ripper from Season Pass
platform 482 301115 //Ripper from mDLC
//Clan Entitlements - ID 300 - 399 - type, bit, entitlement id
clan 0 300
clan 0 301
clan 1 302
clan 2 303
clan 3 304
clan 3 305
clan 3 306
clan 4 307
clan 4 308
clan 4 309
clan 5 310
clan 5 311
clan 6 312
clan 7 313
clan 8 314
clan 8 315
clan 8 316
clan 9 317
clan 10 318
clan 10 319
clan 10 320
clan 10 321
clan 10 322
clan 11 323
clan 12 324
clan 13 325
clan 13 326
clan 13 327
clan 13 328
clan 13 329
clan 14 330
clan 15 331
clan 15 332
clan 15 333
clan 16 334
clan 16 335
clan 16 336
clan 16 337
clan 16 338
clan 17 339
clan 18 340
clan 19 341
clan 19 342
clan 19 343
clan 19 344
clan 20 345
clan 20 346
clan 21 347
clan 21 348
clan 21 349
clan 22 350
clan 23 351
clan 24 352
clan 25 353
clan 26 354
clan 26 355
clan 26 356
clan 26 357
clan 27 358
//Clan Level Challenges - type, required level, challenge id
clanlevelchallenge 23 ch_cam_clan_02 // Kiss of Death Camo
//Clan War Challenges - type, key index, bit offset, challenge id
entitlementchallenge 0 18 ch_ret_clan // clan wars reticle - Triad
entitlementchallenge 0 24 ch_cam_clan_01 // clan wars camo - Body Count

BIN
data/dw/ffotd-1.22.1.ff Normal file

Binary file not shown.

1050
data/dw/lootConfig_tu22.csv Normal file

File diff suppressed because it is too large Load Diff

1
data/dw/mm.cfg Normal file
View File

@ -0,0 +1 @@
XX 0 D150 0 G5 4 F 6 H 60 S 30 B 20 M49152 40 M14336 0 P50 8 P75 16 P100 24 P120 32 P150

BIN
data/dw/playlists_tu22.aggr Normal file

Binary file not shown.

171
data/dw/social_tu22.cfg Normal file
View File

@ -0,0 +1,171 @@
// increment this version number when making changes to the social config
set social_config_version 40
set netinfo_logging 0
set ui_show_store 1
set igs_td 1
set igs_sosp 1
set matchdata_active 1
set sp_matchdata_active 1
set theater_active 1
set facebook_active 0
set entitlements_active 1
set userGroup_active 1
set prestige_shop_active 1
set gamedvr_active 1
set livestreaming_active 0
set screenshots_active 1
set comscore_active 1
set zombies_show_menu_option 1
set userGroup_max_retry_time 10000
set elite_clan_active 0
set elite_clan_remote_view_active 0
set elite_clan_emblem_upload_active 0
set dw_presence_active 1
set dw_presence_put_delay 5000
set dw_presence_put_rate 60000
set dw_presence_get_delay 5000
set dw_presence_get_rate 120000
set dw_presence_coop_join_active 1
set dw_shared_presence_active 1
set dw_shared_presence_put_rate 300000
set dw_leaderboard_write_active 1
set elite_clan_delay -1
set elite_clan_division_icon_active 1
set splitscreen_online_enabled 1
set motd_store_link 0
set ca_intra_only 0
#ifdef MP
set live_qosec_lastupdatems 5000
set ca_do_mlc 1
set ds_pingclient_maxpings 10
set ds_pingclient_minpings 4
set ds_pingclient_maxpings_per_tick 1
set ds_serverConnectTimeout 3000
set ds_listenServerConnectTimeout 10000
set ds_serverAcquireTimeout 2000
set ds_introRequestTimeout 2000
set ds_serverListExpiryPeriod 60000
set ds_serverAcquisitionPeriod 7000
set max_party_share_ds_pings 8
set dc_lobbymerge 1
set s_avg_max_weighting 0
#endif
set mm_skill_lower_bucket 806
set mm_skill_upper_bucket 1051
set mm_feed_performance 1
#ifdef MP
set past_title_data_active 0
set past_title_data_read_failure_interval_hours 72
set past_title_data_read_success_interval_hours 192
#endif
set mm_skill_enforcement 0
set mm_use_onboarding_skill 1
set mm_bucket_option 1 // isolate onboarding pool
set comscore_active 1
#ifdef MP
set enable_emblemAppDownload 0
set marketing_active 0
set emblems_active 1
set selfie_active 0
#endif
set enable_video_options_preload_shader_controls 1
// ChurnScore
set churnscore_scaling_param1 818.1
set churnscore_scaling_param2 6288.3
set churnscore_scoring_param1 3.53478575181172
set churnscore_scoring_multiplier_totalkillscap -0.527447816986428
set churnscore_scoring_multiplier_gameperformance -0.32373506559784
set churnscore_scoring_multiplier_daysbetweentitles 0.00058954962393
set churnscore_scoring_multiplier_previoustitlematches -0.00003043977270
set churnscore_scoring_multiplier_currenttitlematches -0.00112090114056
set churnscore_scoring_multiplier_dayssincelaunch 0
set churnscore_scoring_multiplier_disconnectflag 1.02002532365439
set churnscore_scoring_multiplier_spflag -0.06442491477533
set churnscore_scoring_multiplier_timesincelastmatch 5.94629549261903E-07
// RedeemCoupons
set inventory_taskRedeemCouponTimeout 10.0 // in sec
set inventory_fullRedeemCouponTimeout 15000 // in ms
set inventory_handleRedeemCouponErrorAsSuccess 1
set inventory_handleRedeemCouponErrorCode 8045
set inventory_ignoreOldPushNotifications 1
set inventory_maxRewardRollsClaimed 35
// DLC
set inventory_exchangeRetryMax 1
set useCPMarkerForCPOwnership 1
set earlyAccessDLC 3
set inventory_handleRedeemCouponErrorAsSuccess 1
set inventory_handleRedeemCouponErrorCode 8045
set inventory_ignoreOldPushNotifications 1
set igs_version 10
set igs_config_dw_filename "winStoreConfig_tu22.csv"
set armory_contentpacks_enabled 5
set msg_field_delta2 0 // matched in socialds
// DAILY Challenges
set dailychallenge_killswitch 1727554559 // all enabled
set dailychallenge_killswitch2 2041 // all enabled
// Ranked Play
set rankedPlaylistLockoutDuration 900
set rankedPlayEndMatchKeepLobby 1
set scr_game_season 10 // matched in socialds
set zombiesAllowSoloPause 1
set csdRewardRanks32 537395200
set csdRewardRanks64 128
// Skill-Based Matchmaking Control
set mm_skill_param_xi 1.0341387
set mm_skill_param_lambda 0.1631656
set mm_skill_param_gamma -0.02225907
set mm_skill_param_delta 0.8303422
set prestige30EasterEggEnabled 1
set enableS1TUSpawnSightTraces 1 // matched in socialds
// Special Base Weapon Killswitch
set baseWeaponsKillswitch "" // matched in socialds
// Loot Config
set lootConfig_dw_enabled 1
set lootConfig_dw_filename "lootConfig_tu22.csv"
set lootConfig_redeem_xp "500,1000,2000,4000,3000"
set lootConfig_redeem_codpoint "500,1000,2000,4000,3000"
set codPointStore_enabled 0
set codPointStore_dw_filename "codPointStoreConfig_tu22.csv"
// must match socialds
set bg_customization_gearSetBonusEnabled 1
set bg_customization_gearSetBonusXP .05
set bg_customization_gearSetKillswitch_1 16777215
set bg_customization_gearSetKillswitch_2 16777215
set bg_customization_gearSetKillswitch_3 16646143
set bg_customization_gearSetKillswitch_4 12582399
set bg_customization_gearSetKillswitch_5 16777215
// Redeem 50 Duplicate
set lui_loot_duplicateredemption 0

View File

@ -0,0 +1,206 @@
#Game Language to offerids mapping
#english,EN
#french,FR
#frenchcan,FR
#german,DE-LV
#austrian,DE-FV
#italian,IT
#spanish,ES
#british,EN
#russian,RU
#polish,PL
#korean,EN
#japanese,EN-JA
#fulljap,JA
#visibility refer to igsProductVisibility_e
# 0 - Visible Always
# 1 - Hide Always ( Hide in store and in Front End )
# 2 - Visible for season pass holders ( Hide in store if player does not own season pass )
# 3 - Visible for non season pass holders ( Hide in store if player owns season pass )
# 4 - Hide in CAC / CAO ( Show in Store,Hide in Front End )
# 5 - Early Access ( Hide in the store,Show in Front End )
version,version_id,10
#type = product,UID,Product ID,Image Name,dlcName,category,#Language List separated by space delimiter,#visibility,#productgroup,#seenIndex,#name
product,product_1,317660,img_store_season_pass,seasonpass,seasonpass,english french german italian spanish russian polish korean taiwanese chinese thai czech spanishna portuguese arabic,0,,,# Season Pass
product,product_2,318791,img_store_mappacks_havok,dlc2,mappacks,all,0,,,# Havoc
product,product_3,318792,img_store_mappacks_ascendance,dlc3,mappacks,all,0,,32,# Ascendance
product,product_4,318793,img_store_mappacks_supremacy,dlc4,mappacks,all,0,,,# Supremacy
product,product_5,318794,img_store_mappacks_reckoning,dlc5,mappacks,all,0,,,# Reckoning
# MDLC 2.5 - Standard Packs
product,product_137,343596,img_store_personpacks_ice,mdlc62,personpacks,all,0,,34,# Ice Pack
product,product_138,343597,img_store_personpacks_disco,mdlc63,personpacks,all,0,,35,# Disco Pack
product,product_139,343598,img_store_personpacks_cards,mdlc64,personpacks,all,0,,36,# Cards Pack
product,product_140,343599,img_store_personpacks_jackpot,mdlc65,personpacks,all,0,,37,# Jackpot Pack
product,product_141,343590,img_store_personpacks_blackout,mdlc66,personpacks,all,1,,38,# BLOPS3 Pack
# MDLC 2 - Standard Packs
product,product_6,343591,img_store_personpacks_tiki,mdlc34,personpacks,all,0,,,# Tiki
product,product_7,343592,img_store_personpacks_gasfire,mdlc35,personpacks,all,0,,,# Gas Fire
product,product_8,343593,img_store_personpacks_leaf,mdlc36,personpacks,all,0,,,# Leaf
product,product_9,343594,img_store_personpacks_psych,mdlc37,personpacks,all,0,,,# Psychadelic
product,product_10,331060,img_store_personpacks_magma,mdlc7,personpacks,all,0,,,# Magma
product,product_11,331061,img_store_personpacks_lightning,mdlc8,personpacks,all,0,,,# Lightning
product,product_12,331062,img_store_personpacks_hide,mdlc9,personpacks,all,0,,,# Hide
product,product_13,331063,img_store_personpacks_nanotech,mdlc10,personpacks,all,0,,,# Nanotech
# MDLC 2.5 Premium Personalization Packs
product,product_136,343590,img_store_personpacks_premium_blackout,mdlc61,PREMPERSONPACKS,all,1,,33,# BLOPS3 Prem Pack
# MDLC 2 - Premium Personalization Packs
product,product_14,343596,img_store_personpacks_premium_tiki,mdlc38,prempersonpacks,all,1,,,# Premium Tiki
product,product_15,343597,img_store_personpacks_premium_gasfire,mdlc39,prempersonpacks,all,1,,,# Premium Gas Fire
product,product_16,343598,img_store_personpacks_premium_leaf,mdlc40,prempersonpacks,all,1,,,# Premium Leaf
product,product_17,343599,img_store_personpacks_premium_psych,mdlc41,prempersonpacks,all,1,,,# Premium Psychadelic
product,product_18,343600,img_store_personpacks_premium_cod_champs,mdlc42,prempersonpacks,all,0,,,# Premium Cod Champs
product,product_19,331064,img_store_personpacks_premium_magma,mdlc11,prempersonpacks,all,0,,,# Premium Magma
product,product_20,331065,img_store_personpacks_premium_lightning,mdlc12,prempersonpacks,all,0,,,# Premium Lightning
product,product_21,331066,img_store_personpacks_premium_hide,mdlc13,prempersonpacks,all,0,,,# Premium Hide
product,product_22,331067,img_store_personpacks_premium_nanotech,mdlc14,prempersonpacks,all,0,,,# Premium Nanotech
# MDLC 2 - Exo Packs
product,product_23,343601,img_store_operatorpacks_cowboy,mdlc101,operatorpacks,all,1,,,# Cowboy
product,product_24,343602,img_store_operatorpacks_surfer,mdlc43,operatorpacks,all,1,,,# Surfer
product,product_25,343604,img_store_operatorpacks_octopus,mdlc45,operatorpacks,all,1,,,# Octopus
# MDLC 2 - Lady Gear Exo Packs
product,product_26,345600,img_store_operatorpacks_rose_camo,mdlc59,OPERATORPACKS,all,1,,,# Rose Camo / Passionate
product,product_27,345601,img_store_operatorpacks_white_blue,mdlc60,OPERATORPACKS,all,1,,,# White Blue / Tenacious
product,product_28,5f3f93ca-03ab-4fdd-aa00-63f17fb08d79,img_store_operatorpacks_steam_punk,mdlc15,operatorpacks,all,0,,,# Steam Punk
product,product_29,beb1715c-5825-4ae3-844d-1f72231f9306,img_store_operatorpacks_panda,mdlc16,operatorpacks,all,0,,,# Panda
product,product_30,05e1b887-e323-4aaf-b95b-12e9512f76aa,img_store_operatorpacks_bali_mask,mdlc17,operatorpacks,all,0,,,#Bali Mask
product,product_31,33c64260-e212-4794-8abe-9810f04471e7,img_store_operatorpacks_classic_biker,mdlc18,operatorpacks,all,0,,,#Classic Biker
# MDLC 2 - Flags
product,product_32,334460,img_store_flag_packs_argentinia,mdlc46,flagpacks,all,1,,,# Argentina Flag
product,product_33,343605,img_store_flag_packs_austria,mdlc47,flagpacks,all,1,,,# Austria Flag
product,product_34,333086,img_store_flag_packs_brazil,mdlc26,flagpacks,all,1,,,# Brazil Flag
product,product_35,343606,img_store_flag_packs_columbia,mdlc48,flagpacks,all,1,,,# Columbia Flag
product,product_36,343607,img_store_flag_packs_ireland,mdlc49,flagpacks,all,1,,,# Ireland Flag
product,product_37,343608,img_store_flag_packs_new_zealand,mdlc50,flagpacks,all,1,,,# New Zealand Flag
product,product_38,343609,img_store_flag_packs_portugal,mdlc51,flagpacks,all,1,,,# Portugal Flag
product,product_39,331072,img_store_flag_packs_usa,mdlc19,flagpacks,all,0,,,# USA Flag
product,product_40,333080,img_store_flag_packs_uk,mdlc20,flagpacks,all,0,,,# UK Flag
product,product_41,333081,img_store_flag_packs_canada,mdlc21,flagpacks,all,0,,,# Canada Flag
product,product_42,333082,img_store_flag_packs_france,mdlc22,flagpacks,all,0,,,# France Flag
product,product_43,333083,img_store_flag_packs_germany,mdlc23,flagpacks,all,0,,,# Germany Flag
product,product_44,333084,img_store_flag_packs_australia,mdlc24,flagpacks,all,0,,,# Australia Flag
product,product_45,333087,img_store_flag_packs_italy,mdlc27,flagpacks,all,0,,,# Italy Flag
product,product_46,333088,img_store_flag_packs_spain,mdlc28,flagpacks,all,0,,,# Spain Flag
product,product_47,334220,img_store_flag_packs_netherlands,mdlc29,flagpacks,all,0,,,# Netherlands Flag
product,product_48,334221,img_store_flag_packs_japan,mdlc30,flagpacks,all,0,,,# Japan Flag
product,product_49,343610,img_store_cac_slots,mdlc52,otheritems,all,0,,,# Create A Class Slots
product,product_50,343612,img_store_armory_slots1,mdlc54,otheritems,all,0,armoryslots,,# Armory Slots
product,product_51,343613,img_store_armory_slots2,mdlc55,otheritems,all,0,armoryslots,,# Armory Slots
product,product_52,343614,img_store_armory_slots3,mdlc56,otheritems,all,0,armoryslots,,# Armory Slots
product,product_53,343615,img_store_armory_slots4,mdlc57,otheritems,all,0,armoryslots,,# Armory Slots
product,product_54,343616,img_store_armory_slots5,mdlc58,otheritems,all,0,armoryslots,,# Armory Slots
product,product_55,318790,img_store_mappacks_atlas_gorge,dlc1,otheritems,all,0,,,# Atlas Gorge
product,product_56,00000,img_store_supplydrops_1,supdrp61,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
product,product_57,76a554fb-c4b4-4a3e-b913-dcd0c61de638,img_store_supplydrops_1,supdrp62,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
product,product_58,ed37f45c-1d3c-451c-87c3-0bb46ca51fa6,img_store_supplydrops_1,supdrp63,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
product,product_59,518865ed-dfae-4d8a-836e-e0e5dc2c3d08,img_store_supplydrops_1,supdrp64,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
product,product_60,3b9f4478-900d-43f9-b4b1-eb1f901ce961,img_store_supplydrops_1,supdrp65,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
product,product_61,f20bfb05-cca9-4a61-971b-c6c620b928b0,img_store_supplydrops_1,supdrp66,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
product,product_62,a75ee2b8-42f6-46b1-a45f-db6e64a98872,img_store_supplydrops_1,supdrp67,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
product,product_63,20f97f87-52a7-461e-8b78-9a54080bd400,img_store_supplydrops_1,supdrp68,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
product,product_64,f03ad620-bc8a-4f4f-a3b0-3630347b8a30,img_store_supplydrops_1,supdrp69,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
product,product_65,ebe31b71-f8cc-4f0d-9915-6a13d53af74b,img_store_supplydrops_1,supdrp70,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
product,product_111,b05003d8-bf77-4d04-a0cc-d8a36425b813,img_store_supplydrops_1,supdrp72,supplydrops,all,1,supplydrops_1,22,# Supply Drops 1
product,product_112,2b7b516c-8e7e-45b7-92fd-dc2040c08d6e,img_store_supplydrops_1,supdrp73,supplydrops,all,1,supplydrops_1,22,# Supply Drops 1
product,product_113,5de14218-1543-4fc5-ae89-eb4037109234,img_store_supplydrops_1,supdrp74,supplydrops,all,1,supplydrops_1,22,# Supply Drops 1
product,product_114,3404d799-4341-46de-95ea-c6bdd47c8e39,img_store_supplydrops_1,supdrp75,supplydrops,all,1,supplydrops_1,22,# Supply Drops 1
product,product_115,3f05faaf-a59b-4807-ad58-0bd28f520cc9,img_store_supplydrops_1,supdrp76,supplydrops,all,1,supplydrops_1,22,# Supply Drops 1
product,product_66,6031ecd6-a183-4c71-9022-9685dde26ebd,img_store_supplydrops_3,supdrp91,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
product,product_67,6aebd756-0b60-4ad4-8639-d27db2ae79e0,img_store_supplydrops_3,supdrp92,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
product,product_68,93a0c86c-c7af-464c-88d7-6e0519d482f4,img_store_supplydrops_3,supdrp93,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
product,product_69,6ca3fa67-8844-4128-89e0-8d4b7b8c5e3a,img_store_supplydrops_3,supdrp94,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
product,product_70,55c76436-50d8-401e-8761-b9ceeb18c7c4,img_store_supplydrops_3,supdrp95,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
product,product_71,844742d6-baa0-4079-892e-649a45564b56,img_store_supplydrops_3,supdrp96,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
product,product_72,605fb575-1482-4e0f-8934-165e290d26ca,img_store_supplydrops_3,supdrp97,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
product,product_73,64d0e219-b602-4906-b714-895d020bae2a,img_store_supplydrops_3,supdrp98,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
product,product_74,fc0e23af-fc91-4711-b3ca-a45c3ab03049,img_store_supplydrops_3,supdrp99,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
product,product_75,e9886801-697b-4b40-93bd-6f9b37b6102b,img_store_supplydrops_3,supdrp100,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
product,product_116,3c32e23a-514d-487c-9733-c9c8ec6fd55b,img_store_supplydrops_3,supdrp77,supplydrops,all,1,supplydrops_3,23,# Supply Drops 3
product,product_117,906884d7-2864-4cd2-b725-1129c111abab,img_store_supplydrops_3,supdrp78,supplydrops,all,1,supplydrops_3,23,# Supply Drops 3
product,product_118,28e9c053-da80-4f8a-b1b3-26cf9e6cad59,img_store_supplydrops_3,supdrp79,supplydrops,all,1,supplydrops_3,23,# Supply Drops 3
product,product_119,13668620-fb95-4e3b-b15b-05ca33cb90dc,img_store_supplydrops_3,supdrp80,supplydrops,all,1,supplydrops_3,23,# Supply Drops 3
product,product_120,e9e772ce-aeb5-4831-9672-f2ab1c0459f5,img_store_supplydrops_3,supdrp81,supplydrops,all,1,supplydrops_3,23,# Supply Drops 3
product,product_76,156f40b5-3683-4c26-a6d0-f2358701df53,img_store_supplydrops_5,supdrp71,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
product,product_77,3ec7cec9-91ff-4931-8785-e7092495c5cb,img_store_supplydrops_5,supdrp72,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
product,product_78,29af6a13-c4ce-469c-aee1-82bdcef9307f,img_store_supplydrops_5,supdrp73,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
product,product_79,92334032-5350-4319-ad0b-a5dac31e491f,img_store_supplydrops_5,supdrp74,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
product,product_80,9974b492-3253-4873-97cc-68a47117f09f,img_store_supplydrops_5,supdrp75,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
product,product_81,d3a71cec-ceb3-452a-baa1-97ce8360cee8,img_store_supplydrops_5,supdrp76,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
product,product_82,93e9ba95-0738-4302-9880-33774f4e4b2a,img_store_supplydrops_5,supdrp77,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
product,product_83,5998caba-5f9f-475c-bc45-a4f2d9386105,img_store_supplydrops_5,supdrp78,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
product,product_84,5afa84ac-abe3-4db9-917e-29933134d4be,img_store_supplydrops_5,supdrp79,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
product,product_85,4f7350d9-90aa-4f91-a974-8fe399280d7c,img_store_supplydrops_5,supdrp80,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
product,product_121,19938ec4-0047-4d17-8002-97c6584413fa,img_store_supplydrops_5,supdrp82,supplydrops,all,1,supplydrops_5,24,# Supply Drops 5
product,product_122,e2bb0ca8-66cc-4658-a34c-0c80babdb0df,img_store_supplydrops_5,supdrp83,supplydrops,all,1,supplydrops_5,24,# Supply Drops 5
product,product_123,411f8663-77fd-4821-8eef-8e213ba1f4ed,img_store_supplydrops_5,supdrp84,supplydrops,all,1,supplydrops_5,24,# Supply Drops 5
product,product_124,2a9140a1-946b-4a07-a790-6f7d4ee541d7,img_store_supplydrops_5,supdrp85,supplydrops,all,1,supplydrops_5,24,# Supply Drops 5
product,product_125,af7f50e7-dc1b-4b14-b78d-61ae560b2a00,img_store_supplydrops_5,supdrp86,supplydrops,all,1,supplydrops_5,24,# Supply Drops 5
product,product_86,5de0f259-b94b-40a9-a2ea-dba2f95f8b87,img_store_supplydrops_10,supdrp81,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
product,product_87,89f452a5-5c6f-4d8e-a203-35de25a73805,img_store_supplydrops_10,supdrp82,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
product,product_88,c503ee82-39c2-4a0e-93fe-e9acfc846a81,img_store_supplydrops_10,supdrp83,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
product,product_89,e2c670f6-567b-4bd1-ae36-c2f039e22add,img_store_supplydrops_10,supdrp84,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
product,product_90,b38a63b5-2c14-445f-a9d7-31ad59b4fe5c,img_store_supplydrops_10,supdrp85,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
product,product_91,8c448893-0809-4c4f-be73-fa574be15333,img_store_supplydrops_10,supdrp86,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
product,product_92,82a96d7b-859b-46a9-a7c7-ba082558066b,img_store_supplydrops_10,supdrp87,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
product,product_93,9bc7070b-4a5a-4d39-9957-734eafd3f8e0,img_store_supplydrops_10,supdrp88,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
product,product_94,dda9be88-d5cc-4827-aecf-40e9598f4adb,img_store_supplydrops_10,supdrp89,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
product,product_95,4067a17b-23c7-4999-a514-8ed9041e8a02,img_store_supplydrops_10,supdrp90,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
product,product_126,10cd1171-2eb4-4dcb-a281-372b747319f6,img_store_supplydrops_10,supdrp87,supplydrops,all,1,supplydrops_10,25,# Supply Drops 10
product,product_127,8706ff47-4cc7-4957-a4f3-d9589be39d78,img_store_supplydrops_10,supdrp88,supplydrops,all,1,supplydrops_10,25,# Supply Drops 10
product,product_128,ff9063ee-79ef-4b4a-8e22-df83f700e292,img_store_supplydrops_10,supdrp89,supplydrops,all,1,supplydrops_10,25,# Supply Drops 10
product,product_129,31cdd8b7-2c6a-414b-8e02-a2d7f6f64f12,img_store_supplydrops_10,supdrp90,supplydrops,all,1,supplydrops_10,25,# Supply Drops 10
product,product_130,de53b351-a6ab-4089-a30b-0396f6fad455,img_store_supplydrops_10,supdrp91,supplydrops,all,1,supplydrops_10,25,# Supply Drops 10
# Consumable Supply Drops
product,product_96,c5f202f9-3386-4d8b-9f5f-fc4f16f78ed3,img_store_supplydrops_1,supdrp46,supplydrops_v2,all,1,,26,# Consumable Supply Drops 1
product,product_97,0463b195-81cb-43c8-87a4-814043492ac1,img_store_supplydrops_3,supdrp50,supplydrops_v2,all,1,,27,# Consumable Supply Drops 3
product,product_98,ef8577d9-0cab-433d-8955-8dd96089218e,img_store_supplydrops_5,supdrp47,supplydrops_v2,all,1,,28,# Consumable Supply Drops 5
product,product_99,4b49d2af-d9ed-4f4a-8aa1-0fc3c2e70f87,img_store_supplydrops_10,supdrp48,supplydrops_v2,all,1,,29,# Consumable Supply Drops 10
product,product_100,ca0012ef-1206-4173-8979-d2d4f3d66a57,img_store_supplydrops_20,supdrp71,supplydrops_v2,all,1,,31,# Consumable Supply Drops 20
# More Durable Supply Drops
product,product_101,48a1c3f1-c47f-4752-95c8-658630e29cd1,img_store_supplydrops_20,supdrp61,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
product,product_102,e0556d68-6bbf-4fce-affb-28c4eec8eb25,img_store_supplydrops_20,supdrp62,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
product,product_103,d627860d-bf3a-4972-9eb5-51a68bf4eb44,img_store_supplydrops_20,supdrp63,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
product,product_104,641bb491-7dda-42c9-850f-a9d6774236a0,img_store_supplydrops_20,supdrp64,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
product,product_105,c53a24c9-c07b-468d-bbc5-1d57ccdfd82c,img_store_supplydrops_20,supdrp65,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
product,product_106,fcc7f36b-3158-4129-a13d-8437924eb9ee,img_store_supplydrops_20,supdrp66,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
product,product_107,a21a0bda-abed-47a2-9d97-40bede8bfd7b,img_store_supplydrops_20,supdrp67,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
product,product_108,c7492ab3-7a7c-46d7-8efd-2a6ecd844dd7,img_store_supplydrops_20,supdrp68,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
product,product_109,e6a955fb-c723-42f7-b391-615dce049592,img_store_supplydrops_20,supdrp69,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
product,product_110,a4f8bf5c-4af4-4f4b-9996-e0816475ff6b,img_store_supplydrops_20,supdrp70,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
product,product_131,0b917713-e3a1-406b-9a61-dd1afa2212f5,img_store_supplydrops_20,supdrp92,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
product,product_132,69377444-37e1-4b99-8008-376a1da8d886,img_store_supplydrops_20,supdrp93,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
product,product_133,c3ae1aee-1445-4601-9577-033496317972,img_store_supplydrops_20,supdrp94,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
product,product_134,7d66fdd5-ebac-4893-be48-439867faccda,img_store_supplydrops_20,supdrp95,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
product,product_135,466f1cd8-ce9e-4ee8-ad7b-79d9e8c4e57b,img_store_supplydrops_20,supdrp96,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
#MDLC 4 OHM Standalone
product,product_142,343595,img_store_ohm,mdlc70,OTHERITEMS,all,0,,,#OHM Standalone Pack
#type = category,UID,category ID,title,Language List separated by space delimiter,visibility (0-show,1-hide)
category,category_1,1,seasonpass,LUA_MENU_STORE_SEASON_PASS,english french german italian spanish russian polish korean taiwanese chinese thai czech spanishna portuguese arabic,0
category,category_2,2,mappacks,LUA_MENU_STORE_MAP_PACKS,all,0
category,category_3,3,prempersonpacks,LUA_MENU_STORE_PREMIUM_PERSONALIZATION_PACKS,all,0
category,category_4,4,personpacks,LUA_MENU_STORE_PERSONALIZATION_PACKS,all,0
category,category_5,5,operatorpacks,LUA_MENU_STORE_PREMIUM_EXO_PACKS,all,0
category,category_6,6,flagpacks,LUA_MENU_STORE_EXO_PACKS,all,0
category,category_7,7,supplydrops,LUA_MENU_STORE_SUPPLYDROPS,all,1
category,category_8,8,otheritems,LUA_MENU_STORE_ADDITIONAL_ITEMS,all,0
1 #Game Language to offerids mapping
2 #english,EN
3 #french,FR
4 #frenchcan,FR
5 #german,DE-LV
6 #austrian,DE-FV
7 #italian,IT
8 #spanish,ES
9 #british,EN
10 #russian,RU
11 #polish,PL
12 #korean,EN
13 #japanese,EN-JA
14 #fulljap,JA
15 #visibility refer to igsProductVisibility_e
16 # 0 - Visible Always
17 # 1 - Hide Always ( Hide in store and in Front End )
18 # 2 - Visible for season pass holders ( Hide in store if player does not own season pass )
19 # 3 - Visible for non season pass holders ( Hide in store if player owns season pass )
20 # 4 - Hide in CAC / CAO ( Show in Store,Hide in Front End )
21 # 5 - Early Access ( Hide in the store,Show in Front End )
22 version,version_id,10
23 #type = product,UID,Product ID,Image Name,dlcName,category,#Language List separated by space delimiter,#visibility,#productgroup,#seenIndex,#name
24 product,product_1,317660,img_store_season_pass,seasonpass,seasonpass,english french german italian spanish russian polish korean taiwanese chinese thai czech spanishna portuguese arabic,0,,,# Season Pass
25 product,product_2,318791,img_store_mappacks_havok,dlc2,mappacks,all,0,,,# Havoc
26 product,product_3,318792,img_store_mappacks_ascendance,dlc3,mappacks,all,0,,32,# Ascendance
27 product,product_4,318793,img_store_mappacks_supremacy,dlc4,mappacks,all,0,,,# Supremacy
28 product,product_5,318794,img_store_mappacks_reckoning,dlc5,mappacks,all,0,,,# Reckoning
29 # MDLC 2.5 - Standard Packs
30 product,product_137,343596,img_store_personpacks_ice,mdlc62,personpacks,all,0,,34,# Ice Pack
31 product,product_138,343597,img_store_personpacks_disco,mdlc63,personpacks,all,0,,35,# Disco Pack
32 product,product_139,343598,img_store_personpacks_cards,mdlc64,personpacks,all,0,,36,# Cards Pack
33 product,product_140,343599,img_store_personpacks_jackpot,mdlc65,personpacks,all,0,,37,# Jackpot Pack
34 product,product_141,343590,img_store_personpacks_blackout,mdlc66,personpacks,all,1,,38,# BLOPS3 Pack
35 # MDLC 2 - Standard Packs
36 product,product_6,343591,img_store_personpacks_tiki,mdlc34,personpacks,all,0,,,# Tiki
37 product,product_7,343592,img_store_personpacks_gasfire,mdlc35,personpacks,all,0,,,# Gas Fire
38 product,product_8,343593,img_store_personpacks_leaf,mdlc36,personpacks,all,0,,,# Leaf
39 product,product_9,343594,img_store_personpacks_psych,mdlc37,personpacks,all,0,,,# Psychadelic
40 product,product_10,331060,img_store_personpacks_magma,mdlc7,personpacks,all,0,,,# Magma
41 product,product_11,331061,img_store_personpacks_lightning,mdlc8,personpacks,all,0,,,# Lightning
42 product,product_12,331062,img_store_personpacks_hide,mdlc9,personpacks,all,0,,,# Hide
43 product,product_13,331063,img_store_personpacks_nanotech,mdlc10,personpacks,all,0,,,# Nanotech
44 # MDLC 2.5 Premium Personalization Packs
45 product,product_136,343590,img_store_personpacks_premium_blackout,mdlc61,PREMPERSONPACKS,all,1,,33,# BLOPS3 Prem Pack
46 # MDLC 2 - Premium Personalization Packs
47 product,product_14,343596,img_store_personpacks_premium_tiki,mdlc38,prempersonpacks,all,1,,,# Premium Tiki
48 product,product_15,343597,img_store_personpacks_premium_gasfire,mdlc39,prempersonpacks,all,1,,,# Premium Gas Fire
49 product,product_16,343598,img_store_personpacks_premium_leaf,mdlc40,prempersonpacks,all,1,,,# Premium Leaf
50 product,product_17,343599,img_store_personpacks_premium_psych,mdlc41,prempersonpacks,all,1,,,# Premium Psychadelic
51 product,product_18,343600,img_store_personpacks_premium_cod_champs,mdlc42,prempersonpacks,all,0,,,# Premium Cod Champs
52 product,product_19,331064,img_store_personpacks_premium_magma,mdlc11,prempersonpacks,all,0,,,# Premium Magma
53 product,product_20,331065,img_store_personpacks_premium_lightning,mdlc12,prempersonpacks,all,0,,,# Premium Lightning
54 product,product_21,331066,img_store_personpacks_premium_hide,mdlc13,prempersonpacks,all,0,,,# Premium Hide
55 product,product_22,331067,img_store_personpacks_premium_nanotech,mdlc14,prempersonpacks,all,0,,,# Premium Nanotech
56 # MDLC 2 - Exo Packs
57 product,product_23,343601,img_store_operatorpacks_cowboy,mdlc101,operatorpacks,all,1,,,# Cowboy
58 product,product_24,343602,img_store_operatorpacks_surfer,mdlc43,operatorpacks,all,1,,,# Surfer
59 product,product_25,343604,img_store_operatorpacks_octopus,mdlc45,operatorpacks,all,1,,,# Octopus
60 # MDLC 2 - Lady Gear Exo Packs
61 product,product_26,345600,img_store_operatorpacks_rose_camo,mdlc59,OPERATORPACKS,all,1,,,# Rose Camo / Passionate
62 product,product_27,345601,img_store_operatorpacks_white_blue,mdlc60,OPERATORPACKS,all,1,,,# White Blue / Tenacious
63 product,product_28,5f3f93ca-03ab-4fdd-aa00-63f17fb08d79,img_store_operatorpacks_steam_punk,mdlc15,operatorpacks,all,0,,,# Steam Punk
64 product,product_29,beb1715c-5825-4ae3-844d-1f72231f9306,img_store_operatorpacks_panda,mdlc16,operatorpacks,all,0,,,# Panda
65 product,product_30,05e1b887-e323-4aaf-b95b-12e9512f76aa,img_store_operatorpacks_bali_mask,mdlc17,operatorpacks,all,0,,,#Bali Mask
66 product,product_31,33c64260-e212-4794-8abe-9810f04471e7,img_store_operatorpacks_classic_biker,mdlc18,operatorpacks,all,0,,,#Classic Biker
67 # MDLC 2 - Flags
68 product,product_32,334460,img_store_flag_packs_argentinia,mdlc46,flagpacks,all,1,,,# Argentina Flag
69 product,product_33,343605,img_store_flag_packs_austria,mdlc47,flagpacks,all,1,,,# Austria Flag
70 product,product_34,333086,img_store_flag_packs_brazil,mdlc26,flagpacks,all,1,,,# Brazil Flag
71 product,product_35,343606,img_store_flag_packs_columbia,mdlc48,flagpacks,all,1,,,# Columbia Flag
72 product,product_36,343607,img_store_flag_packs_ireland,mdlc49,flagpacks,all,1,,,# Ireland Flag
73 product,product_37,343608,img_store_flag_packs_new_zealand,mdlc50,flagpacks,all,1,,,# New Zealand Flag
74 product,product_38,343609,img_store_flag_packs_portugal,mdlc51,flagpacks,all,1,,,# Portugal Flag
75 product,product_39,331072,img_store_flag_packs_usa,mdlc19,flagpacks,all,0,,,# USA Flag
76 product,product_40,333080,img_store_flag_packs_uk,mdlc20,flagpacks,all,0,,,# UK Flag
77 product,product_41,333081,img_store_flag_packs_canada,mdlc21,flagpacks,all,0,,,# Canada Flag
78 product,product_42,333082,img_store_flag_packs_france,mdlc22,flagpacks,all,0,,,# France Flag
79 product,product_43,333083,img_store_flag_packs_germany,mdlc23,flagpacks,all,0,,,# Germany Flag
80 product,product_44,333084,img_store_flag_packs_australia,mdlc24,flagpacks,all,0,,,# Australia Flag
81 product,product_45,333087,img_store_flag_packs_italy,mdlc27,flagpacks,all,0,,,# Italy Flag
82 product,product_46,333088,img_store_flag_packs_spain,mdlc28,flagpacks,all,0,,,# Spain Flag
83 product,product_47,334220,img_store_flag_packs_netherlands,mdlc29,flagpacks,all,0,,,# Netherlands Flag
84 product,product_48,334221,img_store_flag_packs_japan,mdlc30,flagpacks,all,0,,,# Japan Flag
85 product,product_49,343610,img_store_cac_slots,mdlc52,otheritems,all,0,,,# Create A Class Slots
86 product,product_50,343612,img_store_armory_slots1,mdlc54,otheritems,all,0,armoryslots,,# Armory Slots
87 product,product_51,343613,img_store_armory_slots2,mdlc55,otheritems,all,0,armoryslots,,# Armory Slots
88 product,product_52,343614,img_store_armory_slots3,mdlc56,otheritems,all,0,armoryslots,,# Armory Slots
89 product,product_53,343615,img_store_armory_slots4,mdlc57,otheritems,all,0,armoryslots,,# Armory Slots
90 product,product_54,343616,img_store_armory_slots5,mdlc58,otheritems,all,0,armoryslots,,# Armory Slots
91 product,product_55,318790,img_store_mappacks_atlas_gorge,dlc1,otheritems,all,0,,,# Atlas Gorge
92 product,product_56,00000,img_store_supplydrops_1,supdrp61,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
93 product,product_57,76a554fb-c4b4-4a3e-b913-dcd0c61de638,img_store_supplydrops_1,supdrp62,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
94 product,product_58,ed37f45c-1d3c-451c-87c3-0bb46ca51fa6,img_store_supplydrops_1,supdrp63,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
95 product,product_59,518865ed-dfae-4d8a-836e-e0e5dc2c3d08,img_store_supplydrops_1,supdrp64,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
96 product,product_60,3b9f4478-900d-43f9-b4b1-eb1f901ce961,img_store_supplydrops_1,supdrp65,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
97 product,product_61,f20bfb05-cca9-4a61-971b-c6c620b928b0,img_store_supplydrops_1,supdrp66,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
98 product,product_62,a75ee2b8-42f6-46b1-a45f-db6e64a98872,img_store_supplydrops_1,supdrp67,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
99 product,product_63,20f97f87-52a7-461e-8b78-9a54080bd400,img_store_supplydrops_1,supdrp68,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
100 product,product_64,f03ad620-bc8a-4f4f-a3b0-3630347b8a30,img_store_supplydrops_1,supdrp69,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
101 product,product_65,ebe31b71-f8cc-4f0d-9915-6a13d53af74b,img_store_supplydrops_1,supdrp70,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
102 product,product_111,b05003d8-bf77-4d04-a0cc-d8a36425b813,img_store_supplydrops_1,supdrp72,supplydrops,all,1,supplydrops_1,22,# Supply Drops 1
103 product,product_112,2b7b516c-8e7e-45b7-92fd-dc2040c08d6e,img_store_supplydrops_1,supdrp73,supplydrops,all,1,supplydrops_1,22,# Supply Drops 1
104 product,product_113,5de14218-1543-4fc5-ae89-eb4037109234,img_store_supplydrops_1,supdrp74,supplydrops,all,1,supplydrops_1,22,# Supply Drops 1
105 product,product_114,3404d799-4341-46de-95ea-c6bdd47c8e39,img_store_supplydrops_1,supdrp75,supplydrops,all,1,supplydrops_1,22,# Supply Drops 1
106 product,product_115,3f05faaf-a59b-4807-ad58-0bd28f520cc9,img_store_supplydrops_1,supdrp76,supplydrops,all,1,supplydrops_1,22,# Supply Drops 1
107 product,product_66,6031ecd6-a183-4c71-9022-9685dde26ebd,img_store_supplydrops_3,supdrp91,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
108 product,product_67,6aebd756-0b60-4ad4-8639-d27db2ae79e0,img_store_supplydrops_3,supdrp92,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
109 product,product_68,93a0c86c-c7af-464c-88d7-6e0519d482f4,img_store_supplydrops_3,supdrp93,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
110 product,product_69,6ca3fa67-8844-4128-89e0-8d4b7b8c5e3a,img_store_supplydrops_3,supdrp94,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
111 product,product_70,55c76436-50d8-401e-8761-b9ceeb18c7c4,img_store_supplydrops_3,supdrp95,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
112 product,product_71,844742d6-baa0-4079-892e-649a45564b56,img_store_supplydrops_3,supdrp96,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
113 product,product_72,605fb575-1482-4e0f-8934-165e290d26ca,img_store_supplydrops_3,supdrp97,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
114 product,product_73,64d0e219-b602-4906-b714-895d020bae2a,img_store_supplydrops_3,supdrp98,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
115 product,product_74,fc0e23af-fc91-4711-b3ca-a45c3ab03049,img_store_supplydrops_3,supdrp99,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
116 product,product_75,e9886801-697b-4b40-93bd-6f9b37b6102b,img_store_supplydrops_3,supdrp100,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
117 product,product_116,3c32e23a-514d-487c-9733-c9c8ec6fd55b,img_store_supplydrops_3,supdrp77,supplydrops,all,1,supplydrops_3,23,# Supply Drops 3
118 product,product_117,906884d7-2864-4cd2-b725-1129c111abab,img_store_supplydrops_3,supdrp78,supplydrops,all,1,supplydrops_3,23,# Supply Drops 3
119 product,product_118,28e9c053-da80-4f8a-b1b3-26cf9e6cad59,img_store_supplydrops_3,supdrp79,supplydrops,all,1,supplydrops_3,23,# Supply Drops 3
120 product,product_119,13668620-fb95-4e3b-b15b-05ca33cb90dc,img_store_supplydrops_3,supdrp80,supplydrops,all,1,supplydrops_3,23,# Supply Drops 3
121 product,product_120,e9e772ce-aeb5-4831-9672-f2ab1c0459f5,img_store_supplydrops_3,supdrp81,supplydrops,all,1,supplydrops_3,23,# Supply Drops 3
122 product,product_76,156f40b5-3683-4c26-a6d0-f2358701df53,img_store_supplydrops_5,supdrp71,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
123 product,product_77,3ec7cec9-91ff-4931-8785-e7092495c5cb,img_store_supplydrops_5,supdrp72,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
124 product,product_78,29af6a13-c4ce-469c-aee1-82bdcef9307f,img_store_supplydrops_5,supdrp73,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
125 product,product_79,92334032-5350-4319-ad0b-a5dac31e491f,img_store_supplydrops_5,supdrp74,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
126 product,product_80,9974b492-3253-4873-97cc-68a47117f09f,img_store_supplydrops_5,supdrp75,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
127 product,product_81,d3a71cec-ceb3-452a-baa1-97ce8360cee8,img_store_supplydrops_5,supdrp76,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
128 product,product_82,93e9ba95-0738-4302-9880-33774f4e4b2a,img_store_supplydrops_5,supdrp77,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
129 product,product_83,5998caba-5f9f-475c-bc45-a4f2d9386105,img_store_supplydrops_5,supdrp78,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
130 product,product_84,5afa84ac-abe3-4db9-917e-29933134d4be,img_store_supplydrops_5,supdrp79,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
131 product,product_85,4f7350d9-90aa-4f91-a974-8fe399280d7c,img_store_supplydrops_5,supdrp80,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
132 product,product_121,19938ec4-0047-4d17-8002-97c6584413fa,img_store_supplydrops_5,supdrp82,supplydrops,all,1,supplydrops_5,24,# Supply Drops 5
133 product,product_122,e2bb0ca8-66cc-4658-a34c-0c80babdb0df,img_store_supplydrops_5,supdrp83,supplydrops,all,1,supplydrops_5,24,# Supply Drops 5
134 product,product_123,411f8663-77fd-4821-8eef-8e213ba1f4ed,img_store_supplydrops_5,supdrp84,supplydrops,all,1,supplydrops_5,24,# Supply Drops 5
135 product,product_124,2a9140a1-946b-4a07-a790-6f7d4ee541d7,img_store_supplydrops_5,supdrp85,supplydrops,all,1,supplydrops_5,24,# Supply Drops 5
136 product,product_125,af7f50e7-dc1b-4b14-b78d-61ae560b2a00,img_store_supplydrops_5,supdrp86,supplydrops,all,1,supplydrops_5,24,# Supply Drops 5
137 product,product_86,5de0f259-b94b-40a9-a2ea-dba2f95f8b87,img_store_supplydrops_10,supdrp81,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
138 product,product_87,89f452a5-5c6f-4d8e-a203-35de25a73805,img_store_supplydrops_10,supdrp82,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
139 product,product_88,c503ee82-39c2-4a0e-93fe-e9acfc846a81,img_store_supplydrops_10,supdrp83,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
140 product,product_89,e2c670f6-567b-4bd1-ae36-c2f039e22add,img_store_supplydrops_10,supdrp84,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
141 product,product_90,b38a63b5-2c14-445f-a9d7-31ad59b4fe5c,img_store_supplydrops_10,supdrp85,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
142 product,product_91,8c448893-0809-4c4f-be73-fa574be15333,img_store_supplydrops_10,supdrp86,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
143 product,product_92,82a96d7b-859b-46a9-a7c7-ba082558066b,img_store_supplydrops_10,supdrp87,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
144 product,product_93,9bc7070b-4a5a-4d39-9957-734eafd3f8e0,img_store_supplydrops_10,supdrp88,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
145 product,product_94,dda9be88-d5cc-4827-aecf-40e9598f4adb,img_store_supplydrops_10,supdrp89,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
146 product,product_95,4067a17b-23c7-4999-a514-8ed9041e8a02,img_store_supplydrops_10,supdrp90,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
147 product,product_126,10cd1171-2eb4-4dcb-a281-372b747319f6,img_store_supplydrops_10,supdrp87,supplydrops,all,1,supplydrops_10,25,# Supply Drops 10
148 product,product_127,8706ff47-4cc7-4957-a4f3-d9589be39d78,img_store_supplydrops_10,supdrp88,supplydrops,all,1,supplydrops_10,25,# Supply Drops 10
149 product,product_128,ff9063ee-79ef-4b4a-8e22-df83f700e292,img_store_supplydrops_10,supdrp89,supplydrops,all,1,supplydrops_10,25,# Supply Drops 10
150 product,product_129,31cdd8b7-2c6a-414b-8e02-a2d7f6f64f12,img_store_supplydrops_10,supdrp90,supplydrops,all,1,supplydrops_10,25,# Supply Drops 10
151 product,product_130,de53b351-a6ab-4089-a30b-0396f6fad455,img_store_supplydrops_10,supdrp91,supplydrops,all,1,supplydrops_10,25,# Supply Drops 10
152 # Consumable Supply Drops
153 product,product_96,c5f202f9-3386-4d8b-9f5f-fc4f16f78ed3,img_store_supplydrops_1,supdrp46,supplydrops_v2,all,1,,26,# Consumable Supply Drops 1
154 product,product_97,0463b195-81cb-43c8-87a4-814043492ac1,img_store_supplydrops_3,supdrp50,supplydrops_v2,all,1,,27,# Consumable Supply Drops 3
155 product,product_98,ef8577d9-0cab-433d-8955-8dd96089218e,img_store_supplydrops_5,supdrp47,supplydrops_v2,all,1,,28,# Consumable Supply Drops 5
156 product,product_99,4b49d2af-d9ed-4f4a-8aa1-0fc3c2e70f87,img_store_supplydrops_10,supdrp48,supplydrops_v2,all,1,,29,# Consumable Supply Drops 10
157 product,product_100,ca0012ef-1206-4173-8979-d2d4f3d66a57,img_store_supplydrops_20,supdrp71,supplydrops_v2,all,1,,31,# Consumable Supply Drops 20
158 # More Durable Supply Drops
159 product,product_101,48a1c3f1-c47f-4752-95c8-658630e29cd1,img_store_supplydrops_20,supdrp61,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
160 product,product_102,e0556d68-6bbf-4fce-affb-28c4eec8eb25,img_store_supplydrops_20,supdrp62,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
161 product,product_103,d627860d-bf3a-4972-9eb5-51a68bf4eb44,img_store_supplydrops_20,supdrp63,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
162 product,product_104,641bb491-7dda-42c9-850f-a9d6774236a0,img_store_supplydrops_20,supdrp64,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
163 product,product_105,c53a24c9-c07b-468d-bbc5-1d57ccdfd82c,img_store_supplydrops_20,supdrp65,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
164 product,product_106,fcc7f36b-3158-4129-a13d-8437924eb9ee,img_store_supplydrops_20,supdrp66,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
165 product,product_107,a21a0bda-abed-47a2-9d97-40bede8bfd7b,img_store_supplydrops_20,supdrp67,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
166 product,product_108,c7492ab3-7a7c-46d7-8efd-2a6ecd844dd7,img_store_supplydrops_20,supdrp68,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
167 product,product_109,e6a955fb-c723-42f7-b391-615dce049592,img_store_supplydrops_20,supdrp69,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
168 product,product_110,a4f8bf5c-4af4-4f4b-9996-e0816475ff6b,img_store_supplydrops_20,supdrp70,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
169 product,product_131,0b917713-e3a1-406b-9a61-dd1afa2212f5,img_store_supplydrops_20,supdrp92,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
170 product,product_132,69377444-37e1-4b99-8008-376a1da8d886,img_store_supplydrops_20,supdrp93,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
171 product,product_133,c3ae1aee-1445-4601-9577-033496317972,img_store_supplydrops_20,supdrp94,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
172 product,product_134,7d66fdd5-ebac-4893-be48-439867faccda,img_store_supplydrops_20,supdrp95,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
173 product,product_135,466f1cd8-ce9e-4ee8-ad7b-79d9e8c4e57b,img_store_supplydrops_20,supdrp96,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
174 #MDLC 4 OHM Standalone
175 product,product_142,343595,img_store_ohm,mdlc70,OTHERITEMS,all,0,,,#OHM Standalone Pack
176 #type = category,UID,category ID,title,Language List separated by space delimiter,visibility (0-show,1-hide)
177 category,category_1,1,seasonpass,LUA_MENU_STORE_SEASON_PASS,english french german italian spanish russian polish korean taiwanese chinese thai czech spanishna portuguese arabic,0
178 category,category_2,2,mappacks,LUA_MENU_STORE_MAP_PACKS,all,0
179 category,category_3,3,prempersonpacks,LUA_MENU_STORE_PREMIUM_PERSONALIZATION_PACKS,all,0
180 category,category_4,4,personpacks,LUA_MENU_STORE_PERSONALIZATION_PACKS,all,0
181 category,category_5,5,operatorpacks,LUA_MENU_STORE_PREMIUM_EXO_PACKS,all,0
182 category,category_6,6,flagpacks,LUA_MENU_STORE_EXO_PACKS,all,0
183 category,category_7,7,supplydrops,LUA_MENU_STORE_SUPPLYDROPS,all,1
184 category,category_8,8,otheritems,LUA_MENU_STORE_ADDITIONAL_ITEMS,all,0

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,507 @@
// S1 GSC SOURCE
// Dumped by https://github.com/xensik/gsc-tool
main()
{
maps\mp\gametypes\_globallogic::init();
maps\mp\gametypes\_callbacksetup::setupcallbacks();
maps\mp\gametypes\_globallogic::setupcallbacks();
setguns();
maps\mp\_utility::registertimelimitdvar( level.gametype, 10 );
setdvar( "scr_gun_scorelimit", level.gun_guns.size );
maps\mp\_utility::registerscorelimitdvar( level.gametype, level.gun_guns.size );
level thread reinitializescorelimitonmigration();
maps\mp\_utility::registerroundlimitdvar( level.gametype, 1 );
maps\mp\_utility::registerwinlimitdvar( level.gametype, 0 );
maps\mp\_utility::registernumlivesdvar( level.gametype, 0 );
maps\mp\_utility::registerhalftimedvar( level.gametype, 0 );
level.matchrules_randomize = 0;
level.matchrules_damagemultiplier = 0;
level.matchrules_vampirism = 0;
setspecialloadout();
level.teambased = 0;
level.doprematch = 1;
level.onstartgametype = ::onstartgametype;
level.onspawnplayer = ::onspawnplayer;
level.getspawnpoint = ::getspawnpoint;
level.onplayerkilled = ::onplayerkilled;
level.ontimelimit = ::ontimelimit;
level.onplayerscore = ::onplayerscore;
level.bypassclasschoicefunc = ::gungameclass;
level.assists_disabled = 1;
level.setbacklevel = maps\mp\_utility::getintproperty( "scr_setback_levels", 1 );
level.lastguntimevo = 0;
if ( level.matchrules_damagemultiplier )
level.modifyplayerdamage = maps\mp\gametypes\_damage::gamemodemodifyplayerdamage;
setteammode( "ffa" );
game["dialog"]["gametype"] = "gg_intro";
game["dialog"]["defense_obj"] = "gbl_start";
game["dialog"]["offense_obj"] = "gbl_start";
game["dialog"]["humiliation"] = "gg_humiliation";
game["dialog"]["lastgun"] = "at_anr1_gg_lastgun";
if ( maps\mp\_utility::isgrapplinghookgamemode() )
game["dialog"]["gametype"] = "grap_" + game["dialog"]["gametype"];
}
initializematchrules()
{
maps\mp\_utility::setcommonrulesfrommatchrulesdata( 1 );
level.matchrules_randomize = getmatchrulesdata( "gunData", "randomize" );
setdvar( "scr_gun_scorelimit", level.gun_guns.size );
maps\mp\_utility::registerscorelimitdvar( level.gametype, level.gun_guns.size );
setdvar( "scr_gun_winlimit", 1 );
maps\mp\_utility::registerwinlimitdvar( "gun", 1 );
setdvar( "scr_gun_roundlimit", 1 );
maps\mp\_utility::registerroundlimitdvar( "gun", 1 );
setdvar( "scr_gun_halftime", 0 );
maps\mp\_utility::registerhalftimedvar( "gun", 0 );
setdvar( "scr_gun_playerrespawndelay", 0 );
setdvar( "scr_gun_waverespawndelay", 0 );
setdvar( "scr_player_forcerespawn", 1 );
setdvar( "scr_setback_levels", getmatchrulesdata( "gunData", "setbackLevels" ) );
}
reinitializescorelimitonmigration()
{
setdvar( "scr_gun_scorelimit", level.gun_guns.size );
maps\mp\_utility::registerscorelimitdvar( level.gametype, level.gun_guns.size );
}
onstartgametype()
{
setclientnamemode( "auto_change" );
maps\mp\_utility::setobjectivetext( "allies", &"OBJECTIVES_DM" );
maps\mp\_utility::setobjectivetext( "axis", &"OBJECTIVES_DM" );
maps\mp\_utility::setobjectivescoretext( "allies", &"OBJECTIVES_DM_SCORE" );
maps\mp\_utility::setobjectivescoretext( "axis", &"OBJECTIVES_DM_SCORE" );
maps\mp\_utility::setobjectivehinttext( "allies", &"OBJECTIVES_DM_HINT" );
maps\mp\_utility::setobjectivehinttext( "axis", &"OBJECTIVES_DM_HINT" );
initspawns();
var_0 = [];
maps\mp\gametypes\_gameobjects::main( var_0 );
level.quickmessagetoall = 1;
level.blockweapondrops = 1;
level thread onplayerconnect();
}
initspawns()
{
level.spawnmins = ( 0, 0, 0 );
level.spawnmaxs = ( 0, 0, 0 );
level.spawn_name = "mp_dm_spawn";
maps\mp\gametypes\_spawnlogic::addspawnpoints( "allies", level.spawn_name );
maps\mp\gametypes\_spawnlogic::addspawnpoints( "axis", level.spawn_name );
level.mapcenter = maps\mp\gametypes\_spawnlogic::findboxcenter( level.spawnmins, level.spawnmaxs );
setmapcenter( level.mapcenter );
}
onplayerconnect()
{
for (;;)
{
level waittill( "connected", player );
player.gungamegunindex = 0;
player.gungameprevgunindex = 0;
player.stabs = 0;
player.mysetbacks = 0;
player.lastleveluptime = 0;
player.showsetbacksplash = 0;
if ( level.matchrules_randomize )
player.gunlist = common_scripts\utility::array_randomize( level.gun_guns );
player thread refillammo();
player thread refillsinglecountammo();
player thread watchforhostmigration();
}
}
getspawnpoint()
{
var_0 = maps\mp\gametypes\_spawnlogic::getteamspawnpoints( self.pers["team"] );
if ( level.ingraceperiod )
var_1 = maps\mp\gametypes\_spawnlogic::getspawnpoint_random( var_0 );
else
var_1 = maps\mp\gametypes\_spawnscoring::getspawnpoint_freeforall( var_0 );
maps\mp\gametypes\_spawnlogic::recon_set_spawnpoint( var_1 );
return var_1;
}
gungameclass()
{
self.pers["class"] = "gamemode";
self.pers["lastClass"] = "";
self.pers["gamemodeLoadout"] = level.gun_loadout;
self.class = self.pers["class"];
self.lastclass = self.pers["lastClass"];
self loadweapons( level.gun_guns[0] );
}
onspawnplayer()
{
thread waitloadoutdone();
}
waitloadoutdone()
{
level endon( "game_ended" );
self endon( "disconnect" );
level waittill( "player_spawned" );
givenextgun( 1 );
if ( self.showsetbacksplash )
{
self.showsetbacksplash = 0;
thread maps\mp\_events::decreasegunlevelevent();
}
}
watchforhostmigration()
{
level endon( "game_ended" );
self endon( "disconnect" );
for (;;)
{
self waittill( "player_migrated" );
if ( self.sessionstate == "spectator" )
maps\mp\gametypes\_menus::handleclasschoicedisallowed();
}
}
onplayerscore( var_0, var_1, var_2 )
{
if ( var_0 == "gained_gun_score" )
{
var_3 = maps\mp\gametypes\_rank::getscoreinfovalue( var_0 );
var_1 maps\mp\_utility::setextrascore0( var_1.extrascore0 + var_3 );
var_1 maps\mp\gametypes\_gamescore::updatescorestatsffa( var_1, var_3 );
return 1;
}
if ( var_0 == "dropped_gun_score" )
{
var_4 = min( level.setbacklevel, self.score );
return int( var_4 * -1 );
}
return 0;
}
onplayerkilled( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7, var_8, var_9 )
{
if ( !isdefined( var_1 ) )
return;
if ( var_3 == "MOD_TRIGGER_HURT" && !isplayer( var_1 ) )
var_1 = self;
if ( var_3 == "MOD_FALLING" || isplayer( var_1 ) )
{
if ( var_3 == "MOD_FALLING" || var_1 == self || maps\mp\_utility::ismeleemod( var_3 ) && var_4 != "riotshield_mp" || var_4 == "boost_slam_mp" || var_4 == "iw5_dlcgun12loot8_mp" )
{
self playlocalsound( "mp_war_objective_lost" );
self.gungameprevgunindex = self.gungamegunindex;
self.gungamegunindex = int( max( 0, self.gungamegunindex - level.setbacklevel ) );
self.lastkillweapon = undefined;
if ( self.gungameprevgunindex > self.gungamegunindex )
{
self.mysetbacks++;
maps\mp\_utility::setextrascore1( self.mysetbacks );
self.showsetbacksplash = 1;
if ( maps\mp\_utility::ismeleemod( var_3 ) || var_4 == "boost_slam_mp" || var_4 == "iw5_dlcgun12loot8_mp" )
{
var_1.stabs++;
var_1.assists = var_1.stabs;
var_1 thread maps\mp\_events::setbackenemygunlevelevent();
if ( self.gungameprevgunindex == level.gun_guns.size - 1 )
{
var_1 thread maps\mp\_events::setbackfirstplayergunlevelevent();
var_1 maps\mp\_utility::leaderdialogonplayer( "humiliation", "status" );
}
}
}
}
else if ( var_3 == "MOD_PISTOL_BULLET" || var_3 == "MOD_RIFLE_BULLET" || var_3 == "MOD_HEAD_SHOT" || var_3 == "MOD_PROJECTILE" || var_3 == "MOD_PROJECTILE_SPLASH" || var_3 == "MOD_EXPLOSIVE" || var_3 == "MOD_IMPACT" || var_3 == "MOD_GRENADE" || var_3 == "MOD_GRENADE_SPLASH" || maps\mp\_utility::ismeleemod( var_3 ) && var_4 == "riotshield_mp" )
{
if ( isdefined( var_1.lastkillweapon ) && var_1.lastkillweapon == var_4 )
return;
var_10 = level.gun_guns;
if ( level.matchrules_randomize )
var_10 = var_1.gunlist;
var_11 = var_10[var_1.gungamegunindex];
if ( !issubstr( var_4, maps\mp\_utility::getbaseweaponname( var_11 ) ) )
return;
var_1.lastkillweapon = var_4;
if ( var_1.lastleveluptime + 3000 > gettime() )
var_1 thread maps\mp\_events::quickgunlevelevent();
var_1.lastleveluptime = gettime();
var_1.gungameprevgunindex = var_1.gungamegunindex;
var_1.gungamegunindex++;
var_1 thread maps\mp\_events::increasegunlevelevent();
if ( var_1.gungamegunindex == level.gun_guns.size - 1 )
{
maps\mp\_utility::playsoundonplayers( "mp_enemy_obj_captured" );
level thread maps\mp\_utility::teamplayercardsplash( "callout_top_gun_rank", var_1 );
var_12 = gettime();
if ( level.lastguntimevo + 4500 < var_12 )
{
level thread maps\mp\_utility::leaderdialogonplayers( "lastgun", level.players, "status" );
level.lastguntimevo = var_12;
}
}
if ( var_1.gungamegunindex < level.gun_guns.size )
var_1 givenextgun( 0, var_4 );
}
}
}
givenextgun( var_0, var_1 )
{
self endon( "disconnect" );
var_2 = getnextgun();
self.gun_curgun = var_2;
var_2 = addattachments( var_2 );
while ( !self loadweapons( var_2 ) )
waitframe();
if ( isdefined( var_1 ) )
self takeweapon( var_1 );
else
self takeallweapons();
maps\mp\_utility::_giveweapon( var_2 );
self switchtoweaponimmediate( var_2 );
if ( isdefined( var_0 ) && var_0 == 1 )
self setspawnweapon( var_2 );
var_3 = maps\mp\_utility::getbaseweaponname( var_2 );
self.pers["primaryWeapon"] = var_3;
self.primaryweapon = var_2;
self givestartammo( var_2 );
self switchtoweapon( var_2 );
self.gungameprevgunindex = self.gungamegunindex;
}
getnextgun()
{
var_0 = level.gun_guns;
var_1 = [];
var_2 = undefined;
if ( level.matchrules_randomize )
var_0 = self.gunlist;
var_2 = var_0[self.gungamegunindex];
var_1[var_1.size] = var_2;
if ( self.gungamegunindex + 1 < var_0.size )
var_1[var_1.size] = var_0[self.gungamegunindex + 1];
if ( self.gungamegunindex > 0 )
var_1[var_1.size] = var_0[self.gungamegunindex - 1];
self loadweapons( var_1 );
return var_2;
}
addattachments( var_0 )
{
if ( getdvarint( "scr_gun_loot_variants", 0 ) == 1 )
{
var_1 = tablelookup( "mp/statstable.csv", 4, var_0, 40 );
if ( isdefined( var_1 ) && var_1 != "" )
var_2 = maps\mp\gametypes\_class::buildweaponname( var_0, var_1, "none", "none", 0, 0 );
else
var_2 = maps\mp\gametypes\_class::buildweaponname( var_0, "none", "none", "none", 0, 0 );
}
else
var_2 = maps\mp\gametypes\_class::buildweaponname( var_0, "none", "none", "none", 0, 0 );
return var_2;
}
ontimelimit()
{
level.finalkillcam_winner = "none";
var_0 = gethighestprogressedplayers();
if ( !isdefined( var_0 ) || !var_0.size )
thread maps\mp\gametypes\_gamelogic::endgame( "tie", game["end_reason"]["time_limit_reached"] );
else if ( var_0.size == 1 )
thread maps\mp\gametypes\_gamelogic::endgame( var_0[0], game["end_reason"]["time_limit_reached"] );
else if ( var_0[var_0.size - 1].gungamegunindex > var_0[var_0.size - 2].gungamegunindex )
thread maps\mp\gametypes\_gamelogic::endgame( var_0[var_0.size - 1], game["end_reason"]["time_limit_reached"] );
else
thread maps\mp\gametypes\_gamelogic::endgame( "tie", game["end_reason"]["time_limit_reached"] );
}
gethighestprogressedplayers()
{
var_0 = -1;
var_1 = [];
foreach ( var_3 in level.players )
{
if ( isdefined( var_3.gungamegunindex ) && var_3.gungamegunindex >= var_0 )
{
var_0 = var_3.gungamegunindex;
var_1[var_1.size] = var_3;
}
}
return var_1;
}
refillammo()
{
level endon( "game_ended" );
self endon( "disconnect" );
for (;;)
{
self waittill( "reload" );
self givestartammo( self.primaryweapon );
}
}
refillsinglecountammo()
{
level endon( "game_ended" );
self endon( "disconnect" );
for (;;)
{
if ( maps\mp\_utility::isreallyalive( self ) && self.team != "spectator" && isdefined( self.primaryweapon ) && self getammocount( self.primaryweapon ) == 0 )
{
wait 2;
self notify( "reload" );
wait 1;
continue;
}
wait 0.05;
}
}
setguns()
{
var_0 = getdvarint( "scr_gun_loot_variants", 0 );
level.gun_guns = [];
level.gun_guns[0] = "iw5_asm1";
level.gun_guns[1] = "iw5_asaw";
level.gun_guns[2] = "iw5_himar";
level.gun_guns[3] = "iw5_kf5";
level.gun_guns[4] = "iw5_hbra3";
level.gun_guns[5] = "iw5_mp11";
level.gun_guns[6] = "iw5_ak12";
level.gun_guns[7] = "iw5_sn6";
level.gun_guns[8] = "iw5_arx160";
level.gun_guns[9] = "iw5_hmr9";
level.gun_guns[10] = "iw5_maul";
level.gun_guns[11] = "iw5_dlcgun3";
level.gun_guns[12] = "iw5_em1";
level.gun_guns[13] = "iw5_uts19";
level.gun_guns[14] = "iw5_lsat";
level.gun_guns[15] = "iw5_rhino";
level.gun_guns[16] = "iw5_exoxmg";
level.gun_guns[17] = "iw5_epm3";
level.gun_guns[18] = "iw5_mors";
level.gun_guns[19] = "iw5_rw1";
level.gun_guns[20] = "iw5_vbr";
level.gun_guns[21] = "iw5_pbw";
level.gun_guns[22] = "iw5_thor";
level.gun_guns[23] = "iw5_mahem";
level.gun_guns[24] = "iw5_exocrossbow";
if ( isdefined( var_0 ) && var_0 )
{
for ( var_1 = 0; var_1 < level.gun_guns.size; var_1++ )
{
var_2 = level.gun_guns[var_1];
if ( maps\mp\_utility::getweaponclass( var_2 ) == "weapon_projectile" || maps\mp\_utility::getweaponclass( var_2 ) == "weapon_sec_special" )
var_2 = assign_random_loot_variant( var_2, 4 );
else
var_2 = assign_random_loot_variant( var_2, 10 );
level.gun_guns[var_1] = var_2;
}
}
}
assign_random_loot_variant( var_0, var_1 )
{
var_2 = randomint( var_1 );
switch ( var_2 )
{
case 0:
var_0 += "loot0";
break;
case 1:
var_0 += "loot1";
break;
case 2:
var_0 += "loot2";
break;
case 3:
var_0 += "loot3";
break;
case 4:
var_0 += "loot4";
break;
case 5:
var_0 += "loot5";
break;
case 6:
var_0 += "loot6";
break;
case 7:
var_0 += "loot7";
break;
case 8:
var_0 += "loot8";
break;
case 9:
var_0 += "loot9";
break;
default:
break;
}
return var_0;
}
setspecialloadout()
{
level.gun_loadout = maps\mp\gametypes\_class::getemptyloadout();
if ( maps\mp\gametypes\_class::isvalidprimary( level.gun_guns[0] ) )
level.gun_loadout["loadoutPrimary"] = level.gun_guns[0];
else if ( maps\mp\gametypes\_class::isvalidsecondary( level.gun_guns[0], 0 ) )
level.gun_loadout["loadoutSecondary"] = level.gun_guns[0];
}

View File

@ -0,0 +1,23 @@
init()
{
// define onteamselection callback function used in balanceteams()
level.onteamselection = ::set_team;
}
set_team(team)
{
if (team != self.pers["team"])
{
self.switching_teams = true;
self.joining_team = team;
self.leaving_team = self.pers["team"];
}
if (self.sessionstate == "playing")
{
self suicide();
}
maps\mp\gametypes\_menus::addtoteam(team);
maps\mp\gametypes\_menus::endrespawnnotify();
}

View File

@ -0,0 +1,238 @@
if (game:issingleplayer() or Engine.InFrontend()) then
return
end
f0_local0 = function(f1_arg0, f1_arg1)
LUI.FlowManager.RequestLeaveMenu(f1_arg0)
end
f0_local1 = function(f2_arg0, f2_arg1)
f2_arg0:setText(f2_arg1.message_text)
f2_arg0:dispatchEventToRoot({
name = "resize_popup"
})
end
f0_local2 = function(f3_arg0)
Engine.ExecFirstClient("xpartybackout")
Engine.ExecFirstClient("disconnect")
end
local f0_local3 = function(f4_arg0)
if Engine.GetDvarBool("squad_match") then
Engine.ExecFirstClient("disconnect")
else
Engine.ExecFirstClient("xpartydisbandafterround")
Engine.ExecFirstClient("disconnect")
end
end
local f0_local4 = function(f5_arg0)
return Engine.GetOnlineGame()
end
local f0_local5 = function(f6_arg0)
if f0_local4(f6_arg0) then
Engine.ExecFirstClient("xstopprivateparty")
Engine.ExecFirstClient("disconnect")
Engine.ExecFirstClient("xblive_privatematch 0")
Engine.ExecFirstClient("onlinegame 1")
Engine.ExecFirstClient("xstartprivateparty")
else
Engine.ExecFirstClient("disconnect")
end
end
local f0_local6 = function(f7_arg0)
local f7_local0 = Engine.GetDvarBool("squad_match")
Engine.ExecFirstClient("xstopprivateparty")
Engine.ExecFirstClient("xpartydisbandafterround")
if f7_local0 then
Engine.ExecFirstClient("disconnect")
Engine.ExecFirstClient("xblive_privatematch 0")
Engine.ExecFirstClient("onlinegame 1")
Engine.ExecFirstClient("xstartprivateparty")
else
Engine.NotifyServer("end_game", 1)
Engine.ExecFirstClient("xstartprivateparty")
end
end
local f0_local7 = function(f8_arg0, f8_arg1)
local f8_local0 = Engine.GetDvarBool("sv_running")
Game.HandleLeavePauseMenu()
if f8_local0 then
Engine.NotifyServer("end_game", 1)
else
f0_local5(f8_arg0)
end
LUI.FlowManager.RequestCloseAllMenus(f8_arg0)
end
local f0_local8 = function(f9_arg0, f9_arg1)
LUI.FlowManager.RequestLeaveMenu(f9_arg0)
Game.HandleLeavePauseMenu()
Engine.Exec("onPlayerQuit")
local f9_local0 = Engine.GetDvarBool("sv_running")
if Engine.GetDvarBool("squad_match") then
Squad.PostMatch(0, 0, 0, 0, true)
end
if f9_local0 then
f0_local3(f9_arg0)
else
f0_local2(f9_arg0)
end
LUI.FlowManager.RequestCloseAllMenus(f9_arg0)
end
local f0_local9 = function(f10_arg0, f10_arg1)
LUI.FlowManager.RequestLeaveMenu(f10_arg0)
Game.HandleLeavePauseMenu()
Engine.Exec("onPlayerQuit")
local f10_local0 = Engine.GetDvarBool("sv_running")
if Engine.GetDvarBool("squad_match") then
Squad.PostMatch(0, 0, 0, 0, true)
end
if f10_local0 then
f0_local6(f10_arg0)
else
f0_local5(f10_arg0)
end
LUI.FlowManager.RequestCloseAllMenus(f10_arg0)
end
local f0_local10 = function(f11_arg0)
local f11_local0 = Lobby.IsInPrivateParty()
if f11_local0 then
f11_local0 = Lobby.IsPrivatePartyHost()
if f11_local0 then
f11_local0 = not Lobby.IsAloneInPrivateParty()
end
end
return f11_local0
end
local f0_local11 = function(f12_arg0, f12_arg1)
if f0_local10(f12_arg0) then
LUI.FlowManager.RequestLeaveMenu(f12_arg0, true)
LUI.FlowManager.RequestAddMenu(f12_arg0, "popup_pull_party", false)
else
Game.HandleLeavePauseMenu()
Engine.Exec("onPlayerQuit")
local f12_local0 = Engine.GetDvarBool("sv_running")
if Engine.GetDvarBool("squad_match") then
Squad.PostMatch(0, 0, 0, 0, true)
end
if f12_local0 then
f0_local6(f12_arg0)
else
f0_local5(f12_arg0)
end
LUI.FlowManager.RequestCloseAllMenus(f12_arg0)
end
end
local f0_local12 = function()
local self = LUI.UIElement.new()
self.id = "end_game_id"
self:registerAnimationState("default", {
topAnchor = true,
leftAnchor = true,
bottomAnchor = true,
rightAnchor = true,
top = 0,
left = 0,
bottom = 0,
right = 0,
alpha = 1
})
self:animateToState("default", 0)
LUI.MenuBuilder.BuildAddChild(self, {
type = "generic_yesno_popup",
id = "privateGame_options_list_id",
properties = {
message_text_alignment = LUI.Alignment.Left,
message_text = Engine.Localize("@LUA_MENU_END_GAME_DESC"),
popup_title = Engine.Localize("@LUA_MENU_LEAVE_GAME_TITLE"),
padding_top = 12,
yes_action = f0_local7
}
})
local f13_local1 = LUI.UIBindButton.new()
f13_local1.id = "endBackToGameStartButton"
f13_local1:registerEventHandler("button_start", f0_local0)
self:addElement(f13_local1)
return self
end
local f0_local13 = function()
local self = LUI.UIElement.new()
self.id = "leave_game_id"
self:registerAnimationState("default", {
topAnchor = true,
leftAnchor = true,
bottomAnchor = true,
rightAnchor = true,
top = 0,
left = 0,
bottom = 0,
right = 0,
alpha = 1
})
self:animateToState("default", 0)
LUI.MenuBuilder.BuildAddChild(self, {
type = "generic_yesno_popup",
id = "publicGame_options_list_id",
properties = {
message_text_alignment = LUI.Alignment.Left,
message_text = Engine.Localize("@LUA_MENU_LEAVE_GAME_DESC"),
popup_title = Engine.Localize("@LUA_MENU_LEAVE_GAME_TITLE"),
padding_top = 12,
yes_action = f0_local11
}
})
local f14_local1 = LUI.UIBindButton.new()
f14_local1.id = "leaveBackToGameStartButton"
f14_local1:registerEventHandler("button_start", f0_local0)
self:addElement(f14_local1)
return self
end
local f0_local14 = function()
local self = LUI.UIElement.new()
self.id = "pull_party_out_id"
self:registerAnimationState("default", {
topAnchor = true,
leftAnchor = true,
bottomAnchor = true,
rightAnchor = true,
top = 0,
left = 0,
bottom = 0,
right = 0,
alpha = 1
})
self:animateToState("default", 0)
LUI.MenuBuilder.BuildAddChild(self, {
type = "generic_yesno_popup",
id = "party_pullout_list_id",
properties = {
message_text_alignment = LUI.Alignment.Left,
message_text = Engine.Localize("@LUA_MENU_PULL_PARTY_DESC"),
popup_title = Engine.Localize("@LUA_MENU_LEAVE_GAME_TITLE"),
padding_top = 12,
yes_action = f0_local8,
no_action = f0_local9,
cancel_means_no = false
}
})
local f15_local1 = LUI.UIBindButton.new()
f15_local1.id = "leavePullPartyButton"
f15_local1:registerEventHandler("button_start", f0_local0)
self:addElement(f15_local1)
return self
end
LUI.MenuBuilder.m_types_build["popup_end_game"] = f0_local12
LUI.MenuBuilder.m_types_build["popup_leave_game"] = f0_local13
LUI.MenuBuilder.m_types_build["popup_pull_party"] = f0_local14

View File

@ -0,0 +1,6 @@
if (game:issingleplayer()) then
return
end
require("settings")
require("hud")

View File

@ -0,0 +1,163 @@
local mphud = require("LUI.mp_hud.MPHud")
local barheight = 18
local textheight = 13
local textoffsety = barheight / 2 - textheight / 2
function createinfobar()
local infobar = LUI.UIElement.new({
left = 180,
top = 5,
height = barheight,
width = 70,
leftAnchor = true,
topAnchor = true
})
infobar:registerAnimationState("hud_on", {
alpha = 1
})
infobar:registerAnimationState("hud_off", {
alpha = 0
})
return infobar
end
function populateinfobar(infobar)
elementoffset = 0
if (Engine.GetDvarBool("cg_infobar_fps")) then
infobar:addElement(infoelement({
label = "FPS: ",
getvalue = function()
return game:getfps()
end,
width = 70,
interval = 100
}))
end
if (Engine.GetDvarBool("cg_infobar_ping")) then
infobar:addElement(infoelement({
label = "Latency: ",
getvalue = function()
return game:getping() .. " ms"
end,
width = 115,
interval = 100
}))
end
end
function infoelement(data)
local container = LUI.UIElement.new({
bottomAnchor = true,
leftAnchor = true,
topAnchor = true,
width = data.width,
left = elementoffset
})
elementoffset = elementoffset + data.width + 10
local background = LUI.UIImage.new({
bottomAnchor = true,
leftAnchor = true,
topAnchor = true,
rightAnchor = true,
color = {
r = 0.3,
g = 0.3,
b = 0.3,
},
material = RegisterMaterial("distort_hud_bkgnd_ui_blur")
})
local labelfont = RegisterFont("fonts/bodyFontBold", textheight)
local label = LUI.UIText.new({
left = 5,
top = textoffsety + 1,
font = labelfont,
height = textheight,
leftAnchor = true,
topAnchor = true,
color = {
r = 0.8,
g = 0.8,
b = 0.8,
}
})
label:setText(data.label)
local _, _, left = GetTextDimensions(data.label, labelfont, textheight)
local value = LUI.UIText.new({
left = left + 5,
top = textoffsety,
font = RegisterFont("fonts/bodyFont", textheight),
height = textheight + 1,
leftAnchor = true,
topAnchor = true,
color = {
r = 0.6,
g = 0.6,
b = 0.6,
}
})
value:addElement(LUI.UITimer.new(data.interval, "update"))
value:setText(data.getvalue())
value:addEventHandler("update", function()
value:setText(data.getvalue())
end)
container:addElement(background)
container:addElement(label)
container:addElement(value)
return container
end
local updatehudvisibility = mphud.updateHudVisibility
mphud.updateHudVisibility = function(a1, a2)
updatehudvisibility(a1, a2)
local root = Engine.GetLuiRoot()
local menus = root:AnyActiveMenusInStack()
local infobar = root.infobar
if (not infobar) then
return
end
if (menus) then
infobar:animateToState("hud_off")
else
infobar:animateToState("hud_on")
end
end
local mphud = LUI.MenuBuilder.m_types_build["mp_hud"]
LUI.MenuBuilder.m_types_build["mp_hud"] = function()
local hud = mphud()
if (Engine.InFrontend()) then
return hud
end
local infobar = createinfobar()
local root = Engine.GetLuiRoot()
root.infobar = infobar
populateinfobar(infobar)
root:registerEventHandler("update_hud_infobar_settings", function()
infobar:removeAllChildren()
populateinfobar(infobar)
end)
hud.static:addElement(infobar)
return hud
end

View File

@ -0,0 +1,156 @@
local pcoptions = require("LUI.PCOptions")
game:addlocalizedstring("LUA_MENU_FPS", "FPS Counter")
game:addlocalizedstring("LUA_MENU_FPS_DESC", "Show FPS Counter")
game:addlocalizedstring("LUA_MENU_LATENCY", "Server Latency")
game:addlocalizedstring("LUA_MENU_LATENCY_DESC", "Show server latency")
pcoptions.VideoOptionsFeeder = function()
local items = {
pcoptions.OptionFactory(
"ui_r_displayMode",
"@LUA_MENU_DISPLAY_MODE",
nil,
{
{
text = "@LUA_MENU_MODE_FULLSCREEN",
value = "fullscreen"
},
{
text = "@LUA_MENU_MODE_WINDOWED_NO_BORDER",
value = "windowed_no_border"
},
{
text = "@LUA_MENU_MODE_WINDOWED",
value = "windowed"
}
},
nil,
true
),
pcoptions.SliderOptionFactory(
"profileMenuOption_blacklevel",
"@MENU_BRIGHTNESS",
"@MENU_BRIGHTNESS_DESC1",
SliderBounds.PCBrightness.Min,
SliderBounds.PCBrightness.Max,
SliderBounds.PCBrightness.Step,
function(element)
element:processEvent({
name = "brightness_over",
immediate = true
})
end,
function(element)
element:processEvent({
name = "brightness_up",
immediate = true
})
end,
true,
nil,
"brightness_updated"
),
pcoptions.OptionFactoryProfileData(
"renderColorBlind",
"profile_toggleRenderColorBlind",
"@LUA_MENU_COLORBLIND_FILTER",
"@LUA_MENU_COLOR_BLIND_DESC",
{
{
text = "@LUA_MENU_ENABLED",
value = true
},
{
text = "@LUA_MENU_DISABLED",
value = false
}
},
nil,
false
)
}
if Engine.IsMultiplayer() and not Engine.IsZombiesMode() then
table.insert(items, pcoptions.OptionFactory(
"cg_paintballFx",
"@LUA_MENU_PAINTBALL",
"@LUA_MENU_PAINTBALL_DESC",
{
{
text = "@LUA_MENU_ENABLED",
value = true
},
{
text = "@LUA_MENU_DISABLED",
value = false
}
},
nil,
false,
false
))
end
table.insert(items, pcoptions.OptionFactory(
"cg_infobar_ping",
"@LUA_MENU_LATENCY",
"@LUA_MENU_LATENCY_DESC",
{
{
text = "@LUA_MENU_ENABLED",
value = true
},
{
text = "@LUA_MENU_DISABLED",
value = false
}
},
function()
Engine.GetLuiRoot():processEvent({
name = "update_hud_infobar_settings"
})
end,
false,
false
))
table.insert(items, pcoptions.OptionFactory(
"cg_infobar_fps",
"@LUA_MENU_FPS",
"@LUA_MENU_FPS_DESC",
{
{
text = "@LUA_MENU_ENABLED",
value = true
},
{
text = "@LUA_MENU_DISABLED",
value = false
}
},
function()
Engine.GetLuiRoot():processEvent({
name = "update_hud_infobar_settings"
})
end,
false,
false
))
table.insert(items, {
type = "UIGenericButton",
id = "option_advanced_video",
properties = {
style = GenericButtonSettings.Styles.GlassButton,
button_text = Engine.Localize("@LUA_MENU_ADVANCED_VIDEO"),
desc_text = "",
button_action_func = pcoptions.ButtonMenuAction,
text_align_without_content = LUI.Alignment.Left,
menu = "advanced_video"
}
})
return items
end

View File

@ -0,0 +1,6 @@
if (game:issingleplayer() or not Engine.InFrontend()) then
return
end
require("menu_xboxlive")
require("menu_xboxlive_lobby")

View File

@ -0,0 +1,112 @@
local Lobby = Lobby
local MPLobbyOnline = LUI.mp_menus.MPLobbyOnline
local MenuData = LUI.mp_menus.MenuData
local MPLobbyUtils = LUI.mp_menus.MPLobbyUtils
game:addlocalizedstring("LUA_MENU_SERVERLIST", "Server List")
game:addlocalizedstring("LUA_MENU_SERVERLIST_DESC", "Browse available servers.");
LeaveXboxLive = function(f5_arg0)
local f73_local0 = Engine.GetFirstActiveController()
if f73_local0 ~= nil then
Engine.ExecNow("xstopprivateparty", f73_local0)
Cac.NotifyVirtualLobby("leave_lobby", Engine.GetXUIDByController(f73_local0))
Engine.SetSplitScreen(false)
Engine.ExecNow("forcesplitscreencontrol menu_xboxlive_CLOSE", f73_local0)
else
Engine.Exec("xstopprivateparty")
end
end
function LeaveLobby(a1)
LUI.MarketingPanel.ClearViewedMessages({ LUI.MarketingLocation.CaC, LUI.MarketingLocation.PlayOnline,
LUI.MarketingLocation.CaO })
LeaveXboxLive()
LUI.FlowManager.RequestLeaveMenuByName("menu_xboxlive_lobby", nil, true)
end
function menu_xboxlive(a1, a2)
Engine.SetDvarBool("ui_opensummary", false)
local menu = LUI.MPLobbyBase.new(a1, {
menu_title = "@PLATFORM_UI_HEADER_PLAY_MP_CAPS",
memberListState = Lobby.MemberListStates.Prelobby,
has_new_item_usage_widget = true
})
menu:setClass(LUI.MPLobbyOnline)
menu.handleGamepadButton = MPLobbyOnline.menu_xboxlive_handleGamepadButton
if Engine.IsCoreMode() then
menu:AddNewItemsWidget()
end
-- server list button
local serverListButton = menu:AddButton("@LUA_MENU_SERVERLIST", function(a1, a2)
LUI.FlowManager.RequestAddMenu(a1, "menu_systemlink_join", true, nil)
end)
serverListButton:setDisabledRefreshRate(500)
-- private match button
privateMatchButton = menu:AddButton("@MENU_PRIVATE_MATCH", MPLobbyOnline.OnPrivateMatch,
MPLobbyOnline.disablePrivateMatchButton)
privateMatchButton:rename("menu_xboxlive_private_match")
privateMatchButton:setDisabledRefreshRate(500)
-- combat training button
if Engine.IsCoreMode() then
game:addlocalizedstring("LUA_MENU_COMBAT", "Combat Training");
game:addlocalizedstring("LUA_MENU_COMBAT_DESC", "Rank up offline with bots.");
local FindGameButton = menu:AddButton("@LUA_MENU_COMBAT",
MPLobbyOnline.OnPublicMatch, MPLobbyOnline.disablePublicMatchButton)
FindGameButton:rename("menu_xboxlive_find_game")
FindGameButton:setDisabledRefreshRate(500)
end
if Engine.IsCoreMode() then
menu:AddCACButton()
menu:AddCAOButton()
menu:AddArmoryButton()
end
if not Engine.IsCoreMode() then
local leaderboardButton = menu:AddButton("@LUA_MENU_LEADERBOARD", "OpLeaderboardMain")
leaderboardButton:rename("OperatorMenu_leaderboard")
end
if Engine.IsZombiesMode() then
menu:AddButton("@ZOMBIES_MENU_MOVIES", "ZombiesMoviesMenu")
end
menu:AddOptionsButton()
local natType = Lobby.GetNATType()
if natType then
menu:AddHelp({
name = "add_button_helper_text",
button_ref = "nat",
helper_text = Engine.Localize("NETWORK_YOURNATTYPE", natType),
side = "left",
clickable = false
})
end
if Engine.IsZombiesMode() then
menu:AddZombiesStats(true)
end
menu.isSignInMenu = true
menu:registerEventHandler("gain_focus", LUI.MPLobbyOnline.OnGainFocus)
menu:registerEventHandler("player_joined", Cac.PlayerJoinedEvent)
menu:registerEventHandler("exit_live_lobby", LeaveLobby)
if PersistentBackground.IsCurrent(PersistentBackground.Variants.AARBackground) then
PersistentBackground.Hide(PersistentBackground.Duration)
end
if Engine.IsCoreMode() then
Engine.ExecNow("eliteclan_refresh", Engine.GetFirstActiveController())
end
return menu
end
LUI.MenuBuilder.m_types_build["menu_xboxlive"] = menu_xboxlive

View File

@ -0,0 +1,95 @@
local MPLobbyPublic = LUI.mp_menus.MPLobbyPublic
function StartButtonAction(f2_arg0, f2_arg1)
Engine.SetDvarInt("party_minplayers", 1)
end
function StartButtonText(f5_arg0, f5_arg1)
f5_arg0:processEvent({
name = "refresh_disabled"
})
f5_arg0:setText(Engine.Localize("@LUA_MENU_START_GAME"))
end
function OnLeaveLobby(f6_arg0)
LUI.MarketingPanel.ClearViewedMessages({
LUI.MarketingLocation.Lobby
})
LUI.FlowManager.RequestLeaveMenu(f6_arg0)
end
function OnGameSetup(f10_arg0, f10_arg1)
LUI.FlowManager.RequestAddMenu(f10_arg0, "gamesetup_menu_main", true, f10_arg1.controller, false)
end
function menu_xboxlive_lobby(f7_arg0, f7_arg1)
local f7_local0 = false
if not Engine.IsZombiesMode() and Engine.GetDvarBool("ui_opensummary") then
f7_local0 = true
end
if Engine.IsZombiesMode() then
ZombiesUpdateMapBkg()
end
local f7_local1 = LUI.MPLobbyBase.new(f7_arg0, {
menu_title = "@PLATFORM_UI_HEADER_PLAY_MP_CAPS",
has_match_summary = true,
has_new_item_usage_widget = true
}, true)
f7_local1:setClass(LUI.MPLobbyPublic)
if Engine.IsMultiplayer() then
f7_local1:AddReadyUpButton("pt_AliensReadyUpPublicInUse", StartButtonAction, false, StartButtonText)
-- f7_local1:AddButton( "@LUA_MENU_GAME_SETUP", OnGameSetup ) -- WIP
end
if Engine.IsCoreMode() then
f7_local1:AddNewItemsWidget()
f7_local1:AddCACButton()
f7_local1:AddCAOButton()
f7_local1:AddArmoryButton()
end
f7_local1:AddOptionsButton()
if not f7_local1:CheckAddMapAndMarketingPanels(f7_local0) then
f7_local1:registerEventHandler("CheckAddMapAndMarketingPanels", function(element, event)
LUI.MPLobbyPublic.CheckAddMapAndMarketingPanels(element, f7_local0)
end)
local self = LUI.UITimer.new(100, "CheckAddMapAndMarketingPanels")
self.id = "MPLobbyPublic_add_map_timer"
f7_local1.mapTimer = self
f7_local1:addElement(self)
end
f7_local1:registerEventHandler("exit_public_lobby", OnLeaveLobby)
f7_local1:registerEventHandler("player_joined", Cac.PlayerJoinedEvent)
f7_local1:registerEventHandler("loadout_request", Cac.PlayerJoinedEvent)
Lobby.EnteredLobby()
if f7_local0 then
LUI.InventoryUtils.ProcessLootExpiration()
end
return f7_local1
end
LUI.MenuBuilder.m_types_build["menu_xboxlive_lobby"] = menu_xboxlive_lobby
LUI.FlowManager.RegisterMenuStack("menu_xboxlive_lobby", function()
if Engine.IsCoreMode() and Playlist.GetPreselectedCategoryClass() ~= 8 then
return {
"mp_main_menu",
"menu_xboxlive",
"FindGameMenu",
"FindGameSubMenu"
}
else
return {
"mp_main_menu",
"menu_xboxlive",
"FindGameMenu"
}
end
end)
VLobby.InitMenuMode("menu_xboxlive_lobby", VirtualLobbyModes.LUI_MODE_LOBBY, function()
if LUI.MPLobbyBase.UseReadyUp then
Lobby.ClearLocalReadyUpFlag()
end
local f10_local0 = PersistentBackground.StackFunc(nil)
f10_local0()
end, LUI.MPLobbyBase.CollectGarbage)
LUI.FlowManager.RegisterStackResumeBehaviour("menu_xboxlive_lobby", PersistentBackground.StackFunc(nil))

View File

@ -0,0 +1,19 @@
if (game:issingleplayer()) then
return
end
function GetGameModeName()
return Engine.Localize(Engine.TableLookup(GameTypesTable.File, GameTypesTable.Cols.Ref, GameX.GetGameMode(), GameTypesTable.Cols.Name))
end
-- Allow players to change teams in game.
function CanChangeTeam()
local f9_local0 = GameX.GetGameMode()
local f9_local1
if f9_local0 ~= "aliens" and Engine.TableLookup(GameTypesTable.File, GameTypesTable.Cols.Ref, f9_local0, GameTypesTable.Cols.TeamChoice) == "1" then
f9_local1 = not MLG.IsMLGSpectator()
else
f9_local1 = false
end
return f9_local1
end

View File

@ -0,0 +1,30 @@
if (game:issingleplayer() or Engine.InFrontend()) then
return
end
function GetPartyMaxPlayers()
return Engine.GetDvarInt("sv_maxclients")
end
local scoreboard = LUI.mp_hud.Scoreboard
scoreboard.maxPlayersOnTeam = GetTeamLimitForMaxPlayers(GetPartyMaxPlayers())
scoreboard.scoreColumns.ping = {
width = Engine.IsZombiesMode() and 90 or 60,
title = "LUA_MENU_PING",
getter = function(scoreinfo)
return scoreinfo.ping == 0 and "BOT" or tostring(scoreinfo.ping)
end
}
local getcolumns = scoreboard.getColumnsForCurrentGameMode
scoreboard.getColumnsForCurrentGameMode = function(a1)
local columns = getcolumns(a1)
if (Engine.IsZombiesMode()) then
table.insert(columns, scoreboard.scoreColumns.ping)
end
return columns
end

View File

@ -0,0 +1,5 @@
if (game:issingleplayer() or not Engine.InFrontend()) then
return
end
require("serverlist")

View File

@ -0,0 +1,76 @@
if (game:issingleplayer() or not Engine.InFrontend()) then
return
end
local SystemLinkJoinMenu = LUI.mp_menus.SystemLinkJoinMenu
game:addlocalizedstring("PLATFORM_SYSTEM_LINK_TITLE", "SERVER LIST")
game:addlocalizedstring("MENU_NUMPLAYERS", "Players")
game:addlocalizedstring("MENU_PING", "Ping")
local offsets = {10, 400, 600, 900, 1075}
local columns = {"@MENU_HOST_NAME", "@MENU_MAP", "@MENU_TYPE1", "@MENU_NUMPLAYERS", "@MENU_PING"}
SystemLinkJoinMenu.AddServerButton = function(menu, controller, index)
local serverInformation = nil
local button = menu:AddButton("", SystemLinkJoinMenu.OnJoinGame)
if index == nil then
button:makeNotFocusable()
serverInformation = function(i)
return Engine.Localize(columns[i])
end
else
button:makeFocusable()
button.index = index
serverInformation = function(i)
return Lobby.GetServerData(controller, index, i - 1)
end
end
for size = 1, #offsets do
SystemLinkJoinMenu.MakeText(button, offsets[size], serverInformation(size))
end
return button
end
function menu_systemlink_join(f19_arg0, f19_arg1)
local menu = LUI.MenuTemplate.new(f19_arg0, {
menu_title = "@PLATFORM_SYSTEM_LINK_TITLE",
menu_width = CoD.DesignGridHelper(28)
})
Lobby.BuildServerList(Engine.GetFirstActiveController())
Lobby.RefreshServerList(Engine.GetFirstActiveController())
SystemLinkJoinMenu.UpdateGameList(menu)
menu:registerEventHandler("updateGameList", SystemLinkJoinMenu.UpdateGameList)
menu:addElement(LUI.UITimer.new(250, "updateGameList"))
menu:AddHelp({
name = "add_button_helper_text",
button_ref = "button_alt1",
helper_text = Engine.Localize("@MENU_SB_TOOLTIP_BTN_REFRESH"),
side = "right",
clickable = true,
priority = -1000
}, function(f10_arg0, f10_arg1)
SystemLinkJoinMenu.RefreshServers(f10_arg0, f10_arg1, menu)
end)
menu:AddHelp({
name = "add_button_helper_text",
button_ref = "button_action",
helper_text = Engine.Localize("@MENU_JOIN_GAME1"),
side = "right",
clickable = false,
priority = -1000
})
menu:AddBackButton()
return menu
end
LUI.MenuBuilder.m_types_build["menu_systemlink_join"] = menu_systemlink_join

View File

@ -0,0 +1,204 @@
local isclasslocked = Cac.IsCustomClassLocked
Cac.IsCustomClassLocked = function(...)
if (Engine.GetDvarBool("cg_unlockall_classes")) then
return false
end
return isclasslocked(table.unpack({ ... }))
end
local isdlcclasslocked = Cac.IsCustomClassDlcLocked
Cac.IsCustomClassDlcLocked = function(...)
if (Engine.GetDvarBool("cg_unlockall_classes")) then
return false
end
return isdlcclasslocked(table.unpack({ ... }))
end
if (game:issingleplayer() or not Engine.InFrontend()) then
return
end
game:addlocalizedstring("LUA_MENU_STATS", "Stats")
game:addlocalizedstring("LUA_MENU_STATS_DESC", "Edit player stats settings.")
game:addlocalizedstring("LUA_MENU_UNLOCKALL_ITEMS", "Unlock All Items")
game:addlocalizedstring("LUA_MENU_UNLOCKALL_ITEMS_DESC", "Unlock items that are level-locked by the player's stats.")
game:addlocalizedstring("LUA_MENU_UNLOCKALL_LOOT", "Unlock All Loot")
game:addlocalizedstring("LUA_MENU_UNLOCKALL_LOOT_DESC", "Unlock supply drop loot.")
game:addlocalizedstring("LUA_MENU_UNLOCKALL_CLASSES", "Unlock All Classes")
game:addlocalizedstring("LUA_MENU_UNLOCKALL_CLASSES_DESC", "Unlock extra class slots.")
game:addlocalizedstring("LUA_MENU_PRESTIGE", "Prestige")
game:addlocalizedstring("LUA_MENU_PRESTIGE_DESC", "Edit prestige level.")
game:addlocalizedstring("LUA_MENU_RANK", "Rank")
game:addlocalizedstring("LUA_MENU_RANK_DESC", "Edit rank.")
local armorybutton = LUI.MPLobbyBase.AddArmoryButton
LUI.MPLobbyBase.AddArmoryButton = function(menu)
menu:AddButton("@LUA_MENU_STATS", function(a1, a2)
LUI.FlowManager.RequestAddMenu(a1, "menu_stats", true, nil)
end)
end
-- button stuff for configuring
function IsEnabled(dvar)
local enabled = Engine.GetDvarBool(dvar)
if enabled then
return Engine.Localize("@LUA_MENU_ENABLED")
end
return Engine.Localize("@LUA_MENU_DISABLED")
end
function ToggleEnable(dvar)
local enabled = Engine.GetDvarBool(dvar)
if enabled then
Engine.SetDvarBool(dvar, false)
else
Engine.SetDvarBool(dvar, true)
end
end
function GoDirection(dvar, direction, callback)
local value = Engine.GetDvarString(dvar)
value = tonumber(value)
-- get rank data
local max = nil
if (dvar == "ui_rank_level_") then
max = Rank.GetMaxRank(CoD.PlayMode.Core)
elseif (dvar == "ui_prestige_level") then
max = Lobby.GetMaxPrestigeLevel()
end
local new_value = nil
if (direction == "down") then
new_value = value - 1
elseif (direction == "up") then
new_value = value + 1
end
-- checking to make sure its < 0 or > max
if (new_value < 0) then
new_value = max
elseif (new_value > max) then
new_value = 0
end
callback(new_value)
Engine.SetDvarFromString(dvar, new_value .. "")
end
LUI.MenuBuilder.registerType("menu_stats", function(a1, a2)
local menu = LUI.MenuTemplate.new(a1, {
menu_title = Engine.ToUpperCase(Engine.Localize("@LUA_MENU_STATS")),
menu_width = GenericMenuDims.menu_right_wide - GenericMenuDims.menu_left,
menu_height = 548
})
menu:setClass(LUI.Options)
menu.controller = a2.exclusiveController
local itemsbutton = menu:AddButtonVariant(GenericButtonSettings.Variants.Select,
"@LUA_MENU_UNLOCKALL_ITEMS", "@LUA_MENU_UNLOCKALL_ITEMS_DESC", function()
return IsEnabled("cg_unlockall_items")
end, function()
ToggleEnable("cg_unlockall_items")
end, function()
ToggleEnable("cg_unlockall_items")
end)
local lootbutton = menu:AddButtonVariant(GenericButtonSettings.Variants.Select,
"@LUA_MENU_UNLOCKALL_LOOT", "@LUA_MENU_UNLOCKALL_LOOT_DESC", function()
return IsEnabled("cg_unlockall_loot")
end, function()
ToggleEnable("cg_unlockall_loot")
end, function()
ToggleEnable("cg_unlockall_loot")
end)
local classesbutton = menu:AddButtonVariant(GenericButtonSettings.Variants.Select,
"@LUA_MENU_UNLOCKALL_CLASSES", "@LUA_MENU_UNLOCKALL_CLASSES_DESC", function()
return IsEnabled("cg_unlockall_classes")
end, function()
ToggleEnable("cg_unlockall_classes")
end, function()
ToggleEnable("cg_unlockall_classes")
end)
local prestige = Engine.GetPlayerDataEx(0, CoD.StatsGroup.Ranked, "prestige") or 0
local experience = Engine.GetPlayerDataEx(0, CoD.StatsGroup.Ranked, "experience") or 0
local rank = AAR.GetRankForXP(experience, prestige)
local prestigevalue = prestige
local rankvalue = rank
-- save changes made
local save_changes = function()
Engine.SetPlayerDataEx(0, CoD.StatsGroup.Ranked, "prestige", tonumber(prestigevalue))
local rank = tonumber(rankvalue)
local prestige = Engine.GetPlayerDataEx(0, CoD.StatsGroup.Ranked, "prestige") or 0
local experience = rank == 0 and 0 or Rank.GetRankMaxXP(tonumber(rankvalue) - 1, prestige)
Engine.SetPlayerDataEx(0, CoD.StatsGroup.Ranked, "experience", experience)
end
-- back callback
local back = function()
save_changes()
LUI.common_menus.Options.HideOptionsBackground()
LUI.FlowManager.RequestLeaveMenu(menu)
end
-- create buttons and create callbacks
CreateEditButton(menu, "ui_prestige_level", "@LUA_MENU_PRESTIGE", "@LUA_MENU_PRESTIGE_DESC", function(value)
prestigevalue = value
end)
CreateEditButton(menu, "ui_rank_level_", "@LUA_MENU_RANK", "@LUA_MENU_RANK_DESC", function(value)
rankvalue = value
end)
menu:AddBottomDescription(menu:InitScrolling())
menu:AddBackButton(back)
LUI.common_menus.Options.ShowOptionsBackground()
return menu
end)
function CreateEditButton(menu, dvar, name, desc, callback)
local prestige = Engine.GetPlayerDataEx(0, CoD.StatsGroup.Ranked, "prestige") or 0
local experience = Engine.GetPlayerDataEx(0, CoD.StatsGroup.Ranked, "experience") or 0
local dvarValue = nil
local max = nil
if (dvar == "ui_rank_level_") then
dvarValue = AAR.GetRankForXP(experience, prestige)
max = Rank.GetMaxRank(CoD.PlayMode.Core)
elseif (dvar == "ui_prestige_level") then
dvarValue = prestige
max = Lobby.GetMaxPrestigeLevel()
end
Engine.SetDvarFromString(dvar, dvarValue .. "")
menu:AddButtonVariant(GenericButtonSettings.Variants.Select, name, desc, function()
local dvarString = Engine.GetDvarString(dvar)
if (dvar == "ui_rank_level_") then
dvarString = tonumber(dvarString) + 1
end
return tostring(dvarString)
end, function()
GoDirection(dvar, "down", callback)
end, function()
GoDirection(dvar, "up", callback)
end)
end