Zum Hauptinhalt springen

Die Menüs gestalten

Dungeon hat zwei Menüs, und du zeichnest beide. Diese Seite baut ein minimales Paar: einen Browser mit zwei Dungeon-Slots und eine Lobby mit Buttons für Bereit, Verlassen und Automatisch auffüllen. Sie setzt voraus, dass du bereits eine Dungeon Instance und eine Dungeon Category wie in den Schritten unter Erste Schritte erstellt hast.

Neu bei GUI-Layouts? Lies zuerst die GUI-Einführung und die Layout-Anleitung. Die folgenden Menüs verwenden dieselben Felder layoutPool und mainLayoutId wie die Open GUI-Action.

Das globale Menü​

  1. Füge auf einer Sequence-Page ein Dungeon Global Menu hinzu und setze category auf deine Kategorie. Setze inventoryRows auf 3 und inventoryTitle auf <gold>Dungeons.
  2. Füge in layoutPool ein Layout vom Typ simple mit der id main hinzu. Gib main in mainLayoutId ein.
  3. Füge in items einen Rand hinzu: eine graue Glasscheibe bei x 0, y 0, mit count 9, direction right und einem einzelnen Leerzeichen als displayName. Wiederhole das bei y 2.
  4. Füge ein Item mit buttonType DUNGEON_INSTANCE_SLOT bei x 3, y 1, count 3, direction right, gap 1 hinzu. Sein Material spielt keine Rolle: Es ist ein Marker. Die ersten drei Dungeons der Kategorie füllen die drei Positionen.
  5. Füge optional ein Item mit buttonType DUNGEON_FIND_PARTY bei x 8, y 1 hinzu (zum Beispiel einen Kompass mit dem Namen <yellow>Party suchen) und eines mit buttonType DUNGEON_INFO für ein Hilfebuch.
  6. Löse den Entry aus einer NPC-Dialogoption oder einem Command-Event aus und führe dann Publish aus.

Wie jeder Dungeon aussieht, wird in der Kategorie festgelegt, nicht im Layout: Öffne die Dungeon Category und bearbeite unlockedItem, unlockedName und unlockLore ihres Slots. {dungeon_name}, {players} und {max} werden ersetzt, wenn das Menü geöffnet wird und jedes Mal, wenn es neu gezeichnet wird. Um einen Dungeon für manche Spieler zu sperren, füge seinem Slot criteria hinzu: Sie sehen das gesperrte Aussehen und können ihn nicht öffnen.

Das Party-Menü​

  1. Füge ein Dungeon Party Menu hinzu. Lass sein dungeonInstance leer, um jeden Dungeon zu bedienen, oder nenne einen Dungeon, um ihm ein eigenes Menü zu geben. Ein Menü mit leerem dungeonInstance bedient die Dungeons, die kein anderes Menü nennt.
  2. Setze inventoryRows auf 3 und inventoryTitle auf <gold>Lobbys.
  3. Wähle das Aussehen der Lobby: lobbyItem (standardmäßig ein Papier), lobbyName Lobby {index} und eine lobbyLore wie {players}/{max} Spieler und {player_names}.
  4. Füge in layoutPool ein simple-Layout main hinzu und setze mainLayoutId. Platziere ein Item mit buttonType DUNGEON_LOBBY_SLOT dort, wo Lobbys erscheinen sollen (verwende count, direction und gap für eine Reihe). Ohne Marker werden Lobbys von der oberen linken Ecke aus gezeichnet, und lobbyOffsetX und lobbyOffsetY verschieben sie von deinem Rand oder deinen Buttons weg.
  5. Füge drei Button-Items in der unteren Reihe hinzu: DUNGEON_READY (zum Beispiel ein Lime Dye mit dem Namen <green>Bereit), DUNGEON_LEAVE (eine Barriere) und DUNGEON_AUTO_FILL.
  6. Publish. Löse diesen Entry nicht selbst aus: Er öffnet sich, wenn ein Spieler im globalen Menü einen Dungeon anklickt.

Ein Dungeon hat eine Lobby pro maxSimultaneousInstances, ein Dungeon mit maxSimultaneousInstances 1 zeigt also eine einzelne Lobby.

Was ein Spieler erlebt​

  1. Der Spieler öffnet das globale Menü und klickt einen Dungeon an. Das Party-Menü öffnet sich.
  2. Er klickt eine Lobby an, um sie zu betreten. Ist MMOCore, Parties oder die Typewriter-Party-Erweiterung installiert, betritt die gesamte Party eines Spielers die Lobby gemeinsam, wenn Platz ist (Dungeon liest diese Parties nur und ändert sie nie).
  3. Andere Spieler sehen das neue Mitglied ohne Klick: Beide Menüs aktualisieren sich von selbst (autoRefreshTicks). Jeder Spieler drückt den Bereit-Button. Sind alle bereit und ist minPartySize erreicht, läuft der Countdown startCooldownSeconds, dann wird die Party zum Spawnpunkt teleportiert.
  4. Wenn der Durchlauf endet, kommen die Spieler dorthin zurück, wo sie waren.

Tipps​

Erst einen Prototyp

Zeichne das Layout in einem einfachen Open-GUI-Menü mit Dekorations-Items, prüfe die Positionen, kopiere dann den layoutPool in das Dungeon-Menü und kennzeichne die dynamischen Items.

Button-Typen sind exakt

buttonType muss in Großbuchstaben geschrieben werden, wie unter Menüs aufgelistet. Ein falsch geschriebener Typ ist kein Fehler: Das Item bleibt ein normales Item und tut nichts Besonderes.