ET: Legacy · XP Save · boty 24/7 · graj.pvet.pl
Polska Vodka › Poradniki › Własny serwer ET: Legacy na Linuxie

Własny serwer ET: Legacy na Linuxie

Własny serwer Enemy Territory to dobry sposób na granie ze znajomymi, trening albo zbudowanie własnej ekipy. Ten poradnik prowadzi krok po kroku przez postawienie serwera ET: Legacy (wersja 2.86.2) na Linuxie 64-bit: od pobrania plików, przez config i firewall, po działanie 24/7 z botami i zapisem XP. Komendy są podane dla Debiana/Ubuntu.

Czego potrzebujesz

Serwer ET jest lekki, więc wystarczy niewielki VPS.

1. Osobny użytkownik zamiast roota

Serwera gry nie uruchamiaj jako root. Załóż zwykłe konto i przełącz się na nie:

sudo adduser --disabled-password --gecos "" etserver
sudo -iu etserver

2. Pobranie ET: Legacy

Na stronie etlegacy.com/download w sekcji Linux są dwa pliki x86_64: instalator etlegacy-v2.86.2-x86_64.sh i archiwum etlegacy-v2.86.2-x86_64.tar.gz. Wygodniejszy jest instalator, bo na życzenie pobiera też dane gry. Kliknij go na stronie prawym przyciskiem, wybierz Kopiuj adres linku i wklej ten adres w miejsce ADRES_INSTALATORA (link zmienia się z każdą wersją):

mkdir ~/etlegacy && cd ~/etlegacy
wget -O etl.sh "ADRES_INSTALATORA"
chmod +x etl.sh
./etl.sh

Instalator zada trzy pytania. Licencję zaakceptuj (y). Na pytanie o podfolder z numerem wersji odpowiedz n – pliki trafią prosto do ~/etlegacy, co ułatwia aktualizacje. Na „Do you want to fetch the assets data files?” odpowiedz y: instalator pobierze oryginalne dane gry i wypakuje pak0–pak2.pk3 do etmain.

W archiwum .tar.gz nie ma plików pak: po rozpakowaniu wgraj pak0.pk3, pak1.pk3 i pak2.pk3 do etmain sam (np. przez scp z komputera z grą). Zobacz też brak pak0.pk3.

etlded.x86_64serwer dedykowany – to go uruchamiasz
etl.x86_64klient gry, na serwerze niepotrzebny
etmain/pliki pak, mapy i wzorcowe configi (etl_server.cfg, legacy.cfg, cykle map)
legacy/mod Legacy, Omni-bot i skrypty Lua (WolfAdmin)
~/.etlegacy/logi serwera i baza etl.db (XP Save)

3. Config serwera

W etmain leżą rozbudowane wzorce etl_server.cfg i legacy.cfg z komentarzami – warto je przejrzeć. Na start wystarczy krótki plik poniżej. Zapisz go pod własną nazwą w ~/etlegacy/etmain: aktualizacja nadpisuje wzorce, a Twój plik zostanie.

// Przykladowy config serwera ET: Legacy (2.86.x) - poradnik: pvet.pl/poradniki/serwer-et-legacy-linux/
// Wgraj do folderu etmain serwera i uruchom serwer z: +exec serwer_et_legacy.cfg

// NAZWA I POWITANIE
set sv_hostname "^1Moj ^7Serwer ET"          // nazwa na liscie serwerow
set server_motd0 "^7Witaj na serwerze!"       // tekst na ekranie wejscia

// GRACZE I HASLA
set sv_maxclients "20"                       // liczba slotow (maks. 64)
set g_password ""                            // haslo wejscia, puste = serwer publiczny
set rconpassword "ZMIEN_MNIE"                // haslo admina (rcon) - KONIECZNIE ZMIEN!
set refereePassword ""                       // haslo sedziego, puste = wylaczone

// SIEC I POBIERANIE MAP
set sv_maxRate "25000"
set sv_allowDownload "1"                     // gracze moga pobrac brakujace mapy
set sv_wwwDownload "0"                       // 1 = szybkie pobieranie przez HTTP
set sv_wwwBaseURL ""                         // np. "http://twojadomena.pl/et" (mapy w /et/etmain/)
set sv_pure "1"                              // sprawdzanie plikow pk3 graczy
set logfile "2"                              // log konsoli: etconsole.log

// ROZGRYWKA
set g_friendlyFire "1"                       // 0 = bez ognia w swoich
set g_xpSave "1"                             // XP i stopnie zostaja miedzy mapami
set g_xpSaveResetMode "0"                    // 0 = nigdy nie zeruj XP

// BOTY (Omni-bot) - sciezka wzgledna, startuj serwer z folderu gry
set omnibot_enable "1"
set omnibot_path "./legacy/omni-bot"

// ROTACJA MAP - tryb objective (g_gametype 2)
// Zamiast tego mozesz usunac linie d1-d6 i vstr, a wpisac: exec mapvotecycle.cfg
set d1 "set g_gametype 2 ; map oasis ; set nextmap vstr d2"
set d2 "set g_gametype 2 ; map battery ; set nextmap vstr d3"
set d3 "set g_gametype 2 ; map goldrush ; set nextmap vstr d4"
set d4 "set g_gametype 2 ; map radar ; set nextmap vstr d5"
set d5 "set g_gametype 2 ; map railgun ; set nextmap vstr d6"
set d6 "set g_gametype 2 ; map fueldump ; set nextmap vstr d1"
vstr d1

Pobierz serwer_et_legacy.cfg

