From b0651e368ec01a5ab043c3e9c8e045a56a9668b0 Mon Sep 17 00:00:00 2001 From: Reis Date: Thu, 26 Mar 2026 22:22:23 +0000 Subject: [PATCH 01/40] Translate index.md via GitLocalize --- docs/ru/index.md | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/docs/ru/index.md b/docs/ru/index.md index 51a48c4fb..4c8e83cd0 100644 --- a/docs/ru/index.md +++ b/docs/ru/index.md @@ -1,29 +1,36 @@ --- hide: - - navigation + - навигация --- -!!! warning "Этот сайт находится в стадии разработки!" - Над этим сайтом активно ведется работа. +!!! внимание "Этот сайт находится в стадии разработки!" - Вы считаете, что можете помочь? Пожалуйста, нажмите на страницу с карандашом справа! +``` +Над этим сайтом ведется активная работа. - Это также можно сделать на любой другой странице. +Чувствуете, что можете помочь? Пожалуйста, сделайте это, нажав на страницу с карандашом справа! + +Это можно сделать на любой странице. +``` # Добро пожаловать в BeamMP Docs! :tada: -Добро пожаловать в новый и улучшенный центр документации для BeamMP! Независимо от того, являетесь ли вы игроком, владельцем сервера или разработчиком, у нас есть все необходимые ресурсы, чтобы улучшить ваш опыт многопользовательской игры в BeamNG.drive. +Добро пожаловать в новый и улучшенный центр документации для BeamMP! Независимо от того, являетесь ли вы игроком, владельцем сервера или разработчиком, у нас есть ресурсы, необходимые для улучшения вашего опыта многопользовательской игры BeamNG.drive. + +## Для игроков + +New to BeamMP? Check out our [Getting Started](../game/getting-started.md) page to help you hit the road running and make the most out of your multiplayer adventures. For general questions and issues please check out the [Players FAQ](../FAQ/player-faq.md). -## Для Игроков +## Для владельцев серверов -Новичок в BeamMP? Ознакомьтесь с нашим [Руководством по Началу](../game/getting-started.md), чтобы помочь вам стартовать и получить максимум удовольствия от многопользовательских приключений. +Думаете о создании собственного сервера BeamMP? Наше подробное [руководство](../server/create-a-server.md) проведет вас через весь процесс, гарантируя, что у вас будут все инструменты и знания для эффективной настройки сервера. -## Для Владельцев Серверов +## Для разработчиков -Хотите создать свой собственный сервер BeamMP? Наше подробное руководство [здесь](../server/create-a-server.md) проведет вас через процесс, обеспечивая вас всеми необходимыми инструментами и знаниями для эффективной настройки сервера. +Откройте для себя тонкости создания ресурсов для сервера BeamMP в нашем [Руководстве по разработке ресурсов](../guides/mod-creation/server/getting-started.md) . -## Для Разработчиков +На горизонте нас ждут захватывающие обновления, включая совершенно новую домашнюю страницу, разработанную для улучшения вашего опыта просмотра. Оставайтесь с нами, чтобы узнать больше! :slight_smile: -Узнайте все тонкости создания ресурсов для сервера BeamMP в нашем [Руководстве по Разработке Ресурсов](../guides/mod-creation/server/getting-started.md). +## Community Rules -Мы готовим для вас захватывающие обновления, включая новую главную страницу, разработанную для улучшения вашего опыта просмотра. Следите за новостями! :slight_smile: +Read through the BeamMP [Community rules](https://docs.beammp.com/community/rules/) and how to appeal bans. From 55172f9441cceff3cfaec0e99e8fe04d8d2fd160 Mon Sep 17 00:00:00 2001 From: vadyanka Date: Thu, 26 Mar 2026 22:22:24 +0000 Subject: [PATCH 02/40] Translate index.md via GitLocalize --- docs/ru/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/index.md b/docs/ru/index.md index 4c8e83cd0..8c2d94fa3 100644 --- a/docs/ru/index.md +++ b/docs/ru/index.md @@ -19,7 +19,7 @@ hide: ## Для игроков -New to BeamMP? Check out our [Getting Started](../game/getting-started.md) page to help you hit the road running and make the most out of your multiplayer adventures. For general questions and issues please check out the [Players FAQ](../FAQ/player-faq.md). +Впервые в BeamMP? Ознакомьтесь с нашей страницей [Начало работы](../game/getting-started.md), которая поможет вам быстро начать и получить максимум от игры по сети. По общим вопросам и проблемам, пожалуйста, ознакомьтесь с [Часто задаваемыми вопросами игроков](../FAQ/player-faq.md). ## Для владельцев серверов From b14909752e049fbf84d429345ac2edee5eac1eeb Mon Sep 17 00:00:00 2001 From: TheHawk Date: Thu, 26 Mar 2026 22:22:24 +0000 Subject: [PATCH 03/40] Translate index.md via GitLocalize --- docs/ru/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/ru/index.md b/docs/ru/index.md index 8c2d94fa3..29abcbb83 100644 --- a/docs/ru/index.md +++ b/docs/ru/index.md @@ -31,6 +31,6 @@ hide: На горизонте нас ждут захватывающие обновления, включая совершенно новую домашнюю страницу, разработанную для улучшения вашего опыта просмотра. Оставайтесь с нами, чтобы узнать больше! :slight_smile: -## Community Rules +## Правила Cообщества -Read through the BeamMP [Community rules](https://docs.beammp.com/community/rules/) and how to appeal bans. +Ознакомьтесь с [Правилами Cообщества](https://docs.beammp.com/community/rules/) BeamMP и узнайте, как обжаловать блокировку. From 483ca8231c711b4a5ceac647dc638ae2da07cde6 Mon Sep 17 00:00:00 2001 From: TheHawk Date: Thu, 26 Mar 2026 22:22:26 +0000 Subject: [PATCH 04/40] Translate manual.md via GitLocalize --- docs/ru/server/manual.md | 87 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 docs/ru/server/manual.md diff --git a/docs/ru/server/manual.md b/docs/ru/server/manual.md new file mode 100644 index 000000000..52e36058e --- /dev/null +++ b/docs/ru/server/manual.md @@ -0,0 +1,87 @@ +# Руководство Сервера + +# Окружение + +The server is affected by the state of various external parameters: + +- The "Resources" folder +- ENV (переменные среды) +- The commandline arguments +- The ServerConfig.toml file +- The working directory + +## Папка Ресурсов + +Папка ресурсов создается при запуске сервера вместе с подкаталогами "Client" и "Server". Подкаталог "Server" принимает папки внутри себя, каждая из которых содержит как минимум один файл `.lua`. Каждая из этих папок в подкаталоге "Server" называется «плагином». Файлы `.lua`, содержащиеся в каталоге корневом каталоге плагина, перезагружаются на ходу при изменении. Подкаталог "Client" принимает *только* файлы `.zip`, которые загружаются при запуске сервера и, как предполагается, не изменяются во время выполнения. + +## ENV + +### Общие Настройки + +Начиная с версии Server v3.2.0, сервер BeamMP принимает переменные среды, которые **переопределяют** настройки в ServerConfig.toml. Все переменные ServerConfig, которые существуют в категории/разделе "General", имеют PascalCase, переменные среды имеют ALL_CAPS и префикс `BEAMMP_`. Например, настройка `MaxPlayers`, преобразованная в ALL_CAPS, имеет вид `MAX_PLAYERS` (обратите внимание на `_`, где начинается новое слово), а с префиксом она становится `BEAMMP_MAX_PLAYERS`. Это формат, который используется для всех настроек "General". Существуют следующие переменные ENV: + +- `BEAMMP_DEBUG` +- `BEAMMP_PRIVATE` +- `BEAMMP_PORT` +- `BEAMMP_MAX_CARS` +- `BEAMMP_MAX_PLAYERS` +- `BEAMMP_MAP` +- `BEAMMP_NAME` +- `BEAMMP_DESCRIPTION` +- `BEAMMP_TAGS` +- `BEAMMP_RESOURCE_FOLDER` +- `BEAMMP_AUTH_KEY` +- `BEAMMP_LOG_CHAT` + +Любые переменные среды, соответствующие параметрам конфигурации, которые являются строками или числами, должны быть строками, например `BEAMMP_NAME="Cool Server"`, `BEAMMP_NAME=Server1`, `BEAMMP_PORT=12345`. Переменные среды, соответствующие параметрам конфигурации, которые являются логическими значениями (true/false, on/off), должны быть либо `true`, либо `1` (оба означают ON), либо любым другим значением (означающим OFF). + +### Настройки Провайдера + +These environment variables allow hosting providers (and other users with a larger number of servers), here called "providers", to overwrite certain provider-specific settings. + +#### `BEAMMP_PROVIDER_PORT_ENV` (since v3.3.0) + +Если задана непустая строка, это заменяет переменную `BEAMMP_PORT` на другую, чтобы прочитать переменную из существующего ENV. Например, Pterodactyl может выставлять `SERVER_PORT` как ENV. Чтобы использовать его с BeamMP-Server, вам придется сделать `BEAMMP_PORT=${SERVER_PORT}`, что немного глупо. + +Вместо этого теперь можно использовать `BEAMMP_PROVIDER_PORT_ENV="SERVER_PORT"`, что заставит BeamMP-Server прочитать порт из переменной ENV `SERVER_PORT`. + +#### `BEAMMP_PROVIDER_DISABLE_CONFIG` (since v3.3.0) + +Если установлено значение `1` или `true`, `ServerConfig.toml` **не создаётся** и **не считывается**, даже если существует. Для работы сервера необходимо установить `BEAMMP_AUTH_KEY`. + +#### `BEAMMP_PROVIDER_UPDATE_MESSAGE` (начиная с версии 3.2.2) + +Если задано непустое значение, это заменяет все сообщение об обновлении, которое по умолчанию выглядит как "НОВАЯ ВЕРСИЯ ВЫШЛА! Пожалуйста, обновитесь до новой версии..." и т. д. **ОБЯЗАТЕЛЬНО**, чтобы предоставленное вами сообщение об обновлении содержало `{}` где-то, что сервер заменит на новый номер версии. Например, ваше сообщение об обновлении может выглядеть так: + +```sh +BEAMMP_PROVIDER_UPDATE_MESSAGE="NEW VERSION of the BeamMP-Server has been released: {}! Please follow the update guide here: https://example.com/update-guide" +``` + +Which would result in an update message like + +``` +NEW VERSION of the BeamMP-Server has been released: v5.0.2! Please follow the update guide here: https://example.com/update-guide +``` + +Please take care to make it clear to the users that they should update, and explain how to update. + +## Аргументы командной строки + +Run the BeamMP Server with the `--help` argument to learn more. For example: `./BeamMP-Server --help`. + +## ServerConfig.toml + +This file is generated on first startup. Comments inside the file are the most up-to-date way to understand what each setting does. + +## Рабочий каталог + +The working directory of the server, not the location of the server executable, is the deciding factor on where the ServerConfig.toml, server log files, and Resources folder, are generated. + +# Ограничения + +В Бэкэнде BeamMP действуют следующие ограничения, которые влияют на Серверы: + +- Имя ограничено 250 символами +- Описание ограничено 1000 символами +- Карта ограничена 100 символами +- Теги ограничены 100 символами From e3aa6e32a223b8e860ec0d3bad6cb6a9f2ab7627 Mon Sep 17 00:00:00 2001 From: mt-gitlocalize Date: Thu, 26 Mar 2026 22:22:28 +0000 Subject: [PATCH 05/40] Translate manual.md via GitLocalize --- docs/ru/server/manual.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/ru/server/manual.md b/docs/ru/server/manual.md index 52e36058e..f86feb7b8 100644 --- a/docs/ru/server/manual.md +++ b/docs/ru/server/manual.md @@ -2,19 +2,19 @@ # Окружение -The server is affected by the state of various external parameters: +На сервер влияет состояние различных внешних параметров: -- The "Resources" folder +- Папка «Ресурсы» - ENV (переменные среды) -- The commandline arguments -- The ServerConfig.toml file -- The working directory +- Аргументы командной строки +- Файл ServerConfig.toml +- Рабочий каталог ## Папка Ресурсов Папка ресурсов создается при запуске сервера вместе с подкаталогами "Client" и "Server". Подкаталог "Server" принимает папки внутри себя, каждая из которых содержит как минимум один файл `.lua`. Каждая из этих папок в подкаталоге "Server" называется «плагином». Файлы `.lua`, содержащиеся в каталоге корневом каталоге плагина, перезагружаются на ходу при изменении. Подкаталог "Client" принимает *только* файлы `.zip`, которые загружаются при запуске сервера и, как предполагается, не изменяются во время выполнения. -## ENV +## ОКРУЖАЮЩАЯ СРЕДА ### Общие Настройки @@ -37,15 +37,15 @@ The server is affected by the state of various external parameters: ### Настройки Провайдера -These environment variables allow hosting providers (and other users with a larger number of servers), here called "providers", to overwrite certain provider-specific settings. +Эти переменные среды позволяют хостинг-провайдерам (и другим пользователям с большим количеством серверов), далее именуемым «провайдерами», перезаписывать определенные настройки, специфичные для провайдера. -#### `BEAMMP_PROVIDER_PORT_ENV` (since v3.3.0) +#### `BEAMMP_PROVIDER_PORT_ENV` (начиная с версии 3.3.0) Если задана непустая строка, это заменяет переменную `BEAMMP_PORT` на другую, чтобы прочитать переменную из существующего ENV. Например, Pterodactyl может выставлять `SERVER_PORT` как ENV. Чтобы использовать его с BeamMP-Server, вам придется сделать `BEAMMP_PORT=${SERVER_PORT}`, что немного глупо. Вместо этого теперь можно использовать `BEAMMP_PROVIDER_PORT_ENV="SERVER_PORT"`, что заставит BeamMP-Server прочитать порт из переменной ENV `SERVER_PORT`. -#### `BEAMMP_PROVIDER_DISABLE_CONFIG` (since v3.3.0) +#### `BEAMMP_PROVIDER_DISABLE_CONFIG` (начиная с версии 3.3.0) Если установлено значение `1` или `true`, `ServerConfig.toml` **не создаётся** и **не считывается**, даже если существует. Для работы сервера необходимо установить `BEAMMP_AUTH_KEY`. @@ -57,25 +57,25 @@ These environment variables allow hosting providers (and other users with a larg BEAMMP_PROVIDER_UPDATE_MESSAGE="NEW VERSION of the BeamMP-Server has been released: {}! Please follow the update guide here: https://example.com/update-guide" ``` -Which would result in an update message like +Что приведет к появлению сообщения об обновлении, например: ``` NEW VERSION of the BeamMP-Server has been released: v5.0.2! Please follow the update guide here: https://example.com/update-guide ``` -Please take care to make it clear to the users that they should update, and explain how to update. +Пожалуйста, постарайтесь четко разъяснить пользователям необходимость обновления и объясните, как это сделать. ## Аргументы командной строки -Run the BeamMP Server with the `--help` argument to learn more. For example: `./BeamMP-Server --help`. +Запустите BeamMP Server с аргументом `--help` , чтобы узнать больше. Например: `./BeamMP-Server --help` . ## ServerConfig.toml -This file is generated on first startup. Comments inside the file are the most up-to-date way to understand what each setting does. +Этот файл генерируется при первом запуске. Комментарии внутри файла — самый современный способ понять, что делает каждая настройка. ## Рабочий каталог -The working directory of the server, not the location of the server executable, is the deciding factor on where the ServerConfig.toml, server log files, and Resources folder, are generated. +Решающим фактором при определении места создания ServerConfig.toml, файлов журналов сервера и папки Resources является рабочий каталог сервера, а не местоположение исполняемого файла сервера. # Ограничения From 75ec2b5bf11d6f243608062848542718ac942bad Mon Sep 17 00:00:00 2001 From: TheHawk Date: Thu, 26 Mar 2026 22:22:30 +0000 Subject: [PATCH 06/40] Translate error-codes.md via GitLocalize --- docs/ru/server/error-codes.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 docs/ru/server/error-codes.md diff --git a/docs/ru/server/error-codes.md b/docs/ru/server/error-codes.md new file mode 100644 index 000000000..e04212d22 --- /dev/null +++ b/docs/ru/server/error-codes.md @@ -0,0 +1,20 @@ +# Коды Ошибок + +This page contains all the error codes that the server may display. + +--- + +Code | Description | Possible solution +--- | --- | --- +10022 | There is an issue with binding to the port | Check if the port for the server is already in use by another service, if it is use another one. +10048 | Address already in use | Another BeamMP server or program is running on that port, use another one. +10051 | Network unreachable | Bad port forwarding or similar issues, verify that it is all set up correctly. +10052 | Network reset | Happens if the network drops connection while a connection is being established. Retry the connection. +10053 | Connection aborted | Caused by timeout or network error, retry the connection. +10054 | Connection reset by peer | A client has disconnected from your server. +10060 | Connection timed out | There is an issue with your port forwarding, please refer to the [guide steps](create-a-server.md#1-port-forwarding). +10061 | Connection refused | There is an issue with your port forwarding, please refer to the [guide steps](create-a-server.md#1-port-forwarding). +10064 | Хост недоступен | Unlikely error, but it means that the host is down because either it's shutdown or ports were closed. +10065 | Хост недостижим | No internet or bad port forwarding, please refer to the [guide steps](create-a-server.md#1-port-forwarding). + +!!! note For any other code not in this list, you can refer to [https://learn.microsoft.com/en-us/windows/win32/winsock/windows-sockets-error-codes-2](https://learn.microsoft.com/en-us/windows/win32/winsock/windows-sockets-error-codes-2) if you know a bit how networks / sockets work. From ad37adb1125834772d2bcb25ff954ab1eaf49e07 Mon Sep 17 00:00:00 2001 From: mt-gitlocalize Date: Thu, 26 Mar 2026 22:22:31 +0000 Subject: [PATCH 07/40] Translate error-codes.md via GitLocalize --- docs/ru/server/error-codes.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/docs/ru/server/error-codes.md b/docs/ru/server/error-codes.md index e04212d22..6150e8f93 100644 --- a/docs/ru/server/error-codes.md +++ b/docs/ru/server/error-codes.md @@ -1,20 +1,20 @@ # Коды Ошибок -This page contains all the error codes that the server may display. +На этой странице содержатся все коды ошибок, которые может отображать сервер. --- -Code | Description | Possible solution +Код | Описание | Возможное решение --- | --- | --- -10022 | There is an issue with binding to the port | Check if the port for the server is already in use by another service, if it is use another one. -10048 | Address already in use | Another BeamMP server or program is running on that port, use another one. -10051 | Network unreachable | Bad port forwarding or similar issues, verify that it is all set up correctly. -10052 | Network reset | Happens if the network drops connection while a connection is being established. Retry the connection. -10053 | Connection aborted | Caused by timeout or network error, retry the connection. -10054 | Connection reset by peer | A client has disconnected from your server. -10060 | Connection timed out | There is an issue with your port forwarding, please refer to the [guide steps](create-a-server.md#1-port-forwarding). -10061 | Connection refused | There is an issue with your port forwarding, please refer to the [guide steps](create-a-server.md#1-port-forwarding). -10064 | Хост недоступен | Unlikely error, but it means that the host is down because either it's shutdown or ports were closed. -10065 | Хост недостижим | No internet or bad port forwarding, please refer to the [guide steps](create-a-server.md#1-port-forwarding). +10022 | Возникла проблема с привязкой к порту | Проверьте, не используется ли порт сервера другой службой, если да, используйте другую. +10048 | Адрес уже используется | На этом порту запущен другой сервер или программа BeamMP, используйте другой. +10051 | Сеть недоступна | Неправильная переадресация портов или аналогичные проблемы. Проверьте, что все настроено правильно. +10052 | Сброс сети | Происходит, если сеть обрывает соединение во время установки соединения. Повторите попытку соединения. +10053 | Соединение прервано | Вызвано тайм-аутом или ошибкой сети. Повторите попытку подключения. +10054 | Сброс соединения пиром | Клиент отключился от вашего сервера. +10060 | Время ожидания соединения истекло | Возникла проблема с переадресацией портов. Ознакомьтесь с [пошаговыми инструкциями](create-a-server.md#1-port-forwarding) . +10061 | В соединении отказано | Возникла проблема с переадресацией портов. Ознакомьтесь с [пошаговыми инструкциями](create-a-server.md#1-port-forwarding) . +10064 | Хост недоступен | Маловероятная ошибка, но она означает, что хост вышел из строя из-за его отключения или закрытия портов. +10065 | Хост недостижим | Нет интернета или плохая переадресация портов, пожалуйста, следуйте [инструкциям руководства](create-a-server.md#1-port-forwarding) . -!!! note For any other code not in this list, you can refer to [https://learn.microsoft.com/en-us/windows/win32/winsock/windows-sockets-error-codes-2](https://learn.microsoft.com/en-us/windows/win32/winsock/windows-sockets-error-codes-2) if you know a bit how networks / sockets work. +!!! Примечание. Если вы немного знаете, как работают сети/сокеты, для любого другого кода, не указанного в этом списке, вы можете обратиться к [https://learn.microsoft.com/en-us/windows/win32/winsock/windows-sockets-error-codes-2](https://learn.microsoft.com/en-us/windows/win32/winsock/windows-sockets-error-codes-2) . From 38cf27e69458f6c33eae3ebfc073d3255e5fb659 Mon Sep 17 00:00:00 2001 From: TheHawk Date: Thu, 26 Mar 2026 22:22:33 +0000 Subject: [PATCH 08/40] Translate v2-server-reference.md via GitLocalize --- .../scripting/server/v2-server-reference.md | 56 +++++++++---------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/docs/ru/scripting/server/v2-server-reference.md b/docs/ru/scripting/server/v2-server-reference.md index 1ab32003a..a6f103be9 100644 --- a/docs/ru/scripting/server/v2-server-reference.md +++ b/docs/ru/scripting/server/v2-server-reference.md @@ -8,7 +8,7 @@ Feel you could help? Please do by clicking on the page with a pencil on the righ This can be done any page too. ``` -# Справочник по серверным скриптам +# Справочник по Серверным Скриптам ## Версия сервера 2.X @@ -21,17 +21,17 @@ Please update to the latest version for maintenance and support. --- -> Это скрипт 2.x. Обращайтесь к нему только если ваш сервер старый/устаревший (версия 2.xx). Для получения последней документации см. [здесь](https://docs.beammp.com/scripting/server/latest-server-reference) . {.is-warning} +> Это скрипт 2.x. Обращайтесь к нему только если ваш сервер старый/устаревший (версия 2.xx). Для получения последней документации см. [здесь](https://docs.beammp.com/scripting/server/latest-server-reference). {.is-warning} ### Примечания -Чтобы получить вывод функции в консоли сервера, вам нужно обернуть его в оператор `print()` . Например: `print(GetPlayerName(0))` вернет имя первого игрока вашего сервера. +Чтобы получить вывод функции в консоли сервера, вам нужно обернуть его в оператор `print()`. Например: `print(GetPlayerName(0))` вернет имя первого игрока вашего сервера. `` начинается с 0. ### Список доступных функций для написания скриптов -#### GetPlayerName(идентификатор_сервера_игроков) +#### GetPlayerName(playersServerID) Возвращает имя игрока в Discord в виде строки @@ -53,7 +53,7 @@ function onPlayerJoin(playerID) end ``` -#### GetPlayerHWID(идентификатор_сервера_игроков) +#### GetPlayerHWID(playersServerID) Возвращает идентификатор игрока в Discord в виде строки @@ -64,7 +64,7 @@ function onPlayerJoin(playerID) end ``` -#### GetPlayerVehicles(идентификатор_сервера_игроков) +#### GetPlayerVehicles(playersServerID) Возвращает транспортные средства игрока в виде объекта/массива. @@ -78,7 +78,7 @@ function onChatMessage(playerID, senderName, message) end ``` -#### DropPlayer(идентификатор_сервера_игроков) +#### DropPlayer(playersServerID) Сбрасывает соединение для определенного игрока. По сути выгоняет его @@ -113,9 +113,9 @@ function onInit() end ``` -#### Выход() +#### exit() -Закрою сервер. +Закроет сервер ```lua function onInit() @@ -124,7 +124,7 @@ function onInit() end ``` -#### CreateThread(имя_функции, интервал_вызова) +#### CreateThread(functionName, callInterval) Функция будет выполняться в выделенном потоке, и она будет запускать callInterval раз в секунду. 1 = Она будет запускаться каждую секунду. @@ -150,7 +150,7 @@ end CreateThread("yourFunction", 30) ``` -#### StopThread(имя_функции) +#### StopThread(functionName) Прекратит попытки вызвать функцию потока текущего скрипта. @@ -170,7 +170,7 @@ end ``` -#### Сон (миллисек) - ИЗНОС +#### Sleep(миллисек) - УСТАРЕЛО Приостановит выполнение на указанное время (предупреждение: это приведет к приостановке всего сервера, если вы не создали поток) @@ -184,7 +184,7 @@ end CreateThread("countdown", 10) ``` -#### ПолучитьPlayerCount() +#### GetPlayerCount() Вернет количество подключенных игроков @@ -196,7 +196,7 @@ end #### RemoveVehicle(playerServerID, VehicleID) -Исчезнет транспортное средство. +Деспавнит транспортное средство ```lua function onVehicleSpawn(playerID, vehicleID, vehicleData) @@ -206,7 +206,7 @@ function onVehicleSpawn(playerID, vehicleID, vehicleData) end ``` -#### ПолучитьИгроков() +#### GetPlayers() Вернет таблицу идентификаторов с именами @@ -221,9 +221,9 @@ local function onPlayerJoin(joinedPlayerID) end ``` -#### RegisterEvent(имя_события, имя_функции) +#### RegisterEvent(eventName, functionName) -Зарегистрирует эту функцию для указанного события. Оба должны быть строками +Зарегистрирует эту функцию в указанном событии. Оба варианта должны быть строками ```lua function anyEvent() @@ -234,7 +234,7 @@ end TriggerLocalEvent("onAnyEventHappen") ``` -#### TriggerLocalEvent(имя_события) +#### TriggerLocalEvent(eventName) Будет вызывать каждую зарегистрированную функцию в той же папке плагина. @@ -247,7 +247,7 @@ end TriggerLocalEvent("onAnyEventHappen") ``` -#### TriggerGlobalEvent(имя_события) +#### TriggerGlobalEvent(eventName) Будет вызывать каждую зарегистрированную функцию с этим именем события. @@ -275,7 +275,7 @@ end RegisterEvent("onAnyEventHappen", "anyEvent") ``` -#### Установить(configID, newValue) +#### Set(configID, newValue) установит настройку конфигурации на новое указанное значение из таблицы ниже| @@ -293,10 +293,10 @@ end > Обратите внимание, что они не будут сохранены в файле конфигурации. -Идентификатор конфигурации | Имя | Приму только +Идентификатор конфигурации | Имя | Примет только --- | --- | --- `0` | Настройка отладки | правда или ложь -`1` | Частная обстановка | правда или ложь +`1` | Настройка приватности | правда или ложь `2` | Макс. количество автомобилей на игрока | число `3` | Макс. количество игроков | число `4` | Карта | нить @@ -306,7 +306,7 @@ end ### Список доступных событий для написания сценариев -#### События по умолчанию +#### События по Умолчанию Пример использования события: @@ -343,11 +343,11 @@ end `onPlayerJoin` | Идентификатор игрока | Игрок присоединился и загрузился `onPlayerDisconnect` | Идентификатор игрока | Игрок отключился `onChatMessage` | Идентификатор отправителя, имя и сообщение чата | Сообщение чата было отправлено. Это было бы хорошо для создания системы команд -`onVehicleSpawn` | Идентификатор игрока, идентификатор транспортного средства и данные транспортного средства | Это называется, когда кто-то создает транспортное средство. -`onVehicleEdited` | Идентификатор игрока, идентификатор транспортного средства и данные транспортного средства | Это называется, когда кто-то редактирует транспортное средство или заменяет существующее. -`onVehicleDeleted` | Идентификатор игрока и идентификатор транспортного средства | Это называется, когда кто-то удаляет принадлежащее ему транспортное средство. +`onVehicleSpawn` | Идентификатор игрока, идентификатор транспортного средства и данные транспортного средства | Это вызывается, когда кто-то создает транспортное средство +`onVehicleEdited` | Идентификатор игрока, идентификатор транспортного средства и данные транспортного средства | Это происходит, когда кто-то редактирует транспортное средство или заменяет существующее +`onVehicleDeleted` | Идентификатор игрока и идентификатор транспортного средства | Это происходит, когда кто-то удаляет принадлежащее ему транспортное средство -#### Пользовательские события +#### Пользовательские События Пользовательские события также могут быть созданы для вашего собственного использования. Это делается примерно так же, как и события по умолчанию. @@ -375,7 +375,7 @@ end ТИП ИДЕНТИФИКАТОРА | ПЛЮСЫ | МИНУСЫ | ФУНКЦИЯ ДЛЯ ПОЛУЧЕНИЯ --- | --- | --- | :-: -имя | легко получить, просто | не безопасно | ПолучитьИмяИгрока() +имя | легко получить, просто | не безопасно | GetPlayerName() DiscordID | довольно безопасно | неудобно | GetPlayerDiscordID() HWID | чрезвычайно безопасно | трудно получить | GetPlayerHWID() From 14d46efbd053319d3a5934d569cb5cf437ac1c10 Mon Sep 17 00:00:00 2001 From: TheHawk Date: Thu, 26 Mar 2026 22:22:36 +0000 Subject: [PATCH 09/40] Translate latest-server-reference.md via GitLocalize --- .../server/latest-server-reference.md | 158 +++++++++--------- 1 file changed, 79 insertions(+), 79 deletions(-) diff --git a/docs/ru/scripting/server/latest-server-reference.md b/docs/ru/scripting/server/latest-server-reference.md index fb8aa95a3..970908ce6 100644 --- a/docs/ru/scripting/server/latest-server-reference.md +++ b/docs/ru/scripting/server/latest-server-reference.md @@ -8,7 +8,7 @@ Это можно сделать на любой странице. ``` -# Справочник по серверным скриптам +# Справочник по Серверным Скриптам ## Версия сервера 3.X @@ -16,13 +16,13 @@ Выпуск BeamMP-Server v3.0.0 вносит радикальные изменения в работу системы плагинов Lua. Нет возможности использовать старый lua с новым сервером, поэтому вам придется мигрировать. -Система плагинов сервера использует [Lua 5.3](https://www.lua.org/manual/5.3/) . В этом разделе подробно описывается, как начать писать плагины, изучаются некоторые базовые концепции и начинается работа с вашим первым плагином. **Рекомендуется прочитать этот раздел, даже если вы знакомы с системой до версии 3.0.0, так как некоторые вещи кардинально изменились** . +Система плагинов сервера использует [Lua 5.3](https://www.lua.org/manual/5.3/). В этом разделе подробно описывается, как начать писать плагины, изучаются некоторые базовые концепции и начинается работа с вашим первым плагином. **Рекомендуется прочитать этот раздел, даже если вы знакомы с системой до версии 3.0.0, так как некоторые вещи кардинально изменились**. -Руководство по миграции с lua до версии 3.0.0 см. в разделе [«Миграция со старой версии Lua»](#migrating-from-old-lua) . +Руководство по миграции с lua до версии 3.0.0 см. в разделе [«Миграция со старой версии Lua»](#migrating-from-old-lua). ### Структура каталога -Серверные плагины, в отличие от модов, располагаются (по умолчанию) в `Resources/Server` , тогда как моды, которые пишутся для BeamNG.drive и отправляются клиентам, находятся в `Resources/Client` . Каждый плагин должен иметь свою собственную подпапку в `Resources/Server` , например, для плагина с именем "MyPlugin" структура будет следующей: +Серверные плагины, в отличие от модов, располагаются (по умолчанию) в `Resources/Server`, тогда как моды, которые пишутся для BeamNG.drive и отправляются клиентам, находятся в `Resources/Client`. Каждый плагин должен иметь свою собственную подпапку в `Resources/Server`, например, для плагина с именем "MyPlugin" структура будет следующей: ``` Resources @@ -35,13 +35,13 @@ Resources Здесь мы также отображаем другой плагин под названием "SomeOtherPlugin", чтобы проиллюстрировать, как ваша папка `Resources/Server` может иметь несколько различных папок плагинов. Мы продолжим использовать эту структуру каталогов в качестве примера на протяжении всего этого руководства. -Вы также заметите `main.lua` . У вас может быть столько файлов Lua `.lua` , сколько вам нужно. Все файлы Lua в главном каталоге вашего плагина загружаются в *алфавитном порядке* (поэтому `aaa.lua` запускается перед `bbb.lua` ). +Вы также заметите `main.lua`. У вас может быть столько файлов Lua `.lua`, сколько вам нужно. Все файлы Lua в главном каталоге вашего плагина загружаются в *алфавитном порядке* (поэтому `aaa.lua` запускается перед `bbb.lua`). ### Файлы Lua Каждый файл Lua `.lua` в папке плагина загружается при запуске сервера. Это означает, что операторы вне функций оцениваются («запускаются») немедленно. -Файлы Lua в подпапках игнорируются, но могут быть `require()` . +Файлы Lua в подпапках игнорируются, но могут быть `require()`. Например, наш `main.lua` выглядит так: @@ -53,7 +53,7 @@ end print("What's up!") ``` -Когда сервер запустится и загрузится `main.lua` , он *немедленно* запустит `print("What's up!")` , но пока **НЕ** *вызовет* функцию `PrintMyName` (потому что она не была вызвана)! +Когда сервер запустится и загрузится `main.lua`, он *немедленно* запустит `print("What's up!")`, но пока **НЕ** *вызовет* функцию `PrintMyName` (потому что она не была вызвана)! ### События @@ -81,7 +81,7 @@ MP.RegisterEvent("onChatMessage", "MyChatMessageHandler") Это фактически гарантирует, что любое сообщение, которое в точности равно "darn", не будет отправлено и не будет показано в чате (обратите внимание, что для настоящего фильтра ненормативной лексики вам нужно будет проверить, *содержит* ли сообщение "darn", а не *является* ли оно "darn"). Отмена события приводит к тому, что оно не происходит, например, сообщение чата не будет показано никому другому, транспортное средство не будет создано и т. д. -### Пользовательские события +### Пользовательские События Вы можете зарегистрироваться на любое понравившееся вам мероприятие, например: @@ -125,11 +125,11 @@ MP.CreateEventTimer("EverySecond", 1000) Это приведет к тому, что "CountSeconds" будет вызываться каждую секунду. Вы также можете отменить таймеры событий с помощью `MP.CancelEventTimer` (см. справочник API). -С консоли сервера вы можете запустить `status` , чтобы увидеть, сколько таймеров событий запущено в данный момент, а также информацию об ожидающих обработчиках событий. Эта команда покажет больше информации в будущем. +С консоли сервера вы можете запустить `status`, чтобы увидеть, сколько таймеров событий запущено в данный момент, а также информацию об ожидающих обработчиках событий. Эта команда покажет больше информации в будущем. ### Отладка -Lua трудно отлаживать. К сожалению, для встроенного Lua не существует отладчика промышленного уровня, такого как `gdb` . +Lua трудно отлаживать. К сожалению, для встроенного Lua не существует отладчика промышленного уровня, такого как `gdb`. В общем случае вы, конечно, можете в любое время просто `print()` значения, которые хотите проверить. @@ -147,9 +147,9 @@ Lua трудно отлаживать. К сожалению, для встро lua @MyPlugin> ``` -Как видите, мы перешли в состояние Lua для `MyPlugin` . С этого момента и до тех пор, пока мы не войдем в `exit()` (с версии 3.1.0 `:exit` ), мы будем в `MyPlugin` и сможем выполнить Lua там. +Как видите, мы перешли в состояние Lua для `MyPlugin`. С этого момента и до тех пор, пока мы не войдем в `exit()` (с версии 3.1.0 `:exit`), мы будем в `MyPlugin` и сможем выполнить Lua там. -Например, если у нас есть глобальный объект с именем `MyValue` , мы можем вывести это значение следующим образом: +Например, если у нас есть глобальный объект с именем `MyValue`, мы можем вывести это значение следующим образом: ``` lua @MyPlugin> print(MyValue) @@ -159,13 +159,13 @@ lua @MyPlugin> print(MyValue) Начиная с версии 3.1.0: Вы можете нажать клавишу TAB для автодополнения функций и переменных. -ВНИМАНИЕ: К сожалению, если состояние Lua в данный момент занято выполнением другого кода (например, цикла `while` ), это может полностью повесить консоль до тех пор, пока она не завершит эту работу, поэтому будьте очень осторожны, переключаясь на состояния, которые могут ожидать чего-то. +ВНИМАНИЕ: К сожалению, если состояние Lua в данный момент занято выполнением другого кода (например, цикла `while`), это может полностью повесить консоль до тех пор, пока она не завершит эту работу, поэтому будьте очень осторожны, переключаясь на состояния, которые могут ожидать чего-то. -Кроме того, вы можете запустить `status` в обычной консоли ( `>` ), которая покажет вам, среди прочего, некоторую статистику о Lua. +Кроме того, вы можете запустить `status` в обычной консоли (`> `), которая покажет вам, среди прочего, некоторую статистику о Lua. -### Пользовательские команды +### Пользовательские Команды -Для реализации пользовательских команд для консоли сервера можно использовать событие `onConsoleInput` . Это может быть полезно, когда вы хотите добавить способ для владельца сервера подать сигнал на ваш плагин или отобразить внутреннее состояние пользовательским способом. +Для реализации пользовательских команд для консоли сервера можно использовать событие `onConsoleInput`. Это может быть полезно, когда вы хотите добавить способ для владельца сервера подать сигнал на ваш плагин или отобразить внутреннее состояние пользовательским способом. Вот пример: @@ -190,7 +190,7 @@ MP.RegisterEvent("onConsoleInput", "handleConsoleInput") hello, world ``` -Мы реализовали собственную `print` . В качестве упражнения попробуйте создать функцию, подобную `say` , которая отправляет сообщение чата всем игрокам или даже конкретному игроку (с помощью `MP.SendChatMessage` ). +Мы реализовали собственную `print`. В качестве упражнения попробуйте создать функцию, подобную `say`, которая отправляет сообщение чата всем игрокам или даже конкретному игроку (с помощью `MP.SendChatMessage`). **Внимание:** для ваших собственных плагинов обычно рекомендуется "пространство имен". Наш пример `print` в плагине с именем `mystuff` может называться `mystuff.print` или `ms.print` или что-то подобное. @@ -198,11 +198,11 @@ hello, world Формат документации: `function_name(arg_name: arg_type, arg_name: arg_type) -> return_types` -### Встроенные функции +### Встроенные Функции -#### `print(...)` , `printRaw(...)` +#### `print(...)`, `printRaw(...)` -Выводит сообщение на консоль сервера с префиксом `[DATE TIME] [LUA]` . Если вам не нужен этот префикс, вы можете использовать `printRaw(...)` . +Выводит сообщение на консоль сервера с префиксом `[DATE TIME] [LUA]`. Если вам не нужен этот префикс, вы можете использовать `printRaw(...)`. Пример: @@ -217,15 +217,15 @@ print("Hello, I'm", name, "and I'm", 32) #### `exit()` -Корректно завершает работу сервера. Вызывает срабатывание события `onShutdown` . +Корректно завершает работу сервера. Вызывает срабатывание события `onShutdown`. ### Функции МП #### `MP.CreateTimer() -> Timer` -Создает объект таймера, который можно использовать для отслеживания того, сколько времени заняло что-то / сколько времени прошло. Он запускается после создания и может быть сброшен/перезапущен с помощью `mytimer:Start()` . +Создает объект таймера, который можно использовать для отслеживания того, сколько времени заняло что-то / сколько времени прошло. Он запускается после создания и может быть сброшен/перезапущен с помощью `mytimer:Start()`. -Текущее прошедшее время в секундах можно получить с помощью `mytimer:GetCurrent()` . +Текущее прошедшее время в секундах можно получить с помощью `mytimer:GetCurrent()`. Пример: @@ -239,11 +239,11 @@ print(mytimer:GetCurrent()) -- print how much time elapsed #### `MP.GetOSName() -> string` -Возвращает имя текущей ОС: `Windows` , `Linux` или `Other` . +Возвращает имя текущей ОС: `Windows`, `Linux` или `Other`. #### `MP.GetServerVersion() -> number,number,number` -Возвращает текущую версию сервера в формате major, minor, patch. Например, версия v3.0.0 вернет `3, 0, 0` . +Возвращает текущую версию сервера в формате major, minor, patch. Например, версия v3.0.0 вернет `3, 0, 0`. Пример: @@ -260,13 +260,13 @@ print(major, minor, patch) #### `MP.RegisterEvent(event_name: string, function_name: string)` -Запоминает функцию с именем Имя `Function Name` как обработчик события с именем `Event Name` . +Запоминает функцию с именем Имя `Function Name` как обработчик события с именем `Event Name`. Вы можете зарегистрировать столько обработчиков события, сколько захотите. -Список событий, предоставляемых сервером, можно посмотреть [здесь](#events-1) . +Список событий, предоставляемых сервером, можно посмотреть [здесь](#events-1). -Если событие с таким именем не существует, оно создается, и, таким образом, RegisterEvent не может завершиться неудачей. Это можно использовать для создания пользовательских событий. Подробнее см. в разделах [Пользовательские события](#custom-events) и [События](#events) . +Если событие с таким именем не существует, оно создается, и, таким образом, RegisterEvent не может завершиться неудачей. Это можно использовать для создания пользовательских событий. Подробнее см. в разделах [Пользовательские события](#custom-events) и [События](#events). Пример: @@ -285,7 +285,7 @@ MP.RegisterEvent("onChatMessage", "ChatHandler") Запускает таймер внутри сервера, который запускает событие `event_name` каждые `interval_ms` миллисекунд. -Таймеры событий можно отменить с помощью `MP.CancelEventTimer` . +Таймеры событий можно отменить с помощью `MP.CancelEventTimer`. Интервалы <25 мс не рекомендуются, так как несколько таких интервалов, скорее всего, не будут обслуживаться вовремя надежно. Хотя несколько таймеров могут быть запущены для одного и того же события, рекомендуется создавать как можно меньше таймеров событий. Например, если вам нужно одно событие, которое запускается каждые полсекунды, и одно, которое запускается каждую секунду, рассмотрите возможность создания просто события каждые полсекунды и запуска триггера every-second-functiosecond. @@ -296,7 +296,7 @@ MP.RegisterEvent("onChatMessage", "ChatHandler") Необязательный `CallStrategy` может быть указан в качестве третьего аргумента. Это может быть: - `MP.CallStrategy.BestEffort` (по умолчанию): попытается запустить событие с указанным интервалом, но откажется ставить обработчики в очередь, если выполнение обработчика займет слишком много времени. -- `MP.CallStrategy.Precise` : будет ставить обработчики событий в очередь с точным указанным интервалом. Может привести к заполнению очереди, если обработчику требуется больше времени, чем интервал. Используйте только если вам НУЖЕН точный интервал. +- `MP.CallStrategy.Precise`: будет ставить обработчики событий в очередь с точным указанным интервалом. Может привести к заполнению очереди, если обработчику требуется больше времени, чем интервал. Используйте только если вам НУЖЕН точный интервал. #### `MP.CancelEventTimer(event_name: string)` @@ -308,7 +308,7 @@ MP.RegisterEvent("onChatMessage", "ChatHandler") Запускает локальное событие, которое приводит к вызову всех обработчиков этого события *в текущем состоянии lua* (обычно в текущем плагине, если состояние не было передано через PluginConfig.toml). -Вы можете передать этой функции аргументы ( `...` ), которые копируются и отправляются всем обработчикам как аргументы функции. +Вы можете передать этой функции аргументы (`...`), которые копируются и отправляются всем обработчикам как аргументы функции. Этот вызов является синхронным и вернет управление после завершения всех обработчиков событий. @@ -327,16 +327,16 @@ print(Results) Запускает глобальное событие, которое приводит к вызову всех обработчиков этого события *во всех плагинах* (включая *этот* плагин). -Вы можете передать этой функции аргументы ( `...` ), которые копируются и отправляются всем обработчикам как аргументы функции. +Вы можете передать этой функции аргументы (`...`), которые копируются и отправляются всем обработчикам как аргументы функции. Этот вызов асинхронный и возвращает объект, подобный будущему. Локальные обработчики (обработчики в том же плагине, что и вызывающий) запускаются синхронно и немедленно. Возвращаемая таблица имеет две функции: -- `IsDone() -> boolean` сообщает, все ли обработчики завершились. Вы можете подождать, пока это не станет правдой, проверив это и `MP.Sleep` -ing на некоторое время в цикле. +- `IsDone() -> boolean` сообщает, все ли обработчики завершились. Вы можете подождать, пока это не станет правдой, проверив это и `MP.Sleep`-ing на некоторое время в цикле. - `GetResults() -> table` возвращает неаннотированную неименованную таблицу со всеми возвращаемыми значениями всех обработчиков. Это практически массив. -Обязательно вызывайте их с помощью синтаксиса `Obj:Function()` ( `:` , NOT `.` ). +Обязательно вызывайте их с помощью синтаксиса `Obj:Function()` (`:`, NOT `.`). Пример: @@ -362,9 +362,9 @@ print(Results) #### `MP.SendChatMessage(player_id: number, message: string)` -Отправляет сообщение чата, которое может видеть только указанный игрок (или все, если идентификатор `-1` ). В игре это не будет отображаться как направленное сообщение. +Отправляет сообщение чата, которое может видеть только указанный игрок (или все, если идентификатор `-1`). В игре это не будет отображаться как направленное сообщение. -Вы можете использовать это, например, чтобы сообщить игроку *, почему* вы отменили появление его транспортного средства, отправить сообщение в чате или что-то подобное, или чтобы отобразить некоторую информацию о вашем сервере. +Вы можете использовать это, например, чтобы сообщить игроку, *почему* вы отменили появление его транспортного средства, отправить сообщение в чате или что-то подобное, или чтобы отобразить некоторую информацию о вашем сервере. Пример: @@ -406,11 +406,11 @@ end Вызовет указанное событие с указанными данными на указанном клиенте (-1 для трансляции). Это событие затем может быть обработано в клиентском lua mod, см. документацию "Client Scripting" для этого. -Вернет `true` если сообщение удалось отправить (для `id = -1` , поэтому для трансляций это всегда `true` ), и `false` если игрок с таким идентификатором не существует или отключен, но у него все еще есть идентификатор (это известная проблема). +Вернет `true` если сообщение удалось отправить (для `id = -1`, поэтому для трансляций это всегда `true`), и `false` если игрок с таким идентификатором не существует или отключен, но у него все еще есть идентификатор (это известная проблема). -Если возвращается `false` , нет смысла повторять это событие, и не следует ожидать ответа (если таковой ожидался). +Если возвращается `false`, нет смысла повторять это событие, и не следует ожидать ответа (если таковой ожидался). -Начиная с версии 3.1.0, второе возвращаемое значение содержит сообщение об ошибке, если функция не удалась. Также, начиная с этой версии, версия функции `*Json` принимает таблицу в качестве аргумента данных и преобразует ее в json. Это просто сокращение для `MP.TriggerClientEvent(..., Util.JsonEncode(mytable))` . +Начиная с версии 3.1.0, второе возвращаемое значение содержит сообщение об ошибке, если функция не удалась. Также, начиная с этой версии, версия функции `*Json` принимает таблицу в качестве аргумента данных и преобразует ее в json. Это просто сокращение для `MP.TriggerClientEvent(..., Util.JsonEncode(mytable))`. #### `MP.GetPlayerCount() -> number` @@ -624,7 +624,7 @@ end Является ли игрок гостем. Гость — это тот, кто не вошел в систему, а вместо этого решил играть как гость. Обычно его имя — `guest` за которым следует длинный номер. -Поскольку гости анонимны, вы можете запретить им присоединяться. В этом случае рекомендуется использовать аргумент [`onPlayerAuth`](#onplayerauth) `is_guest` . +Поскольку гости анонимны, вы можете запретить им присоединяться. В этом случае рекомендуется использовать аргумент [`onPlayerAuth`](#onplayerauth) `is_guest`. #### `MP.DropPlayer(player_id: number, [reason: string])` @@ -653,7 +653,7 @@ end Возвращает таблицу с информацией об игроке, такой как идентификатор форума BeamMP, IP-адрес и идентификатор учетной записи Discord. Discord ID будет возвращен только в том случае, если пользователь связал его со своей учетной записью форума. -Вы можете найти идентификатор форума пользователя, перейдя по адресу `https://forum.beammp.com/u/USERNAME.json` и выполнив поиск по запросу `"user": {"id": 123456}` . Идентификатор BeamMP уникален для проигрывателя и не может быть изменен в отличие от имени пользователя. +Вы можете найти идентификатор форума пользователя, перейдя по адресу `https://forum.beammp.com/u/USERNAME.json` и выполнив поиск по запросу `"user": {"id": 123456}`. Идентификатор BeamMP уникален для проигрывателя и не может быть изменен в отличие от имени пользователя. Пример: @@ -676,7 +676,7 @@ print(MP.GetPlayerIdentifiers(player_id)) #### `MP.Set(setting: number, ...)` -Временно устанавливает параметр ServerConfig. Для этого полезна таблица `MP.Settings` . +Временно устанавливает параметр ServerConfig. Для этого полезна таблица `MP.Settings`. Пример: @@ -712,9 +712,9 @@ print(MP.Settings) #### `Util.Json*` -Начиная с BeamMP-Server `v3.1.0` . +Начиная с BeamMP-Server `v3.1.0`. -Это встроенная библиотека JSON, которая обычно намного быстрее любой библиотеки Lua JSON. За кулисами используется библиотека C++ `nlohmann::json` , которая совместима с JSON, полностью протестирована и постоянно подвергается фаззингу. +Это встроенная библиотека JSON, которая обычно намного быстрее любой библиотеки Lua JSON. За кулисами используется библиотека C++ `nlohmann::json`, которая совместима с JSON, полностью протестирована и постоянно подвергается фаззингу. #### `Util.JsonEncode(table: table) -> string` @@ -786,7 +786,7 @@ print(Util.JsonPrettify(myjson)) #### `Util.JsonMinify(json: string) -> string` -Удаляет отступы, переносы строк и любые другие пробелы. Не обязательно, если вы не вызвали `Util.JsonPrettify` , так как весь вывод из `Util.Json*` уже минифицирован. +Удаляет отступы, переносы строк и любые другие пробелы. Не обязательно, если вы не вызвали `Util.JsonPrettify`, так как весь вывод из `Util.Json*` уже минифицирован. Пример: @@ -804,7 +804,7 @@ print(Util.JsonMinify(pretty)) #### `Util.JsonFlatten(json: string) -> string` -Создает объект JSON, ключи которого сводятся к указателям JSON в соответствии с RFC 6901. Вы можете восстановить оригинал с помощью `Util.JsonUnflatten()` . Чтобы это работало, все значения должны быть примитивами. +Создает объект JSON, ключи которого сводятся к указателям JSON в соответствии с RFC 6901. Вы можете восстановить оригинал с помощью `Util.JsonUnflatten()`. Чтобы это работало, все значения должны быть примитивами. Пример: @@ -831,11 +831,11 @@ flattened pretty: { #### `Util.JsonUnflatten(json: string) -> string` -Восстанавливает произвольную вложенность значения JSON, которое было сглажено перед использованием функции `Util.JsonFlatten()` . +Восстанавливает произвольную вложенность значения JSON, которое было сглажено перед использованием функции `Util.JsonFlatten()`. #### `Util.JsonDiff(a: string, b: string) -> string` -Создает разницу JSON в соответствии с RFC 6902 (http://jsonpatch.com/). Затем эту разницу можно применить как патч через `Util.JsonDiffApply()` . Возвращает разницу. +Создает разницу JSON в соответствии с RFC 6902 (http://jsonpatch.com/). Затем эту разницу можно применить как патч через `Util.JsonDiffApply()`. Возвращает разницу. #### `Util.JsonDiffApply(base: string, diff: string) -> string` @@ -843,7 +843,7 @@ flattened pretty: { ### `Util.Random*` -Начиная с BeamMP-Server `v3.1.0` . +Начиная с BeamMP-Server `v3.1.0`. #### `Util.Random() -> float` @@ -914,7 +914,7 @@ Util.LogDebug("hi") [19/04/24 11:06:50.142] [Test] [DEBUG] hi ``` -Поддерживает ту же самую печать/сброс данных, что и `print()` . +Поддерживает ту же самую печать/сброс данных, что и `print()`. #### `Util.DebugExecutionTime() -> table` @@ -979,15 +979,15 @@ MP.CreateEventTimer("printStuff", 5000) ### Функции ФС -Функции `FS` — это функции **файловой** **системы** , которые стремятся превзойти возможности Lua по умолчанию. +Функции `FS` — это функции **файловой** **системы**, которые стремятся превзойти возможности Lua по умолчанию. Пожалуйста, всегда используйте `/` в качестве разделителя при указании путей, так как это кроссплатформенно (windows, linux, macos, ...). #### `FS.CreateDirectory(path: string) -> bool,string` -Создает указанный каталог и любые родительские каталоги, если они не существуют. Поведение примерно эквивалентно обычной команде linux `mkdir -p` . +Создает указанный каталог и любые родительские каталоги, если они не существуют. Поведение примерно эквивалентно обычной команде linux `mkdir -p`. -В случае успеха возвращает `true` и `""` . Если создание каталога не удалось, возвращается `false` и сообщение об ошибке ( `string` ). +В случае успеха возвращает `true` и `""`. Если создание каталога не удалось, возвращается `false` и сообщение об ошибке (`string`). Пример: @@ -1010,7 +1010,7 @@ end Удаляет указанный файл или папку. -Возвращает `true` , если произошла ошибка, с сообщением об ошибке во втором возвращаемом значении. +Возвращает `true`, если произошла ошибка, с сообщением об ошибке во втором возвращаемом значении. Пример: @@ -1024,15 +1024,15 @@ end #### `FS.Rename(pathA: string, pathB: string) -> bool,string` -Переименовывает (или перемещает) `pathA` в `pathB` . +Переименовывает (или перемещает) `pathA` в `pathB`. -Возвращает `true` , если произошла ошибка, с сообщением об ошибке во втором возвращаемом значении. +Возвращает `true`, если произошла ошибка, с сообщением об ошибке во втором возвращаемом значении. #### `FS.Copy(pathA: string, pathB: string) -> bool,string` -Копирует `pathA` в `pathB` . +Копирует `pathA` в `pathB`. -Возвращает `true` , если произошла ошибка, с сообщением об ошибке во втором возвращаемом значении. +Возвращает `true`, если произошла ошибка, с сообщением об ошибке во втором возвращаемом значении. #### `FS.GetFilename(path: string) -> string` @@ -1078,11 +1078,11 @@ input -> output #### `FS.IsDirectory(path: string) -> bool` -Возвращает `true` , если указанный путь является каталогом, `false` если нет. Обратите внимание, что `false` НЕ подразумевает, что путь является файлом (см. `FS.IsFile()` ). +Возвращает `true`, если указанный путь является каталогом, `false` если нет. Обратите внимание, что `false` НЕ подразумевает, что путь является файлом (см. `FS.IsFile()`). #### `FS.IsFile(path: string) -> bool` -Возвращает `true` , если указанный путь является обычным файлом (не символической ссылкой, жесткой ссылкой, блочным устройством и т. д.), `false` если нет. Обратите внимание, что `false` НЕ подразумевает, что путь является каталогом (см. `FS.IsDirectory()` ). +Возвращает `true`, если указанный путь является обычным файлом (не символической ссылкой, жесткой ссылкой, блочным устройством и т. д.), `false` если нет. Обратите внимание, что `false` НЕ подразумевает, что путь является каталогом (см. `FS.IsDirectory()`). #### `FS.ListDirectories(path: string) -> table` @@ -1138,7 +1138,7 @@ FS.ConcatPaths("a", "b", "/c/d/e/", "/f/", "g", "h.txt") a/b/c/d/e/f/g/h.txt ``` -Также разрешает `..` , если он существует в пути в любой точке. Эта функция безопаснее, чем конкатенация строк в lua, и учитывает разделители платформы. +Также разрешает `..`, если он существует в пути в любой точке. Эта функция безопаснее, чем конкатенация строк в lua, и учитывает разделители платформы. Пожалуйста, всегда используйте `/` в качестве разделителя при указании путей, так как это кроссплатформенно (windows, linux, macos, ...). @@ -1147,7 +1147,7 @@ a/b/c/d/e/f/g/h.txt #### Объяснение - Аргументы: Список аргументов, переданных обработчикам этого события. -- Отменяемое: Можно ли отменить событие. Если его можно отменить, обработчик может сделать это, вернув `1` , например `return 1` . +- Отменяемое: Можно ли отменить событие. Если его можно отменить, обработчик может сделать это, вернув `1`, например `return 1`. #### Краткое изложение событий @@ -1178,13 +1178,13 @@ a/b/c/d/e/f/g/h.txt Срабатывает при отключении сервера. В настоящее время происходит после того, как все игроки были выгнаны. -#### События, связанные с игрой +#### События, Связанные с Игрой ##### `onPlayerAuth` -Аргументы: `player_name: string` , `player_role: string` , `is_guest: bool` , `identifiers: table -> beammp, ip` Возможность отмены: ДА +Аргументы: `player_name: string`, `player_role: string`, `is_guest: bool`, `identifiers: table -> beammp, ip` Возможность отмены: ДА -Первое событие, которое срабатывает, когда игрок хочет присоединиться. Игроку может быть отказано в присоединении, если вернуть `1` или причину ( `string` ) из функции-обработчика. +Первое событие, которое срабатывает, когда игрок хочет присоединиться. Игроку может быть отказано в присоединении, если вернуть `1` или причину (`string`) из функции-обработчика. ```lua function myPlayerAuthorizer(name, role, is_guest, identifiers) @@ -1197,13 +1197,13 @@ MP.RegisterEvent("onPlayerAuth", "myPlayerAuthorizer") Аргументы: `player_id: number` Возможность отмены: НЕТ -Срабатывает, когда игрок впервые начинает подключение, после `onPlayerAuth` . +Срабатывает, когда игрок впервые начинает подключение, после `onPlayerAuth`. ##### `onPlayerJoining` Аргументы: `player_id: number` Возможность отмены: НЕТ -Срабатывает, когда игрок завершил загрузку всех модов, после `onPlayerConnecting` . +Срабатывает, когда игрок завершил загрузку всех модов, после `onPlayerConnecting`. ##### `onPlayerDisconnect` @@ -1213,33 +1213,33 @@ MP.RegisterEvent("onPlayerAuth", "myPlayerAuthorizer") ##### `onChatMessage` -Аргументы: `player_id: number` , `player_name: string` , `message: string` Возможность отмены: ДА +Аргументы: `player_id: number`, `player_name: string`, `message: string` Возможность отмены: ДА Срабатывает, когда игрок отправляет сообщение в чате. При отмене сообщение в чате не будет показано никому, даже игроку, который его отправил. ##### `onVehicleSpawn` -Аргументы: `player_id: number` , `vehicle_id: number` , `data: string` Возможность отмены: ДА +Аргументы: `player_id: number`, `vehicle_id: number`, `data: string` Возможность отмены: ДА Срабатывает, когда игрок создает новое транспортное средство. Аргумент `data` содержит конфигурацию автомобиля и данные о положении/вращении для транспортного средства в виде строки json. ##### `onVehicleEdited` -Аргументы: `player_id: number` , `vehicle_id: number` , `data: string` Возможность отмены: ДА +Аргументы: `player_id: number`, `vehicle_id: number`, `data: string` Возможность отмены: ДА Срабатывает, когда игрок редактирует свое транспортное средство и применяет редактирование. Аргумент `data` содержит обновленную конфигурацию автомобиля в виде строки json, но **не** включает данные о положении или вращении. Вы можете использовать [MP.GetPositionRaw](#mpgetpositionrawpid-number-vid-number-tablestring) для получения данных о положении и вращении. ##### `onVehicleDeleted` -Аргументы: `player_id: number` , `vehicle_id: number` Возможность отмены: НЕТ +Аргументы: `player_id: number`, `vehicle_id: number` Возможность отмены: НЕТ Срабатывает, когда игрок удаляет свое транспортное средство. ##### `onVehicleReset` -Аргументы: `player_id: number` , `vehicle_id: number` , `data: string` Возможность отмены: НЕТ +Аргументы: `player_id: number`, `vehicle_id: number`, `data: string` Возможность отмены: НЕТ -Срабатывает, когда игрок сбрасывает свое транспортное средство. `data` — это обновленное положение и вращение автомобиля, однако **не** включают конфигурацию транспортных средств. Вы можете использовать [MP.GetPlayerVehicles](#mpgetplayervehiclesplayer_id-number-table) , чтобы получить конфигурацию транспортных средств. +Срабатывает, когда игрок сбрасывает свое транспортное средство. `data` — это обновленное положение и вращение автомобиля, однако **не** включают конфигурацию транспортных средств. Вы можете использовать [MP.GetPlayerVehicles](#mpgetplayervehiclesplayer_id-number-table), чтобы получить конфигурацию транспортных средств. ##### `onFileChanged` @@ -1249,13 +1249,13 @@ MP.RegisterEvent("onPlayerAuth", "myPlayerAuthorizer") Срабатывает при изменении файла в каталоге `Resources/Server` *или любом его подкаталоге* . -Любое изменение файла в каталоге `Resources/Server/` (не в его подпапке) вызовет перезагрузку состояния Lua и событие `onFileChanged` . +Любое изменение файла в каталоге `Resources/Server/` (не в его подпапке) вызовет перезагрузку состояния Lua и событие `onFileChanged`. -Любой файл в подпапках `Resources/Server/` , например `Resources/Server//lua/stuff.lua` , не вызовет перезагрузку состояния, а только вызовет событие `onFileChanged` . Таким образом, вы можете перезагрузить его самостоятельно правильным образом (или не перезагружать). +Любой файл в подпапках `Resources/Server/`, например `Resources/Server//lua/stuff.lua`, не вызовет перезагрузку состояния, а только вызовет событие `onFileChanged`. Таким образом, вы можете перезагрузить его самостоятельно правильным образом (или не перезагружать). -Это относится ко всем файлам, а не только к файлам `.lua` . +Это относится ко всем файлам, а не только к файлам `.lua`. -`path` указывается относительно корня сервера, например `Resources/Server/myplugin/myfile.txt` . Вы можете выполнить дальнейшую обработку этой строки с помощью семейства функций `FS.*` , например, извлечь имя или расширение ( `FS.GetExtension(...)` , `FS.GetFilename(...)` , ...). +`path` указывается относительно корня сервера, например `Resources/Server/myplugin/myfile.txt`. Вы можете выполнить дальнейшую обработку этой строки с помощью семейства функций `FS.*`, например, извлечь имя или расширение ( `FS.GetExtension(...)`, `FS.GetFilename(...)`, ...). Примечание: файлы, добавленные после запуска сервера, *не* отслеживаются, начиная с версии 3.1.0. @@ -1269,7 +1269,7 @@ MP.RegisterEvent("onPlayerAuth", "myPlayerAuthorizer") #### Найти и заменить -Сначала вам следует выполнить поиск и замену всех функций MP. Подстановка должна добавить `MP.` перед всеми функциями MP, за исключением `print()` . +Сначала вам следует выполнить поиск и замену всех функций MP. Подстановка должна добавить `MP.` перед всеми функциями MP, за исключением `print()`. Пример: @@ -1287,7 +1287,7 @@ print(#players) -- note how print() doesn't change #### Прощайте, темы, привет, таймеры событий! -Как обсуждалось во введении, потоки — это таймеры событий. Для любых вызовов `CreateThread` замените его вызовом `CreateEventTimer` . Внимательно проверьте время, которое имел ваш старый CreateThread (число было X в секунду), и подумайте о том, какое значение тайм-аута таймера событий для этого (которое указывается в миллисекундах). Также имейте в виду, что вместо имени функции он принимает имя события, поэтому вам придется также зарегистрировать событие. +Как обсуждалось во введении, потоки — это таймеры событий. Для любых вызовов `CreateThread` замените его вызовом `CreateEventTimer`. Внимательно проверьте время, которое имел ваш старый CreateThread (число было X в секунду), и подумайте о том, какое значение тайм-аута таймера событий для этого (которое указывается в миллисекундах). Также имейте в виду, что вместо имени функции он принимает имя события, поэтому вам придется также зарегистрировать событие. Пример: From 6cf2c3fc4c38ff41bda28eb47e8a1f8c05601861 Mon Sep 17 00:00:00 2001 From: TheHawk Date: Thu, 26 Mar 2026 22:22:40 +0000 Subject: [PATCH 10/40] Translate beammp-dev.md via GitLocalize --- docs/ru/guides/beammp-dev/beammp-dev.md | 75 +++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 docs/ru/guides/beammp-dev/beammp-dev.md diff --git a/docs/ru/guides/beammp-dev/beammp-dev.md b/docs/ru/guides/beammp-dev/beammp-dev.md new file mode 100644 index 000000000..ae3ecb782 --- /dev/null +++ b/docs/ru/guides/beammp-dev/beammp-dev.md @@ -0,0 +1,75 @@ +# Начало работы + +Чтобы начать разработку для BeamMP вам понадобится как минимум: + +- BeamNG.drive, установленный локально +- BeamMP, установленный локально; как минимум лаунчер, дополнительно также сервер +- Git, установленный локально, и учетная запись GitHub.com +- Редактор кода, например VSCode или notepad++ + +--- + +# Разница между модом, лаунчером и сервером + +BeamMP разделен на три основные части: + +- Мод загружается BeamNG, как и любой другой мод транспортного средства или пользовательского интерфейса для игры. Его основная функция — установить локальное соединение с лаунчером и отобразить элементы многопользовательского пользовательского интерфейса. Он в основном написан на Lua, с некоторым количеством JavaScript, HTML и CSS для элементов пользовательского интерфейса. Его репозиторий — [https://github.com/BeamMP/BeamMP](https://github.com/BeamMP/BeamMP) +- Основная функция лаунчера — установить постоянное соединение с модом, а при необходимости — и с выбранным сервером, а также обрабатывать вход пользователя с помощью бэкенда BeamMP. Он написан на C++, предварительно скомпилирован BeamMP и его можно найти по адресу [https://github.com/BeamMP/BeamMP-Launcher](https://github.com/BeamMP/BeamMP-Launcher) +- Сервер устанавливает соединения между одним или несколькими лаунчерами, а также «пульсирует» бэкенд BeamMP, предоставляя такую информацию, как IP, порт, версия, количество игроков и т. д. Кроме того, он управляет и запускает серверные плагины Lua. Он написан на C++, предварительно скомпилирован BeamMP для нескольких различных архитектур ОС и ЦП и может быть найден по адресу [https://github.com/BeamMP/BeamMP-Server](https://github.com/BeamMP/BeamMP-Server) + +--- + +# Настройка среды разработки для работы над модом + +## Использование распакованной папки для BeamNG + +Для эффективной работы с модами в BeamNG рекомендуется использовать `unpacked` папку, а не упаковывать zip-архивы после каждого изменения. + +Откройте папку пользователя BeamNG, перейдя в `%appdata%/Local/BeamNG.drive/0.xx/mods`, где `xx` — последняя версия BeamNG. Создайте папку с именем `unpacked` внутри папки `mods`. + +Дополнительную информацию о папке пользователя можно найти по адресу [https://documentation.beamng.com/support/userfolder/](https://documentation.beamng.com/support/userfolder/) + +## Включение режима разработчика в лаунчере BeamMP + +Чтобы предотвратить удаление вашего локального клона git автоматическим обновлением, необходимо отключить его с помощью `--no-download`. Если вы также не хотите, чтобы лаунчер запускал BeamNG, и хотели бы видеть отладочные распечатки, то рекомендуется использовать `--dev`. + +Аргумент | Примечание +:-- | :-- +`--help` или `-h` | Выведет следующий список аргументов +`--port ` или `-p` | Измените порт прослушивания по умолчанию на ``. Это также должно быть настроено в игре +`--verbose` или `-v` | Подробный режим, выводит отладочные сообщения +`--no-download` | Пропустить загрузку и установку мода BeamMP Lua +`--no-update` | Пропустить применение обновлений лаунчера (необходимо выполнить обновление вручную) +`--no-launch` | Пропустить запуск игры (игру необходимо запустить вручную) +`--dev` | Режим разработчика, то же самое, что и --verbose --no-download --no-launch --no-update +`--game ` или `-- ` | Передает аргументы в игру + +## Клонирование репозитория BeamMP в распакованную папку + +Хотя вы можете вручную скопировать файлы модов BeamMP из нашего репозитория github, настоятельно рекомендуется использовать систему управления исходным кодом, например git. Сначала создайте форк [https://github.com/BeamMP/BeamMP](https://github.com/BeamMP/BeamMP) + +Наиболее эффективным было бы клонировать репозиторий непосредственно в `unpacked` папку. + +Для `git` запустите `git clone https://github.com/yourName/BeamMP` из PowerShell или окна CMD, запущенного из `unpacked` папки. Находясь в папке userfolder, убедитесь, что в `mods` не осталось папки `multiplayer` и что теперь есть `unpacked/beammp`. + +Теперь попробуйте режим разработчика. Запустите лаунчер BeamMP, запустите BeamNG вручную, после входа в игру убедитесь, что BeamMP — единственный активный мод. Вы должны иметь возможность использовать BeamMP как обычно. + +Используя редактор кода, вы теперь можете добавлять или изменять код непосредственно в `unpacked` папке. Затем вы можете попробовать изменения, перезагрузив Lua в игре, нажав `Ctrl+L` (и `F5` если вы внесли изменения в пользовательский интерфейс). + +Как только вы будете довольны своими изменениями, вы можете зафиксировать их через git. Посетите [веб-сайт Git-SCM](https://git-scm.com/doc) для получения руководств и документации по использованию Git. Как только ваши изменения будут зафиксированы и отправлены (в ваш форк), вы можете сделать запрос на извлечение. + +Если у вас возникнут какие-либо проблемы, смело задавайте их на канале #scripting в нашем [Discord](https://discord.gg/beammp). + +--- + +# Настройка локального сервера + +При работе с BeamMP может быть полезно использовать локальный сервер. Вы можете следовать общей [установке сервера](../../server/create-a-server.md) , пропуская первые два шага для чисто локальных подключений. + +Установите сервер как закрытый в `serverConfig.toml`, используя любую строку в качестве `AuthKey`. + +--- + +# Правила Внесения Вклада + +Подробную информацию о формате кода, формате сообщения о коммите, общих рекомендациях по разработке и т. д. см. в файле `CONTRIBUTING.md` в каждом репозитории. Этот файл содержит более подробную информацию о том, как внести свой вклад. Файл `README.md` в каждом репозитории обычно также содержит шаги сборки (для скомпилированных проектов). From 78c1a3298e6a0d02175ee89c500ece0aa25a97ad Mon Sep 17 00:00:00 2001 From: Reis Date: Thu, 26 Mar 2026 22:22:42 +0000 Subject: [PATCH 11/40] Translate index.md via GitLocalize --- docs/ru/guides/index.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 docs/ru/guides/index.md diff --git a/docs/ru/guides/index.md b/docs/ru/guides/index.md new file mode 100644 index 000000000..600962bcd --- /dev/null +++ b/docs/ru/guides/index.md @@ -0,0 +1,21 @@ +--- +title: Руководства +description: Этот набор страниц содержит некоторые основные руководства по BeamMP. +status: новый +--- + +!!! внимание "Этот сайт находится в стадии разработки!" + +``` +Над этим сайтом ведется активная работа. + +Чувствуете, что можете помочь? Пожалуйста, сделайте это, нажав на страницу с карандашом справа! + +Это можно сделать на любой странице. +``` + +# BeamMP Development Guides + +Эта страница будет представлять собой введение и предисловие к созданию клиентского и серверного контента. + +Эту страницу еще нужно доработать. From 54c4656c553577e9b9517df16bc309d4c12c8987 Mon Sep 17 00:00:00 2001 From: TheHawk Date: Thu, 26 Mar 2026 22:22:43 +0000 Subject: [PATCH 12/40] Translate index.md via GitLocalize --- docs/ru/guides/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/guides/index.md b/docs/ru/guides/index.md index 600962bcd..4a75a0ec2 100644 --- a/docs/ru/guides/index.md +++ b/docs/ru/guides/index.md @@ -14,7 +14,7 @@ status: новый Это можно сделать на любой странице. ``` -# BeamMP Development Guides +# Руководства по Разработке BeamMP Эта страница будет представлять собой введение и предисловие к созданию клиентского и серверного контента. From 2f82262491649a7ba9a51c583090ad31d0c96e5a Mon Sep 17 00:00:00 2001 From: TheHawk Date: Thu, 26 Mar 2026 22:22:44 +0000 Subject: [PATCH 13/40] Translate error-codes.md via GitLocalize --- docs/ru/game/error-codes.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/ru/game/error-codes.md b/docs/ru/game/error-codes.md index f80ae7129..8c92c7d37 100644 --- a/docs/ru/game/error-codes.md +++ b/docs/ru/game/error-codes.md @@ -1,4 +1,4 @@ -# Коды ошибок +# Коды Ошибок На этой странице содержатся все коды ошибок, которые может отображать лаунчер. @@ -7,7 +7,7 @@ Код | Описание | Возможное решение --- | --- | --- 10048 | Что-то другое уже использует порт запуска | Убедитесь, что одновременно запущен только ОДИН экземпляр BeamMP-Launcher. Попробуйте перезагрузить ПК. -10038 / 10060 / 10061 | Ни один сервер не ответил по указанному IP-адресу и/или порту | Если вы являетесь владельцем сервера, проверьте правила переадресации портов и/или брандмауэра, найденные на [BeamMP-Server](https://docs.beammp.com/server/create-a-server) . Если вы не являетесь владельцем сервера, выберите другой сервер или свяжитесь с владельцем, если он вам известен. +10038 / 10060 / 10061 | Ни один сервер не ответил по указанному IP-адресу и/или порту | Если вы являетесь владельцем сервера, проверьте правила переадресации портов и/или брандмауэра, найденные на [BeamMP-Server](https://docs.beammp.com/server/create-a-server). Если вы не являетесь владельцем сервера, выберите другой сервер или свяжитесь с владельцем, если он вам известен. 10054 | Сброс соединения пиром | Сервер, к которому вы подключаетесь, отключился. Не удалось найти игру, пожалуйста, запустите ее. Сообщите об этом, если проблема сохранится код 3. | Лаунчеру не удалось найти информацию об игре (каталог игры, каталог профиля, версию и т. д.) в записи реестра. | Запустите игру хотя бы один раз, чтобы создать значения реестра. Не удалось найти игру, пожалуйста, запустите ее. Сообщите об этом, если проблема сохранится код 4. | Программа запуска не смогла прочитать информацию об игре (каталог игры, каталог профиля, версию и т. д.) в записи реестра. | Эта ошибка чаще всего появляется у пользователей с **пиратскими копиями** игры. Если вы купили игру, запустите ее хотя бы один раз, чтобы были созданы значения реестра. From 1ef27363e477cec27d3b689f6e2eeebbfbd1a81c Mon Sep 17 00:00:00 2001 From: TheHawk Date: Thu, 26 Mar 2026 22:22:46 +0000 Subject: [PATCH 14/40] Translate game-faq.md via GitLocalize --- docs/ru/FAQ/game-faq.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/ru/FAQ/game-faq.md b/docs/ru/FAQ/game-faq.md index aecbcd39c..58bff394c 100644 --- a/docs/ru/FAQ/game-faq.md +++ b/docs/ru/FAQ/game-faq.md @@ -10,7 +10,7 @@ ### **Как установить BeamMP?** -Полное руководство по установке BeamMP на Windows можно найти [здесь](https://docs.beammp.com/game/getting-started/) . +Полное руководство по установке BeamMP на Windows можно найти [здесь](https://docs.beammp.com/game/getting-started/). --- @@ -28,7 +28,7 @@ BeamMP не будет работать с пиратскими или уста ### **Почему мой антивирус или Защитник Windows помечает лаунчер?** -Некоторые антивирусные программы могут помечать BeamMP как угрозу из-за его взаимодействия с сетью и другими вещами. В коде **нет вирусов** . Код для лаунчера, сервера и клиента lua можно найти на нашем [GitHub](https://github.com/BeamMP) . +Некоторые антивирусные программы могут помечать BeamMP как угрозу из-за его взаимодействия с сетью и другими вещами. В коде **нет вирусов**. Код для лаунчера, сервера и клиента lua можно найти на нашем [GitHub](https://github.com/BeamMP). --- @@ -44,7 +44,7 @@ BeamMP не будет работать с пиратскими или уста ### **Где я могу найти код?** -Весь исходный код можно найти на нашем [GitHub](https://github.com/BeamMP) . Перед внесением любых изменений помните, что код подчиняется нашим [Условиям использования](https://forum.beammp.com/t/terms-of-use-v1-0/43) и лицензиям: +Весь исходный код можно найти на нашем [GitHub](https://github.com/BeamMP). Перед внесением любых изменений помните, что код подчиняется нашим [Условиям использования](https://forum.beammp.com/t/terms-of-use-v1-0/43) и лицензиям: Код | Лицензия --- | :-: @@ -56,9 +56,9 @@ BeamMP не будет работать с пиратскими или уста ### **Я нашел ошибку или эксплойт, что мне делать?** -Если проблема связана с кодом, и вы знаете, как использовать Github, откройте новую «Проблему» в соответствующем репозитории на нашем [GitHub](https://github.com/BeamMP) . Мы используем рабочий процесс, основанный на проблемах, поэтому даже если у вас уже есть исправление ошибки, рассмотрите возможность открытия новой «Проблемы», а затем откройте «Запрос на извлечение» с решениями для проблемы. Более подробную информацию о содействии можно найти [здесь](https://github.com/BeamMP/BeamMP/blob/development/CONTRIBUTING.md) . +Если проблема связана с кодом, и вы знаете, как использовать Github, откройте новую «Проблему» в соответствующем репозитории на нашем [GitHub](https://github.com/BeamMP). Мы используем рабочий процесс, основанный на проблемах, поэтому даже если у вас уже есть исправление ошибки, рассмотрите возможность открытия новой «Проблемы», а затем откройте «Запрос на извлечение» с решениями для проблемы. Более подробную информацию о содействии можно найти [здесь](https://github.com/BeamMP/BeamMP/blob/development/CONTRIBUTING.md). Если у вас нет учетной записи GitHub, вы не знаете, как пользоваться GitHub, или у вас есть другие вопросы, вы можете связаться с нами следующими способами: -- Если это не что-то деликатное, вы можете создать сообщение на нашем [форуме BeamMP](https://forum.beammp.com) или сообщить об этом на нашем [официальном Discord](https://discord.gg/beammp) . -- Если информация конфиденциальная, вы можете напрямую сообщить о проблеме нашему сотруднику в [Discord](https://discord.gg/beammp) . +- Если это не что-то деликатное, вы можете создать сообщение на нашем [форуме BeamMP](https://forum.beammp.com) или сообщить об этом на нашем [официальном Discord](https://discord.gg/beammp). +- Если информация конфиденциальная, вы можете напрямую сообщить о проблеме нашему сотруднику в [Discord](https://discord.gg/beammp). From f49a39cb0d1a67adc4cd792b56a26fa4f26805e4 Mon Sep 17 00:00:00 2001 From: TheHawk Date: Thu, 26 Mar 2026 22:22:47 +0000 Subject: [PATCH 15/40] Translate How-to-check-for-CGNAT.md via GitLocalize --- docs/ru/FAQ/How-to-check-for-CGNAT.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/docs/ru/FAQ/How-to-check-for-CGNAT.md b/docs/ru/FAQ/How-to-check-for-CGNAT.md index 51eaaf48e..0071408e3 100644 --- a/docs/ru/FAQ/How-to-check-for-CGNAT.md +++ b/docs/ru/FAQ/How-to-check-for-CGNAT.md @@ -8,19 +8,20 @@ # Что такое CGNAT? -Подробное объяснение того, что такое CGNAT и почему это может стать проблемой при попытке размещения сервера дома, можно найти на [этой странице](https://en.wikipedia.org/wiki/Carrier-grade_NAT) . +Подробное объяснение того, что такое CGNAT и почему это может стать проблемой при попытке размещения сервера дома, можно найти на [этой странице](https://en.wikipedia.org/wiki/Carrier-grade_NAT). # Как проверить наличие CGNAT? ## Метод 1: -Откройте командную строку, запустите `tracert -4 beammp.com` . Это выведет серию сетевых переходов. Дождитесь завершения операции (может занять до 30 переходов). Проверьте первые несколько IP-адресов после IP вашего маршрутизатора/модема/шлюза. Если после первого перехода появляется несколько IP-адресов в диапазоне `100.64.xx` - `100.127.xx` или `10.xx.xx.xx` , скорее всего, вы находитесь за CGNAT. +Откройте командную строку, запустите `tracert -4 beammp.com`. Это выведет серию сетевых переходов. Дождитесь завершения операции (может занять до 30 переходов). Проверьте первые несколько IP-адресов после IP вашего маршрутизатора/модема/шлюза. Если после первого перехода появляется несколько IP-адресов в диапазоне `100.64.xx` - `100.127.xx` или `10.xx.xx.xx`, скорее всего, вы находитесь за CGNAT. !!!примечание ``` -The first hop will be your Router/Modem/Gateway and differs between Devices. -The official ranges for local networks are as follows: ``10.0.0.xxx`` - ``192.168.xxx.xxx`` - ```172.16.xxx.xxx`` +Первый переход будет вашим роутером/модемом/шлюзом и отличается в зависимости от устройства. +Официальные диапазоны для локальных сетей следующие: +``10.0.0.xxx`` - ``192.168.xxx.xxx`` - ```172.16.xxx.xxx`` ``` ## Метод 2: @@ -34,8 +35,8 @@ The official ranges for local networks are as follows: ``10.0.0.xxx`` - ``192.16 !!! предупреждение ``` -Internet Service Providers may only offer dedicated IP addresses as a **paid option**. -Please check the prices of our partnered hosting services as they could be cheaper than this fee! +Интернет-провайдеры могут предлагать выделенные IP-адреса только как платную услугу. +Проверьте цены у наших партнёрских хостинговых сервисов — это может оказаться дешевле этой платы! ``` Пример сети, не являющейся CGNAT: From 424ea0ecf66f4a33b5fde0225ef071880ed1059b Mon Sep 17 00:00:00 2001 From: TheHawk Date: Thu, 26 Mar 2026 22:22:48 +0000 Subject: [PATCH 16/40] Translate ui-apps.md via GitLocalize --- docs/ru/beamng/dev/modding/ui-apps.md | 93 ++++++++++++++------------- 1 file changed, 47 insertions(+), 46 deletions(-) diff --git a/docs/ru/beamng/dev/modding/ui-apps.md b/docs/ru/beamng/dev/modding/ui-apps.md index 36a932d32..88d2bc49c 100644 --- a/docs/ru/beamng/dev/modding/ui-apps.md +++ b/docs/ru/beamng/dev/modding/ui-apps.md @@ -39,14 +39,14 @@ ui\modules\apps\ExampleApp\app.html Messages: - +
    - +
  • {{ message }} - + delete @@ -56,7 +56,7 @@ ui\modules\apps\ExampleApp\app.html ``` -Здесь вы можете увидеть тег `` , отображающий передачу вашего транспортного средства, входные данные, используемые для отправки сообщения функции `sendMessage()` в Javascript, и повторяющийся тег `
  • ` использующий ng-repeat для переменной `messages` , расположенной в Javascript. +Здесь вы можете увидеть тег ``, отображающий передачу вашего транспортного средства, входные данные, используемые для отправки сообщения функции `sendMessage()` в Javascript, и повторяющийся тег `
  • ` использующий ng-repeat для переменной `messages`, расположенной в Javascript. ui\modules\apps\ExampleApp\app.js @@ -74,7 +74,8 @@ angular.module('beamng.apps') $scope.message = '' $scope.messages = [] - // Setup the streams we want. For now, we only want the engine information. You can add more, you'll just have to look around to find the different streams + // Настраиваем потоки, которые нам нужны. Пока что нам нужна только информация о двигателе. + // Можно добавить больше, нужно будет просто поискать доступные потоки. let steamList = ['engineInfo'] StreamsManager.add(steamList) @@ -82,16 +83,16 @@ angular.module('beamng.apps') StreamsManager.remove(steamList) }) - // Do I even need to put this comment here explaining what this function does? - // Well, I have done it for a lot of other things when they weren't needed. I'll leave this one be... + // Нужно ли вообще писать этот комментарий, объясняя, что делает эта функция? + // Ну, я писал комментарии для многих других вещей, даже когда это было не нужно. Пусть уж этот останется... $scope.$on('streamsUpdate', function(event, streams) { - if (!streams.engineInfo) // Early return... You probably noticed that without this useless comment though + if (!streams.engineInfo) // Ранний выход... Наверное, ты и без этого бесполезного комментария понял return; - // `lua/vehicle/controller/vehicleController.lua:538` (or use console.log) + // `lua/vehicle/controller/vehicleController.lua:538` (или можно использовать console.log) let gear = streams.engineInfo[5] - // Update the gear name in HTML if needed + // Обновляем название передачи в HTML при необходимости if ($scope.gearName !== gear) $scope.gearName = gear }) @@ -103,7 +104,7 @@ angular.module('beamng.apps') if ($scope.message == '') return - // Forward the message to the Lua extension to modify it + // Передаём сообщение в Lua-расширение, чтобы оно его изменило bngApi.engineLua('extensions.exampleMod.modifyMessage("' + $scope.message + '")') $scope.message = '' } @@ -112,7 +113,7 @@ angular.module('beamng.apps') $scope.messages.splice(idx, 1) } - // The `modifyMessage` function will call this hook with the modified data + // Функция `modifyMessage` вызовет этот хук с изменёнными данными $scope.$on('MessageReady', function(_, modifiedMessage) { $scope.messages.push(modifiedMessage) }); @@ -121,7 +122,7 @@ angular.module('beamng.apps') }]) ``` -Обратите внимание на использование $scope{/b0} . Это очень важно, поскольку вам нужно будет определить переменные и функции в {b1}$scope , чтобы иметь возможность доступа к ним из Html внутри любого тега ng-* . Таким образом, в этом примере после выполнения функции `sendMessage()` из Html она отправит его в файл lua, расположенный в каталоге расширений мода, и выполнит функцию `modifyMessage()` внутри этого файла lua. +Обратите внимание на использование $scope{/b0}. Это очень важно, поскольку вам нужно будет определить переменные и функции в {b1}$scope, чтобы иметь возможность доступа к ним из Html внутри любого тега ng-*. Таким образом, в этом примере после выполнения функции `sendMessage()` из Html она отправит его в файл lua, расположенный в каталоге расширений мода, и выполнит функцию `modifyMessage()` внутри этого файла lua. Пример того, как может выглядеть сторона lua: @@ -134,7 +135,7 @@ end ^ Это упрощенная версия lua, просто показывающая функцию. -Основное внимание здесь уделяется использованию guihooks.trigger , который запускает событие AngularJS, определенное с помощью `$scope.$on()` . Как вы можете видеть в самом низу файла Javascript, событие называется MessageReady и будет выполнено функцией guihooks.trigger с полезной нагрузкой сообщения, а затем будет помещено в переменную `$scope.messages` для отображения тегом li с помощью ng-repeat в файле Html. +Основное внимание здесь уделяется использованию guihooks.trigger, который запускает событие AngularJS, определенное с помощью `$scope.$on()`. Как вы можете видеть в самом низу файла Javascript, событие называется MessageReady и будет выполнено функцией guihooks.trigger с полезной нагрузкой сообщения, а затем будет помещено в переменную `$scope.messages` для отображения тегом li с помощью ng-repeat в файле Html. Полный файл lua находится ниже @@ -144,64 +145,64 @@ lua\ge\extensions\exampleMod.lua local M = {} --[[ - This is the entry point of our extension, this is what the game loads from our `modScript.lua`. - In the modScript file, you can load more extensions and put them in the same directory as this file. + Это точка входа нашего расширения — именно её загружает игра из файла `modScript.lua`. + В файле modScript можно загружать больше расширений и помещать их в ту же директорию, что и этот файл. - In this file, we will communicate with the following: - 1. Our vehicle extension. That extension tells this extension when to send it data, and we send it. Take a look at `vehicle/extensions/auto/exampleVehicleExtension.lua` - 2. Input. Take a look at `core/input/actions/myActions.json`. When the bounded key is pressed, it will call `onActionKeyDown` (a function we export below) + В этом файле мы будем взаимодействовать со следующими компонентами: + 1. Наше расширение для автомобиля. Оно сообщает этому расширению, когда нужно отправить данные, и мы их отправляем. См. `vehicle/extensions/auto/exampleVehicleExtension.lua` + 2. Ввод. См. `core/input/actions/myActions.json`. Когда привязанная клавиша нажата, вызывается `onActionKeyDown` (функция, экспортируемая ниже) ]] --- Game Function Hooks +-- Хуки игровых функций -------------------------------------------- local function onExtensionLoaded() - log('D', "onExtensionLoaded", "Called") + log('D', "onExtensionLoaded", "Called") end local function onExtensionUnloaded() - log('D', "onExtensionUnloaded", "Called") + log('D', "onExtensionUnloaded", "Called") end --- Custom Functions +-- Пользовательские функции -------------------------------------------- local function onActionKeyDown() - log('D', "onActionKeyDown", "Pressed!") + log('D', "onActionKeyDown", "Pressed!") end local function onVehicleExtensionLoaded(vehID) - log('D', "onVehicleExtensionLoaded", "Sending some data to the vehicle") + log('D', "onVehicleExtensionLoaded", "Sending some data to the vehicle") - local veh = be:getObjectByID(vehID) -- If you don't have the ID, you can also use `be:getPlayerVehicle(0)` to get the current vehicle. - if not veh then return end -- The usual error checking + local veh = be:getObjectByID(vehID) -- Если у вас нет ID, можно также использовать `be:getPlayerVehicle(0)`, чтобы получить текущий автомобиль. + if not veh then return end -- Обычная проверка на ошибки - local data = { - ["name"] = "Daniel W" - } + local data = { + ["name"] = "Daniel W" + } - veh:queueLuaCommand("extensions.exampleVehicleExtension.onDataReceived('" .. jsonEncode(data) .. "')") + veh:queueLuaCommand("extensions.exampleVehicleExtension.onDataReceived('" .. jsonEncode(data) .. "')") end local function modifyMessage(message) - message = message .. " [Modified!]" - guihooks.trigger('MessageReady', message) + message = message .. " [Modified!]" + guihooks.trigger('MessageReady', message) end --- Export Interface +-- Экспорт интерфейса -------------------------------------------- -M.onExtensionLoaded = onExtensionLoaded -M.onExtensionUnloaded = onExtensionUnloaded +M.onExtensionLoaded = onExtensionLoaded +M.onExtensionUnloaded = onExtensionUnloaded -M.onActionKeyDown = onActionKeyDown +M.onActionKeyDown = onActionKeyDown M.onVehicleExtensionLoaded = onVehicleExtensionLoaded -M.modifyMessage = modifyMessage +M.modifyMessage = modifyMessage ---[[ Other functions could include: - - onPreRender(dtReal, dtSim, dtRaw) - - onUpdate(dtReal, dtSim, dtRaw) - - onClientPreStartMission(levelPath) - - onClientPostStartMission(levelPath) +--[[ Другие функции могут включать: + - onPreRender(dtReal, dtSim, dtRaw) + - onUpdate(dtReal, dtSim, dtRaw) + - onClientPreStartMission(levelPath) + - onClientPostStartMission(levelPath) - To find all of these, search the following in `BeamNG.Drive/lua`: `extensions.hook(` + Чтобы найти все возможные функции, выполните поиск в `BeamNG.Drive/lua` по следующему выражению: `extensions.hook(` --]] return M @@ -252,7 +253,7 @@ ui\modules\apps\ExampleApp\app.json } ``` -Директива должна быть такой же, как в файле Javascript. +Директива должна быть такой же, как в файле Javascript # Функции Javascript, предоставляемые BeamNG для UI-приложений @@ -260,7 +261,7 @@ ui\modules\apps\ExampleApp\app.json bngApi.engineLua("lua_path.function()") ``` -Полезно для запуска функции lua с аргументами или без них. +Полезно для запуска функции lua с аргументами или без них # Функции Lua, предоставляемые BeamNG для UI-приложений From 2030692ca109a538a436334a782ae81119dcadbe Mon Sep 17 00:00:00 2001 From: Reis Date: Thu, 26 Mar 2026 22:22:50 +0000 Subject: [PATCH 17/40] Translate snippets.md via GitLocalize --- docs/ru/beamng/snippets.md | 162 +++++++++++++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 docs/ru/beamng/snippets.md diff --git a/docs/ru/beamng/snippets.md b/docs/ru/beamng/snippets.md new file mode 100644 index 000000000..eecb5e3dd --- /dev/null +++ b/docs/ru/beamng/snippets.md @@ -0,0 +1,162 @@ +!!! внимание "Этот сайт находится в стадии разработки!" + +``` +Над этим сайтом ведется активная работа. + +Чувствуете, что можете помочь? Пожалуйста, сделайте это, нажав на страницу с карандашом справа! + +Это можно сделать на любой странице. +``` + +# Фрагменты BeamNG.drive + +## Фрагменты кода Lua + +### Рисование маркера и обнаружение транспортного средства + +Нанесение маркеров на карту может быть одним из лучших способов указать пользователю на то, что там есть какая-то форма взаимодействия, которую он может осуществить. + +Нарисовать маркер довольно просто. Вот пример того, как рисуется маркер автобусного маршрута: + +```Lua + local function createBusMarker(markerName) + local marker = createObject('TSStatic') + marker:setField('shapeName', 0, "art/shapes/interface/position_marker.dae") + marker:setPosition(vec3(0, 0, 0)) + marker.scale = vec3(1, 1, 1) + marker:setField('rotation', 0, '1 0 0 0') + marker.useInstanceRenderData = true + marker:setField('instanceColor', 0, '1 1 1 0') + marker:setField('collisionType', 0, "Collision Mesh") + marker:setField('decalType', 0, "Collision Mesh") + marker:setField('playAmbient', 0, "1") + marker:setField('allowPlayerStep', 0, "1") + marker:setField('canSave', 0, "0") + marker:setField('canSaveDynamicFields', 0, "1") + marker:setField('renderNormals', 0, "0") + marker:setField('meshCulling', 0, "0") + marker:setField('originSort', 0, "0") + marker:setField('forceDetail', 0, "-1") + marker.canSave = false + marker:registerObject(markerName) + scenetree.MissionGroup:addObject(marker) + return marker + end + + -- this can then be called in a loop to setup your markers. + -- NOTE: You should only do this once as part of your setup and not called on each frame. + if #markers == 0 then + for k,v in pairs(nameMarkers) do + local mk = scenetree.findObject(v) + if mk == nil then + log('I', logTag,'Creating marker '..tostring(v)) + mk = createBusMarker(v) + ScenarioObjectsGroup:addObject(mk.obj) + end + table.insert(markers, mk) + end + end +``` + +Вот пример пользовательского маркера от [BeamNG-FuelStations](https://github.com/BeamMP/BeamNG-FuelStations/tree/master) : + +```Lua + local stations = [ + { "location": [ -778.813, 485.973, 23.46 ], "type":"gas" }, + { "location": [ 617.164, -192.107, 53.2 ], "type":"ev" }, + ] + + local function IsEntityInsideArea(pos1, pos2, radius) + return pos1:distance(pos2) < radius + end + + local onUpdate = function (dt) + for k, spot in pairs(stations) do -- loop through all spots on the current map + local bottomPos = vec3(spot.location[1], spot.location[2], spot.location[3]) + local topPos = bottomPos + vec3(0,0,2) -- offset vec to get top position (2m tall) + + local spotInRange = false -- is this spot in range? used for color + local spotCompatible = false -- is this spot compatible? + + if activeVeh then -- we have a car and its ours (if in mp) + local vehPos = activeVeh:getPosition() + + spotInRange = IsEntityInsideArea(vec3(vehPos.x, vehPos.y,vehPos.z), bottomPos, 1.5) + + spotCompatible = activeFuelType == "any" or spot.type == "any" or activeFuelType == spot.type + end + + local spotColor = (spotInRange and spotCompatible) and activeColorMap[spot.type] or inactiveColorMap[spot.type] or ColorF(1,1,1,0.5) + + debugDrawer:drawCylinder(bottomPos:toPoint3F(), topPos:toPoint3F(), 1, spotColor) --bottom, top, radius, color + end + end +``` + +### Примеры использования guihooks + +#### Уведомления-подсказки, в правом верхнем углу экрана + +![image](https://github.com/StanleyDudek/Docs/assets/49531350/c8a87842-b95a-4eca-84dc-93072ecc9158) + +```lua +--guihooks.trigger('toastrMsg', {type, title, msg, config = {timeOut}}) +guihooks.trigger('toastrMsg', {type = "info", title = "Info Message:", msg = "Info Message Text Here", config = {timeOut = 5000}}) +guihooks.trigger('toastrMsg', {type = "warning", title = "Warning Message:", msg = "Warning Message Text Here", config = {timeOut = 5000}}) +guihooks.trigger('toastrMsg', {type = "error", title = "Error Message:", msg = "Error Message Text Here", config = {timeOut = 5000}}) +``` + +#### Уведомления о сообщениях, по умолчанию в левом верхнем углу экрана в приложении «Сообщения» + +![image](https://github.com/StanleyDudek/Docs/assets/49531350/6baef813-50cb-43c3-9c59-0de550b014b6) + +```lua +--guihooks.trigger('Message', {msg, ttl, category, icon}) --requires Messages app +guihooks.trigger('Message', {msg = "Message Text Here", ttl = 5.0, category = "arrow_upward", icon = "arrow_upward"}) +guihooks.trigger('Message', {msg = "Message Text Here", ttl = 5.0, category = "arrow_downward", icon = "arrow_downward"}) +guihooks.trigger('Message', {msg = "Message Text Here", ttl = 5.0, category = "flag", icon = "flag"}) +guihooks.trigger('Message', {msg = "Message Text Here", ttl = 5.0, category = "check", icon = "check"}) +guihooks.trigger('Message', {msg = "Message Text Here", ttl = 5.0, category = "check_circle", icon = "check_circle"}) +guihooks.trigger('Message', {msg = "Message Text Here", ttl = 5.0, category = "warning", icon = "warning"}) +guihooks.trigger('Message', {msg = "Message Text Here", ttl = 5.0, category = "error", icon = "error"}) +guihooks.trigger('Message', {msg = "Message Text Here", ttl = 5.0, category = "directions_car", icon = "directions_car"}) +guihooks.trigger('Message', {msg = "Message Text Here", ttl = 5.0, category = "star", icon = "star"}) +guihooks.trigger('Message', {msg = "Message Text Here", ttl = 5.0, category = "timeline", icon = "timeline"}) +guihooks.trigger('Message', {msg = "Message Text Here", ttl = 5.0, category = "save", icon = "save"}) +guihooks.trigger('Message', {msg = "Message Text Here", ttl = 5.0, category = "settings", icon = "settings"}) +``` + +#### Центрировать уведомление на большом или маленьком дисплее + +![image](https://github.com/StanleyDudek/Docs/assets/49531350/d0cf754f-83f8-4d15-9159-27350da127de) ![image](https://github.com/StanleyDudek/Docs/assets/49531350/1df6fc9b-756f-484e-b8d9-5df346dc4c26) + +```lua +--guihooks.trigger('ScenarioFlashMessage', {{msg, ttl, sound, big}} ) -- requires RaceCountdown ui app +guihooks.trigger('ScenarioFlashMessage', {{"Message", 5.0, 0, true}} ) +guihooks.trigger('ScenarioFlashMessage', {{"Message Text Here", 5.0, 0, false}} ) + +--countdown example, when all executed at once, the items are queued and will follow eachother after the previous ttl expires +guihooks.trigger('ScenarioFlashMessage', {{"3", 1.0, "Engine.Audio.playOnce('AudioGui', 'event:UI_Countdown1')", true}}) +guihooks.trigger('ScenarioFlashMessage', {{"2", 1.0, "Engine.Audio.playOnce('AudioGui', 'event:UI_Countdown2')", true}}) +guihooks.trigger('ScenarioFlashMessage', {{"1", 1.0, "Engine.Audio.playOnce('AudioGui', 'event:UI_Countdown3')", true}}) +guihooks.trigger('ScenarioFlashMessage', {{"GO!", 3.0, "Engine.Audio.playOnce('AudioGui', 'event:UI_CountdownGo')", true}}) + +--another sound example +guihooks.trigger('ScenarioFlashMessage', {{"Teleported!", 3.0, "Engine.Audio.playOnce('AudioGui', 'event:UI_Checkpoint')", false}}) +``` + +#### Центральный постоянный дисплей среднего размера + +![image](https://github.com/StanleyDudek/Docs/assets/49531350/6290e018-6b3d-4674-98f2-34282a723258) + +```lua +--guihooks.trigger('ScenarioRealtimeDisplay', {msg = msg} ) -- requires Race Realtime Display ui app +guihooks.trigger('ScenarioRealtimeDisplay', {msg = "Message Text Here"} ) +--these messages persist, clear with a blank string +--if you are running live data, this is a good one to update rapidly (think timers, distance calcs, et cetera) +guihooks.trigger('ScenarioRealtimeDisplay', {msg = ""} ) +``` + +## Фрагменты кода IMGUI + +## Фрагменты кода пользовательского интерфейса CEF From 3560e58b9666316fa8ab1059d2757dbffc4ac541 Mon Sep 17 00:00:00 2001 From: TheHawk Date: Thu, 26 Mar 2026 22:22:52 +0000 Subject: [PATCH 18/40] Translate snippets.md via GitLocalize --- docs/ru/beamng/snippets.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/ru/beamng/snippets.md b/docs/ru/beamng/snippets.md index eecb5e3dd..146889545 100644 --- a/docs/ru/beamng/snippets.md +++ b/docs/ru/beamng/snippets.md @@ -43,8 +43,8 @@ return marker end - -- this can then be called in a loop to setup your markers. - -- NOTE: You should only do this once as part of your setup and not called on each frame. + -- Это затем можно вызывать в цикле для настройки ваших маркеров. + -- ПРИМЕЧАНИЕ: Делать это следует только один раз в процессе инициализации, а не на каждом кадре. if #markers == 0 then for k,v in pairs(nameMarkers) do local mk = scenetree.findObject(v) @@ -135,13 +135,13 @@ guihooks.trigger('Message', {msg = "Message Text Here", ttl = 5.0, category = "s guihooks.trigger('ScenarioFlashMessage', {{"Message", 5.0, 0, true}} ) guihooks.trigger('ScenarioFlashMessage', {{"Message Text Here", 5.0, 0, false}} ) ---countdown example, when all executed at once, the items are queued and will follow eachother after the previous ttl expires +-- Пример обратного отсчёта: когда все выполняются одновременно, элементы ставятся в очередь и будут следовать друг за другом после истечения предыдущего ttl guihooks.trigger('ScenarioFlashMessage', {{"3", 1.0, "Engine.Audio.playOnce('AudioGui', 'event:UI_Countdown1')", true}}) guihooks.trigger('ScenarioFlashMessage', {{"2", 1.0, "Engine.Audio.playOnce('AudioGui', 'event:UI_Countdown2')", true}}) guihooks.trigger('ScenarioFlashMessage', {{"1", 1.0, "Engine.Audio.playOnce('AudioGui', 'event:UI_Countdown3')", true}}) guihooks.trigger('ScenarioFlashMessage', {{"GO!", 3.0, "Engine.Audio.playOnce('AudioGui', 'event:UI_CountdownGo')", true}}) ---another sound example +-- другой пример звука guihooks.trigger('ScenarioFlashMessage', {{"Teleported!", 3.0, "Engine.Audio.playOnce('AudioGui', 'event:UI_Checkpoint')", false}}) ``` From f68f6c6d4a7d5cd53bd669e14092997d4643b8bc Mon Sep 17 00:00:00 2001 From: TheHawk Date: Thu, 26 Mar 2026 22:22:54 +0000 Subject: [PATCH 19/40] Translate index.md via GitLocalize --- docs/ru/beamng/index.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 docs/ru/beamng/index.md diff --git a/docs/ru/beamng/index.md b/docs/ru/beamng/index.md new file mode 100644 index 000000000..bf7a54253 --- /dev/null +++ b/docs/ru/beamng/index.md @@ -0,0 +1,11 @@ +# Добро пожаловать в документацию BeamNG.drive + +Эта документация не является официальной и подготовлена командой BeamMP Mod Team и сообществом BeamNG. + +## Понимание Структуры Файлов + +... + +## Фрагменты кода + +Полезные фрагменты кода можно найти здесь: [Snippets](snippets.md) From 13f01d32fac4e5284583af91525a4ce3533c12fb Mon Sep 17 00:00:00 2001 From: TheHawk Date: Thu, 26 Mar 2026 22:22:56 +0000 Subject: [PATCH 20/40] Translate multiplayer-settings.md via GitLocalize --- docs/ru/game/multiplayer-settings.md | 323 +++++++++++++++++++++++++++ 1 file changed, 323 insertions(+) create mode 100644 docs/ru/game/multiplayer-settings.md diff --git a/docs/ru/game/multiplayer-settings.md b/docs/ru/game/multiplayer-settings.md new file mode 100644 index 000000000..56b8aac64 --- /dev/null +++ b/docs/ru/game/multiplayer-settings.md @@ -0,0 +1,323 @@ +# Настройки Мультиплеера + +## **1. Общие** + +??? setting "Продвинутые настройки" + +``` +Если включено, будут видны все настройки многопользовательской игры + +Если выключено, видны только базовые настройки +``` + +??? setting "Включить защиту от клонирования конфигурации" + +``` +Если включено, конфигурация вашего транспортного средства будет защищена от сохранения другими игроками + +Если выключено, другие игроки смогут сохранить вашу конфигурацию +``` + +??? setting "Отключить паузу из-за нестабильностей" + +``` +Если включено, физические нестабильности не будут останавливать игру + +Если выключено, нестабильности будут вызывать паузу + +!!! note "" + + Рекомендуется оставить выключенным, так как повторяющиеся нестабильности могут привести к крашу игры +``` + +??? setting "Использовать упрощённые транспортные средства, если доступны" + +``` +Если включено, транспортные средства других игроков будут заменяться упрощёнными моделями (как в AI-трафике), если они доступны + +Если выключено, будут использоваться оригинальные модели +``` + +??? setting "Новое меню чата" + +``` +Если включено, чат отображается в окне [IMGUI](https://github.com/ocornut/imgui), которое можно, например, переместить на другой монитор + +Если выключено, чат отображается в стандартном UI приложении + +!!! note "" + + Перетаскивание IMGUI окон может снизить производительность и сбивать программы записи экрана, записывая окно чата вместо основного окна игры +``` + +??? setting "Включить сглаживание положения автомобиля" + +``` +Если включено, BeamMP будет использовать алгоритм для сглаживания обновлений позиции транспортного средства через регулярные интервалы. Это может быть полезно для игроков с высоким пингом или при высокой потере пакетов + +Если выключено, BeamMP будет обновлять позиции транспортных средств по мере их получения +``` + +??? setting "Пропускать предупреждение безопасности модов" + +``` +Если включено, всплывающее окно с предупреждением о безопасности модов не будет отображаться при подключении к серверу с модами + +Если выключено, предупреждение будет показываться каждый раз при подключении к серверу с модами +``` + +??? setting "Включить очередь обновлений/редактирования" + +``` +Если включено, спавн и изменения транспортных средств других игроков будут помещаться в очередь. Подробнее см. раздел `2. Очередь событий` + +Если выключено, спавн и изменения транспортных средств других игроков будут загружаться мгновенно +``` + +??? setting "Включить автоматическую синхронизацию деталей" + +``` +Если включено, детали вашего транспортного средства автоматически синхронизируются с другими игроками через несколько секунд + +Если выключено, необходимо вручную нажимать кнопку синхронизации деталей в меню выбора деталей для отправки синхронизации другим игрокам +``` + +??? setting "Выключить переключение на машины других игроков" + +``` +Если включено, переключение между транспортными средствами пропустит машины других игроков + +Если выключено, переключение будет происходить по всем доступным транспортным средствам +``` + +??? setting "Сделать машины прозрачными при приближении" + +``` +Если включено, другие машины будут постепенно исчезать по мере приближения + +Если выключено, другие машины будут полностью видимы независимо от расстояния + +!!! note "" + + Это влияет только на видимую 3D-модель машины, а не на физическую mesh-сетку. Чтобы также отключить физику, необходимо включить `Упрощённая физика столкновений` в настройках игры +``` + +??? setting "Показывать ID игроков" + +``` +Если включено, в списке игроков появится дополнительная колонка с ID каждого игрока. Полезно для разработки или модерации + +Если выключено, список игроков будет показывать только имя игрока и пинг +``` + +??? setting "Разрешить обновление списка серверов в игре" + +``` +Если включено, список серверов будет обновляться с регулярными интервалами во время игры. Это может вызвать лаги + +Если выключено, список серверов обновляется только при открытии главного меню +``` + +## **2. Очередь событий** + +??? setting "Выделить игроков в очереди" + +``` +Если включено, игроки с ожидающими событиями будут выделены в списке игроков + +Если выключено, игроки не будут выделяться индивидуально +``` + +??? setting "Выделять игроков с очередью" + +``` +Если установлено `Левая кнопка мыши`, клик по имени игрока в списке левой кнопкой мыши загрузит ожидающие события, правая кнопка — позволит наблюдать за игроком + +Если установлено `Правая кнопка мыши`, клик правой кнопкой мыши загрузит ожидающие события, левая кнопка — позволит наблюдать +``` + +??? setting "Автоматизировать очередь" + +``` +Если включено, события из очереди будут автоматически загружены после того, как ваш транспорт опустится ниже порога скорости на установленное время таймаута + +Если выключено, события загружаются вручную, через кнопку `События` в верхней части экрана или клик по имени игрока в списке +``` + +??? setting "Порог скорости для срабатывания очереди" + +``` +Этот параметр определяет порог скорости для автоматической загрузки событий из очереди. Ваш транспорт должен быть медленнее этого порога дольше, чем `Таймаут срабатывания очереди`, чтобы события были загружены +``` + +??? setting "Таймаут срабатывания очереди" + +``` +Этот параметр определяет задержку времени для автоматической загрузки событий из очереди. Ваш транспорт должен быть медленнее `Порог скорости для срабатывания очереди` в течение этого времени, чтобы события были загружены +``` + +??? setting "Не использовать очередь в режиме наблюдения" + +``` +Если включено, событие будет загружено мгновенно, если вы наблюдаете за другим игроком + +Если выключено, событие будет помещено в очередь, как при фокусе на вашем транспортном средстве +``` + +??? setting "Не использовать очередь с Юнициклами (Снеговиками/Бимлингсами)" + +``` +Если включено, событие, связанное с снеговиком или бимлингом, будет загружено мгновенно + +Если выключено, снеговики/бимлинги будут помещены в очередь, как и другие машины +``` + +## **3. Настройка стандартного Юницикла** + +??? setting "Конфигурация Юницикла по Умолчанию" + +``` +Этот параметр определяет вариант юницикла, который будет загружаться по умолчанию. Можно выбрать между готовыми конфигурациями или своими сохранёнными настройками +``` + +??? setting "Автоматически сохранять последний использованный Юницикл" + +``` +Если включено, последний использованный юницикл автоматически сохранится и загрузится при следующем спавне + +Если выключено, будет спавниться конфигурация по умолчанию +``` + +## **4. Капли** + +??? setting "Использовать капли для незаспавнившегося автомобиля" + +``` +Если включено, вместо незаспавненного транспортного средства будет отображаться placeholder-объект (капля) + +Если выключено, незаспавненный транспорт будет невидим +``` + +??? setting "Изменить цвет" + +``` +??? setting "Видимость" + + Если включено, капля будет нарисована с использованием выбранного цвета. + + Если выключено, капля отображаться не будет. + +??? setting "RGB HEX значения" + + Ожидаемый транспорт: цвет капли при очереди на спавн, стандарт #FF6400 + + Незаконный транспорт: цвет капли для запрещенного транспорта (например, через сторонний мод), стандарт #000000 + + Удалённый транспорт: цвет капли для удалённого пользователем транспорта, стандарт #333333 +``` + +## **5. Ники** + +??? setting "Скрыть ники игроков" + +``` +Если включено, ники игроков не отображаются + +Если выключено, ники игроков отображаются в зависимости от позиции их машин +``` + +??? setting "Показывать дистанцию до других игроков" + +``` +Если включено, к нику будет добавлено расстояние до соответствующего транспортного средства + +Если выключено, расстояние отображаться не будет +``` + +??? setting "Включить/выключть исчезновение ников" + +``` +Если включено, ники будут появляться/исчезать в зависимости от `Дистанция исчезновения ников` и `Инвертировать направление исчезновения` + +Если выключено, ники будут отображаться с обычной непрозрачностью вне зависимости от расстояния +``` + +??? setting "Дистанция исчезновения ников/Инвертировать направление исчезновения" + +``` +!!! setting "Исчезновение" + + Ники становятся менее видимыми, чем дальше находится игрок + + `Дистанция исчезновения ников` определяет расстояние, на котором ник отображается с минимальной непрозрачностью + +!!! setting "Появление" + + Ники становятся более видимыми, чем дальше находится игрок + + `Дистанция исчезновения ников` определяет расстояние, на котором ник отображается с максимальной непрозрачностью +``` + +??? setting "Не скрывать ники полностью" + +``` +Если включено, ники не могут быть полностью невидимыми, сохраняется минимальная непрозрачность вне зависимости от расстояния + +Если выключено, ники могут стать полностью невидимыми +``` + +??? setting "Обрезать длинные никнеймы и роли" + +``` +Если включено, `Лимит длины ника` обрежет ники и роли до установленного числа символов + +Если выключено, ники и роли отображаются полностью +``` + +??? setting "Показать наблюдателей под ником автомобиля" + +``` +Если включено, под ником игрока будет отображаться имя наблюдателя + +Если выключено, имена наблюдателей не отображаются +``` + +??? setting "Показывать никнеймы наблюдателей серым цветом независимо от их роли" + +``` +Если включено, ник наблюдателя всегда будет окружён серым фоном + +Если выключено, фон будет отражать роль наблюдателя цветом +``` + +## **6. Другие** + +??? setting "Показывать сетевую активность в консоле" + +``` +Если включено, активность сети BeamMP будет отображаться в консоле + +Если выключено, активность сети не будет отображаться + +!!! danger "" + + Будьте осторожны с этой настройкой, так как весь вывод консоли также записывается в лог-файлы + + При включении эта настройка может привести к росту файлов логов на сотни мегабайт за считанные минуты +``` + +??? setting "Порт лаунчера" + +``` +Этот параметр определяет порт для связи с лаунчером + +Изменять следует только если стандартный порт 4444 использовать нельзя + +Не забудьте также изменить его в конфигурации лаунчера `launcher.cfg` + +!!! tip "" + + Указанный порт — первый из двух. Второй порт используется сразу после него, то есть порт + 1 + + Первый порт передаёт основные сетевые пакеты, второй — игровые пакеты, оба через TCP +``` From 57159c9dc1b484ad1e84f8424bfb5e3768251edc Mon Sep 17 00:00:00 2001 From: TheHawk Date: Thu, 26 Mar 2026 22:22:57 +0000 Subject: [PATCH 21/40] Translate contributing.md via GitLocalize --- docs/ru/contributing.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/ru/contributing.md b/docs/ru/contributing.md index c9bc8edb1..aa3c72951 100644 --- a/docs/ru/contributing.md +++ b/docs/ru/contributing.md @@ -1,6 +1,6 @@ # Участие в разработке BeamMP Docs -BeamMP использует [Material for MkDocs](https://squidfunk.github.io/mkdocs-material) в качестве своей темы. Это тема для [MkDocs](https://www.mkdocs.org) . Полную документацию можно найти на их соответствующих сайтах. +BeamMP использует [Material for MkDocs](https://squidfunk.github.io/mkdocs-material) в качестве своей темы. Это тема для [MkDocs](https://www.mkdocs.org). Полную документацию можно найти на их соответствующих сайтах. ## Начало работы @@ -28,7 +28,7 @@ BeamMP использует [Material for MkDocs](https://squidfunk.github.io/mk 2. Создайте форк проекта в своей учетной записи GitHub. 3. Клонируйте проект локально. 4. Настройка материалов для MkDocs в соответствии с их руководством [здесь](https://squidfunk.github.io/mkdocs-material/getting-started/). -5. Запустите `mkdocs serve` , чтобы запустить сервер документации с функцией перезагрузки в реальном времени, на который вы клонировали форк. +5. Запустите `mkdocs serve`, чтобы запустить сервер документации с функцией перезагрузки в реальном времени, на который вы клонировали форк. 6. Внесите изменения, которые считаете нужными. 7. Сохраните изменения в своем форке. 8. Подайте запрос на включение изменений в наш репозиторий [здесь](https://github.com/BeamMP/Docs). From 4badff72c2d1fa3fd0bd12df058b6eeaf4ef36b6 Mon Sep 17 00:00:00 2001 From: TheHawk Date: Thu, 26 Mar 2026 22:22:59 +0000 Subject: [PATCH 22/40] Translate mod-reference.md via GitLocalize --- docs/ru/scripting/mod-reference.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/scripting/mod-reference.md b/docs/ru/scripting/mod-reference.md index ea6b76392..63a7ddbdf 100644 --- a/docs/ru/scripting/mod-reference.md +++ b/docs/ru/scripting/mod-reference.md @@ -8,7 +8,7 @@ Feel you could help? Please do by clicking on the page with a pencil on the righ This can be done any page too. ``` -# Справочник по модам/внутриигровым скриптам +# Справочник по Модам/Внутриигровым Скриптам BeamMP также позволяет вам создавать собственные плагины на стороне клиента. Мы предоставили несколько функций, которые вы можете использовать для связи с другими многопользовательскими модами и другими игроками через сервер. From 8834300683c38848b2167d3b74fff23f2e88299c Mon Sep 17 00:00:00 2001 From: TheHawk Date: Thu, 26 Mar 2026 22:23:00 +0000 Subject: [PATCH 23/40] Translate getting-started.md via GitLocalize --- docs/ru/guides/mod-creation/server/getting-started.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/ru/guides/mod-creation/server/getting-started.md b/docs/ru/guides/mod-creation/server/getting-started.md index 952afa914..1d17e04b0 100644 --- a/docs/ru/guides/mod-creation/server/getting-started.md +++ b/docs/ru/guides/mod-creation/server/getting-started.md @@ -21,7 +21,7 @@ Resources/ └─ further.lua ``` -Серверный lua — это необходимый минимум, если вы хотите добавлять пользовательские события, вам также понадобится как минимум клиентский lua, а также modscript.lua. +Серверный lua — это необходимый минимум, если вы хотите добавлять пользовательские события, вам также понадобится как минимум клиентский lua, а также modscript.lua Папка Server должна содержать подпапки, по одной для каждого серверного мода. Хорошей практикой является наличие только одного основного файла lua и добавление дополнительных файлов lua в подпапки. Однако вам не обязательно это делать, сервер загрузит файлы lua в алфавитном порядке, если их несколько. @@ -62,11 +62,11 @@ function onPlayerAuth(playerName, playerRole, isGuest, identifiers) end ``` -Дополнительную информацию о серверных функциях, предоставляемых BeamMP, можно найти в [последнем справочнике по серверу.](../../../scripting/server/latest-server-reference.md) +Дополнительную информацию о серверных функциях, предоставляемых BeamMP, можно найти в [последнем справочнике по серверу](../../../scripting/server/latest-server-reference.md) ## Клиентская часть lua -Это в значительной степени соответствует [расширениям BeamNG.](https://documentation.beamng.com/modding/programming/extensions/) +Это в значительной степени соответствует [расширениям BeamNG](https://documentation.beamng.com/modding/programming/extensions/) ```lua local M = {} @@ -81,7 +81,7 @@ return M Выводит на консоль информацию о том, что examplePlugin был загружен -Более подробную информацию см. в [документации beamNG по отладочным распечаткам.](https://documentation.beamng.com/modding/programming/debugging/#a-add-a-log) +Более подробную информацию см. в [документации BeamNG по отладочным распечаткам](https://documentation.beamng.com/modding/programming/debugging/#a-add-a-log) ## modScript.lua @@ -92,7 +92,7 @@ load('examplePlugin') setExtensionUnloadMode('examplePlugin', 'manual') ``` -Вы можете добавить вывод журнала, если хотите видеть в журналах, когда ваш modScript обрабатывается BeamNG. +Вы можете добавить вывод журнала, если хотите видеть в журналах, когда ваш modScript обрабатывается BeamNG ```lua load('examplePlugin') From 62bee281c1e71727d63f6c8b32bf45faac195c71 Mon Sep 17 00:00:00 2001 From: TheHawk Date: Thu, 26 Mar 2026 22:23:01 +0000 Subject: [PATCH 24/40] Translate Update-launcher.md via GitLocalize --- docs/ru/FAQ/Update-launcher.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/ru/FAQ/Update-launcher.md b/docs/ru/FAQ/Update-launcher.md index 19929aad3..3a37e1a54 100644 --- a/docs/ru/FAQ/Update-launcher.md +++ b/docs/ru/FAQ/Update-launcher.md @@ -5,16 +5,16 @@ Launcher не может обновиться или показывает пус !!! примечание ``` -You should have already used or installed BeamMP using the installer provided by [our website](https://beammp.com) before continuing. +Ты должен был уже установить или использовать BeamMP с помощью установщика, предоставленного на [нашем сайте](https://beammp.com), прежде чем продолжить. ``` # Загрузка и установка нового лаунчера -1. Загрузите последнюю версию Launcher напрямую с [GitHub](https://github.com/BeamMP/BeamMP-Launcher/releases/latest/download/BeamMP-Launcher.exe) . -2. Перейдите в каталог BeamMP-Launcher.exe. По умолчанию эта папка находится в `C:\Users\\AppData\Roaming\` . Заменить с именем пользователя вашего Windows. Если вы установили BeamMP в другом месте, например D:\BeamMP-Launcher , то поместите Launcher в соответствующую папку BeamMP-Launcher. -3. Если применимо, замените существующий Launcher новым в папке BeamMP-Launcher. -4. Запустите BeamMP-Launcher как обычно, чтобы проверить его работу. +1. Загрузите последнюю версию Launcher напрямую с [GitHub](https://github.com/BeamMP/BeamMP-Launcher/releases/latest/download/BeamMP-Launcher.exe). +2. Перейдите в каталог BeamMP-Launcher.exe. По умолчанию эта папка находится в `C:\Users\\AppData\Roaming\`. Заменить с именем пользователя вашего Windows. Если вы установили BeamMP в другом месте, например D:\BeamMP-Launcher, то поместите Launcher в соответствующую папку BeamMP-Launcher. +3. Если применимо, замените существующий Launcher новым в папке BeamMP-Launcher. +4. Запустите BeamMP-Launcher как обычно, чтобы проверить его работу. ## Проблема все еще не решена? -Создайте тикет поддержки на нашем [сервере Discord](https://discord.gg/BeamMP) . Теги: Launcher, скачать, +Создайте тикет поддержки на нашем [Сервере Discord](https://discord.gg/BeamMP). Теги: Launcher, скачать From 8558aae0866d90948562f065b3c37a24f43febc1 Mon Sep 17 00:00:00 2001 From: mt-gitlocalize Date: Thu, 26 Mar 2026 22:23:03 +0000 Subject: [PATCH 25/40] Translate Change-launcher-port.md via GitLocalize --- docs/ru/FAQ/Change-launcher-port.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 docs/ru/FAQ/Change-launcher-port.md diff --git a/docs/ru/FAQ/Change-launcher-port.md b/docs/ru/FAQ/Change-launcher-port.md new file mode 100644 index 000000000..c42158126 --- /dev/null +++ b/docs/ru/FAQ/Change-launcher-port.md @@ -0,0 +1,25 @@ +# Проблема + +Лаунчер не подключается к игре. Это краткое руководство объясняет, как вручную изменить порт лаунчера. + +# Изменение порта вручную + +1. Запустить BeamNG +2. In the main menu, go to Options, then Multiplayer +3. In the multiplayer options, enable `Show advanced options` +4. Прокрутите страницу вниз +5. In `Launcher port` change the port number to something else, for example 4567 +6. Закрыть BeamNG +7. Щелкните правой кнопкой мыши по ярлыку BeamMP-launcher и выберите в контекстном меню `Open file location` +8. Откройте файл `launcher.cfg` в текстовом редакторе. +9. Измените `"Port": 4444,` номер на тот же, который вы использовали ранее в игровых настройках, в этом примере 4567 +10. Сохраните изменения и закройте текстовый редактор. +11. Запустите BeamMP-лаунчер + +Если соединения все еще нет, попробуйте еще раз с другим портом. Любое число между ~2000 и 65535 является допустимым портом + +## Проблема все еще не решена? + +Create a support ticket on our [Discord Server](https://discord.gg/BeamMP). + +Tags: Launcher, Connection Failed, Port Number From 131b6c5f416260654fc0356392ecda6b773340e3 Mon Sep 17 00:00:00 2001 From: TheHawk Date: Thu, 26 Mar 2026 22:23:04 +0000 Subject: [PATCH 26/40] Translate Change-launcher-port.md via GitLocalize --- docs/ru/FAQ/Change-launcher-port.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/ru/FAQ/Change-launcher-port.md b/docs/ru/FAQ/Change-launcher-port.md index c42158126..68ef7d43f 100644 --- a/docs/ru/FAQ/Change-launcher-port.md +++ b/docs/ru/FAQ/Change-launcher-port.md @@ -5,10 +5,10 @@ # Изменение порта вручную 1. Запустить BeamNG -2. In the main menu, go to Options, then Multiplayer -3. In the multiplayer options, enable `Show advanced options` +2. В главном меню выберите «Параметры», затем «Мультиплеер» +3. В параметрах многопользовательской игры включите `Show advanced options` 4. Прокрутите страницу вниз -5. In `Launcher port` change the port number to something else, for example 4567 +5. В `Launcher port` измените номер порта на другой, например, 4567 6. Закрыть BeamNG 7. Щелкните правой кнопкой мыши по ярлыку BeamMP-launcher и выберите в контекстном меню `Open file location` 8. Откройте файл `launcher.cfg` в текстовом редакторе. @@ -20,6 +20,6 @@ ## Проблема все еще не решена? -Create a support ticket on our [Discord Server](https://discord.gg/BeamMP). +Создайте заявку в службу поддержки на нашем [Discord Сервере](https://discord.gg/BeamMP). -Tags: Launcher, Connection Failed, Port Number +Теги: Лаунчер, Ошибка Соединения, Номер Порта From b2e1ec6c28d30dcd8b878b8d5af412177d8e036b Mon Sep 17 00:00:00 2001 From: mt-gitlocalize Date: Thu, 26 Mar 2026 22:23:06 +0000 Subject: [PATCH 27/40] Translate How-to-deactivate-mods.md via GitLocalize --- docs/ru/FAQ/How-to-deactivate-mods.md | 42 +++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 docs/ru/FAQ/How-to-deactivate-mods.md diff --git a/docs/ru/FAQ/How-to-deactivate-mods.md b/docs/ru/FAQ/How-to-deactivate-mods.md new file mode 100644 index 000000000..7748dfa35 --- /dev/null +++ b/docs/ru/FAQ/How-to-deactivate-mods.md @@ -0,0 +1,42 @@ +## Зачем мне деактивировать моды? + +В BeamMP сервер, к которому вы решили подключиться, предоставляет необходимые моды. Они загружаются и активируются автоматически при подключении. Наличие установленных и активных локальных модов часто приводит к тому, что BeamMP не работает должным образом, даже если у вас есть всего один дополнительный мод помимо BeamMP. + +!!! предупреждение + +``` +Remove any mods you have placed in the BeamNG.Drive\content\ or sub-folders. That location is NOT meant for the installing mods and can lead to issues as stated in the `DO_NOT_INSTALL_MODS_HERE.txt` file, located in the same directory. + +!!! quote "DO_NOT_INSTALL_MODS_HERE.txt" + + Do NOT copy mods into this folder: it can lead to broken mods, slower installation of updates, a broken mod manager, broken Safe Mode and others. +``` + +## Как деактивировать/удалить мои моды? + +Существует 3 варианта решения возможных проблем при использовании BeamMP. + +### 1. Отключить моды + +Перед тем, как присоединиться к любому серверу, убедитесь, что у вас нет модов, кроме 'multiplayerbeammp'. Если игра зависает или у вас все еще есть проблемы, обратитесь к следующему варианту + +### 2. Создание новой папки пользователя + +Open the BeamNG.Drive userfolder and rename the `current` folder to for example `current_old`. Close BeamNG.drive before renaming it. ![image](../../assets/content/new-userfolder.png) + +### 3. Удаление модов из папок контента. + +To access the Beamng.drive\content\ folder and clean the folder of any mods, open the installation location of BeamNG.drive. Right click the `content` folder and delete it. Proceed to verify the game files via Steam or Epic Games. This is going to download the files again. + +После того, как вы закончите, запустите BeamNG.Drive через BeamMP-Launcher, и у вас должен быть 'multiplayerbeammp' как ваш единственный включенный мод, доступный в репозитории, а также кнопка в главном меню для входа в BeamMP. Если у вас все еще есть проблемы с присоединением к модифицированному серверу, они, вероятно, предоставляют сломанные/устаревшие моды. + +### 4. Очистка кэша BeamMP-Launcher + +To clean up cached mods from the BeamMP directories, go to the installation location of your BeamMP-Launcher. By default, the path would be 'C:\Users\AppData\BeamMP-Launcher'. In there, you will find a 'Resources' folder. Delete the folder to delete all cached mods. This can be helpful if you need more space on your disk or want to clean out oudated BeamNG mods. + +!!! вопрос "Мои настройки и конфигурации пропали! Как их восстановить?" + +``` +If you renamed the userfolder, you forced the game to create a new, clean userfolder. You may copy the 'settings' and 'vehicles' folder from the folder you renamed (e.g. `current_old`) to the new folder it created. +Make sure BeamNG.Drive is closed and replace all elements in the location you want to copy the folders to. You should now have all configs and settings as they were before. +``` From 838d3eea6679fe438e9a3b1f436a3b4e6fdf8eca Mon Sep 17 00:00:00 2001 From: TheHawk Date: Thu, 26 Mar 2026 22:23:08 +0000 Subject: [PATCH 28/40] Translate How-to-deactivate-mods.md via GitLocalize --- docs/ru/FAQ/How-to-deactivate-mods.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/ru/FAQ/How-to-deactivate-mods.md b/docs/ru/FAQ/How-to-deactivate-mods.md index 7748dfa35..d7a708fda 100644 --- a/docs/ru/FAQ/How-to-deactivate-mods.md +++ b/docs/ru/FAQ/How-to-deactivate-mods.md @@ -5,11 +5,11 @@ !!! предупреждение ``` -Remove any mods you have placed in the BeamNG.Drive\content\ or sub-folders. That location is NOT meant for the installing mods and can lead to issues as stated in the `DO_NOT_INSTALL_MODS_HERE.txt` file, located in the same directory. +Удалите все моды, которые вы разместили в папке BeamNG.Drive\content\ или её подпапках. Это место не предназначено для установки модов и может вызвать проблемы, как указано в файле `DO_NOT_INSTALL_MODS_HERE.txt`, находящемся в той же директории. !!! quote "DO_NOT_INSTALL_MODS_HERE.txt" - Do NOT copy mods into this folder: it can lead to broken mods, slower installation of updates, a broken mod manager, broken Safe Mode and others. + Ни в коем случае не копируйте моды в эту папку: это может привести к повреждению модов, замедлению установки обновлений, неправильной работе менеджера модов, нарушению работы безопасного режима и другим проблемам. ``` ## Как деактивировать/удалить мои моды? @@ -22,21 +22,21 @@ Remove any mods you have placed in the BeamNG.Drive\content\ or sub-folders. Tha ### 2. Создание новой папки пользователя -Open the BeamNG.Drive userfolder and rename the `current` folder to for example `current_old`. Close BeamNG.drive before renaming it. ![image](../../assets/content/new-userfolder.png) +Откройте папку пользователя BeamNG.Drive и переименуйте папку `current`, например, в `current_old`. Перед переименованием закройте BeamNG.drive. ![image](https://gitlocalize.com/repo/9180/ru/docs/assets/content/new-userfolder.png) ### 3. Удаление модов из папок контента. -To access the Beamng.drive\content\ folder and clean the folder of any mods, open the installation location of BeamNG.drive. Right click the `content` folder and delete it. Proceed to verify the game files via Steam or Epic Games. This is going to download the files again. +Чтобы получить доступ к папке `Beamng.drive\contentЧтобы получить доступ к папке и очистить ее от любых модов, откройте место установки BeamNG.drive. Щелкните правой кнопкой мыши папку `content` и удалите ее. Продолжайте проверять файлы игры через Steam или Epic Games. Это приведет к повторной загрузке файлов. После того, как вы закончите, запустите BeamNG.Drive через BeamMP-Launcher, и у вас должен быть 'multiplayerbeammp' как ваш единственный включенный мод, доступный в репозитории, а также кнопка в главном меню для входа в BeamMP. Если у вас все еще есть проблемы с присоединением к модифицированному серверу, они, вероятно, предоставляют сломанные/устаревшие моды. ### 4. Очистка кэша BeamMP-Launcher -To clean up cached mods from the BeamMP directories, go to the installation location of your BeamMP-Launcher. By default, the path would be 'C:\Users\AppData\BeamMP-Launcher'. In there, you will find a 'Resources' folder. Delete the folder to delete all cached mods. This can be helpful if you need more space on your disk or want to clean out oudated BeamNG mods. +Чтобы очистить кэшированные моды из каталогов BeamMP, перейдите в место установки вашего BeamMP-Launcher. По умолчанию путь будет C:\Users\AppData\BeamMP-Launcher. Там вы найдете папку 'Resources'. Удалите папку, чтобы удалить все кэшированные моды. Это может быть полезно, если вам нужно больше места на диске или вы хотите очистить устаревшие моды BeamNG. !!! вопрос "Мои настройки и конфигурации пропали! Как их восстановить?" ``` -If you renamed the userfolder, you forced the game to create a new, clean userfolder. You may copy the 'settings' and 'vehicles' folder from the folder you renamed (e.g. `current_old`) to the new folder it created. -Make sure BeamNG.Drive is closed and replace all elements in the location you want to copy the folders to. You should now have all configs and settings as they were before. +Если вы переименовали папку пользователя, вы заставили игру создать новую, чистую папку пользователя. Вы можете скопировать папки "settings" и "vehicles" из папки, которую вы переименовали (например, `current_old`), в новую созданную папку. +Убедитесь, что BeamNG.Drive закрыт, и замените все элементы в месте, куда вы копируете папки. Теперь у вас должны быть все настройки и конфигурации, как и раньше. ``` From c0d8bd65d78ed99f1a54a665dd73e02c2efe7ad5 Mon Sep 17 00:00:00 2001 From: TheHawk Date: Thu, 26 Mar 2026 22:23:10 +0000 Subject: [PATCH 29/40] Translate player-faq.md via GitLocalize --- docs/ru/FAQ/player-faq.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/ru/FAQ/player-faq.md b/docs/ru/FAQ/player-faq.md index d81deb42f..e75884a66 100644 --- a/docs/ru/FAQ/player-faq.md +++ b/docs/ru/FAQ/player-faq.md @@ -1,22 +1,22 @@ -# Часто задаваемые вопросы игроков +# Часто Задаваемые Вопросы Игроков ## Как привязать свой аккаунт Discord? -Связывание аккаунтов Discord и BeamMP — это новая функция BeamMP. Для этого вам нужно отправить `!link` в виде сообщения боту [BeamMP Accounts](https://discordapp.com/channels/@me/1201234743568634026/) . Бот ответит ссылкой для входа в ваш аккаунт BeamMP. Просто войдите в свой аккаунт BeamMP, после этого вы получите второе сообщение о том, что он успешно связал ваши аккаунты. 🎉 +Связывание вашего аккаунта Discord с аккаунтом BeamMP — новая функция BeamMP. Для этого перейдите в [Настройки аккаунта на форуме](https://forum.beammp.com/my/preferences/account) и подключите свой аккаунт Discord в разделе «Связанные аккаунты» (это видно только при отключенной двухфакторной аутентификации на форуме). ## Как получить ранний доступ? -Ранний доступ (включая фиолетовую метку и другие преимущества) можно получить, поддержав нас финансово на [Patreon](https://patreon.com/BeamMP) , купив уровень, сделав пожертвование или ускорив сервер Discord. Пожертвование **x** суммы в долларах США = **x** дополнительных ключей сервера, включая преимущества EA. Ускорение дает вам +4 ключа сервера в дополнение к преимуществам EA. +Ранний доступ (включая фиолетовую метку и другие преимущества) можно получить, поддержав нас финансово на [Patreon](https://patreon.com/BeamMP), купив уровень, сделав пожертвование или ускорив сервер Discord. Пожертвование **x** суммы в долларах США = **x** дополнительных ключей сервера, включая преимущества EA. Ускорение дает вам +4 ключа сервера в дополнение к преимуществам EA. ## Я подписался на Patreon. Как мне получить свои привилегии? Чтобы автоматически получать бонусы, обязательно выполните следующие действия: -1. Привяжите свой аккаунт Discord к Patreon, чтобы получить роли и доступ на сервере Discord. -2. Пожалуйста, убедитесь, что вы используете тот же адрес электронной почты на Patreon, что и для вашей учетной записи BeamMP на [форуме](https://forum.beammp.com/) . +1. Свяжите свой аккаунт Discord на [Patreon](https://www.patreon.com/settings/apps/discord), чтобы получить роли и доступ на сервере Discord. +2. Пожалуйста, убедитесь, что вы используете тот же адрес электронной почты на Patreon, что и для вашей учетной записи BeamMP на [Форуме](https://forum.beammp.com/). Пожалуйста, будьте терпеливы, синхронизация системы может занять несколько часов, иногда до 12. Если вы не получили свои бонусы в течение 12 часов и выполнили вышеуказанные шаги, обратитесь в службу поддержки BeamMP. ## У меня есть еще вопросы! -Если ваш вопрос или проблема связаны с Игрой или процессом, пожалуйста, обратитесь к разделу [FAQ по Играм](game-faq.md) . Если ваш вопрос или проблема связаны с запуском Сервера, пожалуйста, обратитесь к разделу [FAQ по Серверу](server-faq.md) . В противном случае, пожалуйста, посетите [форумы](https://forum.beammp.com/c/faq/35) , где сообщество может задавать вопросы и получать ответы. +Если ваш вопрос или проблема связаны с Игрой или процессом, пожалуйста, обратитесь к разделу [FAQ по Играм](game-faq.md). Если ваш вопрос или проблема связаны с запуском Сервера, пожалуйста, обратитесь к разделу [FAQ по Серверу](server-faq.md). В противном случае, пожалуйста, посетите [форумы](https://forum.beammp.com/c/faq/35), где сообщество может задавать вопросы и получать ответы. From 3db9d01350b1c979579e42bd7239a1d1bd0cad8c Mon Sep 17 00:00:00 2001 From: mt-gitlocalize Date: Thu, 26 Mar 2026 22:23:12 +0000 Subject: [PATCH 30/40] Translate server-faq.md via GitLocalize --- docs/ru/FAQ/server-faq.md | 89 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 docs/ru/FAQ/server-faq.md diff --git a/docs/ru/FAQ/server-faq.md b/docs/ru/FAQ/server-faq.md new file mode 100644 index 000000000..42552282f --- /dev/null +++ b/docs/ru/FAQ/server-faq.md @@ -0,0 +1,89 @@ +# Часто задаваемые вопросы и известные проблемы + +Список часто задаваемых вопросов и известных ошибок. + +--- + +## **Сервер** + +--- + +### **Как мне настроить свои собственные серверы?** + +All the information to set up your own server can be found [here](https://docs.beammp.com/server/create-a-server/). + +--- + +### **Можно ли создать сервер с использованием Linux?** + +We provide binaries for many Linux distributions [here](https://github.com/BeamMP/BeamMP-Server/releases/latest). If there are no binaries for your Operating System/Distribution, you can build it yourself by downloading the source on our [GitHub](https://github.com/BeamMP/BeamMP-Server), a tutorial can be found [here](https://github.com/BeamMP/BeamMP-Server#build-instructions). + +--- + +### **Каковы минимальные системные требования для запуска сервера BeamMP?** + +- ОЗУ: 50+ МБ полезной памяти (не считая накладных расходов ОС) +- Процессор: >1 ГГц, желательно многоядерный +- ОС: Windows, Linux (теоретически любая POSIX) +- Графический процессор: Нет +- HDD: 10 МБ + Моды/Плагины +- Пропускная способность: загрузка 5-10 Мбит/с + +--- + +## **Игроки за пределами моей сети не могут присоединиться к моему серверу, размещенному на моем собственном сервере.** + +Read the port forwarding guide that's available [here](https://docs.beammp.com/server/port-forwarding/). Below there's a brief summary of the most noteworthy steps. If other players, trying to connect to your server, receive an error code 10060, 10061 or 10038 in their BeamMP launcher, then you should check the following steps: + +- Перенаправьте порт 30814 (или любой другой порт, указанный в ServerConfig.toml), протоколы TCP и UDP. +- Разрешить BeamMP через брандмауэр Windows, разрешить как входящие, так и исходящие соединения. Отключение брандмауэра обычно НЕ работает. +- Убедитесь, что вы не используете VPN (это может вызвать проблемы). +- Убедитесь, что сервер действительно работает, без ошибок и предупреждений. + +You can check if you have successfully portforwarded using CheckBeamMP whilst the server is running. + +
    + +
    + +
    + +
    + +Примечания: + +- Некоторые интернет-провайдеры не предоставляют выделенные адреса IPv4 для вашего соединения (CGNAT), поэтому переадресация портов может быть невозможна, несмотря на то, что она доступна в маршрутизаторе. +- Переадресация портов невозможна, если вы используете мобильное (4G/5G) интернет-подключение. + +--- + +### **I can see my self-hosted server in the server-list, but i cannot join it myself** + +If the server is running on the same machine as the game, you yourself have to use Direct Connect to join, with the IP 127.0.0.1 and your server's port. For you to be able to join your own, self-hosted server trough the server-list, your router needs to support NAT-loopback, but this is a function not many home routers support. + +--- + +## **Разнообразный** + +--- + +### **Где я могу найти код?** + +All the source code can be found on our [GitHub](https://github.com/BeamMP). Before doing anything keep in mind that the code is subject to our [Terms of Use](https://forum.beammp.com/t/terms-of-use-v1-0/43) and licenses: + +Код | Лицензия +--- | :-: +Сервер | [ЛИЦЕНЗИЯ](https://github.com/BeamMP/BeamMP-Server/blob/master/LICENSE) +Пусковая установка | [ЛИЦЕНЗИЯ](https://github.com/BeamMP/BeamMP-Launcher/blob/master/README.md) +Клиент Луа | [ЛИЦЕНЗИЯ](https://github.com/BeamMP/BeamMP/blob/development/LICENSE.md) + +--- + +### **Я нашел ошибку или эксплойт, что мне делать?** + +If the issue is code related and you know how to use Github, create a new "Issue" in the appropriate repository on our [GitHub](https://github.com/BeamMP). We use an issue-based workflow so even if you already have a fix for the bug, consider opening a new "Issue", then asking a "Pull Request" that solves your "Issue". More info on contributing can be found [here](https://github.com/BeamMP/BeamMP/blob/development/CONTRIBUTING.md). + +Если у вас нет учетной записи GitHub или вы не знаете, как пользоваться GitHub, вы можете связаться с нами следующими способами: + +- If it is not something sensitive, you can create a post on our [BeamMP Forum](https://forum.beammp.com) or you can report this on our [Official Discord](https://discord.gg/beammp). +- If the information is sensitive you can directly report the issue to a Staff member on our [Discord](https://discord.gg/beammp). From 78e468cdb3d8f46a0c568e8e3d9e16f4ab724c7d Mon Sep 17 00:00:00 2001 From: TheHawk Date: Thu, 26 Mar 2026 22:23:13 +0000 Subject: [PATCH 31/40] Translate server-faq.md via GitLocalize --- docs/ru/FAQ/server-faq.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/ru/FAQ/server-faq.md b/docs/ru/FAQ/server-faq.md index 42552282f..19066e266 100644 --- a/docs/ru/FAQ/server-faq.md +++ b/docs/ru/FAQ/server-faq.md @@ -10,13 +10,13 @@ ### **Как мне настроить свои собственные серверы?** -All the information to set up your own server can be found [here](https://docs.beammp.com/server/create-a-server/). +Всю информацию о настройке собственного сервера можно найти [здесь](https://docs.beammp.com/server/create-a-server/). --- ### **Можно ли создать сервер с использованием Linux?** -We provide binaries for many Linux distributions [here](https://github.com/BeamMP/BeamMP-Server/releases/latest). If there are no binaries for your Operating System/Distribution, you can build it yourself by downloading the source on our [GitHub](https://github.com/BeamMP/BeamMP-Server), a tutorial can be found [here](https://github.com/BeamMP/BeamMP-Server#build-instructions). +Мы предоставляем бинарные файлы для многих дистрибутивов Linux [здесь](https://github.com/BeamMP/BeamMP-Server/releases/latest). Если для вашей операционной системы/дистрибутива нет бинарных файлов, вы можете собрать их самостоятельно, загрузив исходный код на нашем [GitHub](https://github.com/BeamMP/BeamMP-Server), руководство можно найти [здесь](https://github.com/BeamMP/BeamMP-Server#build-instructions). --- @@ -33,19 +33,19 @@ We provide binaries for many Linux distributions [here](https://github.com/BeamM ## **Игроки за пределами моей сети не могут присоединиться к моему серверу, размещенному на моем собственном сервере.** -Read the port forwarding guide that's available [here](https://docs.beammp.com/server/port-forwarding/). Below there's a brief summary of the most noteworthy steps. If other players, trying to connect to your server, receive an error code 10060, 10061 or 10038 in their BeamMP launcher, then you should check the following steps: +Прочитайте руководство по переадресации портов, которое доступно [здесь](https://docs.beammp.com/server/port-forwarding/). Ниже приведен краткий обзор наиболее важных шагов. Если другие игроки, пытаясь подключиться к вашему серверу, получают код ошибки 10060, 10061 или 10038 в своем лаунчере BeamMP, то вам следует проверить следующие шаги: - Перенаправьте порт 30814 (или любой другой порт, указанный в ServerConfig.toml), протоколы TCP и UDP. - Разрешить BeamMP через брандмауэр Windows, разрешить как входящие, так и исходящие соединения. Отключение брандмауэра обычно НЕ работает. - Убедитесь, что вы не используете VPN (это может вызвать проблемы). - Убедитесь, что сервер действительно работает, без ошибок и предупреждений. -You can check if you have successfully portforwarded using CheckBeamMP whilst the server is running. +Вы можете проверить, успешно ли выполнен проброс портов, с помощью CheckBeamMP, пока сервер работает.
    - +
    - +
    @@ -57,9 +57,9 @@ You can check if you have successfully portforwarded using CheckBeamMP whilst th --- -### **I can see my self-hosted server in the server-list, but i cannot join it myself** +### **Я вижу свой сервер, размещенный на собственном сервере, в списке серверов, но не могу подключиться к нему сам** -If the server is running on the same machine as the game, you yourself have to use Direct Connect to join, with the IP 127.0.0.1 and your server's port. For you to be able to join your own, self-hosted server trough the server-list, your router needs to support NAT-loopback, but this is a function not many home routers support. +Если сервер запущен на той же машине, что и игра, вам самим придется использовать Direct Connect для присоединения с IP 127.0.0.1 и портом вашего сервера. Чтобы вы могли присоединиться на свой собственный сервер через список серверов, ваш маршрутизатор должен поддерживать NAT-loopback, но эту функцию поддерживают не многие домашние маршрутизаторы. --- @@ -69,7 +69,7 @@ If the server is running on the same machine as the game, you yourself have to u ### **Где я могу найти код?** -All the source code can be found on our [GitHub](https://github.com/BeamMP). Before doing anything keep in mind that the code is subject to our [Terms of Use](https://forum.beammp.com/t/terms-of-use-v1-0/43) and licenses: +Весь исходный код можно найти на нашем [GitHub](https://github.com/BeamMP). Прежде чем что-либо делать, помните, что код подчиняется нашим [Условиям использования](https://forum.beammp.com/t/terms-of-use-v1-0/43) и лицензиям: Код | Лицензия --- | :-: @@ -81,9 +81,9 @@ All the source code can be found on our [GitHub](https://github.com/BeamMP). Bef ### **Я нашел ошибку или эксплойт, что мне делать?** -If the issue is code related and you know how to use Github, create a new "Issue" in the appropriate repository on our [GitHub](https://github.com/BeamMP). We use an issue-based workflow so even if you already have a fix for the bug, consider opening a new "Issue", then asking a "Pull Request" that solves your "Issue". More info on contributing can be found [here](https://github.com/BeamMP/BeamMP/blob/development/CONTRIBUTING.md). +Если проблема связана с кодом, и вы знаете, как использовать GitHub, создайте новую «Проблему» в соответствующем репозитории на нашем [GitHub](https://github.com/BeamMP). Мы используем рабочий процесс, основанный на проблемах, поэтому даже если у вас уже есть исправление ошибки, рассмотрите возможность открытия новой «Проблемы», а затем подайте «Запрос на извлечение», который решит вашу «Проблему». Более подробную информацию о содействии можно найти [здесь](https://github.com/BeamMP/BeamMP/blob/development/CONTRIBUTING.md). Если у вас нет учетной записи GitHub или вы не знаете, как пользоваться GitHub, вы можете связаться с нами следующими способами: -- If it is not something sensitive, you can create a post on our [BeamMP Forum](https://forum.beammp.com) or you can report this on our [Official Discord](https://discord.gg/beammp). -- If the information is sensitive you can directly report the issue to a Staff member on our [Discord](https://discord.gg/beammp). +- Если это не что-то деликатное, вы можете создать сообщение на нашем [Форуме BeamMP](https://forum.beammp.com) или сообщить об этом на нашем [Официальном Discord](https://discord.gg/beammp). +- Если информация конфиденциальная, вы можете напрямую сообщить о проблеме нашему сотруднику в [Discord](https://discord.gg/beammp). From 689cb337fa43aad853acbec8fb15605a9eb3051e Mon Sep 17 00:00:00 2001 From: TheHawk Date: Thu, 26 Mar 2026 22:23:15 +0000 Subject: [PATCH 32/40] Translate where-to-find-my-IP.md via GitLocalize --- docs/ru/FAQ/where-to-find-my-IP.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 docs/ru/FAQ/where-to-find-my-IP.md diff --git a/docs/ru/FAQ/where-to-find-my-IP.md b/docs/ru/FAQ/where-to-find-my-IP.md new file mode 100644 index 000000000..04fc84cac --- /dev/null +++ b/docs/ru/FAQ/where-to-find-my-IP.md @@ -0,0 +1,25 @@ +# Как узнать IP моего Сервера? + +## For VPS Hosted Servers + +Если вы размещаете сервер с помощью одного из наших партнерских хостинговых сервисов, IP будет опубликован в соответствующем интерфейсе управления сервером. Вы также можете найти IP для вашего сервера(ов) на веб-сайте [Keymaster](https://keymaster.beammp.com/login). + +## For Home-Hosted Servers + +For Servers hosted at home, open [whatsmyip.org](https://whatsmyip.org) in a Browser. This will output the public IPv4 address you are being contacted with from the Internet. + +Обратите внимание, что 127.0.0.1 — это локальный адрес (localhost), и его можно использовать только самому себе, если сервер запущен на том же компьютере. Если у вас всё ещё возникают проблемы с подключением к серверу, размещённому дома, проверьте [проброс портов](https://docs.beammp.com/server/port-forwarding/), а также используйте CheckBeamMP + +
    + +
    + +
    + +
    + +## How to check for CGNAT? + +Have a look at [this page](https://docs.beammp.com/FAQ/How-to-check-for-CGNAT/) to determine wether you can host a server at home or not. + +Теги: IP, Сервер, Сбой Подключения, 10060/10061 From e24ca3a94a1b72c16f09d8b1b61d6c6e1650a07d Mon Sep 17 00:00:00 2001 From: mt-gitlocalize Date: Thu, 26 Mar 2026 22:23:17 +0000 Subject: [PATCH 33/40] Translate where-to-find-my-IP.md via GitLocalize --- docs/ru/FAQ/where-to-find-my-IP.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/ru/FAQ/where-to-find-my-IP.md b/docs/ru/FAQ/where-to-find-my-IP.md index 04fc84cac..37a836cc5 100644 --- a/docs/ru/FAQ/where-to-find-my-IP.md +++ b/docs/ru/FAQ/where-to-find-my-IP.md @@ -1,12 +1,12 @@ # Как узнать IP моего Сервера? -## For VPS Hosted Servers +## Для серверов VPS-хостинга Если вы размещаете сервер с помощью одного из наших партнерских хостинговых сервисов, IP будет опубликован в соответствующем интерфейсе управления сервером. Вы также можете найти IP для вашего сервера(ов) на веб-сайте [Keymaster](https://keymaster.beammp.com/login). -## For Home-Hosted Servers +## Для домашних серверов -For Servers hosted at home, open [whatsmyip.org](https://whatsmyip.org) in a Browser. This will output the public IPv4 address you are being contacted with from the Internet. +Для серверов, размещенных дома, откройте [whatsmyip.org](https://whatsmyip.org) в браузере. Это выведет публичный адрес IPv4, с которым с вами связываются из Интернета. Обратите внимание, что 127.0.0.1 — это локальный адрес (localhost), и его можно использовать только самому себе, если сервер запущен на том же компьютере. Если у вас всё ещё возникают проблемы с подключением к серверу, размещённому дома, проверьте [проброс портов](https://docs.beammp.com/server/port-forwarding/), а также используйте CheckBeamMP @@ -18,8 +18,8 @@ For Servers hosted at home, open [whatsmyip.org](https://whatsmyip.org) in a Bro -## How to check for CGNAT? +## Как проверить наличие CGNAT? -Have a look at [this page](https://docs.beammp.com/FAQ/How-to-check-for-CGNAT/) to determine wether you can host a server at home or not. +Взгляните на [эту страницу](https://docs.beammp.com/FAQ/How-to-check-for-CGNAT/) , чтобы определить, можете ли вы разместить сервер дома или нет. Теги: IP, Сервер, Сбой Подключения, 10060/10061 From 62df4dec3073f84bf63601a5ae1c2edf4fd629c8 Mon Sep 17 00:00:00 2001 From: Reis Date: Thu, 26 Mar 2026 22:23:19 +0000 Subject: [PATCH 34/40] Translate index.md via GitLocalize --- docs/ru/community/index.md | 50 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 docs/ru/community/index.md diff --git a/docs/ru/community/index.md b/docs/ru/community/index.md new file mode 100644 index 000000000..8f02064c5 --- /dev/null +++ b/docs/ru/community/index.md @@ -0,0 +1,50 @@ +--- +hide: + - навигация +--- + +# Welcome to BeamMP Community Area! + +![BeamMP Multicolor-White](../../assets/content/BeamMP-Multi-WhtLtr-crop.png#only-dark){width="450"} ![BeamMP Multicolor-Black](../../assets/content/BeamMP-Multi-BlkLtr-crop.png#only-light){width="450"} + +## Наши страницы в социальных сетях + +!!!сбой "" + +``` +BeamMP Forum - [https://forum.beammp.com](https://forum.beammp.com) +``` + +!!!цитата "" + +``` +X (Twitter) - [https://x.com/BeamMPOfficial](https://x.com/BeamMPOfficial) +``` + +!!!опасность "" + +``` +YouTube - [https://www.youtube.com/@BeamMPOfficial](https://www.youtube.com/@BeamMPOfficial) +``` + +!!!внимание "" + +``` +Patreon - [https://www.patreon.com/c/BeamMP](https://www.patreon.com/c/BeamMP) +``` + +!!!примечание "" + +``` +Discord - [https://discord.com/invite/beammp](https://discord.com/invite/beammp) +``` + +!!!информация "" + +``` +BlueSky - [https://bsky.app/profile/beammpofficial.bsky.social](https://bsky.app/profile/beammpofficial.bsky.social) +``` + +## Наши правила + +Наши правила вы можете найти [здесь](rules.md) From 174a6c37518d8bbf1eb315a78ca3a0752b0cd98f Mon Sep 17 00:00:00 2001 From: TheHawk Date: Thu, 26 Mar 2026 22:23:20 +0000 Subject: [PATCH 35/40] Translate index.md via GitLocalize --- docs/ru/community/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/ru/community/index.md b/docs/ru/community/index.md index 8f02064c5..4c782d745 100644 --- a/docs/ru/community/index.md +++ b/docs/ru/community/index.md @@ -3,7 +3,7 @@ hide: - навигация --- -# Welcome to BeamMP Community Area! +# Добро пожаловать в Сообщество BeamMP! ![BeamMP Multicolor-White](../../assets/content/BeamMP-Multi-WhtLtr-crop.png#only-dark){width="450"} ![BeamMP Multicolor-Black](../../assets/content/BeamMP-Multi-BlkLtr-crop.png#only-light){width="450"} @@ -12,7 +12,7 @@ hide: !!!сбой "" ``` -BeamMP Forum - [https://forum.beammp.com](https://forum.beammp.com) +BeamMP Форум - [https://forum.beammp.com](https://forum.beammp.com) ``` !!!цитата "" From 99f98f702c7a09b40cce85638605bbca552ba911 Mon Sep 17 00:00:00 2001 From: TheHawk Date: Thu, 26 Mar 2026 22:23:24 +0000 Subject: [PATCH 36/40] Translate getting-started.md via GitLocalize --- docs/ru/game/getting-started.md | 149 ++++++++++++++++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 docs/ru/game/getting-started.md diff --git a/docs/ru/game/getting-started.md b/docs/ru/game/getting-started.md new file mode 100644 index 000000000..7a84ff16c --- /dev/null +++ b/docs/ru/game/getting-started.md @@ -0,0 +1,149 @@ +# Начиная + +## **1. Совместимость** + +BeamMP полностью совместим с Windows и Linux, совместимость с MacOS находится в разработке. Однако Linux и MacOS являются вторичными платформами, поэтому следует ожидать ошибок. + +!!!предупреждение + +``` +BeamMP will not work with pirated or outdated versions of BeamNG.drive. +The BeamMP support team does not offer support for issues with pirated / outdated copies. +``` + +## **2. Установка** + +### **2а. Установка Windows** + +1. Перейдите на сайт [beammp.com](https://beammp.com/) и нажмите кнопку «Загрузить клиент». +2. Распакуйте архив `BeamMP_Installer.zip`. +3. Запустите `BeamMP_Installer.exe` и следуйте инструкциям. +4. Значок BeamMP Launcher должен появиться на рабочем столе. Если нет, просто найдите «BeamMP» в строке поиска Windows. +5. После запуска лаунчера вы должны увидеть окно терминала, вскоре после этого BeamNG.drive должен автоматически запуститься. **Не** закрывайте окно терминала. +6. После запуска BeamNG в главном меню нажмите кнопку `Repository` и убедитесь, что `multiplayerbeammp` — **единственный** включенный мод. +7. Выйдите в главное меню, нажмите «Ещё..», затем кнопку «Мультиплеер», чтобы начать игру по сети. +8. Вам будет предложено войти или играть в качестве гостя (не все серверы допускают гостей). Вы можете создать учетную запись на нашем [форуме](https://forum.beammp.com), а затем войти в BeamMP с теми же учетными данными. +9. Выберите любой понравившийся вам сервер и нажмите `Connect`. Наслаждайтесь! + +!!!примечание + +``` + As you are loading into a map with multiple vehicles spawned it might take longer than expected to join. +``` + +### **2б. Установка Linux** + +В настоящее время вам необходимо самостоятельно собрать Launcher. Для этого вам необходимо базовое понимание того, как собрать приложение. + +Убедитесь, что у вас установлены базовые инструменты разработки, которые обычно входят в пакеты, например: + +- Debian/Ubuntu: `sudo apt install build-essential` +- Fedora: `sudo dnf install cmake gcc gcc-c++ make perl perl-IPC-Cmd perl-FindBin perl-File-Compare perl-File-Copy kernel-headers kernel-devel` +- Arch: `sudo pacman -S base-devel` +- openSUSE: `zypper in -t pattern devel-basis` +- SteamOS (Arch): `sudo pacman -S base-devel linux-api-headers glibc libconfig` (Вам также необходимо выполнить команду `sudo steamos-readonly disable` , но не забудьте включить ее снова после установки пакетов) + +Склонируйте `vcpkg`, выполните его начальную сборку (bootstrap) и добавьте в PATH + +1. + +```bash +git clone https://github.com/microsoft/vcpkg.git +``` + +1. + +```bash +./vcpkg/bootstrap-vcpkg.sh +``` + +1. + +```bash +export VCPKG_ROOT="$(pwd)/vcpkg" +export PATH=$VCPKG_ROOT:$PATH +``` + +Клонируйте репозиторий BeamMP-Launcher в свою систему с помощью `git`, например: `git clone https://github.com/BeamMP/BeamMP-Launcher.git` [Дополнительная информация о клонировании репозитория GitHub](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) + +Переключитесь на тег, который использовался для [последнего релиза](https://github.com/BeamMP/BeamMP-Launcher/releases/latest). Например, если в последнем релизе использовался `v2.6.4`, выполните команду `git checkout v2.6.4` + +Если вы использовали пример команды клонирования, который мы предоставили, вы можете использовать `cd BeamMP-Launcher`, чтобы перейти в корневой каталог проекта. + +В корневом каталоге проекта, + +1. + +```cmake +cmake . -B bin -DCMAKE_TOOLCHAIN_FILE=$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-linux +``` + +1. + +```cmake +cmake --build bin --parallel +``` + +!!!примечание "" + +``` + Should you run out of RAM while building, you can ommit the --parallel instruction, it will then use less RAM due to building only on one CPU thread. +``` + +!!!примечание "" + +``` + By not specifying `-DCMAKE_BUILD_TYPE=Release` you are building a debug version, which is larger in filesize but does not contain the launcher-can-only-connect-to-a-server-once bug +``` + +!!!note "Пользователи Fedora" Если vcpkg выдаёт ошибку при компиляции OpenSSL из-за заголовков ядра, убедитесь, что все зависимости установлены: `bash sudo dnf install kernel-headers kernel-devel gcc gcc-c++ make perl` Затем очистите кэш vcpkg: `bash rm -rf $VCPKG_ROOT/buildtrees/openssl` И повторите команду конфигурации cmake. + +Переместите готовое приложение из папки `/bin` в отдельную папку и запустите его оттуда: + +```bash +mkdir -p ~/beammp-launcher +cp bin/BeamMP-Launcher ~/beammp-launcher/ +cd ~/beammp-launcher +./BeamMP-Launcher +``` + +Нативный Linux-ланчер BeamMP запустится и будет использовать нативную версию BeamNG.drive для Linux + +### **2c. Использование beamNG.drive с Proton** + +Если вы хотите использовать родной Linux BeamMP-Launcher вместе с BeamNG.drive, работающим через Proton, вы можете сделать это: + +Запустите BeamMP-Launcher, используя аргумент `--no-launch` (Это не позволит Launcher запустить собственный Linux BeamNG.drive). Дополнительную информацию об аргументах Launcher можно найти в [разделе Настройка среды разработки](../guides/beammp-dev/beammp-dev.md) + +Измените расположение пользовательской папки Proton-BeamNG.drive на расположение Linux-BeamNG.drive (поскольку собственный Linux BeamMP-Launcher в настоящее время записывает только в пользовательскую папку Linux-BeamNG.drive) + +Это можно сделать, например, создав символическую ссылку + +- Запомните местоположение пользовательской папки Linux-BeamNG.drive (обычно она находится в `~/.local/share/BeamNG.drive`) и переименуйте ее, например, в `BeamNG.drive_old` +- Обратите внимание на расположение пользовательской папки Proton-BeamNG.drive (обычно она находится в `~/.local/share/Steam/steamapps/compatdata/284160/pfx/drive_c/users/steamuser/AppData/Local/BeamNG.drive`) +- Создайте символическую ссылку между обеими папками пользователей `ln -s ~/.local/share/Steam/steamapps/compatdata/284160/pfx/drive_c/users/steamuser/AppData/Local/BeamNG.drive ~/.local/share` + +После установки символической ссылки между пользовательскими папками и скомпилированным лаунчером вы можете заставить Steam запустить игру через Proton, при этом лаунчер автоматически запустится со следующей заменой параметров запуска для оригинальной игры, которые можно найти в окне «Свойства» игры в ее записи в Steam: + +- `~/BeamMP/BeamMP-Launcher --no-launch & %command% ; killall BeamMP-Launcher` + +Обратите внимание, что это предполагает, что вы поместили скомпилированный ранее двоичный файл лаунчера в `/home/user/BeamMP/`, поэтому измените его так, чтобы он соответствовал месту, куда вы поместили готовый двоичный файл, и вам придется перекомпилировать лаунчер с правильной веткой git каждый раз при выпуске обновления лаунчера. + +!!! совет "Добавление шрифта эмодзи для получения эмодзи в тексте" + +``` +In order to get emojis to show up in either the serverlist (As part of a servers customised name) or in the ingame chat, you need to have a font that contains emojis. + +This can be done for example by adding the [Linux-port of the Windows Segoe-UI emoji font](https://github.com/mrbvrz/segoe-ui-linux) +``` + +--- + +## **3. Известные проблемы** + +- Нативный linux BeamMP-Launcher в настоящее время может подключиться к серверу только один раз, после отключения вам нужно перезапустить лаунчер. Вы можете сделать это, не закрывая игру между +- Если вы не видите кнопку «Мультиплеер». Убедитесь, что мод BeamMP присутствует и активирован в «Менеджере модов», затем попробуйте нажать CTRL + L. +- VPN любого типа могут вызывать проблемы с подключением. +- Если Launcher сообщает о каких-либо ошибках, прочтите [FAQ](https://forum.beammp.com/c/faq/35). + +Если вам потребуется дополнительная помощь с установкой, вы можете создать сообщение на нашем [форуме](https://forum.beammp.com) или задать вопрос на нашем [сервере Discord](https://discord.gg/beammp). From 0eba763e3f48408e86aa61361826bb71db8bfb2c Mon Sep 17 00:00:00 2001 From: TheHawk Date: Thu, 26 Mar 2026 22:23:26 +0000 Subject: [PATCH 37/40] Translate port-forwarding.md via GitLocalize --- docs/ru/server/port-forwarding.md | 228 ++++++++++++++++++++++++++++++ 1 file changed, 228 insertions(+) create mode 100644 docs/ru/server/port-forwarding.md diff --git a/docs/ru/server/port-forwarding.md b/docs/ru/server/port-forwarding.md new file mode 100644 index 000000000..f3b6dbdf5 --- /dev/null +++ b/docs/ru/server/port-forwarding.md @@ -0,0 +1,228 @@ +# Переадресация Портов + +!!! danger ":material-scale-balance: DISCLAIMER:" + +``` +**Port forwarding is a risk**. + +By Port forwarding you understand the risks of opening up ports on your home network to the public and therefore void the right to hold BeamMP accountable for **any and all** damages that may happen to you or your household. + +We take no responsibility for any content on any externally linked services or websites. + +**If you do not understand this guide, please consider using one of our partners.** +``` + +!!! warning + +``` + Please make sure your Router is not a 4G/5G exclusive device. If it is a hybrid device, make sure to select the cable connected adapter later in section 3 of this guide! +``` + +## How to set up port forwarding. + +Creating a port forwarding rule involves a few detailed network terms. Be prepared to write down a few notes as you go through the process. + +There are 4 major steps in this guide. + +## A quick guide. (A more detailed guide is below) + +
    +
    +
      +
    • +

      :material-dns:{ .lg .middle } Assign a static IP address to your computer or devices

      +
      +

      This is needed to prevent the IP of your device changing and breaking the port forwarding rule.

      +

      :octicons-arrow-right-24: See info about your router

      +
    • +
    • +

      :material-router-wireless:{ .lg .middle } Log in to your router

      +
      +

      This can normally be done by finding the 'Default Gateway' IP, which can be found when executing ipconfig in a command prompt and entering it in a web browsers address bar.

      +
    • +
    • +

      :material-lan-connect:{ .lg .middle } Forward ports to your computer

      +
      +

      Find the port forwarding section in your routers web interface. Most routers list the port forwarding section under Network, Advanced, or LAN.

      +
    • +
    • +

      :material-test-tube:{ .lg .middle } Test that your port is forwarded properly

      +
      +

      Use a tool such as CheckBeamMP to test if the rule is working.

      +
      +
      + +
      + +
      + +
      +
      +
    • +
    +
    + +## The detailed guide + +### 1. Assigning a static IP address + +### Method 1: Set Up a Static IP Address Using DHCP reservations + +Another way to set a static IP address in your local network is to use your router's DHCP reservation feature. Not all routers have this feature, so this may not be an option for you. Please search the internet with the model of your router to find a manual. + +If you have managed to do this, please skip directly to [step 2](port-forwarding.md#2-log-in-to-your-router) + +### Method 2: Assign a static IP in Windows + +#### 1.1. Find your current IP Address, Gateway and DNS servers: + +Before we can set up a static IP address, we need to know your current network settings. You are going to want to write these down, so get a notepad window ready. For this step, we are going to use command prompt. + +Open up a command prompt. The 3 main ways are: + +- Windows Key, then start typing the phrase "cmd", then press Enter when you see "Command Prompt" highlighted. + + +
    ![](../../assets/content/win11-open-cmd.png)
    + +Once you are in the command prompt, run the following command: + +``` +ipconfig /all +``` + +You will see a lot of data. If you have virtual or multiple network adapters, then you will see even more data. It is common to see many virtual adapters if you have either Hyper-V or Docker installed. + + +
    ![](../../assets/content/win11-command-prompt-ipconfig-highlighted.png)
    + +It is recommended to use a wired network connection which will be running this server, however, it will work over a wireless connection. You will need to look for an adapter in this list which has an active internet connection. Scroll through the list and find one that has a Default Gateway assigned. Many of the virtual adapters will not have a Default Gateway. + +Below are local IPv4 address examples, which atleast one of the adapters should have. You will need to note down the information of your adapter. + +- 192.168.x.x +- 10.x.x.x. +- 172.16.x.x - 172.31.x.x + +Subnet Mask (most likely 255.255.255.0) Default Gateway (most likely 192.168.0.1 or 192.168.1.1) + +!!! info "Please Note" BeamMP currently does not support IPv6 for hosting a server. + +#### 1.2. Modify Adapter Settings + +Now we need to change the settings on your network adapter in order for your PC to keep the IP configuration it currently has. To get to the settings for your network, the fastest method is: + +- Single tap the Windows key +- Type the phrase "network connections" until you see "View network connections". +- Press the Enter key + + +
    ![](../../assets/content/win11-start-menu-view-network-connections.png)
    + +You should see a list of network connections on your computer. If you have Hyper-V or Docker installed, there can be many. Look for any adapters that are not named "Hyper-V". + + +
    ![](../../assets/content/win11-network-connections.png)
    + +Right-click on your adapter and choose properties. If `Internet Protocol Version 4` is not checked, then this is the wrong adapter. Choose a different one. + + +
    ![](../../assets/content/win11-ethernet-properties-highlighted.png)
    + +Double click on `Internet Protocol Version 4`. Change `Obtain an IP address automatically` to `Use the following IP address`. + +Fill out the IP address, Subnet mask, Default gateway, and Preferred DNS server with the information from command prompt (ipconfig /all). + +Alternatively, instead of using your DNS servers, you can use either the CloudFlare or Google DNS servers: + +- CloudFlare DNS: 1.1.1.1, 1.0.0.1 +- Google DNS: 8.8.8.8, 8.8.4.4 + + +
    ![](../../assets/content/win11-network-settings-static-ip.png)
    + +Click Ok, then click Ok again, and your adapter is now changed from DHCP to static. Surf the web to make sure that you still have internet connectivity. If you do not, then change your settings back to Obtain an IP address automatically and try the next method. + +### 2. Log in to your router + +Now that you have a static IP address on your device, you are ready to forward the port for BeamMP! + +To start, we need to log in to your router. Earlier, one of the settings that you wrote down is your Default Gateway. That is the IP address of your router. + +Most routers use a locally hosted web page for management. To view your router's menu and settings: + +- Open up a web browser. Firefox, Chrome or Edge should work fine. +- In the address bar, type your Default Gateway IP address, such as 192.168.0.1 or 192.168.1.1 and press enter + +You should now see your router's login screen. Not all routers require a login, but most do. You need to know your router's username and password. If you have never logged in before, your username and password are most likely set to the factory default values or, in some cases, written on a sticker your router. + +Some of the most common factory usernames and passwords are listed here: + +Username | Password +--- | --- +admin | admin +admin | password +{blank} | admin +{blank} | password + +Try various combinations of admin, password, and leaving the entries blank. *Where it says blank, try leaving the value blank.* + +### 3. Create the forwarding rules! + +#### 3.1. Find the forwarding section + +Find the port forwarding section in your router web interface. Navigate around in your router by clicking the tabs or links at the top or left of each page. Most routers list the port forwarding section under Network, Advanced, or LAN. Look for the following keywords to help you find it: + +- Port Forwarding +- Forwarding +- Port Range Forwarding +- Virtual Servers +- Apps & Gaming +- Advanced Setup/Settings +- NAT + +#### 3.2. Enter in the details + +Once you find your router's port forwarding section, you are ready to enter the necessary information. Your router will have a place to enter the ports to be forwarded and the destination IP address to point those forwarded ports. If your router lists both Internal and External ports, make them the same. + +BeamMP requires both UDP and TCP port 30814 (Unless you have changed this in your [ServerConfig.toml](create-a-server.md#4-configuration)). + +!!! info "Note" While the default **Port** is **30814**, you can choose any other number greater than 1024 but less than 65535, but you need to note down what you picked if it's not 30814. You need to forward both **TCP** and **UDP**. It is recommended to stick to the default port as that one is very unlikely to be used by another service on your PC. However, If you are hosting multiple servers on one machine, each server needs a different Port. Server 1: 30814, Server 2: 30815 for example. + +On some routers you may need to create 2 rules, one for UDP and one for TCP, whilst others are nice and allow you to do both with a single rule! + +Most routers have a 'save' button, and some routers require a restart or reboot for the changes to take effect. + +### 4. Time to test! + +There are a few different ways to test the connection. + +Наш рекомендуемый способ — использовать наш инструмент **CheckBeamMP**, так как он проверяет проблемы и протоколы, специфичные для BeamMP. + +
    + +
    + +
    + +
    + +This can be done by getting your public IPv4 Address, this once again can be done in a few different ways. The main way is to use a website called [whatsmyip.org](https://whatsmyip.org/). This is a simple website which displays your public IP Address. You should be looking for an IP address with the formatting: xxx.xxx.xxx.xxx + +Visit the following Link and replace "IP" with your actual IPv4 address, and the "Port" with your servers port. Be sure to leave no spaces. https://check.beammp.com/api/v2/beammp/ip/port + +!!! success "status: ok" + +``` + If you get the output above you can now join your server! + There are 2 ways to join, either directly with the details you entered into Probably UP, or, if your server is set to 'public', through the server-list. + Since you are hosting a server on-premise, use 127.0.0.1 (localhost) if the Server is running on the same PC as you play, or the LAN IPv4 of the local machine that is running the server. +``` + +!!! failure "status: error" + +``` + If the connection fails entirely, your ISP could be using CGNAT (Carrier Grade Network Address Translation). For more details, please check [How to check for CGNAT?](../FAQ/How-to-check-for-CGNAT.md), + or open a Server Support ticket on our [Discord server](https://discord.gg/beammp) in the `#support` channel and one of our staff will get to your ticket! + Should you only see TCP working and UDP failing, check Firewall and Port forwarding rules again. +``` From 4506a5c057bc6da5384ce8ff97ae782b0786e840 Mon Sep 17 00:00:00 2001 From: mt-gitlocalize Date: Thu, 26 Mar 2026 22:23:27 +0000 Subject: [PATCH 38/40] Translate port-forwarding.md via GitLocalize --- docs/ru/server/port-forwarding.md | 174 +++++++++++++++--------------- 1 file changed, 87 insertions(+), 87 deletions(-) diff --git a/docs/ru/server/port-forwarding.md b/docs/ru/server/port-forwarding.md index f3b6dbdf5..cf2c0e36b 100644 --- a/docs/ru/server/port-forwarding.md +++ b/docs/ru/server/port-forwarding.md @@ -1,6 +1,6 @@ # Переадресация Портов -!!! danger ":material-scale-balance: DISCLAIMER:" +!!! опасность ":material-scale-balance: ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ:" ``` **Port forwarding is a risk**. @@ -12,43 +12,43 @@ We take no responsibility for any content on any externally linked services or w **If you do not understand this guide, please consider using one of our partners.** ``` -!!! warning +!!! предупреждение ``` Please make sure your Router is not a 4G/5G exclusive device. If it is a hybrid device, make sure to select the cable connected adapter later in section 3 of this guide! ``` -## How to set up port forwarding. +## Как настроить переадресацию портов. -Creating a port forwarding rule involves a few detailed network terms. Be prepared to write down a few notes as you go through the process. +Создание правила переадресации портов включает несколько подробных сетевых терминов. Будьте готовы записать несколько заметок по мере прохождения процесса. -There are 4 major steps in this guide. +В этом руководстве 4 основных шага. -## A quick guide. (A more detailed guide is below) +## Краткое руководство. (Более подробное руководство приведено ниже)
    • -

      :material-dns:{ .lg .middle } Assign a static IP address to your computer or devices

      +

      :material-dns:{ .lg .middle } Назначьте статический IP-адрес вашему компьютеру или устройствам


      -

      This is needed to prevent the IP of your device changing and breaking the port forwarding rule.

      -

      :octicons-arrow-right-24: See info about your router

      +

      Это необходимо для предотвращения изменения IP-адреса вашего устройства и нарушения правила переадресации портов.

      +

      :octicons-arrow-right-24: Просмотр информации о вашем маршрутизаторе

    • -

      :material-router-wireless:{ .lg .middle } Log in to your router

      +

      :material-router-wireless:{ .lg .middle } Войдите в свой маршрутизатор


      -

      This can normally be done by finding the 'Default Gateway' IP, which can be found when executing ipconfig in a command prompt and entering it in a web browsers address bar.

      +

      Обычно это можно сделать, найдя IP-адрес «шлюза по умолчанию», который можно найти, выполнив ipconfig в командной строке и введя его в адресную строку веб-браузера.

    • -

      :material-lan-connect:{ .lg .middle } Forward ports to your computer

      +

      :material-lan-connect:{ .lg .middle } Перенаправьте порты на ваш компьютер


      -

      Find the port forwarding section in your routers web interface. Most routers list the port forwarding section under Network, Advanced, or LAN.

      +

      Найдите раздел переадресации портов в веб-интерфейсе маршрутизатора. Большинство маршрутизаторов перечисляют раздел переадресации портов в разделе «Сеть», «Дополнительно» или «Локальная сеть».

    • -

      :material-test-tube:{ .lg .middle } Test that your port is forwarded properly

      +

      :material-test-tube:{ .lg .middle } Проверьте, что ваш порт правильно перенаправлен


      -

      Use a tool such as CheckBeamMP to test if the rule is working.

      +

      Используйте такой инструмент, как CheckBeamMP, чтобы проверить, работает ли правило.

      @@ -62,140 +62,140 @@ There are 4 major steps in this guide.
    -## The detailed guide +## Подробное руководство -### 1. Assigning a static IP address +### 1. Назначение статического IP-адреса -### Method 1: Set Up a Static IP Address Using DHCP reservations +### Метод 1: настройка статического IP-адреса с использованием резервирования DHCP -Another way to set a static IP address in your local network is to use your router's DHCP reservation feature. Not all routers have this feature, so this may not be an option for you. Please search the internet with the model of your router to find a manual. +Другой способ задать статический IP-адрес в локальной сети — использовать функцию резервирования DHCP вашего маршрутизатора. Не все маршрутизаторы имеют эту функцию, поэтому это может быть неподходящим вариантом для вас. Пожалуйста, найдите в Интернете модель вашего маршрутизатора, чтобы найти руководство. -If you have managed to do this, please skip directly to [step 2](port-forwarding.md#2-log-in-to-your-router) +Если вам удалось это сделать, перейдите сразу к [шагу 2.](port-forwarding.md#2-log-in-to-your-router) -### Method 2: Assign a static IP in Windows +### Метод 2: Назначение статического IP-адреса в Windows -#### 1.1. Find your current IP Address, Gateway and DNS servers: +#### 1.1. Найдите свой текущий IP-адрес, шлюз и DNS-серверы: -Before we can set up a static IP address, we need to know your current network settings. You are going to want to write these down, so get a notepad window ready. For this step, we are going to use command prompt. +Прежде чем мы сможем настроить статический IP-адрес, нам нужно знать ваши текущие сетевые настройки. Вам нужно будет записать их, поэтому приготовьте блокнот. Для этого шага мы воспользуемся командной строкой. -Open up a command prompt. The 3 main ways are: +Откройте командную строку. 3 основных способа: -- Windows Key, then start typing the phrase "cmd", then press Enter when you see "Command Prompt" highlighted. +- Нажмите клавишу Windows, затем начните вводить фразу «cmd», затем нажмите Enter, когда увидите выделенную строку «Командная строка». -
    ![](../../assets/content/win11-open-cmd.png)
    +
    ![](../../assets/content/win11-open-cmd.png)
    -Once you are in the command prompt, run the following command: +После того, как вы окажетесь в командной строке, выполните следующую команду: ``` ipconfig /all ``` -You will see a lot of data. If you have virtual or multiple network adapters, then you will see even more data. It is common to see many virtual adapters if you have either Hyper-V or Docker installed. +Вы увидите много данных. Если у вас есть виртуальные или несколько сетевых адаптеров, то вы увидите еще больше данных. Обычно можно увидеть много виртуальных адаптеров, если у вас установлен Hyper-V или Docker. -
    ![](../../assets/content/win11-command-prompt-ipconfig-highlighted.png)
    +
    ![](../../assets/content/win11-command-prompt-ipconfig-highlighted.png)
    -It is recommended to use a wired network connection which will be running this server, however, it will work over a wireless connection. You will need to look for an adapter in this list which has an active internet connection. Scroll through the list and find one that has a Default Gateway assigned. Many of the virtual adapters will not have a Default Gateway. +Рекомендуется использовать проводное сетевое соединение, которое будет запускать этот сервер, однако он будет работать и через беспроводное соединение. Вам нужно будет найти в этом списке адаптер, который имеет активное подключение к Интернету. Прокрутите список и найдите тот, которому назначен шлюз по умолчанию. Многие из виртуальных адаптеров не будут иметь шлюза по умолчанию. -Below are local IPv4 address examples, which atleast one of the adapters should have. You will need to note down the information of your adapter. +Ниже приведены примеры локальных адресов IPv4, которые должен иметь хотя бы один из адаптеров. Вам нужно будет записать информацию о вашем адаптере. -- 192.168.x.x -- 10.x.x.x. -- 172.16.x.x - 172.31.x.x +- 192.168.xx +- 10.xxx +- 172.16.xx - 172.31.xx -Subnet Mask (most likely 255.255.255.0) Default Gateway (most likely 192.168.0.1 or 192.168.1.1) +Маска подсети (скорее всего 255.255.255.0) Основной шлюз (скорее всего 192.168.0.1 или 192.168.1.1) -!!! info "Please Note" BeamMP currently does not support IPv6 for hosting a server. +!!! info "Обратите внимание" BeamMP в настоящее время не поддерживает IPv6 для хостинга сервера. -#### 1.2. Modify Adapter Settings +#### 1.2.Изменение настроек адаптера -Now we need to change the settings on your network adapter in order for your PC to keep the IP configuration it currently has. To get to the settings for your network, the fastest method is: +Теперь нам нужно изменить настройки вашего сетевого адаптера, чтобы ваш ПК сохранил текущую конфигурацию IP. Чтобы получить доступ к настройкам вашей сети, самый быстрый способ: -- Single tap the Windows key -- Type the phrase "network connections" until you see "View network connections". -- Press the Enter key +- Нажмите один раз клавишу Windows. +- Введите фразу «сетевые подключения», пока не увидите «Просмотр сетевых подключений». +- Нажмите клавишу Enter. -
    ![](../../assets/content/win11-start-menu-view-network-connections.png)
    +
    ![](../../assets/content/win11-start-menu-view-network-connections.png)
    -You should see a list of network connections on your computer. If you have Hyper-V or Docker installed, there can be many. Look for any adapters that are not named "Hyper-V". +Вы должны увидеть список сетевых подключений на вашем компьютере. Если у вас установлены Hyper-V или Docker, их может быть много. Найдите все адаптеры, которые не называются "Hyper-V". -
    ![](../../assets/content/win11-network-connections.png)
    +
    ![](../../assets/content/win11-network-connections.png)
    -Right-click on your adapter and choose properties. If `Internet Protocol Version 4` is not checked, then this is the wrong adapter. Choose a different one. +Щелкните правой кнопкой мыши по вашему адаптеру и выберите свойства. Если `Internet Protocol Version 4` не отмечен, то это неправильный адаптер. Выберите другой. -
    ![](../../assets/content/win11-ethernet-properties-highlighted.png)
    +
    ![](../../assets/content/win11-ethernet-properties-highlighted.png)
    -Double click on `Internet Protocol Version 4`. Change `Obtain an IP address automatically` to `Use the following IP address`. +Дважды щелкните по `Internet Protocol Version 4` Измените `Obtain an IP address automatically` на `Use the following IP address` . -Fill out the IP address, Subnet mask, Default gateway, and Preferred DNS server with the information from command prompt (ipconfig /all). +Заполните поля IP-адрес, маска подсети, шлюз по умолчанию и предпочитаемый DNS-сервер, используя информацию из командной строки (ipconfig /all). -Alternatively, instead of using your DNS servers, you can use either the CloudFlare or Google DNS servers: +В качестве альтернативы вместо использования своих DNS-серверов вы можете использовать DNS-серверы CloudFlare или Google: - CloudFlare DNS: 1.1.1.1, 1.0.0.1 - Google DNS: 8.8.8.8, 8.8.4.4 -
    ![](../../assets/content/win11-network-settings-static-ip.png)
    +
    ![](../../assets/content/win11-network-settings-static-ip.png)
    -Click Ok, then click Ok again, and your adapter is now changed from DHCP to static. Surf the web to make sure that you still have internet connectivity. If you do not, then change your settings back to Obtain an IP address automatically and try the next method. +Нажмите Ok, затем нажмите Ok еще раз, и ваш адаптер теперь изменен с DHCP на статический. Поищите в Интернете, чтобы убедиться, что у вас все еще есть подключение к Интернету. Если нет, то измените настройки обратно на Получить IP-адрес автоматически и попробуйте следующий метод. -### 2. Log in to your router +### 2. Войдите в свой маршрутизатор. -Now that you have a static IP address on your device, you are ready to forward the port for BeamMP! +Теперь, когда на вашем устройстве есть статический IP-адрес, вы готовы перенаправить порт для BeamMP! -To start, we need to log in to your router. Earlier, one of the settings that you wrote down is your Default Gateway. That is the IP address of your router. +Для начала нам нужно войти в ваш роутер. Ранее одна из настроек, которую вы записали, это ваш Default Gateway. Это IP-адрес вашего роутера. -Most routers use a locally hosted web page for management. To view your router's menu and settings: +Большинство маршрутизаторов используют локально размещенную веб-страницу для управления. Чтобы просмотреть меню и настройки маршрутизатора: -- Open up a web browser. Firefox, Chrome or Edge should work fine. -- In the address bar, type your Default Gateway IP address, such as 192.168.0.1 or 192.168.1.1 and press enter +- Откройте веб-браузер. Firefox, Chrome или Edge должны работать нормально. +- В адресной строке введите IP-адрес вашего шлюза по умолчанию, например 192.168.0.1 или 192.168.1.1, и нажмите Enter. -You should now see your router's login screen. Not all routers require a login, but most do. You need to know your router's username and password. If you have never logged in before, your username and password are most likely set to the factory default values or, in some cases, written on a sticker your router. +Теперь вы должны увидеть экран входа в систему вашего маршрутизатора. Не все маршрутизаторы требуют входа в систему, но большинство требуют. Вам необходимо знать имя пользователя и пароль вашего маршрутизатора. Если вы никогда не входили в систему раньше, ваши имя пользователя и пароль, скорее всего, установлены на заводские значения по умолчанию или, в некоторых случаях, написаны на наклейке вашего маршрутизатора. -Some of the most common factory usernames and passwords are listed here: +Ниже перечислены некоторые из наиболее распространенных заводских имен пользователей и паролей: -Username | Password +Имя пользователя | Пароль --- | --- -admin | admin -admin | password -{blank} | admin -{blank} | password +админ | админ +админ | пароль +{пустой} | админ +{пустой} | пароль -Try various combinations of admin, password, and leaving the entries blank. *Where it says blank, try leaving the value blank.* +Попробуйте различные комбинации admin, password и оставьте записи пустыми. *Там, где написано blank, попробуйте оставить значение пустым.* -### 3. Create the forwarding rules! +### 3. Создайте правила пересылки! -#### 3.1. Find the forwarding section +#### 3.1. Найдите раздел пересылки -Find the port forwarding section in your router web interface. Navigate around in your router by clicking the tabs or links at the top or left of each page. Most routers list the port forwarding section under Network, Advanced, or LAN. Look for the following keywords to help you find it: +Найдите раздел переадресации портов в веб-интерфейсе маршрутизатора. Перемещайтесь по маршрутизатору, нажимая вкладки или ссылки в верхней или левой части каждой страницы. Большинство маршрутизаторов перечисляют раздел переадресации портов в разделе «Сеть», «Дополнительно» или «Локальная сеть». Найдите его по следующим ключевым словам: -- Port Forwarding -- Forwarding -- Port Range Forwarding -- Virtual Servers -- Apps & Gaming -- Advanced Setup/Settings -- NAT +- Переадресация портов +- Пересылка +- Переадресация диапазона портов +- Виртуальные серверы +- Приложения и игры +- Расширенные настройки/параметры +- НАТ -#### 3.2. Enter in the details +#### 3.2. Введите данные -Once you find your router's port forwarding section, you are ready to enter the necessary information. Your router will have a place to enter the ports to be forwarded and the destination IP address to point those forwarded ports. If your router lists both Internal and External ports, make them the same. +Как только вы найдете раздел переадресации портов вашего маршрутизатора, вы готовы ввести необходимую информацию. На вашем маршрутизаторе будет место для ввода портов, которые нужно переадресовать, и IP-адрес назначения, чтобы указать эти переадресованные порты. Если на вашем маршрутизаторе указаны как внутренние, так и внешние порты, сделайте их одинаковыми. -BeamMP requires both UDP and TCP port 30814 (Unless you have changed this in your [ServerConfig.toml](create-a-server.md#4-configuration)). +Для BeamMP требуются как UDP-, так и TCP-порт 30814 (если вы не изменили это в [ServerConfig.toml](create-a-server.md#4-configuration) ). -!!! info "Note" While the default **Port** is **30814**, you can choose any other number greater than 1024 but less than 65535, but you need to note down what you picked if it's not 30814. You need to forward both **TCP** and **UDP**. It is recommended to stick to the default port as that one is very unlikely to be used by another service on your PC. However, If you are hosting multiple servers on one machine, each server needs a different Port. Server 1: 30814, Server 2: 30815 for example. +!!! info "Примечание" Хотя **порт** по умолчанию - **30814** , вы можете выбрать любой другой номер больше 1024, но меньше 65535, но вам нужно записать, что вы выбрали, если это не 30814. Вам нужно перенаправить как **TCP** , так и **UDP** . Рекомендуется придерживаться порта по умолчанию, так как он вряд ли будет использоваться другой службой на вашем ПК. Однако, если вы размещаете несколько серверов на одной машине, каждому серверу нужен свой порт. Например, сервер 1: 30814, сервер 2: 30815. -On some routers you may need to create 2 rules, one for UDP and one for TCP, whilst others are nice and allow you to do both with a single rule! +На некоторых маршрутизаторах вам может потребоваться создать два правила: одно для UDP и одно для TCP, в то время как другие удобны и позволяют сделать и то, и другое с помощью одного правила! -Most routers have a 'save' button, and some routers require a restart or reboot for the changes to take effect. +На большинстве маршрутизаторов есть кнопка «Сохранить», а на некоторых маршрутизаторах требуется перезапуск или перезагрузка, чтобы изменения вступили в силу. -### 4. Time to test! +### 4. Время тестировать! -There are a few different ways to test the connection. +Есть несколько способов проверить соединение. Наш рекомендуемый способ — использовать наш инструмент **CheckBeamMP**, так как он проверяет проблемы и протоколы, специфичные для BeamMP. @@ -207,11 +207,11 @@ There are a few different ways to test the connection. -This can be done by getting your public IPv4 Address, this once again can be done in a few different ways. The main way is to use a website called [whatsmyip.org](https://whatsmyip.org/). This is a simple website which displays your public IP Address. You should be looking for an IP address with the formatting: xxx.xxx.xxx.xxx +Это можно сделать, получив свой публичный IPv4-адрес, это опять же можно сделать несколькими способами. Основной способ — использовать веб-сайт [whatsmyip.org](https://whatsmyip.org/) . Это простой веб-сайт, который отображает ваш публичный IP-адрес. Вам следует искать IP-адрес в формате: xxx.xxx.xxx.xxx -Visit the following Link and replace "IP" with your actual IPv4 address, and the "Port" with your servers port. Be sure to leave no spaces. https://check.beammp.com/api/v2/beammp/ip/port +Перейдите по следующей ссылке и замените «IP» на ваш реальный адрес IPv4, а «Port» на порт вашего сервера. Не оставляйте пробелов. https://check.beammp.com/api/v2/beammp/ip/port -!!! success "status: ok" +!!! успех "статус:ok" ``` If you get the output above you can now join your server! @@ -219,7 +219,7 @@ Visit the following Link and replace "IP" with your actual IPv4 address, and the Since you are hosting a server on-premise, use 127.0.0.1 (localhost) if the Server is running on the same PC as you play, or the LAN IPv4 of the local machine that is running the server. ``` -!!! failure "status: error" +!!! сбой "статус:ошибка" ``` If the connection fails entirely, your ISP could be using CGNAT (Carrier Grade Network Address Translation). For more details, please check [How to check for CGNAT?](../FAQ/How-to-check-for-CGNAT.md), From d9310abf7b971bbb56a8731a6f574d1dde26d2a8 Mon Sep 17 00:00:00 2001 From: vadyanka Date: Thu, 26 Mar 2026 22:23:29 +0000 Subject: [PATCH 39/40] Translate port-forwarding.md via GitLocalize --- docs/ru/server/port-forwarding.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/ru/server/port-forwarding.md b/docs/ru/server/port-forwarding.md index cf2c0e36b..ff17fb36c 100644 --- a/docs/ru/server/port-forwarding.md +++ b/docs/ru/server/port-forwarding.md @@ -3,19 +3,19 @@ !!! опасность ":material-scale-balance: ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ:" ``` -**Port forwarding is a risk**. +**Переадресация портов — это риск**. -By Port forwarding you understand the risks of opening up ports on your home network to the public and therefore void the right to hold BeamMP accountable for **any and all** damages that may happen to you or your household. +Используя переадресацию портов, вы осознаете риски открытия портов в вашей домашней сети для публики и, следовательно, лишаете себя права привлекать BeamMP к ответственности за **любой** ущерб, который может быть причинен вам или вашему домохозяйству. -We take no responsibility for any content on any externally linked services or websites. +Мы не несем ответственности за какой-либо контент на любых внешних связанных сервисах или веб-сайтах. -**If you do not understand this guide, please consider using one of our partners.** +**Если вы не понимаете это руководство, рассмотрите возможность обращения к одному из наших партнеров.** ``` !!! предупреждение ``` - Please make sure your Router is not a 4G/5G exclusive device. If it is a hybrid device, make sure to select the cable connected adapter later in section 3 of this guide! + Пожалуйста, убедитесь, что ваш маршрутизатор не является устройством исключительно 4G/5G. Если это гибридное устройство, обязательно выберите адаптер с кабельным подключением далее в разделе 3 этого руководства! ``` ## Как настроить переадресацию портов. @@ -214,15 +214,15 @@ ipconfig /all !!! успех "статус:ok" ``` - If you get the output above you can now join your server! - There are 2 ways to join, either directly with the details you entered into Probably UP, or, if your server is set to 'public', through the server-list. - Since you are hosting a server on-premise, use 127.0.0.1 (localhost) if the Server is running on the same PC as you play, or the LAN IPv4 of the local machine that is running the server. + Если вы получили результат, аналогичный приведенному выше, то теперь вы можете присоединиться к своему серверу! +Присоединиться можно двумя способами: либо напрямую, используя данные, введенные вами в «Вероятно UP», либо, если ваш сервер настроен как «публичный», через список серверов. +Поскольку вы размещаете сервер локально, используйте 127.0.0.1 (localhost), если сервер работает на том же компьютере, что и вы, или LAN IPv4 локальной машины, на которой работает сервер. ``` !!! сбой "статус:ошибка" ``` - If the connection fails entirely, your ISP could be using CGNAT (Carrier Grade Network Address Translation). For more details, please check [How to check for CGNAT?](../FAQ/How-to-check-for-CGNAT.md), - or open a Server Support ticket on our [Discord server](https://discord.gg/beammp) in the `#support` channel and one of our staff will get to your ticket! - Should you only see TCP working and UDP failing, check Firewall and Port forwarding rules again. + Если соединение полностью отсутствует, ваш интернет-провайдер может использовать CGNAT (трансляцию сетевых адресов операторского класса). Для получения более подробной информации, пожалуйста, проверьте [Как проверить наличие CGNAT?](../FAQ/How-to-check-for-CGNAT.md), +или откройте тикет в службу поддержки сервера на нашем [сервере Discord](https://discord.gg/beammp) в канале `#support`, и один из наших сотрудников займется вашим тикетом! +Если вы видите, что работает только TCP, а UDP не работает, еще раз проверьте правила брандмауэра и переадресации портов. ``` From 37e915000931136dbec140c309291f165e2de503 Mon Sep 17 00:00:00 2001 From: TheHawk Date: Thu, 26 Mar 2026 22:23:31 +0000 Subject: [PATCH 40/40] Translate server-maintenance.md via GitLocalize --- docs/ru/server/server-maintenance.md | 64 ++++++++++++++++------------ 1 file changed, 36 insertions(+), 28 deletions(-) diff --git a/docs/ru/server/server-maintenance.md b/docs/ru/server/server-maintenance.md index ff32c14ae..4a7705a0f 100644 --- a/docs/ru/server/server-maintenance.md +++ b/docs/ru/server/server-maintenance.md @@ -1,31 +1,39 @@ -# Обслуживание сервера +# Обслуживание Сервера Руководства, советы и рекомендации по настройке и обслуживанию сервера BeamMP. ## Как установить -Инструкции по установке см. в разделе [Установка сервера](create-a-server.md) . +Инструкции по установке см. в разделе [Установка сервера](create-a-server.md). ## Файл ServerConfig -Конфигурация сервера, представляющая собой файл `ServerConfig.toml` , использует [формат TOML](https://toml.io/en/) . +Конфигурация сервера, представляющая собой файл `ServerConfig.toml`, использует [формат TOML](https://toml.io/en/). -*ПРИМЕЧАНИЕ* : *Старый* файл конфигурации сервера назывался `Server.cfg` , но он больше не используется, и сервер выдаст предупреждение, если он все еще присутствует. Также обратите внимание, что два формата конфигурации **несовместимы** друг с другом. +*ПРИМЕЧАНИЕ*: *Старый* файл конфигурации сервера назывался `Server.cfg`, но он больше не используется, и сервер выдаст предупреждение, если он все еще присутствует. Также обратите внимание, что два формата конфигурации **несовместимы** друг с другом. -По умолчанию в конфигурации есть один раздел, называемый `[General]` , который содержит следующие значения: +По умолчанию в конфигурации есть один раздел, называемый `[General]`, который содержит следующие значения: Ключ | Тип значения | Описание --- | --- | --- -AuthKey | Формат AuthKey `xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` где все x — буквенно-цифровые символы (цифры и буквы) | Используется для идентификации вашего сервера с бэкэндом. Вы должны были получить его, следуя инструкциям по установке. +Порт | 1024-65535 | Сетевой порт, по которому сервер будет доступен. (Должен быть уникальным и не использоваться другим сервисом на том же хосте). +AuthKey | Формат AuthKey `xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` где все x — буквенно-цифровые символы (цифры и буквы) | Используется для идентификации публичного сервера в бэкенде. +AllowGuests | правда/ложь | Определяет, разрешено ли гостям подключаться к серверу или нет. +LogChat | правда/ложь | Если включено (true), сообщения чата записываются в файл server.log. Отлаживать | правда/ложь | При включении (true) будет отображаться больше сообщений в журнале и предоставляться больше информации. Включите это, если у вас возникнут проблемы. Включение этого параметра значительно увеличит размер файла журнала. Частный | правда/ложь | Если включено (true), ваш сервер не будет отображаться в списке серверов. Любой с правильным IP и портом все равно сможет подключиться. -Описание | Любой "текст" | Отображается как описание сервера в списке серверов (если сервер публичный). Вы можете использовать специальные символы для форматирования с помощью цветов и стилей. +InformationPacket | правда/ложь | Если включено (true), сервер будет позволять неаутентифицированным клиентам получать ту же информацию, что и в списке серверов, но напрямую с сервера. Имя | Любой "текст" | Отображается как имя/заголовок вашего сервера в списке серверов. Вы можете использовать специальные символы для форматирования с помощью цветов и стилей. -Карта | Допустимое местоположение на карте, например `/levels/gridmap_v2/info.json` | Карта, которую будет размещать ваш сервер. Должна быть установлена либо по умолчанию (список можно найти ниже), либо как серверный мод. +Tags | См. список разрешённых тегов ниже. | Теги для поиска, например: Police, Racing и т.д. МаксКарс | Любое число ≥ 1 | Максимальное количество машин на игрока. Любые дополнительные машины, которые игрок попытается создать, будут мгновенно удалены. -Порт | 1024-65535 | Сетевой порт, на котором будет доступен сервер. Чтобы игрок мог напрямую подключиться к вашему серверу, ему понадобится ваш IP и этот порт. +MaxPlayers | Любое число ≥ 1 | Максимальное количество игроков на сервере. Это не влияет на количество транспортных средств. +Карта | Допустимое местоположение на карте, например `/levels/gridmap_v2/info.json` | Карта, которую будет размещать ваш сервер. Должна быть установлена либо по умолчанию (список можно найти ниже), либо как серверный мод. +Описание | Любой "текст" | Отображается как описание сервера в списке серверов (если сервер публичный). Вы можете использовать специальные символы для форматирования с помощью цветов и стилей. +ResourceFolder | Корректный путь к папке, например: "D:\Server\BeamMP\Resources" | Полезно хранить сервер и папку ресурсов отдельно. +ImScaredOfUpdates | правда/ложь | Определяет, будет ли сервер автоматически обновляться при выходе новой версии. +UpdateReminderTime | Любое число с суффиксом s, min, h или d (например, 30s). | Задаёт интервал напоминаний об обновлении, выводимых в терминал. -Другие разделы могут и должны использоваться серверными плагинами (скоро появится API Lua), например: `[MyMod]` . +Другие разделы могут и должны использоваться серверными плагинами (скоро появится API Lua), например: `[MyMod]`. AuthKey **ДОЛЖЕН** быть установлен вами. Он будет пустым по умолчанию и должен быть заполнен вашим AuthKey с шага установки ранее. Не делитесь этим ключом ни с кем и на снимках экрана полностью размывайте его. @@ -79,9 +87,9 @@ AuthKey **ДОЛЖЕН** быть установлен вами. Он будет ### Настройте теги вашего сервера -Теги могут использоваться для того, чтобы позволить людям искать определенный тип сервера. Ваш serverConfig.toml будет сгенерирован с тегом freeroam `Tags = "Freeroam"` . +Теги могут использоваться для того, чтобы позволить людям искать определенный тип сервера. Ваш serverConfig.toml будет сгенерирован с тегом freeroam `Tags = "Freeroam"`. -Вы можете добавить несколько тегов, разделенных запятой `Tags = "Events,Offroad,lang:english"` , регистр не учитывается. +Вы можете добавить несколько тегов, разделенных запятой `Tags = "Events,Offroad,lang:english"`, регистр не учитывается. Вы можете выбрать из следующего списка: @@ -165,7 +173,7 @@ AuthKey **ДОЛЖЕН** быть установлен вами. Он будет - `Vanilla` - `Moderated` -Если тег отсутствует в этом списке, вы можете отправить запрос на его добавление [здесь.](https://forum.beammp.com/t/introducing-server-tags/1320081) +Если тег отсутствует в этом списке, вы можете отправить запрос на его добавление [здесь](https://forum.beammp.com/t/introducing-server-tags/1320081) ## Файл Server.log @@ -182,15 +190,15 @@ AuthKey **ДОЛЖЕН** быть установлен вами. Он будет - `$DATE` — дата сообщения, например 21/07/2021 - `$TIME` — время сообщения, например 11:05:23 - `$CONTEXT` (виден только в режиме отладки и в основном актуален для разработчиков) — контекст сообщения, который может быть: - - `(Player ID) “Player Name”` , где ID игрока полезен для модерации + - `(Player ID) “Player Name”`, где ID игрока полезен для модерации - Короткое имя, например «HeartbeatThread» - `$LOG_LEVEL` — один из уровней важности сообщения: - - `DEBUG` : отображается только в режиме отладки, обычно является спамом и важен только для разработчиков. - - `INFO` : Общая информация - - `LUA` : Сообщение от плагина Lua - - `WARN` : Описывает то, что не должно происходить, обычно - - `ERROR` : Что-то пошло не так или произошло очень неожиданно. - - `FATAL` : Произошло что-то, что привело к отключению сервера. + - `DEBUG`: отображается только в режиме отладки, обычно является спамом и важен только для разработчиков. + - `INFO`: Общая информация + - `LUA`: Сообщение от плагина Lua + - `WARN`: Описывает то, что не должно происходить, обычно + - `ERROR`: Что-то пошло не так или произошло очень неожиданно. + - `FATAL`: Произошло что-то, что привело к отключению сервера. - `$MESSAGE` само сообщение, обычно то, на что следует обратить внимание и что следует понять. В некоторых случаях это может быть зашифровано, но общее правило заключается в том, что пока нет видимых проблем с сервером и нет ОШИБОК, все хорошо. ## Обновление сервера @@ -199,7 +207,7 @@ AuthKey **ДОЛЖЕН** быть установлен вами. Он будет Всякий раз, когда выходит новое обновление, вам рекомендуется обновить свой сервер. Обычно это включает исправления ошибок, улучшения стабильности и безопасности, наряду с общими новыми функциями и т. д., которые вводятся. -Чтобы получать новости об обновлениях по мере их выхода, подпишитесь на канал «обновления» сервера Discord, ищите его на форумах или посетите/спросите на [странице релизов GitHub](https://github.com/BeamMP/BeamMP-Server/releases) . +Чтобы получать новости об обновлениях по мере их выхода, подпишитесь на канал «обновления» сервера Discord, ищите его на форумах или посетите/спросите на [странице релизов GitHub](https://github.com/BeamMP/BeamMP-Server/releases). ### Как обновить @@ -215,23 +223,23 @@ AuthKey **ДОЛЖЕН** быть установлен вами. Он будет #### В Windows -1. Для запуска сервера убедитесь, что у вас установлены [распространяемые компоненты Visual C++](https://aka.ms/vs/17/release/vc_redist.x64.exe) . +1. Для запуска сервера убедитесь, что у вас установлены [Visual C++ Redistributables](https://aka.ms/vs/17/release/vc_redist.x64.exe). 2. Перейдите на [BeamMP.com](https://beammp.com/) и нажмите кнопку «Загрузить сервер». -3. После загрузки вы должны увидеть один файл с именем `BeamMP-Server.exe` . Мы назовем его «новый исполняемый файл». -4. Перейдите в папку, где находится ваш текущий исполняемый файл `BeamMP-Server.exe` (обычно это та же папка, где находится ваш `ServerConfig.toml` ). Мы будем называть его «старым исполняемым файлом». +3. После загрузки вы должны увидеть один файл с именем `BeamMP-Server.exe`. Мы назовем его «новый исполняемый файл». +4. Перейдите в папку, где находится ваш текущий исполняемый файл `BeamMP-Server.exe` (обычно это та же папка, где находится ваш `ServerConfig.toml`). Мы будем называть его «старым исполняемым файлом». 5. Замените старый исполняемый файл новым исполняемым файлом (например, скопировав или переместив новый исполняемый файл в папку). #### На Линуксе 1. Перейдите на [BeamMP.com](https://beammp.com/) и нажмите кнопку «Загрузить сервер», вы будете перенаправлены на страницу релиза сервера на Github. -2. Загрузите правильную версию для вашего дистрибутива. Для простоты теперь он будет называться `BeamMP-Server-xxx` , где `xxx` обозначает версию для используемого вами дистрибутива. +2. Загрузите правильную версию для вашего дистрибутива. Для простоты теперь он будет называться `BeamMP-Server-xxx`, где `xxx` обозначает версию для используемого вами дистрибутива. 3. После загрузки вы должны увидеть один файл с именем `BeamMP-Server-xxx` в зависимости от версии, которую вы скачали. Мы назовем его «новый исполняемый файл». -4. Перейдите в папку, где находится ваш текущий исполняемый файл `BeamMP-Server-xxx` (обычно это та же папка, где находится ваш `ServerConfig.toml` ). Мы будем называть его «старым исполняемым файлом». +4. Перейдите в папку, где находится ваш текущий исполняемый файл `BeamMP-Server-xxx` (обычно это та же папка, где находится ваш `ServerConfig.toml`). Мы будем называть его «старым исполняемым файлом». 5. Замените старый исполняемый файл новым исполняемым файлом (например, скопировав или переместив новый исполняемый файл в папку). -6. Откройте терминал в той папке, где вы только что заменили исполняемый файл, и выполните `sudo chmod +x BeamMP-Server-xxx` . Это позволит убедиться, что сервер может быть запущен. +6. Откройте терминал в той папке, где вы только что заменили исполняемый файл, и выполните `sudo chmod +x BeamMP-Server-xxx`. Это позволит убедиться, что сервер может быть запущен. ### Автоматические обновления Сервер не поддерживает автоматические обновления или уведомления об обновлениях (пока). -Однако вы можете запросить API GitHub для получения последней версии, проверив версию сервера по тегам. Вы можете получить это с помощью GET из `https://api.github.com/repos/BeamMP/BeamMP-Server/git/refs/tags` . +Однако вы можете запросить API GitHub для получения последней версии, проверив версию сервера по тегам. Вы можете получить это с помощью GET из `https://api.github.com/repos/BeamMP/BeamMP-Server/git/refs/tags`.