Powrót do strony

Serwer Enemy Territory na Linuksie

Artykuł dotyczy instalacji serwera Enemy Territory w systemie Linux. Dowiesz się w nim jak od podstaw pobrać i postawić serwer ETDED z ETAdminModem, jak go skonfigurować, uruchomić i restartować.

Spis treści

  1. Tworzymy konto użytkownika
  2. Pobieramy serwer
  3. Konfigurujemy serwer
  4. Edycja konfiguracji
  5. Instalujemy Punkbuster
  6. Uruchamiamy serwer
  7. Uruchamiamy modyfikacje
  8. Instalujemy ETAdminModa
  9. Bezpieczeństwo serwerów ET

Serwer Enemy Territory - Linux

Dla bezpieczeństwa stworzymy najpierw konto użytkownika, na którym uruchamiany będzie serwer. Jeżeli mamy już konto użytkownika możemy się na nie zalogować przed rozpoczęciem instalacji.

1. Tworzymy konto użytkownika

Sposoby obsługi różnych dystrybucji systemu Linux mogą się różnić od mi osobiście znanych. Nie jestem ekspertem i otwarcie się do tego przyznaję, dlatego w przypadku jakichkolwiek wątpliwości googlujcie :)

Komendy wpisane w wyróżnionych tabelach wpisujemy w konsoli (SSH/Terminal).

Poniższe komendy wpisujemy z konta root-a.

Komendą useradd możemy dodać nowego użytkownika do systemu. Polecam lekturę artykułu w wikipedii na ten temat.

Utwórzmy więc użytkownika etded, którego katalogiem domowym będzie folder etded w katalogu /home

useradd -d /home/etded etded

Wypadałoby ustalić hasło.

passwd etded

Wpisujemy hasło dwukrotnie potwierdzając ENTER-em.

Katalog domowy zapewne nie istnieje więc go utworzymy.

mkdir /home/etded

Nadamy teraz użytkownikowi etded uprawnienia do katalogu.

chown etded /home/etded

Jeżeli chcemy móc z poziomu konta etded wychodzić do katalogów wyżej czyli do home i / ustawiamy jeszcze chmod na katalog home na odczyt.

chmod +r /home

Gotowe. Zalogujmy się na nowo utworzone konto.

su - etded

Udało się? Taką mam nadzieję. Ruszajmy dalej

Poniższe komendy wpisujemy z konta użytkownika.

2. Pobieramy serwer

Po zalogowaniu się na konto użytkownika upewniamy się czy na pewno jesteśmy w katalogu domowym /home/etded

pwd

Zgadza się? Jeśli nie (dziwne)...

cd /home/etded
pwd

Dalej coś nie tak? Spokojnie! Sprawdź czy wszystkie powyższe punkty wykonałeś(aś) poprawnie. Jeżeli coś namieszałeś(aś) zacznij od nowa, tylko zamiast etded używaj wszędzie nazwy np. etded2.

pwd

Teraz ok? Startujemy. Najpierw stwórzmy jakiś katalog żeby nie robić zamieszania w katalogu domowym. Niech to będzie katalog ets

mkdir ets

Teraz wchodzimy do niego.

cd ets

I pobieramy serwer ET z sieci. W zależności od tego jaką wersję serwera potrzebujemy wybieramy odpowiedni link:

UWAGA! Poniższej komendy używamy dla serwera w wersji 2.55.

wget http://ftp.freenet.de/pub/4players/hosted/et/official/et-linux-2.55.x86.run

UWAGA! Poniższej komendy używamy dla serwera w wersji 2.60b.

wget http://ftp.freenet.de/pub/4players/hosted/et/official/et-linux-2.60.x86.run

Czekamy aż plik zostanie pobrany... I dajemy mu prawa do wykonywania.

chmod 777 et-linux* # pamiętajcie o gwiazdce...

Teraz uruchamiamy instalator.

./et-linux*.run

Jeżeli powyższe polecenie nie działa wpisujemy ./et-linux i wciskamy kolejno TAB i ENTER albo po prostu po "./" wpisujemy poprawną nazwę pliku, który pobraliśmy. Powyższa komenda jest po prostu dla mniej ogarniętych :P

Uruchomi się instalator, który poinformuje nas, że lubi pingwiny i ogólnie chciałby nam zainstalować coś fajnego. Cóż, zgadzamy się wcisnąwszy ENTER.

Teraz instalator przedstawi nam referat o tym jaki to on zgodny z prawem i że ogólnie grozi nam padaczka. Znowu ENTER...

Instalator zapyta nas czy my również lubimy pingwiny. Wciskamy ENTER. Jak ktoś nie lubi niech od razu wyskoczy przez okno.

Instalator nie daje za wygraną. Tym razem pyta nas czy chcemy przeczytać scenariusz Mody na Sukces. Jeżeli ktoś faktycznie chciałby, a w poprzednim kroku nie zdecydował się wyskoczyć przez okno teraz powinien to uczynić. Wybieramy NO (strzałką w lewo na klawiaturze) i dajemy NO.

Gdy dojdziemy do okienka "Installation path" usuwamy podaną ścieżkę (przytrzymujemy DEL) i wpisujemy tę, która prowadzi do folderu, w którym umieściliśmy serwer.

Jeżeli posłużyliście się przykładem będzie to:

/home/etded/ets/

W kolejnym okienku instalator chce nam wstawić jakieś linki (symboliczne). Podejrzewam, że do azjatyckiego porno. Niemniej musimy wybrać inną ścieżkę niż poprzednio podaną. Można wybrać katalog domowy, czyli w przypadku przykładu:

/home/etded/

Wciskamy ENTER. Instalator zapyta nas jakie elementy chcemy zainstalować. W tym okienku wciskamy na klawiaturze strzałkę w dół, aby podświetlona została opcja "Punkbuster client/server files" i wciskamy SPACJĘ, aby usunąć zaznaczenie z tej opcji. Nie robimy tego bynajmniej w odwecie za linki do azjatyckiego porno, a dlatego, ponieważ instalator posiada bardzo starą wersję Punkbustera. Jego instalację przeprowadzimy później. Teraz wciskamy ENTER.

"Do you want to install startup menu entries?" - wybieramy NO i dajemy ENTER.

Czekamy aż instalator sformatuje nam cały dysk (żartuję), ponownie wybieramy NO i dajemy ENTER.

Gotowe. Serwer jest zainstalowany. To jednak nie koniec.

Linki symboliczne do et i etded z katalogu, w którym je zainstalowaliśmy (ta druga ścieżka w instalatorze) są nam zbędne. Możemy je usunąć.

Z uwagi na to, że lubię porządek w plikach, a serwer ET ma jedną z najbardziej przejrzystych struktur podpowiem Wam, które pliki i foldery (z całą zawartością) możecie bez obaw usunąć, gdyż są zupełnie niepotrzebne. Oto ich lista (dla wersji 2.60b):

Jeżeli zdecydujecie się te wszystkie pliki usunąć po wydaniu komendy

tree

Powinno Wam wyświetlić listę wszystkich plików serwera (dla wersji 2.60b).

.
|-- etded.x86
`-- etmain
    |-- campaigncycle.cfg
    |-- cgame.mp.i386.so
    |-- mp_bin.pk3
    |-- objectivecycle.cfg
    |-- pak0.pk3
    |-- pak1.pk3
    |-- pak2.pk3
    |-- qagame.mp.i386.so
    |-- server.cfg
    |-- stopwatchcycle.cfg
    `-- ui.mp.i386.so

