Jak poprowadzić event hardcore SMP: zasady, start i finał?
W tym artykule
Serwer jest gotowy, świat wygenerowany, a ekipa czeka. Teraz zaczyna się prawdziwa robota: dopilnować, żeby sezon był uczciwy, działał płynnie i porządnie się zakończył. W tym artykule znajdziesz szablon zasad do skopiowania, komendy, dzięki którym wszyscy wystartują dokładnie w tym samym momencie, uczciwe podejście do śmierci i revive'ów, podstawy walki z oszustami, wskazówki na dużą liczbę graczy i streamy, finał z kurczącą się granicą świata oraz sposób na zachowanie świata po sezonie. Jeśli serwer nie jest jeszcze skonfigurowany, zacznij od artykułu jak postawić serwer hardcore SMP.
Spisz zasady przed startem
Technika to ta łatwiejsza część. Kłótnie prawie zawsze dotyczą zasad, o których nikt wcześniej nie pomyślał. Dlatego wrzuć zasady na Discorda, niech każdy je zaakceptuje, i nie zmieniaj ich w połowie sezonu. Ten szablon możesz skopiować; fragmenty w nawiasach uzupełnij sam:
- Jedno życie. Kto zginie, odpada i zostaje obserwatorem do końca sezonu, chyba że obowiązuje zasada revive'u.
- Revive'y. [Brak revive'ów / jeden revive na gracza na sezon w zamian za ustaloną ofiarę / automatyczny powrót po określonej liczbie dni.]
- Wylogowanie w niebezpieczeństwie liczy się jako śmierć. Kto wyloguje się w środku walki, podczas upadku albo w lawie, zostaje przez administratora uznany za martwego.
- Żadnych cheatów ani exploitów. Żadnego x-raya, hack clientów ani dupów. Jeśli nie wiesz, czy coś jest dozwolone, najpierw zapytaj.
- Dozwolone mody po stronie klienta. Mody na wydajność, shadery i Simple Voice Chat są w porządku. Minimapy pokazujące jaskinie albo moby przez ściany, texture packi z x-rayem i autoclickery już nie.
- PvP. [Dozwolone od dnia X / tylko w ustalonych strefach / niedozwolone.]
- Bazy. [Niszczenie dozwolone albo zabronione; nigdy lawą ani TNT w cudzej bazie.]
- Obserwatorzy milczą. Wyeliminowani gracze nie przekazują żadnych informacji żywym graczom, również przez Discorda ani stream.
- Żadnych maszyn do lagowania. Duże farmy i długie ciągi lejów tylko po uzgodnieniu; administrator może wyłączyć farmę, jeśli serwer przez nią cierpi.
- Problemy z serwerem. Przy udokumentowanym crashu albo lagu serwera administrator decyduje o revivie na podstawie logów. Ta decyzja jest ostateczna.
- Koniec. Sezon kończy się [data i godzina]. Kto wtedy jeszcze żyje, [wygrywa razem / gra w finale].
Niech wszyscy wystartują w tym samym momencie
Uczciwy start oznacza, że nikt nie rąbie już drewna, kiedy reszta jeszcze się loguje. Najprostszy sposób: wszyscy pojawiają się w poczekalni przy spawnie w trybie przygody (adventure), w którym nie da się niszczyć bloków, a w chwili startu przełączasz wszystkich naraz na survival.
Przygotowanie
- Zbuduj zamknięte pomieszczenie ze szkła wokół spawnu świata. Jeśli zgodnie z poradnikiem konfiguracji
respawn_radiusjest ustawione na 0, wszyscy pojawią się dokładnie tam. - Wpisz w konsoli
defaultgamemode adventure. Gracze, którzy wchodzą po raz pierwszy, pojawią się teraz w trybie przygody. - Sprawdź komendą
whitelist list, czy wszyscy są na liście, i zrób jeszcze jeden backup świata startowego w zakładce Backups.
Moment startu
Gdy wszyscy są online, wpisz w konsoli po kolei:
defaultgamemode survival
clear @a
effect clear @a
time set day
weather clear
gamemode survival @a
title @a title "GO!"Wszyscy są teraz w survivalu i mogą rozbić szkło. Odliczanie zrobisz tą samą linią title z tekstem "3", "2" i "1". Administratorów, którzy nie grają, przełącz potem z powrotem na obserwatora komendą gamemode spectator Nazwa.
Jeśli wolisz rozrzucić ekipę po mapie, po gamemode survival @a użyj tej komendy:
spreadplayers 0 0 200 2500 false @aRozmieszcza ona wszystkich graczy w losowych miejscach w odległości do 2500 bloków od środka (0, 0), z odstępem co najmniej 200 bloków między nimi. Pilnuj, żeby maksymalna odległość mieściła się w granicy świata.
Ktoś się spóźnia? Ustalcie z góry, do kiedy można dołączyć. Po defaultgamemode survival spóźnialski po prostu pojawi się w survivalu na spawnie.
Uczciwie rozstrzygaj śmierci
Przy śmierci technicznie wszystko dzieje się samo: gracz zostaje obserwatorem, a komunikat o śmierci pojawia się na czacie i w konsoli. Ty jako administrator decydujesz, co dzieje się potem.
Sprawdź, co się stało
- Każda śmierć jest zapisana z godziną w logu serwera. Otwórz w zakładce Files plik
logs/latest.log; starsze dni znajdziesz jako skompresowane pliki w tym samym folderze. - Jeśli ktoś twierdzi, że zginął przez laga, od razu sprawdź komendą
spark tpsTPS i czasy ticków z ostatnich minut. Jeśli TPS trzyma się równo 20, to nie była wina serwera. Jak czytać Sparka, opisujemy w artykule jak naprawić lagi serwera profilerem Spark. - Jeśli serwer naprawdę się przyciął albo scrashował, zastosuj zasadę ustaloną wcześniej. Bez dodatkowego pluginu rzeczy martwego gracza nie da się przywrócić osobno; przywrócenie backupu cofa świat dla wszystkich.
Revive'y bez kłótni
- Ustal z góry, ile jest revive'ów, ile kosztują i czy przywrócony gracz zaczyna z pustym ekwipunkiem.
- Niech administrator wykonuje revive dopiero wtedy, gdy ekipa widziała złożoną ofiarę, na przykład na voice chacie albo na Discordzie.
- Technicznie to jedna komenda:
gamemode survival Nazwa, ewentualnie ztpw bezpieczne miejsce. Wszystkie warianty, także z pluginem revive albo deathban, opisujemy w artykule jak przywrócić martwego gracza na serwerze hardcore.
Gdy administrator też gra
Jeśli administrator sam gra, ekipa musi mieć pewność, że nie nadużywa swoich uprawnień. Paper zapisuje każdą komendę wpisaną przez gracza w logs/latest.log, a dzięki gamerule log_admin_commands (domyślnie włączonej; w 1.21.10 i starszych logAdminCommands) w logu lądują też wyniki komend opów. Ustalcie, że każda akcja admina jest zgłaszana na kanale na Discordzie, a najlepiej niech zarządza ktoś, kto sam nie gra.
Komunikaty o śmierciach automatycznie na Discordzie? Połącz serwer przez DiscordSRV; wtedy każda śmierć staje się momentem dla całej ekipy.
Jak zapobiegać oszustwom: podstawy
Na serwerze ze znajomymi zaufanie jest twoim najważniejszym anti-cheatem. Te środki i tak sporo utrudnią życie oszustom:
- Whitelista i online-mode. Trzymaj
white-list,enforce-whitelistionline-modenatrue. Wtedy wchodzą tylko prawdziwe konta z twojej ekipy. - Jak najmniej OP. Nie dawaj nikomu OP „tylko na chwilę, żeby coś naprawić”, jeśli potem nie odbierzesz go komendą
deop Nazwa. - Blokowanie latania. Zostaw
allow-flight=false(ustawienie domyślne) wserver.properties: wtedy gracze w survivalu, którzy unoszą się w powietrzu, są automatycznie wyrzucani. - Sprawdzanie podejrzanego kopania. Z CoreProtectem komenda
/co lookup u:Nazwa t:2d a:-blockpokazuje, jakie bloki ktoś zniszczył w ciągu ostatnich dwóch dni. Podejrzanie dużo rudy diamentu przy niewielkiej ilości wykopanego kamienia mówi więcej niż przeczucie. Zobacz jak zainstalować CoreProtect. - Pluginy anti-cheat. Jeśli rozważasz jakiś, przetestuj go przed sezonem z kilkoma graczami. Fałszywy alarm, który wyrzuci uczciwego gracza w środku walki, w hardcore może kosztować życie.
Wbudowany anti-xray w Paperze
Paper potrafi ukrywać rudy przed graczami, dopóki nie są naprawdę widoczne, więc texture packi i mody z x-rayem niewiele dają. Ustaw w config/paper-world-defaults.yml:
anticheat:
anti-xray:
enabled: true
engine-mode: 1Potem zrestartuj serwer. Engine-mode 1 zastępuje ukryte rudy zwykłym kamieniem i jest najlżejszym ustawieniem dla twojego serwera.
Wydajność przy wielu graczach i podczas streamów
Wieczorem startowym i podczas finału wszyscy są online naraz, często wtedy, gdy kilku graczy streamuje albo nagrywa. Wtedy chcesz, żeby serwer trzymał równe 20 TPS.
- Wygeneruj świat wcześniej. Największy zysk, zobacz krok 5 poradnika konfiguracji. Eksplorujący gracze ładują wtedy tylko istniejące chunki.
- Świadomie dobierz odległości. W
server.propertiesview-distanceokreśla, jak daleko gracze widzą świat, asimulation-distance, jak daleko moby, farmy i redstone nadal działają. Ładne nagrania wymagają sporego view-distance: zacznij od 10 z simulation-distance 6, a jeśli MSPT regularnie przekracza 40, zejdź z view-distance do 8. - Mierz, zamiast zgadywać.
spark tpspokazuje TPS i MSPT;spark profiler start --timeout 300robi pięciominutowy profil w trakcie laga. - Nie pozwól obserwatorom generować chunków. Ustaw
spectators_generate_chunksnafalse, tak jak w poradniku konfiguracji. - Restartuj codziennie. Zaplanuj w harmonogramach restart na godzinę, w której nikt nie gra, i ostrzeż graczy kilka minut wcześniej komendą
sayw tym samym harmonogramie. - Trzymaj farmy w ryzach. Dużo mobów i długie ciągi lejów to najczęstsze przyczyny lagów. Konkretne ustawienia znajdziesz w artykule o Sparku.
Nagrywanie i streamowanie
- Nigdy nie pokazuj adresu serwera na ekranie. Whitelista nie wpuści widzów, ale znany adres i tak przyciąga niechcianą uwagę.
- Ustaw
hide-online-players=truewserver.properties, jeśli nie chcesz, żeby osoby z zewnątrz widziały na liście serwerów, kto jest online. - Ustalcie, że żywi gracze w trakcie sezonu nie oglądają nawzajem swoich streamów na żywo albo że streamerzy nadają z opóźnieniem.
- Drużyny, które chcą rozmawiać prywatnie, korzystają z grupy w Simple Voice Chat.
- Mapa na żywo, taka jak BlueMap, daje widzom i obserwatorom przegląd sytuacji. Domyślnie pokazuje, gdzie są gracze, więc udostępniaj link z głową.
Przygotuj finał z kurczącą się granicą
Bez finału sezon hardcore często po cichu umiera: ostatni gracze unikają się nawzajem i nikt już nie wchodzi na serwer. Kurcząca się granica świata spycha ich ku sobie, i to samymi komendami z vanilli. W Javie 1.21.11 i nowszych (czyli także 26.x):
worldborder set 1000 259200sGranica skurczy się w ciągu 259200 sekund, czyli trzech prawdziwych dni, do średnicy 1000 bloków. Zwróć uwagę na s za liczbą: od 1.21.11 komenda bez przyrostka liczy czas w tickach, a przyrostek d oznacza dni w grze po dwadzieścia minut, a nie prawdziwe dni. W 1.21.10 i starszych podajesz czas w sekundach bez przyrostka: worldborder set 1000 259200.
Ogłoś kurczenie z dużym wyprzedzeniem, żeby gracze zdążyli zabrać swoje rzeczy z zewnętrznego pasa; poza granicą dostają obrażenia. Na ostatni wieczór najlepiej sprawdza się ogłoszona godzina i arena wokół spawnu. Więcej opcji znajdziesz w artykule jak ustawić world border.
Zakończ sezon i zachowaj świat
- Ogłoś koniec. Wrzuć datę i godzinę finału na Discorda z dużym wyprzedzeniem.
- Zapisz wynik końcowy. Zanotuj, kto jeszcze żyje, i zrób screenshoty baz albo pozwól BlueMapowi jeszcze raz w pełni wyrenderować mapę.
- Wyłącz serwer i zrób backup w zakładce Backups, z nazwą w stylu koniec sezonu 1. Przy wyłączonym serwerze masz pewność, że wszystko zostało zapisane. Zobacz jak utworzyć backup.
- Pobierz backup na swój komputer albo do chmury, zobacz jak pobrać backup. Wolisz sam świat? Pobierz wtedy przez SFTP folder
world(na Paperze 1.21.x i starszym takżeworld_netheriworld_the_end). - Wolna gra (opcjonalnie). Wiele ekip zostawia potem świat otwarty jeszcze przez kilka dni bez zasad sezonu, żeby wcześnie wyeliminowani gracze też mogli coś pobudować. Wyciągnij wszystkich z trybu obserwatora komendą
gamemode survival @a.
Późniejsze otwarcie świata
Jeśli chcesz później znów uruchomić ten świat, przywróć backup na serwerze według artykułu jak przywrócić backup albo wgraj go według artykułu jak wgrać świat. Chcesz otworzyć świat w singleplayerze? Na Paperze 1.21.x i starszym Nether i End są w osobnych folderach world_nether i world_the_end; nie trafią one automatycznie do twojego świata singleplayer.
Nowy sezon
- Zacznij od świeżego świata: zatrzymaj serwer i usuń foldery świata, zobacz jak zresetować świat. Znikną przy tym też ekwipunki, punkty spawnu i postępy wszystkich graczy.
- Wybierz nowy seed według artykułu jak zmienić seed świata i zostaw
hardcore=true, żeby nowy świat też powstał jako hardcore. - Jeśli korzystasz z CoreProtecta, przy wyłączonym serwerze usuń też
plugins/CoreProtect/database.db. Inaczej stare wpisy w logach będą wskazywać współrzędne w świecie, który już nie istnieje. - Potem znów ustaw granicę świata, wygeneruj świat wcześniej i zrób backup startowy, tak jak w poradniku konfiguracji.
Szukasz serwera na kolejny sezon albo większego pakietu dla większej ekipy? Zajrzyj na stronę załóż serwer hardcore SMP albo na naszą stronę o zwykłym serwerze SMP, jeśli chcecie sezon bez permadeath.
Potrzebujesz pomocy?
Najpierw zapytaj Noddy'ego, asystenta AI w panelu gier. Pomoże ci na przykład z błędem w konsoli, pluginem, który się nie ładuje, albo komendą, która nie robi tego, czego się spodziewasz. Jeśli razem nie dacie rady, otwórz ticket przez naszą stronę supportu i dołącz link do raportu Sparka, jeśli chodzi o lagi.
Uruchom swój serwer w 60 sekund na naszym własnym sprzęcie.