Add game files and server configs
This commit is contained in:
parent
d2e50ebd30
commit
e8e3442ed0
14
cfg/!start_client.bat
Normal file
14
cfg/!start_client.bat
Normal 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%
|
23
cfg/!start_horde_server.bat
Normal file
23
cfg/!start_horde_server.bat
Normal 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
22
cfg/!start_mp_server.bat
Normal 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
23
cfg/!start_zm_server.bat
Normal 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
255
cfg/s1/server.cfg
Normal 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
107
cfg/s1/server_horde.cfg
Normal 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
80
cfg/s1/server_zm.cfg
Normal 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"
|
228
data/dw/entitlement_config.info
Normal file
228
data/dw/entitlement_config.info
Normal 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
BIN
data/dw/ffotd-1.22.1.ff
Normal file
Binary file not shown.
1050
data/dw/lootConfig_tu22.csv
Normal file
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
1
data/dw/mm.cfg
Normal 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
BIN
data/dw/playlists_tu22.aggr
Normal file
Binary file not shown.
171
data/dw/social_tu22.cfg
Normal file
171
data/dw/social_tu22.cfg
Normal 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
|
206
data/dw/winStoreConfig_tu22.csv
Normal file
206
data/dw/winStoreConfig_tu22.csv
Normal 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
|
|
3637
data/maps/mp/gametypes/_damage.gsc
Normal file
3637
data/maps/mp/gametypes/_damage.gsc
Normal file
File diff suppressed because it is too large
Load Diff
3548
data/maps/mp/gametypes/_gamelogic.gsc
Normal file
3548
data/maps/mp/gametypes/_gamelogic.gsc
Normal file
File diff suppressed because it is too large
Load Diff
2226
data/maps/mp/gametypes/_playerlogic.gsc
Normal file
2226
data/maps/mp/gametypes/_playerlogic.gsc
Normal file
File diff suppressed because it is too large
Load Diff
507
data/maps/mp/gametypes/gun.gsc
Normal file
507
data/maps/mp/gametypes/gun.gsc
Normal 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];
|
||||||
|
}
|
23
data/scripts/_team_balance.gsc
Normal file
23
data/scripts/_team_balance.gsc
Normal 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();
|
||||||
|
}
|
238
data/ui_scripts/endgame/__init__.lua
Normal file
238
data/ui_scripts/endgame/__init__.lua
Normal 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
|
6
data/ui_scripts/hud_info/__init__.lua
Normal file
6
data/ui_scripts/hud_info/__init__.lua
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
if (game:issingleplayer()) then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
require("settings")
|
||||||
|
require("hud")
|
163
data/ui_scripts/hud_info/hud.lua
Normal file
163
data/ui_scripts/hud_info/hud.lua
Normal 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
|
156
data/ui_scripts/hud_info/settings.lua
Normal file
156
data/ui_scripts/hud_info/settings.lua
Normal 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
|
6
data/ui_scripts/lobby/__init__.lua
Normal file
6
data/ui_scripts/lobby/__init__.lua
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
if (game:issingleplayer() or not Engine.InFrontend()) then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
require("menu_xboxlive")
|
||||||
|
require("menu_xboxlive_lobby")
|
112
data/ui_scripts/lobby/menu_xboxlive.lua
Normal file
112
data/ui_scripts/lobby/menu_xboxlive.lua
Normal 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
|
95
data/ui_scripts/lobby/menu_xboxlive_lobby.lua
Normal file
95
data/ui_scripts/lobby/menu_xboxlive_lobby.lua
Normal 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))
|
19
data/ui_scripts/patches/__init__.lua
Normal file
19
data/ui_scripts/patches/__init__.lua
Normal 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
|
30
data/ui_scripts/scoreboard/__init__.lua
Normal file
30
data/ui_scripts/scoreboard/__init__.lua
Normal 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
|
5
data/ui_scripts/server_list/__init__.lua
Normal file
5
data/ui_scripts/server_list/__init__.lua
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
if (game:issingleplayer() or not Engine.InFrontend()) then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
require("serverlist")
|
76
data/ui_scripts/server_list/serverlist.lua
Normal file
76
data/ui_scripts/server_list/serverlist.lua
Normal 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
|
204
data/ui_scripts/stats/__init__.lua
Normal file
204
data/ui_scripts/stats/__init__.lua
Normal 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
|
Loading…
Reference in New Issue
Block a user