1 directory, 12 files

Oczywiście w wersji 2.55 będzie mniej plików, nie należy się tym przejmować.

Jeżeli pobraliśmy serwer w wersji 2.55 możemy przejść do następnego punktu.

Jeśli chcemy mieć serwer 2.60b musimy jeszcze tylko zainstalować patcha. Będąc w katalogu, w którym zainstalowaliśmy serwer pobieramy patcha:

UWAGA! Poniższej komendy używamy dla serwera w wersji 2.60b.

wget http://ftp.freenet.de/pub/4players/hosted/et/official/ET-2.60b-linux.zip

Teraz uwaga. Domyślnie Linux nie ma obsługi archiwów zip i musimy zainstalować dodatkowy program w systemie, aby taką obsługę uzyskać.

Poniższe komendy wpisujemy z konta root-a.

Jeśli posiadamy możliwość instalacji pakietów instalujemy program unzip. Dla systemów debianopodobnych:

apt-get install unzip

Poniższe komendy wpisujemy z konta użytkownika.

Po zainstalowaniu pakietu wracamy do katalogu, w którym zainstalowaliśmy serwer i wydajemy polecenie:

unzip ET-2.60b-linux.zip
rm ET-2.60b-linux.zip
rm etded.x86
mv Enemy\ Territory\ 2.60b/linux/etded.x86 .
rm Enemy\ Territory\ 2.60b/ -r # Wcisnij ENTER

Jeśli nie mamy możliwości zainstalowania pakietu unzip będziemy musieli w inny sposób wgrać plik etded.x86 (katalog Enemy Territory 2.60b/linux) z archiwum i podmienić na serwerze. Można wypakować je w Windowsie, a potem wgrać sam plik na FTP serwera lub jeżeli mamy możliwość przez sFTP (WinSCP).

3. Konfigurujemy serwer

Konfiguracja serwera jest o tyle istotna, że możemy ustalić w niej jak serwer będzie się nazywał, czy i jakie będzie miał hasło, jakie będzie hasło rcona (administracyjne), a także ustalić czas trwania rundy itd.

Przechodzimy teraz do katalogu, w którym zainstalowaliśmy serwer i od razu do folderu etmain, w którym znajduje się plik server.cfg - plik konfiguracyjny serwera.

cd ~/ets/etmain

Tyldę ( ~ ) tworzymy poprzez kombinację klawiszy SHIFT + ~ (klawisz pod ESC) i wciśnięcie spacji. Tylda oznacza katalog domowy. Jest zatem zamiennikiem ciągu znaków wskazujących ścieżkę do katalogu domowego. W naszym przypadku /home/etded. Choć jeżeli wybraliśmy inny katalog niż przykładowy oczywiście niekoniecznie zadziała.

Domyslny plik konfiguracyjny nie jest najlepszy dlatego od razu polecam jego usunięcie.

echo -n > server.cfg

Teraz możemy wkleić do niego konfigurację przygotowaną przeze mnie na potrzeby tego artykułu. Ten server.cfg posiada domyślne ustawienia, które można dowolnie zmienić.

Kliknij na strzałę po lewej by zaznaczyć całość i skopiuj (CTRL+C).

//
// Config serwera Enemy Territory
// Autor: c0m4r
// ga.lamarr.pl
//

set sv_hostname "ET @ Wolfet.pl"	// nazwa serwera

sets ".Location" "Polska"		// przykładowa informacja
sets ".Hosting" "Wolfet.pl"		// przykładowa informacja

// Hasla

set g_password ""		// haslo serwera
set sv_privateclients ""	// ilosc priv-slotow ( sloty na haslo )
set sv_privatepassword ""	// haslo priv-slotow ( wpisujesz je w konsoli /password haslo )
set rconpassword ""		// haslo rcona ( wpisujesz je w konsoli /rconpassword haslo )
set refereePassword ""		// haslo refa ( wpisujesz je w konsoli /ref haslo )

// Ustawienia pobierania

set sv_maxRate "25000"		// wartość rate serwera, nie należy jej zmieniać
set dl_maxRate "16000"		// ta komenda ustala rate pobieranie, jej zmiana niczego nie daje
set sv_allowDownload "1"	// czy pozwolic na pobieraniu plikow z serwera?
set sv_wwwDownload "1"		// czy pobieranie plikow odbywa sie z serwera ftp/http?
set sv_wwwBaseURL ""		// adres serwera ftp/http do pobierania plików

set sv_wwwDlDisconnected "0"	// nie warto ustawiac tej komendy, bedzie wyrzucac jedynie graczy
set sv_wwwFallBackURL ""	// nie nalezy tutaj wstawiac niczego jezeli ustawilismy poprawny adres sv_wwwBaseURL

// Wiadomosc powitalna:

set server_motd0 ""
set server_motd1 ""
set server_motd2 ""
set server_motd3 ""
set server_motd4 ""
set server_motd5 ""

set sv_fullmsg ""		// wiadomosc, ktora wyswietlana jest podlaczajcym sie graczom kiedy serwer jest pelny

set g_antilag "1"		// antilag, jednak nie zabiego on lagom doslownie, jedynie wspomaga plynnosc gry
set g_altStopwatchMode "0"	// zamienia system gry w trybie stopwatch na ABAB zamiast ABBA
set g_complaintlimit "6"	// po ilu tzw. "complainach" gracz jest wyrzucany z serwera
set g_IPcomplaintLimit "4"	// wyrzuca gracza po takiej ilości complainów z danych adresów IP graczy
set g_disableComplaints "7"	// najlepiej zostawić na 7, oznacza to, że wszystkie typy zabić są zaliczane
set g_fastres "0"		// jezeli na 1 gracz jest od razu aktywny po uleczeniu
set g_friendlyFire "1"		// Friendly Fire (ogień sojuszniczy)
set g_minGameClients "0"	// mimimum graczy do rozpoczecia rundy
set g_voiceChatsAllowed "5"	// 5 oznacza na ile komend voicechat pozwolic w ciagu ~30 sekund
set g_warmup "20"		// Ile sekund trwa rozgrzewka
set g_doWarmup "0"		// Czy włączyć rozgrzewkę? (generalnie warump jest zawsze, ale tu chodzi o READY graczy)
set g_inactivity "0"		// Po jakim czasie wywalic gracza nieaktywnego (w sekundach)
set g_spectatorInactivity "0"	// Po jakim czasie wywalic gracza nieaktywnego bedace na Spectacors.
set sv_floodProtect "1"		// Czy włączyć zabezpieczeni antyfloodowe (spam komendami)
set sv_pure "1"			// 1 oznacza, ze na serwerze nie mozna korzystac z wlasnych modyfikacji (np. skinow)
set sv_minping "0"		// mimimalny ping, z jakim mozna sie podlaczyc na serwer (nie warto wlaczac)
set sv_maxping "0"		// maksymalny ping, z jakim mozna sie podlaczyc na serwer (rowniez nie warto)
set match_latejoin "1"		// Czy jezeli trwa runda, gracz moze wejsc do druzyny
set match_minplayers "0"	// minimum graczy do rozpoczecia meczu
set match_mutespecs "0"		// czy podczas meczu zmutowac specow
set match_readypercent "0"	// procent graczy, ktora musi dac READY by mecz sie rozpoczal (raczej dla trybu stopwatch)
set match_timeoutcount "0"	// ilosc pauz, ktore moga wykonac gracze bez refa z kazdej druzyny podczas meczu
set match_warmupDamage "1"	// czy podczas rozgrzewki mozna sie zabijac nawzajem
set pmove_fixed "0"		// dla serwera najlepiej zostawic 0, jest to ustawienie przeznaczone dla graczy bardziej na TJ
set pmove_msec "8"		// również zostawić, wytłumaczone tutaj: bani.anime.net/banimod/forums/viewtopic.php?t=4113

