mirror of
https://github.com/BeamMP/Docs.git
synced 2026-05-19 08:10:50 +00:00
Merge branch 'main' into gitlocalize-move-1473286
This commit is contained in:
@@ -32,16 +32,13 @@ Das Aufsetzen besteht aus folgenden Schritten. Du solltest alle davon durchgehen
|
||||
Dieser Schritt ist jedoch notwendig, wenn Spieler **außerhalb** deines Haushaltes deinem heim-gehosteten Server beitreten sollen (außerhalb von deinem lokalen Netzwerk)
|
||||
|
||||
!!! danger ":material-scale-balance: ACHTUNG:"
|
||||
|
||||
**Port forwarding ist ein Risiko**.
|
||||
|
||||
Wenn du Ports weiterleitest, sind dir die Risiken beim öffnen von Ports von deinem Heimnetz ins öffentliche Netz bewusst und verlierst das Recht, BeamMP für **jegliche Schäden**, welche deinem Haushalt passieren könnten, Haften zu lassen.
|
||||
|
||||
Wir übernehmen keine Haftung für jegliche extern gelinkten Dienste oder Webseiten.
|
||||
|
||||
Es wird daher empfohlen, BeamMP Server mit einen unserer Partner Hosting Services zu hosten.
|
||||
Es wird daher empfohlen, BeamMP Server mit einen unserer Partner Hosting Services zu hosten.
|
||||
|
||||
*Sieh dir [diese Anleitung zum Port weiterleiten](port-forwarding.md) an*
|
||||
*Sieh dir [diese Anleitung zum Port weiterleiten](port-forwarding.md) an*
|
||||
|
||||
#### Partner Hosting Services (bezahlt):
|
||||
|
||||
@@ -49,13 +46,16 @@ Das Aufsetzen besteht aus folgenden Schritten. Du solltest alle davon durchgehen
|
||||
- [RackGenius](https://rackgeni.us/beammp-plans)
|
||||
- [Connect Hosting](https://connecthosting.net/beammp)
|
||||
- [Assetto Hosting](https://assettohosting.com/en/games/beamng)
|
||||
- [Zap Hosting](https://zap-hosting.com/en/beammp-server-hosting/)
|
||||
- [ZAP-Hosting](https://zap-hosting.com/itsbeammp)
|
||||
- [HostHavoc](https://hosthavoc.com/)
|
||||
- [PedalHost](https://pedal.host/)
|
||||
- [Vyper Hosting](https://vyperhosting.com/r/beammp)
|
||||
- [BisectHosting](https://www.bisecthosting.com/beammp-server-hosting)
|
||||
- [Four Seasons Hosting](https://fourseasonshosting.com)
|
||||
- [Vertuo Hosting](https://vertuohosting.com)
|
||||
- [Winheberg](https://winheberg.fr/offres/gaming/beammp?lang=en)
|
||||
- [Wabbanode](https://wabbanode.com/partner/beammp)
|
||||
- [Iceline Hosting](https://iceline-hosting.com/games/beammp)
|
||||
|
||||
#### 1.1 Firewall
|
||||
|
||||
@@ -63,7 +63,7 @@ Abhängig von deinem Setup musst du den BeamMP-Server möglicherweise durch die
|
||||
|
||||
Dort lässt du den BeamMP-Server durch die Firewall, **sowohl eingehende als auch ausgehende Verbindungen** sowie **TCP und UDP** . Falls die Firewall stattdessen nach einem Port fragt, muss dieser derselbe sein, den du in Schritt „1. Portweiterleitung“ verwendet hast (standartmäßig 30814).
|
||||
|
||||
Solltest du Probleme haben, frage auf unserem [Forum](https://forum.beammp.com) oder auf unserem [Discord server](https://discord.gg/beammp) im `#support` Kanal.
|
||||
Eine detailliertere Anleitung findest du unter [dieser Dokumentationsseite](https://docs.beammp.com/FAQ/Defender-exclusions/) . Bei Problemen kannst du dich an unser [Forum](https://forum.beammp.com) oder auf unseren [Discord-Server](https://discord.gg/beammp) im Kanal `#support` an uns wenden.
|
||||
|
||||
### **2. Authentifizierungsschlüssel**
|
||||
|
||||
@@ -73,40 +73,41 @@ Der Authentifizierungsschlüssel, auch “Authentication Key” oder “AuthKey
|
||||
|
||||
TEILE ODER ZEIGE DEN SCHLÜSSEL NICHT. BEHANDLE IHN WIE EIN PASSWORT.
|
||||
|
||||
|
||||
Um einen Schlüssel zu erwerben ist ein [Discord](https://discord.com) Konto erforderlich. Das ist wichtig um gegen Spam zu schützen.
|
||||
|
||||
#### 2.1. Die Schlüssel-Übersicht öffnen
|
||||
|
||||
Melde dich mit Discord beim [Keymaster](https://beammp.com/keymaster) an. Klicke auf der Keymaster-Homepage links auf dem Bildschirm auf „Keys“:
|
||||
Melde dich mit Discord bei [Keymaster](https://keymaster.beammp.com) an. Klicke auf der Keymaster-Startseite links auf „Schlüssel“.
|
||||
|
||||
|
||||
<figure markdown></figure>
|
||||
<figure markdown=""></figure>
|
||||
|
||||
#### 2.2. Einen Schlüssel erstellen
|
||||
|
||||
Um einen Schlüssel zu erstellen, klicke das grüne ,,+" oben rechts.
|
||||
|
||||
|
||||
<figure markdown></figure>
|
||||
<figure markdown=""></figure>
|
||||
|
||||
#### 2.3. Schlüssel-Informationen eingeben
|
||||
|
||||
Als nächstes, fülle das Feld für den Servernamen (das ist lediglich der Name des Schlüssels, nicht der Name vom Server in der Liste), dann klick ,,Create".<br>Beispiel:
|
||||
|
||||
|
||||
<figure class="image image_resized" style="width:44.84%;" markdown></figure>
|
||||
<figure class="image image_resized" style="width:44.84%;" markdown=""></figure>
|
||||
|
||||
es sollte am Ende wie folgt aussehen:
|
||||
|
||||
|
||||
<figure markdown></figure>
|
||||
<figure markdown=""></figure>
|
||||
|
||||
#### 2.4. Den Schlüssel kopieren
|
||||
|
||||
Kopiere den Text im “Key” Feld. In diesem Beispiel wäre das `3173a2e-6az0-4542-a3p0-ddqq5ff95558`. Klicke das ,,Klemmbrett Symbol" neben dem Schlüssel um diesen zu kopieren.
|
||||
|
||||
|
||||
<figure markdown></figure>
|
||||
<figure markdown=""></figure>
|
||||
|
||||
### **3. Installation**
|
||||
|
||||
@@ -153,31 +154,40 @@ Führe zum Abschluss den Server unbedingt einmal mit `./BeamMP-Server` aus und f
|
||||
Nachdem der Server einmal gestartet wurde, sollte er die nötigen Dateien erstellt haben und einen oder zwei Fehler in die Konsole schreiben. Das ist normal, da wir noch nicht fertig sind.<br>Es sollten nun folgende Dateien vorhanden sein:
|
||||
|
||||
|
||||
<figure markdown></figure>
|
||||
<figure markdown=""></figure>
|
||||
|
||||
Genannt ,,ServerConfig.toml”, ,,Server.log” und ,,BeamMP-Server.exe”! (Je nach deinen Einstellungen, siehst du möglicherweise die [.toml] [.log] [.exe] Erweiterungen nicht)
|
||||
|
||||
Öffne die `ServerConfig.toml` mit einem Texteditor wie zum Beispiel `Notepad` . Dies kannst du mit **[Rechtsklick] → „Öffnen mit…“** und anschließender Auswahl eines Texteditors tun.
|
||||
|
||||
Die Datei sollte ungefähr so aussehen
|
||||
Hier ist eine Beispielkonfiguration:
|
||||
|
||||
```TOML
|
||||
[General]
|
||||
AuthKey = ''
|
||||
Debug = false
|
||||
Description = 'BeamMP Default Description'
|
||||
Map = '/levels/gridmap_v2/info.json'
|
||||
MaxCars = 1
|
||||
MaxPlayers = 10
|
||||
Name = 'BeamMP Server'
|
||||
Port = 30814
|
||||
Private = false
|
||||
ResourceFolder = 'Resources'
|
||||
AuthKey = "auth-key"
|
||||
AllowGuests = false
|
||||
LogChat = false
|
||||
Debug = false
|
||||
IP = "::"
|
||||
Private = true
|
||||
InformationPacket = true
|
||||
Name = "Test Server"
|
||||
Tags = "Freeroam,Modded,Racing,Police"
|
||||
MaxCars = 2
|
||||
MaxPlayers = 10
|
||||
Map = "/levels/ks_nord/info.json"
|
||||
Description = "Total Random Beam MP Server"
|
||||
ResourceFolder = "Resources"
|
||||
```
|
||||
|
||||
Dies ist deine Konfigurationsdatei. Diese verwendet das Format TOML. Weitere Informationen zu dieser Datei findest du im Abschnitt [Serverwartung](server-maintenance.md) .
|
||||
!!! info
|
||||
|
||||
Als erstes kümmern wir uns um den `AuthKey`. Dazu muss der Schlüssel zwischen die Anführungszeichen `" "` eingefügt werden.
|
||||
Dies ist deine Konfigurationsdatei. Sie verwendet das Format TOML. Weitere Informationen zu dieser Datei und den Variablen findest du im Abschnitt [Serverwartung](server-maintenance.md).
|
||||
Der Server wird **NICHT** in der Serverliste angezeigt, solange `Private = true` eingestellt ist. _Wenn_ er in der Liste angezeigt werden soll, setze die Einstellung auf **`Private = false`**.
|
||||
|
||||
|
||||
Fürs Erste ist nur das Feld `AuthKey` relevant. Zwischen den Anführungszeichen `''` fügt man den AuthKey ein, den du im ersten Schritt kopiert hast.
|
||||
|
||||
Für unser Beispiel sollte der Eintrag so aussehen:
|
||||
|
||||
@@ -185,14 +195,10 @@ Für unser Beispiel sollte der Eintrag so aussehen:
|
||||
AuthKey = '3173a2e-6az0-4542-a3p0-ddqq5ff95558'
|
||||
```
|
||||
|
||||
Vergib deinem Server einen Namen im `Name` Feld. Du kannst diesen mit Farben und mehr formatieren. Siehe [diese Sesktion](server-maintenance.md#customize-the-look-of-your-server-name) auf der Server-Wartungsseite.
|
||||
Gib dem Server im Feld `Name` ebenfalls einen Namen. Du kannst diesen mit Farben und weiteren Optionen formatieren. Weitere Informationen findest du [im Abschnitt „Namensanpassung“](server-maintenance.md#customize-the-look-of-your-server-name) auf der Serververwaltungsseite.
|
||||
|
||||
Wenn du einen anderen **Port** als **30814** ausgewählt hast, achte darauf, ihn hier unter `Port` zu ersetzen.
|
||||
|
||||
!!! info
|
||||
|
||||
Dein Server wird **NICHT** in der Serverliste erscheinen, solange `Private = true` ist. _Wenn_ du ihn gelistet haben willst, stell den Parameter auf **`Private = false`**.
|
||||
|
||||
### **5. Validierung**
|
||||
|
||||
Nun führe den Server erneut aus und sieh nach, ob weitere `[ERROR]` oder `[WARN]` Meldungen erscheinen. Der Server sollte nun offen bleiben. In den folgenden Schritten (6.) erfährst du, wie man dem Server beitritt.
|
||||
@@ -201,7 +207,12 @@ Nun führe den Server erneut aus und sieh nach, ob weitere `[ERROR]` oder `[WARN
|
||||
|
||||
#### 5.1 Wie man dem Server Mods hinzufügt
|
||||
|
||||
Fahrzeug und Map Mods werden unterschiedlich im Server installiert, müssen aber beide im Ordner (`Resources/Client`) abelegt werden. Alle Mods die hinzugefügt werden sollen kommen in diesen Ordner.
|
||||
Fahrzeug- und Karten-Mods werden unterschiedlich installiert, müssen aber beide im Serverordner ( `Resources/Client` ) abgelegt werden. Ziehe einfach die gewünschten Mods in diesen Ordner.
|
||||
|
||||
!!! warning
|
||||
|
||||
Solltest du beim Versuch, deinem Server nach dem Hinzufügen von Mods beizutreten, die Meldung „Fertig“ oder „Start“ erhalten, hast du wahrscheinlich eine inkompatible oder fehlerhafte Mod dem Server hinzugefügt.
|
||||
Inkompatibilitäten zwischen zwei oder mehr Mods können ebenfalls auftreten. Falls du Client-Mods installiert hast, lies bitte [diese Anleitung](../../FAQ/How-to-deactivate-mods.md) zum Entfernen von Mods aus deinem Spiel.
|
||||
|
||||
#### 5.2 Allgemeine Mods
|
||||
|
||||
@@ -209,7 +220,7 @@ Wenn du nur modifizierte Fahrzeuge hinzufügen möchtest, lege die Zip-Datei der
|
||||
|
||||
#### 5.3 Karten
|
||||
|
||||
Alle Standardkarten (Karten, die keine Mods sind) funktionieren sofort und müssen nicht installiert werden. Ändere einfach die `Map` in der `ServerConfig.toml` Datei auf eine der [folgenden Optionen](server-maintenance.md#all-vanilla-maps-names) . Für alle anderen modifizierten Karten geht man wie folgt vor:
|
||||
Alle Standardkarten (Karten, die keine Mods sind) funktionieren sofort und müssen nicht installiert werden. Ändere einfach die `Map` in der Datei `ServerConfig.toml` auf eine der [folgenden Optionen](server-maintenance.md#all-vanilla-maps-names) . Für alle anderen modifizierten Karten gehe wie folgt vor:
|
||||
|
||||
1. Legen die `.zip` Datei der Karte in den Ordner `Resources/Client` des Servers.
|
||||
2. Sieh dir als Nächstes in die Zip-Datei der Karte (entpacke sie nicht) und öffne den Ordner „ `levels` “. In diesem Ordner sollte sich lediglich ein weiterer Ordner mit dem Namen der Karte befinden, zum Beispiel „myawesomedriftmap2021“. Achte darauf, diesen Namen *genau so zu kopieren oder zu merken, wie er im Namen dieses Ordners geschrieben ist.*
|
||||
@@ -243,10 +254,22 @@ Du musst anderen Spielern die öffentliche IP Adresse des Servers geben. Sei jed
|
||||
|
||||
#### 6.c. Andere Spieler treten deinem öffentlichen Server bei
|
||||
|
||||
Um deinem öffentlichen Server beizutreten, gehe zur Server Liste und gib den Namen des Servers ein und klicke ,,Connect". Wenn du dir nicht sicher über den Namen des Server bist, es wird der Name sein, welchen du in der `ServerConfig.toml` festlegst. Stelle sicher dass Suchfilter deaktiviert sind und dass die Karte auf "Any" gesetzt ist, wenn du ihn nicht findest. Du kannst auch die [Keymaster](https://beammp.com/keymaster) Webseite für die IP des Servers prüfen.
|
||||
Um einem öffentlichen Server beizutreten, können Benutzer einfach die Serverliste aufrufen, den Servernamen eingeben und auf „Verbinden“ klicken. Falls du/sie den Servernamen nicht kennen, findest du ihn in der Datei `ServerConfig.toml` . Sollte niemand den Server nicht finden, stelle sicher, dass die Suchfilter deaktiviert und die Zuordnung auf „Beliebig“ eingestellt ist. Die IP-Adresse des Servers findest du auch auf der Website von [Keymaster](https://keymaster.beammp.com/) .
|
||||
|
||||
Sollten du oder deine Freunde einen ,,Verbindung Fehlgeschlagen!" Fehler bekommen, prüfe das Launcher Fenster auf Codes wie 10060, 10061 oder 10030. Das bedeutet, dass du entweder eine CGNAT IPv4 hast, oder du hast etwas bei Schritt **1 Port Forwarding** oder **1.1. Firewall** falsch gemacht. Um zu prüfen ob du eine CGNAT IPv4 hast, finde die WAN IP Adresse im Router Interface. Vergleiche diese mit deiner [öffentlichen IP](https://www.whatsmyip.org/). Wenn diese gleich sind, hast du keine CGNAT IP. IPv6 Support ist noch **NICHT** implementiert.
|
||||
|
||||
### **7. So überprüft man die Verbindung deines BeamMP-Servers**
|
||||
|
||||
Gib unten die öffentliche IPv4-Adresse und den Port des Servers ein und klicke dann auf „CheckBeamMP“.
|
||||
|
||||
<form action="https://check.beammp.com/api/v2/beammp" method="get" target="_blank">
|
||||
<label for="ip">IP Adresse:</label>
|
||||
<input type="text" id="ip" name="ip"><br>
|
||||
<label for="port">Port:</label>
|
||||
<input type="text" id="port" name="port"><br>
|
||||
<input type="submit" value="CheckBeamMP">
|
||||
</form>
|
||||
|
||||
!!! warning "Ich möchte einen VPN wie RadminVPN, Hamachi oder ähnlich verwenden"
|
||||
|
||||
BeamMP unterstützt diese VPNs nicht, weil diese oft Probleme verursachen. Eines davon ist das blockieren von UDP Verkehr. Um dies zu beheben, siehe Sektion 1.
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
# Проблема
|
||||
|
||||
Лаунчер не подключается к игре. Это краткое руководство объясняет, как вручную изменить порт лаунчера.
|
||||
|
||||
# Изменение порта вручную
|
||||
|
||||
1. Запустить BeamNG
|
||||
2. В главном меню выберите «Параметры», затем «Мультиплеер»
|
||||
3. В параметрах многопользовательской игры включите `Show advanced options`
|
||||
4. Прокрутите страницу вниз
|
||||
5. В `Launcher port` измените номер порта на другой, например, 4567
|
||||
6. Закрыть BeamNG
|
||||
7. Щелкните правой кнопкой мыши по ярлыку BeamMP-launcher и выберите в контекстном меню `Open file location`
|
||||
8. Откройте файл `launcher.cfg` в текстовом редакторе.
|
||||
9. Измените `"Port": 4444,` номер на тот же, который вы использовали ранее в игровых настройках, в этом примере 4567
|
||||
10. Сохраните изменения и закройте текстовый редактор.
|
||||
11. Запустите BeamMP-лаунчер
|
||||
|
||||
Если соединения все еще нет, попробуйте еще раз с другим портом. Любое число между ~2000 и 65535 является допустимым портом
|
||||
|
||||
## Проблема все еще не решена?
|
||||
|
||||
Создайте заявку в службу поддержки на нашем [Discord Сервере](https://discord.gg/BeamMP).
|
||||
|
||||
Теги: Лаунчер, Ошибка Соединения, Номер Порта
|
||||
@@ -3,38 +3,50 @@
|
||||
!!! информация
|
||||
|
||||
```
|
||||
Before tampering with the firewall, make sure that your network within the windows networking settings is set to private (assuming you are in a private network).
|
||||
Перед изменением настроек брандмауэра убедитесь, что ваша сеть в параметрах Windows настроена как частная (при условии, что вы действительно находитесь в частной сети).
|
||||
|
||||
!!! danger ":material-scale-balance: DISCLAIMER:"
|
||||
|
||||
**Firewall / Defender exclsuions are a risk**.
|
||||
**Исключения в Firewall / Defender представляют собой риск**.
|
||||
|
||||
By creating exclsuions, you understand the risks of allowing programs on your PC and 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.
|
||||
Мы не несём ответственности за любой контент, размещённый на внешних сервисах или сайтах, на которые ведут ссылки.
|
||||
```
|
||||
|
||||
## 1. Исключение брандмауэра для BeamMP-Launcher.
|
||||
## 1. Исключение для BeamMP-Launcher в брандмауэре Защитника.
|
||||
|
||||
1. Откройте `Windows Defender Firewall with advanced setting` .
|
||||
2. В окне нажмите `Inbound` , чтобы открыть вкладку исключений для входящих подключений.
|
||||
1. Откройте `Windows Defender Firewall with advanced setting`.
|
||||
2. В окне нажмите `Inbound`, чтобы открыть вкладку исключений для входящих подключений.
|
||||
3. Нажмите `Create new rule` в правом верхнем углу, чтобы создать новое исключение.
|
||||
4. Выберите `Program` , чтобы создать исключение для конкретной программы.
|
||||
5. Введите полный путь к `BeamMP-Launcher.exe` . По умолчанию это будет `%appdata%\BeamMP-Launcher\BeamMP-Launcher.exe` без кавычек.
|
||||
4. Выберите `Program`, чтобы создать исключение для конкретной программы.
|
||||
5. Введите полный путь к файлу `BeamMP-Launcher.exe`. По умолчанию это `%appdata%\BeamMP-Launcher\BeamMP-Launcher.exe` (без кавычек).
|
||||
6. Обязательно разрешите подключение
|
||||
7. Дайте исключению имя (например, «BeamMP-Launcher») и сохраните его.
|
||||
8. Перезагрузите компьютер.
|
||||
|
||||
## 2. Исключение антивируса для BeamMP-Launcher.
|
||||
## 1.1 Исключение сервера BeamMP из списка блокировки брандмауэра Защитника.
|
||||
|
||||
1. Откройте приложение `Windows Security` .
|
||||
2. Нажмите на первый пункт `virus and threat protection` .
|
||||
1. Откройте `Windows Defender Firewall with advanced setting`.
|
||||
2. В окне нажмите `Inbound`, чтобы открыть вкладку «Исключения для входящих».
|
||||
3. Нажмите `Create new rule` в правом верхнем углу, чтобы создать новое исключение.
|
||||
4. Выберите`Port` чтобы создать исключение для конкретной программы.
|
||||
5. Укажите тот же порт, что и в ServerConfig.toml.
|
||||
6. Введите полный путь к файлу `BeamMP-Server.exe`. Файл находится в той папке, в которую вы его поместили после загрузки.
|
||||
7. Убедитесь, что вы разрешили подключения
|
||||
8. Дайте имя исключению (прим. "BeamMP-Server") и сохраните его.
|
||||
9. Перезагрузите компьютер.
|
||||
|
||||
## 2. Исключение BeamMP-Launcher/Server из списка мониторинга Антивируса Защитника.
|
||||
|
||||
1. Откройте приложение `Windows Security`.
|
||||
2. Нажмите на первый пункт `virus and threat protection`.
|
||||
3. Нажмите `Manage settings` в разделе «Параметры защиты от вирусов и угроз».
|
||||
4. Прокрутите страницу вниз, чтобы перейти на вкладку `Exclusions` .
|
||||
5. Там нажмите «Добавить исключение» и выберите `process` .
|
||||
6. Введите `BeamMP-Launcher.exe` в поле и сохраните его.
|
||||
4. Прокрутите страницу вниз, чтобы перейти на вкладку `Exclusions`.
|
||||
5. Там нажмите «Добавить исключение» и выберите `process`.
|
||||
6. Введите `BeamMP-Launcher.exe` или `BeamMP-Server.exe` в поле и сохраните.
|
||||
7. Перезагрузите компьютер.
|
||||
|
||||
## Все еще сталкиваетесь с проблемами?
|
||||
|
||||
Откройте тему на [форуме](https://forum.beammp.com) или на нашем [сервере Discord](https://discord.gg/beammp) в канале `#support` .
|
||||
Откройте тему на [форуме](https://forum.beammp.com) или на нашем [сервере Discord](https://discord.gg/beammp) в канале `#support`.
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
## Зачем мне деактивировать моды?
|
||||
|
||||
В BeamMP сервер, к которому вы решили подключиться, предоставляет необходимые моды. Они загружаются и активируются автоматически при подключении. Наличие установленных и активных локальных модов часто приводит к тому, что BeamMP не работает должным образом, даже если у вас есть всего один дополнительный мод помимо BeamMP.
|
||||
|
||||
!!! предупреждение
|
||||
|
||||
```
|
||||
Удалите все моды, которые вы разместили в папке BeamNG.Drive\content\ или её подпапках. Это место не предназначено для установки модов и может вызвать проблемы, как указано в файле `DO_NOT_INSTALL_MODS_HERE.txt`, находящемся в той же директории.
|
||||
|
||||
!!! quote "DO_NOT_INSTALL_MODS_HERE.txt"
|
||||
|
||||
Ни в коем случае не копируйте моды в эту папку: это может привести к повреждению модов, замедлению установки обновлений, неправильной работе менеджера модов, нарушению работы безопасного режима и другим проблемам.
|
||||
```
|
||||
|
||||
## Как деактивировать/удалить мои моды?
|
||||
|
||||
Существует 3 варианта решения возможных проблем при использовании BeamMP.
|
||||
|
||||
### 1. Отключить моды
|
||||
|
||||
Перед тем, как присоединиться к любому серверу, убедитесь, что у вас нет модов, кроме 'multiplayerbeammp'. Если игра зависает или у вас все еще есть проблемы, обратитесь к следующему варианту
|
||||
|
||||
### 2. Создание новой папки пользователя
|
||||
|
||||
Откройте папку пользователя BeamNG.Drive и переименуйте папку `current`, например, в `current_old`. Перед переименованием закройте BeamNG.drive. 
|
||||
|
||||
### 3. Удаление модов из папок контента.
|
||||
|
||||
Чтобы получить доступ к папке `Beamng.drive\contentЧтобы получить доступ к папке и очистить ее от любых модов, откройте место установки BeamNG.drive. Щелкните правой кнопкой мыши папку `content` и удалите ее. Продолжайте проверять файлы игры через Steam или Epic Games. Это приведет к повторной загрузке файлов.
|
||||
|
||||
После того, как вы закончите, запустите BeamNG.Drive через BeamMP-Launcher, и у вас должен быть 'multiplayerbeammp' как ваш единственный включенный мод, доступный в репозитории, а также кнопка в главном меню для входа в BeamMP. Если у вас все еще есть проблемы с присоединением к модифицированному серверу, они, вероятно, предоставляют сломанные/устаревшие моды.
|
||||
|
||||
### 4. Очистка кэша BeamMP-Launcher
|
||||
|
||||
Чтобы очистить кэшированные моды из каталогов BeamMP, перейдите в место установки вашего BeamMP-Launcher. По умолчанию путь будет <code>C:\Users\AppData\BeamMP-Launcher</code>. Там вы найдете папку 'Resources'. Удалите папку, чтобы удалить все кэшированные моды. Это может быть полезно, если вам нужно больше места на диске или вы хотите очистить устаревшие моды BeamNG.
|
||||
|
||||
!!! вопрос "Мои настройки и конфигурации пропали! Как их восстановить?"
|
||||
|
||||
```
|
||||
Если вы переименовали папку пользователя, вы заставили игру создать новую, чистую папку пользователя. Вы можете скопировать папки "settings" и "vehicles" из папки, которую вы переименовали (например, `current_old`), в новую созданную папку.
|
||||
Убедитесь, что BeamNG.Drive закрыт, и замените все элементы в месте, куда вы копируете папки. Теперь у вас должны быть все настройки и конфигурации, как и раньше.
|
||||
```
|
||||
@@ -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\<username>\AppData\Roaming\` . Заменить<username> с именем пользователя вашего Windows. Если вы установили BeamMP в другом месте, например <code>D:\BeamMP-Launcher</code> , то поместите Launcher в соответствующую папку BeamMP-Launcher.</username>
|
||||
1. Загрузите последнюю версию Launcher напрямую с [GitHub](https://github.com/BeamMP/BeamMP-Launcher/releases/latest/download/BeamMP-Launcher.exe).
|
||||
2. Перейдите в каталог BeamMP-Launcher.exe. По умолчанию эта папка находится в `C:\Users\<username>\AppData\Roaming\`. Заменить<username> с именем пользователя вашего Windows. Если вы установили BeamMP в другом месте, например <code>D:\BeamMP-Launcher</code>, то поместите Launcher в соответствующую папку BeamMP-Launcher.</username>
|
||||
3. Если применимо, замените существующий Launcher новым в папке BeamMP-Launcher.
|
||||
4. Запустите BeamMP-Launcher как обычно, чтобы проверить его работу.
|
||||
|
||||
## Проблема все еще не решена?
|
||||
|
||||
Создайте тикет поддержки на нашем [сервере Discord](https://discord.gg/BeamMP) . Теги: Launcher, скачать,
|
||||
Создайте тикет поддержки на нашем [Сервере Discord](https://discord.gg/BeamMP). Теги: Launcher, скачать
|
||||
|
||||
@@ -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).
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
# 28 марта 2026 г. FAQ о сбоях BeamMP
|
||||
|
||||
Временный раздел часто задаваемых вопросов (FAQ) в связи с (текущим) сбоем в работе BeamMP, начавшимся 28 марта 2026 года.
|
||||
|
||||
**Последнее обновление: 1 апреля 2026 г.**
|
||||
|
||||
=== Помогите! Мой лаунчер BeamMP не работает! Попробуйте переустановить лаунчер BeamMP. Для этого выполните следующие действия: 1. Перейдите на [сайт beammp.com](https://beammp.com/) 2. Нажмите *«Скачать сейчас»* 3. Запустите установщик и следуйте инструкциям
|
||||
|
||||
```
|
||||
!!! примечание
|
||||
|
||||
По состоянию на 1 апреля 2026 года, согласно Windows Defender SmartScreen, установщик MSI является «неопознанным приложением».
|
||||
|
||||
Чтобы обойти это предупреждение, нажмите *Подробнее*, а затем *Запустить в любом случае*.
|
||||
```
|
||||
|
||||
=== Помогите! Мои ключи авторизации больше не работают! С 1 апреля 2026 года системы управления ключами и авторизации отключены. Это означает, что ваши ключи авторизации работать не будут. Чтобы обойти это, выполните следующие действия: 1. Откройте файл `ServerConfig.toml` или любой другой файл конфигурации вашего сервера. 2. Установите значение `Private` в `true` . Должно получиться примерно так: `Private = true` 3. Это должно решить проблему с ключами авторизации.
|
||||
|
||||
```
|
||||
!!! примечание
|
||||
|
||||
С 1 апреля 2026 года системы аутентификации BeamMP отключены. Доступны только гостевые учетные записи.
|
||||
|
||||
Убедитесь, что ваш официант разрешает вход гостям.
|
||||
```
|
||||
@@ -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), где сообщество может задавать вопросы и получать ответы.
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
# Часто задаваемые вопросы и известные проблемы
|
||||
|
||||
Список часто задаваемых вопросов и известных ошибок.
|
||||
|
||||
---
|
||||
|
||||
## **Сервер**
|
||||
|
||||
---
|
||||
|
||||
### **Как мне настроить свои собственные серверы?**
|
||||
|
||||
Всю информацию о настройке собственного сервера можно найти [здесь](https://docs.beammp.com/server/create-a-server/).
|
||||
|
||||
---
|
||||
|
||||
### **Можно ли создать сервер с использованием Linux?**
|
||||
|
||||
Мы предоставляем бинарные файлы для многих дистрибутивов Linux [здесь](https://github.com/BeamMP/BeamMP-Server/releases/latest). Если для вашей операционной системы/дистрибутива нет бинарных файлов, вы можете собрать их самостоятельно, загрузив исходный код на нашем [GitHub](https://github.com/BeamMP/BeamMP-Server), руководство можно найти [здесь](https://github.com/BeamMP/BeamMP-Server#build-instructions).
|
||||
|
||||
---
|
||||
|
||||
### **Каковы минимальные системные требования для запуска сервера BeamMP?**
|
||||
|
||||
- ОЗУ: 50+ МБ полезной памяти (не считая накладных расходов ОС)
|
||||
- Процессор: >1 ГГц, желательно многоядерный
|
||||
- ОС: Windows, Linux (теоретически любая POSIX)
|
||||
- Графический процессор: Нет
|
||||
- HDD: 10 МБ + Моды/Плагины
|
||||
- Пропускная способность: загрузка 5-10 Мбит/с
|
||||
|
||||
---
|
||||
|
||||
## **Игроки за пределами моей сети не могут присоединиться к моему серверу, размещенному на моем собственном сервере.**
|
||||
|
||||
Прочитайте руководство по переадресации портов, которое доступно [здесь](https://docs.beammp.com/server/port-forwarding/). Ниже приведен краткий обзор наиболее важных шагов. Если другие игроки, пытаясь подключиться к вашему серверу, получают код ошибки 10060, 10061 или 10038 в своем лаунчере BeamMP, то вам следует проверить следующие шаги:
|
||||
|
||||
- Перенаправьте порт 30814 (или любой другой порт, указанный в ServerConfig.toml), протоколы TCP и UDP.
|
||||
- Разрешить BeamMP через брандмауэр Windows, разрешить как входящие, так и исходящие соединения. Отключение брандмауэра обычно НЕ работает.
|
||||
- Убедитесь, что вы не используете VPN (это может вызвать проблемы).
|
||||
- Убедитесь, что сервер действительно работает, без ошибок и предупреждений.
|
||||
|
||||
Вы можете проверить, успешно ли выполнен проброс портов, с помощью CheckBeamMP, пока сервер работает.
|
||||
|
||||
<form action="https://check.beammp.com/api/v2/beammp" method="get" target="_blank">
|
||||
<label for="ip">IP-адрес:</label>
|
||||
<input type="text" id="ip" name="ip"><br>
|
||||
<label for="port">Порт:</label>
|
||||
<input type="text" id="port" name="port"><br>
|
||||
<input type="submit" value="CheckBeamMP">
|
||||
</form>
|
||||
|
||||
Примечания:
|
||||
|
||||
- Некоторые интернет-провайдеры не предоставляют выделенные адреса IPv4 для вашего соединения (CGNAT), поэтому переадресация портов может быть невозможна, несмотря на то, что она доступна в маршрутизаторе.
|
||||
- Переадресация портов невозможна, если вы используете мобильное (4G/5G) интернет-подключение.
|
||||
|
||||
---
|
||||
|
||||
### **Я вижу свой сервер, размещенный на собственном сервере, в списке серверов, но не могу подключиться к нему сам**
|
||||
|
||||
Если сервер запущен на той же машине, что и игра, вам самим придется использовать Direct Connect для присоединения с IP 127.0.0.1 и портом вашего сервера. Чтобы вы могли присоединиться на свой собственный сервер через список серверов, ваш маршрутизатор должен поддерживать NAT-loopback, но эту функцию поддерживают не многие домашние маршрутизаторы.
|
||||
|
||||
---
|
||||
|
||||
## **Разнообразный**
|
||||
|
||||
---
|
||||
|
||||
### **Где я могу найти код?**
|
||||
|
||||
Весь исходный код можно найти на нашем [GitHub](https://github.com/BeamMP). Прежде чем что-либо делать, помните, что код подчиняется нашим [Условиям использования](https://forum.beammp.com/t/terms-of-use-v1-0/43) и лицензиям:
|
||||
|
||||
Код | Лицензия
|
||||
--- | :-:
|
||||
Сервер | [ЛИЦЕНЗИЯ](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)
|
||||
|
||||
---
|
||||
|
||||
### **Я нашел ошибку или эксплойт, что мне делать?**
|
||||
|
||||
Если проблема связана с кодом, и вы знаете, как использовать 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).
|
||||
@@ -0,0 +1,25 @@
|
||||
# Как узнать IP моего Сервера?
|
||||
|
||||
## Для серверов VPS-хостинга
|
||||
|
||||
Если вы размещаете сервер с помощью одного из наших партнерских хостинговых сервисов, IP будет опубликован в соответствующем интерфейсе управления сервером. Вы также можете найти IP для вашего сервера(ов) на веб-сайте [Keymaster](https://keymaster.beammp.com/login).
|
||||
|
||||
## Для домашних серверов
|
||||
|
||||
Для серверов, размещенных дома, откройте [whatsmyip.org](https://whatsmyip.org) в браузере. Это выведет публичный адрес IPv4, с которым с вами связываются из Интернета.
|
||||
|
||||
Обратите внимание, что 127.0.0.1 — это локальный адрес (localhost), и его можно использовать только самому себе, если сервер запущен на том же компьютере. Если у вас всё ещё возникают проблемы с подключением к серверу, размещённому дома, проверьте [проброс портов](https://docs.beammp.com/server/port-forwarding/), а также используйте CheckBeamMP
|
||||
|
||||
<form action="https://check.beammp.com/api/v2/beammp" method="get" target="_blank">
|
||||
<label for="ip">IP-адрес:</label>
|
||||
<input type="text" id="ip" name="ip"><br>
|
||||
<label for="port">Порт:</label>
|
||||
<input type="text" id="port" name="port"><br>
|
||||
<input type="submit" value="CheckBeamMP">
|
||||
</form>
|
||||
|
||||
## Как проверить наличие CGNAT?
|
||||
|
||||
Взгляните на [эту страницу](https://docs.beammp.com/FAQ/How-to-check-for-CGNAT/) , чтобы определить, можете ли вы разместить сервер дома или нет.
|
||||
|
||||
Теги: IP, Сервер, Сбой Подключения, 10060/10061
|
||||
@@ -0,0 +1,13 @@
|
||||
!!! Внимание! "Сайт находится в стадии разработки!"
|
||||
|
||||
```
|
||||
Работа над этим сайтом активно ведётся.
|
||||
|
||||
Считаете, что можете помочь? Пожалуйста, сделайте это, нажав на страницу с изображением карандаша справа!
|
||||
|
||||
Это можно сделать и на любой странице.
|
||||
```
|
||||
|
||||
# Фрагменты кода CEF для BeamNG.drive
|
||||
|
||||
список дел(to-do)
|
||||
@@ -39,14 +39,14 @@ ui\modules\apps\ExampleApp\app.html
|
||||
|
||||
<span style="display: block">Messages:</span>
|
||||
|
||||
<!-- Scroll Area -->
|
||||
<!-- Область прокрутки -->
|
||||
<ul bng-nav-scroll style="margin: 0; padding: 0; overflow-y: auto; width: 100%; height: 100%; background-color: #37373740;">
|
||||
|
||||
<!-- Iterate over the messages and display them -->
|
||||
<!-- Перебор сообщений и их отображение -->
|
||||
<li ng-repeat="message in messages track by $index" style="display: flex; align-items: center; height: 35px;">
|
||||
<span style="padding: 0 0.2em; width: 100%;">{{ message }}</span>
|
||||
|
||||
<!-- Button to delete the message, this calls the `deleteMessage` function in `app.js` -->
|
||||
<!-- Кнопка для удаления сообщения, вызывает функцию `deleteMessage` в `app.js` -->
|
||||
<md-button md-no-ink class="md-icon-button md-warn" ng-click="deleteMessage($index)">
|
||||
<md-icon class="material-icons">delete</md-icon>
|
||||
</md-button>
|
||||
@@ -56,7 +56,7 @@ ui\modules\apps\ExampleApp\app.html
|
||||
</div>
|
||||
```
|
||||
|
||||
Здесь вы можете увидеть тег `<span>` , отображающий передачу вашего транспортного средства, входные данные, используемые для отправки сообщения функции `sendMessage()` в Javascript, и повторяющийся тег `<li>` использующий <b>ng-repeat</b> для переменной `messages` , расположенной в Javascript.
|
||||
Здесь вы можете увидеть тег `<span>`, отображающий передачу вашего транспортного средства, входные данные, используемые для отправки сообщения функции `sendMessage()` в Javascript, и повторяющийся тег `<li>` использующий <b>ng-repeat</b> для переменной `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')
|
||||
}])
|
||||
```
|
||||
|
||||
Обратите внимание на использование <b>$scope{/b0} . Это очень важно, поскольку вам нужно будет определить переменные и функции в {b1}$scope</b> , чтобы иметь возможность доступа к ним из <b>Html</b> внутри любого тега <b>ng-*</b> . Таким образом, в этом примере после выполнения функции `sendMessage()` из <b>Html</b> она отправит его в файл lua, расположенный в каталоге расширений мода, и выполнит функцию `modifyMessage()` внутри этого файла lua.
|
||||
Обратите внимание на использование <b>$scope{/b0}. Это очень важно, поскольку вам нужно будет определить переменные и функции в {b1}$scope</b>, чтобы иметь возможность доступа к ним из <b>Html</b> внутри любого тега <b>ng-*</b>. Таким образом, в этом примере после выполнения функции `sendMessage()` из <b>Html</b> она отправит его в файл lua, расположенный в каталоге расширений мода, и выполнит функцию `modifyMessage()` внутри этого файла lua.
|
||||
|
||||
Пример того, как может выглядеть сторона lua:
|
||||
|
||||
@@ -134,7 +135,7 @@ end
|
||||
|
||||
^ Это упрощенная версия lua, просто показывающая функцию.
|
||||
|
||||
Основное внимание здесь уделяется использованию <b>guihooks.trigger</b> , который запускает событие AngularJS, определенное с помощью `$scope.$on()` . Как вы можете видеть в самом низу файла Javascript, событие называется MessageReady и будет выполнено функцией <b>guihooks.trigger</b> с полезной нагрузкой сообщения, а затем будет помещено в переменную `$scope.messages` для отображения тегом li с помощью <b>ng-repeat</b> в файле <b>Html.</b>
|
||||
Основное внимание здесь уделяется использованию <b>guihooks.trigger</b>, который запускает событие AngularJS, определенное с помощью `$scope.$on()`. Как вы можете видеть в самом низу файла Javascript, событие называется MessageReady и будет выполнено функцией <b>guihooks.trigger</b> с полезной нагрузкой сообщения, а затем будет помещено в переменную `$scope.messages` для отображения тегом li с помощью <b>ng-repeat</b> в файле <b>Html</b>.
|
||||
|
||||
Полный файл lua находится ниже
|
||||
|
||||
@@ -144,15 +145,15 @@ 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")
|
||||
@@ -162,7 +163,7 @@ local function onExtensionUnloaded()
|
||||
log('D', "onExtensionUnloaded", "Called")
|
||||
end
|
||||
|
||||
-- Custom Functions
|
||||
-- Пользовательские функции
|
||||
--------------------------------------------
|
||||
local function onActionKeyDown()
|
||||
log('D', "onActionKeyDown", "Pressed!")
|
||||
@@ -171,8 +172,8 @@ end
|
||||
local function onVehicleExtensionLoaded(vehID)
|
||||
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"
|
||||
@@ -186,7 +187,7 @@ local function modifyMessage(message)
|
||||
guihooks.trigger('MessageReady', message)
|
||||
end
|
||||
|
||||
-- Export Interface
|
||||
-- Экспорт интерфейса
|
||||
--------------------------------------------
|
||||
M.onExtensionLoaded = onExtensionLoaded
|
||||
M.onExtensionUnloaded = onExtensionUnloaded
|
||||
@@ -195,13 +196,13 @@ M.onActionKeyDown = onActionKeyDown
|
||||
M.onVehicleExtensionLoaded = onVehicleExtensionLoaded
|
||||
M.modifyMessage = modifyMessage
|
||||
|
||||
--[[ Other functions could include:
|
||||
--[[ Другие функции могут включать:
|
||||
- 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
|
||||
}
|
||||
```
|
||||
|
||||
Директива должна быть такой же, как в файле <b>Javascript.</b>
|
||||
Директива должна быть такой же, как в файле <b>Javascript</b>
|
||||
|
||||
# Функции Javascript, предоставляемые BeamNG для UI-приложений
|
||||
|
||||
@@ -260,7 +261,7 @@ ui\modules\apps\ExampleApp\app.json
|
||||
bngApi.engineLua("lua_path.function()")
|
||||
```
|
||||
|
||||
Полезно для запуска функции lua с аргументами или без них.
|
||||
Полезно для запуска функции lua с аргументами или без них
|
||||
|
||||
# Функции Lua, предоставляемые BeamNG для UI-приложений
|
||||
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
---
|
||||
hide:
|
||||
- навигация
|
||||
---
|
||||
|
||||
# Добро пожаловать в Сообщество BeamMP!
|
||||
|
||||
{width="450"} {width="450"}
|
||||
|
||||
## Наши страницы в социальных сетях
|
||||
|
||||
!!!сбой ""
|
||||
|
||||
```
|
||||
BeamMP Форум - [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)
|
||||
@@ -0,0 +1,53 @@
|
||||
---
|
||||
hide:
|
||||
- навигация
|
||||
---
|
||||
|
||||
# Правила сообщества BeamMP
|
||||
|
||||
!!! info BeamMP Персонал не обязан строго модерировать эти правила и может действовать по своему усмотрению. В дополнение к этим правилам применяются и соблюдаются [Правила Сообщества](https://discord.com/guidelines/) и [Условия Обслуживания](https://discord.com/terms/) Discord.
|
||||
|
||||
## Общие Правила BeamMP (Применяются к Discord, Форуму и Игре)
|
||||
|
||||
1. Никакой Дискриминации (например, сексизма, расизма и т. д.) :material-information-outline:{ title="Сюда входит использование расовых/сексуальных оскорблений или другой лексики, направленной против отдельного человека или группы людей, как напрямую, так и с намерением сделать это." }
|
||||
2. Никаких Издевательств или Притеснений :material-information-outline:{ title="Сюда входит нацеливание на отдельных лиц с использованием нежелательных действий, непрошеных личных сообщений или нацеливание на них с помощью сообщений, изображений или устного общения." }
|
||||
3. Никакого NSFW, Оскорбительного или Вредоносного Контента :material-information-outline:{ title="Сюда входит контент, содержащий вредоносные ссылки, наготу, порнографию, чрезмерную ненормативную лексику или материалы, которые иным образом являются оскорбительными, вредоносными и/или иным образом не подходят для общественных мест." }
|
||||
4. Запрет на Рассылку Спама в Текстовых/Голосовых Каналах или Сообщениях :material-information-outline:{ title="Сюда входит создание нескольких сообщений или тем, рассылка спама одинаковыми или похожими сообщениями, а также злоупотребление голосовыми каналами связи или другие действия, включающие спам-присоединение/выход из сообщества." }
|
||||
5. Говорите по-Английски :material-information-outline:{ title="Вся коммуникация в BeamMP должна вестись на английском языке, где это возможно, за исключением отдельных областей, обозначенных иным образом." }
|
||||
6. Никаких Ненадлежащих Профилей :material-information-outline:{ title="Сюда входят имена профилей, фотографии, биографии или другой контролируемый пользователем контент, который не соответствует правилам и условиям BeamMP/BeamNG/Discord." }
|
||||
7. Запрет на Доксинг :material-information-outline:{ title="Запрет на публикацию личной информации («доксинг») (включая, помимо прочего, настоящие имена, адреса, адреса электронной почты, пароли, информацию о банковских счетах и кредитных картах и т. д.)" }
|
||||
8. Никакой Политики :material-information-outline:{ title="Сюда входит обсуждение прошлых или текущих мировых событий за пределами BeamMP/BeamNG или игр в целом. Существуют места для обоснованного обсуждения этих тем, но BeamMP не входит в их число." }
|
||||
9. Никакой Рекламы не Относящейся к BeamMP/BeamNG Контенту :material-information-outline:{ title="Сюда входят не относящиеся к BeamMP сообщества, каналы социальных сетей или другие внешние ссылки. Это относится к публикациям в сообществе BeamMP, а также к отправке пользователям незапрошенных DM в целях личной рекламы." }
|
||||
10. Не Выдавайте Себя за Сотрудников :material-information-outline:{ title="Это включает в себя выдачу себя за сотрудника BeamMP или утверждение, что у вас есть способности, связанные с должностью сотрудника. Это также включает в себя имитацию сотрудников." }
|
||||
11. Никакой Эксплуатации :material-information-outline:{ title="Это включает в себя эксплуатацию любых ошибок или упущений для личной выгоды или для оказания негативного влияния на опыт других." }
|
||||
12. Категорически запрещается делиться ключами Authkey и использовать альтернативные учетные записи с целью увеличения количества ключей сверх установленного бесплатного лимита.
|
||||
13. Соблюдайте Все Указанные TOS :material-information-outline:{ title="Это важно, поскольку для использования нашего сервера Discord также необходимо соблюдать такие ограничения, как возрастное ограничение Discord (13+)." }
|
||||
14. Уважайте Всех :material-information-outline:{ title="Этого не стоит говорить, но вам нужно уважать всех вокруг вас и вести себя соответственно." }
|
||||
15. Придерживайтесь темы категории или канала. :material-information-outline:{ title="Это не должно быть сказано, но ваш контент должен соответствовать теме области, в которой вы публикуете информацию. Например, канал поддержки должен помогать людям или использоваться при поиске помощи." }
|
||||
16. Никаких излишних Заглавных Букв или Реакций/Эмодзи :material-information-outline:{ title="Пользователи должны воздерживаться от чрезмерного использования заглавных букв или эмодзи/реакций, чтобы не затемнять суть вопроса." }
|
||||
17. Перед тем, как оставлять сообщение в разделах поддержки, ознакомьтесь с [Часто Задаваемыми Вопросами по BeamMP](../../support/player-faq.md) и [Часто Задаваемыми Вопросами по Сообществу BeamMP](https://forum.beammp.com/c/faq/35).
|
||||
|
||||
## Правила Discord
|
||||
|
||||
1. Все Вышеуказанные Правила Применяются Здесь :material-information-outline:{ title="Все правила, упомянутые в этом документе, применяются к голосовым чатам." }
|
||||
2. Соблюдайте Условия и Правила Discord :material-information-outline:{ title="Соблюдайте все правила, изложенные Discord в Условиях и правилах" }
|
||||
3. Никаких Аудио/Трансляций NSFW :material-information-outline:{ title="Players should not stream any content that violates BeamMP rules and Discord TOS." }
|
||||
4. Вышеуказанное правило распространяется на игорные Сервисы/Веб-сайты.
|
||||
5. Не Используйте Чрезмерный Звук :material-information-outline:{ title="Excessively using soundboards, playing loud music or other uses of audio channels to intentionally agitate or target others is prohibited." }
|
||||
6. Не Спамьте Входами/Выходами :material-information-outline:{ title="Most users will have sound effects enabled, do not join and leave voice-chats rapidly." }
|
||||
7. Не Приставайте к Другим (`@'ing`) :material-information-outline:{ title="Это включает в себя повторные просьбы к другим дать ответ после того, как вас проигнорировали или сказали "нет"." }
|
||||
8. Держите команды для ботов в предназначенных для этого каналах.
|
||||
9. Никакой Ролевой Игры :material-information-outline:{ title="Это сделано для предотвращения проблем, возникающих из-за отсутствия контекста, или для предотвращения обхода пользователями определенных правил." }
|
||||
10. Не просите пользователей обращаться к вам в личные сообщения за помощью. Все вопросы, связанные с поддержкой, обсуждайте в специальном разделе поддержки на сервере BeamMP в Discord.
|
||||
11. Не предлагайте подключиться к компьютеру другого пользователя и воздерживайтесь от отправки неоднозначных, потенциально вредоносных и/или опасных файлов или расширений.
|
||||
12. Не давайте инструкций и/или ссылок о том, как скачивать пиратские версии, приобретать незаконные копии программного обеспечения, взламывать учетные записи (Beaming рус. "биминг") или использовать платные модификации.
|
||||
13. Не рекламируйте контент, не связанный с BeamNG/BeamMP. Отправлять медиа с вашего собственного канала разрешается только в специально предназначенном [медиа-канале](https://discord.com/channels/601558901657305098/705427325646274680).
|
||||
14. Следуйте указаниям сотрудников. Если вы считаете, что сотрудник злоупотребляет своей властью, отправьте личное сообщение их руководителю или менеджеру проекта.
|
||||
|
||||
## Как обжаловать действия против вас:
|
||||
|
||||
### Апелляции по запретам можно подавать на <a href="https://docs.google.com/forms/d/1MaTPKM-MHQU5lUtxeOKz3C7OoI6Xbu5RX5AJdX-UOz4" class="inline-onebox">Ban Appeal - BeamMP</a>.
|
||||
|
||||
Все апелляции на бан тщательно расследуются с участием как минимум двух (2) членов команды персонала/модераторов, которые не были вовлечены в рассматриваемое дело. Выдавший апелляцию сотрудник будет иметь право комментировать, но не будет иным образом участвовать в принятии решения по апелляции. Эти результаты апелляции являются окончательными. BeamMP оставляет за собой право разрешать или не разрешать членам, как они сочтут нужным, в соответствии с Правилами Сообщества BeamMP (см. выше), [Discord ToS](https://discord.com/terms) и другими факторами.
|
||||
|
||||
!!! warning В случае принятия мер против вас запрещено создавать новую учётную запись Discord или BeamMP для обхода бана.
|
||||
@@ -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).
|
||||
|
||||
@@ -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. | Программа запуска не смогла прочитать информацию об игре (каталог игры, каталог профиля, версию и т. д.) в записи реестра. | Эта ошибка чаще всего появляется у пользователей с **пиратскими копиями** игры. Если вы купили игру, запустите ее хотя бы один раз, чтобы были созданы значения реестра.
|
||||
|
||||
@@ -0,0 +1,163 @@
|
||||
# Начиная
|
||||
|
||||
## **1. Совместимость**
|
||||
|
||||
BeamMP полностью совместим с Windows и Linux, совместимость с MacOS находится в разработке. Однако Linux и MacOS являются вторичными платформами, поэтому следует ожидать ошибок.
|
||||
|
||||
!!!предупреждение
|
||||
|
||||
```
|
||||
BeamMP не будет работать с пиратскими или устаревшими версиями BeamNG.drive.
|
||||
Служба поддержки BeamMP не оказывает помощь по вопросам, связанным с пиратскими/устаревшими копиями.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## **2. Установка**
|
||||
|
||||
### **2а. Установка Windows**
|
||||
|
||||
!!!примечание
|
||||
|
||||
```
|
||||
По состоянию на 1 апреля 2026 года, согласно Windows Defender SmartScreen, установщик MSI является «неопознанным приложением».
|
||||
|
||||
Чтобы проигнорировать это предупреждение, нажмите «Подробнее», а затем нажмите «Запустить в любом случае».
|
||||
```
|
||||
|
||||
1. Перейдите на [сайт beammp.com](https://beammp.com/) и нажмите кнопку «Скачать сейчас».
|
||||
2. Запустите установщик `BeamMP_Installer.msi` и следуйте инструкциям.
|
||||
3. Значок BeamMP Launcher должен появиться на рабочем столе. Если нет, просто введите «BeamMP» в строку поиска Windows.
|
||||
|
||||
!!!примечание
|
||||
|
||||
```
|
||||
Поскольку при загрузке на карту с множеством созданных транспортных средств подключение может занять больше времени, чем ожидалось.
|
||||
```
|
||||
|
||||
### **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
|
||||
```
|
||||
|
||||
!!!примечание ""
|
||||
|
||||
```
|
||||
Если во время сборки не хватит оперативной памяти, можно исключить параметр --parallel — в этом случае сборка будет выполняться только в одном потоке процессора, что позволит сократить объем используемой оперативной памяти.
|
||||
```
|
||||
|
||||
!!!примечание ""
|
||||
|
||||
```
|
||||
Не указывая `-DCMAKE_BUILD_TYPE=Release`, вы создаете отладочную версию, которая больше по размеру файла, но не содержит ошибки, из-за которой программа запуска может подключиться к серверу только один раз.
|
||||
```
|
||||
|
||||
!!!примечание "Пользователи 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 каждый раз при выпуске обновления лаунчера.
|
||||
|
||||
!!! совет "Добавление шрифта эмодзи для получения эмодзи в тексте"
|
||||
|
||||
```
|
||||
Для того чтобы эмодзи отображались в списке серверов (как часть пользовательского имени сервера) или во внутриигровом чате, вам нужен шрифт, содержащий эмодзи.
|
||||
|
||||
Это можно сделать, например, добавив [Linux-версию шрифта эмодзи Segoe-UI для Windows](https://github.com/mrbvrz/segoe-ui-linux)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## **3. Использование BeamMP**
|
||||
|
||||
1. После запуска лаунчера вы увидите окно терминала. Вскоре после этого должен запуститься стандартный лаунчер BeamNG. **Не** закрывайте окно терминала.
|
||||
2. В главном меню BeamNG.drive нажмите кнопку `Repository` и убедитесь, что включен <strong>только</strong> мод <code>multiplayerbeammp</code> .
|
||||
3. Выйдите в главное меню, нажмите «Ещё..», затем кнопку «Мультиплеер», чтобы начать игру по сети.
|
||||
4. Вам будет предложено войти или играть в качестве гостя (не все серверы допускают гостей). Вы можете создать учетную запись на нашем [форуме](https://forum.beammp.com), а затем войти в BeamMP с теми же учетными данными.
|
||||
5. Выберите любой понравившийся вам сервер и нажмите `Connect`. Наслаждайтесь!
|
||||
|
||||
---
|
||||
|
||||
## **4. Известные проблемы**
|
||||
|
||||
- Нативный 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).
|
||||
@@ -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
|
||||
```
|
||||
@@ -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 <port>` или `-p` | Измените порт прослушивания по умолчанию на `<port>`. Это также должно быть настроено в игре
|
||||
`--verbose` или `-v` | Подробный режим, выводит отладочные сообщения
|
||||
`--no-download` | Пропустить загрузку и установку мода BeamMP Lua
|
||||
`--no-update` | Пропустить применение обновлений лаунчера (необходимо выполнить обновление вручную)
|
||||
`--no-launch` | Пропустить запуск игры (игру необходимо запустить вручную)
|
||||
`--dev` | Режим разработчика, то же самое, что и --verbose --no-download --no-launch --no-update
|
||||
`--game <args...>` или `-- <args...>` | Передает аргументы в игру
|
||||
|
||||
## Клонирование репозитория 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` в каждом репозитории обычно также содержит шаги сборки (для скомпилированных проектов).
|
||||
@@ -0,0 +1,21 @@
|
||||
---
|
||||
title: Руководства
|
||||
description: Этот набор страниц содержит некоторые основные руководства по BeamMP.
|
||||
status: новый
|
||||
---
|
||||
|
||||
!!! внимание "Этот сайт находится в стадии разработки!"
|
||||
|
||||
```
|
||||
Над этим сайтом ведется активная работа.
|
||||
|
||||
Чувствуете, что можете помочь? Пожалуйста, сделайте это, нажав на страницу с карандашом справа!
|
||||
|
||||
Это можно сделать на любой странице.
|
||||
```
|
||||
|
||||
# Руководства по Разработке BeamMP
|
||||
|
||||
Эта страница будет представлять собой введение и предисловие к созданию клиентского и серверного контента.
|
||||
|
||||
Эту страницу еще нужно доработать.
|
||||
@@ -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')
|
||||
|
||||
+20
-13
@@ -1,29 +1,36 @@
|
||||
---
|
||||
hide:
|
||||
- navigation
|
||||
- навигация
|
||||
---
|
||||
!!! warning "Этот сайт находится в стадии разработки!"
|
||||
|
||||
Над этим сайтом активно ведется работа.
|
||||
!!! внимание "Этот сайт находится в стадии разработки!"
|
||||
|
||||
Вы считаете, что можете помочь? Пожалуйста, нажмите на страницу с карандашом справа!
|
||||
```
|
||||
Над этим сайтом ведется активная работа.
|
||||
|
||||
Это также можно сделать на любой другой странице.
|
||||
Чувствуете, что можете помочь? Пожалуйста, сделайте это, нажав на страницу с карандашом справа!
|
||||
|
||||
Это можно сделать на любой странице.
|
||||
```
|
||||
|
||||
# Добро пожаловать в BeamMP Docs! :tada:
|
||||
|
||||
Добро пожаловать в новый и улучшенный центр документации для BeamMP! Независимо от того, являетесь ли вы игроком, владельцем сервера или разработчиком, у нас есть все необходимые ресурсы, чтобы улучшить ваш опыт многопользовательской игры в BeamNG.drive.
|
||||
Добро пожаловать в новый и улучшенный центр документации для BeamMP! Независимо от того, являетесь ли вы игроком, владельцем сервера или разработчиком, у нас есть ресурсы, необходимые для улучшения вашего опыта многопользовательской игры BeamNG.drive.
|
||||
|
||||
## Для Игроков
|
||||
## Для игроков
|
||||
|
||||
Новичок в BeamMP? Ознакомьтесь с нашим [Руководством по Началу](../game/getting-started.md), чтобы помочь вам стартовать и получить максимум удовольствия от многопользовательских приключений.
|
||||
Впервые в BeamMP? Ознакомьтесь с нашей страницей [Начало работы](../game/getting-started.md), которая поможет вам быстро начать и получить максимум от игры по сети. По общим вопросам и проблемам, пожалуйста, ознакомьтесь с [Часто задаваемыми вопросами игроков](../FAQ/player-faq.md).
|
||||
|
||||
## Для Владельцев Серверов
|
||||
## Для владельцев серверов
|
||||
|
||||
Хотите создать свой собственный сервер BeamMP? Наше подробное руководство [здесь](../server/create-a-server.md) проведет вас через процесс, обеспечивая вас всеми необходимыми инструментами и знаниями для эффективной настройки сервера.
|
||||
Думаете о создании собственного сервера BeamMP? Наше подробное [руководство](../server/create-a-server.md) проведет вас через весь процесс, гарантируя, что у вас будут все инструменты и знания для эффективной настройки сервера.
|
||||
|
||||
## Для Разработчиков
|
||||
## Для разработчиков
|
||||
|
||||
Узнайте все тонкости создания ресурсов для сервера BeamMP в нашем [Руководстве по Разработке Ресурсов](../guides/mod-creation/server/getting-started.md).
|
||||
Откройте для себя тонкости создания ресурсов для сервера BeamMP в нашем [Руководстве по разработке ресурсов](../guides/mod-creation/server/getting-started.md) .
|
||||
|
||||
Мы готовим для вас захватывающие обновления, включая новую главную страницу, разработанную для улучшения вашего опыта просмотра. Следите за новостями! :slight_smile:
|
||||
На горизонте нас ждут захватывающие обновления, включая совершенно новую домашнюю страницу, разработанную для улучшения вашего опыта просмотра. Оставайтесь с нами, чтобы узнать больше! :slight_smile:
|
||||
|
||||
## Правила Cообщества
|
||||
|
||||
Ознакомьтесь с [Правилами Cообщества](https://docs.beammp.com/community/rules/) BeamMP и узнайте, как обжаловать блокировку.
|
||||
|
||||
@@ -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 также позволяет вам создавать собственные плагины на стороне клиента. Мы предоставили несколько функций, которые вы можете использовать для связи с другими многопользовательскими модами и другими игроками через сервер.
|
||||
|
||||
|
||||
@@ -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/<plugin>` (не в его подпапке) вызовет перезагрузку состояния Lua и событие `onFileChanged` .
|
||||
Любое изменение файла в каталоге `Resources/Server/<plugin>` (не в его подпапке) вызовет перезагрузку состояния Lua и событие `onFileChanged`.
|
||||
|
||||
Любой файл в подпапках `Resources/Server/<plugin>` , например `Resources/Server/<plugin>/lua/stuff.lua` , не вызовет перезагрузку состояния, а только вызовет событие `onFileChanged` . Таким образом, вы можете перезагрузить его самостоятельно правильным образом (или не перезагружать).
|
||||
Любой файл в подпапках `Resources/Server/<plugin>`, например `Resources/Server/<plugin>/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 в секунду), и подумайте о том, какое значение тайм-аута таймера событий для этого (которое указывается в миллисекундах). Также имейте в виду, что вместо имени функции он принимает имя события, поэтому вам придется также зарегистрировать событие.
|
||||
|
||||
Пример:
|
||||
|
||||
|
||||
@@ -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))` вернет имя первого игрока вашего сервера.
|
||||
|
||||
`<PlayersServerID>` начинается с 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()
|
||||
|
||||
|
||||
@@ -0,0 +1,295 @@
|
||||
# Установка Сервера
|
||||
|
||||
## **Создание Сервера**
|
||||
|
||||
Основы настройки серверного приложения
|
||||
|
||||
---
|
||||
|
||||
### **Обзор**
|
||||
|
||||
**Создание домашнего сервера бесплатно, размещение его на VPS проще и безопаснее**
|
||||
|
||||
Серверы являются неотъемлемой частью BeamMP; игроки подключаются друг к другу через сервер. Они работают нативно на Windows и Linux.
|
||||
|
||||
Вы можете создавать частные серверы, к которым смогут присоединиться только приглашенные вами люди, или публичные серверы, которые будут отображаться в нашем официальном списке серверов.
|
||||
|
||||
Запуск сервера — это процесс из нескольких шагов! Если у вас возникнут какие-либо проблемы, смело задавайте их на нашем [форуме](https://forum.beammp.com) или на нашем [сервере Discord](https://discord.gg/beammp) в канале `#support`. Также обратитесь к разделу [«Обслуживание сервера»](server-maintenance.md) для получения дополнительной информации.
|
||||
|
||||
Перед использованием обязательно прочтите [ЛИЦЕНЗИЮ](https://raw.githubusercontent.com/BeamMP/BeamMP-Server/master/LICENSE) сервера.
|
||||
|
||||
Примечание: *сервер поддерживает только IPv4. Если вы не знаете, какой у вас IPv4, посмотрите на IP-адрес, который вы видите на [*whatsmyip.org*](https://www.whatsmyip.org/) — если он содержит* двоеточия `_:_` *, это **IPv6**. В этом случае вам следует дополнительно выяснить, есть ли у вас IPv4. Вы можете позвонить своему интернет-провайдеру, чтобы узнать это, или спросить кого-то, кто живет с вами (если они разбираются в технологиях, они могут знать!). Поддержка IPv6 планируется.*
|
||||
|
||||
## Настройка Сервера
|
||||
|
||||
Настройка состоит из следующих шагов, вам следует выполнить их все.
|
||||
|
||||
### **1. Переадресация портов**
|
||||
|
||||
!!! информация
|
||||
|
||||
```
|
||||
Если вы используете VPS (виртуальный частный сервер), корневой сервер или планируете разместить этот сервер локально (с игроками в одном доме с вами), вы можете пропустить этот шаг.
|
||||
Этот шаг необходим, если вы хотите, чтобы кто-то **вне** вашего домохозяйства присоединился к вашему домашнему серверу (за пределами вашей локальной сети).
|
||||
|
||||
!!! опасность ":material-scale-balance: ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ:"
|
||||
|
||||
**Переадресация портов — это риск**.
|
||||
|
||||
Переадресуя порты, вы осознаете риски открытия портов в вашей домашней сети для публики и, следовательно, лишаете себя права привлекать BeamMP к ответственности за **любой** ущерб, который может быть причинен вам или вашему домохозяйству.
|
||||
|
||||
Мы не несем ответственности за какой-либо контент на любых внешних связанных сервисах или веб-сайтах.
|
||||
|
||||
Поэтому рекомендуется разместить сервер на одном из наших партнерских сервисов!
|
||||
|
||||
*Пожалуйста, ознакомьтесь с [этим руководством по переадресации портов](port-forwarding.md)*
|
||||
```
|
||||
|
||||
#### Партнерские услуги хостинга (платные):
|
||||
|
||||
- [Хостинг Горизонта](https://hrzn.link/beammp)
|
||||
- [RackGenius](https://rackgeni.us/beammp-plans)
|
||||
- [Подключить хостинг](https://connecthosting.net/beammp)
|
||||
- [Хостинг Assetto](https://assettohosting.com/en/games/beamng)
|
||||
- [ZAP-Хостинг](https://zap-hosting.com/itsbeammp)
|
||||
- [HostHavoc](https://hosthavoc.com/)
|
||||
- [PedalHost](https://pedal.host/)
|
||||
- [Хостинг Vyper](https://vyperhosting.com/r/beammp)
|
||||
- [BisectHosting](https://www.bisecthosting.com/beammp-server-hosting)
|
||||
- [Хостинг Four Seasons](https://fourseasonshosting.com)
|
||||
- [Vertuo Хостинг](https://vertuohosting.com)
|
||||
- [Винхеберг](https://winheberg.fr/offres/gaming/beammp?lang=en)
|
||||
- [Ваббанод](https://wabbanode.com/partner/beammp)
|
||||
- [Айcлайн Хостинг](https://iceline-hosting.com/games/beammp)
|
||||
|
||||
#### 1.1 Брандмауэр
|
||||
|
||||
В зависимости от настроек вам может потребоваться разрешить BeamMP-Server проходить через ваш брандмауэр. Это касается Windows (отключение брандмауэра обычно **не** работает) и многих предустановленных серверов Linux.
|
||||
|
||||
Там вы хотите разрешить BeamMP-Server через брандмауэр, **как входящие, так и исходящие соединения**, и **как TCP, так и UDP**. Если ваш брандмауэр запрашивает порт вместо этого, это должен быть тот же порт, который вы использовали на шаге «1. Переадресация портов» (обычно 30814).
|
||||
|
||||
Для более детализированного руководства, обратитесь к [этой странице документации](https://docs.beammp.com/FAQ/Defender-exclusions/). Если у вас остались проблемы, вы можете спросить о них на [Форуме](https://forum.beammp.com) или нашем [Discord сервере](https://discord.gg/beammp) в `#support` канале.
|
||||
|
||||
### **2. Получение ключа аутентификации**
|
||||
|
||||
«Ключ аутентификации», часто называемый «AuthKey», необходим для того, чтобы сделать **общедоступный** сервер доступным для списка серверов. Хотя рекомендуется добавлять authkey и к частным серверам. У вас есть ограниченное количество ключей. Один ключ может использоваться на одном сервере одновременно, поэтому вы не можете запустить два сервера одновременно с одним и тем же ключом. Дополнительные ключи можно получить, поддержав проект. Прочитайте [эту статью](https://docs.beammp.com/support/player-faq/) для получения дополнительной информации.
|
||||
|
||||
!!! предупреждение
|
||||
|
||||
```
|
||||
НИКОГДА НЕ ДЕЛИТЕСЬ ЭТИМ КЛЮЧОМ И НЕ ПОКАЗЫВАЙТЕ ЕГО НИКОМУ. ОТНОСИТЕСЬ К НЕМУ КАК К ПАРОЛЮ.
|
||||
```
|
||||
|
||||
Для этого шага вам понадобится учетная запись [Discord](https://discord.com). Это необходимо для предотвращения спама.
|
||||
|
||||
#### 2.1. Доступ к странице ключей
|
||||
|
||||
Войдите в [Keymaster](https://beammp.com/keymaster) через Discord. На домашней странице Keymaster нажмите «Ключи» в левой части экрана:
|
||||
|
||||
|
||||
<figure markdown=""></figure>
|
||||
|
||||
#### 2.2 Создание ключа
|
||||
|
||||
Чтобы создать свой ключ, нажмите на зеленую кнопку «+» в правом верхнем углу.
|
||||
|
||||
|
||||
<figure markdown=""></figure>
|
||||
|
||||
#### 2.3. Заполнение ключевой информации
|
||||
|
||||
Далее заполните поле Имя сервера (это просто имя ключа, а не фактическое имя сервера в списке), затем нажмите «Создать». Пример:
|
||||
|
||||
|
||||
<figure class="image image_resized" style="width:44.84%;" markdown=""></figure>
|
||||
|
||||
В конечном итоге это должно выглядеть примерно так:
|
||||
|
||||
|
||||
<figure markdown=""></figure>
|
||||
|
||||
#### 2.4 Копирование ключа
|
||||
|
||||
Теперь скопируйте текст в поле «Ключ», в этом примере это `3173a2e-6az0-4542-a3p0-ddqq5ff95558` и сохраните его для следующего шага. Вы можете сделать это, щелкнув по буферу обмена справа от ключа:
|
||||
|
||||
|
||||
<figure markdown=""></figure>
|
||||
|
||||
### **3. Установка**
|
||||
|
||||
BeamMP-Server доступен для Windows и Linux. Следующие два раздела посвящены Windows и Linux.
|
||||
|
||||
#### 3.а. Установка на Windows
|
||||
|
||||
Для установки Linux см. следующий шаг.
|
||||
|
||||
Пожалуйста, убедитесь, что у вас перенаправлены порты, прежде чем пытаться разместить сервер дома! Без перенаправления портов вы не сможете разместить сервер для общественности!
|
||||
|
||||
1. Для запуска сервера убедитесь, что у вас установлены [Visual C++ Redistributables](https://aka.ms/vs/17/release/vc_redist.x64.exe).
|
||||
2. Загрузите исполняемый файл сервера с [beammp.com](https://www.beammp.com/). У вас должен получиться исполняемый файл, который называется примерно так: `BeamMP-Server.exe`.
|
||||
3. После загрузки создайте где-нибудь папку и поместите туда `BeamMP-Server.exe`. Это то место, где будет находиться ваш сервер.
|
||||
4. Запустите сервер один раз, дважды щелкнув по нему. Это сгенерирует все необходимые файлы для вас, как только вы увидите текст, вы можете закрыть его и перейти к следующему шагу. Вы должны увидеть файл `ServerConfig.toml` рядом с вашим `BeamMP-Server.exe`.
|
||||
5. (необязательно) Для быстрого доступа в будущем вы можете легко создать ярлык на рабочем столе для `BeamMP-Server.exe` используя **[Щелкните правой кнопкой мыши]** > **Отправить на** > **Рабочий стол (создать ярлык).**
|
||||
|
||||
Теперь перейдите к шагу [4. Конфигурация](#4-configuration).
|
||||
|
||||
#### 3.б. Установка на Linux
|
||||
|
||||
##### Использование нашей сборки (рекомендуется)
|
||||
|
||||
Этот шаг будет работать на всех дистрибутивах, для которых мы предоставляем [здесь](https://github.com/BeamMP/BeamMP-Server/releases/latest) файлы. Если у вас другой дистрибутив или архитектура, обратитесь к шагу «Сборка из исходного кода» ниже.
|
||||
|
||||
1. Убедитесь, что у вас установлены зависимости, перечисленные [здесь](https://github.com/BeamMP/BeamMP-Server#runtime-dependencies).
|
||||
2. Перейдите на сайт [beammp.com](https://beammp.com/) и нажмите кнопку «Загрузить сервер», вы будете перенаправлены на страницу релиза сервера на GitHub.
|
||||
3. Загрузите правильную версию для вашего дистрибутива. Для простоты с этого момента она будет называться `BeamMP-Server-xxx`, где `xxx` обозначает версию для используемого вами дистрибутива.
|
||||
4. После загрузки вы должны увидеть один файл с именем `BeamMP-Server-xxx`, среди прочих, которые вы можете пока проигнорировать. Создайте где-нибудь папку и поместите туда `BeamMP-Server-xxx`. Это то место, где будет находиться ваш сервер.
|
||||
5. Откройте терминал, перейдите в папку, в которую вы поместили `BeamMP-Server-xxx`, и выполните `chmod +x BeamMP-Server-xxx`. Это гарантирует, что у вас есть разрешения на его запуск.
|
||||
6. Запустите сервер один раз, запустив его с помощью `./BeamMP-Server-xxx`. Это сгенерирует все необходимые файлы для вас, как только вы увидите текст, вы можете закрыть его и перейти к следующему шагу. Вы должны увидеть файл `ServerConfig.toml` рядом с вашим `BeamMP-Server-xxx`.
|
||||
7. (необязательно) Настоятельно рекомендуется настроить пользователя с именем `beammpserver` (или похожим), поскольку мы НЕ рекомендуем запускать сервер как root, sudo или с вашей личной учетной записью пользователя. Затем вам следует предпринять шаги, чтобы убедиться, что вы запускаете сервер только как этот пользователь.
|
||||
|
||||
Теперь перейдите к шагу «4. Конфигурация».
|
||||
|
||||
##### Сборка из источника
|
||||
|
||||
Другие дистрибутивы в дополнение к тем, которые уже имеют [здесь](https://github.com/BeamMP/BeamMP-Server/releases/latest) двоичный файл, вероятно, тоже будут работать, но официально не поддерживаются. Если вы хотите собрать его самостоятельно, вы можете сделать это, загрузив исходный код на нашем [GitHub](https://github.com/BeamMP/BeamMP-Server), руководство можно найти [здесь](https://github.com/BeamMP/BeamMP-Server#build-instructions).
|
||||
|
||||
В конце обязательно запустите свой сервер один раз с помощью `./BeamMP-Server`, а затем переходите к следующему шагу.
|
||||
|
||||
### **4. Конфигурация**
|
||||
|
||||
Теперь, когда вы запустили сервер один раз, он должен был создать некоторые файлы и, вероятно, выдать одну или две ошибки. Это потому, что мы еще не закончили. В вашей папке должны быть эти файлы:
|
||||
|
||||
|
||||
<figure markdown=""></figure>
|
||||
|
||||
Они называются «ServerConfig.toml», «Server.log» и «BeamMP-Server.exe»! (В зависимости от ваших настроек вы можете не увидеть расширения [.toml] [.log] [.exe])
|
||||
|
||||
Откройте `ServerConfig.toml` с помощью текстового редактора, например `Notepad`. Это можно сделать с помощью [Правый клик] → «Открыть с помощью…» и выбора текстового редактора.
|
||||
|
||||
Вот пример конфигурации:
|
||||
|
||||
```TOML
|
||||
[General]
|
||||
Port = 30814
|
||||
AuthKey = "auth-key"
|
||||
AllowGuests = false
|
||||
LogChat = false
|
||||
Debug = false
|
||||
IP = "::"
|
||||
Private = true
|
||||
InformationPacket = true
|
||||
Name = "Test Server"
|
||||
Tags = "Freeroam,Modded,Racing,Police"
|
||||
MaxCars = 2
|
||||
MaxPlayers = 10
|
||||
Map = "/levels/ks_nord/info.json"
|
||||
Description = "Total Random Beam MP Server"
|
||||
ResourceFolder = "Resources"
|
||||
```
|
||||
|
||||
!!! информация
|
||||
|
||||
```
|
||||
Это ваш файл конфигурации. Он использует формат TOML. Дополнительную информацию об этом файле и переменных см. в разделе [Обслуживание сервера](server-maintenance.md).
|
||||
Ваш сервер **НЕ** будет отображаться в списке серверов, пока установлено значение `Private = true`. _Если_ вы хотите, чтобы он отображался в списке, установите значение **`Private = false`**.
|
||||
```
|
||||
|
||||
Пока что нас интересует только поле `AuthKey`. В кавычки `"` нужно вставить свой AuthKey, скопированный на первом шаге.
|
||||
|
||||
Для нашего примера ключ должен выглядеть следующим образом:
|
||||
|
||||
```TOML
|
||||
AuthKey = '3173a2e-6az0-4542-a3p0-ddqq5ff95558'
|
||||
```
|
||||
|
||||
Присвойте своему серверу имя в поле `Name`. Вы можете форматировать его с помощью цветов и других средств; подробности см. в [этом разделе о настройке имени](server-maintenance.md#customize-the-look-of-your-server-name) на странице обслуживания сервера.
|
||||
|
||||
Если вы выбрали другой **порт**, отличный от **30814**, обязательно замените его здесь в разделе `Port`.
|
||||
|
||||
### **5. Проверка**
|
||||
|
||||
Теперь снова запустите сервер и посмотрите, выдает ли он еще сообщения `[ERROR]` или `[WARN]`. Теперь сервер должен оставаться открытым. В следующих шагах (6.) ниже вы можете узнать, как присоединиться к серверу.
|
||||
|
||||
---
|
||||
|
||||
#### 5.1 Как добавить моды на свой сервер
|
||||
|
||||
Моды транспортных средств и моды карт устанавливаются по-разному, но оба требуют, чтобы вы поместили их в папку вашего сервера (`Resources/Client`). Просто перетащите любой мод, который вы хотите добавить, в эту папку.
|
||||
|
||||
!!! предупреждение
|
||||
|
||||
```
|
||||
Если вы получили сообщение «Готово» или «Начало» при попытке присоединиться к серверу после добавления модов, скорее всего, вы добавили на сервер несовместимый или сломанный мод.
|
||||
Несовместимость модов может также возникнуть между 2 или более модами. Если у вас установлены клиентские моды, проверьте [это руководство](../../FAQ/How-to-deactivate-mods.md) об удалении модов из вашей игры.
|
||||
```
|
||||
|
||||
#### 5.2 Общие моды
|
||||
|
||||
Если вы хотите добавить только модифицированные транспортные средства, вы можете поместить zip-файл мода в папку `Resources/Client`. Они будут автоматически загружены любым, кто присоединится к вашему серверу.
|
||||
|
||||
#### 5.3 Карты
|
||||
|
||||
Все стандартные карты (карты, которые не являются модами) работают сразу «из коробки» и не требуют установки. Вам нужно лишь изменить параметр `Map` в файле `ServerConfig.toml` на любое из [этих](server-maintenance.md#all-vanilla-maps-names). Для любых других, модифицированных карт, сделайте следующее:
|
||||
|
||||
1. Поместите `.zip`-файл вашей карты в папку вашего сервера (`Resources/Client`).
|
||||
2. Далее, загляните в zip-файл карты (не извлекайте его) и откройте папку `levels`. В этой папке должна быть просто еще одна папка с названием карты, например, «myawesomedriftmap2021». Обязательно скопируйте или запомните это название *точно так, как оно написано в названии этой папки.*
|
||||
3. Откройте `ServerConfig.toml`. В настройках `Map` вы должны увидеть `/levels/MAPNAME/info.json`, где `MAPNAME`, скорее всего, что-то вроде `gridmap_v2`. Теперь вам нужно заменить `MAPNAME` на имя папки из последнего шага, в том примере это было `myawesomedriftmap2021`. В итоге это должно выглядеть так (для этого примера) и ***должно*** иметь `/info.json` в конце.
|
||||
|
||||
```TOML
|
||||
Map = '/levels/myawesomedriftmap2021/info.json'
|
||||
```
|
||||
|
||||
Теперь, когда кто-то присоединится к вашему серверу, он должен автоматически загрузить карту и работать так, как и ожидалось.
|
||||
|
||||
**Если это НЕ работает**, установите карту в одиночную игру BeamNG.drive, запустите ее и войдите в карту. Затем откройте консоль, нажав клавишу `~` (*тильда*) (если у вас не американская раскладка клавиатуры, посмотрите на действие **Toggle System Console** в меню **Options > Controls > Bindings** в разделе **General Debug**), и запустите `print(getMissionFilename())`. Это должно показать вам имя для использования.
|
||||
|
||||
Вот и все! Ваша модифицированная карта теперь должна быть доступна для присоединения!
|
||||
|
||||
### **6. Как присоединиться к вашему серверу**
|
||||
|
||||
Как вы и другие игроки можете присоединиться к вашему серверу.
|
||||
|
||||
#### 6.a. Присоединение к собственному серверу (как частному, так и публичному)
|
||||
|
||||
Если ваш сервер размещен на том же ПК, на котором работает игра, вы должны присоединиться к серверу с помощью прямого подключения, для этого нажмите **вкладку Direct Connect** слева от списка серверов. Оставьте там информацию по умолчанию (должно быть 127.0.0.1 и соответствующий порт), затем нажмите Connect.
|
||||
|
||||
Если ваш сервер размещен на другом ПК в вашей локальной сети, вам необходимо найти локальный IP-адрес этой машины и напрямую подключиться, используя этот локальный IP-адрес.
|
||||
|
||||
Если ваш сервер размещен за пределами вашего дома (например, VPS), вам необходимо найти [публичный IP-адрес](https://whatismyipaddress.com/) этой машины и подключиться напрямую через него.
|
||||
|
||||
#### 6.б. Присоединение других людей к вашему приватному серверу
|
||||
|
||||
Вам необходимо предоставить другим пользователям публичный IP-адрес вашего сервера. Однако будьте осторожны, сообщая свой публичный IP-адрес незнакомцам! Чтобы присоединиться к вашему частному серверу, игроки должны перейти на **вкладку Direct Connect** в BeamMP, затем ввести свой IP и порт.
|
||||
|
||||
#### 6.c. Присоединение других людей к вашему публичному серверу
|
||||
|
||||
Чтобы присоединиться к вашему публичному серверу, они могут просто перейти к списку серверов, ввести имя сервера и нажать «подключиться». Если вы не уверены в имени своего сервера, это будет имя, которое вы указали в `ServerConfig.toml`. Убедитесь, что фильтры поиска отключены, а Карта установлена на «Любая», если вы не можете ее найти. Вы также можете проверить веб-сайт [Keymaster](https://beammp.com/keymaster) на предмет IP-адреса сервера.
|
||||
|
||||
Если вы или ваши друзья столкнулись с ошибкой «Сбой подключения!», проверьте окно запуска на наличие кодов вроде 10060, 10061, 10030. Это означает, что у вас либо есть CGNAT IPv4, либо вы сделали что-то неправильно на шаге **1 Переадресация портов** или **1.1. Межсетевой экран**. Чтобы проверить, есть ли у вас CGNAT IPv4, найдите WAN IP-адрес на интерфейсе маршрутизатора. Сравните его с вашим [публичным IP-адресом](https://www.whatsmyip.org/). Если они одинаковы, вы не находитесь за CGNAT. Поддержка IPv6 пока **НЕ** реализована.
|
||||
|
||||
### **7. Как проверить подключение вашего сервера BeamMP**
|
||||
|
||||
Введите публичный IPv4-адрес и порт сервера ниже, затем нажмите «CheckBeamMP».
|
||||
|
||||
<form action="https://check.beammp.com/api/v2/beammp" method="get" target="_blank">
|
||||
<label for="ip">IP-адрес:</label>
|
||||
<input type="text" id="ip" name="ip"><br>
|
||||
<label for="port">Порт:</label>
|
||||
<input type="text" id="port" name="port"><br>
|
||||
<input type="submit" value="CheckBeamMP">
|
||||
</form>
|
||||
|
||||
!!! предупреждение «Я хочу использовать VPN, например RadminVPN, Hamachi или аналогичный».
|
||||
|
||||
```
|
||||
BeamMP не поддерживает эти VPN, так как они часто вызывают проблемы. Одна из этих проблем — непереадресация трафика UDP. Чтобы решить эту проблему, обратитесь к разделу 1.
|
||||
|
||||
!!! вопрос «Но почему это работало в прошлом?»
|
||||
|
||||
Это происходит из-за того, что разработчики этих приложений обновляют свое программное обеспечение и вносят изменения, которые BeamMP не контролирует.
|
||||
Разработчики этих приложений должны обеспечить поддержку конкретных вариантов использования, таких как BeamMP-Server.
|
||||
```
|
||||
|
||||
## Все еще сталкиваетесь с проблемами?
|
||||
|
||||
Откройте тему на [форуме](https://forum.beammp.com) или на нашем [сервере Discord](https://discord.gg/beammp) в канале `#support`.
|
||||
@@ -0,0 +1,20 @@
|
||||
# Коды Ошибок
|
||||
|
||||
На этой странице содержатся все коды ошибок, которые может отображать сервер.
|
||||
|
||||
---
|
||||
|
||||
Код | Описание | Возможное решение
|
||||
--- | --- | ---
|
||||
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) .
|
||||
|
||||
!!! Примечание. Если вы немного знаете, как работают сети/сокеты, для любого другого кода, не указанного в этом списке, вы можете обратиться к [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) .
|
||||
@@ -0,0 +1,87 @@
|
||||
# Руководство Сервера
|
||||
|
||||
# Окружение
|
||||
|
||||
На сервер влияет состояние различных внешних параметров:
|
||||
|
||||
- Папка «Ресурсы»
|
||||
- ENV (переменные среды)
|
||||
- Аргументы командной строки
|
||||
- Файл ServerConfig.toml
|
||||
- Рабочий каталог
|
||||
|
||||
## Папка Ресурсов
|
||||
|
||||
Папка ресурсов создается при запуске сервера вместе с подкаталогами "Client" и "Server". Подкаталог "Server" принимает папки внутри себя, каждая из которых содержит как минимум один файл `.lua`. Каждая из этих папок в подкаталоге "Server" называется «плагином». Файлы `.lua`, содержащиеся в каталоге корневом каталоге плагина, перезагружаются на ходу при изменении. Подкаталог "Client" принимает *только* файлы `.zip`, которые загружаются при запуске сервера и, как предполагается, не изменяются во время выполнения.
|
||||
|
||||
## ОКРУЖАЮЩАЯ СРЕДА
|
||||
|
||||
### Общие Настройки
|
||||
|
||||
Начиная с версии 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).
|
||||
|
||||
### Настройки Провайдера
|
||||
|
||||
Эти переменные среды позволяют хостинг-провайдерам (и другим пользователям с большим количеством серверов), далее именуемым «провайдерами», перезаписывать определенные настройки, специфичные для провайдера.
|
||||
|
||||
#### `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` (начиная с версии 3.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"
|
||||
```
|
||||
|
||||
Что приведет к появлению сообщения об обновлении, например:
|
||||
|
||||
```
|
||||
NEW VERSION of the BeamMP-Server has been released: v5.0.2! Please follow the update guide here: https://example.com/update-guide
|
||||
```
|
||||
|
||||
Пожалуйста, постарайтесь четко разъяснить пользователям необходимость обновления и объясните, как это сделать.
|
||||
|
||||
## Аргументы командной строки
|
||||
|
||||
Запустите BeamMP Server с аргументом `--help` , чтобы узнать больше. Например: `./BeamMP-Server --help` .
|
||||
|
||||
## ServerConfig.toml
|
||||
|
||||
Этот файл генерируется при первом запуске. Комментарии внутри файла — самый современный способ понять, что делает каждая настройка.
|
||||
|
||||
## Рабочий каталог
|
||||
|
||||
Решающим фактором при определении места создания ServerConfig.toml, файлов журналов сервера и папки Resources является рабочий каталог сервера, а не местоположение исполняемого файла сервера.
|
||||
|
||||
# Ограничения
|
||||
|
||||
В Бэкэнде BeamMP действуют следующие ограничения, которые влияют на Серверы:
|
||||
|
||||
- Имя ограничено 250 символами
|
||||
- Описание ограничено 1000 символами
|
||||
- Карта ограничена 100 символами
|
||||
- Теги ограничены 100 символами
|
||||
@@ -0,0 +1,228 @@
|
||||
# Переадресация Портов
|
||||
|
||||
!!! опасность ":material-scale-balance: ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ:"
|
||||
|
||||
```
|
||||
**Переадресация портов — это риск**.
|
||||
|
||||
Используя переадресацию портов, вы осознаете риски открытия портов в вашей домашней сети для публики и, следовательно, лишаете себя права привлекать BeamMP к ответственности за **любой** ущерб, который может быть причинен вам или вашему домохозяйству.
|
||||
|
||||
Мы не несем ответственности за какой-либо контент на любых внешних связанных сервисах или веб-сайтах.
|
||||
|
||||
<u>**Если вы не понимаете это руководство, рассмотрите возможность обращения к одному из наших партнеров.**</u>
|
||||
```
|
||||
|
||||
!!! предупреждение
|
||||
|
||||
```
|
||||
Пожалуйста, убедитесь, что ваш маршрутизатор не является устройством исключительно 4G/5G. Если это гибридное устройство, обязательно выберите адаптер с кабельным подключением далее в разделе 3 этого руководства!
|
||||
```
|
||||
|
||||
## Как настроить переадресацию портов.
|
||||
|
||||
Создание правила переадресации портов включает несколько подробных сетевых терминов. Будьте готовы записать несколько заметок по мере прохождения процесса.
|
||||
|
||||
В этом руководстве 4 основных шага.
|
||||
|
||||
## Краткое руководство. (Более подробное руководство приведено ниже)
|
||||
|
||||
<div class="grid cards" markdown>
|
||||
</div>
|
||||
<ul data-md-type="list" data-md-list-type="unordered" data-md-list-tight="false">
|
||||
<li data-md-type="list_item" data-md-list-type="unordered">
|
||||
<p data-md-type="paragraph">:material-dns:{ .lg .middle } <strong data-md-type="double_emphasis">Назначьте статический IP-адрес вашему компьютеру или устройствам</strong></p>
|
||||
<hr data-md-type="hrule">
|
||||
<p data-md-type="paragraph">Это необходимо для предотвращения изменения IP-адреса вашего устройства и нарушения правила переадресации портов.</p>
|
||||
<p data-md-type="paragraph"><a href="https://portforward.com/router.htm#1" data-md-type="link">:octicons-arrow-right-24: Просмотр информации о вашем маршрутизаторе</a></p>
|
||||
</li>
|
||||
<li data-md-type="list_item" data-md-list-type="unordered">
|
||||
<p data-md-type="paragraph">:material-router-wireless:{ .lg .middle } <strong data-md-type="double_emphasis">Войдите в свой маршрутизатор</strong></p>
|
||||
<hr data-md-type="hrule">
|
||||
<p data-md-type="paragraph">Обычно это можно сделать, найдя IP-адрес «шлюза по умолчанию», который можно найти, выполнив <code data-md-type="codespan">ipconfig</code> в командной строке и введя его в адресную строку веб-браузера.</p>
|
||||
</li>
|
||||
<li data-md-type="list_item" data-md-list-type="unordered">
|
||||
<p data-md-type="paragraph">:material-lan-connect:{ .lg .middle } <strong data-md-type="double_emphasis">Перенаправьте порты на ваш компьютер</strong></p>
|
||||
<hr data-md-type="hrule">
|
||||
<p data-md-type="paragraph">Найдите раздел переадресации портов в веб-интерфейсе маршрутизатора. Большинство маршрутизаторов перечисляют раздел переадресации портов в разделе «Сеть», «Дополнительно» или «Локальная сеть».</p>
|
||||
</li>
|
||||
<li data-md-type="list_item" data-md-list-type="unordered">
|
||||
<p data-md-type="paragraph">:material-test-tube:{ .lg .middle } <strong data-md-type="double_emphasis">Проверьте, что ваш порт правильно перенаправлен</strong></p>
|
||||
<hr data-md-type="hrule">
|
||||
<p data-md-type="paragraph">Используйте такой инструмент, как CheckBeamMP, чтобы проверить, работает ли правило.</p>
|
||||
<div data-md-type="block_html">
|
||||
<form action="https://check.beammp.com/api/v2/beammp" method="get" target="_blank">
|
||||
<label for="ip">IP-адрес:</label>
|
||||
<input type="text" id="ip" name="ip"><br>
|
||||
<label for="port">Порт:</label>
|
||||
<input type="text" id="port" name="port"><br>
|
||||
<input type="submit" value="CheckBeamMP">
|
||||
</form>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<div data-md-type="block_html"></div>
|
||||
|
||||
## Подробное руководство
|
||||
|
||||
### 1. Назначение статического IP-адреса
|
||||
|
||||
### Метод 1: настройка статического IP-адреса с использованием резервирования DHCP
|
||||
|
||||
Другой способ задать статический IP-адрес в локальной сети — использовать функцию резервирования DHCP вашего маршрутизатора. Не все маршрутизаторы имеют эту функцию, поэтому это может быть неподходящим вариантом для вас. Пожалуйста, найдите в Интернете модель вашего маршрутизатора, чтобы найти руководство.
|
||||
|
||||
Если вам удалось это сделать, перейдите сразу к [шагу 2.](port-forwarding.md#2-log-in-to-your-router)
|
||||
|
||||
### Метод 2: Назначение статического IP-адреса в Windows
|
||||
|
||||
#### 1.1. Найдите свой текущий IP-адрес, шлюз и DNS-серверы:
|
||||
|
||||
Прежде чем мы сможем настроить статический IP-адрес, нам нужно знать ваши текущие сетевые настройки. Вам нужно будет записать их, поэтому приготовьте блокнот. Для этого шага мы воспользуемся командной строкой.
|
||||
|
||||
Откройте командную строку. 3 основных способа:
|
||||
|
||||
- Нажмите клавишу Windows, затем начните вводить фразу «cmd», затем нажмите Enter, когда увидите выделенную строку «Командная строка».
|
||||
|
||||
|
||||
<figure class="image image_resized" style="width:62%;" markdown=""></figure>
|
||||
|
||||
После того, как вы окажетесь в командной строке, выполните следующую команду:
|
||||
|
||||
```
|
||||
ipconfig /all
|
||||
```
|
||||
|
||||
Вы увидите много данных. Если у вас есть виртуальные или несколько сетевых адаптеров, то вы увидите еще больше данных. Обычно можно увидеть много виртуальных адаптеров, если у вас установлен Hyper-V или Docker.
|
||||
|
||||
|
||||
<figure class="image image_resized" style="width:62%;" markdown=""></figure>
|
||||
|
||||
Рекомендуется использовать проводное сетевое соединение, которое будет запускать этот сервер, однако он будет работать и через беспроводное соединение. Вам нужно будет найти в этом списке адаптер, который имеет активное подключение к Интернету. Прокрутите список и найдите тот, которому назначен шлюз по умолчанию. Многие из виртуальных адаптеров не будут иметь шлюза по умолчанию.
|
||||
|
||||
Ниже приведены примеры локальных адресов IPv4, которые должен иметь хотя бы один из адаптеров. Вам нужно будет записать информацию о вашем адаптере.
|
||||
|
||||
- 192.168.xx
|
||||
- 10.xxx
|
||||
- 172.16.xx - 172.31.xx
|
||||
|
||||
Маска подсети (скорее всего 255.255.255.0) Основной шлюз (скорее всего 192.168.0.1 или 192.168.1.1)
|
||||
|
||||
!!! info "Обратите внимание" BeamMP в настоящее время не поддерживает IPv6 для хостинга сервера.
|
||||
|
||||
#### 1.2.Изменение настроек адаптера
|
||||
|
||||
Теперь нам нужно изменить настройки вашего сетевого адаптера, чтобы ваш ПК сохранил текущую конфигурацию IP. Чтобы получить доступ к настройкам вашей сети, самый быстрый способ:
|
||||
|
||||
- Нажмите один раз клавишу Windows.
|
||||
- Введите фразу «сетевые подключения», пока не увидите «Просмотр сетевых подключений».
|
||||
- Нажмите клавишу Enter.
|
||||
|
||||
|
||||
<figure class="image image_resized" style="width:62%;" markdown=""></figure>
|
||||
|
||||
Вы должны увидеть список сетевых подключений на вашем компьютере. Если у вас установлены Hyper-V или Docker, их может быть много. Найдите все адаптеры, которые не называются "Hyper-V".
|
||||
|
||||
|
||||
<figure class="image image_resized" style="width:62%;" markdown=""></figure>
|
||||
|
||||
Щелкните правой кнопкой мыши по вашему адаптеру и выберите свойства. Если `Internet Protocol Version 4` не отмечен, то это неправильный адаптер. Выберите другой.
|
||||
|
||||
|
||||
<figure class="image image_resized" style="width:62%;" markdown=""></figure>
|
||||
|
||||
Дважды щелкните по `Internet Protocol Version 4` Измените `Obtain an IP address automatically` на `Use the following IP address` .
|
||||
|
||||
Заполните поля IP-адрес, маска подсети, шлюз по умолчанию и предпочитаемый DNS-сервер, используя информацию из командной строки (ipconfig /all).
|
||||
|
||||
В качестве альтернативы вместо использования своих DNS-серверов вы можете использовать DNS-серверы CloudFlare или Google:
|
||||
|
||||
- CloudFlare DNS: 1.1.1.1, 1.0.0.1
|
||||
- Google DNS: 8.8.8.8, 8.8.4.4
|
||||
|
||||
|
||||
<figure class="image image_resized" style="width:62%;" markdown=""></figure>
|
||||
|
||||
Нажмите Ok, затем нажмите Ok еще раз, и ваш адаптер теперь изменен с DHCP на статический. Поищите в Интернете, чтобы убедиться, что у вас все еще есть подключение к Интернету. Если нет, то измените настройки обратно на Получить IP-адрес автоматически и попробуйте следующий метод.
|
||||
|
||||
### 2. Войдите в свой маршрутизатор.
|
||||
|
||||
Теперь, когда на вашем устройстве есть статический IP-адрес, вы готовы перенаправить порт для BeamMP!
|
||||
|
||||
Для начала нам нужно войти в ваш роутер. Ранее одна из настроек, которую вы записали, это ваш Default Gateway. Это IP-адрес вашего роутера.
|
||||
|
||||
Большинство маршрутизаторов используют локально размещенную веб-страницу для управления. Чтобы просмотреть меню и настройки маршрутизатора:
|
||||
|
||||
- Откройте веб-браузер. Firefox, Chrome или Edge должны работать нормально.
|
||||
- В адресной строке введите IP-адрес вашего шлюза по умолчанию, например 192.168.0.1 или 192.168.1.1, и нажмите Enter.
|
||||
|
||||
Теперь вы должны увидеть экран входа в систему вашего маршрутизатора. Не все маршрутизаторы требуют входа в систему, но большинство требуют. Вам необходимо знать имя пользователя и пароль вашего маршрутизатора. Если вы никогда не входили в систему раньше, ваши имя пользователя и пароль, скорее всего, установлены на заводские значения по умолчанию или, в некоторых случаях, написаны на наклейке вашего маршрутизатора.
|
||||
|
||||
Ниже перечислены некоторые из наиболее распространенных заводских имен пользователей и паролей:
|
||||
|
||||
Имя пользователя | Пароль
|
||||
--- | ---
|
||||
админ | админ
|
||||
админ | пароль
|
||||
{пустой} | админ
|
||||
{пустой} | пароль
|
||||
|
||||
Попробуйте различные комбинации admin, password и оставьте записи пустыми. *Там, где написано blank, попробуйте оставить значение пустым.*
|
||||
|
||||
### 3. Создайте правила пересылки!
|
||||
|
||||
#### 3.1. Найдите раздел пересылки
|
||||
|
||||
Найдите раздел переадресации портов в веб-интерфейсе маршрутизатора. Перемещайтесь по маршрутизатору, нажимая вкладки или ссылки в верхней или левой части каждой страницы. Большинство маршрутизаторов перечисляют раздел переадресации портов в разделе «Сеть», «Дополнительно» или «Локальная сеть». Найдите его по следующим ключевым словам:
|
||||
|
||||
- Переадресация портов
|
||||
- Пересылка
|
||||
- Переадресация диапазона портов
|
||||
- Виртуальные серверы
|
||||
- Приложения и игры
|
||||
- Расширенные настройки/параметры
|
||||
- НАТ
|
||||
|
||||
#### 3.2. Введите данные
|
||||
|
||||
Как только вы найдете раздел переадресации портов вашего маршрутизатора, вы готовы ввести необходимую информацию. На вашем маршрутизаторе будет место для ввода портов, которые нужно переадресовать, и IP-адрес назначения, чтобы указать эти переадресованные порты. Если на вашем маршрутизаторе указаны как внутренние, так и внешние порты, сделайте их одинаковыми.
|
||||
|
||||
Для BeamMP требуются как UDP-, так и TCP-порт 30814 (если вы не изменили это в [ServerConfig.toml](create-a-server.md#4-configuration) ).
|
||||
|
||||
!!! info "Примечание" Хотя **порт** по умолчанию - **30814** , вы можете выбрать любой другой номер больше 1024, но меньше 65535, но вам нужно записать, что вы выбрали, если это не 30814. Вам нужно перенаправить как **TCP** , так и **UDP** . Рекомендуется придерживаться порта по умолчанию, так как он вряд ли будет использоваться другой службой на вашем ПК. Однако, если вы размещаете несколько серверов на одной машине, каждому серверу нужен свой порт. Например, сервер 1: 30814, сервер 2: 30815.
|
||||
|
||||
На некоторых маршрутизаторах вам может потребоваться создать два правила: одно для UDP и одно для TCP, в то время как другие удобны и позволяют сделать и то, и другое с помощью одного правила!
|
||||
|
||||
На большинстве маршрутизаторов есть кнопка «Сохранить», а на некоторых маршрутизаторах требуется перезапуск или перезагрузка, чтобы изменения вступили в силу.
|
||||
|
||||
### 4. Время тестировать!
|
||||
|
||||
Есть несколько способов проверить соединение.
|
||||
|
||||
Наш рекомендуемый способ — использовать наш инструмент **CheckBeamMP**, так как он проверяет проблемы и протоколы, специфичные для BeamMP.
|
||||
|
||||
<form action="https://check.beammp.com/api/v2/beammp" method="get" target="_blank">
|
||||
<label for="ip">IP-адрес:</label>
|
||||
<input type="text" id="ip" name="ip"><br>
|
||||
<label for="port">Порт:</label>
|
||||
<input type="text" id="port" name="port"><br>
|
||||
<input type="submit" value="CheckBeamMP">
|
||||
</form>
|
||||
|
||||
Это можно сделать, получив свой публичный IPv4-адрес, это опять же можно сделать несколькими способами. Основной способ — использовать веб-сайт [whatsmyip.org](https://whatsmyip.org/) . Это простой веб-сайт, который отображает ваш публичный IP-адрес. Вам следует искать IP-адрес в формате: xxx.xxx.xxx.xxx
|
||||
|
||||
Перейдите по следующей ссылке и замените «IP» на ваш реальный адрес IPv4, а «Port» на порт вашего сервера. Не оставляйте пробелов. https://check.beammp.com/api/v2/beammp/ip/port
|
||||
|
||||
!!! успех "статус:ok"
|
||||
|
||||
```
|
||||
Если вы получили результат, аналогичный приведенному выше, то теперь вы можете присоединиться к своему серверу!
|
||||
Присоединиться можно двумя способами: либо напрямую, используя данные, введенные вами в «Вероятно UP», либо, если ваш сервер настроен как «публичный», через список серверов.
|
||||
Поскольку вы размещаете сервер локально, используйте 127.0.0.1 (localhost), если сервер работает на том же компьютере, что и вы, или LAN IPv4 локальной машины, на которой работает сервер.
|
||||
```
|
||||
|
||||
!!! сбой "статус:ошибка"
|
||||
|
||||
```
|
||||
Если соединение полностью отсутствует, ваш интернет-провайдер может использовать CGNAT (трансляцию сетевых адресов операторского класса). Для получения более подробной информации, пожалуйста, проверьте [Как проверить наличие CGNAT?](../FAQ/How-to-check-for-CGNAT.md),
|
||||
или откройте тикет в службу поддержки сервера на нашем [сервере Discord](https://discord.gg/beammp) в канале `#support`, и один из наших сотрудников займется вашим тикетом!
|
||||
Если вы видите, что работает только TCP, а UDP не работает, еще раз проверьте правила брандмауэра и переадресации портов.
|
||||
```
|
||||
@@ -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`.
|
||||
|
||||
Reference in New Issue
Block a user