/
mc-node.net →
Minecraft

Jak poprowadzić event hardcore SMP: zasady, start i finał?

Zaktualizowano 07/10/20269 min czytania
W tym artykule
  1. Spisz zasady przed startem
  2. Niech wszyscy wystartują w tym samym momencie
  3. Uczciwie rozstrzygaj śmierci
  4. Jak zapobiegać oszustwom: podstawy
  5. Wydajność przy wielu graczach i podczas streamów
  6. Przygotuj finał z kurczącą się granicą
  7. Zakończ sezon i zachowaj świat
  8. Potrzebujesz pomocy?

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:

  1. Jedno życie. Kto zginie, odpada i zostaje obserwatorem do końca sezonu, chyba że obowiązuje zasada revive'u.
  2. Revive'y. [Brak revive'ów / jeden revive na gracza na sezon w zamian za ustaloną ofiarę / automatyczny powrót po określonej liczbie dni.]
  3. 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.
  4. Ż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.
  5. 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.
  6. PvP. [Dozwolone od dnia X / tylko w ustalonych strefach / niedozwolone.]
  7. Bazy. [Niszczenie dozwolone albo zabronione; nigdy lawą ani TNT w cudzej bazie.]
  8. Obserwatorzy milczą. Wyeliminowani gracze nie przekazują żadnych informacji żywym graczom, również przez Discorda ani stream.
  9. Ż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.
  10. Problemy z serwerem. Przy udokumentowanym crashu albo lagu serwera administrator decyduje o revivie na podstawie logów. Ta decyzja jest ostateczna.
  11. 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

  1. Zbuduj zamknięte pomieszczenie ze szkła wokół spawnu świata. Jeśli zgodnie z poradnikiem konfiguracji respawn_radius jest ustawione na 0, wszyscy pojawią się dokładnie tam.
  2. Wpisz w konsoli defaultgamemode adventure. Gracze, którzy wchodzą po raz pierwszy, pojawią się teraz w trybie przygody.
  3. 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 @a

Rozmieszcza 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 tps TPS 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 z tp w 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-whitelist i online-mode na true. 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) w server.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:-block pokazuje, 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: 1

Potem 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.

  1. Wygeneruj świat wcześniej. Największy zysk, zobacz krok 5 poradnika konfiguracji. Eksplorujący gracze ładują wtedy tylko istniejące chunki.
  2. Świadomie dobierz odległości. W server.properties view-distance określa, jak daleko gracze widzą świat, a simulation-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.
  3. Mierz, zamiast zgadywać. spark tps pokazuje TPS i MSPT; spark profiler start --timeout 300 robi pięciominutowy profil w trakcie laga.
  4. Nie pozwól obserwatorom generować chunków. Ustaw spectators_generate_chunks na false, tak jak w poradniku konfiguracji.
  5. Restartuj codziennie. Zaplanuj w harmonogramach restart na godzinę, w której nikt nie gra, i ostrzeż graczy kilka minut wcześniej komendą say w tym samym harmonogramie.
  6. 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=true w server.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 259200s

Granica 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

  1. Ogłoś koniec. Wrzuć datę i godzinę finału na Discorda z dużym wyprzedzeniem.
  2. Zapisz wynik końcowy. Zanotuj, kto jeszcze żyje, i zrób screenshoty baz albo pozwól BlueMapowi jeszcze raz w pełni wyrenderować mapę.
  3. 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.
  4. 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że world_nether i world_the_end).
  5. 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.