set g_autofireteams "0"		// automatyczne tworzenie fireteamow?
set g_teamforcebalance "1"	// balans druzyn, uniemozliwa graczom przenoszenie sie do druzyny gdzie jest wiecej graczy
set g_noTeamSwitching "0"	// uniemozliwia przechodzenie z druzyny do druzyny podczas trwania rundy
set g_heavyWeaponRestriction "20"	// restrykcja artylerii i nie tylko
set team_maxplayers "0"		// maksymalna ilosc graczy na druzyne (nie warto ustawiac)
set team_nocontrols "1"		// czy zabronic mozliwosc korzystania np. z pauzy dla graczy podczas gry (dla rozgrywek klanowych 0)

set g_maxlives "0"		// maksymalna ilosc zyc (nie warto wlaczac, bardziej dla niegrywanego trybu LMS)
set g_alliedmaxlives "0"	// maksymalna ilosc zyc dla druzyny allies (nie polecam)
set g_axismaxlives "0"		// maksymalna ilosc zyc dla druzyny axis (nie polecam)

set g_allowVote "1"		// czy wlaczyc glosowanie?
set g_voteFlags "0"		// http://www.rtcw.jolt.co.uk/content/enemy_territory/server_guide/voting.html
set vote_limit "3"		// maksymalna ilosc glosow dla gracza na runde
set vote_percent "50"		// procent glosow ZA zby vote przeszedl
set vote_allow_comp "0"		// glosowanie na ustawienia competiton (najlepiej wylaczyc)
set vote_allow_pub "0"		// glosowanie na ustawienia pbliczne (najlepiej wylaczyc)
set vote_allow_gametype "0"	// glosowanie na tryb rozgrywki (sw, kampania, obj) (najlepiej wylaczyc)
set vote_allow_kick "1"		// glosowanie na wykopanie gracza
set vote_allow_map "0"		// glosowanie na zmiane mapy
set vote_allow_mutespecs "0"	// glosowanie na zmutowanie spectacors (raczej wylaczyc)
set vote_allow_muting "1"	// glosowanie na zmutowanie gracza
set vote_allow_matchreset "0"	// glosowanie na reset meczu
set vote_allow_nextmap "0"	// glosowanie na nastepna mape (tylko kampania i obj, na sw zmienia mape lub runde [druzyny])
set vote_allow_referee "0"	// glosowanie na refa dla gracza (wylaczyc)
set vote_allow_shuffleteamsxp "1"	// glosowanie na sortowanie druzyn wg XP i reset XP wszystkich graczy
set vote_allow_swapteams "0"	// glosowanie na zamiane druzyn
set vote_allow_friendlyfire "0"	// wlaczyc/wylaczyc friendlifire
set vote_allow_timelimit "0"	// glosowanie na limit czasu gry
set vote_allow_warmupdamage "0"	// glosowanie na warmupdamage, patrz. g_warmup
set vote_allow_antilag "0"	// antilag on/off (najlepiej wylaczyc)
set vote_allow_balancedteams "0"	// glosowanie na balans druzyn (najlepiej wylaczyc)

// punkbuster
pb_sv_load pbsv.cfg		// laduje ustawienia punkbustera

set g_log "etserver.log"	// jesli nie uzywasz etadmin_moda i nie potrzebujesz zostaw na ""
set logfile "2"			// jesli nie uzywasz etadmin_moda i nie potrzebujesz ustaw  na "0"
set g_logsync "0"		// synchronizacja logow

// laduje mape oasis
map oasis			// po usunięciu mapy startowej serwer nie uruchomi się!

Config skopiowany? Dobrze. Najlepiej wkleić go do pliku server.cfg korzystając z programu nano, który powinien być zainstalowany wraz z każdym systemem. Jeżeli korzystacie z mcedit (edytor programu midnight-commander) z uwagi na wpisane komentarze może się Wam na końcu władować kilka niepotrzebnych akapitów. Mcedit można wykorzystać później - do edycji pliku konfiguracyjnego.

cd ~/ets/etmain
nano server.cfg

Mcedit i nano można używać zamiennie.

Usunęliśmy wcześniej zawartość pliku więc powinien być on pusty, jeżeli nie jest to wróć do początku punktu 4 i rozpocznij działania ponownie. Jeżeli jesteś początkujący upewnij się, że jesteś w poprawnym katalogu przez wydanie komendy pwd. Musisz być w folderze etmain by edytować config. Może Ci być łatwiej poruszać się po katalogach z poiozmu midnight-commandera (uruchamia się go poprzez wpisanie: mc), musi on jednak być zainstalowany w systemie. Poniżej znajduje się na ten temat informacja.

By wkleić skopiowany config korzystamy z kombinacji klawiszy SHIFT + INSERT. Zmiany w pliku zapisujemy poprzez kombinację klawiszy CTRL + X. Zostaniemy zapytani czy zapisać zmiany. Potwierdzamy przez wpisanie Y i wciśnięcie ENTER.

4. Edycja konfiguracji

Aby móc korzystać z midnight-commandera i jego edytora musimy mieć ów program zainstalowany w systemie. Możemy sprawdzić czy program jest zainstalowany poprzez wydanie komendy, która powinna go uruchomić

mc

Jeżeli program się uruchomi to wiadomo, że działa i można z niego korzystać. Do szybkiej edycji pliku zamiast nano wpisujemy wtedy mcedit server.cfg

Jeżeli program się nie uruchomi i wyskoczy informacja

-bash: mc: command not found

musimy zainstalować program w systemie. Można to zrobić tylko z poziomu root-a (by wyjść z konta użytkownika do konta roota korzystamy z kombinacji klawiszy CTRL + A + D (wciskamy w kolejności przytrzymując wciśnięty klawisz, gdy zostaniemy wylogowani puszczamy klawisze).

Program apt-get jest dołączony do Debiana oraz systemów, które powstały w oparciu o Debiana czyli np. Ubuntu. Nie miałem styczności z instalacją programów w innych systemach, zawsze jednak można poprosić wujka Google o pomoc :)

Jeżeli mamy Debiana lub debiano-podobny system wpisujemy następujące polecenie by zainstalować midnight-commandera

Poniższe komendy wykonujemy z poziomu konta root-a.

apt-get moo

:) ...

apt-get install mc

Jeżeli mamy system, który posiada apt-get, a po wydaniu komendy pakiet nie chce się zainstalować zapewne jest problem z repozytoriami (jeżeli nie wiemy czym są repozytoria to googlujemy lub zgłaszamy się do administratora maszyny/hostingu by nam pomógł).

Jeśli mc (midnight-commander) zainstalowało się poprawnie możemy je uruchomić poprzez komendę mc, a pliki edytować albo już z poziomu programu lub z poziomu konsoli przez mcedit.

