DayZ potrafi wysyłać wiadomości do wszystkich na serwerze według harmonogramu, i nie wymaga do tego narzędzia RCON, BEC ani modów. Cała funkcja mieści się w jednym pliku w folderze misji o nazwie messages.xml, a ten sam plik obsługuje też odliczanie do restartu, którym większość serwerów ostrzega graczy przed wyłączeniem. Ten poradnik omawia każdy tag, jednostki których używają, oraz konfigurację gotową do wklejenia i edycji.
Gdzie leży messages.xml
Otwórz serwer w panelu gry, przejdź do zakładki Files i wejdź w:
mpmissions/dayzOffline.chernarusplus/db/messages.xml
Na Livonii folder misji to mpmissions/dayzOffline.enoch/, a na Sakhal mpmissions/dayzOffline.sakhal/. To ten sam folder db, w którym leżą types.xml i globals.xml.
Plik jest dostarczany z serwerem, ale wszystko w środku siedzi w bloku komentarza XML, więc świeży serwer nie wysyła żadnych wiadomości. Tak ma być, i dzięki temu masz własne przykłady Bohemii pod ręką w edytorze.

Dostępne tagi
| Tag | Co robi | Jednostka |
|---|---|---|
deadline |
Uruchamia odliczanie kończące się tyle czasu po gotowości serwera | minuty |
shutdown |
1 wyłącza serwer, gdy odliczanie dojdzie do zera |
0 lub 1 |
repeat |
Wysyła wiadomość ponownie w tym odstępie | minuty |
delay |
Razem z onconnect: po jakim czasie od dołączenia gracz zobaczy wiadomość |
minuty |
onconnect |
1 pokazuje wiadomość graczowi po połączeniu |
0 lub 1 |
text |
Sama wiadomość | tekst |
W text masz dwa symbole zastępcze. #name zamienia się na nazwę serwera, a #tmin na liczbę minut pozostałych do końca odliczania.
Wszystkie wartości czasowe podaje się tu w minutach. To wielu myli, bo kilka poradników w sieci twierdzi, że chodzi o sekundy. Własny szablon Bohemii, zakomentowany w twoim pliku właśnie teraz, opisuje <deadline>600</deadline> jako "shuts down server in 10 hours", a <repeat>15</repeat> jako "displayed every 15 minutes".
Działająca konfiguracja
Zastąp zawartość messages.xml tym poniżej i dostosuj treści do swojego serwera. Dostajesz wiadomość powitalną, cykliczne przypomnienie co 30 minut oraz odliczanie do restartu cztery godziny po uruchomieniu serwera.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<messages>
<message>
<delay>1</delay>
<onconnect>1</onconnect>
<text>Welcome to #name. Read the rules in our Discord.</text>
</message>
<message>
<repeat>30</repeat>
<text>Server restarts every 4 hours. Log out safely before a restart.</text>
</message>
<message>
<deadline>240</deadline>
<shutdown>1</shutdown>
<text>#name restarts in #tmin minutes. Find a safe spot and log out.</text>
</message>
</messages>

Zapisz plik i zrestartuj serwer raz. messages.xml jest wczytywany przy starcie misji, więc zmiany nigdy nie wchodzą w już trwającą sesję.
Co odliczanie faktycznie robi
deadline nie wysyła jednej wiadomości na końcu. Serwer powtarza ostrzeżenie w miarę zbliżania się terminu, a #tmin odlicza, więc piszesz wiadomość raz, a każdy gracz dostaje kilka okazji, żeby zareagować.
Ostrzeżenia zagęszczają się, im bliżej terminu. W teście na działającym serwerze z deadline ustawionym na 12 minut serwer ostrzegał przy 10, 5, 4, 3, 2 i 1 minucie do końca, czyli przez ostatnie pięć minut co minutę. Dłuższe deadline dokładają wcześniejsze punkty kontrolne, więc cykl czterogodzinny daje graczom mnóstwo uprzedzenia z jednego wpisu <message>.
Dwa szczegóły warte zapamiętania, oba potwierdzone na działającym serwerze:
- Zegar rusza, gdy misja skończy się wczytywać, a nie w chwili naciśnięcia Start. Modowany serwer DayZ potrafi startować dwie albo trzy minuty, i ten czas nie liczy się do deadline.
deadlinerówny 240 daje ci więc cztery godziny grywalnego czasu pracy, a nie cztery godziny między restartami. - Przy jednej minucie do końca serwer zapisuje graczy, blokuje się i wyrzuca wszystkich, a potem się kończy. Ta ostatnia część znaczy więcej, niż brzmi: wyłączenie przez deadline wykonuje ścieżkę zapisu dla wszystkich nadal połączonych, zamiast wyrywać im grunt spod nóg. Więcej w jak zrestartować serwer DayZ bez utraty ekwipunku graczy.
Odliczanie napędza tylko najwyższy deadline w pliku. Nie dodawaj kilku deadline w nadziei, że ustawią się w kolejce.
Czy serwer wraca sam?
Tak. W DoomHosting panel podnosi serwer z powrotem od razu po tym, jak shutdown zakończy proces DayZ, a odliczanie rusza od nowa. Jeden wpis deadline daje ci więc kompletny, samopowtarzalny cykl restartów z ostrzeżeniami, i nie ma nic więcej do skonfigurowania.
Jeśli wolisz sterować restartami z panelu, żeby wypadały o stałych godzinach, ustaw shutdown na 0 i dodaj zamiast tego akcję Restart w zakładce Schedule. Ustaw wtedy deadline o kilka minut krócej niż interwał harmonogramu, żeby ostrzeżenia zdążyły wyjść, zanim panel zatrzyma serwer.
Częste problemy
W ogóle nie pojawiają się żadne wiadomości. Najczęstsza przyczyna to wklejenie nowych wiadomości do bloku komentarza dostarczonego z plikiem. Wszystko między <!-- a --> jest ignorowane. Twoje wpisy <message> muszą znaleźć się po -->, a przed </messages>.
Plik się nie wczytuje. messages.xml musi być poprawnym XML-em. Brakujący tag zamykający albo luźny & w treści sprawi, że serwer po cichu pominie plik, bez błędu w konsoli. Ampersand trzeba zapisać jako &.
Odliczanie wypada o złej porze doby. deadline mierzy się od startu serwera, a nie od północy, i zeruje się przy każdym podniesieniu serwera. Jeśli potrzebujesz restartów o stałych godzinach, steruj nimi z zakładki Schedule, jak opisano wyżej.
Edytowałeś niewłaściwą mapę. Chernarus, Livonia i Sakhal mają osobne foldery misji, a wczytywany jest tylko ten, na którym serwer faktycznie działa. Sprawdź wartość mpmissions w zakładce Startup, jeśli nie masz pewności, który jest aktywny.
Gracz nigdy nie widzi wiadomości powitalnej. Wiadomości onconnect odpalają się po ustawionym delay, więc ktoś, kto przy <delay>1</delay> dołączy i wyjdzie w ciągu minuty, ją przegapi.
