aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitattributes1
-rw-r--r--Northstar.Client/mod/resource/northstar_client_localisation_english.txtbin20116 -> 20212 bytes
-rw-r--r--Northstar.Client/mod/resource/northstar_client_localisation_portuguese.txt432
-rw-r--r--Northstar.Client/mod/scripts/vscripts/ui/menu_ns_serverbrowser.nut8
-rw-r--r--Northstar.Custom/mod.json12
-rw-r--r--Northstar.Custom/mod/resource/northstar_custom_portuguese.txt138
-rw-r--r--Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_inf.gnut23
-rw-r--r--Northstar.Custom/mod/scripts/vscripts/sh_custom_pilot_collision.gnut32
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/burnmeter/_burnmeter.gnut57
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/earn_meter/sv_earn_meter_mp.gnut14
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_fd.nut2
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_classic_mp_dropship_intro.gnut2
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_gamestate_mp.nut53
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_wargames.nut16
14 files changed, 456 insertions, 334 deletions
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 00000000..21256661
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1 @@
+* text=auto \ No newline at end of file
diff --git a/Northstar.Client/mod/resource/northstar_client_localisation_english.txt b/Northstar.Client/mod/resource/northstar_client_localisation_english.txt
index 49ec746c..f438b0f7 100644
--- a/Northstar.Client/mod/resource/northstar_client_localisation_english.txt
+++ b/Northstar.Client/mod/resource/northstar_client_localisation_english.txt
Binary files differ
diff --git a/Northstar.Client/mod/resource/northstar_client_localisation_portuguese.txt b/Northstar.Client/mod/resource/northstar_client_localisation_portuguese.txt
index 332d25f8..072cb70f 100644
--- a/Northstar.Client/mod/resource/northstar_client_localisation_portuguese.txt
+++ b/Northstar.Client/mod/resource/northstar_client_localisation_portuguese.txt
@@ -1,216 +1,216 @@
-"lang"
-{
- "Language" "portuguese"
- "Tokens"
- {
- "MENU_LAUNCH_NORTHSTAR" "Abrir Northstar"
- "MENU_TITLE_MODS" "Mods"
- "RELOAD_MODS" "Recarregar Mods"
-
- "DIALOG_TITLE_INSTALLED_NORTHSTAR" "Obrigado por instalar Northstar!"
- "AUTHENTICATION_AGREEMENT_DIALOG_TEXT" "Para o Northstar funcionar é necessário autenticar com o servidor mestre Northstar. Isso requer enviar seu token da Origin para o servidor, ele não será utilizado pra outros propósitos.
-Clique em Sim se você concorda. Esta escolha pode ser alterada a qualquer momento no menu de mods."
- "BACK_AUTHENTICATION_AGREEMENT" "Aceitação de autorização"
- "AUTHENTICATION_AGREEMENT" "Aceitação de autorização"
- "AUTHENTICATION_AGREEMENT_RESTART" "Você precisa reiniciar o Titanfall 2 para esta mudança ter efeito."
-
- "MENU_TITLE_SERVER_BROWSER" "Lista de servidores"
- "NS_SERVERBROWSER_NOSERVERS" "Nenhum servidor encontrado"
- "NS_SERVERBROWSER_WAITINGFORSERVERS" "Aguardando servidores..."
- "NS_SERVERBROWSER_CONNECTIONFAILED" "Falha de conexão!"
- "REFRESH_SERVERS" "Atualizar"
-
- "MENU_TITLE_CONNECT_PASSWORD" "Conectar com senha"
- "MENU_CONNECT_MENU_CONNECT" "Conectar"
-
- "PRIVATE_MATCH_PAGE_PREV" "Página anterior"
- "PRIVATE_MATCH_PAGE_NEXT" "Próxima página"
-
- "MENU_MATCH_SETTINGS" "Configurações de partida"
- "MENU_MATCH_SETTINGS_SUBMENU" "%s1 Configurações"
-
- "PRIVATE_MATCH_SINGLEPLAYER_LEVEL" "%s1 (Um jogador)"
-
- // fra hint for private match menu, because fra only has PL_fra_desc in vanilla
- "PL_fra_hint" "Você está só. Mate inimigos para vencer. Colete 3 baterias para chamar um titã."
-
- // mode settings
- "MODE_SETTING_CATEGORY_PILOT" "Piloto"
- "MODE_SETTING_CATEGORY_TITAN" "Titã"
- "MODE_SETTING_CATEGORY_RIFF" "Riffs"
- "MODE_SETTING_CATEGORY_MATCH" "Partida"
-
- "classic_mp" "MP Clássico"
- "run_epilogue" "Executar epílogo"
- "scorelimit" "Limite de pontos"
- "roundscorelimit" "Limite de pontos (por round)"
- "timelimit" "Tempo limite"
- "roundtimelimit" "Tempo limite (por round)"
-
- "pilot_health_multiplier" "Multiplicador de vida"
- "respawn_delay" "Delay de reaparecimento"
- "boosts_enabled" "Bônus"
- "earn_meter_pilot_overdrive" "Medidor de bônus acelerado"
- "earn_meter_pilot_multiplier" "Multiplicador de bônus do piloto"
-
- "earn_meter_titan_multiplier" "Multiplicador de bônus do titã"
- "aegis_upgrades" "Upgrades Aegis"
- "infinite_doomed_state" "Estado condenado infinito"
- "titan_shield_regen" "Escudos regeneradores"
-
- "riff_floorislava" "Deadly Ground"
- "featured_mode_all_holopilot" "The Great Bamboozle"
- "featured_mode_all_grapple" "Attack on Titanfall"
- "featured_mode_all_phase" "The Otherside"
- "featured_mode_all_ticks" "Spicy"
- "featured_mode_tactikill" "Tactikill"
- "featured_mode_amped_tacticals" "Habilidades táticas melhoradas"
- "featured_mode_rocket_arena" "Arena Foguete"
- "featured_mode_shotguns_snipers" "Armado e perigoso"
- "iron_rules" "Titã de ferro"
-
- "cp_amped_capture_points" "Pontos de captura melhorados"
- "coliseum_loadouts_enabled" "Classes do Coliseu"
-
- // northstar.custom localisation is just deciding not to work, so putting it here for now
- "PL_sbox" "Sandbox"
- "PL_sbox_lobby" "Saguão de Sandbox"
- "PL_sbox_desc" "gmod só que pior"
- "PL_sbox_abbr" "SBOX"
- "GAMEMODE_SBOX" "Sandbox"
-
- "PL_gg" "Gun Game"
- "PL_gg_lobby" "Saguão de Gun Game"
- "PL_gg_desc" "Mate com todas as armas para vencer"
- "PL_gg_hint" "Mate com todas as armas para vencer"
- "PL_gg_abbr" "GG"
- "GAMEMODE_GG" "Gun Game"
-
- "PL_tt" "Titan Tag"
- "PL_tt_lobby" "Saguão de Titan Tag"
- "PL_tt_desc" "Ganhe pontos com seu titã. Destrua um para chamar o seu."
- "PL_tt_hint" "Ganhe pontos com seu titã. Destrua um para chamar o seu."
- "PL_tt_abbr" "TT"
- "GAMEMODE_TT" "Titan Tag"
-
- "PL_inf" "Infecção"
- "PL_inf_lobby" "Saguão de Infecção"
- "PL_inf_desc" "Sobreviva à infecção. Sobreviventes são infectados quando mortos."
- "PL_inf_hint" "Sobreviva à infecção. Sobreviventes são infectados quando mortos."
- "PL_inf_abbr" "INF"
- "GAMEMODE_INF" "Infecção"
- "INFECTION_YOU_ARE_INFECTED" "Você foi infectado!"
- "INFECTION_KILL_SURVIVORS" "Infecte todos os sobreviventes restantes."
- "INFECTION_FIRST_INFECTED" "%s1 é o paciente zero."
- "INFECTION_LAST_SURVIVOR" "%s1 é o último sobrevivente!"
- "INFECTION_KILL_LAST_SURVIVOR" "Infecte eles antes que o tempo acabe!"
- "INFECTION_YOU_ARE_LAST_SURVIVOR" "Você é o último sobrevivente!"
- "INFECTION_SURVIVE_LAST_SURVIVOR" "Sobreviva."
-
- "PL_hs" "Esconde-esconde"
- "PL_hs_lobby" "Saguão de Esconde-esconde"
- "PL_hs_desc" "Jogo clássico de esconde-esconde."
- "PL_hs_hint" "Jogo clássico de esconde-esconde."
- "PL_hs_abbr" "HS"
- "GAMEMODE_hs" "Esconde-esconde"
- "HIDEANDSEEK_YOU_ARE_SEEKER" "VOCÊ PEGA!"
- "HIDEANDSEEK_SEEKER_DESC" "Ache os outros e bata neles.\nVocê reaparecerá em %s1 segundos"
- "HIDEANDSEEK_YOU_ARE_HIDER" "VOCÊ ESCONDE"
- "HIDEANDSEEK_HIDER_DESC" "Esconda-se."
- "HIDEANDSEEK_SEEKERS_INCOMING" "LÁ VEM ELES"
- "HIDEANDSEEK_DONT_GET_FOUND" "Não seja encontrado!"
- "HIDEANDSEEK_GET_LAST_HIDER" "%s1 É O ULTIMO ESCONDIDO"
- "HIDEANDSEEK_YOU_ARE_LAST_HIDER" "VOCÊ É O ÚLTIMO ESCONDIDO"
- "HIDEANDSEEK_GOT_STIM" "Você está estimulado! Não seja pego!"
- "hideandseek_balance_teams" "Rebalanceamento de times"
- "hideandseek_hiding_time" "Tempo escondido"
-
- // these are defined in r1_english but titan war is a shit name so i'm changing it to another one that was referenced in development
- "GAMEMODE_fw" "Guerra pela Fronteira"
- "PL_fw" "Guerra pela Fronteira"
- "PL_fw_lobby" "Saguão de Guerra pela Fronteira"
- "PL_fw_desc" "Destrua a colheitadeira do inimigo e proteja a sua"
- "PL_fw_abbr" "FW"
-
- "GAMEMODE_kr" "Corrida de Matança"
- "PL_kr" "Corrida de Matança"
- "PL_kr_lobby" "Saguão de Matança"
- "PL_kr_desc" "Acabe com inimigos para aumentar sua matança. Capture a bandeira para começar. Vença matando mais."
- "PL_kr_hint" "Acabe com inimigos para aumentar sua matança. Capture a bandeira para começar. Vença matando mais."
- "PL_kr_abbr" "KR"
- "SCOREBOARD_KR_RECORD" "Recorde de mortes"
- "KR_NEW_RACER" "%s1 é o matador"
- "KR_YOU_ARE_NEW_RACER" "Você é o matador"
- "KR_YOU_SET_NEW_RECORD" "Bateu o recorde!"
- "KR_FLAG_INCOMING" "Bandeira reaparecerá em breve"
- "KR_COLLECT_FLAG" "Capture a bandeira para virar um Matador!"
- "KR_ENEMY_KILLRACE_OVER" "A matança de %s1 acabou"
- "KR_YOUR_KILLRACE_OVER" "Sua matança acabou"
- "KR_YOUR_KILLRACE_SCORE" "Você conseguiu %s1 mortes."
-
- "GAMEMODE_fastball" "Fastball"
- "PL_fastball" "Fastball"
- "PL_fastball_lobby" "Fastball Lobby"
- "PL_fastball_desc" "Sem reaparecimento. Invada painéis de controle para ganhar rounds e reaparecer seus aliados."
- "PL_fastball_hint" "Sem reaparecimento. Invada painéis de controle para ganhar rounds e reaparecer seus aliados."
- "PL_fastball_abbr" "FB"
- "FASTBALL_PANEL_CAPTURED" "%s1 capturou painel %s2"
- "SCOREBOARD_FASTBALL_HACKS" "Painéis capturados"
-
- "GAMEMODE_ctf_comp" "CTF Competitivo"
-
- // mode settings
- "MODE_SETTING_CATEGORY_PROMODE" "Modo PRO"
- "MODE_SETTING_CATEGORY_BLEEDOUT" "Sangramento de piloto"
-
- "custom_air_accel_pilot" "Aceleração aérea"
- "promode_enable" "Armas de Modo PRO"
- "fp_embark_enabled" "Execuções/embarque em 1a pessoa"
- "classic_rodeo" "Rodeio clássico"
- "oob_timer_enabled" "Temporizador fora do mapa"
- "riff_instagib" "Modo Instagib"
-
- "riff_player_bleedout" "Sangramento de piloto"
- "player_bleedout_forceHolster" "Guardar armas ao cair"
- "player_bleedout_forceDeathOnTeamBleedout" "Morrer ao time cair"
- "player_bleedout_bleedoutTime" "Tempo de sangramento"
- "player_bleedout_firstAidTime" "Tempo de recuperação"
- "player_bleedout_firstAidTimeSelf" "Tempo de auto-recuperação"
- "player_bleedout_firstAidHealPercent" "Porcentagem de vida recuperada"
- "player_bleedout_aiBleedingPlayerMissChance" "Chance de erro da IA ao cair"
-
- // coop stuff
- "PL_sp_coop" "(UNFINISHED) Singleplayer Coop"
- "PL_sp_coop_lobby" "Singleplayer Coop Lobby"
- "PL_sp_coop_desc" "Play through the singleplayer campaign with friends"
- "PL_sp_coop_hint" "Play through the singleplayer campaign with friends"
- "PL_sp_coop_abbr" "SP"
-
- "SP_TRAINING" "O Desafio do Piloto"
- "SP_TRAINING_CLASSIC_DESC" "Simulação de treinamento do Capitão Lastimosa."
-
- "SP_CRASHSITE" "BT-7274"
- "SP_CRASHSITE_CLASSIC_DESC" "Jack Cooper encontra BT-7274."
-
- "SP_SEWERS1" "Sangue e Ferrugem"
- "SP_SEWERS1_CLASSIC_DESC" "Cooper e BT saem para se encontrar com Major Anderson."
-
- "SP_BOOMTOWN_START" "Jornada ao abismo"
- "SP_BOOMTOWN_START_CLASSIC_DESC" "Um atalho debaixo da terra revela consequências inesperadas."
-
- "SP_HUB_TIMESHIFT" "Causa e Efeito"
- "SP_HUB_TIMESHIFT_CLASSIC_DESC" "Um fenônemo não identificado é descoberto nas coordenadas do Major Anderson."
-
- "SP_BEACON" "O Sinalizador"
- "SP_BEACON_CLASSIC_DESC" "Cooper e BT tentam informar o resto da frota sobre os planos da IMC."
-
- "SP_TDAY" "Prova de Fogo"
- "SP_TDAY_CLASSIC_DESC" "As habilidades do tiã de Cooper são postas à prova numa batalha para capturar a Arca"
-
- "SP_S2S" "A Arca"
- "SP_S2S_CLASSIC_DESC" "Cooper e BT vão de nave em nave em busca da Arca."
-
- "SP_SKYWAY_V1" "A Arma Quântica"
- "SP_SKYWAY_V1_CLASSIC_DESC" "BT e Cooper são capturados por Kuben Blisk."
- }
-}
+"lang"
+{
+ "Language" "portuguese"
+ "Tokens"
+ {
+ "MENU_LAUNCH_NORTHSTAR" "Abrir Northstar"
+ "MENU_TITLE_MODS" "Mods"
+ "RELOAD_MODS" "Recarregar Mods"
+
+ "DIALOG_TITLE_INSTALLED_NORTHSTAR" "Obrigado por instalar Northstar!"
+ "AUTHENTICATION_AGREEMENT_DIALOG_TEXT" "Para o Northstar funcionar é necessário autenticar com o servidor mestre Northstar. Isso requer enviar seu token da Origin para o servidor, ele não será utilizado pra outros propósitos.
+Clique em Sim se você concorda. Esta escolha pode ser alterada a qualquer momento no menu de mods."
+ "BACK_AUTHENTICATION_AGREEMENT" "Aceitação de autorização"
+ "AUTHENTICATION_AGREEMENT" "Aceitação de autorização"
+ "AUTHENTICATION_AGREEMENT_RESTART" "Você precisa reiniciar o Titanfall 2 para esta mudança ter efeito."
+
+ "MENU_TITLE_SERVER_BROWSER" "Lista de servidores"
+ "NS_SERVERBROWSER_NOSERVERS" "Nenhum servidor encontrado"
+ "NS_SERVERBROWSER_WAITINGFORSERVERS" "Aguardando servidores..."
+ "NS_SERVERBROWSER_CONNECTIONFAILED" "Falha de conexão!"
+ "REFRESH_SERVERS" "Atualizar"
+
+ "MENU_TITLE_CONNECT_PASSWORD" "Conectar com senha"
+ "MENU_CONNECT_MENU_CONNECT" "Conectar"
+
+ "PRIVATE_MATCH_PAGE_PREV" "Página anterior"
+ "PRIVATE_MATCH_PAGE_NEXT" "Próxima página"
+
+ "MENU_MATCH_SETTINGS" "Configurações de partida"
+ "MENU_MATCH_SETTINGS_SUBMENU" "%s1 Configurações"
+
+ "PRIVATE_MATCH_SINGLEPLAYER_LEVEL" "%s1 (Um jogador)"
+
+ // fra hint for private match menu, because fra only has PL_fra_desc in vanilla
+ "PL_fra_hint" "Você está só. Mate inimigos para vencer. Colete 3 baterias para chamar um titã."
+
+ // mode settings
+ "MODE_SETTING_CATEGORY_PILOT" "Piloto"
+ "MODE_SETTING_CATEGORY_TITAN" "Titã"
+ "MODE_SETTING_CATEGORY_RIFF" "Riffs"
+ "MODE_SETTING_CATEGORY_MATCH" "Partida"
+
+ "classic_mp" "MP Clássico"
+ "run_epilogue" "Executar epílogo"
+ "scorelimit" "Limite de pontos"
+ "roundscorelimit" "Limite de pontos (por round)"
+ "timelimit" "Tempo limite"
+ "roundtimelimit" "Tempo limite (por round)"
+
+ "pilot_health_multiplier" "Multiplicador de vida"
+ "respawn_delay" "Delay de reaparecimento"
+ "boosts_enabled" "Bônus"
+ "earn_meter_pilot_overdrive" "Medidor de bônus acelerado"
+ "earn_meter_pilot_multiplier" "Multiplicador de bônus do piloto"
+
+ "earn_meter_titan_multiplier" "Multiplicador de bônus do titã"
+ "aegis_upgrades" "Upgrades Aegis"
+ "infinite_doomed_state" "Estado condenado infinito"
+ "titan_shield_regen" "Escudos regeneradores"
+
+ "riff_floorislava" "Deadly Ground"
+ "featured_mode_all_holopilot" "The Great Bamboozle"
+ "featured_mode_all_grapple" "Attack on Titanfall"
+ "featured_mode_all_phase" "The Otherside"
+ "featured_mode_all_ticks" "Spicy"
+ "featured_mode_tactikill" "Tactikill"
+ "featured_mode_amped_tacticals" "Habilidades táticas melhoradas"
+ "featured_mode_rocket_arena" "Arena Foguete"
+ "featured_mode_shotguns_snipers" "Armado e perigoso"
+ "iron_rules" "Titã de ferro"
+
+ "cp_amped_capture_points" "Pontos de captura melhorados"
+ "coliseum_loadouts_enabled" "Classes do Coliseu"
+
+ // northstar.custom localisation is just deciding not to work, so putting it here for now
+ "PL_sbox" "Sandbox"
+ "PL_sbox_lobby" "Saguão de Sandbox"
+ "PL_sbox_desc" "gmod só que pior"
+ "PL_sbox_abbr" "SBOX"
+ "GAMEMODE_SBOX" "Sandbox"
+
+ "PL_gg" "Gun Game"
+ "PL_gg_lobby" "Saguão de Gun Game"
+ "PL_gg_desc" "Mate com todas as armas para vencer"
+ "PL_gg_hint" "Mate com todas as armas para vencer"
+ "PL_gg_abbr" "GG"
+ "GAMEMODE_GG" "Gun Game"
+
+ "PL_tt" "Titan Tag"
+ "PL_tt_lobby" "Saguão de Titan Tag"
+ "PL_tt_desc" "Ganhe pontos com seu titã. Destrua um para chamar o seu."
+ "PL_tt_hint" "Ganhe pontos com seu titã. Destrua um para chamar o seu."
+ "PL_tt_abbr" "TT"
+ "GAMEMODE_TT" "Titan Tag"
+
+ "PL_inf" "Infecção"
+ "PL_inf_lobby" "Saguão de Infecção"
+ "PL_inf_desc" "Sobreviva à infecção. Sobreviventes são infectados quando mortos."
+ "PL_inf_hint" "Sobreviva à infecção. Sobreviventes são infectados quando mortos."
+ "PL_inf_abbr" "INF"
+ "GAMEMODE_INF" "Infecção"
+ "INFECTION_YOU_ARE_INFECTED" "Você foi infectado!"
+ "INFECTION_KILL_SURVIVORS" "Infecte todos os sobreviventes restantes."
+ "INFECTION_FIRST_INFECTED" "%s1 é o paciente zero."
+ "INFECTION_LAST_SURVIVOR" "%s1 é o último sobrevivente!"
+ "INFECTION_KILL_LAST_SURVIVOR" "Infecte eles antes que o tempo acabe!"
+ "INFECTION_YOU_ARE_LAST_SURVIVOR" "Você é o último sobrevivente!"
+ "INFECTION_SURVIVE_LAST_SURVIVOR" "Sobreviva."
+
+ "PL_hs" "Esconde-esconde"
+ "PL_hs_lobby" "Saguão de Esconde-esconde"
+ "PL_hs_desc" "Jogo clássico de esconde-esconde."
+ "PL_hs_hint" "Jogo clássico de esconde-esconde."
+ "PL_hs_abbr" "HS"
+ "GAMEMODE_hs" "Esconde-esconde"
+ "HIDEANDSEEK_YOU_ARE_SEEKER" "VOCÊ PEGA!"
+ "HIDEANDSEEK_SEEKER_DESC" "Ache os outros e bata neles.\nVocê reaparecerá em %s1 segundos"
+ "HIDEANDSEEK_YOU_ARE_HIDER" "VOCÊ ESCONDE"
+ "HIDEANDSEEK_HIDER_DESC" "Esconda-se."
+ "HIDEANDSEEK_SEEKERS_INCOMING" "LÁ VEM ELES"
+ "HIDEANDSEEK_DONT_GET_FOUND" "Não seja encontrado!"
+ "HIDEANDSEEK_GET_LAST_HIDER" "%s1 É O ULTIMO ESCONDIDO"
+ "HIDEANDSEEK_YOU_ARE_LAST_HIDER" "VOCÊ É O ÚLTIMO ESCONDIDO"
+ "HIDEANDSEEK_GOT_STIM" "Você está estimulado! Não seja pego!"
+ "hideandseek_balance_teams" "Rebalanceamento de times"
+ "hideandseek_hiding_time" "Tempo escondido"
+
+ // these are defined in r1_english but titan war is a shit name so i'm changing it to another one that was referenced in development
+ "GAMEMODE_fw" "Guerra pela Fronteira"
+ "PL_fw" "Guerra pela Fronteira"
+ "PL_fw_lobby" "Saguão de Guerra pela Fronteira"
+ "PL_fw_desc" "Destrua a colheitadeira do inimigo e proteja a sua"
+ "PL_fw_abbr" "FW"
+
+ "GAMEMODE_kr" "Corrida de Matança"
+ "PL_kr" "Corrida de Matança"
+ "PL_kr_lobby" "Saguão de Matança"
+ "PL_kr_desc" "Acabe com inimigos para aumentar sua matança. Capture a bandeira para começar. Vença matando mais."
+ "PL_kr_hint" "Acabe com inimigos para aumentar sua matança. Capture a bandeira para começar. Vença matando mais."
+ "PL_kr_abbr" "KR"
+ "SCOREBOARD_KR_RECORD" "Recorde de mortes"
+ "KR_NEW_RACER" "%s1 é o matador"
+ "KR_YOU_ARE_NEW_RACER" "Você é o matador"
+ "KR_YOU_SET_NEW_RECORD" "Bateu o recorde!"
+ "KR_FLAG_INCOMING" "Bandeira reaparecerá em breve"
+ "KR_COLLECT_FLAG" "Capture a bandeira para virar um Matador!"
+ "KR_ENEMY_KILLRACE_OVER" "A matança de %s1 acabou"
+ "KR_YOUR_KILLRACE_OVER" "Sua matança acabou"
+ "KR_YOUR_KILLRACE_SCORE" "Você conseguiu %s1 mortes."
+
+ "GAMEMODE_fastball" "Fastball"
+ "PL_fastball" "Fastball"
+ "PL_fastball_lobby" "Fastball Lobby"
+ "PL_fastball_desc" "Sem reaparecimento. Invada painéis de controle para ganhar rounds e reaparecer seus aliados."
+ "PL_fastball_hint" "Sem reaparecimento. Invada painéis de controle para ganhar rounds e reaparecer seus aliados."
+ "PL_fastball_abbr" "FB"
+ "FASTBALL_PANEL_CAPTURED" "%s1 capturou painel %s2"
+ "SCOREBOARD_FASTBALL_HACKS" "Painéis capturados"
+
+ "GAMEMODE_ctf_comp" "CTF Competitivo"
+
+ // mode settings
+ "MODE_SETTING_CATEGORY_PROMODE" "Modo PRO"
+ "MODE_SETTING_CATEGORY_BLEEDOUT" "Sangramento de piloto"
+
+ "custom_air_accel_pilot" "Aceleração aérea"
+ "promode_enable" "Armas de Modo PRO"
+ "fp_embark_enabled" "Execuções/embarque em 1a pessoa"
+ "classic_rodeo" "Rodeio clássico"
+ "oob_timer_enabled" "Temporizador fora do mapa"
+ "riff_instagib" "Modo Instagib"
+
+ "riff_player_bleedout" "Sangramento de piloto"
+ "player_bleedout_forceHolster" "Guardar armas ao cair"
+ "player_bleedout_forceDeathOnTeamBleedout" "Morrer ao time cair"
+ "player_bleedout_bleedoutTime" "Tempo de sangramento"
+ "player_bleedout_firstAidTime" "Tempo de recuperação"
+ "player_bleedout_firstAidTimeSelf" "Tempo de auto-recuperação"
+ "player_bleedout_firstAidHealPercent" "Porcentagem de vida recuperada"
+ "player_bleedout_aiBleedingPlayerMissChance" "Chance de erro da IA ao cair"
+
+ // coop stuff
+ "PL_sp_coop" "(UNFINISHED) Singleplayer Coop"
+ "PL_sp_coop_lobby" "Saguão de Singleplayer em grupo"
+ "PL_sp_coop_desc" "Jogue através da campanha com seus amigos"
+ "PL_sp_coop_hint" "Jogue através da campanha com seus amigos"
+ "PL_sp_coop_abbr" "SP"
+
+ "SP_TRAINING" "O Desafio do Piloto"
+ "SP_TRAINING_CLASSIC_DESC" "Simulação de treinamento do Capitão Lastimosa."
+
+ "SP_CRASHSITE" "BT-7274"
+ "SP_CRASHSITE_CLASSIC_DESC" "Jack Cooper encontra BT-7274."
+
+ "SP_SEWERS1" "Sangue e Ferrugem"
+ "SP_SEWERS1_CLASSIC_DESC" "Cooper e BT saem para se encontrar com Major Anderson."
+
+ "SP_BOOMTOWN_START" "Jornada ao abismo"
+ "SP_BOOMTOWN_START_CLASSIC_DESC" "Um atalho debaixo da terra revela consequências inesperadas."
+
+ "SP_HUB_TIMESHIFT" "Causa e Efeito"
+ "SP_HUB_TIMESHIFT_CLASSIC_DESC" "Um fenônemo não identificado é descoberto nas coordenadas do Major Anderson."
+
+ "SP_BEACON" "O Sinalizador"
+ "SP_BEACON_CLASSIC_DESC" "Cooper e BT tentam informar o resto da frota sobre os planos da IMC."
+
+ "SP_TDAY" "Prova de Fogo"
+ "SP_TDAY_CLASSIC_DESC" "As habilidades do tiã de Cooper são postas à prova numa batalha para capturar a Arca"
+
+ "SP_S2S" "A Arca"
+ "SP_S2S_CLASSIC_DESC" "Cooper e BT vão de nave em nave em busca da Arca."
+
+ "SP_SKYWAY_V1" "A Arma Quântica"
+ "SP_SKYWAY_V1_CLASSIC_DESC" "BT e Cooper são capturados por Kuben Blisk."
+ }
+}
diff --git a/Northstar.Client/mod/scripts/vscripts/ui/menu_ns_serverbrowser.nut b/Northstar.Client/mod/scripts/vscripts/ui/menu_ns_serverbrowser.nut
index 3afadc4e..7254f199 100644
--- a/Northstar.Client/mod/scripts/vscripts/ui/menu_ns_serverbrowser.nut
+++ b/Northstar.Client/mod/scripts/vscripts/ui/menu_ns_serverbrowser.nut
@@ -713,14 +713,6 @@ void function FilterServerList()
}
}
-
- printt("Better.Serverbrowser:------------------------")
- printt("Server count: ", NSGetServerCount())
- printt("Filtered count: ", file.serversArrayFiltered.len())
- printt("Total players: ", totalPlayers)
- printt("This message gets shown only on full refresh")
- printt("---------------------------------------------")
-
Hud_SetText( Hud_GetChild( file.menu, "InGamePlayerCount" ), string( totalPlayers ) )
Hud_SetText( Hud_GetChild( file.menu, "TotalServerCount" ), string( NSGetServerCount() ) )
}
diff --git a/Northstar.Custom/mod.json b/Northstar.Custom/mod.json
index 23132642..7b2ad50d 100644
--- a/Northstar.Custom/mod.json
+++ b/Northstar.Custom/mod.json
@@ -344,6 +344,18 @@
"ServerCallback": {
"After": "DisallowedWeapons_Init"
}
+ },
+
+ {
+ "Path": "sh_custom_pilot_collision.gnut",
+ "RunOn": "( CLIENT || SERVER ) && MP",
+ "ClientCallback": {
+ "After": "CustomPilotCollision_InitPlaylistVars"
+ },
+
+ "ServerCallback": {
+ "After": "CustomPilotCollision_InitPlaylistVars"
+ }
}
],
diff --git a/Northstar.Custom/mod/resource/northstar_custom_portuguese.txt b/Northstar.Custom/mod/resource/northstar_custom_portuguese.txt
index 62835f52..f3446f13 100644
--- a/Northstar.Custom/mod/resource/northstar_custom_portuguese.txt
+++ b/Northstar.Custom/mod/resource/northstar_custom_portuguese.txt
@@ -1,69 +1,69 @@
-"lang"
-{
- "Language" "portuguese"
- "Tokens"
- {
- "PL_sbox" "Sandbox"
- "PL_sbox_lobby" "Saguão de Sandbox"
- "PL_sbox_desc" "gmod só que pior"
- "PL_sbox_abbr" "SBOX"
- "GAMEMODE_SBOX" "Sandbox"
-
- "PL_gg" "Gun Game"
- "PL_gg_lobby" "Saguão de Gun Game"
- "PL_gg_desc" "Mate com todas as armas para vencer"
- "PL_gg_abbr" "GG"
- "GAMEMODE_GG" "Gun Game"
-
- "PL_tt" "Titan Tag"
- "PL_tt_lobby" "Saguão de Titan Tag"
- "PL_tt_desc" "Ganhe pontos com seu titã. Destrua um para chamar o seu."
- "PL_tt_abbr" "TT"
- "GAMEMODE_TT" "Titan Tag"
-
- "PL_inf" "Infecção"
- "PL_inf_lobby" "Saguão de Infecção"
- "PL_inf_desc" "Sobreviva à infecção. Sobreviventes são infectados quando mortos."
- "PL_inf_abbr" "INF"
- "GAMEMODE_INF" "Infecção"
- "INFECTION_YOU_ARE_INFECTED" "Você foi infectado!"
- "INFECTION_KILL_SURVIVORS" "Infecte todos os sobreviventes restantes."
- "INFECTION_FIRST_INFECTED" "%s1 é o paciente zero."
- "INFECTION_LAST_SURVIVOR" "%s1 é o último sobrevivente!"
- "INFECTION_KILL_LAST_SURVIVOR" "Infecte eles antes que o tempo acabe!"
- "INFECTION_YOU_ARE_LAST_SURVIVOR" "Você é o último sobrevivente!"
- "INFECTION_SURVIVE_LAST_SURVIVOR" "Sobreviva."
-
- // these are defined in r1_english but titan war is a shit name so i'm changing it to another one that was referenced in development
- "GAMEMODE_fw" "Guerra pela Fronteira"
- "PL_fw" "Guerra pela Fronteira"
- "PL_fw_lobby" "Saguão de Guerra pela Fronteira"
- "PL_fw_desc" "Destrua a colheitadeira do inimigo e proteja a sua"
- "PL_fw_abbr" "FW"
-
- "GAMEMODE_kr" "Corrida de Matança"
- "PL_kr" "Corrida de Matança"
- "PL_kr_lobby" "Saguão de Matança"
- "PL_kr_desc" "Acabe com inimigos para aumentar sua matança. Capture a bandeira para começar. Vença matando mais."
- "PL_kr_abbr" "KR"
- "SCOREBOARD_KR_RECORD" "Recorde de mortes"
- "KR_NEW_RACER" "%s1 é o matador"
- "KR_YOU_ARE_NEW_RACER" "Você é o matador"
- "KR_YOU_SET_NEW_RECORD" "Bateu o recorde!"
- "KR_FLAG_INCOMING" "Bandeira reaparecerá em breve"
- "KR_COLLECT_FLAG" "Capture a bandeira para virar um Matador!"
- "KR_ENEMY_KILLRACE_OVER" "A matança de %s1 acabou"
- "KR_YOUR_KILLRACE_OVER" "Sua matança acabou"
- "KR_YOUR_KILLRACE_SCORE" "Você conseguiu %s1 mortes."
-
- "GAMEMODE_fastball" "Fastball"
- "PL_fastball" "Fastball"
- "PL_fastball_lobby" "Fastball Lobby"
- "PL_fastball_desc" "Sem reaparecimento. Invada painéis de controle para ganhar rounds e reaparecer seus aliados."
- "PL_fastball_abbr" "FB"
- "FASTBALL_PANEL_CAPTURED" "%s1 capturou painel %s2"
- "SCOREBOARD_FASTBALL_HACKS" "Painéis capturados"
-
- "GAMEMODE_ctf_comp" "CTF Competitivo"
- }
-}
+"lang"
+{
+ "Language" "portuguese"
+ "Tokens"
+ {
+ "PL_sbox" "Sandbox"
+ "PL_sbox_lobby" "Saguão de Sandbox"
+ "PL_sbox_desc" "gmod só que pior"
+ "PL_sbox_abbr" "SBOX"
+ "GAMEMODE_SBOX" "Sandbox"
+
+ "PL_gg" "Gun Game"
+ "PL_gg_lobby" "Saguão de Gun Game"
+ "PL_gg_desc" "Mate com todas as armas para vencer"
+ "PL_gg_abbr" "GG"
+ "GAMEMODE_GG" "Gun Game"
+
+ "PL_tt" "Titan Tag"
+ "PL_tt_lobby" "Saguão de Titan Tag"
+ "PL_tt_desc" "Ganhe pontos com seu titã. Destrua um para chamar o seu."
+ "PL_tt_abbr" "TT"
+ "GAMEMODE_TT" "Titan Tag"
+
+ "PL_inf" "Infecção"
+ "PL_inf_lobby" "Saguão de Infecção"
+ "PL_inf_desc" "Sobreviva à infecção. Sobreviventes são infectados quando mortos."
+ "PL_inf_abbr" "INF"
+ "GAMEMODE_INF" "Infecção"
+ "INFECTION_YOU_ARE_INFECTED" "Você foi infectado!"
+ "INFECTION_KILL_SURVIVORS" "Infecte todos os sobreviventes restantes."
+ "INFECTION_FIRST_INFECTED" "%s1 é o paciente zero."
+ "INFECTION_LAST_SURVIVOR" "%s1 é o último sobrevivente!"
+ "INFECTION_KILL_LAST_SURVIVOR" "Infecte eles antes que o tempo acabe!"
+ "INFECTION_YOU_ARE_LAST_SURVIVOR" "Você é o último sobrevivente!"
+ "INFECTION_SURVIVE_LAST_SURVIVOR" "Sobreviva."
+
+ // these are defined in r1_english but titan war is a shit name so i'm changing it to another one that was referenced in development
+ "GAMEMODE_fw" "Guerra pela Fronteira"
+ "PL_fw" "Guerra pela Fronteira"
+ "PL_fw_lobby" "Saguão de Guerra pela Fronteira"
+ "PL_fw_desc" "Destrua a colheitadeira do inimigo e proteja a sua"
+ "PL_fw_abbr" "FW"
+
+ "GAMEMODE_kr" "Corrida de Matança"
+ "PL_kr" "Corrida de Matança"
+ "PL_kr_lobby" "Saguão de Matança"
+ "PL_kr_desc" "Acabe com inimigos para aumentar sua matança. Capture a bandeira para começar. Vença matando mais."
+ "PL_kr_abbr" "KR"
+ "SCOREBOARD_KR_RECORD" "Recorde de mortes"
+ "KR_NEW_RACER" "%s1 é o matador"
+ "KR_YOU_ARE_NEW_RACER" "Você é o matador"
+ "KR_YOU_SET_NEW_RECORD" "Bateu o recorde!"
+ "KR_FLAG_INCOMING" "Bandeira reaparecerá em breve"
+ "KR_COLLECT_FLAG" "Capture a bandeira para virar um Matador!"
+ "KR_ENEMY_KILLRACE_OVER" "A matança de %s1 acabou"
+ "KR_YOUR_KILLRACE_OVER" "Sua matança acabou"
+ "KR_YOUR_KILLRACE_SCORE" "Você conseguiu %s1 mortes."
+
+ "GAMEMODE_fastball" "Fastball"
+ "PL_fastball" "Fastball"
+ "PL_fastball_lobby" "Fastball Lobby"
+ "PL_fastball_desc" "Sem reaparecimento. Invada painéis de controle para ganhar rounds e reaparecer seus aliados."
+ "PL_fastball_abbr" "FB"
+ "FASTBALL_PANEL_CAPTURED" "%s1 capturou painel %s2"
+ "SCOREBOARD_FASTBALL_HACKS" "Painéis capturados"
+
+ "GAMEMODE_ctf_comp" "CTF Competitivo"
+ }
+}
diff --git a/Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_inf.gnut b/Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_inf.gnut
index a0e0b743..2ccd46ba 100644
--- a/Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_inf.gnut
+++ b/Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_inf.gnut
@@ -30,7 +30,7 @@ void function InfectionInitPlayer( entity player )
if ( GetGameState() < eGameState.Playing )
SetTeam( player, INFECTION_TEAM_SURVIVOR )
else
- InfectPlayer( player )
+ InfectPlayer( player, player )
}
void function SelectFirstInfected()
@@ -45,23 +45,23 @@ void function SelectFirstInfectedDelayed()
array<entity> players = GetPlayerArray()
entity infected = players[ RandomInt( players.len() ) ]
- InfectPlayer( infected )
+ InfectPlayer( infected, infected )
RespawnInfected( infected )
}
void function InfectionOnPlayerKilled( entity victim, entity attacker, var damageInfo )
{
- if ( !victim.IsPlayer() || GetGameState() != eGameState.Playing )
+ if ( !victim.IsPlayer() || !attacker.IsPlayer() || GetGameState() != eGameState.Playing )
return
if ( victim.GetTeam() == INFECTION_TEAM_SURVIVOR )
- InfectPlayer( victim )
+ InfectPlayer( victim, attacker )
if ( attacker.IsPlayer() )
attacker.SetPlayerGameStat( PGS_ASSAULT_SCORE, attacker.GetPlayerGameStat( PGS_ASSAULT_SCORE ) + 1 )
}
-void function InfectPlayer( entity player )
+void function InfectPlayer( entity player, entity attacker )
{
SetTeam( player, INFECTION_TEAM_INFECTED )
player.SetPlayerGameStat( PGS_ASSAULT_SCORE, 0 ) // reset kills
@@ -70,7 +70,12 @@ void function InfectPlayer( entity player )
// check how many survivors there are
array<entity> survivors = GetPlayerArrayOfTeam( INFECTION_TEAM_SURVIVOR )
if ( survivors.len() == 0 )
+ {
+ SetRespawnsEnabled( false )
+ SetKillcamsEnabled( false )
+ SetRoundWinningKillReplayAttacker(attacker)
SetWinner( INFECTION_TEAM_INFECTED )
+ }
else if ( survivors.len() == 1 && !file.hasHadLastInfection )
SetLastSurvivor( survivors[ 0 ] )
@@ -183,8 +188,14 @@ void function SetLastSurvivor( entity player )
int function TimeoutCheckSurvivors()
{
- if ( GetPlayerArrayOfTeam( INFECTION_TEAM_SURVIVOR ).len() > 0 )
+ array<entity> survivors = GetPlayerArrayOfTeam( INFECTION_TEAM_SURVIVOR )
+ if ( survivors.len() > 0 )
+ {
+ SetRespawnsEnabled( false )
+ SetKillcamsEnabled( false )
+ SetRoundWinningKillReplayAttacker(survivors[ 0 ])
return INFECTION_TEAM_SURVIVOR
+ }
return INFECTION_TEAM_INFECTED
}
diff --git a/Northstar.Custom/mod/scripts/vscripts/sh_custom_pilot_collision.gnut b/Northstar.Custom/mod/scripts/vscripts/sh_custom_pilot_collision.gnut
new file mode 100644
index 00000000..b33a4c02
--- /dev/null
+++ b/Northstar.Custom/mod/scripts/vscripts/sh_custom_pilot_collision.gnut
@@ -0,0 +1,32 @@
+global function CustomPilotCollision_InitPlaylistVars
+
+void function CustomPilotCollision_InitPlaylistVars()
+{
+ AddPrivateMatchModeSettingEnum( "#MODE_SETTING_CATEGORY_PILOT", "no_pilot_collision", [ "#SETTING_DISABLED", "#SETTING_ENABLED" ], "0" )
+
+#if SERVER
+ AddCallback_OnPlayerRespawned( SetPilotCollisionFlagsForRespawn )
+ AddCallback_OnPilotBecomesTitan( PilotCollisionOnPilotBecomesTitan )
+ AddCallback_OnTitanBecomesPilot( PilotCollisionOnTitanBecomesPilot )
+#endif
+}
+
+#if SERVER
+void function SetPilotCollisionFlagsForRespawn( entity player )
+{
+ if ( GetCurrentPlaylistVarInt( "no_pilot_collision", 0 ) == 1 )
+ player.kv.CollisionGroup = TRACE_COLLISION_GROUP_BLOCK_WEAPONS
+}
+
+void function PilotCollisionOnPilotBecomesTitan( entity player, entity titan )
+{
+ if ( GetCurrentPlaylistVarInt( "no_pilot_collision", 0 ) == 1 )
+ player.kv.CollisionGroup = TRACE_COLLISION_GROUP_PLAYER
+}
+
+void function PilotCollisionOnTitanBecomesPilot( entity player, entity titan )
+{
+ if ( GetCurrentPlaylistVarInt( "no_pilot_collision", 0 ) == 1 )
+ player.kv.CollisionGroup = TRACE_COLLISION_GROUP_BLOCK_WEAPONS
+}
+#endif \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/burnmeter/_burnmeter.gnut b/Northstar.CustomServers/mod/scripts/vscripts/burnmeter/_burnmeter.gnut
index 3eb6bda6..6d13c75b 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/burnmeter/_burnmeter.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/burnmeter/_burnmeter.gnut
@@ -34,13 +34,15 @@ void function BurnMeter_Init()
// setup burncard use funcs
BurnReward_GetByRef( "burnmeter_amped_weapons" ).rewardAvailableCallback = PlayerUsesAmpedWeaponsBurncard
BurnReward_GetByRef( "burnmeter_smart_pistol" ).rewardAvailableCallback = PlayerUsesSmartPistolBurncard
- BurnReward_GetByRef( "burnmeter_emergency_battery" ).rewardAvailableCallback = PlayerUsesBatteryBurncard
+ BurnReward_GetByRef( "burnmeter_emergency_battery" ).rewardAvailableCallback = Burnmeter_EmergencyBattery
BurnReward_GetByRef( "burnmeter_radar_jammer" ).rewardAvailableCallback = PlayerUsesRadarJammerBurncard
BurnReward_GetByRef( "burnmeter_maphack" ).rewardAvailableCallback = PlayerUsesMaphackBurncard
BurnReward_GetByRef( "burnmeter_phase_rewind" ).rewardAvailableCallback = PlayerUsesPhaseRewindBurncard
// these ones aren't so important, they're either for fd ( unsupported rn ) or unused
- //BurnReward_GetByRef( "burnmeter_harvester_shield" ).rewardAvailableCallback =
+ BurnReward_GetByRef( "burnmeter_harvester_shield" ).rewardAvailableCallback = PlayerUsesHarvesterShieldBurncard
+ BurnReward_GetByRef( "burnmeter_amped_weapons_permanent" ).rewardAvailableCallback = PlayerUsesPermanentAmpedWeaponsBurncard
+ BurnReward_GetByRef( "burnmeter_instant_battery" ).rewardAvailableCallback = Burnmeter_AmpedBattery
BurnReward_GetByRef( "burnmeter_rodeo_grenade" ).rewardAvailableCallback = PlayerUsesRodeoGrenadeBurncard
BurnReward_GetByRef( "burnmeter_nuke_titan" ).rewardAvailableCallback = PlayerUsesNukeTitanBurncard // unused in vanilla, fun though
@@ -185,9 +187,13 @@ void function PhaseRewindLifetime( entity player )
void function RunBurnCardUseFunc( entity player, string itemRef )
{
+ print( itemRef )
+
void functionref( entity ) ornull func = BurnReward_GetByRef( itemRef ).rewardAvailableCallback
if ( func != null )
( expect void functionref( entity ) ( func ) )( player )
+ else
+ print( "tried to call usefunc for burncard " + itemRef + ", but func did not exist!" )
}
void function UseBurnCardWeapon( entity weapon, entity player )
@@ -214,6 +220,19 @@ void function UseBurnCardWeaponInCriticalSection( entity weapon, entity ownerPla
void function BurnMeter_GiveRewardDirect( entity player, string itemRef )
{
+ BurnReward burncard = BurnReward_GetByRef( itemRef )
+
+ array<string> mods = [ "burn_card_weapon_mod" ]
+ if ( burncard.extraWeaponMod != "" )
+ mods.append( burncard.extraWeaponMod )
+
+ // ensure inventory slot isn't full to avoid crash
+ entity preexistingWeapon = player.GetOffhandWeapon( OFFHAND_INVENTORY )
+ if ( IsValid( preexistingWeapon ) )
+ player.TakeWeaponNow( preexistingWeapon.GetWeaponClassName() )
+
+ player.GiveOffhandWeapon( burncard.weaponName, OFFHAND_INVENTORY, mods )
+ Remote_CallFunction_Replay( player, "ServerCallback_RewardReadyMessage", player.s.respawnTime )
}
@@ -294,11 +313,6 @@ void function PlayerUsesSmartPistolBurncard( entity player )
// do we need to track the player losing smart pistol, then give their old weapon back? idk not implementing for now, check later
}
-void function PlayerUsesBatteryBurncard( entity player )
-{
- Rodeo_GiveBatteryToPlayer( player )
-}
-
void function PlayerUsesRadarJammerBurncard( entity player )
{
foreach ( entity otherPlayer in GetPlayerArray() )
@@ -425,6 +439,35 @@ void function PlayerUsesNukeBurncardThreaded( entity player )
PlayerEarnMeter_SetOwnedFrac( player, ownedFrac )
}
+void function PlayerUsesPermanentAmpedWeaponsBurncard( entity player )
+{
+ array<entity> weapons = player.GetMainWeapons()
+ //weapons.extend( player.GetOffhandWeapons() ) // idk? unsure of vanilla behaviour here
+ foreach ( entity weapon in weapons )
+ {
+ weapon.RemoveMod( "silencer" ) // both this and the burnmod will override firing fx, if a second one overrides this we crash
+ foreach ( string mod in GetWeaponBurnMods( weapon.GetWeaponClassName() ) )
+ {
+ // catch incompatibilities just in case
+ try
+ {
+ weapon.AddMod( mod )
+ }
+ catch( ex )
+ {
+ weapons.removebyvalue( weapon )
+ }
+ }
+
+ weapon.SetScriptFlags0( weapon.GetScriptFlags0() | WEAPONFLAG_AMPED )
+ }
+}
+
+void function PlayerUsesHarvesterShieldBurncard( entity player )
+{
+ player.SetPlayerNetInt( "numHarvesterShieldBoost", player.GetPlayerNetInt( "numHarvesterShieldBoost" ) + 1 )
+}
+
void function PlayerUsesRodeoGrenadeBurncard( entity player )
{
player.SetPlayerNetInt( "numSuperRodeoGrenades", player.GetPlayerNetInt( "numSuperRodeoGrenades" ) + 1 )
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/earn_meter/sv_earn_meter_mp.gnut b/Northstar.CustomServers/mod/scripts/vscripts/earn_meter/sv_earn_meter_mp.gnut
index 6682807b..4c42a825 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/earn_meter/sv_earn_meter_mp.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/earn_meter/sv_earn_meter_mp.gnut
@@ -166,18 +166,8 @@ void function EarnMeterMP_BoostEarned( entity player )
while ( burncard.ref == "burnmeter_random_foil" )
burncard = BurnReward_GetRandom()
-
- array<string> mods = [ "burn_card_weapon_mod" ]
- if ( burncard.extraWeaponMod != "" )
- mods.append( burncard.extraWeaponMod )
-
- // ensure inventory slot isn't full to avoid crash
- entity preexistingWeapon = player.GetOffhandWeapon( OFFHAND_INVENTORY )
- if ( IsValid( preexistingWeapon ) )
- player.TakeWeaponNow( preexistingWeapon.GetWeaponClassName() )
-
- player.GiveOffhandWeapon( burncard.weaponName, OFFHAND_INVENTORY, mods )
- Remote_CallFunction_Replay( player, "ServerCallback_RewardReadyMessage", player.s.respawnTime )
+
+ BurnMeter_GiveRewardDirect( player, burncard.ref )
}
void function EarnMeterMP_TitanEarned( entity player )
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_fd.nut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_fd.nut
index b5f700e5..8a6b8bf0 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_fd.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_fd.nut
@@ -3,7 +3,7 @@ global function RateSpawnpoints_FD
void function GamemodeFD_Init()
{
-
+ PrecacheModel( MODEL_ATTRITION_BANK )
}
void function RateSpawnpoints_FD(int _0, array<entity> _1, int _2, entity _3)
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/mp/_classic_mp_dropship_intro.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_classic_mp_dropship_intro.gnut
index 8e624c14..1e19abd3 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/mp/_classic_mp_dropship_intro.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_classic_mp_dropship_intro.gnut
@@ -86,7 +86,7 @@ void function OnPrematchStart()
foreach ( entity dropshipSpawn in validDropshipSpawns )
{
// todo: possibly make this only spawn dropships if we've got enough players to need them
- int createTeam = HasSwitchedSides() ? dropshipSpawn.GetTeam() : GetOtherTeam( dropshipSpawn.GetTeam() )
+ int createTeam = HasSwitchedSides() ? GetOtherTeam( dropshipSpawn.GetTeam() ) : dropshipSpawn.GetTeam()
array<IntroDropship> teamDropships = createTeam == TEAM_MILITIA ? file.militiaDropships : file.imcDropships
if ( teamDropships.len() >= 2 )
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/mp/_gamestate_mp.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_gamestate_mp.nut
index 63ecbf68..598b4522 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/mp/_gamestate_mp.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_gamestate_mp.nut
@@ -39,7 +39,9 @@ struct {
bool roundWinningKillReplayTrackPilotKills = true
bool roundWinningKillReplayTrackTitanKills = false
-
+
+ bool gameWonThisFrame
+ bool hasKillForGameWonThisFrame
float roundWinningKillReplayTime
entity roundWinningKillReplayVictim
entity roundWinningKillReplayAttacker
@@ -282,7 +284,7 @@ void function GameStateEnter_WinnerDetermined_Threaded()
entity replayAttacker = file.roundWinningKillReplayAttacker
bool doReplay = Replay_IsEnabled() && IsRoundWinningKillReplayEnabled() && IsValid( replayAttacker )
- && Time() - file.roundWinningKillReplayTime <= ROUND_WINNING_KILL_REPLAY_LENGTH_OF_REPLAY
+ && Time() - file.roundWinningKillReplayTime <= ROUND_WINNING_KILL_REPLAY_LENGTH_OF_REPLAY && winningTeam != TEAM_UNASSIGNED
float replayLength = 2.0 // extra delay if no replay
if ( doReplay )
@@ -541,12 +543,22 @@ void function ForceFadeToBlack( entity player )
void function OnPlayerKilled( entity victim, entity attacker, var damageInfo )
{
if ( !GamePlayingOrSuddenDeath() )
- return
+ {
+ if ( file.gameWonThisFrame )
+ {
+ if ( file.hasKillForGameWonThisFrame )
+ return
+ }
+ else
+ return
+ }
// set round winning killreplay info here if we're tracking pilot kills
// todo: make this not count environmental deaths like falls, unsure how to prevent this
if ( file.roundWinningKillReplayTrackPilotKills && victim != attacker && attacker != svGlobal.worldspawn && IsValid( attacker ) )
{
+ if ( file.gameWonThisFrame )
+ file.hasKillForGameWonThisFrame = true
file.roundWinningKillReplayTime = Time()
file.roundWinningKillReplayVictim = victim
file.roundWinningKillReplayAttacker = attacker
@@ -555,6 +567,12 @@ void function OnPlayerKilled( entity victim, entity attacker, var damageInfo )
file.roundWinningKillReplayHealthFrac = GetHealthFrac( attacker )
}
+ if ( ( Riff_EliminationMode() == eEliminationMode.Titans || Riff_EliminationMode() == eEliminationMode.PilotsTitans ) && victim.IsTitan() ) // need an extra check for this
+ OnTitanKilled( victim, damageInfo )
+
+ if ( !GamePlayingOrSuddenDeath() )
+ return
+
// note: pilotstitans is just win if enemy team runs out of either pilots or titans
if ( IsPilotEliminationBased() || GetGameState() == eGameState.SuddenDeath )
{
@@ -579,21 +597,28 @@ void function OnPlayerKilled( entity victim, entity attacker, var damageInfo )
SetWinner( GetOtherTeam( victim.GetTeam() ), "#GAMEMODE_ENEMY_PILOTS_ELIMINATED", "#GAMEMODE_FRIENDLY_PILOTS_ELIMINATED" )
}
}
-
- if ( ( Riff_EliminationMode() == eEliminationMode.Titans || Riff_EliminationMode() == eEliminationMode.PilotsTitans ) && victim.IsTitan() ) // need an extra check for this
- OnTitanKilled( victim, damageInfo )
}
void function OnTitanKilled( entity victim, var damageInfo )
{
if ( !GamePlayingOrSuddenDeath() )
- return
+ {
+ if ( file.gameWonThisFrame )
+ {
+ if ( file.hasKillForGameWonThisFrame )
+ return
+ }
+ else
+ return
+ }
// set round winning killreplay info here if we're tracking titan kills
// todo: make this not count environmental deaths like falls, unsure how to prevent this
entity attacker = DamageInfo_GetAttacker( damageInfo )
if ( file.roundWinningKillReplayTrackTitanKills && victim != attacker && attacker != svGlobal.worldspawn && IsValid( attacker ) )
{
+ if ( file.gameWonThisFrame )
+ file.hasKillForGameWonThisFrame = true
file.roundWinningKillReplayTime = Time()
file.roundWinningKillReplayVictim = victim
file.roundWinningKillReplayAttacker = attacker
@@ -601,6 +626,9 @@ void function OnTitanKilled( entity victim, var damageInfo )
file.roundWinningKillReplayTimeOfDeath = Time()
file.roundWinningKillReplayHealthFrac = GetHealthFrac( attacker )
}
+
+ if ( !GamePlayingOrSuddenDeath() )
+ return
// note: pilotstitans is just win if enemy team runs out of either pilots or titans
if ( IsTitanEliminationBased() )
@@ -706,12 +734,16 @@ void function SetRoundWinningKillReplayAttacker( entity attacker )
file.roundWinningKillReplayTime = Time()
file.roundWinningKillReplayHealthFrac = GetHealthFrac( attacker )
file.roundWinningKillReplayAttacker = attacker
+ file.roundWinningKillReplayTimeOfDeath = Time()
}
void function SetWinner( int team, string winningReason = "", string losingReason = "" )
{
SetServerVar( "winningTeam", team )
+ file.gameWonThisFrame = true
+ thread UpdateGameWonThisFrameNextFrame()
+
if ( winningReason.len() == 0 )
file.announceRoundWinnerWinningSubstr = 0
else
@@ -739,6 +771,13 @@ void function SetWinner( int team, string winningReason = "", string losingReaso
}
}
+void function UpdateGameWonThisFrameNextFrame()
+{
+ WaitFrame()
+ file.gameWonThisFrame = false
+ file.hasKillForGameWonThisFrame = false
+}
+
void function AddTeamScore( int team, int amount )
{
GameRules_SetTeamScore( team, GameRules_GetTeamScore( team ) + amount )
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_wargames.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_wargames.nut
index 92307f3c..11587947 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_wargames.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_wargames.nut
@@ -104,7 +104,8 @@ void function OnPrematchStart()
entity militiaIon = CreatePropDynamic( $"models/titans/medium/titan_medium_ajax.mdl", < -1809.98, 2790.39, -1409 >, < 0, 80, 0 > )
thread PlayAnim( militiaIon, "at_titan_activation_wargames_intro" )
-
+ militiaIon.Anim_SetInitialTime( 4.5 )
+
entity militiaPilot = CreateElitePilot( TEAM_UNASSIGNED, < 0, 0, 0 >, < 0, 0, 0 > )
DispatchSpawn( militiaPilot )
militiaPilot.SetParent( militiaIon, "HIJACK" )
@@ -116,7 +117,6 @@ void function OnPrematchStart()
DispatchSpawn( militiaMarvinChillin )
thread PlayAnim( militiaMarvinChillin, "mv_idle_unarmed" )
-
// imc grunts
entity imcGrunt1 = CreatePropDynamic( $"models/humans/grunts/imc_grunt_rifle.mdl", < -2915, 2867, -1788 >, < 0, -137, 0 > )
thread PlayAnim( imcGrunt1, "pt_console_idle" )
@@ -188,6 +188,7 @@ void function PlayerWatchesWargamesIntro( entity player )
player.kv.VisibilityFlags = ENTITY_VISIBLE_TO_EVERYONE
ClearPlayerAnimViewEntity( player )
player.EnableWeaponViewModel()
+ DeployAndEnableWeapons(player)
player.ClearParent()
player.UnforceStand()
player.MovementEnable()
@@ -224,15 +225,16 @@ void function PlayerWatchesWargamesIntro( entity player )
player.kv.VisibilityFlags = ENTITY_VISIBLE_TO_OWNER
TrainingPod_ViewConeLock_PodClosed( player )
player.DisableWeaponViewModel()
+ HolsterAndDisableWeapons(player)
player.MovementDisable()
player.SetInvulnerable()
- // spawn faction leader
- // no clue why client subtracts 4.5 from the time we give this, so just add it here instead
- if ( factionTeam == TEAM_IMC )
- Remote_CallFunction_NonReplay( player, "ServerCallback_SpawnIMCFactionLeaderForIntro", file.introStartTime + 4.5, playerPod.GetEncodedEHandle() )
+ if ( factionTeam == TEAM_MILITIA && GetFactionChoice( player ) == "faction_marvin" )
+ Remote_CallFunction_NonReplay( player, "ServerCallback_SpawnMilitiaFactionLeaderForIntro", file.introStartTime, playerPod.GetEncodedEHandle() )
+ else if ( factionTeam == TEAM_MILITIA )
+ Remote_CallFunction_NonReplay( player, "ServerCallback_SpawnMilitiaFactionLeaderForIntro", file.introStartTime + 1.75, playerPod.GetEncodedEHandle() )
else
- Remote_CallFunction_NonReplay( player, "ServerCallback_SpawnMilitiaFactionLeaderForIntro", file.introStartTime + 4.5, playerPod.GetEncodedEHandle() )
+ Remote_CallFunction_NonReplay( player, "ServerCallback_SpawnIMCFactionLeaderForIntro", file.introStartTime + 4.5, playerPod.GetEncodedEHandle() )
// idle pod sequence
FirstPersonSequenceStruct podIdleSequence