5. Instalujemy Punkbuster

Niegdyś wyglądało to prościej. Kochany EvenBalance utrudnił jednak sprawę i jest mniej cukierkowo dlatego podejrzewam, że wielu początkujących w tym momencie będzie musiało udać się na forum po pomoc. Niemniej pierwsze co należy zrobić to ustalić gdzie zainstalowany mamy serwer. Jeżeli skorzystaliśmy z przykładu będzie to:

/home/etded/ets/

Najprostszym sposobem na ustalenie ścieżki, w której znajduje się serwer jest wejście do katalogu, w którym znajduje się plik etded.x86 oraz folder etmain. Ścieżkę katalogu sprawdzamy poleceniem: pwd

Teraz musimy pobrać narzedznie aktualizacyjne.

Niestety Evenbalance (producent Punkbstera) posiada zajebiste captche na stronie pobierania więc niestety musimy pobrać narzędzie "ręcznie" i wgrać na serwer FTP lub przez sFTP na dysk naszej maszyny z Linuksem (poniżej podaję link do wersji umieszczonej na serwerze Wolfet.pl, ale może być niekompatybilna z wszystkimi systemami/nieaktualna).

Strona pobierania: http://punkbuster.com/index.php?page=pbsetup.php

Tutaj wybieramy i pobieramy odpowiednią wersję programu. Wytłumaczę, którą wybrać:

Linux	3.2	For 32-bit Linux Games (GUI version)
Linux	3.2	For 32-bit Linux Games (Command-line only version) - rekomendowane
Linux	3.2	For 64-bit Linux Games (GUI version)
Linux	3.2	For 64-bit Linux Games (Command-line only version)

32-bitowa wersja programu przeznaczona jest dla większości gier i systemów. Jeżeli owa wersja nie działa oznacza to, że posiadamy architekturę 64-bitową, wtedy pobieramy wersję pbsetup 64-bit.

Command-line only version - to wersja programu dla trybu tekstowego i w tym poradniku nas najbardziej interesuje.

GUI version - to wersja programu dla trybu graficznego. Jeżeli serwer stawiamy w trybie graficznym pobieramy tę wersję narzędzia.

Tutaj odnośnik do pobierania wersji 32-bit:

wget http://ga.lamarr.pl/dn/pbsetup.run

Gdy już pobierzemy pbsetup.run i umieścimy go w katalogu z zainstalowanym serwerem tworzymy osobny katalog, np. pbu i umieszczamy tam narzędzie instalacyjne.

mkdir pbu
mv pbsetup.run pbu/
cd pbu

Następnie nadajemu mu uprawnienia do wykonywania i uruchamiamy by się zaktualizował.

chmod +x pbsetup.run
./pbsetup.run --i-accept-the-pb-eula -u

Teraz pamiętając o poprawnej ścieżce do katalogu z zainstalowanym serwerem dodajemy do pbsetup nasz serwer komendą:

./pbsetup.run --i-accept-the-pb-eula -ag et -ap /data/adminet/ets/

Gdzie w parametrze "-ap" umieszczamy po spacji poprawną ścieżkę do instalacji serwera.

Teraz ponownie wydajemy polecenie aktualizacji i czekamy aż pbsetup zakończy pobieranie.

./pbsetup.run --i-accept-the-pb-eula -u

Gotowe! Punkbuster jest zaktualizowany. Cały folder pbu oraz jego zawartość możemy zostawić na przyszłość. Jeżeli tylko chcemy zaktuzliwaoć Punkbuster na serwerze do najnowszej wersji wystarczy do niego wrócić i wydać powyższe polecenie. Po każdej aktualizacji najlepiej jest wykonać restart serwera lub wydać polecenie z poziomu rcon-a:

/rcon pb_sv_restart

Jeżeli macie problem z uruchomieniem Punkbustera pamiętajcie, że należy już przy starcie uruchomić go na serwerze. Najlepiej zrobić to w poleceniu startowym (w dalszej części artykułu pokazane są przykłady) poprzze dopisanie komendy:

+set sv_punkbuster 1

Można to też zrobić w konfigu, choć w niektórych sytuacjach może to okazać się nieskuteczne. Czyli w server.cfg, o ile to on wczytywany jest przy starcie serwera dopisujemy, najlepiej na początku:

set sv_punkbuster 1

Gdy już mamy uruchomionego Punkbustera warto również wygenerować jego plik konfiguracyjny, który umieszczony zostanie w katalogu ~/pb/, o nazwie pbsv.cfg. Aby tego dokonać z poziomu rcona wydajemy polecenie:

/rcon pb_sv_writecfg

Aby był on poprawnie wczytywany przy każdym starcie wystarczy do głównego pliku konfiguracyjnego serwera dopisać:

pb_sv_load pbsv.cfg

I to by było na tyle. Więcej o PB znajdziecie w jego dokumentacji. No tak, wiem, że po angielsku, ale zabierając się za jakiekolwiek serwery bez angielskiego zawsze będziecie mieli pod górkę. Dokumentacje to doskonałe źródło wiedzy bo wychodzi "z pierwszej ręki". I am not an eagle in English and my skills were often ridiculed but thanks to them I can read and (what is really important) understand its content, even if I don't know every phrase. I bynajmniej nie nauczyłem się języka w szkole. Jeżeli wolicie inne języki macie Google w innych językach i mnóstwo artykułów również po niemiecku czy francusku. Oprócz tego zawsze jest możliwość skorzystania z translatora. Prawda - nie jest idealny, ale w połączeniu z metodą prób i błędów czyli nawet prostego wpisywania komend i patrzenia "co się stanie" wystarczy. Trzeba wykazać przynajmniej odrobinę inicjatywy. Gdy się tego dokona i chociaż spróbuje zaznajomić z takimi źródłami wiedzy łatwiej będzie uzyskać odpowiedzi już na konkretne pytania od osób mających większe doświadczenie.

6. Uruchamiamy serwer

Za uruchomienie serwera odpowiada plik etded.x86, znajdujący się w głównym katalogu serwera.

Aby uruchomić serwer musimy być w głównym katalogu serwera! Czyli tym, w którym jest etded.x86, etmain i pb.

Aby uruchomić serwer musimy jednak zbudować polecenie startowe.

./etded.x86 +set fs_homepath <ścieżka serwera> +set fs_basepath <ścieżka serwera> +set net_ip <adres ip> +net_port <port> +set dedicated 2 +set sv_maxclients <liczba_graczy> +set sv_punkbuster 1 +exec server.cfg

Powyższe polecenie nie uruchomi serwera. Trzeba najpierw uzupełnić wartości komend startowych. Prawidłowe polecenie startowe znajduje się poniżej.

Aby wypełnić wartości komend startowych musimy znać IP, przypisane do maszyny, którego możemy używać do uruchomienia serwera. Jeżeli na tym samym IP uruchomione są inne serwery Enemy Territory musimy wiedzieć czy port, którego użyjemy jest wolny i może zostać użyty do uruchomienia serwera. Jeżeli jesteśmy pewni, że żadnych innych serwerów nie ma używamy domyslnego portu 27960. Oprócz tego musimy podać ścieżki instalacji serwera w wartośiach komend base* i homepath.

Przyjmijmy, że naszym adresem IP będzie 192.168.120.33. Uruchomimy serwer na domyślnym porcie 27960 z 8 slotami.

