diff options
author | Emma Miler <27428383+emma-miler@users.noreply.github.com> | 2022-03-27 00:45:23 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-27 00:45:23 +0100 |
commit | 3e7186801d70e50a9135b897ef572076fe442cf4 (patch) | |
tree | 80e535d881b8e90a5c4e3b2c2b8ac733ba163c84 | |
parent | bd102d798a0b9db2dcbd6bd4045fb84c53fc031a (diff) | |
download | NorthstarMods-3e7186801d70e50a9135b897ef572076fe442cf4.tar.gz NorthstarMods-3e7186801d70e50a9135b897ef572076fe442cf4.zip |
Add mod code for updating state for discord RPC (#274)v1.6.0-rc3
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 ) +} |