DayZ - ustawienia serwera PUBLIC

DayZ - ustawienia serwera PUBLIC

UPDATE z dnia 29.11.2017 Konfiguracja serwera PUBLIC jest nieaktualna. Nie ma już serwerów autoryzujących developera, dlatego nie ma serwerów PUBLIC.

DayZ - to mod gry ARMA 2. W związku z tym przejmuje wszelkiego rodzaju błędy i bolączki ARMY i dorzuca własne błędy. Jedną z większych bolączek tej gry są tzw. "ucieczki pamięci". O co chodzi? Serwer należy restartować dwa - trzy razy dziennie gdyż długo działający serwer zaczyna zapychać pamięć RAM serwera. W rezultacie gra zaczyna lagować (niezależnie od mocy serwera).
O restartach jeszcze powiemy. Na początek skupmy się na tym jak postawić i skonfigurować serwer DayZ mod jako PUBLIC.
Poniższe porady dotyczą hostingu G4G.pl, ale równie dobrze można skorzystać informacji tutaj zawartych przy stawianiu własnego serwera.

Pliki serwera

Potrzebujemy plików serwera, zatem postępujemy w sposób następujący.

  • Instalujemy ARMA 2 i łatamy grę do wersji 1.07 (łatka dostępna w dziale DayZ, przez menu górne, zakładka PLIKI)
  • Instalujemy dodatek ARMA 2 Operation Arrowhead (w osobnym katalogu niż ARMA 2) i łatamy ją do wersji 1.62 - łatka dostępna w miejscu jak łatka wyżej
  • Sciągamy patch - ARMA 2 OA BETA i instalujemy
  • Całą zawartość katalogu gdzie zainstalowaliśmy ARMA 2 OA wgrywamy do katalogu z ARMĄ 2
  • Pobieramy najnowszą wersję moda DAYZ w wersji 1.8.0.3 - menu góne G4G.pl dział DayZ - plik @Server-1.8.0.3-Full.rar i rozpakowujemy (wspominałem że dział pliki dostępny po zalogowaniu?)

Po rozpakowaniu znajdziecie taką strukturę plików i katalogów

@Dayz
@Hive
cfgdayz
Keys
DatabaseMySql.dll
DatabasePostgre.dll
tbb.dll
tbbmalloc.dll

Na naszym hostingu zmieniamy nazwę katalogu cfgdayz na public1. To główny katalog gdzie przechowywane będą pliki konfiguracyjne serwera oraz logi serwera.
Zatem struktura katalogów po zmianie,będzie wyglądała tak:

@Dayz
@Hive
public1
Keys
DatabaseMySql.dll
DatabasePostgre.dll
tbb.dll
tbbmalloc.dll

Całość kopiujemy w katalogu z ARMA2, czyli tam gdzie wcześniej wrzuciliśmy pliki ARMA2 OA.
Ostatecznie na hsotingu mamy takie katalogi:

@Dayz
@Hive
AddOns
BattlEye
Common
dll
Dta
Expansion
Keys
Missions
MPMissions
private1
public1

Plik misji

Aby serwer wystartował potrzebujemy pliku misji. To opis mapki od której serwer ma wystartować grę. Bez tego pliku,pomimo że serwer działa, nie będziesz mógł dołączyć do lobby.
Lokalizacja pliku misji:
MPMissions\
Na hostingu G4G.pl otrzymujesz serwer z jedną misją: dayz_1.Chernarus.
MPMissions\dayz_1.Chernarus\
Aby serwer był w pełni rankingowy i publiczny musisz zwrócić się do developera gry o przyznanie Cie Twojego pliku misji.
W tym celu musisz dokonać rejestracji na stronie:
https://support.dayzmod.com/cart.php?a=confproduct&i=1
Brak obsługi w języku polskim.
Parametry hostingu dostępne są u admina G4G.pl :)
Ile trzeba czekać na przyznanie takowego pliku misji? Nie mam pojęcia. Obsługa w tym zakresie nieco kuleje.
Jeśli takowy plik zagubiłeś w akcji a pamiętasz ID instancji serwera - nadany przez developera gry możesz skorzystać z generatora pliku misji.
Po otrzymaniu pliku misji - podmieniacie misję w katalogu MPMissions\ na swoją. Ta którą udostępniło Wam G4G.pl, kasujecie.
Zdaje się że mamy już wszystkie pliki potrzebne do pierwszego uruchomienia serwera DayZ MOD.

Pierwsze uruchomienie