./etded.x86 +set fs_homepath /home/etded/ets/ +set fs_basepath /home/etded/ets/ +set net_ip 192.168.120.33 +net_port 27960 +set dedicated 2 +set sv_maxclients 8 +set sv_punkbuster 1 +exec server.cfg

Pamiętaj żeby w powyższym poleceniu zachować całą jego strukturę. Nie wolno wstawiać komend bez poprzedzenia ich spację i znakiem plusa na początku. Taki błąd w poleceniu spowoduje komplikacje przy uruchamianiu i serwer będzie je błędnie interpretował. Pamiętaj również, aby zamienić IP na przypisane do maszyny. Jeżeli wpiszesz niepoprawne IP ujrzysz następującą informację:

Opening IP socket: 192.168.120.33:27960
ERROR: UDP_OpenSocket: bind: Cannot assign requested address
Opening IP socket: 192.168.120.33:27961
ERROR: UDP_OpenSocket: bind: Cannot assign requested address
Opening IP socket: 192.168.120.33:27962
ERROR: UDP_OpenSocket: bind: Cannot assign requested address
Opening IP socket: 192.168.120.33:27963
ERROR: UDP_OpenSocket: bind: Cannot assign requested address
Opening IP socket: 192.168.120.33:27964
ERROR: UDP_OpenSocket: bind: Cannot assign requested address
Opening IP socket: 192.168.120.33:27965
ERROR: UDP_OpenSocket: bind: Cannot assign requested address
Opening IP socket: 192.168.120.33:27966
ERROR: UDP_OpenSocket: bind: Cannot assign requested address
Opening IP socket: 192.168.120.33:27967
ERROR: UDP_OpenSocket: bind: Cannot assign requested address
Opening IP socket: 192.168.120.33:27968
ERROR: UDP_OpenSocket: bind: Cannot assign requested address
Opening IP socket: 192.168.120.33:27969
ERROR: UDP_OpenSocket: bind: Cannot assign requested address
Sys_Error: Couldn't allocate IP port

Może być jednak sytuacja, w której serwer co prawda uruchomi się i wszystko będzie wyglądało poprawnie, ale nie podłączymy się do niego. Dzieje się tak w przypadku podania adresu, który faktycznie nie umożliwia połączenie się z serwerem, np. wtedy gdy ów adres jest adresem lokalnym, a nie globalnym.

Poniższe komendy wpisujemy z konta root-a.

Listę adresów globalnych przypisanych do maszyny można sprawdzić poleceniem:

ip a s | grep global | cut -f 1 -d "/"

Jeżeli nie jesteśmy pewni, który wybrać, bierzemy ten pierwszy:

ip a s | grep global -m 1 | cut -f 1 -d "/" | cut -f 2 -d "t"

Przypisanie tego adresu do serwera powinno załatwić sprawę.

Gdy już mamy gotowe polecenie startowe możemy za jego pomocą uruchomić serwer.

Serwer uruchomiony i wszystko byłoby w porządku gdyby nie fakt, że gdy zamkniemy konsolę proces serwera się wyłączy.

Nasuwa się zatem pytanie: co zrobić aby serwer działał cały czas? I w jaki sposób go restartować?

Sądzę, iż jeżeli czytasz ten poradnik nie za bardzo wiesz jak to zrobić, a tłumaczenie działania kilku kolejnych komend w systemie przysporzy więcej problemów niż pożytku. Dlatego dajmy sobie spokój z konwencjonalnymi sposobami, skorzystajmy ze screena.

Jak już wspomniałem - nie uważam się za żadnego eksperta dlatego ujmę to w prosty, a nie profesjonalny sposób:

Screen umożliwia uruchomienie serwera i jego działanie w tle nawet wtedy gdy wyjdziemy z konsoli lub wylogujemy się z konta. Zaletą tego programu jest to, że każdemu procesowi możemy przypisać dowolne ID (etykietę, nazwę). Ułatwia to znacznie identyfikację procesów gdy uruchamiamy większą ilość serwerów.

Aby uruchomić serwer przy użyciu screena musimy go zainstalować - chyba, że posiadamy go już w systemie, by to sprawdzić wydajemy polecenie

screen

Jeżeli przywita nas seksowny ekran z informacją w stylu:

Screen version 4.00.03jw4 (FAU) 2-May-06

Copyright (c) 1993-2002 Juergen Weigert, Michael Schroeder
Copyright (c) 1987 Oliver Laumann

(...)

[Press Space or Return to end.]

oznacza to, iż jesteśmy szczęśliwymi posiadaczami screena i możemy pociągnąć zdrowy łyk herbaty.

By nie robić zamieszania wciskamy spację i wpisujemy

exit

Konsola wyrzuci informację

[screen is terminating]

Jeżeli system uznał, że nie zna takiej komendy - będziesz musiał zainstalować screena.

Dla systemów Debiano-podobnych korzystamy z apt-get

Poniższe komendy wykonujemy z poziomu konta root-a.

apt-get install screen

Jeżeli nie możesz lub nie potrafisz zainstalować screena będziesz musiał o to kogoś poprosić. Ewentualnie używać innych sposobów uruchamiania procesu w tle.

Poniższe komendy wykonujemy z poziomu konta użytkownika.

Aby efektywnie wykorzystać screena uruchomimy proces naszego serwera etded od razu w tle. W tym celu korzystamy z komendy screen z atrybutami dmS.

Wykorzystajmy zatem przykładowe polecenie startowe serwera.

screen -dmS serwerek ./etded.x86 +set fs_homepath /home/etded/ets/ +set fs_basepath /home/etded/ets/ +set net_ip 192.168.120.33 +net_port 27960 +set dedicated 2 +set sv_maxclients 8 +set sv_punkbuster 1 +exec server.cfg

Powyższym poleceniem uruchomiany proces naszego serwera etded w tle nadając naszemu screenowi identyfikator: serwerek. Jest to o tyle fajna rzecz, że dzięki temu indetyfikatorowi możemy w łatwy sposób przywołać konkretny serwer, nie musząc przeszukiwać wszystkich procesów po adres IP czy porcie, gdyż byłoby to uciążliwe przy większej ilości serwerów.

Wszystkie uruchomione na naszym koncie użytkownika screeny, czyli innymi słowy wszystkie uruchomione serwery posiadają swój identyfikator. Składa się on z PID-u (numer identyfikacyjny procesu w systemie) oraz ID, przypisanego do screena przez nas. W tym przypadku: serwerek.

Aby wyświetlić wszystkie uruchomione na screenie procesy wpisujemy:

screen -ls

Wyświetlona zostanie lista uruchomionych screenów oraz informacja o tym gdzie zapisują się pliki z identyfikatorami tych procesów.

There is a screen on:
21907.serwerek (Detached)
1 Socket in /home/etded/.screen.

Jak powyższą informację rozumieć? Otóż jak widzimy jest uruchomiony jeden screen oznaczony "21907.serwerek". Status (Detached) oznacza, że screen jest schowany i działa w tle. status Attached oznacza, że ktoś (np. Ty :)) przywołał screena i działa na nim. Status Dead??? oznacza, że proces, który uruchomił screen został wyłączony i po screenie został tylko ślad w postaci pliku identyfikacyjnego. W tym wypadku wydajemy polecenie screen -wipe aby wyczyścić nieusunięte screeny.

