Zum Hauptinhalt springen

MegaBlock Survivors Bestenliste

MegaBlock Survivors zeichnet jeden nicht gecheateten, abgeschlossenen Durchlauf in einer dauerhaften Bestenliste auf, die in plugins/MegaBlockSurvivors/leaderboard.yml gespeichert wird. Gecheatete Durchläufe (jedes Match, in dem /mbs cheat verwendet wurde) sind ausdrücklich ausgeschlossen.

Kategorien

Jeder Eintrag trägt ein Spielmodus- und ein Schwierigkeits-Tag, sodass die Bestenliste in 6 unabhängige Buckets aufgeteilt ist:

ModusSchwierigkeit
ChallengeEasy
ChallengeMedium
ChallengeHard
EndlessEasy
EndlessMedium
EndlessHard

Die Buckets werden unabhängig voneinander gerankt und jeder Bucket fasst auf der Festplatte bis zu 100 Einträge. Den Spielern werden die Top 10 angezeigt.

Ranking-Regeln

ModusPrimäre SortierungTiebreaker
ChallengeSchnellste Abschlusszeit (aufsteigend)Bei Gleichstand gewinnen neuere Einträge
EndlessHöchste erreichte Welle (absteigend)Überlebenszeit (länger gewinnt), dann Zeitstempel

Diese Aufteilung ist sinnvoll, weil der Challenge-Modus einen festen Endpunkt hat (den Endboss), sodass "schnellste Abschlusszeit" die naheliegende Skill-Metrik ist. Endless hat kein Ende, daher ist "höchste erreichte Welle" das aussagekräftige Maß.

In-Welt-Hologramm

Ein einzelnes TextDisplay-Hologramm wird in der Lobby-Welt mbs_spawn (an den Weltkoordinaten ca. 4.5, 67, -14.5) erzeugt. Das Hologramm ist unten verankert -- die untere Kante des Textes liegt stets auf dem Anker-Y, sodass das Hinzufügen neuer Sektionen die Anzeige nach oben wachsen lässt, anstatt sich nach unten durch den Boden zu schieben.

Das Hologramm rendert bis zu sechs Sektionen (Challenge x {Easy, Medium, Hard} gefolgt von Endless x {Easy, Medium, Hard}). Sektionen mit null Einträgen werden stillschweigend übersprungen, damit ein frischer Server nicht sechs leere Buckets anzeigt. Ist jeder Bucket leer, wird stattdessen eine einzelne Zeile "no highscores yet" gezeigt.

Das Hologramm wird automatisch neu erzeugt:

  • Beim Aktivieren / Reload des Plugins.
  • Nachdem ein neuer Bestenlisten-Eintrag aufgezeichnet wurde.
  • Wenn der Anker-Chunk in mbs_spawn neu geladen wird (Paper entfernt nicht-persistente Display-Entities beim Entladen von Chunks, daher erzeugt der Listener das Hologramm jedes Mal neu, wenn der Lobby-Chunk zurückkehrt).

Existiert mbs_spawn nicht auf der Festplatte, wird das Hologramm stillschweigend übersprungen und ein WARN protokolliert.

Chat-Anzeige pro Durchlauf

Endet ein nicht-gecheateter Durchlauf, sieht der Spieler die Top 10 seines Buckets als Chat-Block. Die eigene Zeile des Spielers ist hervorgehoben (> #N). Liegt der Rang des Spielers außerhalb der Top 10, wird eine Ellipsen-Zeile gefolgt von seiner tatsächlichen Rangzeile angezeigt.

Gecheatete Siege zeigen stattdessen den Hinweis "Leaderboard not updated (cheating detected)".

Eintrags-Schema

Jeder Eintrag verfolgt:

FeldBeschreibung
playerNameDer Bukkit-Anzeigename am Ende des Durchlaufs.
playerUUIDDie UUID des Spielers.
timeSecondsGesamtdauer des Durchlaufs in Sekunden.
killsGesamtzahl der Nicht-Boss-Kills.
levelFinales Level des Spielers.
highestWaveHöchste erreichte Welle. Primärer Wert für Endless.
gameModeCHALLENGE oder ENDLESS.
difficultyEASY, MEDIUM oder HARD.
timestampEpoch-Millisekunden, zu denen der Durchlauf endete.

Altdaten-Einträge aus der Zeit vor dieser Aufteilung werden beim Lesen automatisch mit Challenge / Medium getaggt, damit alte Bestenlisten weiterhin gerendert werden.

Bestenliste leeren

Es gibt keinen In-Game-Befehl, um die Bestenliste zu leeren. Zum Zurücksetzen den Server stoppen und plugins/MegaBlockSurvivors/leaderboard.yml löschen.