aboutsummaryrefslogtreecommitdiff
path: root/Northstar.Client
diff options
context:
space:
mode:
authorEmma Miler <27428383+emma-miler@users.noreply.github.com>2022-03-27 00:45:23 +0100
committerGitHub <noreply@github.com>2022-03-27 00:45:23 +0100
commit3e7186801d70e50a9135b897ef572076fe442cf4 (patch)
tree80e535d881b8e90a5c4e3b2c2b8ac733ba163c84 /Northstar.Client
parentbd102d798a0b9db2dcbd6bd4045fb84c53fc031a (diff)
downloadNorthstarMods-3e7186801d70e50a9135b897ef572076fe442cf4.tar.gz
NorthstarMods-3e7186801d70e50a9135b897ef572076fe442cf4.zip
Add mod code for updating state for discord RPC (#274)v1.6.0-rc3
Diffstat (limited to 'Northstar.Client')
-rw-r--r--Northstar.Client/mod.json13
-rw-r--r--Northstar.Client/mod/resource/northstar_client_localisation_french.txt6
-rw-r--r--Northstar.Client/mod/resource/northstar_client_localisation_german.txt4
-rw-r--r--Northstar.Client/mod/resource/northstar_client_localisation_italian.txt4
-rw-r--r--Northstar.Client/mod/resource/northstar_client_localisation_japanese.txt267
-rw-r--r--Northstar.Client/mod/resource/northstar_client_localisation_portuguese.txt4
-rw-r--r--Northstar.Client/mod/resource/northstar_client_localisation_russian.txt246
-rw-r--r--Northstar.Client/mod/resource/northstar_client_localisation_tchinese.txt4
-rw-r--r--Northstar.Client/mod/scripts/vscripts/chat.gnut12
-rw-r--r--Northstar.Client/mod/scripts/vscripts/state_client.nut48
-rw-r--r--Northstar.Client/mod/scripts/vscripts/state_ui.nut29
-rw-r--r--Northstar.Client/mod/scripts/vscripts/ui/menu_lobby.nut2
-rw-r--r--Northstar.Client/mod/scripts/vscripts/ui/menu_main.nut16
-rw-r--r--Northstar.Client/mod/scripts/vscripts/ui/menu_ns_serverbrowser.nut14
-rw-r--r--Northstar.Client/mod/scripts/vscripts/ui/panel_mainmenu.nut7
-rw-r--r--Northstar.Client/mod/scripts/vscripts/ui/ui_vscript.gnut352
16 files changed, 1008 insertions, 20 deletions
diff --git a/Northstar.Client/mod.json b/Northstar.Client/mod.json
index ad850752..5b4d11b4 100644
--- a/Northstar.Client/mod.json
+++ b/Northstar.Client/mod.json
@@ -54,14 +54,21 @@
}
},
{
- "Path": "ui/menu_ns_serverbrowser.nut",
+ "Path": "state_ui.nut",
"RunOn": "UI",
"UICallback": {
- "Before": "AddNorthstarServerBrowserMenu"
+ "After": "NSUpdateGameStateUIStart"
}
},
{
- "Path": "ui/menu_ns_connect_password.nut",
+ "Path": "state_client.nut",
+ "RunOn": "CLIENT",
+ "ClientCallback": {
+ "After": "NSUpdateGameStateClientStart"
+ }
+ },
+ {
+ "Path": "ui/menu_ns_serverbrowser.nut",
"RunOn": "UI",
"UICallback": {
"Before": "AddNorthstarConnectWithPasswordMenu"
diff --git a/Northstar.Client/mod/resource/northstar_client_localisation_french.txt b/Northstar.Client/mod/resource/northstar_client_localisation_french.txt
index aabfcafb..8ad8b1c7 100644
--- a/Northstar.Client/mod/resource/northstar_client_localisation_french.txt
+++ b/Northstar.Client/mod/resource/northstar_client_localisation_french.txt
@@ -299,8 +299,12 @@ Choisissez Oui si vous êtes d'accord. Ce choix peut être modifié à tout inst
"SHOW_ALL" "Tous"
"SHOW_ONLY_ENABLED" "Mods activés"
"SHOW_ONLY_DISABLED" "Mods désactivés"
-
+
// Maps menu
"HIDE_LOCKED" "Cacher les cartes verrouillées"
+
+ // In-game chat
+ "HUD_CHAT_WHISPER_PREFIX" "[WHISPER]"
+ "HUD_CHAT_SERVER_PREFIX" "[SERVER]"
}
}
diff --git a/Northstar.Client/mod/resource/northstar_client_localisation_german.txt b/Northstar.Client/mod/resource/northstar_client_localisation_german.txt
index db66633d..2b5d2011 100644
--- a/Northstar.Client/mod/resource/northstar_client_localisation_german.txt
+++ b/Northstar.Client/mod/resource/northstar_client_localisation_german.txt
@@ -265,5 +265,9 @@ Drücke Ja, um zuzustimmen. Du kannst diese Entscheidung jederzeit im Modmenü
"CONNECTING" "Verbinde..."
"INGAME_PLAYERS" "Spieler: ^6BA6C400%s1"
"TOTAL_SERVERS" "Server: ^C46C6C00%s1"
+
+ // In-game chat
+ "HUD_CHAT_WHISPER_PREFIX" "[WHISPER]"
+ "HUD_CHAT_SERVER_PREFIX" "[SERVER]"
}
}
diff --git a/Northstar.Client/mod/resource/northstar_client_localisation_italian.txt b/Northstar.Client/mod/resource/northstar_client_localisation_italian.txt
index afc40cc2..897d2ba5 100644
--- a/Northstar.Client/mod/resource/northstar_client_localisation_italian.txt
+++ b/Northstar.Client/mod/resource/northstar_client_localisation_italian.txt
@@ -256,5 +256,9 @@ Premi Sì se sei d'accordo. Questa scelta può essere modificata in qualsiasi mo
"INGAME_PLAYERS" "Players: ^6BA6C400%s1"
"TOTAL_SERVERS" "Server: ^C46C6C00%s1"
+
+ // In-game chat
+ "HUD_CHAT_WHISPER_PREFIX" "[WHISPER]"
+ "HUD_CHAT_SERVER_PREFIX" "[SERVER]"
}
}
diff --git a/Northstar.Client/mod/resource/northstar_client_localisation_japanese.txt b/Northstar.Client/mod/resource/northstar_client_localisation_japanese.txt
index d8760467..08772933 100644
--- a/Northstar.Client/mod/resource/northstar_client_localisation_japanese.txt
+++ b/Northstar.Client/mod/resource/northstar_client_localisation_japanese.txt
@@ -1 +1,266 @@
-"lang" { "Language" "japanese" "Tokens" { "MENU_LAUNCH_NORTHSTAR" "Northstarを起動" "MENU_TITLE_MODS" "Modの管理" "RELOAD_MODS" "Modをリロード" "MENU_MAIN_AUTHENTICATING" "認証中..." "MENU_MAIN_CONNECTING" "ローカルサーバーへの接続" "DIALOG_TITLE_INSTALLED_NORTHSTAR" "Northstarをインストールしていただきありがとうございます!" "AUTHENTICATION_AGREEMENT_DIALOG_TEXT" "Northstarが動作するために、Northstarのマスターサーバーで認証を行う必要があります。認証を行うとあなたのOriginトークンがNorthstarのマスターサーバーに送信されます。これは保存されたり、認証以外の用途に使用されることはありません。「はい」を押すと認証を開始します。これはModメニューでいつでも変更できます。" // 要議論: "認証への同意" は別のテキストに差し替える必要があるかも "BACK_AUTHENTICATION_AGREEMENT" "認証への同意" "AUTHENTICATION_AGREEMENT" "認証への同意" "AUTHENTICATION_AGREEMENT_RESTART" "変更を適用するには、一度Titanfall 2を再起動する必要があります。" "MENU_TITLE_SERVER_BROWSER" "サーバーブラウザー" "NS_SERVERBROWSER_NOSERVERS" "サーバーが見つかりませんでした。" "NS_SERVERBROWSER_WAITINGFORSERVERS" "サーバーを待っています..." "NS_SERVERBROWSER_CONNECTIONFAILED" "接続に失敗しました!" // 要議論 "NS_SERVERBROWSER_CONFIRMATIONJOIN" "'%s1'に参加してもよろしいですか?" "NS_SERVERBROWSER_JOIN" "'%s1'に参加しますか?" "NS_SERVERBROWSER_CONFIRMATIONJOIN_ISPASSWORDPROTECTED" "'%s1'に参加してもよろしいですか? \nこのサーバーはパスワードで保護されています。" "NS_SERVERBROWSER_CONNECTING" "マッチに接続中..." "REFRESH_SERVERS" "更新" "MENU_TITLE_CONNECT_PASSWORD" "パスワードで接続" "MENU_CONNECT_MENU_CONNECT" "接続" "PRIVATE_MATCH_PAGE_PREV" "前のページ" "PRIVATE_MATCH_PAGE_NEXT" "次のページ" "MENU_MATCH_SETTINGS" "マッチの設定" "MENU_MATCH_SETTINGS_SUBMENU" "%s1 の設定" "PRIVATE_MATCH_SINGLEPLAYER_LEVEL" "%s1 (シングルプレイヤー)" "PL_fra_hint" "1人きりの戦いに挑戦。敵を倒せば勝利だ。バッテリーを3個回収し、タイタンフォールを要請せよ。" // mode settings "MODE_SETTING_CATEGORY_PILOT" "パイロット" "MODE_SETTING_CATEGORY_TITAN" "タイタン" "MODE_SETTING_CATEGORY_RIFF" "エクストラ" "MODE_SETTING_CATEGORY_MATCH" "マッチ" // controls //要議論: "コンソールの表示/非表示"のままか、"コンソール表示のトグル"、それ以外への差し替え "TOGGLE_CONSOLE" "コンソールの表示/非表示" "classic_mp" "クラシックマルチ" "run_epilogue" "エピローグの有効化" "scorelimit" "スコア上限" "roundscorelimit" "スコア上限 (ラウンドベース)" // 要議論: "時間制限"のままか、"マッチ時間"、"タイム上限"、それ以外への差し替え "timelimit" "時間制限" "roundtimelimit" "時間制限 (ラウンドベース)" "pilot_health_multiplier" "ヘルス倍率" // 要議論: "リスポーン遅延" のままか、"リスポーンまでの時間"、それ以外への差し替え "respawn_delay" "リスポーン遅延" "boosts_enabled" "ブースト" // 長いのでなんとかしたい "earn_meter_pilot_overdrive" "ブーストメーターオーバードライブ" "earn_meter_pilot_multiplier" "ブーストメーター倍率" "earn_meter_titan_multiplier" "タイタンブーストメーター倍率" // 仮翻訳: "イージスアップグレード","無限ドームの状態","シールド再生" "aegis_upgrades" "イージスアップグレード" "infinite_doomed_state" "無限ドゥームの状態" "titan_shield_regen" "シールド再生" "riff_floorislava" "デッドリー・グラウンド" "featured_mode_all_holopilot" "華麗なる謀略" "featured_mode_all_grapple" "進撃のタイタンフォール" "featured_mode_all_phase" "異次元" "featured_mode_all_ticks" "辛口消耗戦" "featured_mode_tactikill" "戦術キル消耗戦" "featured_mode_amped_tacticals" "戦術強化" "featured_mode_rocket_arena" "ロケット・アリーナ" "featured_mode_shotguns_snipers" "危険武装" "iron_rules" "アイロンルール" "cp_amped_capture_points" "拠点増幅" "coliseum_loadouts_enabled" "コロシアムロードアウト" // northstar.custom localisation is just deciding not to work, so putting it here for now "PL_sbox" "サンドボックス" "PL_sbox_lobby" "サンドボックスロビー" "PL_sbox_desc" "サンドボックス" "PL_sbox_abbr" "SBOX" "GAMEMODE_SBOX" "Sandbox" "PL_gg" "ガン・ゲーム" "PL_gg_lobby" "ガン・ゲームロビー" "PL_gg_desc" "全ての銃でキルを取って勝利しろ。" "PL_gg_hint" "全ての銃でキルを取って勝利しろ。" "PL_gg_abbr" "GG" "GAMEMODE_GG" "ガン・ゲーム" "PL_tt" "タイタン・タグ" "PL_tt_lobby" "タイタン・タグロビー" "PL_tt_desc" "タイタンとしてポイントを稼げ。敵のタイタンを破壊し自分のタイタンを確保しろ。" "PL_tt_hint" "タイタンとしてポイントを稼げ。敵のタイタンを破壊し自分のタイタンを確保しろ。" "PL_tt_abbr" "TT" "GAMEMODE_TT" "タイタン・タグ" "PL_inf" "インフェクション" "PL_inf_lobby" "インフェクションロビー" "PL_inf_desc" "生き残りは死亡するとインフェクターになる。" "PL_inf_hint" "生き残りは死亡するとインフェクターになる。" "PL_inf_abbr" "INF" "GAMEMODE_INF" "インフェクション" "INFECTION_YOU_ARE_INFECTED" "お前はインフェクトされた!" "INFECTION_KILL_SURVIVORS" "残りの生存者をインフェクトしろ" "INFECTION_FIRST_INFECTED" "%s1 が最初のインフェクターだ!" "INFECTION_LAST_SURVIVOR" "%s1 が最後の生存者だ!" "INFECTION_KILL_LAST_SURVIVOR" "時間切れの前に最後の生存者をインフェクトしろ!" "INFECTION_YOU_ARE_LAST_SURVIVOR" "お前が最後の生き残りだ!" "INFECTION_SURVIVE_LAST_SURVIVOR" "生きろ" "PL_hs" "ハイド・アンド・シーク" "PL_hs_lobby" "ハイド・アンド・シークロビー" "PL_hs_desc" "ハイダーは隠れ、シーカーはハイダーを探せ!" "PL_hs_hint" "ハイダーは隠れ、シーカーはハイダーを探せ!" "PL_hs_abbr" "HS" "GAMEMODE_hs" "ハイド・アンド・シーク" "HIDEANDSEEK_YOU_ARE_SEEKER" "お前はシーカーになった" "HIDEANDSEEK_SEEKER_DESC" "ハイダーを探し、格闘でしとめろ。\n開始まで %s1 秒" "HIDEANDSEEK_YOU_ARE_HIDER" "お前はハイダーになった" "HIDEANDSEEK_HIDER_DESC" "シーカーから隠れろ" "HIDEANDSEEK_SEEKERS_INCOMING" "間もなくシーカー到来" "HIDEANDSEEK_DONT_GET_FOUND" "見つかるな!" "HIDEANDSEEK_GET_LAST_HIDER" "%s1 が最後のハイダーだ!" "HIDEANDSEEK_YOU_ARE_LAST_HIDER" "お前が最後のハイダーだ!" "HIDEANDSEEK_GOT_STIM" "興奮剤を得た!捕まるな!" "hideandseek_balance_teams" "オートバランス" "hideandseek_hiding_time" "隠れ時間" "GAMEMODE_fw" "フロンティア戦争" "PL_fw" "フロンティア戦争" "PL_fw_lobby" "フロンティア戦争ロビー" "PL_fw_desc" "敵のハーベスターを破壊し、自分のを守れ!" "PL_fw_abbr" "FW" "GAMEMODE_kr" "強化キルレース" "PL_kr" "強化キルレース" "PL_kr_lobby" "強化キルレースロビー" "PL_kr_desc" "旗を拾い、キルレースを開始しろ。キルでポイントを上げ、キルレースの時間を延ばせ。最高ポイント記録が一番高い者が勝利する" "PL_kr_hint" "旗を拾い、キルレースを開始しろ。キルでポイントを上げ、キルレースの時間を延ばせ。最高ポイント記録が一番高い者が勝利する" "PL_kr_abbr" "KR" "SCOREBOARD_KR_RECORD" "キルレース記録" "KR_NEW_RACER" "%s1 が新しいキルレーサーだ!" "KR_YOU_ARE_NEW_RACER" "お前が新しいキルレーサーだ!" "KR_YOU_SET_NEW_RECORD" "新キルレース記録だ!" "KR_FLAG_INCOMING" "間もなく旗出現" "KR_COLLECT_FLAG" "旗を確保しキルレーサーになれ!" "KR_ENEMY_KILLRACE_OVER" "%s1's のキルレースが終わった" "KR_YOUR_KILLRACE_OVER" "キルレース終了" "KR_YOUR_KILLRACE_SCORE" "キルレース記録は %s1" "GAMEMODE_fastball" "ファストボール" "PL_fastball" "ファストボール" "PL_fastball_lobby" "ファストボールロビー" "PL_fastball_desc" "ライブファイア。パネルをハックし、味方を蘇生できる" "PL_fastball_hint" "ライブファイア。パネルをハックし、味方を蘇生できる" "PL_fastball_abbr" "FB" "FASTBALL_PANEL_CAPTURED" "%s1 がパネル%s2を制圧した" "SCOREBOARD_FASTBALL_HACKS" "制圧パネル" "GAMEMODE_ctf_comp" "激化CTF" // mode settings "MODE_SETTING_CATEGORY_PROMODE" "Proモード" // 要議論: Apexなどでは"出血中"になるが、とりあえず"ダウン"で "MODE_SETTING_CATEGORY_BLEEDOUT" "パイロットのダウン" "custom_air_accel_pilot" "空中加速度" "promode_enable" "Proモードの武器" "fp_embark_enabled" "搭乗と処刑の一人称視点" "classic_rodeo" "クラシックロデオ" "oob_timer_enabled" "アウトオブバウンドタイマー" "riff_instagib" "インスタギブモード" "riff_player_bleedout" "パイロットのダウン" "player_bleedout_forceHolster" "ダウン状態では武器をしまう" "player_bleedout_forceDeathOnTeamBleedout" "チーム全員がダウンしたら死亡" // "ダウン状態の時間"は"ダウンから死亡までの時間" としたかったが長すぎるので断念 "player_bleedout_bleedoutTime" "ダウン状態の時間" "player_bleedout_firstAidTime" "応急処置に必要な時間" "player_bleedout_firstAidTimeSelf" "自己蘇生に必要な時間" "player_bleedout_firstAidHealPercent" "応急処置時のヘルス" "player_bleedout_aiBleedingPlayerMissChance" "ダウン時のAI命中率" // 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" "パイロット・ガントレット" "SP_TRAINING_CLASSIC_DESC" "ラスティモーサ大尉の訓練シミュレーション。" "SP_CRASHSITE" "BT-7274" "SP_CRASHSITE_CLASSIC_DESC" "ジャック・クーパーがBT-7274に出会う。" "SP_SEWERS1" "血と錆び" "SP_SEWERS1_CLASSIC_DESC" "クーパーとBTは、アンダーソン少佐との合流を目指して出発する。" "SP_BOOMTOWN_START" "深淵へ" "SP_BOOMTOWN_START_CLASSIC_DESC" "近道で地下を進んだ2人に、予期せぬ事態が発生する。" "SP_HUB_TIMESHIFT" "結果と原因" "SP_HUB_TIMESHIFT_CLASSIC_DESC" "アンダーソン少佐の座標で奇妙な現象が確認された。" "SP_BEACON" "ビーコン" "SP_BEACON_CLASSIC_DESC" "クーパーとBTは生き残った艦隊にIMCの計画を伝えようと試みる。" "SP_TDAY" "火の試練" "SP_TDAY_CLASSIC_DESC" "アークを奪うための総力戦で、クーパーのタイタン操縦技術が試される。" "SP_S2S" "アーク" "SP_S2S_CLASSIC_DESC" "クーパーとBTはアークを求め、激しい追跡劇を繰り広げる。" "SP_SKYWAY_V1" "フォールド・ウェポン" "SP_SKYWAY_V1_CLASSIC_DESC" "BTとクーパーがクーベン・ブリスクに捕まってしまう。" // Better.Serverbrowser "SERVERS_COLUMN" "サーバー" "PLAYERS_COLUMN" "プレイヤー" "MAP_COLUMN" "マップ" "GAMEMODE_COLUMN" "ゲームモード" "LATENCY_COLUMN" "レイテンシー" "SEARCHBAR_LABEL" "検索:" "MAP_FILTER" "マップ" "GAMEMODE_FILTER" "ゲームモード" "HIDE_FULL_FILTER" "満員のサーバーを非表示" "HIDE_EMPTY_FILTER" "参加者のいないサーバーを非表示" "HIDE_PROT_FILTER" "保護されたサーバーを非表示" "SERVER_DESCRIPTION" "概要" "SERVER_MODS" "Mod" "CLEAR_FILTERS" "クリア" "JOIN_BUTTON" "参加" "SWITCH_YES" "はい" "SWITCH_NO" "いいえ" // 要変更: 使われるのはフィルターの表示のみなのでわかりやすさ重視で"全て" としたが、他に使用される箇所が今後できた場合は変更する必要がある "SWITCH_ANY" "全て" "CONNECTING" "接続中..." "INGAME_PLAYERS" "プレイヤー数: ^6BA6C400%s1" "TOTAL_SERVERS" "サーバー数: ^C46C6C00%s1" // Translation done by Zetryox and CYakigasi } } \ No newline at end of file
+"lang"
+{
+ "Language" "japanese"
+ "Tokens"
+ {
+ "MENU_LAUNCH_NORTHSTAR" "Northstarを起動"
+ "MENU_TITLE_MODS" "Modの管理"
+ "RELOAD_MODS" "Modをリロード"
+
+ "MENU_MAIN_AUTHENTICATING" "認証中..."
+ "MENU_MAIN_CONNECTING" "ローカルサーバーへの接続"
+
+ "DIALOG_TITLE_INSTALLED_NORTHSTAR" "Northstarをインストールしていただきありがとうございます!"
+ "AUTHENTICATION_AGREEMENT_DIALOG_TEXT" "Northstarが動作するために、Northstarのマスターサーバーで認証を行う必要があります。認証を行うとあなたのOriginトークンがNorthstarのマスターサーバーに送信されます。これは保存されたり、認証以外の用途に使用されることはありません。「はい」を押すと認証を開始します。これはModメニューでいつでも変更できます。"
+ // 要議論: "認証への同意" は別のテキストに差し替える必要があるかも
+ "BACK_AUTHENTICATION_AGREEMENT" "認証への同意"
+ "AUTHENTICATION_AGREEMENT" "認証への同意"
+ "AUTHENTICATION_AGREEMENT_RESTART" "変更を適用するには、一度Titanfall 2を再起動する必要があります。"
+
+ "MENU_TITLE_SERVER_BROWSER" "サーバーブラウザー"
+ "NS_SERVERBROWSER_NOSERVERS" "サーバーが見つかりませんでした。"
+ "NS_SERVERBROWSER_WAITINGFORSERVERS" "サーバーを待っています..."
+ "NS_SERVERBROWSER_CONNECTIONFAILED" "接続に失敗しました!"
+ // 要議論
+ "NS_SERVERBROWSER_CONFIRMATIONJOIN" "'%s1'に参加してもよろしいですか?"
+ "NS_SERVERBROWSER_JOIN" "'%s1'に参加しますか?"
+ "NS_SERVERBROWSER_CONFIRMATIONJOIN_ISPASSWORDPROTECTED" "'%s1'に参加してもよろしいですか? \nこのサーバーはパスワードで保護されています。"
+ "NS_SERVERBROWSER_CONNECTING" "マッチに接続中..."
+ "REFRESH_SERVERS" "更新"
+
+ "MENU_TITLE_CONNECT_PASSWORD" "パスワードで接続"
+ "MENU_CONNECT_MENU_CONNECT" "接続"
+
+ "PRIVATE_MATCH_PAGE_PREV" "前のページ"
+ "PRIVATE_MATCH_PAGE_NEXT" "次のページ"
+
+ "MENU_MATCH_SETTINGS" "マッチの設定"
+ "MENU_MATCH_SETTINGS_SUBMENU" "%s1 の設定"
+
+
+ "PRIVATE_MATCH_SINGLEPLAYER_LEVEL" "%s1 (シングルプレイヤー)"
+
+
+ "PL_fra_hint" "1人きりの戦いに挑戦。敵を倒せば勝利だ。バッテリーを3個回収し、タイタンフォールを要請せよ。"
+
+ // mode settings
+ "MODE_SETTING_CATEGORY_PILOT" "パイロット"
+ "MODE_SETTING_CATEGORY_TITAN" "タイタン"
+ "MODE_SETTING_CATEGORY_RIFF" "エクストラ"
+ "MODE_SETTING_CATEGORY_MATCH" "マッチ"
+
+ // controls
+ //要議論: "コンソールの表示/非表示"のままか、"コンソール表示のトグル"、それ以外への差し替え
+ "TOGGLE_CONSOLE" "コンソールの表示/非表示"
+
+ "classic_mp" "クラシックマルチ"
+ "run_epilogue" "エピローグの有効化"
+ "scorelimit" "スコア上限"
+ "roundscorelimit" "スコア上限 (ラウンドベース)"
+ // 要議論: "時間制限"のままか、"マッチ時間"、"タイム上限"、それ以外への差し替え
+ "timelimit" "時間制限"
+ "roundtimelimit" "時間制限 (ラウンドベース)"
+
+ "pilot_health_multiplier" "ヘルス倍率"
+ // 要議論: "リスポーン遅延" のままか、"リスポーンまでの時間"、それ以外への差し替え
+ "respawn_delay" "リスポーン遅延"
+ "boosts_enabled" "ブースト"
+ // 長いのでなんとかしたい
+ "earn_meter_pilot_overdrive" "ブーストメーターオーバードライブ"
+ "earn_meter_pilot_multiplier" "ブーストメーター倍率"
+
+ "earn_meter_titan_multiplier" "タイタンブーストメーター倍率"
+ // 仮翻訳: "イージスアップグレード","無限ドームの状態","シールド再生"
+ "aegis_upgrades" "イージスアップグレード"
+ "infinite_doomed_state" "無限ドゥームの状態"
+ "titan_shield_regen" "シールド再生"
+
+ "riff_floorislava" "デッドリー・グラウンド"
+ "featured_mode_all_holopilot" "華麗なる謀略"
+ "featured_mode_all_grapple" "進撃のタイタンフォール"
+ "featured_mode_all_phase" "異次元"
+ "featured_mode_all_ticks" "辛口消耗戦"
+ "featured_mode_tactikill" "戦術キル消耗戦"
+ "featured_mode_amped_tacticals" "戦術強化"
+ "featured_mode_rocket_arena" "ロケット・アリーナ"
+ "featured_mode_shotguns_snipers" "危険武装"
+ "iron_rules" "アイロンルール"
+
+ "cp_amped_capture_points" "拠点増幅"
+ "coliseum_loadouts_enabled" "コロシアムロードアウト"
+
+ // northstar.custom localisation is just deciding not to work, so putting it here for now
+ "PL_sbox" "サンドボックス"
+ "PL_sbox_lobby" "サンドボックスロビー"
+ "PL_sbox_desc" "サンドボックス"
+ "PL_sbox_abbr" "SBOX"
+ "GAMEMODE_SBOX" "Sandbox"
+
+ "PL_gg" "ガン・ゲーム"
+ "PL_gg_lobby" "ガン・ゲームロビー"
+ "PL_gg_desc" "全ての銃でキルを取って勝利しろ。"
+ "PL_gg_hint" "全ての銃でキルを取って勝利しろ。"
+ "PL_gg_abbr" "GG"
+ "GAMEMODE_GG" "ガン・ゲーム"
+
+ "PL_tt" "タイタン・タグ"
+ "PL_tt_lobby" "タイタン・タグロビー"
+ "PL_tt_desc" "タイタンとしてポイントを稼げ。敵のタイタンを破壊し自分のタイタンを確保しろ。"
+ "PL_tt_hint" "タイタンとしてポイントを稼げ。敵のタイタンを破壊し自分のタイタンを確保しろ。"
+ "PL_tt_abbr" "TT"
+ "GAMEMODE_TT" "タイタン・タグ"
+
+ "PL_inf" "インフェクション"
+ "PL_inf_lobby" "インフェクションロビー"
+ "PL_inf_desc" "生き残りは死亡するとインフェクターになる。"
+ "PL_inf_hint" "生き残りは死亡するとインフェクターになる。"
+ "PL_inf_abbr" "INF"
+
+ "GAMEMODE_INF" "インフェクション"
+ "INFECTION_YOU_ARE_INFECTED" "お前はインフェクトされた!"
+ "INFECTION_KILL_SURVIVORS" "残りの生存者をインフェクトしろ"
+ "INFECTION_FIRST_INFECTED" "%s1 が最初のインフェクターだ!"
+ "INFECTION_LAST_SURVIVOR" "%s1 が最後の生存者だ!"
+ "INFECTION_KILL_LAST_SURVIVOR" "時間切れの前に最後の生存者をインフェクトしろ!"
+ "INFECTION_YOU_ARE_LAST_SURVIVOR" "お前が最後の生き残りだ!"
+ "INFECTION_SURVIVE_LAST_SURVIVOR" "生きろ"
+
+ "PL_hs" "ハイド・アンド・シーク"
+ "PL_hs_lobby" "ハイド・アンド・シークロビー"
+ "PL_hs_desc" "ハイダーは隠れ、シーカーはハイダーを探せ!"
+ "PL_hs_hint" "ハイダーは隠れ、シーカーはハイダーを探せ!"
+ "PL_hs_abbr" "HS"
+ "GAMEMODE_hs" "ハイド・アンド・シーク"
+ "HIDEANDSEEK_YOU_ARE_SEEKER" "お前はシーカーになった"
+ "HIDEANDSEEK_SEEKER_DESC" "ハイダーを探し、格闘でしとめろ。\n開始まで %s1 秒"
+ "HIDEANDSEEK_YOU_ARE_HIDER" "お前はハイダーになった"
+ "HIDEANDSEEK_HIDER_DESC" "シーカーから隠れろ"
+ "HIDEANDSEEK_SEEKERS_INCOMING" "間もなくシーカー到来"
+ "HIDEANDSEEK_DONT_GET_FOUND" "見つかるな!"
+ "HIDEANDSEEK_GET_LAST_HIDER" "%s1 が最後のハイダーだ!"
+ "HIDEANDSEEK_YOU_ARE_LAST_HIDER" "お前が最後のハイダーだ!"
+ "HIDEANDSEEK_GOT_STIM" "興奮剤を得た!捕まるな!"
+ "hideandseek_balance_teams" "オートバランス"
+ "hideandseek_hiding_time" "隠れ時間"
+
+ "GAMEMODE_fw" "フロンティア戦争"
+ "PL_fw" "フロンティア戦争"
+ "PL_fw_lobby" "フロンティア戦争ロビー"
+ "PL_fw_desc" "敵のハーベスターを破壊し、自分のを守れ!"
+ "PL_fw_abbr" "FW"
+
+ "GAMEMODE_kr" "強化キルレース"
+ "PL_kr" "強化キルレース"
+ "PL_kr_lobby" "強化キルレースロビー"
+ "PL_kr_desc" "旗を拾い、キルレースを開始しろ。キルでポイントを上げ、キルレースの時間を延ばせ。最高ポイント記録が一番高い者が勝利する"
+ "PL_kr_hint" "旗を拾い、キルレースを開始しろ。キルでポイントを上げ、キルレースの時間を延ばせ。最高ポイント記録が一番高い者が勝利する"
+ "PL_kr_abbr" "KR"
+ "SCOREBOARD_KR_RECORD" "キルレース記録"
+ "KR_NEW_RACER" "%s1 が新しいキルレーサーだ!"
+ "KR_YOU_ARE_NEW_RACER" "お前が新しいキルレーサーだ!"
+ "KR_YOU_SET_NEW_RECORD" "新キルレース記録だ!"
+ "KR_FLAG_INCOMING" "間もなく旗出現"
+ "KR_COLLECT_FLAG" "旗を確保しキルレーサーになれ!"
+ "KR_ENEMY_KILLRACE_OVER" "%s1's のキルレースが終わった"
+ "KR_YOUR_KILLRACE_OVER" "キルレース終了"
+ "KR_YOUR_KILLRACE_SCORE" "キルレース記録は %s1"
+
+ "GAMEMODE_fastball" "ファストボール"
+ "PL_fastball" "ファストボール"
+ "PL_fastball_lobby" "ファストボールロビー"
+ "PL_fastball_desc" "ライブファイア。パネルをハックし、味方を蘇生できる"
+ "PL_fastball_hint" "ライブファイア。パネルをハックし、味方を蘇生できる"
+ "PL_fastball_abbr" "FB"
+ "FASTBALL_PANEL_CAPTURED" "%s1 がパネル%s2を制圧した"
+ "SCOREBOARD_FASTBALL_HACKS" "制圧パネル"
+
+ "GAMEMODE_ctf_comp" "激化CTF"
+
+ // mode settings
+ "MODE_SETTING_CATEGORY_PROMODE" "Proモード"
+ // 要議論: Apexなどでは"出血中"になるが、とりあえず"ダウン"で
+ "MODE_SETTING_CATEGORY_BLEEDOUT" "パイロットのダウン"
+
+ "custom_air_accel_pilot" "空中加速度"
+ "promode_enable" "Proモードの武器"
+ "fp_embark_enabled" "搭乗と処刑の一人称視点"
+ "classic_rodeo" "クラシックロデオ"
+ "oob_timer_enabled" "アウトオブバウンドタイマー"
+ "riff_instagib" "インスタギブモード"
+
+ "riff_player_bleedout" "パイロットのダウン"
+ "player_bleedout_forceHolster" "ダウン状態では武器をしまう"
+ "player_bleedout_forceDeathOnTeamBleedout" "チーム全員がダウンしたら死亡"
+ // "ダウン状態の時間"は"ダウンから死亡までの時間" としたかったが長すぎるので断念
+ "player_bleedout_bleedoutTime" "ダウン状態の時間"
+ "player_bleedout_firstAidTime" "応急処置に必要な時間"
+ "player_bleedout_firstAidTimeSelf" "自己蘇生に必要な時間"
+ "player_bleedout_firstAidHealPercent" "応急処置時のヘルス"
+ "player_bleedout_aiBleedingPlayerMissChance" "ダウン時のAI命中率"
+
+ // 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" "パイロット・ガントレット"
+ "SP_TRAINING_CLASSIC_DESC" "ラスティモーサ大尉の訓練シミュレーション。"
+
+ "SP_CRASHSITE" "BT-7274"
+ "SP_CRASHSITE_CLASSIC_DESC" "ジャック・クーパーがBT-7274に出会う。"
+
+ "SP_SEWERS1" "血と錆び"
+ "SP_SEWERS1_CLASSIC_DESC" "クーパーとBTは、アンダーソン少佐との合流を目指して出発する。"
+
+ "SP_BOOMTOWN_START" "深淵へ"
+ "SP_BOOMTOWN_START_CLASSIC_DESC" "近道で地下を進んだ2人に、予期せぬ事態が発生する。"
+
+ "SP_HUB_TIMESHIFT" "結果と原因"
+ "SP_HUB_TIMESHIFT_CLASSIC_DESC" "アンダーソン少佐の座標で奇妙な現象が確認された。"
+
+ "SP_BEACON" "ビーコン"
+ "SP_BEACON_CLASSIC_DESC" "クーパーとBTは生き残った艦隊にIMCの計画を伝えようと試みる。"
+
+ "SP_TDAY" "火の試練"
+ "SP_TDAY_CLASSIC_DESC" "アークを奪うための総力戦で、クーパーのタイタン操縦技術が試される。"
+
+ "SP_S2S" "アーク"
+ "SP_S2S_CLASSIC_DESC" "クーパーとBTはアークを求め、激しい追跡劇を繰り広げる。"
+
+ "SP_SKYWAY_V1" "フォールド・ウェポン"
+ "SP_SKYWAY_V1_CLASSIC_DESC" "BTとクーパーがクーベン・ブリスクに捕まってしまう。"
+
+ // Better.Serverbrowser
+ "SERVERS_COLUMN" "サーバー"
+ "PLAYERS_COLUMN" "プレイヤー"
+ "MAP_COLUMN" "マップ"
+ "GAMEMODE_COLUMN" "ゲームモード"
+ "LATENCY_COLUMN" "レイテンシー"
+ "SEARCHBAR_LABEL" "検索:"
+ "MAP_FILTER" "マップ"
+ "GAMEMODE_FILTER" "ゲームモード"
+ "HIDE_FULL_FILTER" "満員のサーバーを非表示"
+ "HIDE_EMPTY_FILTER" "参加者のいないサーバーを非表示"
+ "HIDE_PROT_FILTER" "保護されたサーバーを非表示"
+ "SERVER_DESCRIPTION" "概要"
+ "SERVER_MODS" "Mod"
+ "CLEAR_FILTERS" "クリア"
+ "JOIN_BUTTON" "参加"
+
+ "SWITCH_YES" "はい"
+ "SWITCH_NO" "いいえ"
+ // 要変更: 使われるのはフィルターの表示のみなのでわかりやすさ重視で"全て" としたが、他に使用される箇所が今後できた場合は変更する必要がある
+ "SWITCH_ANY" "全て"
+
+ "CONNECTING" "接続中..."
+ "INGAME_PLAYERS" "プレイヤー数: ^6BA6C400%s1"
+ "TOTAL_SERVERS" "サーバー数: ^C46C6C00%s1"
+ // Translation done by Zetryox and CYakigasi
+
+ // In-game chat
+ "HUD_CHAT_WHISPER_PREFIX" "[WHISPER]"
+ "HUD_CHAT_SERVER_PREFIX" "[SERVER]"
+ }
+}
diff --git a/Northstar.Client/mod/resource/northstar_client_localisation_portuguese.txt b/Northstar.Client/mod/resource/northstar_client_localisation_portuguese.txt
index 43e167a6..6c3e0274 100644
--- a/Northstar.Client/mod/resource/northstar_client_localisation_portuguese.txt
+++ b/Northstar.Client/mod/resource/northstar_client_localisation_portuguese.txt
@@ -299,5 +299,9 @@ Clique em Sim se você concorda. Esta escolha pode ser alterada a qualquer momen
"SHOW_ALL" "Todos"
"SHOW_ONLY_ENABLED" "Apenas ativados"
"SHOW_ONLY_DISABLED" "Apenas desativados"
+
+ // In-game chat
+ "HUD_CHAT_WHISPER_PREFIX" "[WHISPER]"
+ "HUD_CHAT_SERVER_PREFIX" "[SERVER]"
}
}
diff --git a/Northstar.Client/mod/resource/northstar_client_localisation_russian.txt b/Northstar.Client/mod/resource/northstar_client_localisation_russian.txt
index af133a8e..5a1c1590 100644
--- a/Northstar.Client/mod/resource/northstar_client_localisation_russian.txt
+++ b/Northstar.Client/mod/resource/northstar_client_localisation_russian.txt
@@ -1 +1,245 @@
-"lang" { "Language" "russian" "Tokens" { "MENU_LAUNCH_NORTHSTAR" "Запустить Northstar" "MENU_TITLE_MODS" "Моды" "RELOAD_MODS" "Перезагрузить моды" "DIALOG_TITLE_INSTALLED_NORTHSTAR" "Спасибо за установку Northstar!" "AUTHENTICATION_AGREEMENT_DIALOG_TEXT" "Чтобы Northstar работал, ему необходимо авторизироваться через мастер-сервер Northstar. Это потребует отправку вашего токена Origin на мастер-сервер, он не будет сохранён на сервер или использован в других целях. Нажмите Да, если вы согласны с этим. Ваш выбор может быть изменён в меню модов в любое время." "BACK_AUTHENTICATION_AGREEMENT" "Соглашение с авторизацией" "AUTHENTICATION_AGREEMENT" "Соглашение с авторизацией" "AUTHENTICATION_AGREEMENT_RESTART" "Вам необходимо перезапустить Titanfall 2, чтобы этот выбор вступил в силу." "MENU_TITLE_SERVER_BROWSER" "Список серверов" "NS_SERVERBROWSER_NOSERVERS" "Серверов не найдено" "NS_SERVERBROWSER_WAITINGFORSERVERS" "Ожидание серверов..." "NS_SERVERBROWSER_CONNECTIONFAILED" "Соединение провалено!" "REFRESH_SERVERS" "Обновить" "MENU_TITLE_CONNECT_PASSWORD" "Подключиться с помощью пароля" "MENU_CONNECT_MENU_CONNECT" "Подключиться" "PRIVATE_MATCH_PAGE_PREV" "Предыдущая страница" "PRIVATE_MATCH_PAGE_NEXT" "Следующая страница" "MENU_MATCH_SETTINGS" "Настройки матча" "MENU_MATCH_SETTINGS_SUBMENU" "Настройки %s1" "PRIVATE_MATCH_SINGLEPLAYER_LEVEL" "%s1 (Одиночная игра)" // fra hint for private match menu, because fra only has PL_fra_desc in vanilla "PL_fra_hint" "Ты один. Уничтожь противников, чтобы победить. Собери 3 батареи для вызова титана." // mode settings "MODE_SETTING_CATEGORY_PILOT" "Пилот" "MODE_SETTING_CATEGORY_TITAN" "Титан" "MODE_SETTING_CATEGORY_RIFF" "Рифф" "MODE_SETTING_CATEGORY_MATCH" "Матч" "classic_mp" "Классический мультиплеер" "run_epilogue" "Запустить эпилог" "scorelimit" "Лимит очков" "roundscorelimit" "Лимит очков (по раундам)" "timelimit" "Лимит времени" "roundtimelimit" "Лимит времени (по раундам)" "pilot_health_multiplier" "Множитель здоровья" "respawn_delay" "Задержка возрождения" "boosts_enabled" "Усиления" "earn_meter_pilot_overdrive" "Перегрузка шкалы усиления" "earn_meter_pilot_multiplier" "Множитель шкалы усиления пилота" "earn_meter_titan_multiplier" "Множитель шкалы ядра титана" "aegis_upgrades" "Улучшения эгиды" "infinite_doomed_state" "Бесконечное обречённое состояние" "titan_shield_regen" "Регенерация щитов" "riff_floorislava" "Смертельная Земля" "featured_mode_all_holopilot" "Великий обманщик" "featured_mode_all_grapple" "Зацепщик" "featured_mode_all_phase" "Альтернативное пространство" "featured_mode_all_ticks" "Острый" "featured_mode_tactikill" "Тактический удар" "featured_mode_amped_tacticals" "Усиленные тактики" "featured_mode_rocket_arena" "Ракетная Арена" "featured_mode_shotguns_snipers" "Вооружён и опасен" "iron_rules" "Правила Железного Титана" "cp_amped_capture_points" "Усиленные точки опоры" "coliseum_loadouts_enabled" "Выгрузка коллизея" // northstar.custom localisation is just deciding not to work, so putting it here for now "PL_sbox" "Песочница" "PL_sbox_lobby" "Лобби песочницы" "PL_sbox_desc" "Как gmod, только хуже" "PL_sbox_abbr" "SBOX" "GAMEMODE_SBOX" "Песочница" "PL_gg" "Гонка вооружений" "PL_gg_lobby" "Лобби гонки вооружений" "PL_gg_desc" "Уничтожьте противника из всех видов оружия чтобы победить." "PL_gg_hint" "Уничтожьте противника из всех видов оружия чтобы победить." "PL_gg_abbr" "GG" "GAMEMODE_GG" "Гонка вооружений" "PL_tt" "Разборки Титанов" "PL_tt_lobby" "Лобби разборок титанов" "PL_tt_desc" "Зарабатывайте очки, пока вы находитесь в своём титане. Уничтожьте титана чтобы получить своего." "PL_tt_hint" "Зарабатывайте очки, пока вы находитесь в своём титане. Уничтожьте титана чтобы получить своего." "PL_tt_abbr" "TT" "GAMEMODE_TT" "Разборки титанов" "PL_inf" "Заражение" "PL_inf_lobby" "Лобби Заражения" "PL_inf_desc" "Переживите инфекцию. Выжившие становятся заражёнными при убийстве." "PL_inf_hint" "Переживите инфекцию. Выжившие становятся заражёнными при убийстве." "PL_inf_abbr" "INF" "GAMEMODE_INF" "Заражение" "INFECTION_YOU_ARE_INFECTED" "Вы были заражены!" "INFECTION_KILL_SURVIVORS" "Заразите всех оставшихся выживших." "INFECTION_FIRST_INFECTED" "%s1 был заражён первым." "INFECTION_LAST_SURVIVOR" "%s1 выжил последним!" "INFECTION_KILL_LAST_SURVIVOR" "Зарази их, пока время не вышло!" "INFECTION_YOU_ARE_LAST_SURVIVOR" "Вы последний выживший!" "INFECTION_SURVIVE_LAST_SURVIVOR" "Выживите." "PL_hs" "Прятки" "PL_hs_lobby" "Лобби пряток" "PL_hs_desc" "Игра со стандартными правилами пряток." "PL_hs_hint" "Игра со стандартными правилами пряток." "PL_hs_abbr" "HS" "GAMEMODE_hs" "Прятки" "HIDEANDSEEK_YOU_ARE_SEEKER" "ВЫ ИЩЕТЕ" "HIDEANDSEEK_SEEKER_DESC" "Найдите прячущихся и ударьте их.\nВы появитесь через %s1 секунд(у)" "HIDEANDSEEK_YOU_ARE_HIDER" "ВЫ ПРЯЧЕТЕСЬ" "HIDEANDSEEK_HIDER_DESC" "Спрятайтесь." "HIDEANDSEEK_SEEKERS_INCOMING" "ИЩУЩИЕ ВЫДВИГАЮТСЯ" "HIDEANDSEEK_DONT_GET_FOUND" "Не дайте себя найти!" "HIDEANDSEEK_GET_LAST_HIDER" "%s1 ПОСЛЕДНИЙ СПРЯТАВШИЙСЯ" "HIDEANDSEEK_YOU_ARE_LAST_HIDER" "ВЫ ПОСЛЕДНИЙ СПРЯТАВШИЙСЯ" "HIDEANDSEEK_GOT_STIM" "Вас остановили! Не попадитесь!" "hideandseek_balance_teams" "Автобаланс обеих сторон" "hideandseek_hiding_time" "Время спрятаться" // 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" "Пограничная война" "PL_fw" "Пограничная война" "PL_fw_lobby" "Лобби пограничной войны" "PL_fw_desc" "Уничтожьте харвестер противника и защитите свой" "PL_fw_abbr" "FW" "GAMEMODE_kr" "Усиленные гонки убийств" "PL_kr" "Усиленные гонки убийств" "PL_kr_lobby"Лобби усиленных гонок убийств" "PL_kr_desc" "Получайте убийства, чтобы увеличить продолжительность вашей гонки за убийствами. Соберите флаг, чтобы начать его. Установите рекорд убийств, чтобы победить." "PL_kr_hint" "Получайте убийства, чтобы увеличить продолжительность вашей гонки за убийствами. Соберите флаг, чтобы начать его. Установите рекорд убийств, чтобы победить." "PL_kr_abbr" "KR" "SCOREBOARD_KR_RECORD" "Рекорд убийств" "KR_NEW_RACER" "%s1 усиленный гонщик за убийства" "KR_YOU_ARE_NEW_RACER" "Вы усиленный гонщик за убийства" "KR_YOU_SET_NEW_RECORD" "Установите новый рекорд убийств!" "KR_FLAG_INCOMING" "Флаг прибывает" "KR_COLLECT_FLAG" "Возьмите его чтобы стать гонщиком за убиства!" "KR_ENEMY_KILLRACE_OVER" "Гонки убийств у %s1 закончились" "KR_YOUR_KILLRACE_OVER" "Ваши гонки убийств кончились" "KR_YOUR_KILLRACE_SCORE" "У вас %s1 убийств." "GAMEMODE_fastball" "Фастболл" "PL_fastball" "Фастболл" "PL_fastball_lobby" "Лобби фастболла" "PL_fastball_desc" "Перманентная смерть. Взломайте панели управления чтобы побеждать в раундах и возродить своих членов команды." "PL_fastball_hint" "Перманентная смерть. Взломайте панели управления чтобы побеждать в раундах и возродить своих членов команды." "PL_fastball_abbr" "FB" "FASTBALL_PANEL_CAPTURED" "%s1 захватил(а) панель %s2" "SCOREBOARD_FASTBALL_HACKS" "Панелей захвачено" "GAMEMODE_ctf_comp" "Соревновательное CTF" // mode settings "MODE_SETTING_CATEGORY_PROMODE" "Продвинутое оружие" "MODE_SETTING_CATEGORY_BLEEDOUT" "Кровотечение пилота" "custom_air_accel_pilot" "Ускорение в воздухе" "promode_enable" "Продвинутое оружие" "fp_embark_enabled" "Отправления/Казни от первого лица" "classic_rodeo" "Классическое родео" "oob_timer_enabled" "Таймер уничтожения за пределами карты" "riff_instagib" "Моментальная смерть при попадании" "riff_player_bleedout" "Кровотечение пилота" "player_bleedout_forceHolster" "Использовать оружие из кобуры при кровотечении" "player_bleedout_forceDeathOnTeamBleedout" "Смерть при кровотечении во всей команде" "player_bleedout_bleedoutTime" "Кремя кровотечения" "player_bleedout_firstAidTime" "Время оказания первой помощи" "player_bleedout_firstAidTimeSelf" "Время оказания помощи самому себе" "player_bleedout_firstAidHealPercent" "Процент здоровья после лечения" "player_bleedout_aiBleedingPlayerMissChance" "Шанс промаха ИИ при кровотечении" // coop stuff "PL_sp_coop" "(НЕ ЗАВЕРШЕНО) Кооператив кампании" "PL_sp_coop_lobby" "Лобби кооператива кампании" "PL_sp_coop_desc" "Сыграть в кампанию с друзьями" "PL_sp_coop_hint" "Сыграть в кампанию с друзьями" "PL_sp_coop_abbr" "SP" "SP_TRAINING" "Тренировачная полоса пилотов" "SP_TRAINING_CLASSIC_DESC" "Тренировачная имитация капитана Ластимозы." "SP_CRASHSITE" "БT-7274" "SP_CRASHSITE_CLASSIC_DESC" "Джек Купер встречает BT-7274." "SP_SEWERS1" "Кровь и Ржавчина" "SP_SEWERS1_CLASSIC_DESC" "Купер и БT выходят на встречу с Майором Андерсеном." "SP_BOOMTOWN_START" "В Бездну" "SP_BOOMTOWN_START_CLASSIC_DESC" "Подземная срезка приводит к неожиданным последствиям." "SP_HUB_TIMESHIFT" "Следствие и Причина" "SP_HUB_TIMESHIFT_CLASSIC_DESC" "Странный феномен был обнаружен на местополжении Майора Андерсена." "SP_BEACON" "Маяк" "SP_BEACON_CLASSIC_DESC" "Купер и БТ пытаются известить оставшийся флот о планах IMC." "SP_TDAY" "Испытание огнём" "SP_TDAY_CLASSIC_DESC" "Испытание навыков титана Купера в грандиозной битве за захват Ковчега." "SP_S2S" "Ковчег" "SP_S2S_CLASSIC_DESC" "Купер и БТ перемещаются по кораблям, преследуя Ковчег." "SP_SKYWAY_V1" "Сложенное оружие" "SP_SKYWAY_V1_CLASSIC_DESC" "БT и Купер были захвачены Кубеном Блиском." // Better.Serverbrowser "SERVERS_COLUMN" "Сервера" "PLAYERS_COLUMN" "Игроки" "MAP_COLUMN" "Карта" "GAMEMODE_COLUMN" "Режим игры" "LATENCY_COLUMN" "Задержка" "SEARCHBAR_LABEL" "Поиск:" "MAP_FILTER" "Карта" "GAMEMODE_FILTER" "Режим игры" "HIDE_FULL_FILTER" "Скрывать полные сервера" "HIDE_EMPTY_FILTER" "Скрывать пустые сервера" "HIDE_PROT_FILTER" "Скрывать закрытые сервера" "SERVER_DESCRIPTION" "Описание" "SERVER_MODS" "Моды" "CLEAR_FILTERS" "ОЧИСТИТЬ" "JOIN_BUTTON" "ПРИСОЕДИНИТЬСЯ" "SWITCH_YES" "Да" "SWITCH_NO" "Нет" "SWITCH_ANY" "Любой" "CONNECTING" "Соединение..." "INGAME_PLAYERS" "Игроков: ^6BA6C400%s1" "TOTAL_SERVERS" "Серверов: ^C46C6C00%s1" } } \ No newline at end of file
+"lang"
+{
+ "Language" "russian"
+ "Tokens"
+ {
+ "MENU_LAUNCH_NORTHSTAR" "Запустить Northstar"
+ "MENU_TITLE_MODS" "Моды"
+ "RELOAD_MODS" "Перезагрузить моды"
+
+ "DIALOG_TITLE_INSTALLED_NORTHSTAR" "Спасибо за установку Northstar!"
+ "AUTHENTICATION_AGREEMENT_DIALOG_TEXT" "Чтобы Northstar работал, ему необходимо авторизироваться через мастер-сервер Northstar. Это потребует отправку вашего токена Origin на мастер-сервер, он не будет сохранён на сервер или использован в других целях.
+Нажмите Да, если вы согласны с этим. Ваш выбор может быть изменён в меню модов в любое время."
+ "BACK_AUTHENTICATION_AGREEMENT" "Соглашение с авторизацией"
+ "AUTHENTICATION_AGREEMENT" "Соглашение с авторизацией"
+ "AUTHENTICATION_AGREEMENT_RESTART" "Вам необходимо перезапустить Titanfall 2, чтобы этот выбор вступил в силу."
+
+ "MENU_TITLE_SERVER_BROWSER" "Список серверов"
+ "NS_SERVERBROWSER_NOSERVERS" "Серверов не найдено"
+ "NS_SERVERBROWSER_WAITINGFORSERVERS" "Ожидание серверов..."
+ "NS_SERVERBROWSER_CONNECTIONFAILED" "Соединение провалено!"
+ "REFRESH_SERVERS" "Обновить"
+
+ "MENU_TITLE_CONNECT_PASSWORD" "Подключиться с помощью пароля"
+ "MENU_CONNECT_MENU_CONNECT" "Подключиться"
+
+ "PRIVATE_MATCH_PAGE_PREV" "Предыдущая страница"
+ "PRIVATE_MATCH_PAGE_NEXT" "Следующая страница"
+
+ "MENU_MATCH_SETTINGS" "Настройки матча"
+ "MENU_MATCH_SETTINGS_SUBMENU" "Настройки %s1"
+
+ "PRIVATE_MATCH_SINGLEPLAYER_LEVEL" "%s1 (Одиночная игра)"
+
+ // fra hint for private match menu, because fra only has PL_fra_desc in vanilla
+ "PL_fra_hint" "Ты один. Уничтожь противников, чтобы победить. Собери 3 батареи для вызова титана."
+
+ // mode settings
+ "MODE_SETTING_CATEGORY_PILOT" "Пилот"
+ "MODE_SETTING_CATEGORY_TITAN" "Титан"
+ "MODE_SETTING_CATEGORY_RIFF" "Рифф"
+ "MODE_SETTING_CATEGORY_MATCH" "Матч"
+
+ "classic_mp" "Классический мультиплеер"
+ "run_epilogue" "Запустить эпилог"
+ "scorelimit" "Лимит очков"
+ "roundscorelimit" "Лимит очков (по раундам)"
+ "timelimit" "Лимит времени"
+ "roundtimelimit" "Лимит времени (по раундам)"
+
+ "pilot_health_multiplier" "Множитель здоровья"
+ "respawn_delay" "Задержка возрождения"
+ "boosts_enabled" "Усиления"
+ "earn_meter_pilot_overdrive" "Перегрузка шкалы усиления"
+ "earn_meter_pilot_multiplier" "Множитель шкалы усиления пилота"
+
+ "earn_meter_titan_multiplier" "Множитель шкалы ядра титана"
+ "aegis_upgrades" "Улучшения эгиды"
+ "infinite_doomed_state" "Бесконечное обречённое состояние"
+ "titan_shield_regen" "Регенерация щитов"
+
+ "riff_floorislava" "Смертельная Земля"
+ "featured_mode_all_holopilot" "Великий обманщик"
+ "featured_mode_all_grapple" "Зацепщик"
+ "featured_mode_all_phase" "Альтернативное пространство"
+ "featured_mode_all_ticks" "Острый"
+ "featured_mode_tactikill" "Тактический удар"
+ "featured_mode_amped_tacticals" "Усиленные тактики"
+ "featured_mode_rocket_arena" "Ракетная Арена"
+ "featured_mode_shotguns_snipers" "Вооружён и опасен"
+ "iron_rules" "Правила Железного Титана"
+
+ "cp_amped_capture_points" "Усиленные точки опоры"
+ "coliseum_loadouts_enabled" "Выгрузка коллизея"
+
+ // northstar.custom localisation is just deciding not to work, so putting it here for now
+ "PL_sbox" "Песочница"
+ "PL_sbox_lobby" "Лобби песочницы"
+ "PL_sbox_desc" "Как gmod, только хуже"
+ "PL_sbox_abbr" "SBOX"
+ "GAMEMODE_SBOX" "Песочница"
+
+ "PL_gg" "Гонка вооружений"
+ "PL_gg_lobby" "Лобби гонки вооружений"
+ "PL_gg_desc" "Уничтожьте противника из всех видов оружия чтобы победить."
+ "PL_gg_hint" "Уничтожьте противника из всех видов оружия чтобы победить."
+ "PL_gg_abbr" "GG"
+ "GAMEMODE_GG" "Гонка вооружений"
+
+ "PL_tt" "Разборки Титанов"
+ "PL_tt_lobby" "Лобби разборок титанов"
+ "PL_tt_desc" "Зарабатывайте очки, пока вы находитесь в своём титане. Уничтожьте титана чтобы получить своего."
+ "PL_tt_hint" "Зарабатывайте очки, пока вы находитесь в своём титане. Уничтожьте титана чтобы получить своего."
+ "PL_tt_abbr" "TT"
+ "GAMEMODE_TT" "Разборки титанов"
+
+ "PL_inf" "Заражение"
+ "PL_inf_lobby" "Лобби Заражения"
+ "PL_inf_desc" "Переживите инфекцию. Выжившие становятся заражёнными при убийстве."
+ "PL_inf_hint" "Переживите инфекцию. Выжившие становятся заражёнными при убийстве."
+ "PL_inf_abbr" "INF"
+ "GAMEMODE_INF" "Заражение"
+ "INFECTION_YOU_ARE_INFECTED" "Вы были заражены!"
+ "INFECTION_KILL_SURVIVORS" "Заразите всех оставшихся выживших."
+ "INFECTION_FIRST_INFECTED" "%s1 был заражён первым."
+ "INFECTION_LAST_SURVIVOR" "%s1 выжил последним!"
+ "INFECTION_KILL_LAST_SURVIVOR" "Зарази их, пока время не вышло!"
+ "INFECTION_YOU_ARE_LAST_SURVIVOR" "Вы последний выживший!"
+ "INFECTION_SURVIVE_LAST_SURVIVOR" "Выживите."
+
+ "PL_hs" "Прятки"
+ "PL_hs_lobby" "Лобби пряток"
+ "PL_hs_desc" "Игра со стандартными правилами пряток."
+ "PL_hs_hint" "Игра со стандартными правилами пряток."
+ "PL_hs_abbr" "HS"
+ "GAMEMODE_hs" "Прятки"
+ "HIDEANDSEEK_YOU_ARE_SEEKER" "ВЫ ИЩЕТЕ"
+ "HIDEANDSEEK_SEEKER_DESC" "Найдите прячущихся и ударьте их.\nВы появитесь через %s1 секунд(у)"
+ "HIDEANDSEEK_YOU_ARE_HIDER" "ВЫ ПРЯЧЕТЕСЬ"
+ "HIDEANDSEEK_HIDER_DESC" "Спрятайтесь."
+ "HIDEANDSEEK_SEEKERS_INCOMING" "ИЩУЩИЕ ВЫДВИГАЮТСЯ"
+ "HIDEANDSEEK_DONT_GET_FOUND" "Не дайте себя найти!"
+ "HIDEANDSEEK_GET_LAST_HIDER" "%s1 ПОСЛЕДНИЙ СПРЯТАВШИЙСЯ"
+ "HIDEANDSEEK_YOU_ARE_LAST_HIDER" "ВЫ ПОСЛЕДНИЙ СПРЯТАВШИЙСЯ"
+ "HIDEANDSEEK_GOT_STIM" "Вас остановили! Не попадитесь!"
+ "hideandseek_balance_teams" "Автобаланс обеих сторон"
+ "hideandseek_hiding_time" "Время спрятаться"
+
+ // 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" "Пограничная война"
+ "PL_fw" "Пограничная война"
+ "PL_fw_lobby" "Лобби пограничной войны"
+ "PL_fw_desc" "Уничтожьте харвестер противника и защитите свой"
+ "PL_fw_abbr" "FW"
+
+ "GAMEMODE_kr" "Усиленные гонки убийств"
+ "PL_kr" "Усиленные гонки убийств"
+ "PL_kr_lobby"Лобби усиленных гонок убийств"
+ "PL_kr_desc" "Получайте убийства, чтобы увеличить продолжительность вашей гонки за убийствами. Соберите флаг, чтобы начать его. Установите рекорд убийств, чтобы победить."
+ "PL_kr_hint" "Получайте убийства, чтобы увеличить продолжительность вашей гонки за убийствами. Соберите флаг, чтобы начать его. Установите рекорд убийств, чтобы победить."
+ "PL_kr_abbr" "KR"
+ "SCOREBOARD_KR_RECORD" "Рекорд убийств"
+ "KR_NEW_RACER" "%s1 усиленный гонщик за убийства"
+ "KR_YOU_ARE_NEW_RACER" "Вы усиленный гонщик за убийства"
+ "KR_YOU_SET_NEW_RECORD" "Установите новый рекорд убийств!"
+ "KR_FLAG_INCOMING" "Флаг прибывает"
+ "KR_COLLECT_FLAG" "Возьмите его чтобы стать гонщиком за убиства!"
+ "KR_ENEMY_KILLRACE_OVER" "Гонки убийств у %s1 закончились"
+ "KR_YOUR_KILLRACE_OVER" "Ваши гонки убийств кончились"
+ "KR_YOUR_KILLRACE_SCORE" "У вас %s1 убийств."
+
+ "GAMEMODE_fastball" "Фастболл"
+ "PL_fastball" "Фастболл"
+ "PL_fastball_lobby" "Лобби фастболла"
+ "PL_fastball_desc" "Перманентная смерть. Взломайте панели управления чтобы побеждать в раундах и возродить своих членов команды."
+ "PL_fastball_hint" "Перманентная смерть. Взломайте панели управления чтобы побеждать в раундах и возродить своих членов команды."
+ "PL_fastball_abbr" "FB"
+ "FASTBALL_PANEL_CAPTURED" "%s1 захватил(а) панель %s2"
+ "SCOREBOARD_FASTBALL_HACKS" "Панелей захвачено"
+
+ "GAMEMODE_ctf_comp" "Соревновательное CTF"
+
+ // mode settings
+ "MODE_SETTING_CATEGORY_PROMODE" "Продвинутое оружие"
+ "MODE_SETTING_CATEGORY_BLEEDOUT" "Кровотечение пилота"
+
+ "custom_air_accel_pilot" "Ускорение в воздухе"
+ "promode_enable" "Продвинутое оружие"
+ "fp_embark_enabled" "Отправления/Казни от первого лица"
+ "classic_rodeo" "Классическое родео"
+ "oob_timer_enabled" "Таймер уничтожения за пределами карты"
+ "riff_instagib" "Моментальная смерть при попадании"
+
+ "riff_player_bleedout" "Кровотечение пилота"
+ "player_bleedout_forceHolster" "Использовать оружие из кобуры при кровотечении"
+ "player_bleedout_forceDeathOnTeamBleedout" "Смерть при кровотечении во всей команде"
+ "player_bleedout_bleedoutTime" "Кремя кровотечения"
+ "player_bleedout_firstAidTime" "Время оказания первой помощи"
+ "player_bleedout_firstAidTimeSelf" "Время оказания помощи самому себе"
+ "player_bleedout_firstAidHealPercent" "Процент здоровья после лечения"
+ "player_bleedout_aiBleedingPlayerMissChance" "Шанс промаха ИИ при кровотечении"
+
+ // coop stuff
+ "PL_sp_coop" "(НЕ ЗАВЕРШЕНО) Кооператив кампании"
+ "PL_sp_coop_lobby" "Лобби кооператива кампании"
+ "PL_sp_coop_desc" "Сыграть в кампанию с друзьями"
+ "PL_sp_coop_hint" "Сыграть в кампанию с друзьями"
+ "PL_sp_coop_abbr" "SP"
+
+ "SP_TRAINING" "Тренировачная полоса пилотов"
+ "SP_TRAINING_CLASSIC_DESC" "Тренировачная имитация капитана Ластимозы."
+
+ "SP_CRASHSITE" "БT-7274"
+ "SP_CRASHSITE_CLASSIC_DESC" "Джек Купер встречает BT-7274."
+
+ "SP_SEWERS1" "Кровь и Ржавчина"
+ "SP_SEWERS1_CLASSIC_DESC" "Купер и БT выходят на встречу с Майором Андерсеном."
+
+ "SP_BOOMTOWN_START" "В Бездну"
+ "SP_BOOMTOWN_START_CLASSIC_DESC" "Подземная срезка приводит к неожиданным последствиям."
+
+ "SP_HUB_TIMESHIFT" "Следствие и Причина"
+ "SP_HUB_TIMESHIFT_CLASSIC_DESC" "Странный феномен был обнаружен на местополжении Майора Андерсена."
+
+ "SP_BEACON" "Маяк"
+ "SP_BEACON_CLASSIC_DESC" "Купер и БТ пытаются известить оставшийся флот о планах IMC."
+
+ "SP_TDAY" "Испытание огнём"
+ "SP_TDAY_CLASSIC_DESC" "Испытание навыков титана Купера в грандиозной битве за захват Ковчега."
+
+ "SP_S2S" "Ковчег"
+ "SP_S2S_CLASSIC_DESC" "Купер и БТ перемещаются по кораблям, преследуя Ковчег."
+
+ "SP_SKYWAY_V1" "Сложенное оружие"
+ "SP_SKYWAY_V1_CLASSIC_DESC" "БT и Купер были захвачены Кубеном Блиском."
+
+ // Better.Serverbrowser
+ "SERVERS_COLUMN" "Сервера"
+ "PLAYERS_COLUMN" "Игроки"
+ "MAP_COLUMN" "Карта"
+ "GAMEMODE_COLUMN" "Режим игры"
+ "LATENCY_COLUMN" "Задержка"
+ "SEARCHBAR_LABEL" "Поиск:"
+ "MAP_FILTER" "Карта"
+ "GAMEMODE_FILTER" "Режим игры"
+ "HIDE_FULL_FILTER" "Скрывать полные сервера"
+ "HIDE_EMPTY_FILTER" "Скрывать пустые сервера"
+ "HIDE_PROT_FILTER" "Скрывать закрытые сервера"
+ "SERVER_DESCRIPTION" "Описание"
+ "SERVER_MODS" "Моды"
+ "CLEAR_FILTERS" "ОЧИСТИТЬ"
+ "JOIN_BUTTON" "ПРИСОЕДИНИТЬСЯ"
+
+ "SWITCH_YES" "Да"
+ "SWITCH_NO" "Нет"
+ "SWITCH_ANY" "Любой"
+
+ "CONNECTING" "Соединение..."
+ "INGAME_PLAYERS" "Игроков: ^6BA6C400%s1"
+ "TOTAL_SERVERS" "Серверов: ^C46C6C00%s1"
+
+ // In-game chat
+ "HUD_CHAT_WHISPER_PREFIX" "[WHISPER]"
+ "HUD_CHAT_SERVER_PREFIX" "[SERVER]"
+ }
+}
diff --git a/Northstar.Client/mod/resource/northstar_client_localisation_tchinese.txt b/Northstar.Client/mod/resource/northstar_client_localisation_tchinese.txt
index 5cb53e2e..4981a0a8 100644
--- a/Northstar.Client/mod/resource/northstar_client_localisation_tchinese.txt
+++ b/Northstar.Client/mod/resource/northstar_client_localisation_tchinese.txt
@@ -306,5 +306,9 @@
// In-game chat
"HUD_CHAT_WHISPER_PREFIX" "[悄悄話]"
"HUD_CHAT_SERVER_PREFIX" "[伺服器]"
+
+ // In-game chat
+ "HUD_CHAT_WHISPER_PREFIX" "[WHISPER]"
+ "HUD_CHAT_SERVER_PREFIX" "[SERVER]"
}
}
diff --git a/Northstar.Client/mod/scripts/vscripts/chat.gnut b/Northstar.Client/mod/scripts/vscripts/chat.gnut
index ce26434c..f5988bb7 100644
--- a/Northstar.Client/mod/scripts/vscripts/chat.gnut
+++ b/Northstar.Client/mod/scripts/vscripts/chat.gnut
@@ -1,18 +1,22 @@
untyped
globalize_all_functions
-void function Chat_NetworkWriteLine(string text) {
+void function Chat_NetworkWriteLine(string text)
+{
NSChatWriteLine(0, text)
}
-void function Chat_GameWriteLine(string text) {
+void function Chat_GameWriteLine(string text)
+{
NSChatWriteLine(1, text)
}
-void function Chat_NetworkWrite(string text) {
+void function Chat_NetworkWrite(string text)
+{
NSChatWrite(0, text)
}
-void function Chat_GameWrite(string text) {
+void function Chat_GameWrite(string text)
+{
NSChatWrite(1, text)
}
diff --git a/Northstar.Client/mod/scripts/vscripts/state_client.nut b/Northstar.Client/mod/scripts/vscripts/state_client.nut
new file mode 100644
index 00000000..9ebcf006
--- /dev/null
+++ b/Northstar.Client/mod/scripts/vscripts/state_client.nut
@@ -0,0 +1,48 @@
+untyped
+
+int highestScore = 0
+int secondHighestScore = 0
+int ourScore = 0
+
+globalize_all_functions
+
+void function OnPrematchStart()
+{
+ if (GetServerVar( "roundBased" ))
+ NSUpdateTimeInfo( level.nv.roundEndTime - Time() )
+ else
+ NSUpdateTimeInfo( level.nv.gameEndTime - Time() )
+}
+
+void function NSUpdateGameStateClientStart()
+{
+ AddCallback_GameStateEnter( eGameState.Prematch, OnPrematchStart )
+ thread NSUpdateGameStateLoopClient()
+ OnPrematchStart()
+}
+
+void function NSUpdateGameStateLoopClient()
+{
+ while ( true )
+ {
+ foreach ( player in GetPlayerArray() )
+ {
+ if ( GameRules_GetTeamScore( player.GetTeam() ) >= highestScore )
+ {
+ highestScore = GameRules_GetTeamScore( player.GetTeam() )
+ }
+ else if ( GameRules_GetTeamScore( player.GetTeam() ) > secondHighestScore )
+ {
+ secondHighestScore = GameRules_GetTeamScore( player.GetTeam() )
+ }
+ }
+ if ( GetLocalClientPlayer() != null )
+ {
+ ourScore = GameRules_GetTeamScore( GetLocalClientPlayer().GetTeam() )
+ }
+ int limit = GetServerVar( "roundBased" ) ? GetCurrentPlaylistVarInt( "roundscorelimit", 0 ) : GetCurrentPlaylistVarInt( "scorelimit", 0 )
+ NSUpdateGameStateClient( GetPlayerArray().len(), ourScore, secondHighestScore, highestScore, GetServerVar( "roundBased" ), limit )
+ OnPrematchStart()
+ wait 1.0
+ }
+} \ No newline at end of file
diff --git a/Northstar.Client/mod/scripts/vscripts/state_ui.nut b/Northstar.Client/mod/scripts/vscripts/state_ui.nut
new file mode 100644
index 00000000..907e38fa
--- /dev/null
+++ b/Northstar.Client/mod/scripts/vscripts/state_ui.nut
@@ -0,0 +1,29 @@
+untyped
+
+globalize_all_functions
+
+void function NSUpdateGameStateUIStart()
+{
+ thread NSUpdateGameStateLoopUI()
+}
+
+void function NSUpdateGameStateLoopUI()
+{
+ while ( true )
+ {
+ wait 1.0
+ if ( uiGlobal.loadedLevel == "" )
+ {
+ if ( uiGlobal.isLoading )
+ NSSetLoading( true )
+ else
+ {
+ NSSetLoading( false )
+ NSUpdateGameStateUI( "", "", "", "", true, false )
+ }
+ continue
+ }
+ NSSetLoading( false )
+ NSUpdateGameStateUI( GetActiveLevel(), Localize( GetMapDisplayName( GetActiveLevel() ) ), GetConVarString( "mp_gamemode" ), Localize( GetPlaylistDisplayName( GetConVarString("mp_gamemode") ) ), IsFullyConnected(), false )
+ }
+} \ No newline at end of file
diff --git a/Northstar.Client/mod/scripts/vscripts/ui/menu_lobby.nut b/Northstar.Client/mod/scripts/vscripts/ui/menu_lobby.nut
index 3c868aab..938e0d3f 100644
--- a/Northstar.Client/mod/scripts/vscripts/ui/menu_lobby.nut
+++ b/Northstar.Client/mod/scripts/vscripts/ui/menu_lobby.nut
@@ -372,6 +372,8 @@ void function StartPrivateMatch( var button )
return
ClientCommand( "StartPrivateMatchSearch" )
+ NSSetLoading(true)
+ NSUpdateListenServer()
}
void function DoRoomInviteIfAllowed( var button )
diff --git a/Northstar.Client/mod/scripts/vscripts/ui/menu_main.nut b/Northstar.Client/mod/scripts/vscripts/ui/menu_main.nut
index 87cba57e..b20699f9 100644
--- a/Northstar.Client/mod/scripts/vscripts/ui/menu_main.nut
+++ b/Northstar.Client/mod/scripts/vscripts/ui/menu_main.nut
@@ -72,7 +72,7 @@ void function OnMainMenu_Open()
{
Signal( uiGlobal.signalDummy, "EndOnMainMenu_Open" )
EndSignal( uiGlobal.signalDummy, "EndOnMainMenu_Open" )
-
+
SetConVarString( "communities_hostname", "" ) // disable communities due to crash exploits that are still possible through it
UpdatePromoData() // On script restarts this gives us the last data until the new request is complete
@@ -93,7 +93,7 @@ void function OnMainMenu_Open()
ClientCommand( "map " + Dev_CommandLineParmValue( "+map" ) )
Dev_CommandLineRemoveParm( "+map" )
}
-
+
// do agree to ns remote auth dialog
if ( !GetConVarBool( "ns_has_agreed_to_send_token" ) )
NorthstarMasterServerAuthDialog()
@@ -136,7 +136,7 @@ void function NorthstarMasterServerAuthDialog()
{
// todo: this should be in localisation
DialogData dialogData
- dialogData.header = "#DIALOG_TITLE_INSTALLED_NORTHSTAR"
+ dialogData.header = "#DIALOG_TITLE_INSTALLED_NORTHSTAR"
dialogData.image = $"rui/menu/fd_menu/upgrade_northstar_chassis"
dialogData.message = "#AUTHENTICATION_AGREEMENT_DIALOG_TEXT"
AddDialogButton( dialogData, "#YES", NorthstarMasterServerAuthDialogAgree )
@@ -148,11 +148,11 @@ void function NorthstarMasterServerAuthDialogAgree()
{
int oldValue = GetConVarInt( "ns_has_agreed_to_send_token" )
SetConVarInt( "ns_has_agreed_to_send_token", NS_AGREED_TO_SEND_TOKEN )
-
+
if ( oldValue != 0 && oldValue != NS_AGREED_TO_SEND_TOKEN )
{
DialogData dialogData
- dialogData.header = "#DIALOG_TITLE_INSTALLED_NORTHSTAR"
+ dialogData.header = "#DIALOG_TITLE_INSTALLED_NORTHSTAR"
dialogData.image = $"rui/menu/fd_menu/upgrade_northstar_chassis"
dialogData.message = "#AUTHENTICATION_AGREEMENT_RESTART"
AddDialogButton( dialogData, "#OK" )
@@ -164,11 +164,11 @@ void function NorthstarMasterServerAuthDialogDisagree()
{
int oldValue = GetConVarInt( "ns_has_agreed_to_send_token" )
SetConVarInt( "ns_has_agreed_to_send_token", NS_DISAGREED_TO_SEND_TOKEN )
-
+
if ( oldValue != 0 && oldValue != NS_DISAGREED_TO_SEND_TOKEN )
{
DialogData dialogData
- dialogData.header = "#DIALOG_TITLE_INSTALLED_NORTHSTAR"
+ dialogData.header = "#DIALOG_TITLE_INSTALLED_NORTHSTAR"
dialogData.image = $"rui/menu/fd_menu/upgrade_northstar_chassis"
dialogData.message = "#AUTHENTICATION_AGREEMENT_RESTART"
AddDialogButton( dialogData, "#OK" )
@@ -670,4 +670,4 @@ void function UpdateTrialLabel()
void function OpenSinglePlayerDevMenu( var button )
{
AdvanceMenu( GetMenu( "SinglePlayerDevMenu" ) )
-}
+} \ No newline at end of file
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 b294f57c..bd263f2b 100644
--- a/Northstar.Client/mod/scripts/vscripts/ui/menu_ns_serverbrowser.nut
+++ b/Northstar.Client/mod/scripts/vscripts/ui/menu_ns_serverbrowser.nut
@@ -970,6 +970,7 @@ void function ThreadedAuthAndConnectToServer( string password = "" )
return
print( "trying to authenticate with server " + NSGetServerName( file.lastSelectedServer ) + " with password " + password )
+
NSTryAuthWithServer( file.lastSelectedServer, password )
ToggleConnectingHUD( true )
@@ -988,6 +989,18 @@ void function ThreadedAuthAndConnectToServer( string password = "" )
}
file.cancelConnection = false
+ NSSetLoading(true)
+ NSUpdateServerInfo(
+ NSGetServerID(file.lastSelectedServer),
+ NSGetServerName(file.lastSelectedServer),
+ password,
+ NSGetServerPlayerCount(file.lastSelectedServer),
+ NSGetServerMaxPlayerCount(file.lastSelectedServer),
+ NSGetServerMap(file.lastSelectedServer),
+ Localize(GetMapDisplayName(NSGetServerMap(file.lastSelectedServer))),
+ NSGetServerPlaylist(file.lastSelectedServer),
+ Localize(GetPlaylistDisplayName(NSGetServerPlaylist(file.lastSelectedServer)))
+ )
if ( NSWasAuthSuccessful() )
{
@@ -1010,6 +1023,7 @@ void function ThreadedAuthAndConnectToServer( string password = "" )
// only actually reload if we need to since the uiscript reset on reload lags hard
if ( modsChanged )
ReloadMods()
+
NSConnectToAuthedServer()
}
else
diff --git a/Northstar.Client/mod/scripts/vscripts/ui/panel_mainmenu.nut b/Northstar.Client/mod/scripts/vscripts/ui/panel_mainmenu.nut
index 65a8ca9b..fb4dfcd9 100644
--- a/Northstar.Client/mod/scripts/vscripts/ui/panel_mainmenu.nut
+++ b/Northstar.Client/mod/scripts/vscripts/ui/panel_mainmenu.nut
@@ -6,6 +6,8 @@ global function UpdatePromoData
global function UICodeCallback_GetOnPartyServer
global function UICodeCallback_MainMenuPromosUpdated
+global bool isOnMainMenu = false
+
// defining this here because it's the only place it's used rn, custom const for a hook in launcher
global const WEBBROWSER_FLAG_FORCEEXTERNAL = 1 << 1 // 2
@@ -526,6 +528,7 @@ void function OnPlayFDButton_Activate( var button ) // repurposed for launching
if ( !Hud_IsLocked( button ) )
{
SetConVarBool( "ns_is_modded_server", true )
+ SetConVarString( "communities_hostname", "" ) // disable communities due to crash exploits that are still possible through it
NSTryAuthWithLocalServer()
thread TryAuthWithLocalServer()
}
@@ -552,12 +555,12 @@ void function TryAuthWithLocalServer()
}
WaitFrame()
}
-
+
if ( NSWasAuthSuccessful() )
{
NSCompleteAuthWithLocalServer()
}
-
+
if ( GetConVarString( "mp_gamemode" ) == "solo" )
SetConVarString( "mp_gamemode", "tdm" )
diff --git a/Northstar.Client/mod/scripts/vscripts/ui/ui_vscript.gnut b/Northstar.Client/mod/scripts/vscripts/ui/ui_vscript.gnut
new file mode 100644
index 00000000..63535bec
--- /dev/null
+++ b/Northstar.Client/mod/scripts/vscripts/ui/ui_vscript.gnut
@@ -0,0 +1,352 @@
+
+// Events for handlers
+// UIE_CLICK
+// UIE_GET_FOCUS
+// UIE_LOSE_FOCUS
+
+global function UICodeCallback_UIInit
+global function UICodeCallback_ControllerModeChanged
+global function UICodeCallback_OnVideoOver
+global function AddUICallback_OnLevelInit
+
+global struct TabDef
+{
+ var panel
+ string title
+}
+
+global struct InputDef
+{
+ int input
+ string gamepadLabel
+ var vguiElem
+ string mouseLabel
+ bool functionref() conditionCheckFunc
+ bool lastConditionCheckResult
+ void functionref( var ) activateFunc
+ void functionref( InputDef ) updateFunc
+}
+
+global struct DialogButtonData
+{
+ string label
+ void functionref() activateFunc
+ string focusMessage
+ bool startFocused
+}
+
+global struct DialogFooterData
+{
+ string label
+ void functionref() activateFunc
+}
+
+global struct DialogMessageRuiData
+{
+ string message = ""
+ vector style1Color = <1.0, 1.0, 1.0>
+ vector style2Color = <0.5, 0.5, 0.5>
+ vector style3Color = <0.5, 0.5, 0.5>
+
+ float style1FontScale = 1.0
+ float style2FontScale = 1.0
+ float style3FontScale = 1.0
+}
+
+global struct DialogData
+{
+ var menu
+ string header
+ string message
+ DialogMessageRuiData &ruiMessage
+ array messageColor = [161, 161, 161, 255]
+ asset image
+ asset rightImage = $""
+ bool forceChoice = false
+ bool noChoice = false
+ bool noChoiceWithNavigateBack = false
+ bool showSpinner = false
+ bool showPCBackButton = false
+ float inputDisableTime = 0
+ table<int,bool> coloredButton
+ bool darkenBackground = false
+ bool useFullMessageHeight = false
+
+ array<DialogButtonData> buttonData
+ array<DialogFooterData> footerData
+}
+
+global struct MenuDef
+{
+ void functionref() initFunc
+ void functionref() openFunc
+ void functionref() closeFunc
+ void functionref() showFunc // TODO: Needs hooking up
+ void functionref() hideFunc // TODO: Needs hooking up
+ void functionref() thinkFunc
+ void functionref() navBackFunc
+ void functionref() tabChangedFunc
+ void functionref() inputModeChangedFunc
+ void functionref() entitlementsChangedFunc
+
+ array<InputDef> footerData
+ table<int, void functionref( var )> registeredInput
+
+ bool hasTabs = false
+ array<TabDef> tabsData
+ int tabIndex = 0
+
+ bool isDialog = false
+ DialogData& dialogData
+ bool isDynamicHeight = false
+
+ bool isPVEMenu = false
+
+ var lastFocus // Only used for restoring submenu focus so far
+}
+
+global struct PanelDef
+{
+ void functionref() initFunc
+ void functionref() showFunc
+ void functionref() hideFunc
+
+ string tabTitle = "Default"
+
+ array<InputDef> footerData
+ table<int, void functionref( var )> registeredInput
+
+ var defaultFocus
+}
+
+global struct PieChartEntry
+{
+ string displayName
+ float numValue
+ array<int> color = [127, 127, 127, 255]
+ float fracValue = 0.0
+}
+
+global struct PieChartData
+{
+ array<PieChartEntry> entries
+ array<int> labelColor = [46, 49, 51, 255]
+ bool timeBased = false
+ float sum = 0.0
+}
+
+global struct UIGlobals
+{
+ table menus = {}
+ array allMenus = []
+ array<var> menuStack
+ string loadingLevel = ""
+ string loadedLevel = ""
+ string previousLevel = ""
+ string previousPlaylist = ""
+ var activeMenu = null
+ bool lastMenuNavDirection = MENU_NAV_FORWARD
+ bool lobbyFromLoadingScreen = false
+ bool eventHandlersAdded = false
+ bool loadoutsInitialized = false
+ bool itemsInitialized = false
+ bool matchmaking = false
+ var dialogCloseCallback = null
+ table signalDummy = {}
+ float dialogInputEnableTime = 0.0
+ bool lobbyMenusLeftOpen = false
+ bool playingMusic = false
+ var mainMenuFocus = null
+ int announcementVersionSeen = -1
+ var lastCategoryFocus = null
+
+ int pilotSpawnLoadoutIndex = -1
+ int titanSpawnLoadoutIndex = -1
+
+ bool updatePilotSpawnLoadout = false
+ bool updateTitanSpawnLoadout = false
+
+ string editingLoadoutType = "pilot"
+ string editingLoadoutProperty = ""
+ int editingLoadoutIndex = -1
+ string editingItemRef = ""
+ int editingItemType = -1
+ var editingSubitemRef = null
+ int editingSubitemType = -1
+ var editingParentItemRef = null
+ int editingWeaponCategory = -1
+
+ int entitlementId = -1
+ string testStoreWeaponRef // TODO: Remove when done testing
+
+ bool EOGAutoAdvance = true
+ bool EOGOpenInLobby = false
+ string EOGChallengeFilter = ""
+ var eogCoopFocusedButton = null
+ var eogCoopSelectedButton = null
+ var eogScoreboardFocusedButton = null
+ bool eogNavigationButtonsRegistered = false
+
+ table<string, var> ui_ChallengeProgress = {}
+
+ int decalScrollState = 0
+
+ bool isLobby
+
+ var ConfirmMenuMessage
+ var ConfirmMenuErrorCode
+ array<DialogButtonData> dialogButtonData
+
+ bool updatingLobbyUI = false
+
+ array buttonConfigs
+ array stickConfigs
+
+ var playlistList
+
+ table< string, array > eog_challengesToShow
+ table< string, array > eog_unlocks
+
+ bool videoSettingsChanged = false
+
+ bool playingVideo = false
+ bool playingCredits = false
+
+ bool mapSupportsMenuModels = false
+ bool mapSupportsMenuModelsUpdated = false
+ bool interpolateCameraMoves = true
+ int activePresentationType = ePresentationType.INACTIVE
+ bool rotateCharacterInputRegistered = false
+
+ table<var,MenuDef> menuData
+
+ table<string, int> intVars
+ table<string, bool> boolVars
+ table<string, var> varVars
+ table<string, array<void functionref()> > varChangeFuncs
+
+ array<void functionref()> onLevelInitCallbacks
+
+ bool tabButtonsRegistered = false
+
+ table panels = {}
+ array<var> allPanels
+ table<var,PanelDef> panelData
+
+ bool sp_showAlternateMissionLog = false
+
+ int launching = eLaunching.FALSE
+ bool triedNucleusRegistration = false
+ int consoleSettingMenu = eConsoleSettingsMenu.FALSE
+
+ bool updateCachedNewItems = true
+
+ var menuToOpenFromPromoButton = null
+
+ bool isLoading = false
+
+}
+
+global UIGlobals uiGlobal
+
+global const MAINMENU_MUSIC_DELAY = 4.0
+
+
+void function UICodeCallback_UIInit()
+{
+ ScriptCompilerTest()
+
+ ShUtilityAll_Init()
+ LevelVarInit()
+
+ VPKNotifyFile( "media/intro_captions.txt" )
+
+ UtilityUI_Init()
+
+ Settings_Init() // UI script doesn't need everything in this, reorganize
+ GameModes_Init()
+ UIVars_Init()
+
+ PassivesShared_Init()
+ ChallengesShared_Init()
+ ChallengesContent_Init()
+ XP_Init()
+
+ MenuLobby_Init()
+ MenuPrivateMatch_Init()
+
+ MenuGamepadLayout_Init()
+ MenuChallenges_Init()
+ MenuEOG_Init()
+ MenuUtility_Init()
+ MenuAdvocateLetter_Init()
+ MenuCredits_Init()
+ MenuMapSelect_Init()
+
+ RegisterSignal( "LevelShutdown" )
+ RegisterSignal( "CleanupInGameMenus" )
+ RegisterSignal( "OnCloseLobbyMenu" )
+ RegisterSignal( "OnCancelConnect" )
+ RegisterSignal( "PlayVideoEnded" )
+ RegisterSignal( "ActiveMenuChanged" )
+ RegisterSignal( "LevelFinishedLoading")
+ RegisterSignal( "OpenErrorDialog" )
+ RegisterSignal( "BoughtItem" )
+
+ thread UpdateClientMenuOpenState()
+
+ InitGamepadConfigs()
+ Store_Init()
+ InitMenus()
+
+ if ( !IsSingleplayer() )
+ thread UpdateCachedLoadouts() // Needs to wait for persistent data to ready
+}
+
+void function UICodeCallback_ControllerModeChanged( bool controllerModeEnabled )
+{
+ //printt( "CONTROLLER! " + controllerModeEnabled + ", " + IsControllerModeActive() )
+
+ if ( uiGlobal.activeMenu == null )
+ return
+
+ if ( uiGlobal.menuData[ uiGlobal.activeMenu ].inputModeChangedFunc != null )
+ thread uiGlobal.menuData[ uiGlobal.activeMenu ].inputModeChangedFunc()
+
+ UpdateFooterOptions()
+
+ if ( IsDialog( uiGlobal.activeMenu ) )
+ UpdateDialogFooterVisibility( uiGlobal.activeMenu, controllerModeEnabled )
+}
+
+void function UICodeCallback_OnVideoOver()
+{
+ SetIntroViewed( true )
+
+ Signal( uiGlobal.signalDummy, "PlayVideoEnded" )
+}
+
+void function UpdateClientMenuOpenState()
+{
+ for ( ;; )
+ {
+ WaitSignal( uiGlobal.signalDummy, "ActiveMenuChanged" )
+
+ if ( IsMultiplayer() && !IsLobby() )
+ {
+ int newState = 0
+ if ( IsDialogOnlyActiveMenu() )
+ newState = 2
+ else if ( uiGlobal.activeMenu != null)
+ newState = 1
+
+ RunMenuClientFunction( "SetMenuOpenState", newState )
+ }
+ }
+}
+
+void function AddUICallback_OnLevelInit( void functionref() callbackFunc )
+{
+ Assert( !( uiGlobal.onLevelInitCallbacks.contains( callbackFunc ) ), "Already added " + string( callbackFunc ) + " with AddUICallback_OnLevelInit" )
+ uiGlobal.onLevelInitCallbacks.append( callbackFunc )
+}