Aby przywołać z powrotem proces serwera do konsoli wpisujemy poniższą komendę wraz z PIDem, czyli pierwszą częścią powyższego identyfikatora, tj. (w tym przypadku) 21907 lub korzystamy z ID procesu czyli "serwerek", ale tylko wtedy gdy ciąg znaków, z którego skorzystaliśmy jest unikalny i został użyty tylko dla danego procesu. W innym wypadku screen nie będzie wiedział, który z dwóch np. zawierających to samo słowo w ID screenów otworzyć.

Przywołujemy powyższego screena:

screen -r 21907

W tym momencie powinien otworzyć się screen, aczkolwiek prawie na pewno wyskoczy Wam informacja:

Cannot open your terminal '/dev/pts/0' - please check.

Może to być równie dobrze /dev/pts/1, 2, 3 i każdy kolejny. Co w tym wypadku robimy? Jeżeli mamy dostęp do roota przełączamy się na niego i wydajemy polecenie, nadające wszystkie prawa zapisu/odczytu i wykonywania dla terminalu, który jest dla nas zablokowany. Jak wspomniałem, nie jestem żadnym ekspertem i zapewne nie jest to sposób, w jaki należy to robić, ale ten jest mi znany i działa :)

Korzystamy zatem z nazwy terminalu, który nam wyskoczył i wykonujemy polecenie:

Poniższe komendy wykonujemy z poziomu konta root-a.

chmod 777 /dev/pts/0

Uwaga: Twój terminal może mieć inną nazwę! Np. /dev/pts/5. Wykonujemy wtedy to samo polecenie co wyżej tylko wpisujemy inny numer terminalu.

Wracamy na konto użytkownika i ponownie wykonujemy polecenie screen -r z ID lub PID-em (patrz wyżej). Jeżeli wszystko poszło tak jak powinno otworzy się konsola serwera. W tej konsoli możemy wydawać wyłącznie polecenia serwera etded. Innymi słowy to coś jak rcon. Cóż, to jest rcon :) Możemy wydać np. polecenie status, które pokaże informacje o serwerze.

Różnica pomiędzy rcon-em w konsoli, a tej w grze jest taka, że w grze wpisujemy komendy rcona poprzedzając je slashem "/" i komendą "rcon". W przypadku konsoli serwera nie dajemy "/rcon" przed komendami. Wpisujemy je bezpośrednio.

Jak zamknąć konsolę serwera aby dalej działał w tle? To proste. Wciskamy kombinację klawiszy:

CTRL + A + D

Wciskamy kolejno CTRL, przytrzymujemy go, następnie A, przytrzymujemy oba wciśnięte klawisze, następnie D i puszczamy całość. Powinniśmy znaleźć się z powrotem w konsoli systemowej.

Jeżeli nasz proces serwera się zawiesił, wystąpił jakiś błąd i chcemy go wyłączyć to będąc w konsoli serwera zamiast CTRL+A+D użyjemy kombinacji klawiszy:

CTRL + C

Spowoduje to wyłączenie procesu. Aby wyczyścić screena wpisujemy:

screen -wipe

7. Uruchamiamy modyfikacje

Właściwie uruchomienie modyfikacji na serwerze ogranicza się do dwóch czynności.

Najpierw musimy wgrać modyfikację na serwer, pamiętając o zachowaniu poprawnej struktury katalogów. Innymi słowy, folder modyfikacji umieszczamy w głównym katalogu serwera, czyli w tym samym miejscu, w którym znajduje się plik etded.x86 oraz folder etmain.

Przykładowo, jeżeli chcemy uruchomić serwer ETPro, folder o nazwie "etpro" wgrywamy do głównego katalogu serwera.

Aby to zobrazować posługując się przykładem, wchodzimy do katalogu, w którym zainstalowaliśmy serwer. Np.

cd /home/etded/ets/

I pobieramy modyfikację ETPro.

wget http://bani.anime.net/etpro/etpro-3_2_6.zip

Do rozpakowania potrzebujemy unzipa (była o nim mowa wyżej).

unzip etpro-3_2_6.zip

Teraz korzystając z nazwy folderu, w którym umieściliśmy modyfikację (w tym przypadku etpro) dopisujemy do naszego polecenia startowego komendę:

Uwaga! Poniższe polecenie nie będzie działać i wymaga wpisania poprawnej nazwy używanej modyfikacji.

+set fs_game etpro

Gdzie zamiast nazwamodyfikacji wpisujemy zgadnijcie co? Że lubimy pingwiny! Niee... nazwę modyfikacji. Np. etpro

+set fs_game nazwamodyfikacji

W konsekwencji PRZYKŁADOWE polecenie startowe będzie wyglądać następująco:

Uwaga! Poniższe polecenie nie uruchomi serwera. Wymaga wprowadzenia prawidłowych danych. Zapoznaj się z całym artykułem, aby dowiedzieć się więcej na ten temat.

./etded.x86 +set fs_homepath /home/etded/ets/ +set fs_basepath /home/etded/ets/ +set net_ip 192.168.120.33 +net_port 27960 +set fs_game etpro +set dedicated 2 +set sv_maxclients 8 +set sv_punkbuster 1 +exec server.cfg

Analogicznie wygląda sytuacja w przypadku każdej innej modyfikacji. Każdą uruchamia się w dokładnie taki sam sposób. Natomiast kwestie konfiguracji to już oczywiście odrębna sprawa.

O czym należy pamiętać instalując modyfikacje:

Przykładowo posiadając modyfikację jaymod ustawienia jaymoda przechowujmy w pliku ~/jaymod/jaymod.cfg.

I odnieśmy się do nich w głównym pliku konfiguracyjnym, czyli server.cfg. Wystarczy dopisać do niego:

exec jaymod.cfg

Tylko nie dawajcie "execu" (czyli wczytania danego pliku konfiguracyjnego) gdzie popadnie. Server.cfg zawiera ustawienia główne serwera. Dopiero gdy zostaną wczytane, wczytajcie ustawienia modyfikacji. Zatem "exec" najlepiej umieścić na końcu pliku server.cfg, ale PRZED rotacją map (lub poleceniem uruchomienia mapy). Przykładowo na końcu server.cfg można umieścić to w ten sposób:

// ładowanie konfigu modyfikacji
exec jaymod.cfg

// wczytywanie mapy
map oasis

Oczywiście tak samo możemy odnieść się do każdego innego pliku .cfg, który znajduje się w katalogu modyfikacji. Warunek: musi istnieć :) Niby nie ma to znaczenia, ale w konfiguracji modyfikacji (zjadłem worek pistacji) mogą znajdować się odniesienia do map lub rotacji (i osiedlowych akcji, joł), które są błędne lub w ogóle nawet poprawne, ale takie, których zwyczajnie nie chcemy (i po rymie :/). Zawsze będą one zastępowane poprawnym wpisem z server.cfg (piszę to w wierze w Wasze umiejętności).

Po co to wszystko? Dla porządku. Jak zasracie katalog modyfikacji różnymi .cfg, sami nie będziecie wiedzieli co, gdzie i jak, a wystarczy się trzymać prostych zasad.

8. Instalujemy ETAdminModa