sv_hostnamenazwa na liście serwerów (kolory jak w nicku – generator nicków)
sv_maxclientsliczba slotów, maksymalnie 64
g_passwordhasło wejścia; puste = serwer publiczny
rconpasswordhasło zdalnej administracji – długie i tajne
g_gametype2 = objective, 4 = kampania, 6 = głosowanie na mapę

Rotacja map

Przykład ustawia rotację w trybie objective (zmienne d1…d6 i vstr d1). Zamiast niej możesz usunąć te linie i wpisać jedną z gotowych rotacji z etmain:

Kampania (g_gametype 4) czyści XP Save na początku każdej kampanii. Jeśli chcesz trwałych stopni, wybierz tryb 2 albo 6.

4. Pierwsze uruchomienie

cd ~/etlegacy
./etlded.x86_64 +set dedicated 2 +set net_port 27960 +exec serwer_et_legacy.cfg

dedicated 2 to serwer internetowy: zgłasza się do master serwera ET: Legacy, więc po chwili widać go na liście w grze (dedicated 1 działa tylko w sieci lokalnej). W konsoli serwera możesz od razu wpisywać komendy, np. status albo map goldrush.

Nie dopisuj +map przed +exec. Domyślny g_gametype to 4 (kampania), więc mapa załadowana przed configiem wystartowałaby w kampanii i wyczyściła XP Save. Niech mapę uruchomi config.

5. Firewall

sudo ufw allow 27960/udp

Jeśli dostawca VPS-a ma osobny firewall w panelu, otwórz tam ten sam port – UDP, nie TCP. Test z gry: /connect ADRES_IP:27960.

6. Serwer 24/7 z systemd

Jako root utwórz plik /etc/systemd/system/etserver.service:

[Unit]
Description=Serwer ET: Legacy
After=network-online.target
Wants=network-online.target

[Service]
User=etserver
WorkingDirectory=/home/etserver/etlegacy
ExecStart=/home/etserver/etlegacy/etlded.x86_64 +set dedicated 2 +set net_port 27960 +exec serwer_et_legacy.cfg
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now etserver
journalctl -u etserver -f

Serwer wstanie sam po restarcie maszyny i po awarii. Wolisz konsolę na żywo? Uruchom go w tmux new -s et, odłącz się Ctrl+B, potem D, a wrócisz przez tmux attach -t et.

7. Nowe mapy i szybkie pobieranie

Mapę (plik .pk3) wrzuć do ~/etlegacy/etmain i zrestartuj serwer. Dopisz ją do rotacji – w trybie głosowania (6) sama trafi na listę map. Gracze bez mapy pobiorą ją z serwera (sv_allowDownload 1), ale przez UDP idzie to wolno. Szybciej jest przez HTTP: wystaw pliki na serwerze WWW w podfolderze etmain/ i ustaw:

set sv_wwwDownload "1"
set sv_wwwBaseURL "http://twojadomena.pl/et"

Gra pobierze wtedy np. http://twojadomena.pl/et/etmain/mapa.pk3. Więcej w poradniku instalacja map.

8. Boty Omni-bot

Omni-bot jest w zestawie (legacy/omni-bot, z gotowymi ścieżkami dla setek map). Włączają go dwie linie z configu: omnibot_enable 1 i omnibot_path "./legacy/omni-bot". Ścieżka jest względna, więc serwer startuj z folderu gry (w systemd załatwia to WorkingDirectory). Liczbę botów ustawisz w konsoli serwera:

bot MaxBots 10

MaxBots to łączna liczba graczy, do której boty dopełniają serwer – gdy wchodzą ludzie, boty robią im miejsce. Na mapach bez plików ścieżek boty sobie nie poradzą, a na Linuxie ARM (AArch64) Omni-bot nie jest wspierany.

9. XP Save – stopnie, które zostają

g_xpSave 1 zapisuje XP i stopnie graczy w bazie ~/.etlegacy/etl.db i działa w trybach 2 i 6. Gracza rozpoznaje jego plik etkey (zobacz kopia etkey). Automatyczne zerowanie ustawia g_xpSaveResetMode: 0 = nigdy, 1 = po określonej liczbie map, 2 = po określonej liczbie godzin, 3 = stopniowe ubywanie XP nieaktywnym graczom. Próg podajesz w g_xpSaveResetThreshold.

XP trafia do bazy na koniec rundy i przy wyjściu gracza. Restart serwera w środku rundy zabiera wszystkim XP z tej rundy – restartuj na ekranie podsumowania albo przy pustym serwerze.

10. Administracja przez rcon

W grze wpisz /rconpassword TwojeHaslo, a potem np. /rcon status albo /rcon map supply. Więcej o konsoli: konsola i komendy.

11. Aktualizacja

  1. Zatrzymaj serwer (sudo systemctl stop etserver) i zrób kopię ~/.etlegacy/etl.db oraz swojego configu.
  2. Pobierz nowy instalator i uruchom go w ~/etlegacy (podfolder: n, dane gry: n, bo pak-i już masz).
  3. W legacy/ zostaw tylko nowy plik legacy_v….pk3, stary usuń.
  4. Uruchom serwer i sprawdź wersję komendą version w konsoli.

Gracze aktualizują grę według poradnika aktualizacja ET: Legacy. Serwer na Windowsie? Zobacz serwer ET: Legacy na Windows.

Wbijaj na nasz serwer: uruchom ET: Legacy i wpisz w konsoli /connect graj.pvet.pl (adres serwera: graj.pvet.pl).

Inne poradniki