diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a7c20d6e..0b7cc6351 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -47,6 +47,8 @@ All notable changes to TTT2 will be documented here. Inspired by [keep a changel - Changed how Ammo is dropped; if drop should be from reserve ammo, now tries to drop a full ammo box instead of a full clip. (by @MrXonte) - Updated `ttt_spec_prop_control` to be replicated across the server and client (by @NickCloudAT) - With this, the KeyHelp feature also hides the PropSpec bind if PropSpec is disabled on the server +- Renamed `ttt_session_limits_enabled` to `ttt_session_limits_mode`, introducing a four-mode control (0-3) for managing how TTT2 ends a session. (by @NickCloudAT) + - Modes: 0 = No session limit, 1 = Default TTT, 2 = Only time limit, 3 = Only round limit ## [v0.14.0b](https://github.com/TTT-2/TTT2/tree/v0.14.0b) (2024-09-20) diff --git a/gamemodes/terrortown/gamemode/client/vgui/cl_sb_main.lua b/gamemodes/terrortown/gamemode/client/vgui/cl_sb_main.lua index e748b0765..f6372a6a4 100644 --- a/gamemodes/terrortown/gamemode/client/vgui/cl_sb_main.lua +++ b/gamemodes/terrortown/gamemode/client/vgui/cl_sb_main.lua @@ -176,9 +176,14 @@ function PANEL:Init() if gameloop.HasLevelLimits() then local r, t = gameloop.UntilMapChange() - sf:SetText(GetPTranslation("sb_mapchange", { num = r + 1, time = t })) + sf:SetText( + GetPTranslation( + "sb_mapchange_mode_" .. gameloop.GetLevelLimitsMode(), + { num = r + 1, time = t } + ) + ) else - sf:SetText(GetTranslation("sb_mapchange_disabled")) + sf:SetText(GetTranslation("sb_mapchange_mode_0")) end sf:SizeToContents() diff --git a/gamemodes/terrortown/gamemode/server/sv_main.lua b/gamemodes/terrortown/gamemode/server/sv_main.lua index 708552665..2f039fe11 100644 --- a/gamemodes/terrortown/gamemode/server/sv_main.lua +++ b/gamemodes/terrortown/gamemode/server/sv_main.lua @@ -807,9 +807,9 @@ function GM:TTT2ModifyWinningAlives(alives) end -- @hook -- @realm server function GM:TTT2LoadNextMap(nextmap, roundsLeft, timeLeft) - if roundsLeft <= 0 then + if roundsLeft == 0 then LANG.Msg("limit_round", { mapname = nextmap }) - elseif timeLeft <= 0 then + elseif timeLeft == 0 then LANG.Msg("limit_time", { mapname = nextmap }) end diff --git a/lua/terrortown/lang/de.lua b/lua/terrortown/lang/de.lua index f4eda0eaf..3021ee210 100644 --- a/lua/terrortown/lang/de.lua +++ b/lua/terrortown/lang/de.lua @@ -38,7 +38,9 @@ L.win_showreport = "Schauen wir uns den Rundenbericht die nächste(n) {num} Seku L.limit_round = "Rundenlimit erreicht. Die nächste Map wird bald geladen." L.limit_time = "Zeitlimit erreicht. Die nächste Map wird bald geladen." -L.limit_left = "{num} Runde(n) oder {time} Minute(n) verbleibend bis die Map gewechselt wird." +L.limit_left_session_mode_1 = "{num} Runde(n) oder {time} Minute(n) verbleibend bis die Map gewechselt wird." +L.limit_left_session_mode_2 = "{time} Minute(n) verbleibend bis die Map gewechselt wird." +L.limit_left_session_mode_3 = "{num} Runde(n) verbleibend bis die Map gewechselt wird." -- Credit awards L.credit_all = "Deinem Team wurde(n) {num} Ausrüstungspunkt(e) für eure Leistung gegeben." @@ -167,8 +169,10 @@ L.quick_corpse_id = "{player}'s Leiche" -- Scoreboard L.sb_playing = "Du spielst auf..." -L.sb_mapchange = "Die Karte wechselt in {num} Runden oder in {time}" -L.sb_mapchange_disabled = "Das Sitzungslimit ist deaktiviert." +L.sb_mapchange_mode_0 = "Das Sitzungslimit ist deaktiviert." +L.sb_mapchange_mode_1 = "Die Karte wechselt in {num} Runden oder in {time}" +L.sb_mapchange_mode_2 = "Die Karte wechselt in {time}" +L.sb_mapchange_mode_3 = "Die Karte wechselt in {num} Runden" L.sb_mia = "Vermisst" L.sb_confirmed = "Definitiv tot" @@ -1672,7 +1676,6 @@ L.label_round_limit = "Rundenlimit" L.label_time_limit_minutes = "Spielzeitlimit" L.label_nade_throw_during_prep = "Erlaube das Werfen von Granaten während der Vorbereitungszeit" L.label_postround_dm = "Aktiviere Deathmatch nach Rundenende" -L.label_session_limits_enabled = "Aktiviere Sitzungs Limitierungen" L.label_spectator_chat = "Aktiviere, dass Zuschauer mit jedem chatten können" L.label_lastwords_chatprint = "Gib die letzten Worte im Chat aus, wenn der Spieler getötet wird, während er tippt" L.label_identify_body_woconfirm = "Leichnam identifizieren, ohne die Schaltfläche 'Tod Bestätigen' drücken zu müssen" @@ -2299,8 +2302,10 @@ L.label_voice_activation_mode_toggle_enabled = "Umschalten (Aktiviert zum Start) --L.label_button_level_reset = "reset level" --L.loadingscreen_round_restart_title = "Starting new round" ---L.loadingscreen_round_restart_subtitle = "you're playing on {map}" ---L.loadingscreen_round_restart_subtitle_limits = "you're playing on {map} for another {rounds} round(s) or {time}" +--L.loadingscreen_round_restart_subtitle_limits_mode_0 = "you're playing on {map}" +--L.loadingscreen_round_restart_subtitle_limits_mode_1 = "you're playing on {map} for another {rounds} round(s) or {time}" +--L.loadingscreen_round_restart_subtitle_limits_mode_2 = "you're playing on {map} for {time}" +--L.loadingscreen_round_restart_subtitle_limits_mode_3 = "you're playing on {map} for another {rounds} round(s)" -- 2024-06-23 --L.header_roles_derandomize = "Role Derandomization" @@ -2369,3 +2374,20 @@ L.label_voice_activation_mode_toggle_enabled = "Umschalten (Aktiviert zum Start) -- 2024-11-27 --L.corpse_hint_without_confirm = "Press [{usekey}] to search." + +-- 2025-01-05 +--L.help_session_limits_mode = [[ +--There are three different session limit modes you can choose from: +-- +--mode 0: No session limits. TTT2 will not end the session and will not trigger a map change. +-- +--mode 1: Default TTT2 mode. A map change will trigger if either the session time or session round count runs out. +-- +--mode 2: Only time limit. A map change will only trigger if the session time runs out. +-- +--mode 3: Only round limit. A map change will only trigger if the session round count runs out.]] +--L.label_session_limits_mode = "Set session limit mode" +--L.choice_session_limits_mode_0 = "mode 0: no session limits" +--L.choice_session_limits_mode_1 = "mode 1: time and round limit" +--L.choice_session_limits_mode_2 = "mode 2: only time limit" +--L.choice_session_limits_mode_3 = "mode 3: only round limit" diff --git a/lua/terrortown/lang/en.lua b/lua/terrortown/lang/en.lua index 64a67752f..dd83bde61 100644 --- a/lua/terrortown/lang/en.lua +++ b/lua/terrortown/lang/en.lua @@ -38,7 +38,9 @@ L.win_showreport = "Let's look at the round report for {num} seconds." L.limit_round = "Round limit reached. The next map will load soon." L.limit_time = "Time limit reached. The next map will load soon." -L.limit_left = "{num} round(s) or {time} minutes remaining before the map changes." +L.limit_left_session_mode_1 = "{num} round(s) or {time} minutes remaining before the map changes." +L.limit_left_session_mode_2 = "{time} minutes remaining before the map changes." +L.limit_left_session_mode_3 = "{num} round(s) remaining before the map changes." -- Credit awards L.credit_all = "Your team have been awarded {num} equipment credit(s) for your performance." @@ -167,8 +169,10 @@ L.quick_corpse_id = "{player}'s corpse" -- Scoreboard L.sb_playing = "You are playing on..." -L.sb_mapchange = "Map changes in {num} rounds or in {time}" -L.sb_mapchange_disabled = "Session limits are disabled." +L.sb_mapchange_mode_0 = "Session limits are disabled." +L.sb_mapchange_mode_1 = "Map changes in {num} rounds or in {time}" +L.sb_mapchange_mode_2 = "Map changes in {time}" +L.sb_mapchange_mode_3 = "Map changes in {num} rounds" L.sb_mia = "Missing In Action" L.sb_confirmed = "Confirmed Dead" @@ -1672,7 +1676,6 @@ L.label_round_limit = "Upper limit of rounds" L.label_time_limit_minutes = "Upper limit of playtime in minutes" L.label_nade_throw_during_prep = "Enable grenade throwing during preparing time" L.label_postround_dm = "Enable deathmatch after round ended" -L.label_session_limits_enabled = "Enable session limits" L.label_spectator_chat = "Enable spectators chatting with everybody" L.label_lastwords_chatprint = "Print last words to chat if killed while typing" L.label_identify_body_woconfirm = "Identify corpse without pressing the 'confirm' button" @@ -2299,8 +2302,10 @@ Restarting a round only restarts the current round so you can start over. Resett L.label_button_level_reset = "reset level" L.loadingscreen_round_restart_title = "Starting new round" -L.loadingscreen_round_restart_subtitle = "you're playing on {map}" -L.loadingscreen_round_restart_subtitle_limits = "you're playing on {map} for another {rounds} round(s) or {time}" +L.loadingscreen_round_restart_subtitle_limits_mode_0 = "you're playing on {map}" +L.loadingscreen_round_restart_subtitle_limits_mode_1 = "you're playing on {map} for another {rounds} round(s) or {time}" +L.loadingscreen_round_restart_subtitle_limits_mode_2 = "you're playing on {map} for {time}" +L.loadingscreen_round_restart_subtitle_limits_mode_3 = "you're playing on {map} for another {rounds} round(s)" -- 2024-06-23 L.header_roles_derandomize = "Role Derandomization" @@ -2369,3 +2374,20 @@ L.vehicle_enter = "Press [{usekey}] to enter vehicle" -- 2024-11-27 L.corpse_hint_without_confirm = "Press [{usekey}] to search." + +-- 2025-01-05 +L.help_session_limits_mode = [[ +There are three different session limit modes you can choose from: + +mode 0: No session limits. TTT2 will not end the session and will not trigger a map change. + +mode 1: Default TTT2 mode. A map change will trigger if either the session time or session round count runs out. + +mode 2: Only time limit. A map change will only trigger if the session time runs out. + +mode 3: Only round limit. A map change will only trigger if the session round count runs out.]] +L.label_session_limits_mode = "Set session limit mode" +L.choice_session_limits_mode_0 = "mode 0: no session limits" +L.choice_session_limits_mode_1 = "mode 1: time and round limit" +L.choice_session_limits_mode_2 = "mode 2: only time limit" +L.choice_session_limits_mode_3 = "mode 3: only round limit" diff --git a/lua/terrortown/lang/es.lua b/lua/terrortown/lang/es.lua index 46c3bd982..033157ceb 100644 --- a/lua/terrortown/lang/es.lua +++ b/lua/terrortown/lang/es.lua @@ -38,7 +38,9 @@ L.win_showreport = "Veamos el reporte de la ronda por {num} segundos." L.limit_round = "Límite de rondas alcanzado. El siguiente mapa se cargará pronto." L.limit_time = "Tiempo límite alcanzado. El siguiente mapa cargará pronto." -L.limit_left = "{num} rondas o {time} minutos restantes para que el mapa cambie." +L.limit_left_session_mode_1 = "{num} rondas o {time} minutos restantes para que el mapa cambie." +--L.limit_left_session_mode_2 = "{time} minutes remaining before the map changes." +--L.limit_left_session_mode_3 = "{num} round(s) remaining before the map changes." -- Credit awards L.credit_all = "Tu equipo fue recompensado con {num} créditos por su desempeño." @@ -167,8 +169,10 @@ L.quick_corpse_id = "el cadáver de {player}" -- Scoreboard L.sb_playing = "Estás jugando en..." -L.sb_mapchange = "El mapa cambia en {num} rondas o en {time}" ---L.sb_mapchange_disabled = "Session limits are disabled." +--L.sb_mapchange_mode_0 = "Session limits are disabled." +L.sb_mapchange_mode_1 = "El mapa cambia en {num} rondas o en {time}" +--L.sb_mapchange_mode_2 = "Map changes in {time}" +--L.sb_mapchange_mode_3 = "Map changes in {num} rounds" L.sb_mia = "Perdido en Acción" L.sb_confirmed = "Muerto confirmado" @@ -1672,7 +1676,6 @@ L.desc_event_kill_other_using = "{victim} ({vrole} / {vteam}) fue asesinado por --L.label_time_limit_minutes = "Upper limit of playtime in minutes" --L.label_nade_throw_during_prep = "Enable grenade throwing during preparing time" --L.label_postround_dm = "Enable deathmatch after round ended" ---L.label_session_limits_enabled = "Enable session limits" --L.label_spectator_chat = "Enable spectators chatting with everybody" --L.label_lastwords_chatprint = "Print last words to chat if killed while typing" --L.label_identify_body_woconfirm = "Identify corpse without pressing the 'confirm' button" @@ -2369,3 +2372,20 @@ L.decoy_help_primary = "Colocar el señuelo" -- 2024-11-27 --L.corpse_hint_without_confirm = "Press [{usekey}] to search." + +-- 2025-01-05 +--L.help_session_limits_mode = [[ +--There are three different session limit modes you can choose from: +-- +--mode 0: No session limits. TTT2 will not end the session and will not trigger a map change. +-- +--mode 1: Default TTT2 mode. A map change will trigger if either the session time or session round count runs out. +-- +--mode 2: Only time limit. A map change will only trigger if the session time runs out. +-- +--mode 3: Only round limit. A map change will only trigger if the session round count runs out.]] +--L.label_session_limits_mode = "Set session limit mode" +--L.choice_session_limits_mode_0 = "mode 0: no session limits" +--L.choice_session_limits_mode_1 = "mode 1: time and round limit" +--L.choice_session_limits_mode_2 = "mode 2: only time limit" +--L.choice_session_limits_mode_3 = "mode 3: only round limit" diff --git a/lua/terrortown/lang/fr.lua b/lua/terrortown/lang/fr.lua index 018fe14ae..12b172625 100644 --- a/lua/terrortown/lang/fr.lua +++ b/lua/terrortown/lang/fr.lua @@ -38,7 +38,9 @@ L.win_showreport = "Regardons le rapport de la partie {num} secondes." L.limit_round = "Limite de partie atteinte. La prochaine carte va bientôt chargée." L.limit_time = "Limite de temps atteinte. La prochaine carte va bientôt chargée." -L.limit_left = "Il reste {num} partie(s) ou {time} minutes avant que la carte change." +L.limit_left_session_mode_1 = "Il reste {num} partie(s) ou {time} minutes avant que la carte change." +--L.limit_left_session_mode_2 = "{time} minutes remaining before the map changes." +--L.limit_left_session_mode_3 = "{num} round(s) remaining before the map changes." -- Credit awards L.credit_all = "Vous êtes récompensés de {num} crédit(s) pour vos performances." @@ -167,8 +169,10 @@ L.quick_corpse_id = "le corps de {player}" -- Scoreboard L.sb_playing = "Vous jouez sur..." -L.sb_mapchange = "Changement de carte dans {num} partie(s) ou dans {time}" -L.sb_mapchange_disabled = "Les limites de partie sont désactivées." +L.sb_mapchange_mode_0 = "Les limites de partie sont désactivées." +L.sb_mapchange_mode_1 = "Changement de carte dans {num} partie(s) ou dans {time}" +--L.sb_mapchange_mode_2 = "Map changes in {time}" +--L.sb_mapchange_mode_3 = "Map changes in {num} rounds" L.sb_mia = "Portés disparus" L.sb_confirmed = "Morts Confirmés" @@ -1672,7 +1676,6 @@ L.label_round_limit = "Nombre de parties maximum sur cette carte" L.label_time_limit_minutes = "Temps de jeu maximum en minutes sur cette carte" L.label_nade_throw_during_prep = "Activer le lancer de grenade pendant la phase de préparation" L.label_postround_dm = "Activer le match à mort a la fin de la partie" -L.label_session_limits_enabled = "Activer la limite de partie" L.label_spectator_chat = "Activer le chat entre les spectateurs et les vivants" L.label_lastwords_chatprint = "Affiche les derniers mots dans le chat si la personne est tuée pendant qu'elle écrit." L.label_identify_body_woconfirm = "Identifier les corps sans appuyer sur le bouton 'confirmer'" @@ -2369,3 +2372,20 @@ L.vehicle_enter = "Appuyez sur [{usekey}] pour entrer dans le véhicule" -- 2024-11-27 --L.corpse_hint_without_confirm = "Press [{usekey}] to search." + +-- 2025-01-05 +--L.help_session_limits_mode = [[ +--There are three different session limit modes you can choose from: +-- +--mode 0: No session limits. TTT2 will not end the session and will not trigger a map change. +-- +--mode 1: Default TTT2 mode. A map change will trigger if either the session time or session round count runs out. +-- +--mode 2: Only time limit. A map change will only trigger if the session time runs out. +-- +--mode 3: Only round limit. A map change will only trigger if the session round count runs out.]] +--L.label_session_limits_mode = "Set session limit mode" +--L.choice_session_limits_mode_0 = "mode 0: no session limits" +--L.choice_session_limits_mode_1 = "mode 1: time and round limit" +--L.choice_session_limits_mode_2 = "mode 2: only time limit" +--L.choice_session_limits_mode_3 = "mode 3: only round limit" diff --git a/lua/terrortown/lang/it.lua b/lua/terrortown/lang/it.lua index c7b66fdd2..77160c29a 100644 --- a/lua/terrortown/lang/it.lua +++ b/lua/terrortown/lang/it.lua @@ -38,7 +38,9 @@ L.win_showreport = "Guardiamo il report per {num} secondi." L.limit_round = "Raggiunto il limite del tempo del round. la prossima mappa caricherà presto." L.limit_time = "Il tempo è finito. la prossima mappa caricherà presto." -L.limit_left = "{num} round o {time} minuti rimanenti prima che la mappa cambi." +L.limit_left_session_mode_1 = "{num} round o {time} minuti rimanenti prima che la mappa cambi." +--L.limit_left_session_mode_2 = "{time} minutes remaining before the map changes." +--L.limit_left_session_mode_3 = "{num} round(s) remaining before the map changes." -- Credit awards L.credit_all = "Al tuo team sono stati dati {num} crediti per la vostra performance." @@ -167,8 +169,10 @@ L.quick_corpse_id = " il corpo di {player}" -- Scoreboard L.sb_playing = "Stai giocando su..." -L.sb_mapchange = "La mappa cambierà tra {num} round o tra {time}" ---L.sb_mapchange_disabled = "Session limits are disabled." +--L.sb_mapchange_mode_0 = "Session limits are disabled." +L.sb_mapchange_mode_1 = "La mappa cambierà tra {num} round o tra {time}" +--L.sb_mapchange_mode_2 = "Map changes in {time}" +--L.sb_mapchange_mode_3 = "Map changes in {num} rounds" L.sb_mia = "Disperso" L.sb_confirmed = "Morti confermati" @@ -1672,7 +1676,6 @@ L.desc_event_kill_other_using = "{victim} ({vrole} / {vteam}) è stata ucciso da --L.label_time_limit_minutes = "Upper limit of playtime in minutes" --L.label_nade_throw_during_prep = "Enable grenade throwing during preparing time" --L.label_postround_dm = "Enable deathmatch after round ended" ---L.label_session_limits_enabled = "Enable session limits" --L.label_spectator_chat = "Enable spectators chatting with everybody" --L.label_lastwords_chatprint = "Print last words to chat if killed while typing" --L.label_identify_body_woconfirm = "Identify corpse without pressing the 'confirm' button" @@ -2369,3 +2372,20 @@ L.decoy_help_primary = "Piazza un esca" -- 2024-11-27 --L.corpse_hint_without_confirm = "Press [{usekey}] to search." + +-- 2025-01-05 +--L.help_session_limits_mode = [[ +--There are three different session limit modes you can choose from: +-- +--mode 0: No session limits. TTT2 will not end the session and will not trigger a map change. +-- +--mode 1: Default TTT2 mode. A map change will trigger if either the session time or session round count runs out. +-- +--mode 2: Only time limit. A map change will only trigger if the session time runs out. +-- +--mode 3: Only round limit. A map change will only trigger if the session round count runs out.]] +--L.label_session_limits_mode = "Set session limit mode" +--L.choice_session_limits_mode_0 = "mode 0: no session limits" +--L.choice_session_limits_mode_1 = "mode 1: time and round limit" +--L.choice_session_limits_mode_2 = "mode 2: only time limit" +--L.choice_session_limits_mode_3 = "mode 3: only round limit" diff --git a/lua/terrortown/lang/ja.lua b/lua/terrortown/lang/ja.lua index ea54f3be0..f114f0391 100644 --- a/lua/terrortown/lang/ja.lua +++ b/lua/terrortown/lang/ja.lua @@ -38,7 +38,9 @@ L.win_showreport = "さあ{num}秒の間ラウンドレポートを見てみよ L.limit_round = "ラウンドリミットに達した。もうすぐロードされるだろう。" L.limit_time = "タイムリミットに達した。もうすぐロードされるだろう。" -L.limit_left = "マップ変更するまで{num}ラウンドないし{time}分残っている。" +L.limit_left_session_mode_1 = "マップ変更するまで{num}ラウンドないし{time}分残っている。" +--L.limit_left_session_mode_2 = "{time} minutes remaining before the map changes." +--L.limit_left_session_mode_3 = "{num} round(s) remaining before the map changes." -- Credit awards L.credit_all = "任務遂行により、{num}個のクレジットを受け取った。" @@ -167,8 +169,10 @@ L.quick_corpse_id = "{player}の死体" -- Scoreboard L.sb_playing = "サーバー名" -L.sb_mapchange = "マップ変更まで{num}ラウンドか{time}秒" -L.sb_mapchange_disabled = "セッションの制限を無くしました。" +L.sb_mapchange_mode_0 = "セッションの制限を無くしました。" +L.sb_mapchange_mode_1 = "マップ変更まで{num}ラウンドか{time}秒" +--L.sb_mapchange_mode_2 = "Map changes in {time}" +--L.sb_mapchange_mode_3 = "Map changes in {num} rounds" L.sb_mia = "行方不明" L.sb_confirmed = "死亡確認" @@ -1673,7 +1677,6 @@ L.label_round_limit = "ラウンド最大数" L.label_time_limit_minutes = "ラウンド時間の上限(分)" L.label_nade_throw_during_prep = "準備時間中に手榴弾の投擲の有効" L.label_postround_dm = "ラウンド終了時間中のデスマッチを有効" -L.label_session_limits_enabled = "セッションの制限を有効にする" L.label_spectator_chat = "観戦者同士でのチャットの有無" L.label_lastwords_chatprint = "タイピング中に殺されたら遺言を送信する" L.label_identify_body_woconfirm = "'確認'ボタン無しで死体を特定" @@ -2372,3 +2375,20 @@ L.label_player_role = "役職選択" -- 2024-11-27 --L.corpse_hint_without_confirm = "Press [{usekey}] to search." + +-- 2025-01-05 +--L.help_session_limits_mode = [[ +--There are three different session limit modes you can choose from: +-- +--mode 0: No session limits. TTT2 will not end the session and will not trigger a map change. +-- +--mode 1: Default TTT2 mode. A map change will trigger if either the session time or session round count runs out. +-- +--mode 2: Only time limit. A map change will only trigger if the session time runs out. +-- +--mode 3: Only round limit. A map change will only trigger if the session round count runs out.]] +--L.label_session_limits_mode = "Set session limit mode" +--L.choice_session_limits_mode_0 = "mode 0: no session limits" +--L.choice_session_limits_mode_1 = "mode 1: time and round limit" +--L.choice_session_limits_mode_2 = "mode 2: only time limit" +--L.choice_session_limits_mode_3 = "mode 3: only round limit" diff --git a/lua/terrortown/lang/ko.lua b/lua/terrortown/lang/ko.lua index a178051a6..2c47356c6 100644 --- a/lua/terrortown/lang/ko.lua +++ b/lua/terrortown/lang/ko.lua @@ -33,7 +33,9 @@ L.win_showreport = "{num}초 간 라운드 보고서를 살펴보겠습니다." L.limit_round = "라운드 제한 도달. 다음 맵으로 곧 변경됩니다." L.limit_time = "시간 제한 도달. 다음 맵으로 곧 변경됩니다." -L.limit_left = "{num} 라운드나 {time} 분 후에 맵이 변경됩니다." +L.limit_left_session_mode_1 = "{num} 라운드나 {time} 분 후에 맵이 변경됩니다." +--L.limit_left_session_mode_2 = "{time} minutes remaining before the map changes." +--L.limit_left_session_mode_3 = "{num} round(s) remaining before the map changes." -- Credit awards L.credit_all = "당신의 활약으로 팀이 {num} 장비 크레딧을 얻었습니다." @@ -162,8 +164,10 @@ L.quick_corpse_id = "{player}의 시체" -- Scoreboard L.sb_playing = "당신이 플레이 중인 곳은..." -L.sb_mapchange = "{num}라운드 또는 {time} 분 후에 맵이 변경됩니다." -L.sb_mapchange_disabled = "세션 제한이 비활성화 되었습니다." +L.sb_mapchange_mode_0 = "세션 제한이 비활성화 되었습니다." +L.sb_mapchange_mode_1 = "{num}라운드 또는 {time} 분 후에 맵이 변경됩니다." +--L.sb_mapchange_mode_2 = "Map changes in {time}" +--L.sb_mapchange_mode_3 = "Map changes in {num} rounds" L.sb_mia = "실종" L.sb_confirmed = "사망 확인" @@ -1668,7 +1672,6 @@ L.help_max_slots = "한 슬롯당 최대 무기 수를 설정합니다. '-1'은 --L.label_time_limit_minutes = "Upper limit of playtime in minutes" --L.label_nade_throw_during_prep = "Enable grenade throwing during preparing time" --L.label_postround_dm = "Enable deathmatch after round ended" ---L.label_session_limits_enabled = "Enable session limits" --L.label_spectator_chat = "Enable spectators chatting with everybody" --L.label_lastwords_chatprint = "Print last words to chat if killed while typing" --L.label_identify_body_woconfirm = "Identify corpse without pressing the 'confirm' button" @@ -2366,3 +2369,20 @@ L.label_crosshair_size_gap = "크로스헤어 공간 배율" -- 2024-11-27 --L.corpse_hint_without_confirm = "Press [{usekey}] to search." + +-- 2025-01-05 +--L.help_session_limits_mode = [[ +--There are three different session limit modes you can choose from: +-- +--mode 0: No session limits. TTT2 will not end the session and will not trigger a map change. +-- +--mode 1: Default TTT2 mode. A map change will trigger if either the session time or session round count runs out. +-- +--mode 2: Only time limit. A map change will only trigger if the session time runs out. +-- +--mode 3: Only round limit. A map change will only trigger if the session round count runs out.]] +--L.label_session_limits_mode = "Set session limit mode" +--L.choice_session_limits_mode_0 = "mode 0: no session limits" +--L.choice_session_limits_mode_1 = "mode 1: time and round limit" +--L.choice_session_limits_mode_2 = "mode 2: only time limit" +--L.choice_session_limits_mode_3 = "mode 3: only round limit" diff --git a/lua/terrortown/lang/pl.lua b/lua/terrortown/lang/pl.lua index 0993e5113..a5bd239dc 100644 --- a/lua/terrortown/lang/pl.lua +++ b/lua/terrortown/lang/pl.lua @@ -38,7 +38,9 @@ L.win_showreport = "Spójrzmy na raport rundy na {num} sekund." --L.limit_round = "Round limit reached. The next map will load soon." --L.limit_time = "Time limit reached. The next map will load soon." ---L.limit_left = "{num} round(s) or {time} minutes remaining before the map changes." +--L.limit_left_session_mode_1 = "{num} round(s) or {time} minutes remaining before the map changes." +--L.limit_left_session_mode_2 = "{time} minutes remaining before the map changes." +--L.limit_left_session_mode_3 = "{num} round(s) remaining before the map changes." -- Credit awards L.credit_all = "Twój team został nagrodzony {num} kredytami na zakupy." @@ -167,8 +169,10 @@ L.quick_corpse_id = "ciało gracza {player}" -- Scoreboard L.sb_playing = "Grasz na..." -L.sb_mapchange = "Mapa zmieni się za {num} rund(ę) lub za {time}" ---L.sb_mapchange_disabled = "Session limits are disabled." +--L.sb_mapchange_mode_0 = "Session limits are disabled." +L.sb_mapchange_mode_1 = "Mapa zmieni się za {num} rund(ę) lub za {time}" +--L.sb_mapchange_mode_2 = "Map changes in {time}" +--L.sb_mapchange_mode_3 = "Map changes in {num} rounds" L.sb_mia = "Zaginiony w akcji" L.sb_confirmed = "Potwierdzony zgon" @@ -1672,7 +1676,6 @@ L.none = "Brak Roli" --L.label_time_limit_minutes = "Upper limit of playtime in minutes" --L.label_nade_throw_during_prep = "Enable grenade throwing during preparing time" --L.label_postround_dm = "Enable deathmatch after round ended" ---L.label_session_limits_enabled = "Enable session limits" --L.label_spectator_chat = "Enable spectators chatting with everybody" --L.label_lastwords_chatprint = "Print last words to chat if killed while typing" --L.label_identify_body_woconfirm = "Identify corpse without pressing the 'confirm' button" @@ -2369,3 +2372,20 @@ L.decoy_help_primary = "Rozstaw Wabik" -- 2024-11-27 --L.corpse_hint_without_confirm = "Press [{usekey}] to search." + +-- 2025-01-05 +--L.help_session_limits_mode = [[ +--There are three different session limit modes you can choose from: +-- +--mode 0: No session limits. TTT2 will not end the session and will not trigger a map change. +-- +--mode 1: Default TTT2 mode. A map change will trigger if either the session time or session round count runs out. +-- +--mode 2: Only time limit. A map change will only trigger if the session time runs out. +-- +--mode 3: Only round limit. A map change will only trigger if the session round count runs out.]] +--L.label_session_limits_mode = "Set session limit mode" +--L.choice_session_limits_mode_0 = "mode 0: no session limits" +--L.choice_session_limits_mode_1 = "mode 1: time and round limit" +--L.choice_session_limits_mode_2 = "mode 2: only time limit" +--L.choice_session_limits_mode_3 = "mode 3: only round limit" diff --git a/lua/terrortown/lang/pt_br.lua b/lua/terrortown/lang/pt_br.lua index 266facbf9..576ad6c33 100644 --- a/lua/terrortown/lang/pt_br.lua +++ b/lua/terrortown/lang/pt_br.lua @@ -38,7 +38,9 @@ L.win_showreport = "Os resultados da rodada serão exibidos por {num} segundos." L.limit_round = "Limite de rodadas atingido. O próximo mapa mudará em breve." L.limit_time = "Tempo limite atingindo. O próximo mapa mudará em breve." -L.limit_left = "Ainda há {num} rodada(s) ou {time} minutos restantes antes da troca de mapa." +L.limit_left_session_mode_1 = "Ainda há {num} rodada(s) ou {time} minutos restantes antes da troca de mapa." +--L.limit_left_session_mode_2 = "{time} minutes remaining before the map changes." +--L.limit_left_session_mode_3 = "{num} round(s) remaining before the map changes." -- Credit awards L.credit_all = "Seu time foi recompensado com {num} crédito(s) de equipamento por seu desempenho." @@ -167,8 +169,10 @@ L.quick_corpse_id = "o cadáver de {player}" -- Scoreboard L.sb_playing = "Você está jogando em..." -L.sb_mapchange = "O mapa será mudado em {num} rodadas ou em {time}" ---L.sb_mapchange_disabled = "Session limits are disabled." +--L.sb_mapchange_mode_0 = "Session limits are disabled." +L.sb_mapchange_mode_1 = "O mapa será mudado em {num} rodadas ou em {time}" +--L.sb_mapchange_mode_2 = "Map changes in {time}" +--L.sb_mapchange_mode_3 = "Map changes in {num} rounds" L.sb_mia = "Desaparecidos" L.sb_confirmed = "Mortes Confirmadas" @@ -1672,7 +1676,6 @@ L.xfer_team_indicator = "Time" --L.label_time_limit_minutes = "Upper limit of playtime in minutes" --L.label_nade_throw_during_prep = "Enable grenade throwing during preparing time" --L.label_postround_dm = "Enable deathmatch after round ended" ---L.label_session_limits_enabled = "Enable session limits" --L.label_spectator_chat = "Enable spectators chatting with everybody" --L.label_lastwords_chatprint = "Print last words to chat if killed while typing" --L.label_identify_body_woconfirm = "Identify corpse without pressing the 'confirm' button" @@ -2369,3 +2372,20 @@ L.decoy_help_primary = "Plantar a isca" -- 2024-11-27 --L.corpse_hint_without_confirm = "Press [{usekey}] to search." + +-- 2025-01-05 +--L.help_session_limits_mode = [[ +--There are three different session limit modes you can choose from: +-- +--mode 0: No session limits. TTT2 will not end the session and will not trigger a map change. +-- +--mode 1: Default TTT2 mode. A map change will trigger if either the session time or session round count runs out. +-- +--mode 2: Only time limit. A map change will only trigger if the session time runs out. +-- +--mode 3: Only round limit. A map change will only trigger if the session round count runs out.]] +--L.label_session_limits_mode = "Set session limit mode" +--L.choice_session_limits_mode_0 = "mode 0: no session limits" +--L.choice_session_limits_mode_1 = "mode 1: time and round limit" +--L.choice_session_limits_mode_2 = "mode 2: only time limit" +--L.choice_session_limits_mode_3 = "mode 3: only round limit" diff --git a/lua/terrortown/lang/ru.lua b/lua/terrortown/lang/ru.lua index b0939d318..24c99edf9 100644 --- a/lua/terrortown/lang/ru.lua +++ b/lua/terrortown/lang/ru.lua @@ -40,7 +40,9 @@ L.win_showreport = "Давайте посмотрим на результаты L.limit_round = "Достигнут лимит раундов. Следующая карта скоро загрузится." L.limit_time = "Достигнут лимит времени. Следующая карта скоро загрузится." -L.limit_left = "До смены карты осталось {num} раунд (а/ов) или {time} мин." +L.limit_left_session_mode_1 = "До смены карты осталось {num} раунд (а/ов) или {time} мин." +--L.limit_left_session_mode_2 = "{time} minutes remaining before the map changes." +--L.limit_left_session_mode_3 = "{num} round(s) remaining before the map changes." -- Credit awards L.credit_all = "Ваша команда награждена кредитами ({num}) за ваши действия." @@ -169,8 +171,10 @@ L.quick_corpse_id = "{player} (тело)" -- Scoreboard L.sb_playing = "Вы играете на..." -L.sb_mapchange = "Карта сменится через {num} раунд (а/ов) или {time}" -L.sb_mapchange_disabled = "Лимиты сеанса выключены." +L.sb_mapchange_mode_0 = "Лимиты сеанса выключены." +L.sb_mapchange_mode_1 = "Карта сменится через {num} раунд (а/ов) или {time}" +--L.sb_mapchange_mode_2 = "Map changes in {time}" +--L.sb_mapchange_mode_3 = "Map changes in {num} rounds" L.sb_mia = "Пропавшие без вести" L.sb_confirmed = "Мёртвые" @@ -1674,7 +1678,6 @@ L.label_round_limit = "Верхний лимит раундов" L.label_time_limit_minutes = "Верхний лимит времени игры в минутах" L.label_nade_throw_during_prep = "Включить метание гранат во время подготовки." L.label_postround_dm = "Включать бой насмерть по окончанию раунда." -L.label_session_limits_enabled = "Включить лимиты сеанса." L.label_spectator_chat = "Включить общение наблюдателей со всеми." L.label_lastwords_chatprint = "Включить вывод последних слов в чат при смерти во время написания." L.label_identify_body_woconfirm = "Опознавать тела без нажатия кнопки подтверждения." @@ -2371,3 +2374,20 @@ L.vehicle_enter = "[{usekey}] Сесть в транспорт." -- 2024-11-27 L.corpse_hint_without_confirm = "[{usekey}] Осмотреть тело." + +-- 2025-01-05 +--L.help_session_limits_mode = [[ +--There are three different session limit modes you can choose from: +-- +--mode 0: No session limits. TTT2 will not end the session and will not trigger a map change. +-- +--mode 1: Default TTT2 mode. A map change will trigger if either the session time or session round count runs out. +-- +--mode 2: Only time limit. A map change will only trigger if the session time runs out. +-- +--mode 3: Only round limit. A map change will only trigger if the session round count runs out.]] +--L.label_session_limits_mode = "Set session limit mode" +--L.choice_session_limits_mode_0 = "mode 0: no session limits" +--L.choice_session_limits_mode_1 = "mode 1: time and round limit" +--L.choice_session_limits_mode_2 = "mode 2: only time limit" +--L.choice_session_limits_mode_3 = "mode 3: only round limit" diff --git a/lua/terrortown/lang/sv.lua b/lua/terrortown/lang/sv.lua index d8ad21d5e..f001c86c6 100644 --- a/lua/terrortown/lang/sv.lua +++ b/lua/terrortown/lang/sv.lua @@ -38,7 +38,9 @@ L.win_showreport = "Låt oss ta en titt på rund-rapporten i {num} sekunder." --L.limit_round = "Round limit reached. The next map will load soon." --L.limit_time = "Time limit reached. The next map will load soon." ---L.limit_left = "{num} round(s) or {time} minutes remaining before the map changes." +--L.limit_left_session_mode_1 = "{num} round(s) or {time} minutes remaining before the map changes." +--L.limit_left_session_mode_2 = "{time} minutes remaining before the map changes." +--L.limit_left_session_mode_3 = "{num} round(s) remaining before the map changes." -- Credit awards --L.credit_all = "Your team have been awarded {num} equipment credit(s) for your performance." @@ -167,8 +169,10 @@ L.quick_corpse_id = "{player}s lik" -- Scoreboard L.sb_playing = "Du spelar på..." -L.sb_mapchange = "Kartan ändras om {num} rundor eller om {time}" ---L.sb_mapchange_disabled = "Session limits are disabled." +--L.sb_mapchange_mode_0 = "Session limits are disabled." +L.sb_mapchange_mode_1 = "Kartan ändras om {num} rundor eller om {time}" +--L.sb_mapchange_mode_2 = "Map changes in {time}" +--L.sb_mapchange_mode_3 = "Map changes in {num} rounds" L.sb_mia = "Saknad I Strid" L.sb_confirmed = "Bekräftad Död" @@ -1672,7 +1676,6 @@ L.hilite_win_traitors = "FÖRRÄDISK VINST" --L.label_time_limit_minutes = "Upper limit of playtime in minutes" --L.label_nade_throw_during_prep = "Enable grenade throwing during preparing time" --L.label_postround_dm = "Enable deathmatch after round ended" ---L.label_session_limits_enabled = "Enable session limits" --L.label_spectator_chat = "Enable spectators chatting with everybody" --L.label_lastwords_chatprint = "Print last words to chat if killed while typing" --L.label_identify_body_woconfirm = "Identify corpse without pressing the 'confirm' button" @@ -2369,3 +2372,20 @@ L.body_confirm_one = "{finder} bekräftade att {victim} har dött." -- 2024-11-27 --L.corpse_hint_without_confirm = "Press [{usekey}] to search." + +-- 2025-01-05 +--L.help_session_limits_mode = [[ +--There are three different session limit modes you can choose from: +-- +--mode 0: No session limits. TTT2 will not end the session and will not trigger a map change. +-- +--mode 1: Default TTT2 mode. A map change will trigger if either the session time or session round count runs out. +-- +--mode 2: Only time limit. A map change will only trigger if the session time runs out. +-- +--mode 3: Only round limit. A map change will only trigger if the session round count runs out.]] +--L.label_session_limits_mode = "Set session limit mode" +--L.choice_session_limits_mode_0 = "mode 0: no session limits" +--L.choice_session_limits_mode_1 = "mode 1: time and round limit" +--L.choice_session_limits_mode_2 = "mode 2: only time limit" +--L.choice_session_limits_mode_3 = "mode 3: only round limit" diff --git a/lua/terrortown/lang/tr.lua b/lua/terrortown/lang/tr.lua index a45dde18b..11667f7f7 100644 --- a/lua/terrortown/lang/tr.lua +++ b/lua/terrortown/lang/tr.lua @@ -38,7 +38,9 @@ L.win_showreport = "{num} saniye boyunca raunt raporuna bakalım." L.limit_round = "Raunt sınırına ulaşıldı. Bir sonraki harita yakında yüklenecek." L.limit_time = "Zaman sınırına ulaşıldı. Bir sonraki harita yakında yüklenecek." -L.limit_left = "Harita değişmeden önce {num} raunt veya {time} dakika kaldı." +L.limit_left_session_mode_1 = "Harita değişmeden önce {num} raunt veya {time} dakika kaldı." +--L.limit_left_session_mode_2 = "{time} minutes remaining before the map changes." +--L.limit_left_session_mode_3 = "{num} round(s) remaining before the map changes." -- Credit awards L.credit_all = "Takımınıza performansınız için {num} ekipman kredisi verildi." @@ -167,8 +169,10 @@ L.quick_corpse_id = "{player} adlı ceset" -- Scoreboard L.sb_playing = "Şu anda bu sunucuda oynuyorsunuz..." -L.sb_mapchange = "{num} rauntta veya {time} içinde harita değişecektir." -L.sb_mapchange_disabled = "Oturum sınırları devre dışı." +L.sb_mapchange_mode_0 = "Oturum sınırları devre dışı." +L.sb_mapchange_mode_1 = "{num} rauntta veya {time} içinde harita değişecektir." +--L.sb_mapchange_mode_2 = "Map changes in {time}" +--L.sb_mapchange_mode_3 = "Map changes in {num} rounds" L.sb_mia = "Çatışmada Kayıp" L.sb_confirmed = "Onaylanmış Ölü" @@ -1672,7 +1676,6 @@ L.label_round_limit = "Rauntların üst sınırı" L.label_time_limit_minutes = "Oyun süresinin dakika cinsinden üst sınırı" L.label_nade_throw_during_prep = "Hazırlık süresi boyunca bomba atmayı etkinleştir" L.label_postround_dm = "Raunt bittikten sonra ölüm maçını etkinleştir" -L.label_session_limits_enabled = "Oturum sınırlarını etkinleştir" L.label_spectator_chat = "İzleyicilerin herkesle sohbet etmesini sağla" L.label_lastwords_chatprint = "Yazarken öldürülürse sohbete son kelimelerini yazdır" L.label_identify_body_woconfirm = "'Onayla' düğmesine basmadan cesedi tanımla" @@ -2369,3 +2372,20 @@ L.vehicle_enter = "Araca girmek için [{usekey}] tuşuna bas" -- 2024-11-27 L.corpse_hint_without_confirm = "Aramak için [{usekey}] tuşuna bas." + +-- 2025-01-05 +--L.help_session_limits_mode = [[ +--There are three different session limit modes you can choose from: +-- +--mode 0: No session limits. TTT2 will not end the session and will not trigger a map change. +-- +--mode 1: Default TTT2 mode. A map change will trigger if either the session time or session round count runs out. +-- +--mode 2: Only time limit. A map change will only trigger if the session time runs out. +-- +--mode 3: Only round limit. A map change will only trigger if the session round count runs out.]] +--L.label_session_limits_mode = "Set session limit mode" +--L.choice_session_limits_mode_0 = "mode 0: no session limits" +--L.choice_session_limits_mode_1 = "mode 1: time and round limit" +--L.choice_session_limits_mode_2 = "mode 2: only time limit" +--L.choice_session_limits_mode_3 = "mode 3: only round limit" diff --git a/lua/terrortown/lang/uk.lua b/lua/terrortown/lang/uk.lua index 078d69595..54c746077 100644 --- a/lua/terrortown/lang/uk.lua +++ b/lua/terrortown/lang/uk.lua @@ -38,7 +38,9 @@ L.win_showreport = "Подивімось на звіт раунду протяг --L.limit_round = "Round limit reached. The next map will load soon." --L.limit_time = "Time limit reached. The next map will load soon." ---L.limit_left = "{num} round(s) or {time} minutes remaining before the map changes." +--L.limit_left_session_mode_1 = "{num} round(s) or {time} minutes remaining before the map changes." +--L.limit_left_session_mode_2 = "{time} minutes remaining before the map changes." +--L.limit_left_session_mode_3 = "{num} round(s) remaining before the map changes." -- Credit awards --L.credit_all = "Your team have been awarded {num} equipment credit(s) for your performance." @@ -167,8 +169,10 @@ L.quick_corpse_id = "Тіло {player}" -- Scoreboard L.sb_playing = "Ви граєте на..." -L.sb_mapchange = "Мапа зміниться через {num} раундів або через {time}" ---L.sb_mapchange_disabled = "Session limits are disabled." +--L.sb_mapchange_mode_0 = "Session limits are disabled." +L.sb_mapchange_mode_1 = "Мапа зміниться через {num} раундів або через {time}" +--L.sb_mapchange_mode_2 = "Map changes in {time}" +--L.sb_mapchange_mode_3 = "Map changes in {num} rounds" L.sb_mia = "Зниклі безвісти" L.sb_confirmed = "Смерть підтверджено" @@ -1672,7 +1676,6 @@ L.hilite_win_traitors = "ЗРАДНИКИ ПЕРЕМОГЛИ" --L.label_time_limit_minutes = "Upper limit of playtime in minutes" --L.label_nade_throw_during_prep = "Enable grenade throwing during preparing time" --L.label_postround_dm = "Enable deathmatch after round ended" ---L.label_session_limits_enabled = "Enable session limits" --L.label_spectator_chat = "Enable spectators chatting with everybody" --L.label_lastwords_chatprint = "Print last words to chat if killed while typing" --L.label_identify_body_woconfirm = "Identify corpse without pressing the 'confirm' button" @@ -2369,3 +2372,20 @@ L.body_confirm_one = "{finder} підтверджує смерть {victim}." -- 2024-11-27 --L.corpse_hint_without_confirm = "Press [{usekey}] to search." + +-- 2025-01-05 +--L.help_session_limits_mode = [[ +--There are three different session limit modes you can choose from: +-- +--mode 0: No session limits. TTT2 will not end the session and will not trigger a map change. +-- +--mode 1: Default TTT2 mode. A map change will trigger if either the session time or session round count runs out. +-- +--mode 2: Only time limit. A map change will only trigger if the session time runs out. +-- +--mode 3: Only round limit. A map change will only trigger if the session round count runs out.]] +--L.label_session_limits_mode = "Set session limit mode" +--L.choice_session_limits_mode_0 = "mode 0: no session limits" +--L.choice_session_limits_mode_1 = "mode 1: time and round limit" +--L.choice_session_limits_mode_2 = "mode 2: only time limit" +--L.choice_session_limits_mode_3 = "mode 3: only round limit" diff --git a/lua/terrortown/lang/zh_hans.lua b/lua/terrortown/lang/zh_hans.lua index 65d54af03..3ee09a693 100644 --- a/lua/terrortown/lang/zh_hans.lua +++ b/lua/terrortown/lang/zh_hans.lua @@ -38,7 +38,9 @@ L.win_showreport = "来看一下 {num} 秒的回合总结吧!" L.limit_round = "达到回合限制。即将加载下一张地图。" L.limit_time = "达到时间限制。即将加载下一张地图。" -L.limit_left = "新地图将在 {num} 回合或 {time} 分钟后切换。" +L.limit_left_session_mode_1 = "新地图将在 {num} 回合或 {time} 分钟后切换。" +--L.limit_left_session_mode_2 = "{time} minutes remaining before the map changes." +--L.limit_left_session_mode_3 = "{num} round(s) remaining before the map changes." -- Credit awards L.credit_all = "你的阵营因为表现获得了 {num} 点积分。" @@ -167,8 +169,10 @@ L.quick_corpse_id = " {player} 的尸体" -- Scoreboard L.sb_playing = "你正在玩的服务器是..." -L.sb_mapchange = "地图将于 {num} 个回合或是 {time} 后更换。" -L.sb_mapchange_disabled = "地图更换被禁用。" +L.sb_mapchange_mode_0 = "地图更换被禁用。" +L.sb_mapchange_mode_1 = "地图将于 {num} 个回合或是 {time} 后更换。" +--L.sb_mapchange_mode_2 = "Map changes in {time}" +--L.sb_mapchange_mode_3 = "Map changes in {num} rounds" L.sb_mia = "下落不明" L.sb_confirmed = "确认死亡" @@ -1672,7 +1676,6 @@ L.label_round_limit = "回合数上限" L.label_time_limit_minutes = "游戏时间上限,以分钟为单位" L.label_nade_throw_during_prep = "在准备时间内允许投掷手榴弹" L.label_postround_dm = "回合结束后启用死亡竞赛" -L.label_session_limits_enabled = "启用地图更换" L.label_spectator_chat = "启用观察者与大家聊天的功能" L.label_lastwords_chatprint = "如果在打字时被杀,则发出最后一句话至聊天室" L.label_identify_body_woconfirm = "不按'确认'按钮识别尸体" @@ -2369,3 +2372,20 @@ L.label_player_role = "选择角色" -- 2024-11-27 --L.corpse_hint_without_confirm = "Press [{usekey}] to search." + +-- 2025-01-05 +--L.help_session_limits_mode = [[ +--There are three different session limit modes you can choose from: +-- +--mode 0: No session limits. TTT2 will not end the session and will not trigger a map change. +-- +--mode 1: Default TTT2 mode. A map change will trigger if either the session time or session round count runs out. +-- +--mode 2: Only time limit. A map change will only trigger if the session time runs out. +-- +--mode 3: Only round limit. A map change will only trigger if the session round count runs out.]] +--L.label_session_limits_mode = "Set session limit mode" +--L.choice_session_limits_mode_0 = "mode 0: no session limits" +--L.choice_session_limits_mode_1 = "mode 1: time and round limit" +--L.choice_session_limits_mode_2 = "mode 2: only time limit" +--L.choice_session_limits_mode_3 = "mode 3: only round limit" diff --git a/lua/terrortown/lang/zh_tw.lua b/lua/terrortown/lang/zh_tw.lua index 68b15ce7a..eb29b5234 100644 --- a/lua/terrortown/lang/zh_tw.lua +++ b/lua/terrortown/lang/zh_tw.lua @@ -38,7 +38,9 @@ L.win_showreport = "一起觀看觀看 {num} 秒的回合總結吧!" L.limit_round = "達到回合限制。即將加載下一張地圖。" L.limit_time = "達到時間限制。即將加載下一張地圖。" -L.limit_left = "新地圖將在 {num} 回合或 {time} 分鐘後切換。" +L.limit_left_session_mode_1 = "新地圖將在 {num} 回合或 {time} 分鐘後切換。" +--L.limit_left_session_mode_2 = "{time} minutes remaining before the map changes." +--L.limit_left_session_mode_3 = "{num} round(s) remaining before the map changes." -- Credit awards L.credit_all = "你的陣營因為表現獲得了 {num} 點信用點數。" @@ -167,8 +169,10 @@ L.quick_corpse_id = " {player} 的屍體" -- Scoreboard L.sb_playing = "你正在玩的伺服是.." -L.sb_mapchange = "地圖將於 {num} 個回合或是 {time} 後更換" -L.sb_mapchange_disabled = "地圖更換被禁用。" +L.sb_mapchange_mode_0 = "地圖更換被禁用。" +L.sb_mapchange_mode_1 = "地圖將於 {num} 個回合或是 {time} 後更換" +--L.sb_mapchange_mode_2 = "Map changes in {time}" +--L.sb_mapchange_mode_3 = "Map changes in {num} rounds" L.sb_mia = "下落不明" L.sb_confirmed = "確認死亡" @@ -1672,7 +1676,6 @@ L.label_round_limit = "回合數上限" L.label_time_limit_minutes = "遊戲時間上限,以分鐘為單位" L.label_nade_throw_during_prep = "在準備時間內允許投擲手榴彈" L.label_postround_dm = "回合結束後啟用死亡競賽" -L.label_session_limits_enabled = "啟用地圖更換" L.label_spectator_chat = "啟用觀察者與大家聊天的功能" L.label_lastwords_chatprint = "如果在打字時被殺,則發出最後一句話至聊天室" L.label_identify_body_woconfirm = "不按'確認'按鈕識別屍體" @@ -2369,3 +2372,20 @@ L.decoy_help_primary = "安放誘餌" -- 2024-11-27 --L.corpse_hint_without_confirm = "Press [{usekey}] to search." + +-- 2025-01-05 +--L.help_session_limits_mode = [[ +--There are three different session limit modes you can choose from: +-- +--mode 0: No session limits. TTT2 will not end the session and will not trigger a map change. +-- +--mode 1: Default TTT2 mode. A map change will trigger if either the session time or session round count runs out. +-- +--mode 2: Only time limit. A map change will only trigger if the session time runs out. +-- +--mode 3: Only round limit. A map change will only trigger if the session round count runs out.]] +--L.label_session_limits_mode = "Set session limit mode" +--L.choice_session_limits_mode_0 = "mode 0: no session limits" +--L.choice_session_limits_mode_1 = "mode 1: time and round limit" +--L.choice_session_limits_mode_2 = "mode 2: only time limit" +--L.choice_session_limits_mode_3 = "mode 3: only round limit" diff --git a/lua/terrortown/menus/gamemode/administration/roundsetup.lua b/lua/terrortown/menus/gamemode/administration/roundsetup.lua index da6dd9ca2..1b67db1a6 100644 --- a/lua/terrortown/menus/gamemode/administration/roundsetup.lua +++ b/lua/terrortown/menus/gamemode/administration/roundsetup.lua @@ -143,14 +143,24 @@ function CLGAMEMODESUBMENU:Populate(parent) local form5 = vgui.CreateTTT2Form(parent, "header_round_setup_map_duration") - local enbSessionLimitsEnabled = form5:MakeCheckBox({ - serverConvar = "ttt_session_limits_enabled", - label = "label_session_limits_enabled", + form5:MakeHelp({ + label = "help_session_limits_mode", + }) + + local enbSessionLimitsMode = form5:MakeComboBox({ + label = "label_session_limits_mode", + serverConvar = "ttt_session_limits_mode", + choices = { + { title = TryT("choice_session_limits_mode_0"), value = 0 }, + { title = TryT("choice_session_limits_mode_1"), value = 1 }, + { title = TryT("choice_session_limits_mode_2"), value = 2 }, + { title = TryT("choice_session_limits_mode_3"), value = 3 }, + }, }) form5:MakeHelp({ label = "help_round_limit", - master = enbSessionLimitsEnabled, + master = enbSessionLimitsMode, }) form5:MakeSlider({ @@ -159,7 +169,7 @@ function CLGAMEMODESUBMENU:Populate(parent) min = 0, max = 100, decimal = 0, - master = enbSessionLimitsEnabled, + master = enbSessionLimitsMode, }) form5:MakeSlider({ @@ -168,7 +178,7 @@ function CLGAMEMODESUBMENU:Populate(parent) min = 0, max = 175, decimal = 0, - master = enbSessionLimitsEnabled, + master = enbSessionLimitsMode, }) local form6 = vgui.CreateTTT2Form(parent, "header_loadingscreen") diff --git a/lua/ttt2/libraries/gameloop.lua b/lua/ttt2/libraries/gameloop.lua index 8f67396a4..b858edd04 100644 --- a/lua/ttt2/libraries/gameloop.lua +++ b/lua/ttt2/libraries/gameloop.lua @@ -48,7 +48,7 @@ local cvHasteMode = CreateConVar( --- -- @realm server local cvSessionLimits = CreateConVar( - "ttt_session_limits_enabled", + "ttt_session_limits_mode", "1", SERVER and { FCVAR_NOTIFY, FCVAR_ARCHIVE, FCVAR_REPLICATED } or FCVAR_REPLICATED ) @@ -626,7 +626,7 @@ if SERVER then local timeLeft = gameloop.GetLevelTimeLeft() local nextMap = string.upper(game.GetMapNext()) - if roundsLeft <= 0 or timeLeft <= 0 then + if roundsLeft == 0 or timeLeft == 0 then gameloop.StopTimers() gameloop.SetPhaseEnd(CurTime()) @@ -634,7 +634,10 @@ if SERVER then -- @realm server hook.Run("TTT2LoadNextMap", nextMap, roundsLeft, timeLeft) else - LANG.Msg("limit_left", { num = roundsLeft, time = math.ceil(timeLeft / 60) }) + LANG.Msg( + "limit_left_session_mode_" .. gameloop.GetLevelLimitsMode(), + { num = roundsLeft, time = math.ceil(timeLeft / 60) } + ) end end @@ -876,7 +879,10 @@ end -- @return number The amound of rounds left -- @realm shared function gameloop.GetRoundsLeft() - return GetGlobalInt("ttt_rounds_left", 0) + local sessionMode = gameloop.GetLevelLimitsMode() + return (sessionMode == 1 or sessionMode == 3) + and math.max(0, GetGlobalInt("ttt_rounds_left", 0)) + or -1 end --- @@ -884,7 +890,13 @@ end -- @return number The time left on this level -- @realm shared function gameloop.GetLevelTimeLeft() - return math.max(0, cvLevelTimeLimit:GetInt() * 60 - CurTime() + gameloop.GetLevelStartTime()) + local sessionMode = gameloop.GetLevelLimitsMode() + return (sessionMode == 1 or sessionMode == 2) + and math.max( + 0, + cvLevelTimeLimit:GetInt() * 60 - CurTime() + gameloop.GetLevelStartTime() + ) + or -1 end --- @@ -908,7 +920,15 @@ end -- @return boolean -- @realm shared function gameloop.HasLevelLimits() - return cvSessionLimits:GetBool() + return cvSessionLimits:GetInt() > 0 +end + +--- +-- Returns the convar value of 'ttt_session_limits_mode'. +-- @return number The session limit mode +-- @realm shared +function gameloop.GetLevelLimitsMode() + return cvSessionLimits:GetInt() end -- old function name aliases diff --git a/lua/ttt2/libraries/loadingscreen.lua b/lua/ttt2/libraries/loadingscreen.lua index 6495c7c05..e21921a35 100644 --- a/lua/ttt2/libraries/loadingscreen.lua +++ b/lua/ttt2/libraries/loadingscreen.lua @@ -238,11 +238,14 @@ if CLIENT then local roundsLeft, timeLeft = gameloop.UntilMapChange() text = LANG.GetParamTranslation( - "loadingscreen_round_restart_subtitle_limits", + "loadingscreen_round_restart_subtitle_limits_mode_" .. gameloop.GetLevelLimitsMode(), { map = game.GetMap(), rounds = roundsLeft + 1, time = timeLeft } ) else - text = LANG.TryTranslation("loadingscreen_round_restart_subtitle") + text = LANG.GetParamTranslation( + "loadingscreen_round_restart_subtitle_limits_mode_0", + { map = game.GetMap() } + ) end draw.AdvancedText(