Słowem wstępu: Modyfikacja ETAdminMod jest już od wielu lat nie wspierana. Zawiera błędy i luki bezpieczeństaw, które bezpośrednio wpływają na działanie serwera, a których nikt już raczej nie załata. Kilka miesięcy temu całkowicie znikła już z sieci oficjalna strona autora modyfikacji, która zresztą była bardzo opuszczona, zresztą podobno równie bardzo jak i sam autor (podejrzewa się, że popadł w nałóg alkoholowy i spędza całe dnie na obalaniu dużych ilości bliżej niezidentyfikowanych cieszy koloru wiśniowego).

Zanim uruchomimy ETAdminModa musimy przygotować do tego nasz serwer. Jeżeli wcześniej nie mieliśmy takich wartości komend należy je zamienić na następujące...

set g_log "etserver.log"
set logfile "2"
set g_logsync "0"

...po czym zrestartować serwer.

Upewniamy się również, że na serwerze jest ustawione rconpassword. Jest niezbędne do poprawnego działania ETAdminModa i należy zaznaczyć, że zmiana hasła rcona spowoduje zatrzymanie działania ETAdminModa w przyszłości (niekoniecznie dalszej, bardziej bliższej, a właściwie to... no dobra nie ważne).

Gdy już się upewniliśmy pobieramy etadmin_moda i wgrywamy go standardowo do głównego katalogu serwera (powtarzałem, który to już chyba z 5 razy w tym artykule).

wget http://ga.lamarr.pl/dn/etadmin_mod-0.29.tar.gz

I odpakowujemy drania (bez kompresji gzip).

tar -xvf etadmin_mod-0.29.tar.gz

Paczka nie jest nam już dłużej potrzebna. (WIECIE CO Z NIĄ ZROBIĆ!?)

rm etadmin_mod-0.29.tar.gz

Teraz wbijamy się do katalogu etadmin_mod i edytujemy plik etadmin_mod.sh.

cd etadmin_mod
mcedit etadmin_mod.sh

Interesuje nas tutaj właściwie tylko jedna tzw. zmienna, ale warto ustawić też drugą. Konkretnie:

Poniżej znajdują się przykładowe dane, które nie działają. Należy je zamienić na poprawne! Zapoznaj się z dalszą częścią artykułu.

BASEDIR=/var/games/enemy_territory/test/etadmin_mod

# Set this to a unique string for every instanz of etadmin_mod
# running on your server.
INSTANZ_NAME=base

Otóż zwierza pod tytułem BASEDIR= musimy edytować i zamiast wyróżnionej zielonym kolorem nadziei wpisać poprawną, absolutną ścieżkę do katalogu etadmin_mod naszego serwera.

Posługując się użytym w tym artykule przykładem naszym katalogiem serwera jest /home/etded/ets/. Zatem ścieżka do etadmin_moda to /home/etded/ets/etadmin_mod

Zwierz pod tytułem INSTANZ_NAME= zamieniamy na jakąś chwytliwą, unikalną nazwę. Tylko bez spacji i znaków specjalnych. Wpiszcie tu na przykład: serwerekk

I tak PRZYKŁADOWE zmienne będą wyglądały tak:

BASEDIR=/home/etded/ets/etadmin_mod

# Set this to a unique string for every instanz of etadmin_mod
# running on your server.
INSTANZ_NAME=serwerek

Proste? Proste. Teraz przechodzimy do katalogu ~/etadmin_mod/etc/ (folder etc), w którym natrafiamy na trzy krwiożercze pliki:

etadmin.cfg
etadmin_etpro_example.cfg
etadmin_shrub_example.cfg

Pierwszy z nich "etadmin.cfg" jest do tego stopnia przebrzydły i bezczelny, iż proszę ja Was moi drodzy podszywa się (i to całkiem skutecznie!) pod drugi plik etadmin_etpro_example.cfg.

Ale my mu się nie damy. Naśladując Kubusia Puchatka popadamy w zadumę. Myśląc długo i intensywnie w konsekwencji nie dochodząc do niczego istotnie ważnego zastanawiamy się, który z w/w plików tak naprawdę jest nam potrzebny. Czy 1) przebrzydły etadmin ninja, czy 2) etadmin etpro, przeznaczony dla (no zgadnijcie) etpro..., czy może 3) etadmin shrub, przeznaczony dla wszystkich modyfikacji postshrubowych (tj. etpub, jaymod, noquarter).

Jeśli wybraliście kandydata nr 1 właśnie zginęliście w bliżej niewyjaśnionych okolicznościach.

Usuńcie etadmin.cfg.

Jeżeli checie postawić serwer ETPro lub ETMain (bez modyfikacji) usuwacie plik etadmin_shrub_example.cfg.

Jeśli stawiacie serwer ETPub, Jaymod, NoQuarter lub podobne usuwacie etadmin_etpro_example.cfg.

Nazwę pliku, który Wam pozostał zamieniacie na etadmin.cfg. Np. dla serwera ETPro:

mv etadmin_etpro_example.cfg etadmin.cfg

Teraz edyujemy etadmin.cfg.

Interesują nas następujące ustawienia sekcji [config] - kolejno:

et_mod = 2

logfile = /path/to/.etwolf/etpro/etconsole.log

W tym miejscu umieszczamy ścieżkę do pliku etconsole.log naszego serwera. Może być w dwóch różnych miejscach w zależności od tego czy mamy ustawione base i homepath w poleceniu startowym serwera. Pierwsza ewentualność to ścieżka do folderu .etwolf w katalogu domowym użytkownika. W naszym przypadku /home/etded/.etwolf/

logfile = /home/etded/.etwolf/etpro/etconsole.log

Druga ewentualność to ścieżka do katalogu głównego serwera.

logfile = /home/etded/ets/mod/etconsole.log

Gdzie mod to nazwa folderu używanej modyfikacji. Np. jaymod, noquarter etc.

server_password = password

Zamiast password wpisujemy hasło rcon-a serwera.

server_addr = localhost

Zamiast localhost wpisujemy prawidłowy adres IP serwera.

server_port = 27960

W tym miejscu wpisujemy port serwera. W większości przypadków zmiana nie jest konieczna, jeżeli posiadasz standardowy port serwera. Jeżeli jednak posiadasz inny port ustaw prawidłowy port serwera zamiast 27960.

Tak skonfigurowany etadmin_mod jest gotowy do pracy.

Etadmin_mod uruchamia się w katalogu ~/etadmin_mod/ poleceniem:

./etadmin_mod.sh start

Jeśli coś poszło nie tak etadmin_mod zwróci komunikat:

Starting etadmin_mod: FAILED! [] (See logfile log/etadmin.log for details!)

Wtedy warto sprawdzić dokonane zmiany i konfigurację, a jeżeli uważamy, że wszystko zrobiliśmy dobrze sprawdzamy plik ~/etadmin_mod/log/etadmin.log, do którego zapisują się komunikaty etadmin_moda.

Uruchomiony etadmin_mod można zatrzymać poleceniem:

./etadmin_mod.sh stop

Inne opcje: ./etadmin_mod.sh {start|stop|restart|reload|status}. Pierwsze trzy wiadomo. Reload przeładowuje konfigurację po dokonaniu zmian. Status pokazuje... status serwera. Innymi słowy czy jest uruchomiony czy też nie.

Dodawanie adminów

Aby dodać uprawnienia administracyjne danej osobie (również sobie) trzeba posiadać jej PEŁNY - co istotne - PBGUID, który ma 32 znaki.

