Skip to content

Commit 86042bd

Browse files
committed
[UPDATE] Add translation RU
1 parent 52504df commit 86042bd

8 files changed

Lines changed: 598 additions & 357 deletions

File tree

README.md

Lines changed: 39 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,55 @@
1-
<p align="center">
1+
# Boring FPS
2+
3+
<p align="left">
24
<a href="#">
3-
<img src="https://i.imgur.com/MfQbQVv.png">
5+
<img src="https://i.imgur.com/fjbr9UW.png">
46
</a>
57
</p>
68

7-
# Boring FPS
8-
9-
*Sept 2025 - v0.1.0*
10-
119
The official Boring FPS Gamemode on Garry's Mod.
1210

1311
# ⚙️ Installation
1412

15-
Put the entire folder into the '/addons' folder
13+
<ol className="list-decimal list-inside text-gray-700 space-y-2 text-sm pc:text-xl">
14+
<li>Download the latest version of BoringFPS from the official website or GitHub repository.</li>
15+
<li>Extract the downloaded ZIP file to a location of your choice on your computer.</li>
16+
<li>Open your game installation directory(..\SteamLibrary\steamapps\common\GarrysMod\garrysmod).</li>
17+
<li>Copy the extracted BoringFPS files into the `addons` directory.</li>
18+
<li>Launch Garry's Mod through Steam.</li>
19+
<li>Access the BoringFPS mod through the selector menu in the right bottom corner (By default it's SandBox)</li>
20+
<li>Configure your desired settings and start playing, that's it!</li>
21+
</ol>
1622

1723
# 📄 Description
24+
25+
<p align="left">
26+
<a href="#">
27+
<img src="https://i.imgur.com/tz1hrvN.png">
28+
</a>
29+
</p>
30+
1831
Boring FPS is a game mode that combines board games and first-person shooters.<br>
1932
The goal of the game is to be the last survivor in the match.<br>
2033
You play alternately, for a defined period of time and you can perform actions during your turn, and also when it is not your turn.<br>
2134
You can choose between several classes, each of which will give you access to a unique weapon and unique characteristics in the pregame lobby area.<br>
2235

36+
# 🖇️ Links
37+
38+
[Wiki](https://www.boringfps.eu)
39+
40+
[Workshop]()
41+
42+
# 🛠️ Features
43+
- Class selection with unique weapons and abilities
44+
- Turn-based gameplay with action points system
45+
- Various maps designed specifically for the game mode
46+
- Unique weapons for each class
47+
- Pre-game lobby area
48+
- Multiplayer support for up to 6 players
49+
2350
# 🤝 Credits
24-
All the contents can be found [here]().
51+
52+
- Developer: [MrMarrant](https://steamcommunity.com/id/mrmarrant/) (me)
53+
- Original Idea : [LOCIDE](https://steamcommunity.com/profiles/76561198296490344/)
54+
- Contributors: [Jamz999](https://steamcommunity.com/id/Jamz999) for the backroom map
55+
- Testers: [Lunuki](https://steamcommunity.com/id/lunuki/), [Horizon](https://steamcommunity.com/profiles/76561198164104024/), [PapaMarc](https://steamcommunity.com/id/PapaMarc/), [Droma](https://steamcommunity.com/id/LeGamerFou119/), [Vauden](https://steamcommunity.com/id/Namonay/)

gamemodes/boringfps/gamemode/config/cl_config.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ surface.CreateFont( "SmallVT", {
1818

1919
surface.CreateFont( "VerySmallVT", {
2020
font = "VT323",
21-
size = 25
21+
size = 21
2222
} )
2323

2424
surface.CreateFont( "HudBoringFPS", {

gamemodes/boringfps/gamemode/language/sh_english.lua

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,14 @@ local EN = {
3333

3434
-- HUD
3535
select_class = "Select Your Class",
36+
wait_join = "Waiting for players to join...",
37+
game_starting_in = "Game will start soon...",
38+
starting_new_game_in = "Starting a new game in %d seconds...",
3639

3740
-- Weapons
3841
launcher_description = "The Launcher is a heavy class that fires explosive rockets that inflict area damage. The damage depends on the distance traveled (the longer the rocket travels, the less damage it inflicts).\n\nThe Launcher is slow and has few action points, but compensates for this with high damage. Furthermore, when firing, you suffer significant recoil, causing you to be knocked back several meters.",
3942
crowbar_description = "A simple crowbar, you have a lot of movement and dash points.\n\nYou can attack in close combat with your crowbar, inflicting moderate damage at short range.",
40-
touch_description = "The goal of this class is to touch as many players as possible with your weapon.\nIf you have touched at least one player, you can right-click to explode each player you have touched.\nYou have an indicator on the HUD for each player you have touched.\nOnce exploded, you become invisible until the end of your turn.",
43+
touch_description = "The goal of this class is to touch as many players as possible with your weapon.\nIf you have touched at least one player, you can right-click to explode each player you have touched.\nYou have an indicator on the HUD for each player you have touched.\nOnce exploded,if you have touch every players still alive, you become invisible until the end of your turn.",
4144
stalker_description = "A weapon that can shoot players through any walls.\nIn addition, you can reveal the positions of all other players for a short time by right-clicking. However, doing so will also reveal your position.",
4245
pistol_description = "A simple pistol that can double damage when aiming at the head.\nAdditionally, you can return to your starting position at the beginning of your turn by right-clicking.",
4346
shotgun_description = "A powerful short-range weapon that causes significant recoil to the player hit.\nIf a player suffering recoil hits a wall, they will take additional damage.",

gamemodes/boringfps/gamemode/language/sh_french.lua

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,14 @@ local FR = {
3333

3434
-- HUD
3535
select_class = "Sélectionnez une classe",
36+
wait_join = "En attente de joueurs...",
37+
game_starting_in = "Le jeu va bientôt commencer...",
38+
starting_new_game_in = "Démarrage d'une nouvelle partie dans %d secondes...",
3639

3740
-- Weapons
3841
launcher_description = "Le Launcher est une classe lourde, vous tirer des roquettes explosives qui infligent des dégâts de zone. en fonction de la distance parcourue (plus la roquette parcourt une longue distance, moins elle inflige de dégâts).\n\nLe Launcher est lent et possède peu de points d’action, mais compense cela avec des dégâts élevés, de plus en tirant, vous subissez un recul important vous faisant reculer de plusieurs mètres.",
3942
crowbar_description = "Une simple crowbar, vous avez beaucoup de points de mouvements et de dash.\n\nVous pouvez attaquer au corps à corps avec votre crowbar, infligeant des dégâts modérés à courte portée.",
40-
touch_description = "Le but de cette classe est de toucher le plus de joueur possible avec votre arme.\nSi vous avez touché au moins un joueur, vous pourrez via le clic droit, exploser chaque joueurs touchés.\nVous avez un indicateur sur l'HUD pour chaque joueur touché.\nUne fois explosé, vous devenez invisible jusqu'à la fin de votre tour.",
43+
touch_description = "Le but de cette classe est de toucher le plus de joueur possible avec votre arme.\nSi vous avez touché au moins un joueur, vous pourrez via le clic droit, exploser chaque joueurs touchés.\nVous avez un indicateur sur l'HUD pour chaque joueur touché.\nUne fois explosé, si vouis avez touchés tout les joueurs encore en vie, vous devenez invisible jusqu'à la fin de votre tour.",
4144
stalker_description = "Une arme pouvant tirer sur les joueurs à travers n'importe quel murs.\nDe plus vous pouvez révéler la positions de tout les autres joueurs pendant une courte durée via le clic droit. Cependant se faisant, vous révélez votre position aussi.",
4245
pistol_description = "Un simple pistolet, pouvant doubler les dégâts en visant la tête.\nDe plus, vous pouvez revenir à votre position de début de votre tour via le clic droit.",
4346
shotgun_description = "Une arme puissante à courte portée infligeant un recul important au joueur touché.\nSi un joueur subissant un recul touche un mur, il subira des dégâts supplémentaires.",
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
local RU = {
2+
help = "Помощь",
3+
help_desc = "Это страница помощи Boring FPS. Здесь вы найдете информацию об игре, правилах и о том, как играть.",
4+
start_game = "Начать игру",
5+
not_enough_spawns = "Недостаточно точек появления для всех игроков. Вы переведены в режим наблюдателя.",
6+
7+
-- Help Menu
8+
class_helper = "Справка по классам",
9+
help_select_class = "Выберите класс",
10+
11+
-- Rules
12+
rule = "Правила игры",
13+
rule_desc = "Цель игры — остаться последним выжившим в текущем матче.\nВы ходите по очереди, время на ход ограничено.\nВы можете совершать действия как во время своего хода, так и во время чужого.\nВ предигровом лобби можно выбрать один из нескольких классов, каждый из которых дает уникальное оружие и характеристики.",
14+
turn_comp = "Ваш ход",
15+
turn_indication = "- Используйте действия:\n → Стрельба\n → Спец. действие оружия\n → Перезарядка\n\n - Используйте очки передвижения",
16+
out_turn_comp = "Чужой ход",
17+
out_of_turn_indication = "- Используйте очки рывка, чтобы уклоняться от\nвыстрелов",
18+
legend = "Обозначения",
19+
action_point = "Очки действий",
20+
move_point = "Очки передвижения",
21+
dash_point = "Очки рывка",
22+
ammo_left = "Осталось патронов",
23+
turn_time = "Осталось времени в ходе",
24+
25+
-- Helper Class
26+
description_class = "Описание",
27+
stats_class = "Характеристики",
28+
action_class = "Очки действий",
29+
move_class = "Очки передвижения",
30+
dash_class = "Очки рывка",
31+
ammos_class = "Макс. боезапас",
32+
walkspeed_class = "Скорость ходьбы",
33+
34+
-- HUD
35+
select_class = "Выберите свой класс",
36+
wait_join = "Ожидание присоединения игроков...",
37+
game_starting_in = "Игра скоро начнется...",
38+
starting_new_game_in = "Новая игра начнется через %d секунд...",
39+
40+
-- Weapons
41+
launcher_description = "Launcher (Ракетница) — тяжелый класс, стреляющий разрывными ракетами с уроном по площади. Урон зависит от пройденного расстояния (чем дольше летит ракета, тем меньше урон).\n\nЭтот класс медленный и имеет мало очков действий, но компенсирует это высоким уроном. Кроме того, при выстреле вы получаете сильную отдачу, отбрасывающую вас на несколько метров назад.",
42+
crowbar_description = "Простая монтировка. У вас большой запас очков передвижения и рывка.\n\nВы можете атаковать монтировкой в ближнем бою, нанося средний урон на короткой дистанции.",
43+
touch_description = "Цель этого класса — коснуться своим оружием как можно большего числа игроков.\nЕсли вы коснулись хотя бы одного игрока, нажмите ПКМ, чтобы взорвать всех отмеченных.\nНа HUD есть индикатор для каждого игрока, которого вы коснулись.\nПосле взрыва вы становитесь невидимым до конца своего хода.",
44+
stalker_description = "Оружие, способное простреливать любые стены.\nКроме того, нажав ПКМ, вы можете ненадолго раскрыть местоположение всех остальных игроков. Однако это также раскроет и вашу позицию.",
45+
pistol_description = "Простой пистолет, наносящий двойной урон при попадании в голову.\nКроме того, нажав ПКМ, вы можете вернуться на позицию, где находились в начале своего хода.",
46+
shotgun_description = "Мощное оружие ближнего боя, которое вызывает сильную отдачу у цели.\nЕсли отброшенный игрок ударится о стену, он получит дополнительный урон.",
47+
invalid_weapon = "Недопустимое оружие класса.",
48+
change_class = "Вы сменили оружие класса на: %s",
49+
touch_explode = "Вы взорвали игроков, которых коснулись.",
50+
51+
-- Game
52+
move_point_empty = "Вы потратили все очки передвижения.",
53+
wait_state = "Вы находитесь в режиме ожидания.",
54+
play_state = "Вы сейчас в игре.",
55+
ff_disabled = "Условия не выполнены...",
56+
ff_activated = "%s сдался.",
57+
exp_gained = "Вы получили %d очков опыта.",
58+
level_up = "Поздравляем! Вы достигли уровня %d!",
59+
player_killed = "%s был убит игроком %s.",
60+
player_died = "%s погиб.",
61+
on_hit = "%s получил попадание от %s и понес\n %d урона.",
62+
turn_to_play = "Ход игрока %s!",
63+
turn_ended = "Ход игрока %s завершен.",
64+
turn_end = "Ход окончен!",
65+
start_end_game_event = "Начало финального события!",
66+
endgame_hit = "%s получил %d урона\n от финального события!",
67+
turn = "Ход %d"
68+
}
69+
70+
BoringFPS.AddLanguage("ru", RU)

gamemodes/boringfps/gamemode/modules/base/sv_base.lua

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
function BoringFPS.NewGame()
2-
SetGlobalString("CurrentGameState", "Starting a new game in " .. BoringFPS_CONFIG.Settings.TimerDelayNextGame .. " seconds...")
2+
SetGlobalString("CurrentGameState", BoringFPS.GetTranslation("starting_new_game_in", BoringFPS_CONFIG.Settings.TimerDelayNextGame))
33
BoringFPS.DisplayHUDPreGame()
44
timer.Create("BoringFPS:TimerDelayNextGame", BoringFPS_CONFIG.Settings.TimerDelayNextGame, 1, function()
5-
SetGlobalString("CurrentGameState", "Waiting for players to join...")
5+
SetGlobalString("CurrentGameState", BoringFPS.GetTranslation("wait_join"))
66
BoringFPS.ResetParams()
77
hook.Add( "Think", "GM:BoringFPS:Think:CanStartNewGame", function()
88
-- Vérifie si les conditions de partie sont remplies
@@ -20,7 +20,7 @@ end
2020
function BoringFPS.StartTimerPreGame()
2121
-- Démarrer le timer avant le début du jeu
2222
if (not timer.Exists("BoringFPS:PreGameTimer")) then
23-
SetGlobalString("CurrentGameState", "Game will start soon...")
23+
SetGlobalString("CurrentGameState", BoringFPS.GetTranslation("game_starting_in"))
2424
timer.Create( "BoringFPS:PreGameTimer", BoringFPS_CONFIG.Settings.TimerPreGame, 1, function()
2525
BoringFPS.StartGame()
2626
end )

maps/bfps_dev-test.vmf

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ versioninfo
22
{
33
"editorversion" "400"
44
"editorbuild" "8870"
5-
"mapversion" "65"
5+
"mapversion" "66"
66
"formatversion" "100"
77
"prefab" "0"
88
}
@@ -89,7 +89,7 @@ bgimages_plus
8989
world
9090
{
9191
"id" "1"
92-
"mapversion" "65"
92+
"mapversion" "66"
9393
"classname" "worldspawn"
9494
"detailmaterial" "detail/detailsprites"
9595
"detailvbsp" "detail.vbsp"
@@ -4331,8 +4331,8 @@ cameras
43314331
"activecamera" "0"
43324332
camera
43334333
{
4334-
"position" "[-642.183 1913.17 538.247]"
4335-
"look" "[-670.923 1955.78 521.151]"
4334+
"position" "[-221.985 1969.69 539.97]"
4335+
"look" "[-178.711 1990.05 514.542]"
43364336
}
43374337
}
43384338
cordons

0 commit comments

Comments
 (0)