Serwer odpalamy z linią startową:
arma2oaserver.exe -port={ServerPort} -maxMem=1536 -name=server -config=public1\config.cfg -exThreads=1 -noCB -mod=@hive;@dayz -beta=Expansion\beta;Expansion\beta\Expansion -cfg=public1\basic.cfg -cpuCount=2 -profiles=public1
Komendy rozpoczynające się od znaku "-" to przełączniki. ARMA2 oferuje sporo opcji uruchomienia serwera.

  • -world= - misja od której mamy odpalać serwer, w dayz Public to Chernarus. Inne dostępne ustawienie to: none
  • -maxMem= - maksymalna ilość pamięci RAM przydzielona Twojemu serwerowi. My dajemy ci aż 1.5GB RAM.
  • -cpuCount= ilośc rdzeni przypisana serwerowi. Beż tego ustawienia serwer gry sam wykryje ile jest dostępnych rdzeni. Jeśli wpiszesz tutaj bzdurną wartość, możesz mieć problemy. Na G4G.pl więcej niż 2 nie wpisuj. Co prawda oferujemy systemy nawet z 32 rdzeniami,ale kto powiedział że ARMA 2 dobrze obsługuje systemy z wieloma rdzeniami?
  • -exThreads= - dostępne wartość 0,1,3,5,7 - ustawienia wielowątkowości dla obsługi plików, geometrii oraz tekstur. W zależności od wartości exThreads serwer przydziela wątek na obsługę albo plików, albo plików i geometrii albo wszystkich trzech. Nie działa to jednak zbyt dobrze. Polecane wartości to 0 lub 1.
  • -noCB - wyłącza wielordzeniowy rendering terenu. Wyłączenie pozwala uniknąć wieli artefaktów.
  • -port=port gry, nadany przez G4G.pl
  • -name= - Określa nazwę serwera wysyłaną do klienta
  • -config=public1\config.cfg - określa lokalizację pliku konfiguracyjnego serwera - ustawienia gameplaya
  • -cfg=public1\basic.cfg - wskazuje na cfg silnika gry
  • -profiles=public1 - wskazuje na katalog gdzie znajdywać się będzie profil, logi itp
  • -mod=@hive;@dayz - mówi nam jakie mody mają być załadowane. W przypadku DAYZ powyższe jest nie do ruszenia.
  • -beta=Expansion\beta;Expansion\beta\Expansion - informujemy serwer że mają się załadować pliki beta ARMY2 (nie do ruszenia)

W edytorze startowych linii komend jest kilka przełączników, dzięki którym możecie sami ustalić z jakiego pliku CFG ma wystartować dany serwer oraz jakie mody mają być jeszcze ładowane na serwer. Nie ukrywam że w tym zakresie, świadomość tego co się robi jest niezbędna!

Tworzymy sobie plik wsadowy start.bat gdzie znajduje się ścieżka do pliku arma2oaserver.exe wraz z przełącznikami linii komend po czym uruchamiamy serwer.
Działa? To okej! Czas zająć się konfiguracją serwera gry. Wyłączmy działający serwer.
UWAGA: Wszelkie zmiany w cfg zalecam dokonywać przy wyłączonym serwerze!

Konfiguracja serwera

Zgodnie naszą linią komend, główny plik odpowiedzialny za gameplay to
public1\config.cfg
Zwartość tego pliku:


// GLOBAL SETTINGS
hostname = "DayZ Testowy G4G.pl";	// Nazwa serwera - widoczna na liscie serwerow
password =    //tutaj ustawiasz hasło do wejscia na serwer."";							
passwordAdmin = " ";	// haslo do admina '#login xyz' w konsoli gry
reportingIP = "arma2oapc.master.gamespy.com";	// For Arma2: Operation Arrowhead
logFile = "server_console.log";	 // plik z logami serwera

// Wiadomosc dnia ("message of the day")
// Linie oddzielone przecinkiem
// Pusta wiadomosc "" nie bedzie pokazana ale pozwala wydłuzyc przerwr mirdzy wiadomosciami
motd[] = {
	"", "", "", "",
	"Welcome to G4G.pl ",
	"G4G.pl -> Hosting in Poland"
};
motdInterval = 2;    // Przerwa (w sekundach) pomiędzy wiadomościami

// JOINING RULES
maxPlayers = 12;   //Maksymalna ilość slotów gry
kickDuplicate = 1; // Jeśli 1 to nie pozwaial grać innemu graczowi na tej samej kopii gry.
verifySignatures = 2;	// Verifies .pbos against .bisign files. Valid values 0 (disabled), 1 (prefer v2 sigs but accept v1 too) and 2 (only v2 sigs are allowed). 
equalModRequired = 0;	// Outdated. If set to 1, player has to use exactly the same -mod= startup parameter as the server.
requiredBuild = 103718;	//wersja klienta gry z którą może wejść na serwer

// VOTING
voteMissionPlayers = 4;    // Ilu graczy musi byc na serwerze by możliwe było głosowanie
voteThreshold = 2;  // 33% or more players need to vote for something, for example an admin or a new map, to become effective