Jak sprawdzić swój PBGUID? To proste.

W grze lub na serwerze z PB wpisujecie kolejno w konsoli ( ~ tylda pod ESC ):

/clear				// usunie niepotrzebne info z consoli
/pb_sv_plist			// po tej komendzie powinna wyświetlić się tabelka z numerem slotu, twoim nickiem, ip i guidem
/condump mojguid.txt		// zapisze twoj guid w pliku mojguid.txt w katalogu z modem

Wychodzisz z gry i w katalogu etmain lub katalogu używanej modyfikacji szukasz pliku mojguid.txt. Z niego odczytujesz swój PBGUID, który ma mieć 32 znaki.

Edytujecie plik shrubbot.cfg w katalogu ~/etadmin_mod/etc/

Struktura tego pliku wygląda w etadmin_modzie najprościej ze wszystkich modyfikacji opartych o shrubbot. Podzielony jest na wpisy oznaczone etykietą [level] oraz [admin]. Każdy level to poziom administracyjny. Komendy, których mogą używać dane poziomy administracyjne znajdują się w pliku etadmin.cfg. Tam można zauważyć, że konkretne komendy przypisane są do danego poziomu od 0 do 5. Można je dowolnie edytować.

[level]
level   = 0
name    = Prole
flags   = ahCuiB

[level]
level   = 1
name    = ^fI am Protected
flags   = ahCuiB12

[level]
level   = 2
name    = ^fAdmin I
flags   = ahCuiB125cmkbpPS

[level]
level   = 3
name    = ^fAdmin II
flags   = ahCuiB125678cmkbrwpPS

[level]
level   = 4
name    = ^fAdmin III
flags   = *Gs

[level]
level   = 5
name    = ^3FLOOR MASTER
flags   = *

[admin]
name    = Your Name
guid    = XXXXXXXXXX-YOURGUID-XXXXXXXXXXXXXXX
level   = 5
flags   =

Zamiast XXXXXXXXXX-YOURGUID-XXXXXXXXXXXXXXX wklejamy swój PBGUID. W zmiennej name wpisujemy swój nick. Jednak nie używamy kolorów, jest to zbędne. Zmienna level oznacza poziom, który otrzymuje dany administrator. Poszczególnym osobom można przypisywać dowolny poziom.

Po zapisaniu zmian w shrubbot.cfg, podczas gdy etadmin_mod jest uruchomiony należy przeładować ustawienia lub przeładować mapę na serwerze.

Gdy po wejściu na serwer wyświetla się informacja, że dany nick jest zarejestrowany i zostaniemy wyrzuceni po kilkunastu sekundach jeśli nie zmienimy szybko nicka oznacza to, że podaliśmy inny PB GUID niż ustalony w shrubbocie. Taka sytuacja ma miejsce gdy np. zreinstalowaliśmy grę lub system oraz w przypadku gdy pomyliliśmy się przy wpisywaniu PBGUID-a do shrubbot.cfg.

Jeśli nie ma takiej informacji wpisujemy na chacie:

!admintest

Jeśli wyświetli się informacja na czacie oznacza to, że ustawiliśmy poprawnie swój poziom administracyjny. Jeśli informacja nie pojawi się, należy spróbować zrestartować lub przeładować mapę na serwerze. Jeśli wtedy nagle informacja pojawi się oznacza to, że zawiodły logi serwera, tj. nie ustawiliśmy poprawnie pliku server.cfg. Ostatecznie informacja w ogóle może się nie pojawić. Oznacza to, że etadmin_mod w ogóle nie jest włączony.

Dźwięki ETAdminMod-a.

Dodatkowe dźwięki etadmin_moda, takie jak multikill, killing spree itd. można pobrać stąd:

wget http://maps.arni.name/etpro/etadmin_sounds.pk3

Należy umieścić je w katalogu używanej modyfikacji.

Następnie edytujemy plik sounds.cfg w katalogu ~/etadmin_mod/etc/ i zamieniamy wartość komendy:

spree_sounds = 0

na

spree_sounds = 1

Dla modyfikacji ETPro potrzebny jest plugin playsound.lua. Bez niego dźwięki nie będą działały. Należy umieścić go w folderze etpro.

wget http://ga.lamarr.pl/dn/playsound.lua

Następnie do konfiguracji serwera dodać następującą komendę:

set lua_modules "playsound.lua combinedfixes.lua"

Jeżeli nie macie combinedfixes.lua to obowiązkowo pobierzcie. Zawiera sporo zabezpieczeń serwera.

wget http://ga.lamarr.pl/dn/combinedfixes.lua

Po wykonaniu wszystkich powyższych czynności dźwięki powinny działać poprawnie. Pamiętajcie, że zmiany komunikatów, powiązanych z dźwiękami w etadmin.cfg spowoduje, ze przestaną działać, dopóki nie zostaną poprawnie zmienione również w sound.cfg dlatego najlepiej zostawić je w spokoju jeżeli nie do końca rozumie się sposobu ich działania, który notabene polega na prostej zależności, którą łatwo zauważyć.

9. Bezpieczeństwo serwerów ET

Jeżeli masz serwer ETPro i wersję gry 2.60b od razu zainstaluj i aktywuj na serwerze powyższy skrypt combinedfixes.lua. Zawiera sporo zabezpieczeń, napisanych przez społeczność forum twórcy ETPro.

Z uwagi na fakt, iż serwery Enemy Territory mają już swoje lata i zainteresowanie grą z roku na rok drastycznie spada jest to gra, która w coraz mniejszym stopniu wspierana jest przez społeczność. Aczkolwiek nie oznacza to, że takie wsparcie znikło zupełnie. Nie można zapomnieć o wciąż rozwijanym projekcie modyfikacji No Quarter oraz o equalone, który usprawnił działanie i bezpieczeństwo serwerów w wersji 2.55+, umożliwił ich integrację z wersją 2.60b, a także wydał sporo ciekawych modyfikacji jaymoda, także pod kątem bezpieczeństwa.

Polecam zapoznać się z tymi projektami, ponieważ mogą zapewnić maksimum bezpieczeństwa i stabilności serwera. Owszem No Quarter działa różnie, czasem może doprowadzać serwery do cyklicznego wyłącza się bez powodu. Niemniej chodzi głównie o bezpieczeństwo przed ludźmi, wykorzystującymi luki w grze, a owych luk jest całkiem sporo. Wystarczy przejąć dostęp do rcon-a serwera by zrobić na nim zadymę.

Dlatego w przypadku posiadania serwera w wersji 2.55 zaopatrzmy się w binarki 2.55+ niejakiego equalone. Jeśli używamy jaymoda, warto zainteresować się jego innymi dodatkami. W przypadku No Quartera warto korzystać z pomocy na forum twórców. Jeśli posiadamy wersję 2.60b i ETPro należy zainstalować zbiór zabezpieczeń, do którego odniosłem się wyżej. Należy jednak pamiętać, że nie daje to gwarancji na stabilne i bezpieczne działanie serwera, ale w dużym stopniu zmniejsza szanse złośliwców na przejęcie dostępu do rcon-a czy nawet całkowite wyłączanie serwera.

© by c0m4r. Uszanuj moją pracę. Powyższy artykuł jest chroniony prawem autorskim jako własność intelektualna właściciela serwisu. Kopiowanie powyższego artykułu bez pisemnej zgody autora jest zabronione.

Do góry