PL/Server Manual: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
 
(31 intermediate revisions by 7 users not shown)
Line 1: Line 1:
__TOC__
__TOC__


== Wprowadzenie ==
== Pierwsze kroki ==
Uruchomienie swojego własnego serwera MTA:SA jest o wiele łatwiejsze niż mogło by się wydawać. Jeżeli chciałbyś postawić serwer by pograć ze znajomymi, lub po prostu z ludźmi z sieci - Zachęcam do lektury.
Uruchomienie swojego własnego serwera MTA:SA jest o wiele łatwiejsze niż mogłoby się wydawać. Jeżeli chciałbyś postawić serwer by pograć ze znajomymi lub po prostu z ludźmi z sieci - zachęcam do lektury.


== Instalacja serwera ==
== Instalacja serwera ==
Poniżej opisane są sposoby instalacji serwera w zależności od posiadanego systemu operacyjnego
Poniżej opisane są sposoby instalacji serwera w zależności od posiadanego systemu operacyjnego.


=== Linux ===
=== Linux ===
Serwer, pod Linuksem można zainstalować na dwa sposoby:  
Serwer pod Linuksem można zainstalować na kilka sposobów:
* [http://wiki.github.com/multitheftauto/multitheftauto/building-on-gnulinux Kompilując kod źródłowy ]
* [[Installing and Running MTASA Server on GNU Linux | Instalując i uruchamiając MTA na systemie linux]]
* [http://linux.mtasa.com Uruchamiając gotowe binarki (wcześniej skompilowane pliki) ]
* [http://linux.mtasa.com Uruchamiając gotowe binarki (wcześniej skompilowane pliki) ]
* [[Building MTASA Server on GNU Linux | Kompilując własny kod źródłowy serwera]]


=== Linux (x64/x86) ===
Dodatkowe informacje możemy znaleźć [[PL/Linux_64 | tutaj]]
Dokładniejszy opis dedykowany instalacji serwera na systemach 64 lub 86 bitowych (które nie są supportowane przez team mta) można znaleźć w moim [[PL/Linux_64 | dokładniejszym opisie ]]
 
Możesz doświadczyć różnych błędów i częstych problemów. Jeśli tak się dzieje to sprawdź
* [[Building MTASA Server on GNU Linux#Troubleshooting]]
 
=== FreeBSD ===
Możesz uruchomić MTA:SA na FreeBSD za pomocą emulatora Linuxa.
* Włącz [https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/linuxemu-lbc-install.html Kompatybilność plików binarnych linuxa]
* Zainstaluj lub skompiluj następująće pakiet: hs-terminfo, linux_base-f10, linux-f10-sqlite3
* Zaintaluj [https://linux.mtasa.com/ Skompilowane binarki dla linuxa]


=== Windows ===
=== Windows ===
Instalacja serwera na Windowsie jest prosta "jak budowa cepa".
Instalacja serwera na Windowsie jest prosta "jak budowa cepa".
* Najpierw pobieramy instalator [http://mtasa.com ze strony głównej]
* Najpierw pobieramy instalator [http://mtasa.com ze strony głównej]
* Po ściągnięciu uruchamiamy owy instalator
* Po ściągnięciu uruchamiamy ów instalator
* Wybieramy folder gdzie chcemy zainstalować MTA (serwer jest w jednej paczce z klientem)
* Wybieramy folder gdzie chcemy zainstalować MTA (serwer jest w jednej paczce z klientem)
* Klikamy na zainstaluj...
* Klikamy na zainstaluj...
* ...i gotowe!
* ...i gotowe!


''Serwer po zainstalowaniu ma domyślnie wgrany panel-www (domyślnie na porcie 22005).
Aby dowiedzieć się czym jest lista kontroli dostępu w pliku acl.ml, sprawdź [[PL/Access_Control_List|ACL]]<br/><br/>
Aby dodać użytkownika tego panelu należy w konsoli serwera MTA wywołać następujące polecenia (dla konta bronislaw/lopata):
<syntaxhighlight lang="lua">addaccount bronislaw lopata</syntaxhighlight>
i nadać mu prawa administratora poprzez dodanie
<syntaxhighlight lang="lua"><group name="Admin">
        <acl name="Moderator" />
        <acl name="SuperModerator" />
        <acl name="Admin" />
        <acl name="RPC" />
        <object name="resource.admin" />
        <object name="resource.webadmin" />
        <object name="user.bronislaw" />
</group></syntaxhighlight>
w pliku acl.xml (należy dodać tylko linijke ''<object name="user.bronislaw" />'') w podanym miejscu).
''


== Konfiguracja serwera ==
== Konfiguracja serwera ==
Multi Theft Auto serwer dedykowany jest wstępnie konfigurowane przez to okno konsoli, z poziomu gry, a od przeglądarki internetowej. W celu skorzystania z dwóch opcji ostatnio, należy dodać co najmniej jednego administratora do swojego pliku konfiguracyjnego.
Serwer Multi Theft Auto jest wstępnie konfigurowany z okna konsoli, z poziomu gry i z przeglądarki internetowej.
 
=== General konfiguracji ===
Wszystkich ogólnych opcji konfiguracji można znaleźć w "mods / deathmatch /'''mtaserver.conf''plik''i mogą być otwarte przez regularne edytora tekstu.


Ten plik jest bardzo prosta, co zmienna opis tego, co z nim zrobić i jak to zmienić.
=== Ogólna konfiguracja ===
Podstawowa konfiguracja serwera znajduje się w pliku "mods/deathmatch/[[PL/mtaserver.conf|mtaserver.conf]]".
Plik ten można edytować za pomocą dowolnego edytora tekstu (jeśli nie mamy zainstalowanego żadnego "specjalistycznego" edytora - na Windowsie można użyć windowsowego ''notatnik''-a, zaś na Linuksie ''nano'' lub ''vi'').


=== Przekierowanie portów ===
=== Przekierowanie portów ===
W przypadku uruchomienia serwera na własnym komputerze prywatnych i masz router od internetu i komputera. Musisz przekierować 3 porty.
W pliku [[PL/mtaserver.conf|mtaserver.conf]] znajdują się takie dwie linijki:
 
<syntaxhighlight lang="xml">
Przede wszystkim otworzyć plik "mods / deathmatch /'''''''mtaserver.conf i szukaj następnej linii:
<serverport>22003</serverport>  
<syntaxhighlight lang="lua"> [xml]
<httpport>22005</httpport>
<serverport> 22004 </> serwera>
</syntaxhighlight>
<httpport> 22005 </> httpport
</ Code>


Porty potrzebne do uruchomienia serwera w prawo. Wyjaśnimy później, jak je ustawić, ale najpierw, jeśli chcesz serwer do listy serwerów w przeglądarce jest inny port trzeba, i to jest ASE portu.
Porty potrzebne do prawidłowej konfiguracji serwera. Wyjaśnimy później, jak je ustawić, ale najpierw, jeśli chcesz, aby Twój serwer pojawiał się w przeglądarce serwerów, potrzebujemy innego portu, a jest to port ASE.
(Szybki przykład jak włączyć lub na ASE):
<syntaxhighlight lang="lua"> [xml]
<ase> 1 </ ASE> <! - 0 = off, 1 = na ->
</ Code>


Teraz idziemy do przodu portów w router, który nie jest potrzebny, jeśli masz już wszystkie otwarte porty, lub jeśli nie masz router z firewallem. Jeśli tak, to pominąć tę część.
(krótki przykład włączania i wyłączania ASE):
<syntaxhighlight lang="xml">
<ase>1</ase> <!-- 0 = wyłączony, 1 = włączony -->
</syntaxhighlight>


Jeśli nie wiesz jak działa przekierowanie portów w routerze, przejdź do: http://portforward.com/, znaleźć tam router, i postępuj zgodnie z instrukcjami.
Teraz przekierujemy porty w Twoim routerze, co nie jest potrzebne, jeśli masz już otwarte wszystkie porty lub jeśli nie masz routera z zaporą sieciową. Jeśli tak, pomiń tę część.


W prawie każdym routerze można ustawić port typu: UDP lub TCP. Na poniższej liście, które wyjaśni port typu co jest potrzebne do:
Jeśli nie wiesz, jak działa przekierowanie portów w Twoim routerze, wejdź na [https://portforward.com/ stronę Port Forward], znajdź tam model swojego routera i postępuj zgodnie z zawartymi tam instrukcjami.


Prawie w każdym routerze można ustawić typ portu: UDP lub TCP. Poniższa lista wyjaśni, jaki typ portu jest potrzebny do czego:


port serwera głównego: UDP
Główny port serwera: UDP
 
Port HTTP: TCP
Port HTTP: TCP
Port ASE: UDP (jest to potrzebne, jeśli chcesz, aby Twój serwer pojawił się na liście serwerów)


ASE portów: UDP (jest to potrzebne, jeśli chcesz, aby serwer pojawi się na liście serwera)
Port ASE jest również łatwy do uzyskania - Port ASE = port głównego serwera + 123
Jeśli więc masz port głównego serwera ustawiony na 22003, port ASE będzie miał numer 22126.


'''Jeśli masz jakieś problemy''' (i przeszukałeś podaną wcześniej stronę [https://portforward.com/ portforward.com] to zapoznaj się z tym wątkiem
<br/>
[https://forum.mtasa.com/topic/115141-guide-port-forwarding-in-order-to-run-a-mta-server/ '''Przekierowanie portów dla serwerów MTA''']


Port ASE jest po prostu otrzymujemy:
''W najnowszej wersji serwera możesz sprawdzić status portu za pomocą komendy serwera [[PL/Server_Commands#openports|openports]].''


ASE port = port serwera głównego + 123
=== Kontrola klienta ===


Tak więc, jeśli główny port serwera do 22003, a następnie będzie ASE port 22126.
Serwer MTA można skonfigurować na kilka sposobów. Możemy na przykład wyłączyć jakieś komponenty systemu AntyCheat, lub zezwolić na zmodyfikowane pliki gry. Wszystkie te ustawienia znajdują się w pliku '''mods/deathmatch/[[PL/mtaserver.conf|mtaserver.conf]]'''. Możesz także zapoznać się z [[PL/Anti-cheat guide | konfiguracją antycheat]].


Powodzenia!
Jeżeli chcesz ustawić minimalną wersje klienta, wyszukaj taką linijkę:
<syntaxhighlight lang="xml">
<minclientversion></minclientversion>
</syntaxhighlight>
Przykładowa wersja wygląda tak: 1.1.1-9.02320


Dodawanie administratorów === ===
=== Konta administratorskie ===
Stanowczo zaleca, aby dodać przynajmniej jeden administrator z serwerem w celu korzystania z wbudowanego serwera WWW i łatwo utrzymać i konfigurowania serwera. Następnie administrator to również być w stanie zalogować się z poziomu gry i kontrola serwera.
Zaleca się, aby serwer posiadał przynajmniej jedno konto administratora - tak, aby właściciel serwera miał w każdej chwili możliwość włączenia/wyłączenia serwera (lub danej jego części poprzez panel-www, konsole, grę).


Aby dodać administratora na serwerze, wykonaj następujące kroki: <br>
Aby dodać konto administratora, postępuj według tych kroków:<br>
<ol>
<ol>
<li> Upewnij się, że serwer jest zatrzymany, jeśli serwer nadal działa, wszystkie zmiany wprowadzone zostaną zastąpione </ li>
<li>Uruchom serwer i dodaj nowe konto za pomocą '''[[PL/Server_Commands#addaccount|addaccount login haslo]]''' w konsoli serwera, o tak:
<li> Otwórz plik "mods / deathmatch / '''''accounts.xml z każdym <edytora tekstu / li>
<div style="margin: 10px 10px 10px 10px;">
<li> Dodaj nowe konto do plików przy użyciu składni XML poniżej, używamy nazwy użytkownika "BennyLava" z hasłem "123password" dla celów ilustracyjnych
<syntaxhighlight lang="xml">
<div style="padding: 10px">
addaccount SEBA18293 12344321
<syntaxhighlight lang="lua"> [xml]
</syntaxhighlight>
<accounts>
</div>
  ...
<div style="margin: 10px 10px 10px 20px;">
  konta> name="BennyLava" password="123password" />
''Uwaga: Jeżeli nie masz konsoli serwera, i zasób 'admin' nie jest uruchomiony, to możesz użyć komendy register, której użyjesz tak:\
</ Accounts>
'''/register SEBA18293 12344321'''''
</ Code>
</div>
</ Div>
<li>Serwer wyświetli wiadomość, że konto zostało zarejestrowane
<li> Zapisz i zamknij plik </ li>
<li>Następnie wyłącz serwer za pomocą '''shutdown''' w konsoli serwera.
<li> Otwórz plik "mods / deathmatch / '''''acl.xml z każdym <edytora tekstu / li>
<li>Serwer zostanie zatrzymany.</li>
<li> Dodaj konto Administrator''do''grupy za pomocą składni XML-poniżej
<li>Otwórz plik 'mods/deathmatch/acl.xml' za pomocą edytora tekstu.</li>
<li>Dodaj konto do grupy ''Admin''
<div style="padding: 10px">
<div style="padding: 10px">
<syntaxhighlight lang="lua"> [xml]
<syntaxhighlight lang="xml">
<ACL>
<acl>
   ...
   ...
   <group name="Admin">
   <group name="Admin">
     <acl name="Admin"/>
     <acl name="Admin"/>
     ...
     ...
     Trwa name="user.BennyLava" />
     <object name="user.SEBA18293" />
   </> Grupy
   </group>
   ...
   ...
</ ACL>
</acl>
</ Code>
</syntaxhighlight>
</ Div>
</div>
 
Gratulacje, dodałeś konto administratora. W ten sposób możesz dodać dowolną liczbę administratorów lub użytkowników. Przyjrzyj się na przykład niektórym innym grupom i listom ACL. Dostęp do listy ACL można także uzyskać poprzez odpowiednie funkcje, sprawdź [[PL/ACL|ACL]].
 
Zaleca się zajrzeć do interfejsu internetowego, poniżej wyjaśnimy, jak to zrobić.


Możesz rzeczywiście dodać użytkownika do dowolnej grupy chcesz. Każda grupa związana jest z ACL ([[Access Control List]]). Każdy ACL zawiera szereg konkretnych dozwolony czy zabroniony praw. Grupy te istnieją tak różnych użytkowników mogą być przypisane różne prawa. ''''Admin punktów grupy, aby Admin''''ACL, które jest puste (dzięki czemu wszystkie możliwe polecenia). ''''Każdy punktów do grupy''Default''ACL, które stawia szereg ograniczeń w dostępnych komend (zrezygnowania z korzystania z regularnych graczy komendy admin).
Uwaga: Istnieją również sposoby dodawania kont i edytowania uprawnień serwera podczas jego działania. "[[PL/Server_Commands#addaccount|addaccount <login> <haslo>]]" to wewnętrzne polecenie służące do dodawania kont, ale w celu dodania tych kont do określonych grup/list ACL konieczne będzie użycie interfejsu internetowego!
</ Li>
<li>
Gotowe! Możesz dodać dowolną liczbę administratorów i użytkowników, jak chcesz w ten sposób, spójrz na kilka innych grup i list ACL na przykład. ACL jest dostępne również w [[Access_Control_List | Lua skryptów]]. <br>


Zaleca się, aby spojrzeć na interfejs WWW, będziemy wyjaśniać, jak to zrobić poniżej.
Można także zmodyfikować plik acl.xml podczas działania serwera i użyć komendy "[[PL/Server_Commands#reloadacl|reloadacl]]"
</ Li>
</li>
</ Ol>
</ol>
'''Uwaga''': Nie ma także sposoby dodawania i edycji kont praw do serwera w trakcie jej prowadzenia. "Addaccount <użytkownik> <hasło>" to wewnętrzna komenda do dodawania kont, ale musisz korzystać z interfejsu sieciowego, aby dodać tych rachunków na rzecz określonych grup / list ACL! <br />


=== Korzystanie z interfejsu WWW ===
=== Korzystanie z interfejsu WWW (panelu www) ===
Serwer dedykowany jest wyposażony w kilka Lua [[Zasoby]], które stanowią miły mały interfejs www na serwerze. Może to zostać wykorzystane na łatwe utrzymanie serwera, ponieważ pozwala na dodawanie użytkowników, start / stop zasoby i inne.
Interfejs WWW daje nam możliwość zdalnego zarządzania serwerem. Możemy za jego pomocą dodawać użytkowników, zarządzać grupami ACL oraz [[PL/Zasoby|zasobami]] na serwerze.
Cały interfejs jest dostarczany wraz z serwerem przy pomocy kilku [[PL/Zasoby|zasobów]].


Zasobów interfejsu sieciowego są domyślnie włączone i obsługiwane za pomocą wbudowanego serwera HTTP. Upewnić się, że wbudowany serwer WWW HTTP działa na porcie chcesz (domyślnie 22005), wykonaj następujące kroki:
Zasoby odpowiedzialne za interfejs www uruchamiane wraz z serwerem w domyślnej konfiguracji. Panel WWW jest dostępny na wbudowanym serwerze HTTP, domyślnie na porcie 22005. Aby sprawdzić czy serwer ten jest aktywny należy wykonać poniższe kroki:
<ol>
<ol>
<li> Upewnij się, że serwer został zatrzymany
<li>Zatrzymaj serwer</li>
<li> Otwórz plik'''mods / deathmatch /''mtaserver.conf "z każdym <edytora tekstu / li>
<li>Otwórz plik [[PL/mtaserver.conf|mtaserver.conf]] znajdujący się '''mods/deathmatch'''</li>
<li> Sprawdź, czy serwer HTTP jest włączona:
<li>Upewnij się czy serwer HTTP jest włączony:
<div style="padding: 10px">
<syntaxhighlight lang="xml">
<syntaxhighlight lang="lua"> [xml]
<httpserver>1</httpserver>
<httpserver> 1 </> httpserver
</syntaxhighlight>
</ Code>
</li>
</ Div>
<li>Ustaw port HTTP według własnych potrzeb (domyślnie 22005):
</ Li>
<syntaxhighlight lang="xml">
<li> Zmiana portu serwera HTTP do swoich potrzeb:
<httpport>22005</httpport>
<div style="padding: 10px">
</syntaxhighlight>
<syntaxhighlight lang="lua"> [xml]
</li>
<httpport> 22005 </> httpport
<li>Zapisz zmiany i zamknij plik</li>
</ Code>
<li>Uruchom serwer</li>
</ Div>
<li>Do poprawnego działania interfejsu WWW muszą być uruchomione następujące zasoby:
</ Li>
# resourcebrowser
<li> Zapisz i zamknij plik konfiguracyjny </ li>
# resourcemanager
<li> Start <serwera / li>
# webadmin
<li> Jeśli się zmieniło uruchomienia zasobów w pliku konfiguracyjnym, sprawdź, czy są uruchomione następujące środki:
# webmap
 
Dlatego jeśli dokonałeś jakichkolwiek zmian w autostarcie zasobów, upewnij się, że powyższe są uruchomione. Jeśli nic nie ruszałeś to domyślnie są uruchomione wraz ze startem serwera.
</li>
<li>Otwórz przeglądarkę internetową (Internet Explorer 6 oraz 7 '''nie jest wspierany''') i przejdź do serwera HTTP wprowadzając adres URL '''http://ip_serwera:port/'''.</li>
<li>Po przejściu serwer poprosi o zalogowanie się - Logujemy się tam danymi administratora konta [[PL/Access_Control_List|ACL]], które opisaliśmy w poprzedniej sekcji wyżej.</li>
</ol>


# Resourcebrowser
Od tej pory mamy dostęp do zarządzania serwerem przez interfejs WWW.
# Resourcemanager
# Webadmin
# Webmap


Są one uruchamiane automatycznie w pliku konfiguracji, w przypadku, gdy tylko zainstalowany serwer.
=== Konfiguracja zewnętrznego serwera WWW (np. do serwowania plików statycznych tj. obrazki, modele itd.) ===
</ Li>
Wbudowany serwer HTTP jest także używany do pobierania plików uruchomionych zasobów na serwerze do każdego gracza z osobna. Przykładowo jeśli masz na serwerze jakiś zasób, który zawiera graficzny interfejs lub jakieś modele do podmiany to pliki takie jak obrazki, modele, kolizje, tekstury itd muszą zostać przesłane z serwera do każdego gracza na serwerze. To zadanie właśnie wykonuje domyślnie wbudowany serwer HTTP lub ustalony przez nas serwer zewnętrzny (zazwyczaj jest szybszy), z tym, że taki zewnętrzny serwer musimy skonfigurować zupełnie osobno.
<li> Otwórz przeglądarkę internetową (Internet Explorer 6 lub 7 NIE są obsługiwane: użyj [http://www.mozilla.com/firefox Mozilla Firefox], [http://www.google.com/chrome Google Chrome] [http://www.apple.com/safari/download Apple Safari], [http://www.opera.com Opera] lub inne) i przejdź do serwera HTTP URL:'''http://serwer: port /'''. Na przykład, jeśli używasz systemu lokalnego serwera HTTP na port 22005,''użytkowania "http://127.0.0.1:22005/'''.</ li>
<li> Wprowadź nazwę użytkownika i hasło administratora dodaną w poprzedniej części. </ li>
</ Ol>


<br />
Mając na uwadze wydajność i spójność serwera możesz skonfigurować zewnętrzny serwer HTTP do pobierania plików na serwerze przez graczy. Zewnętrzny serwer WWW musi być publicznie dostępny, tak aby każdy gracz na serwerze (klient) mógł się połączyć z tym serwerem w celu pobrania potrzebnych plików klienta. Taki zabieg może przyśpieszyć proces pobierania oraz odciążyć serwer.
Teraz powinno być w stanie utrzymać serwer z poziomu interfejsu WWW.


=== Konfiguracja serwera WWW === zewnętrznych
Aby umożliwić pobieranie plików z zewnętrznego serwera WWW należy skonfigurować pole [[PL/mtaserver.conf#httpdownloadurl|httpdownloadurl]]:
Wbudowany serwer www jest również na obsługę plików, które są wymagane ze środków uruchomionych na serwerze, aby każdy gracz, który jest podłączony do serwera. Na przykład, jeśli używasz skryptu gry z graficznego interfejsu użytkownika skryptów lub własnych modeli, które powinny być przekazywane co związane gracz, aby funkcjonować prawidłowo. Odbywa się to albo przez wbudowany serwer WWW, lub zewnętrznego serwera WWW (który jest zwykle nieco szybciej), ale musi być ustalony oddzielnie.


Do wydajności lub zachowania spójności w trakcie gry, można zdecydować się na korzystanie z takiego zewnętrznego serwera www jeśli jest ustanowiony. Zewnętrznego serwera WWW musi być dostępne dla opinii publicznej, więc każdy klient będzie mógł pobrać niezbędne pliki po stronie klienta w celu przyłączenia się do gry na serwerze.
<syntaxhighlight lang="xml">
<httpdownloadurl>http://www.mojserwer.pl/skad/chce/sciagac/pliki</httpdownloadurl>
</syntaxhighlight>


Aby umożliwić pobieranie od zewnętrznego serwera, należy skonfigurować httpdownload''''''''i httpdownloadurl tagi w konfiguracji serwera:
Po uruchomieniu serwera MTA w katalogu '''mods/deathmatch/resource-cache/http-client-files''' będą znajdować się pliki klienta gotowe do wrzucenia na zewnętrzny serwer WWW. Jeśli serwer WWW znajduje się na tej samej maszynie co serwera MTA to wystarczy połączyć odpowiedni katalog serwera WWW z katalogiem '''http-client-files'''. Jeśli natomiast serwer WWW i serwer MTA znajdują się na różnych maszynach to należy zapewnić dostęp serwerowi WWW do katalogu '''http-client-files''' za pomocą ścieżki sieciowej lub utworzyć zdalną kopię przy pomocy oprogramowania do synchronizacji.


'''Uwagi'''
* Należy unikać znaków specjalnych (np. ~,!) w adresie URL zewnętrznego serwera
* Nie należy stawiać ukośnika (/) na końcu adresu URL, czyli zamiast '''http://www.mojserwer.pl/katalog/''' podajemy '''http://www.mojserwer.pl/katalog''' bez tego ukośnika na końcu.
* Serwer WWW musi używać formatu danych "''ContentType: application/octet-stream''" dla plików Lua. Większość serwerów ma to już domyślnie ustawione, ale w razie potrzeby można to zrobić ręcznie dodając do pliku .htaccess taką linijkę:
<div style="padding: 10px">
<div style="padding: 10px">
<syntaxhighlight lang="lua"> [xml] <httpdownload> 1 </ httpdownload>
<syntaxhighlight lang="xml">AddType application/octet-stream .lua
<httpdownloadurl> http://www.myserver.tld/directory/here </ httpdownloadurl>
</syntaxhighlight></div>
</ Code> </ div>


Od wszystkich zasobów domyślnie wyposażone w serwer dedykowany są spakowane i które zwykle są automatycznie wydobyte przez wbudowany serwer WWW, teraz muszą zapewnić drogę do klientów, aby pobrać wyjçci plików na swoich komputerach. Wyjçci pliki są zawsze dostępne w'''<SERWER> / mods / deathmatch /''resourcecache "katalogu.
Instrukcja jak zainstalować i skonfigurować Nginx jako zewnętrzny serwer WWW dla MTA znajduje się tutaj: [[PL/Installing_and_Configuring_Nginx_as_an_External_Web_Server|Instalcaja i konfiguracja Nginx jako zewnętrzny serwer WWW]]


<ol>
== Uruchamianie serwera ==
<li> Uruchom serwer dedykowany raz i znowu wyjście. Będzie to rozpakować pliki ZIP do'''<SERWER> / mods / deathmatch /''resourcecache "katalogu. </ Li>
Aby uruchomić serwer kliknij dwukrotnie na plik '''MTA-Server.exe'''.
<li> Przejdź do katalogu wyżej i skopiować do zewnętrznych zasobów serwera w katalogu publicznym, można to zrobić na kilka sposobów:
Na Linuksie uruchom komende '''./mta-server'''.
<ul>
 
<li> Jeśli zależy Ci na'''po stronie serwera, pliki są publicznie dostępne''': tworzenie dowiązania symbolicznego (Linux), skrzyżowanie (Windows) lub po prostu skopiować zawartość'''resourcecache '''katalogu do katalogu publicznego serwera. </ li>
Pamiętaj, aby zapewnić dostęp w zaporze sieciowej i przekierować porty, jeśli jest to potrzebne.
<li> Jeśli nie chcesz, aby serwer plików, które mają być publicznie dostępne za pośrednictwem serwera WWW: przejdź do'''''resourcecache' i ręcznie skopiować do folderów na serwer katalog publiczny, usuwając po stronie serwera plików (nie są one'''''' niezbędne do pobierania po stronie klienta) nie chcesz być hostingu na serwerze. <br />
 
<br />
== Instalacja/Aktualizacja zasobów na serwerze ==
Szybkim sposobem zabezpieczania plików po stronie serwera nie jest obecnie dostępna. Zbadamy do opracowania narzędzia, które automatycznie kopiuje tylko potrzebne pliki po stronie klienta w odniesieniu do wszystkich zasobów na serwerze.
Zasoby serwera mogą być wgrane na dwa sposoby:
</ Ul>
* Archiwum ZIP (zawierające pliki zasobu)
</ Li>
* Katalog zawierający pliki zasobu
</ Ol>
 
Aby wgrać nowy zasób należy:
# Przenieść lub skopiować go do '''mods/deathmatch/resources/'''.
# W oknie konsoli serwera wpisać komendę [[PL/mtaserver.conf#refresh|refresh]].
 
== Usuwanie zasobów ==
Usuwanie zasobów jest bardzo proste. Sprowadza się do:
 
# Usunięcia archiwum ZIP danego zasobu, lub jego katalogu.
# Wpisania w oknie konsoli komendy [[PL/mtaserver.conf#refresh|refresh]].


'''Uwaga 1''': Proszę unikać znaków specjalnych (np. ~,!) W download adresów URL. <br />
== Administrowanie serwerem ==
'''Uwaga 2''': Proszę nie używać ukośnika w download URL (np.''hxxp: / / www.myserver.tld / katalog''zamiast''hxxp: / / www.myserver.tld / katalog /'')
Aby uruchomić dany zasób wystarczy użyć polecenia (oczywiście bez nawiasu):
<syntaxhighlight lang="lua">start [nazwa zasobu]</syntaxhighlight>
Następnie gdybyśmy chcieli go zatrzymać:
<syntaxhighlight lang="lua">stop [nazwa zasobu]</syntaxhighlight>
Jeśli zrestartować:
<syntaxhighlight lang="lua">restart [nazwa zasobu]</syntaxhighlight>


== Uruchamianie serwera ==
Polecenia te (oraz inne) są dostępne z poziomu konsoli serwera oraz konsoli w grze pod klawiszem ~ lub F8. Jeśli używamy konsoli w grze to, aby móc używać tych komend musimy mieć do tego uprawnienia i musimy być zalogowani na konto [[PL/Access_Control_List|ACL]].
Rozpocząć, zapewniając zakończeniu wszystkich konfiguracji serwera, począwszy od serwera jest ostatni etap więc wszystko musi być gotowe!


Aby uruchomić serwer dwukrotnie kliknąć na MTA Server.exe, upewnij się, że pozwoli to poprzez zapory sieciowe i porty do przodu, gdzie nessessary.
Ponadto także możemy skorzystać z panelu administratora w graficznej formie, który jest dostępny domyślnie pod klawiszem '''P'''. Pozwala on na karanie graczy, zarządzanie zasobami, serwerem i wiele więcej.


== Instalacja / Aktualizacja zasobów na serwerze ==
Zarządzanie serwerem jest także możliwe przez panel WWW opisany w sekcjach wyżej.
Środków może pochodzić w dwóch formatach, zarówno w formacie ZIP lub po prostu zwykły folder z plikami skryptów wewnątrz niego. MTA: SA serwer obsługuje zarówno tych metod.


# Przenieść lub skopiować nowe zasoby do <SERWER> \ mods \ deathmatch \ folder zasobów.
== Uruchamianie map / Tryb gry ==
# W oknie wpisz polecenie serwera w "odśwież" (bez cudzysłowów), to ponowne przeszukiwanie katalogu zasobów i aktualizacji zasobów żywych w razie potrzeby.
Więcej informacji [[map_manager|znajdziesz tutaj]][[Image:usen.gif|Artykuł w języku angielskim]].


== == Zasobów Odinstalowywanie
== Utrzymywanie serwera ==
Środki mogą być łatwo usunięte z serwera, jeśli nie chcesz już ich.
Aby zapewnić stabilność działania serwera nie należy pozostawiać go bez opieki po uruchomieniu. Oto kilka wskazówek na temat prowadzenia i utrzymywania serwera:


# Usuń plik ZIP lub folderu z zasobu, który chcesz odinstalować
* Warto co jakiś czas monitorować zużycie pamięci przez proces poprzez menadżer zadań lub [[performancebrowser]] / '''ipb'''. Jeśli serwer MTA zużywa powyżej 1,2 GB to w każdej chwili może wystąpić błąd ''Out of memory (OOM)'', który mówi o braku pamięci. W takim przypadku powinieneś:
# W oknie wpisz polecenie serwera w "odśwież" (bez cudzysłowów), to ponowne przeszukiwanie katalogu zasobów i aktualizacji zasobów żywych w razie potrzeby.
** Zrestartować serwer
** Rozpocząć poszukiwania nieoptymalnych skryptów. Przeczytasz niżej jak można je znaleźć.
* Dbaj, aby zużycie procesora przez serwer nie osiągało wysokich wartości, ponieważ zazwyczaj powoduje to lagi lub nawet awarię serwera.
* Używaj [[setElementData]] i [[getElementData]] z rozsądkiem. Są to funkcje, które w przypadku synchronizacji wykonują ją '''ciągle'''. Gdy to możliwe ogranicz ilość synchronizowanych danych i używaj [[addElementDataSubscriber]]. Możesz także rozważyć stworzenie własnego systemu wymiany i przechowywania danych, który zastąpi ten wbudowany.
* Jak w każdej grze tutaj także znajdują się cheaterzy (choć jest ich mniej dzięki silnemu systemowi antycheat), którzy tylko szukają możliwości aby uprzykrzyć Ci życie i zaszkodzić. Jeśli więc wprowadzasz jakieś nowe, niestandardowe zasoby na serwer to zapoznaj się z [[Script security|bezpieczeństwem skryptów]].
* Zaleca się co jakiś czas restartowanie serwera - Jak w przypadku procesów i aplikacji nie wszystkie wywołania mogą zostać "uwolnione". Przykładowo po uruchomienia serwera zużycie pamięci jest na poziomie około 50 mb. Jeśli w międzyczasie wejdą jacyś gracze, a po czasie wyjdą z serwera to zużycie pamięci '''wzrośnie''', nawet jeśli na serwerze będzie 0 graczy. Jest to znane jako [[https://www.google.com/search?q=software+aging|"starzenie" się oprogramowania]]. Jest to wynik ciągłego działania serwera i pewnych działań w kodzie - Serwer, który nie jest ponownie uruchomiony będzie zużywał coraz więcej pamięci, aż dojdzie do wspomnianego wyżej braku pamięci lub innej awarii. Oczywiście taki proces "degradacji" serwera trwa bardzo długi okres czasu i zależy od liczby graczy, obciążenia i wielu innych czynników. Jeśli tworzysz duży serwer, dla setek graczy to dobrą praktyką jest restartowanie go np. raz w tygodniu w godzinach nocnych.


Administrowanie serwerem == ==
== Optymalizacja serwera ==
Możesz zacząć zasobów poprzez wpisanie komendy "resourcename start" w konsoli serwera, lub zatrzymać te z "stop resourcename".
Jeśli masz zasoby, które działają w sposób nie optymalny to w bardzo łatwy sposób może to doprowadzić do lagów, przeciążenia, braku pamięci i awarii serwera. Aby zapobiegać takim sytuacjom należy monitorować co jakiś czas zużycie zasobów serwera przez konkretne skrypty i procesy.


Możliwe jest również wykonanie tych i innych komend admina z konsoli w grze (które można przywołać z "klucza lub F8), to zadziałało, musisz najpierw zalogować się za pomocą polecenia" Login Hasło ". Dodatkowo, można nacisnąć przycisk P, aby przywołać panel admin: to jest graficzny interfejs, który pozwala w łatwy sposób kick lub ban niewłaściwie graczy, między innymi.
Do takiego monitorowania przeznaczone są zasoby [[performancebrowser]] oraz '''ipb'''.
* Performancebrowser umożliwia monitorowanie stabilności serwera za pomocą interfejsu WWW w przeglądarce. W pasek adresu w przeglądarce wprowadzamy adres URL: '''ip_serwera:port/performancebrowser/''', port który podajemy to port HTTP. Domyślnie jest to po prostu port serwera + 1. Gdy wszystko się uda zostaniemy poproszeni o zalogowanie się do konta ACL z uprawnieniami.
* IPB jest dokładnie tym samym, tyle tylko, że jest to interfejs graficzny w grze. Aby go używać musimy posiadać uprawnienia ACL.


Na dalsze polecenia, wpisz "help" w konsoli.
W zakładce '''Lua memory''' możemy zobaczyć zużycie pamięci serwera przez poszczególne zasoby. Natomiast w zakładce '''Lua timing''' możemy zobaczyć zużycie procesora przez poszczególne zasoby.


== Uruchamianie map / Tryb gry ==
Możemy także sprawdzić zużycie pamięci i procesora po stronie klienta i u konkretnych graczy. W tym celu zaznaczamy pole '''Incl. clients''' i wybieramy kogoś z listy '''Target'''.
Sprawdź w sekcji poleceń w dokumentacji [[Resource: Kierownik Mapa | mapmanager]] uzyskać więcej informacji.
 
Im niższe zużycie pamięci i procesora przez zasób tym lepiej. Jeśli zasób zużywa przykładowo 300% procesora klienta to taki gracz z pewnością doświadczy utrudnień w postaci lagów, zacinania się gry a nawet awarii. Dlatego należy zawsze pilnować i optymalizować lub eliminować takie zasoby, które zużywają duże ilości zasobów serwera.


== Uwagi == Przydatne
== Przydatne informacje ==


# Można również aktualizacja zasobów, podczas gdy w grze tak długo, jak masz prawidłowe poziomy dostępu, wpisując "odświeżanie" w konsoli lub klientów "/ odśwież" w oknie czatu. Może to spowodować opóźnienia drugi, jeśli masz wiele zasobów.
# Zasoby można odświeżać również w grze za pomocą komendy '''refresh''' na czacie lub w konsoli F8. Używanie tej komendy wymaga odpowiednich uprawnień [[PL/Access_Control_List|ACL]]. Komenda może wywołać chwilowy lag, jeśli jest wiele zasobów na serwerze
# W instrukcji, <SERWER> jest ścieżka do katalogu głównego serwera. W większości przypadków jest to C: \ Program Files \ MTA San Andreas server \
# W instrukcji zostały podane względne ścieżki (tzn. np. /deathmatch/resources odnosi się do katalogu w katalogu serwera). Dla serwera lokalnego domyślnie jest to '''C:\Program Files\MTA San Andreas\server'''
# Można wybrać inny plik konfiguracyjny dla serwera do wykorzystania przez przekazanie go w linii poleceń po - config argument, np. mtaserver.exe - config anotherconfig.cfg.
# Można wybrać inny plik konfiguracyjny z którego będzie korzystać MTA, podając parametr ''--config [nazwa pliku konfiguracyjnego]'' np. ''mtaserver.exe --config nowyplik.cfg''
# Nie należy się niepokoić ostrzeżenie o przetwarzaniu settings.xml pliku. Dzieje się tak, ponieważ instalacja serwera jest nadal czyste i nieużywane.
# Nie należy martwić się błędami i ostrzeżeniami dotyczącymi pliku ''settings.xml''. Jest to normalne przy świeżym i czystym serwerze


==== Potrzebujesz pomocy ?====
====Potrzebujesz pomocy?====
Dlaczego nie pop na naszym [http://forum.mtasa.com/ Forum] lub dołącz do nas na [irc: / / irc.multitheftauto.com / mta IRC] (irc.multitheftauto.com # mta - [http:/ / www.mirc.com MIRC])
Potrzebujesz pomocy? Napisz na [http://forum.mtasa.com/ forum] lub napisz na [https://discord.com/invite/mtasa Discord]. Skorzystaj z odpowiedniego kanału pomocy #help-support dla serwera lub któryś ze #scripting-helo dla pomocy w skryptach/zasobach.


[[Es: Manual Deathmatch Servidor]]
[[en:Server Manual]]
[[De: Serwer DM MTA Anleitung]]
[[It: Manuale Server del]]
[[Nl: Serwer Deathmatch Manual]]
[[Ru: Serwer Deathmatch Manual]]

Latest revision as of 14:39, 5 April 2024

Pierwsze kroki

Uruchomienie swojego własnego serwera MTA:SA jest o wiele łatwiejsze niż mogłoby się wydawać. Jeżeli chciałbyś postawić serwer by pograć ze znajomymi lub po prostu z ludźmi z sieci - zachęcam do lektury.

Instalacja serwera

Poniżej opisane są sposoby instalacji serwera w zależności od posiadanego systemu operacyjnego.

Linux

Serwer pod Linuksem można zainstalować na kilka sposobów:

Dodatkowe informacje możemy znaleźć tutaj

Możesz doświadczyć różnych błędów i częstych problemów. Jeśli tak się dzieje to sprawdź

FreeBSD

Możesz uruchomić MTA:SA na FreeBSD za pomocą emulatora Linuxa.

Windows

Instalacja serwera na Windowsie jest prosta "jak budowa cepa".

  • Najpierw pobieramy instalator ze strony głównej
  • Po ściągnięciu uruchamiamy ów instalator
  • Wybieramy folder gdzie chcemy zainstalować MTA (serwer jest w jednej paczce z klientem)
  • Klikamy na zainstaluj...
  • ...i gotowe!

Aby dowiedzieć się czym jest lista kontroli dostępu w pliku acl.ml, sprawdź ACL

Konfiguracja serwera

Serwer Multi Theft Auto jest wstępnie konfigurowany z okna konsoli, z poziomu gry i z przeglądarki internetowej.

Ogólna konfiguracja

Podstawowa konfiguracja serwera znajduje się w pliku "mods/deathmatch/mtaserver.conf". Plik ten można edytować za pomocą dowolnego edytora tekstu (jeśli nie mamy zainstalowanego żadnego "specjalistycznego" edytora - na Windowsie można użyć windowsowego notatnik-a, zaś na Linuksie nano lub vi).

Przekierowanie portów

W pliku mtaserver.conf znajdują się takie dwie linijki:

<serverport>22003</serverport> 
<httpport>22005</httpport>

Porty są potrzebne do prawidłowej konfiguracji serwera. Wyjaśnimy później, jak je ustawić, ale najpierw, jeśli chcesz, aby Twój serwer pojawiał się w przeglądarce serwerów, potrzebujemy innego portu, a jest to port ASE.

(krótki przykład włączania i wyłączania ASE):

<ase>1</ase> <!-- 0 = wyłączony, 1 = włączony -->

Teraz przekierujemy porty w Twoim routerze, co nie jest potrzebne, jeśli masz już otwarte wszystkie porty lub jeśli nie masz routera z zaporą sieciową. Jeśli tak, pomiń tę część.

Jeśli nie wiesz, jak działa przekierowanie portów w Twoim routerze, wejdź na stronę Port Forward, znajdź tam model swojego routera i postępuj zgodnie z zawartymi tam instrukcjami.

Prawie w każdym routerze można ustawić typ portu: UDP lub TCP. Poniższa lista wyjaśni, jaki typ portu jest potrzebny do czego:

Główny port serwera: UDP Port HTTP: TCP Port ASE: UDP (jest to potrzebne, jeśli chcesz, aby Twój serwer pojawił się na liście serwerów)

Port ASE jest również łatwy do uzyskania - Port ASE = port głównego serwera + 123 Jeśli więc masz port głównego serwera ustawiony na 22003, port ASE będzie miał numer 22126.

Jeśli masz jakieś problemy (i przeszukałeś podaną wcześniej stronę portforward.com to zapoznaj się z tym wątkiem
Przekierowanie portów dla serwerów MTA

W najnowszej wersji serwera możesz sprawdzić status portu za pomocą komendy serwera openports.

Kontrola klienta

Serwer MTA można skonfigurować na kilka sposobów. Możemy na przykład wyłączyć jakieś komponenty systemu AntyCheat, lub zezwolić na zmodyfikowane pliki gry. Wszystkie te ustawienia znajdują się w pliku mods/deathmatch/mtaserver.conf. Możesz także zapoznać się z konfiguracją antycheat.

Jeżeli chcesz ustawić minimalną wersje klienta, wyszukaj taką linijkę:

<minclientversion></minclientversion>

Przykładowa wersja wygląda tak: 1.1.1-9.02320

Konta administratorskie

Zaleca się, aby serwer posiadał przynajmniej jedno konto administratora - tak, aby właściciel serwera miał w każdej chwili możliwość włączenia/wyłączenia serwera (lub danej jego części poprzez panel-www, konsole, grę).

Aby dodać konto administratora, postępuj według tych kroków:

  1. Uruchom serwer i dodaj nowe konto za pomocą addaccount login haslo w konsoli serwera, o tak:
    addaccount SEBA18293 12344321
    

    Uwaga: Jeżeli nie masz konsoli serwera, i zasób 'admin' nie jest uruchomiony, to możesz użyć komendy register, której użyjesz tak:\ /register SEBA18293 12344321

  2. Serwer wyświetli wiadomość, że konto zostało zarejestrowane
  3. Następnie wyłącz serwer za pomocą shutdown w konsoli serwera.
  4. Serwer zostanie zatrzymany.
  5. Otwórz plik 'mods/deathmatch/acl.xml' za pomocą edytora tekstu.
  6. Dodaj konto do grupy Admin
    <acl>
      ...
      <group name="Admin">
        <acl name="Admin"/>
        ...
        <object name="user.SEBA18293" />
      </group>
      ...
    </acl>
    

    Gratulacje, dodałeś konto administratora. W ten sposób możesz dodać dowolną liczbę administratorów lub użytkowników. Przyjrzyj się na przykład niektórym innym grupom i listom ACL. Dostęp do listy ACL można także uzyskać poprzez odpowiednie funkcje, sprawdź ACL.

    Zaleca się zajrzeć do interfejsu internetowego, poniżej wyjaśnimy, jak to zrobić.

    Uwaga: Istnieją również sposoby dodawania kont i edytowania uprawnień serwera podczas jego działania. "addaccount <login> <haslo>" to wewnętrzne polecenie służące do dodawania kont, ale w celu dodania tych kont do określonych grup/list ACL konieczne będzie użycie interfejsu internetowego!

    Można także zmodyfikować plik acl.xml podczas działania serwera i użyć komendy "reloadacl"

Korzystanie z interfejsu WWW (panelu www)

Interfejs WWW daje nam możliwość zdalnego zarządzania serwerem. Możemy za jego pomocą dodawać użytkowników, zarządzać grupami ACL oraz zasobami na serwerze. Cały interfejs jest dostarczany wraz z serwerem przy pomocy kilku zasobów.

Zasoby odpowiedzialne za interfejs www są uruchamiane wraz z serwerem w domyślnej konfiguracji. Panel WWW jest dostępny na wbudowanym serwerze HTTP, domyślnie na porcie 22005. Aby sprawdzić czy serwer ten jest aktywny należy wykonać poniższe kroki:

  1. Zatrzymaj serwer
  2. Otwórz plik mtaserver.conf znajdujący się mods/deathmatch
  3. Upewnij się czy serwer HTTP jest włączony:
    <httpserver>1</httpserver>
    
  4. Ustaw port HTTP według własnych potrzeb (domyślnie 22005):
    <httpport>22005</httpport>
    
  5. Zapisz zmiany i zamknij plik
  6. Uruchom serwer
  7. Do poprawnego działania interfejsu WWW muszą być uruchomione następujące zasoby:
    1. resourcebrowser
    2. resourcemanager
    3. webadmin
    4. webmap
    Dlatego jeśli dokonałeś jakichkolwiek zmian w autostarcie zasobów, upewnij się, że powyższe są uruchomione. Jeśli nic nie ruszałeś to domyślnie są uruchomione wraz ze startem serwera.
  8. Otwórz przeglądarkę internetową (Internet Explorer 6 oraz 7 nie jest wspierany) i przejdź do serwera HTTP wprowadzając adres URL http://ip_serwera:port/.
  9. Po przejściu serwer poprosi o zalogowanie się - Logujemy się tam danymi administratora konta ACL, które opisaliśmy w poprzedniej sekcji wyżej.

Od tej pory mamy dostęp do zarządzania serwerem przez interfejs WWW.

Konfiguracja zewnętrznego serwera WWW (np. do serwowania plików statycznych tj. obrazki, modele itd.)

Wbudowany serwer HTTP jest także używany do pobierania plików uruchomionych zasobów na serwerze do każdego gracza z osobna. Przykładowo jeśli masz na serwerze jakiś zasób, który zawiera graficzny interfejs lub jakieś modele do podmiany to pliki takie jak obrazki, modele, kolizje, tekstury itd muszą zostać przesłane z serwera do każdego gracza na serwerze. To zadanie właśnie wykonuje domyślnie wbudowany serwer HTTP lub ustalony przez nas serwer zewnętrzny (zazwyczaj jest szybszy), z tym, że taki zewnętrzny serwer musimy skonfigurować zupełnie osobno.

Mając na uwadze wydajność i spójność serwera możesz skonfigurować zewnętrzny serwer HTTP do pobierania plików na serwerze przez graczy. Zewnętrzny serwer WWW musi być publicznie dostępny, tak aby każdy gracz na serwerze (klient) mógł się połączyć z tym serwerem w celu pobrania potrzebnych plików klienta. Taki zabieg może przyśpieszyć proces pobierania oraz odciążyć serwer.

Aby umożliwić pobieranie plików z zewnętrznego serwera WWW należy skonfigurować pole httpdownloadurl:

<httpdownloadurl>http://www.mojserwer.pl/skad/chce/sciagac/pliki</httpdownloadurl>

Po uruchomieniu serwera MTA w katalogu mods/deathmatch/resource-cache/http-client-files będą znajdować się pliki klienta gotowe do wrzucenia na zewnętrzny serwer WWW. Jeśli serwer WWW znajduje się na tej samej maszynie co serwera MTA to wystarczy połączyć odpowiedni katalog serwera WWW z katalogiem http-client-files. Jeśli natomiast serwer WWW i serwer MTA znajdują się na różnych maszynach to należy zapewnić dostęp serwerowi WWW do katalogu http-client-files za pomocą ścieżki sieciowej lub utworzyć zdalną kopię przy pomocy oprogramowania do synchronizacji.

Uwagi

  • Należy unikać znaków specjalnych (np. ~,!) w adresie URL zewnętrznego serwera
  • Nie należy stawiać ukośnika (/) na końcu adresu URL, czyli zamiast http://www.mojserwer.pl/katalog/ podajemy http://www.mojserwer.pl/katalog bez tego ukośnika na końcu.
  • Serwer WWW musi używać formatu danych "ContentType: application/octet-stream" dla plików Lua. Większość serwerów ma to już domyślnie ustawione, ale w razie potrzeby można to zrobić ręcznie dodając do pliku .htaccess taką linijkę:
AddType application/octet-stream .lua

Instrukcja jak zainstalować i skonfigurować Nginx jako zewnętrzny serwer WWW dla MTA znajduje się tutaj: Instalcaja i konfiguracja Nginx jako zewnętrzny serwer WWW

Uruchamianie serwera

Aby uruchomić serwer kliknij dwukrotnie na plik MTA-Server.exe. Na Linuksie uruchom komende ./mta-server.

Pamiętaj, aby zapewnić dostęp w zaporze sieciowej i przekierować porty, jeśli jest to potrzebne.

Instalacja/Aktualizacja zasobów na serwerze

Zasoby serwera mogą być wgrane na dwa sposoby:

  • Archiwum ZIP (zawierające pliki zasobu)
  • Katalog zawierający pliki zasobu

Aby wgrać nowy zasób należy:

  1. Przenieść lub skopiować go do mods/deathmatch/resources/.
  2. W oknie konsoli serwera wpisać komendę refresh.

Usuwanie zasobów

Usuwanie zasobów jest bardzo proste. Sprowadza się do:

  1. Usunięcia archiwum ZIP danego zasobu, lub jego katalogu.
  2. Wpisania w oknie konsoli komendy refresh.

Administrowanie serwerem

Aby uruchomić dany zasób wystarczy użyć polecenia (oczywiście bez nawiasu):

start [nazwa zasobu]

Następnie gdybyśmy chcieli go zatrzymać:

stop [nazwa zasobu]

Jeśli zrestartować:

restart [nazwa zasobu]

Polecenia te (oraz inne) są dostępne z poziomu konsoli serwera oraz konsoli w grze pod klawiszem ~ lub F8. Jeśli używamy konsoli w grze to, aby móc używać tych komend musimy mieć do tego uprawnienia i musimy być zalogowani na konto ACL.

Ponadto także możemy skorzystać z panelu administratora w graficznej formie, który jest dostępny domyślnie pod klawiszem P. Pozwala on na karanie graczy, zarządzanie zasobami, serwerem i wiele więcej.

Zarządzanie serwerem jest także możliwe przez panel WWW opisany w sekcjach wyżej.

Uruchamianie map / Tryb gry

Więcej informacji znajdziesz tutajArtykuł w języku angielskim.

Utrzymywanie serwera

Aby zapewnić stabilność działania serwera nie należy pozostawiać go bez opieki po uruchomieniu. Oto kilka wskazówek na temat prowadzenia i utrzymywania serwera:

  • Warto co jakiś czas monitorować zużycie pamięci przez proces poprzez menadżer zadań lub performancebrowser / ipb. Jeśli serwer MTA zużywa powyżej 1,2 GB to w każdej chwili może wystąpić błąd Out of memory (OOM), który mówi o braku pamięci. W takim przypadku powinieneś:
    • Zrestartować serwer
    • Rozpocząć poszukiwania nieoptymalnych skryptów. Przeczytasz niżej jak można je znaleźć.
  • Dbaj, aby zużycie procesora przez serwer nie osiągało wysokich wartości, ponieważ zazwyczaj powoduje to lagi lub nawet awarię serwera.
  • Używaj setElementData i getElementData z rozsądkiem. Są to funkcje, które w przypadku synchronizacji wykonują ją ciągle. Gdy to możliwe ogranicz ilość synchronizowanych danych i używaj addElementDataSubscriber. Możesz także rozważyć stworzenie własnego systemu wymiany i przechowywania danych, który zastąpi ten wbudowany.
  • Jak w każdej grze tutaj także znajdują się cheaterzy (choć jest ich mniej dzięki silnemu systemowi antycheat), którzy tylko szukają możliwości aby uprzykrzyć Ci życie i zaszkodzić. Jeśli więc wprowadzasz jakieś nowe, niestandardowe zasoby na serwer to zapoznaj się z bezpieczeństwem skryptów.
  • Zaleca się co jakiś czas restartowanie serwera - Jak w przypadku procesów i aplikacji nie wszystkie wywołania mogą zostać "uwolnione". Przykładowo po uruchomienia serwera zużycie pamięci jest na poziomie około 50 mb. Jeśli w międzyczasie wejdą jacyś gracze, a po czasie wyjdą z serwera to zużycie pamięci wzrośnie, nawet jeśli na serwerze będzie 0 graczy. Jest to znane jako ["starzenie" się oprogramowania]. Jest to wynik ciągłego działania serwera i pewnych działań w kodzie - Serwer, który nie jest ponownie uruchomiony będzie zużywał coraz więcej pamięci, aż dojdzie do wspomnianego wyżej braku pamięci lub innej awarii. Oczywiście taki proces "degradacji" serwera trwa bardzo długi okres czasu i zależy od liczby graczy, obciążenia i wielu innych czynników. Jeśli tworzysz duży serwer, dla setek graczy to dobrą praktyką jest restartowanie go np. raz w tygodniu w godzinach nocnych.

Optymalizacja serwera

Jeśli masz zasoby, które działają w sposób nie optymalny to w bardzo łatwy sposób może to doprowadzić do lagów, przeciążenia, braku pamięci i awarii serwera. Aby zapobiegać takim sytuacjom należy monitorować co jakiś czas zużycie zasobów serwera przez konkretne skrypty i procesy.

Do takiego monitorowania przeznaczone są zasoby performancebrowser oraz ipb.

  • Performancebrowser umożliwia monitorowanie stabilności serwera za pomocą interfejsu WWW w przeglądarce. W pasek adresu w przeglądarce wprowadzamy adres URL: ip_serwera:port/performancebrowser/, port który podajemy to port HTTP. Domyślnie jest to po prostu port serwera + 1. Gdy wszystko się uda zostaniemy poproszeni o zalogowanie się do konta ACL z uprawnieniami.
  • IPB jest dokładnie tym samym, tyle tylko, że jest to interfejs graficzny w grze. Aby go używać musimy posiadać uprawnienia ACL.

W zakładce Lua memory możemy zobaczyć zużycie pamięci serwera przez poszczególne zasoby. Natomiast w zakładce Lua timing możemy zobaczyć zużycie procesora przez poszczególne zasoby.

Możemy także sprawdzić zużycie pamięci i procesora po stronie klienta i u konkretnych graczy. W tym celu zaznaczamy pole Incl. clients i wybieramy kogoś z listy Target.

Im niższe zużycie pamięci i procesora przez zasób tym lepiej. Jeśli zasób zużywa przykładowo 300% procesora klienta to taki gracz z pewnością doświadczy utrudnień w postaci lagów, zacinania się gry a nawet awarii. Dlatego należy zawsze pilnować i optymalizować lub eliminować takie zasoby, które zużywają duże ilości zasobów serwera.

Przydatne informacje

  1. Zasoby można odświeżać również w grze za pomocą komendy refresh na czacie lub w konsoli F8. Używanie tej komendy wymaga odpowiednich uprawnień ACL. Komenda może wywołać chwilowy lag, jeśli jest wiele zasobów na serwerze
  2. W instrukcji zostały podane względne ścieżki (tzn. np. /deathmatch/resources odnosi się do katalogu w katalogu serwera). Dla serwera lokalnego domyślnie jest to C:\Program Files\MTA San Andreas\server
  3. Można wybrać inny plik konfiguracyjny z którego będzie korzystać MTA, podając parametr --config [nazwa pliku konfiguracyjnego] np. mtaserver.exe --config nowyplik.cfg
  4. Nie należy martwić się błędami i ostrzeżeniami dotyczącymi pliku settings.xml. Jest to normalne przy świeżym i czystym serwerze

Potrzebujesz pomocy?

Potrzebujesz pomocy? Napisz na forum lub napisz na Discord. Skorzystaj z odpowiedniego kanału pomocy #help-support dla serwera lub któryś ze #scripting-helo dla pomocy w skryptach/zasobach.