// INGAME SETTINGS
disableVoN = 0;	 	// Wartosc 1 wyłacz voip w grze
vonCodecQuality = 6;  // Jakoś kodeka voip w grze od 1 to 10
persistent = 1;	   // Jesli 1 to misja trwa nawet po rozlaczeniu ostatniego gracza.
timeStampFormat = "short";	// Set the timestamp format used on each report line in server-side RPT file. Possible values are "none" (default),"short","full".
BattlEye = 1;     //Na serwerze ma dzialac BattleEye || If you turn this off you will NOT be able to join the server

// SCRIPTING ISSUES
onUserConnected = "";					//
onUserDisconnected = "";				//
doubleIdDetected = "";					//

// SIGNATURE VERIFICATION
onUnsignedData = "kick (_this select 0)";  // unsigned data detected
onHackedData = 	"kick (_this select 0)";  // tampering of the signature detected
onDifferentData = "kick (_this select 0)";  // data with a valid signature, but different version than the one present on server detected
// Ustawienia misji gry -tutaj wpisujesz misje znajdujące się w katalogu MPMissions
class Missions
{
	class DayZ 
	{
		template = dayz_1.Chernarus;
		difficulty = "Veteran";
	};
	
};

Uwagi do pliku:
hostname - nazwa serwera - jeśli chcesz prowadzić serwer PUBLIC zobowiązany jesteś do utrzymania konwencji nazwy serwera który wygląda tak:
DayZ - PL Poznan (v1.8.0.3/Beta 93965) [VETERAN 3DP:OFF][UTC+1] - hosted by g4g.pl
Składniki nazwy:

  1. Lokacja serwera (fizyczna) - PL Poznan
  2. Wersja serwera gry v1.8.0.3/Beta 93965
  3. Poziom trudności serwera - VETERAN 3DP:OFF
  4. Możliwe skróty:
  • 3DP - widok z 3 osoby (zza pleców)
  • CH - celownik
  • NP - Nicki, nazwy
  • WP - Waypointy
  • DM - Informacje o śmierci
  • Czas serwera - [UTC+1]
  • Dodatkowe informacje - hosted by g4g.pl
  • password - hasło na serwer, na PUBLICU nie może być ustawiane!

    maxPlayers = - ustawiacie wykupioną ilość slotów

    BattlEye = 1 - Na serwerze PUBLIC BattleEye - czyli antycheat musi być włączony!
    difficulty - poziom trudności, dostępne Regular, Veteran, Mercenary. Każdemu z tych poziomów trudności odpowiadają domyślne ustawienia:

    Regular Veteran Defaults Mercenary Defaults
    Armor: On Armor: On Armor: Off
    3rd Person: On 3rd Person: On 3rd Person: Off
    Auto Aim: Off Auto Aim: Off Auto Aim: Off
    Tracers: On Tracers: Off Tracers: Off
    Nameplates: On Nameplates: Off Nameplates: Off
    Crosshairs: On Crosshairs: Off Crosshairs: Off
    Death Messages: On Death Messages: On Death Messages: Off

    Logowanie, Hive

    Serwer loguje zdarzenia do plików

    public1\server_console.log
    public1\arma2oaserver.RPT
    public1\HiveExt.log

    Przy każdym restarcie serwera gry pliki te są kasowane i nadpisywane nowymi. W ten sposób tracicie pełno przydatnych informacji.
    Aby zachować te pliki, skorzystać musicie z naszego systemu działań zautomatyzowanych który przed restartem serwera, zmienia nazwę pliku logów celem zabezpieczenia ich przed nadpisaniem.
    W tym celu rzućcie okiem w panel i zainteresuj się linkiem oznaczonym na screenie cyfrą 1.
    Dayz - panel - menuDayz - panel - menu
    Po kliknięciu w link [1] odesłani zostaniemy do centrum działań zautomatyzowanych - cron dla serwera
    Interesuje nas funkcjonalność:
    Dayz - panel - cronDayz - panel - cron
    Wybierzmy tam akcję zmiennazweloga.bat. Ustawmy stosowną godzinę.
    UWAGA: Zalecamy ustawienie 3 restartów na dobę dla serwera DAYZ
    W ten sposób unikniemy lagów na serwerze związanych z memory leakiem a także zachowamy swoje logi do backupu.

    W katalogu public1 znajduje się plik odpowiedzialny za konfigurację Hive - HiveExt.ini. Dla serwera PUBLIC generalnie nic tam nie zmieniajcie. Edycja tego pliku przyda nam się w przypadku serwera PRIVATE.
    Ale o tym już w następnym rozdziale.
    Co nam daje ustawienie serwera PUBLIC? Wasze osiągnięcia i ekwipunek zapisywane są w centralnej bazie danych Hive i przenoszone są pomiędzy innymi serwerami PUBLIC.


    Tagi: