Dungeon
Überblick
Dungeon lässt eine Party eine private Kopie eines Dungeons spielen. Jeder Spieldurchgang ist ein Durchlauf (Run): Er hat seine eigene Welt (oder seinen eigenen Slot in einer geteilten Welt), seine eigenen Mitglieder, sein eigenes Zeitlimit, seine eigenen Truhen, NPCs und Mobs und endet sauber, indem alle dorthin zurückgeschickt werden, woher sie kamen.
Ein Dungeon wird durch einen Dungeon Instance-Entry beschrieben. Spieler wählen ihn in einem globalen Menü (einem Browser von Dungeons, in einer Kategorie gruppiert), betreten eine Lobby im Party-Menü, markieren sich als bereit und werden hineinteleportiert, wenn der Countdown endet. Team-Mitglieder und Quests können einen Spieler auch direkt mit der Action Dungeon Enter oder mit einem Befehl hineinschicken.
Es gibt zwei Arten von Dungeons:
- Fest: Du baust den Dungeon einmal in einer Vorlagenwelt. Räume sind Zonen, die du im Spiel zeichnest, und alles geschieht an den Orten, die du festlegst. Das ist der klassische Dungeon.
- Generiert: Du baust Raumvorlagen (kleine Strukturen mit Türen und Markern), und ein Generator setzt für jeden Durchlauf ein neues Layout zusammen, vom Startraum bis zum Bossraum. Derselbe Seed ergibt immer denselben Dungeon. Siehe Generierte Dungeons.
Beide Arten teilen sich dieselben Durchläufe, Menüs, Truhen, NPCs, Mobs, Events und Facts.
Dungeon zielt auf Paper. Folia wird nicht unterstützt: Das offizielle Typewriter-Plugin läuft dort nicht.
Funktionen
- Durchläufe und Gruppen: ein Durchlauf pro Gruppe, mehrere Durchläufe desselben Dungeons gleichzeitig (
maxSimultaneousInstances), ein Zeitlimit, Eintrittskosten, Ende des Durchlaufs bei Abschluss, Zeitablauf, leerem Durchlauf oder Admin-Schließung. Siehe Durchläufe und Weltisolation. - Drei Isolationsmodi:
SLIME_CLONE,WORLD_PER_RUNundSHARED_WORLD_SLOTS, pro Dungeon mit dem Feldisolationgewählt. - Feste Dungeons: Räume mit den Triggern
onEnter/onLeave, Modifiern, Criteria und Priorität. - Generierte Dungeons: Raumvorlagen, Konnektortypen, Raum-Pools, ein Generator, Affixe und ein Editor im Spiel, um Räume zu erfassen und Türen und Marker zu setzen.
- Globales Menü und Party-Menü: Layouts der GUI-Erweiterung, live aktualisiert, während Spieler Lobbys betreten und verlassen.
- Loot-Truhen: Block-Truhen oder an NPCs verankerte Truhen, echt oder clientseitig, ein Inventar pro Spieler oder geteilt, gewichteter oder unabhängiger Loot.
- NPCs pro Durchlauf: ein NPC, der nur den Mitgliedern eines Durchlaufs angezeigt wird, aus jeder Typewriter-Entity-Definition. Siehe Entities in Dungeons.
- Kampf-Mobs: echte Vanilla-Mobs, die einmal pro Durchlauf erscheinen, mit Ausrüstung, Attributen, Drop-Regeln und Triggern beim Tod, durch ein Limit begrenzt.
- Events, Facts und Actions: Events für Start, Abschluss, Raum betreten, Raum verlassen und Mob-Tod; Facts für „ist in einem Dungeon“ und „lebende Mobs“; Actions, um einen Durchlauf abzuschließen, einen Raum zu leeren und eine Welle zu spawnen.
- Statistiken: 22 Statistiken pro Spieler (Durchläufe, Bestzeit, Mob-Kills, verursachter und erlittener Schaden, Tode, geleerte Wellen...), lesbar mit Placeholdern und einem Fact und in einer GUI-Bestenliste rangierbar. Siehe Statistiken.
- Reload-sicher: Ein
typewriter reloadoder ein Publish lässt die Durchläufe weiterlaufen. Ein Serverneustart beendet sie. - Parties anderer Plugins: liest die Party von MMOCore, Parties oder der Typewriter-Party-Erweiterung, damit Freunde gemeinsam eintreten.
Installation
- Installiere die GUI-Erweiterung von ihrer Seite. Beide Dungeon-Menüs verwenden ihre Layouts.
- Stelle sicher, dass die TypeWriter-Erweiterung Quest installiert ist.
- Bereite vor, was dein Isolationsmodus braucht (siehe Durchläufe und Weltisolation):
- Fester Dungeon: eine Vorlagenwelt als Ordner im Stammverzeichnis deines Servers (neben
world), zum Beispieldungeon_temple. Der Name darf Buchstaben, Ziffern,_und-enthalten, bis zu 64 Zeichen. - Generierter Dungeon: keine Vorlagenwelt. Die Erweiterung erstellt für jeden Durchlauf eine leere Welt.
- Slime-Klon: Advanced Slime Paper mit der Vorlage als geladener Slime-Welt.
- Fester Dungeon: eine Vorlagenwelt als Ordner im Stammverzeichnis deines Servers (neben
- Lade Dungeon aus den Stores herunter (siehe die Buttons im Panel oben) und lege die JAR in
plugins/Typewriter/extensions/ab. - Starte den Server neu.
- Optional: Installiere MMOCore oder Parties für die Unterstützung externer Parties und PlaceholderAPI für die Placeholder.
Aktualisierst du von 0.10? Lies zuerst den Migrationshinweis.
Erste Schritte
Diese Anleitung baut einen festen Dungeon mit einem Lobby-Menü und einer Truhe. Für einen generierten Dungeon beginne mit Generierte Dungeons.
- Öffne im Web-Panel eine Manifest-Page und füge eine Dungeon Room Config hinzu. Stelle dich dorthin, wo Spieler ankommen sollen, klicke auf den Content-Editor von
spawnPointund bestätige. Welt, Koordinaten und Blickrichtung werden erfasst. - Füge eine Dungeon Instance hinzu. Setze
templateWorldauf den Namen des Weltordners, füge die Room Config zuroomConfigurationshinzu und setzeminPartySizeundmaxPartySize. - Füge ein Dungeon Artifact (Statistiken) und ein Active Dungeon Instance Artifact (Zustand der Durchläufe) hinzu und verknüpfe sie in
artifactundruntimeArtifact. Ohne das zweite werden Durchläufe in einer Dateiruns.jsonder Erweiterung gehalten, und beim Laden wird eine Warnung protokolliert. Das FeldpartyLobbyArtifactwird nicht mehr verwendet: Lass es leer. - Füge eine Dungeon Category hinzu. Füge in
instanceseinen Slot hinzu, setzedungeonInstanceund wähle die Items für freigeschaltet und gesperrt. - Füge auf einer Sequence-Page ein Dungeon Global Menu und ein Dungeon Party Menu hinzu. Gestalte beide Layouts wie unter Menüs beschrieben.
- Löse das globale Menü aus einem NPC-Dialog, einem Command-Event oder einem beliebigen anderen Trigger aus. Publish.
- Füge für die Instance eine Dungeon Loot Chest hinzu. Stelle dich dorthin, wo die Truhe stehen soll, erfasse
locationund füllelootTable. - Füge eine Dungeon Complete-Action dort hinzu, wo der Dungeon enden soll (zum Beispiel am Ende eines Dialogs nach der letzten Truhe).
- Teste: Öffne das Menü, klicke den Dungeon an, klicke die Lobby an, drücke den Bereit-Button.
Um die Menüs zu überspringen und einen Spieler direkt hineinzuschicken, verwende Dungeon Enter oder /typewriter dungeon enter <instance>. Das überspringt die Lobby, aber nicht die Regeln: Gruppengröße (ein einzelner Spieler muss durch minPartySize erlaubt sein), Criteria, Eintrittskosten und die Anzahl gleichzeitiger Durchläufe werden alle geprüft.
Funktionsweise
Ein Durchlauf beginnt, wenn eine Lobby startet oder wenn eine Dungeon Enter-Action läuft. Die Erweiterung prüft die Criteria und die Gruppengröße jedes Spielers, reserviert einen Platz (ein Doppelklick erzeugt nur einen Durchlauf), bereitet die Welt vor, zieht die Eintrittskosten ein (ganz oder gar nicht), teleportiert die Spieler und löst dann onStart aus und wendet modifiers für jedes Mitglied an. Schlägt unterwegs etwas fehl, wird nichts behalten: Die Spieler bleiben, wo sie waren, die Kosten werden erstattet und die Welt wird verworfen.
Ein Durchlauf endet, wenn Dungeon Complete läuft, wenn das Zeitlimit null erreicht, wenn Dungeon Close oder /typewriter dungeon close läuft oder wenn der letzte Spieler geht, die Welt wechselt oder die Verbindung trennt. onEnd wird für jedes Mitglied ausgelöst, die Truhen, NPCs und Mobs des Durchlaufs werden entfernt, die Spieler werden zum Ausgangspunkt (oder dorthin, woher sie kamen) teleportiert, und die Welt wird freigegeben.
Wenn mehrere Enden gleichzeitig eintreten, gewinnt nur eines, sodass es nie zwei onEnd oder eine doppelte Erstattung gibt.
Reloads und Neustarts
Ein typewriter reload oder ein Publish verliert die Durchläufe nicht: Sie werden mit ihren Mitgliedern, ihrer Welt, ihrer Deadline, dem Raumzustand (ein once-Raum bleibt verbraucht), den geöffneten Truhen und den bereits gespawnten Mobs wieder übernommen. onStart, Modifier und Truhen werden nicht erneut abgespielt. Ein generierter Dungeon wird aus seinem Seed im Speicher neu aufgebaut.
Ein Serverneustart beendet die Durchläufe: Die Welten der Durchläufe sind weg, Spieler werden bei ihrem nächsten Beitritt nach Hause geschickt, und die übrig gebliebenen Weltordner werden gelöscht. Lobbys werden von keinem von beiden wiederhergestellt.
Verbindungsabbrüche
Ein Mitglied, das die Verbindung zu einem laufenden Dungeon verliert, behält seinen Platz für das reconnectGrace der Dungeon Instance (standardmäßig 2 Minuten). In dieser Zeit schließt der Durchlauf nicht, und die Statistiken dieses Mitglieds werden nicht ausgezahlt. Kommt das Mitglied rechtzeitig zurück, erscheint es wieder dort, wo es war, mit Sidebar, ausgeblendeten Slots und Spielmodus wie zuvor. Läuft die Frist ab, verlässt es den Durchlauf und wird bei seinem nächsten Beitritt dorthin zurückgeschickt, wo es eingestiegen ist. Das Zeitlimit des Durchlaufs läuft weiter.
Ein Mitglied, auf das gewartet wird, bleibt Mitglied: Endet der Durchlauf in der Zwischenzeit, erhält es sein Ergebnis wie die anderen, Abschluss und Bestzeit eingeschlossen, während die onEnd-Trigger nur für die Mitglieder laufen, die online sind. 0 bedeutet keine Frist: Ein Verbindungsabbruch entfernt den Spieler sofort. Ein typewriter reload während der Frist beendet sie für die Spieler, auf die gewartet wird.
Ist MMOProfiles installiert, wird die Rückkehr nach der Profilwahl erneut geprüft. Ein Spieler, der in keinem Durchlauf ist und den das Profil in eine Dungeon-Welt setzt, wird dorthin zurückgeschickt, wo er eingestiegen ist, und der Spielmodus, den ein Dungeon geändert hatte, wird zurückgegeben, egal welchen Modus das Profil wiederhergestellt hat. Ein Spieler, der in seinem Durchlauf ist (in der Frist), macht einfach weiter. Ohne MMOProfiles ändert sich nichts.
Menüs
Dungeon hat zwei Menüs. Beide sind Actions mit einem GUI-layoutPool und einer mainLayoutId. Items in den Layouts funktionieren wie jedes GUI-Item. Die Items, deren buttonType einer der folgenden Werte ist, werden von Dungeon ausgefüllt: Dein Item (Material, Name, Lore) bleibt erhalten, und ein Klickverhalten wird hinzugefügt. Schreibe buttonType in Großbuchstaben, genau wie aufgelistet. Lass buttonPrefix leer.
Beide Menüs werden alle autoRefreshTicks neu gezeichnet (standardmäßig 20, zwischen 10 und 1200 gehalten) und sofort für jeden Spieler, der sie geöffnet hat, sobald sich eine Lobby der angezeigten Dungeons ändert. Ein Spieler sieht einen anderen Spieler beitreten, ohne zu klicken.
Für die Layouttypen, Item-Felder (x, y, count, direction, gap, repeatY) und Klick-Actions lies die GUI-Anleitung. Einen Aufbau Schritt für Schritt findest du unter Die Menüs gestalten.
Globales Menü
Das Dungeon Global Menu zeigt die Dungeons einer category. Es öffnet sich, wenn die Action ausgelöst wird, oder mit /typewriter dungeon global-menu <category>.
buttonType | Verhalten |
|---|---|
DUNGEON_INSTANCE_SLOT | Markiert, wo ein Dungeon erscheint. Setze einen pro Dungeon oder verwende count, direction, gap und repeatY, um eine Reihe oder einen Block zu markieren. Jeder Marker wird durch den nächsten Dungeon der Kategorie ersetzt. Überzählige Marker bleiben leer. |
DUNGEON_FIND_PARTY | Linksklick betritt die erste nicht leere Lobby mit freiem Platz unter den freigeschalteten Dungeons der Kategorie und öffnet das Party-Menü. Ist der Spieler bereits in einer Lobby der Kategorie, verlässt er sie stattdessen. |
DUNGEON_INFO | Nur Anzeige. Verwende es für ein Hilfe-Item. |
Wie Dungeons dargestellt werden:
- Dungeons sind nach ihrer
categoryPrioritysortiert (niedrigste zuerst), dann nach Entry-Id. - Ein Slot wird mit
unlockedItem,unlockedNameundunlockLoreangezeigt, wenn seinecriteriaauf den Spieler zutreffen (eine leere Liste trifft immer zu). Ein Klick darauf öffnet das Party-Menü für diesen Dungeon. - Ein Slot, dessen
criterianicht zutreffen, wird im gesperrten Aussehen angezeigt und kann nicht geöffnet werden. Die Criteria werden für jeden Spieler ausgewertet, der das Menü öffnet, und erneut, wenn der Spieler klickt. - Namen und Lore können
{dungeon_name},{players}und{max}sowie PlaceholderAPI-Placeholder verwenden.{players}ist die Größe der ersten Lobby des Dungeons. - Setze die
DUNGEON_INSTANCE_SLOT-Marker in Layouts vom Typsimple,paginatedoderscrollable. Ist das Basis-Layout scrollbar, scrollen die Dungeons mit. - Ohne einen
DUNGEON_INSTANCE_SLOT-Marker wird kein Dungeon angezeigt.
Party-Menü
Das Dungeon Party Menu ist die Lobby. Es öffnet sich, wenn ein Spieler im globalen Menü einen Dungeon anklickt, und mit /typewriter dungeon instance-menu <instance>. Das Auslösen der Action selbst bewirkt nichts außer der Ausgabe eines Hinweises, verbinde sie also nicht mit einem NPC.
Welches Menü welchen Dungeon bedient. Ein Party-Menü, dessen dungeonInstance den Dungeon nennt, bedient ihn. Ein Party-Menü mit leerem dungeonInstance bedient jeden Dungeon, den kein anderes Menü nennt. Ein Menü, das für einen anderen Dungeon geschrieben wurde, wird nie stattdessen geöffnet: Passt keines, wird der Spieler informiert, und das Serverlog meldet No dungeon_party_menu serves '<instance>'. Du kannst also ein Menü pro Dungeon haben, ein gemeinsames Menü oder beides.
Ein Dungeon hat so viele Lobbys wie sein maxSimultaneousInstances. Jede Lobby ist ein Item: lobbyItem, benannt mit lobbyName und beschrieben mit lobbyLore. Wo die Lobbys gezeichnet werden:
- Mit
DUNGEON_LOBBY_SLOT-Markern in einemsimple-Layout (wie beiDUNGEON_INSTANCE_SLOT, mitcount,directionundgap, um mehrere zu markieren) wird jeder Marker durch die nächste Lobby ersetzt. - Ohne Marker wird Lobby
nin SpaltelobbyOffsetX + (n mod 9)und ZeilelobbyOffsetY + (n div 9)platziert, ab 0 gezählt.
Ein Klick auf eine Lobby betritt sie.
Placeholder in lobbyName und lobbyLore | Wert |
|---|---|
{index} | Lobby-Nummer, ab 1. |
{players}, {max} | Spieler in der Lobby und maxPartySize. |
{player_names} | Namen der Mitglieder, in das Präfix und Suffix für bereit oder nicht bereit eingefasst. Nur Lore. |
{ready_players}, {not_ready_players} | Anzahlen. Nur Lore. |
readyPlayerPrefix, readyPlayerSuffix, notReadyPlayerPrefix und notReadyPlayerSuffix färben die Namen in {player_names}.
buttonType | Verhalten |
|---|---|
DUNGEON_LOBBY_SLOT | Markiert, wo eine Lobby erscheint. |
DUNGEON_READY | Schaltet „bereit“ um. Fehlen dem Spieler die Eintrittskosten, wird niemand als bereit markiert, und die Lobby erhält die missingItemsMessage des Dungeons. |
DUNGEON_LEAVE | Verlässt die Lobby und kehrt zum globalen Menü zurück, aus dem der Spieler kam. |
DUNGEON_AUTO_FILL | Betritt die erste nicht leere Lobby mit einem freien Platz. |
Wenn der Durchlauf startet:
- Alle in der Lobby müssen bereit sein, und die Lobby muss mindestens
minPartySizeSpieler enthalten. - Ein Countdown von
startCooldownSecondsläuft. Er stoppt, wenn jemand die Bereitschaft zurücknimmt. Bei0startet der Durchlauf sofort. - Die Criteria werden für jeden Spieler geprüft, dann die Eintrittskosten. Bei
entryCostModeLEADERzahlt der erste Spieler der Lobby. BeiGROUPzahlt jeder. Items werden nur genommen, wenn niemandem etwas fehlt. - Der Durchlauf wird erstellt, und die Spieler werden zum Spawnpunkt teleportiert.
Eine Lobby, die lobbyIdleKickSeconds (standardmäßig 120 Sekunden) ohne Countdown wartet, wird geleert. Ein Admin kann eine Lobby mit /typewriter dungeon force-start <instance> von Hand starten, was die Mindestgruppengröße und die Criteria aufhebt.
Während Spieler warten, kann das Party-Menü ein Warte-Scoreboard anzeigen (enableWaitingScoreboard, scoreboardTitle, scoreboardWaiting mit {missing}, scoreboardCountdown mit {time}).
Parties anderer Plugins. Ist MMOCore (mit seinem eigenen Party-Modul), Parties oder die Typewriter-Party-Erweiterung installiert, liest Dungeon deren Parties und erstellt, führt zusammen oder ändert sie nie. Betritt ein Spieler eine Lobby, betritt die gesamte Party dieses Spielers sie mit, wenn die Lobby Platz für alle hat. MMOCore wird allein verwendet, wenn es vorhanden ist.
Von den Buttons verwendete Befehle
Die Buttons verwenden keinen Serverbefehl: Sie rufen einen internen Handler des Menüsystems auf, daher brauchen Spieler keine Berechtigung, und es muss nichts von Hand eingegeben werden.
Konfiguration
Die Erweiterung hat keine Konfigurationsdatei. Die meisten Einstellungen liegen auf Entries. Die Nachrichten der Action-Entries (Enter, Leave, Close, Complete) und der Dungeon Instance (missingItemsMessage) sind Felder. Die Leerlaufzeit einer Lobby ist das Feld lobbyIdleKickSeconds der Dungeon Instance (Standard 120, 2 Minuten).
Jeder andere Text, den ein Spieler liest, ist ein Typewriter-Snippet, es ist also nichts im Code festgelegt: Ändere oder übersetze sie im Web-Panel (Snippets). Werte sind MiniMessage, und {...}-Placeholder werden wie aufgelistet ersetzt. Behältst du die Standardwerte, ändert sich nichts.
| Familie | Schlüssel (nach dem Präfix) |
|---|---|
content.dungeon_menu. | invalid_action, action_failed, in_instance, party_in_instance, global_in_instance, locked, lobby_unavailable, left_lobby, not_in_lobby, no_lobby_available, left_party, no_party_found, no_party_menu ({dungeon}), no_category, party_needs_dungeon |
content.dungeon_lobby. | idle_kick ({seconds}, {minutes}), party_sync, missing_items_fallback ({PlayerName}, {MissingQuantity}, {ItemName}; verwendet, wenn missingItemsMessage leer ist), scoreboard_syncing |
content.dungeon_run.sidebar. | time_left ({seconds}), quest ({number}). Eine Sidebar-Zeile ist reiner Text: MiniMessage-Tags werden entfernt. |
content.dungeon_chest. | default_title (Titel einer Truhe, deren containerTitle leer ist), trigger_chest_missing, trigger_not_manual |
content.dungeon_launch. | prefix (vor jeden Text der Familie gesetzt), no_online_member, already_in_run ({player}), no_room_configuration, group_size ({size}, {min}, {max}), criteria_not_met ({player}), missing_cost und missing_cost_leader ({player}, {amount}, {item}), max_runs_reached, isolation_unavailable, generation_failed ({text}), failed |
content.dungeon_stats. | Wie die Statistik-Placeholder schreiben: duration_format (Token {h}, {m}, {mm}, {ss}, {SSS}; Standard {mm}:{ss}) und missing_value (was für einen noch nicht vorhandenen Wert steht; Standard -). |
content.dungeon_command. | Die Antworten der /typewriter dungeon ...-Befehle: only_players.close, only_players.enter, only_players.leave, only_players.menu, only_players.force_start, only_players.edit_room (an die Konsole gesendet), not_in_run, close.done, close.already_closing, enter.done ({dungeon}), leave.done ({dungeon}), instance_menu.join_failed, instance_menu.joined ({dungeon}), global_menu.not_configured ({category}), force_start.not_in_lobby, force_start.done ({dungeon}), room.invalid_index ({index}) |
content.dungeon_room., content.dungeon_room_template., content.dungeon_generated. | Raum-Editoren und Ablehnungen bei generierten Dungeons. |
Auch die Antworten der /typewriter dungeon ...-Befehle sind Snippets, obwohl die Befehle nur für das Personal gedacht sind. Die Antworten des Raum-Editors (addnode, removenode, save...) stehen in content.dungeon_room., und der Text eines abgelehnten enter ist ein Snippet aus content.dungeon_launch..
Die Artifacts speichern Daten unter plugins/Typewriter/:
| Artifact | Inhalt |
|---|---|
| Dungeon Artifact | Statistiken pro Dungeon und pro Spieler (artifactId Standard dungeon_data). |
| Active Dungeon Instance Artifact | Zustand der laufenden Durchläufe, damit ein Reload sie nicht verliert. |
| Dungeon Room Template | Die gespeicherte Struktur eines Raums eines generierten Dungeons. |
| Dungeon Party Lobby Artifact | Inaktiv. Bleibt erhalten, damit alte Pages noch laden. |
Befehle
Alle Dungeon-Befehle liegen unter /typewriter dungeon (/tw dungeon). Jeder erfordert die Berechtigung typewriter.dungeon.admin und muss von einem Spieler ausgeführt werden.
| Befehl | Beschreibung |
|---|---|
/typewriter dungeon enter <instance> | Erstellt einen Durchlauf nur für dich und teleportiert dorthin. Gruppengröße, Criteria, Eintrittskosten und Durchlauflimit gelten weiterhin. |
/typewriter dungeon leave <instance> | Entfernt dich aus deinem Durchlauf dieses Dungeons und bringt dich dorthin zurück, woher du kamst. |
/typewriter dungeon close <instance> | Beendet deinen eigenen Durchlauf dieses Dungeons (Admin-Schließung). |
/typewriter dungeon global-menu <category> | Öffnet das für die Kategorie konfigurierte globale Menü. |
/typewriter dungeon instance-menu <instance> | Betritt die erste Lobby mit Platz für deine Gruppe und öffnet das Party-Menü. |
/typewriter dungeon force-start <instance> | Startet die Lobby, in der du bist, ohne auf Bereitschaft, den Countdown, die Mindestgruppengröße oder die Criteria zu warten. |
/typewriter dungeon room <room> edit | Öffnet den Raum-Editor im Spiel für einen Dungeon Room. |
/typewriter dungeon room <room> addnode | Fügt einen Knoten an deinen Füßen hinzu. |
/typewriter dungeon room <room> removenode | Entfernt den letzten Knoten. |
/typewriter dungeon room <room> removenodeat <index> | Entfernt einen Knoten anhand seiner Nummer, ab 1. |
/typewriter dungeon room <room> save | Speichert den Raum. |
/typewriter dungeon room <room> cancel | Verwirft die Bearbeitung. |
leave und close setzen voraus, dass du dich in einem Durchlauf des genannten Dungeons befindest, andernfalls antworten sie „You are not in a run of this dungeon“ (das Snippet content.dungeon_command.not_in_run). Der alte Unterbefehl start existiert nicht mehr: Verwende enter.
Raumvorlagen generierter Dungeons werden im Web-Panel bearbeitet (der Content-Editor des Feldes artifactId), nicht mit einem Befehl. Siehe Generierte Dungeons.
Raum-Editor (feste Dungeons)
edit öffnet einen Editor mit einer Werkzeugleiste in deiner Hotbar: Der Blaze Rod in Slot 1 fügt einen Knoten hinzu (am Block, den du ansiehst, oder an deinen Füßen beim Schleichen), der Redstone in Slot 2 entfernt den letzten Knoten, und der Lime Dye in Slot 8 speichert und beendet. Doppeltes Schleichen beendet ohne zu speichern. Knoten werden als Blöcke mit Partikelumriss angezeigt; schleiche und klicke auf einen Knoten, um ihn zu löschen. Ein Knoten ergibt einen Punktraum (Radius 0,5 Block), zwei eine Linie, drei oder mehr ein Polygon. Die vertikale Ausdehnung ergibt sich aus dem niedrigsten und dem höchsten Knoten plus verticalMargin.
Berechtigungen
| Berechtigung | Gewährt |
|---|---|
typewriter.dungeon.admin | Jeden /typewriter dungeon-Befehl, einschließlich des Raum-Editors. |
Spieler brauchen keine Berechtigung, um die Menüs zu verwenden.
Statistiken
Dungeon zählt, was jeder Spieler während eines Durchlaufs tut, und speichert es für jedes Dungeon Artifact als 22 Statistiken. Die Zähler eines Durchlaufs werden während seiner Dauer gehalten, und jedes Mitglied wird einmal ausgezahlt, wenn es den Durchlauf verlässt oder dieser endet; nichts wird Schlag für Schlag auf die Platte geschrieben, und ein typewriter reload behält die Zähler laufender Durchläufe. Ein Dungeon, der sein Artifact mit einem anderen teilt, erweitert dieselben Statistiken.
| Schlüssel | Einheit | Inhalt |
|---|---|---|
runs_started | Anzahl | Begonnene Durchläufe, beim Start gezählt, auch wenn der Durchlauf verloren geht. |
runs_completed | Anzahl | Durchläufe, die abgeschlossen wurden, während der Spieler noch dabei war. |
best_time | Dauer | Kürzeste Zeit eines abgeschlossenen Durchlaufs (ein Rekord: kein Wert vor dem ersten Abschluss). |
runs_timed_out | Anzahl | Durchläufe, deren Zeitlimit ablief, während der Spieler noch dabei war. |
runs_left | Anzahl | Durchläufe, die der Spieler von sich aus verlassen hat oder deren Wiederverbindungsfrist ablief. Ein Tod, der den Spieler aus dem Durchlauf wirft, zählt hier nicht (er bleibt in deaths). |
mob_kills | Anzahl | Getötete Mobs. |
damage_dealt | Leben | Schaden an Mobs, so wie er wirklich Leben gekostet hat: Ein Treffer von 100 auf ein Ziel mit 2 Leben zählt 2. |
damage_taken | Leben | Erlittener Schaden, mit derselben Grenze (die Leben und Absorption, die der Spieler hatte). |
deaths | Anzahl | Tode. |
time_played | Dauer | In Durchläufen verbrachte Zeit. |
completion_rate | Rate | runs_completed im Verhältnis zu runs_started, beim Lesen berechnet und als Prozentwert geschrieben. |
current_health | Leben | Aktuelle Leben des Spielers. Hat nur während eines Durchlaufs einen Wert: wird nie gespeichert. |
best_run_kills | Anzahl | Meiste getötete Mobs in einem einzelnen Durchlauf (ein Rekord). |
best_run_damage | Leben | Höchster Schaden in einem einzelnen Durchlauf (ein Rekord). |
flawless_completions | Anzahl | Abgeschlossene Durchläufe ohne einen Tod. |
solo_completions | Anzahl | Abgeschlossene Durchläufe, die mit einem Mitglied begannen. |
best_time_solo | Dauer | Kürzeste Zeit eines abgeschlossenen Solo-Durchlaufs. |
health_regained | Leben | Wirklich zurückgewonnene Leben, nie mehr als fehlte. |
rooms_entered | Anzahl | Betretene Räume; ein Raum, der in einem Durchlauf zweimal betreten wird, zählt einmal. |
rooms_cleared | Anzahl | Mit Dungeon Clear Room geleerte Räume, für die Mitglieder im Raum. |
chests_opened | Anzahl | Geöffnete Beutetruhen, einmal pro Truhe für den Spieler, der ihre Beute erzeugt hat. |
waves_cleared | Anzahl | Geleerte Wellen. Nur echte Wellen zählen: die Gruppen eines Dungeon Mob Spawn, die waves definieren. |
Einheiten: Leben sind Lebenspunkte (ein Herz sind zwei), eine Dauer wird als mm:ss geschrieben, sofern die Snippets nichts anderes sagen, und eine Rate wird als Prozentwert geschrieben.
Was zählt:
- Nur die Mitglieder eines aktiven Durchlaufs, in der Welt ihres Durchlaufs, in
SURVIVALoderADVENTURE. Ein Spieler inCREATIVEoderSPECTATORzählt für nichts, damit ein Admin, der zuschaut, keine Bestenliste anführen kann. - Welche Mobs zählen, bestimmt
statsMobScopean der Dungeon Instance.MARKED_ONLY(Standard): nur die vom Durchlauf erzeugten Mobs (mitdungeon_mob_runmarkiert); die Teile eines sich teilenden Schleims zählen nie als Kills.ANY_MOB_IN_RUN_WORLD: auch die anderen Mobs der Welt des Durchlaufs, etwa ein Boss, den ein anderes Plugin gesetzt hat. MitSHARED_WORLD_SLOTS, dessen Welt andere Durchläufe enthält, wird es abgelehnt: Dort giltMARKED_ONLY, und beim Laden wird eine Warnung geschrieben. - Statistiken werden pro Artifact gezählt. Über mehrere Artifacts addieren die Summen die Zähler und behalten den besten Rekord; zwei Artifacts mit derselben
artifactIdsind eine Datei und zählen einmal.
Lies sie mit den Placeholdern, mit dem Fact Player Dungeon Statistic oder rangiere sie in einer GUI-Bestenliste mit einer Dungeon Leaderboard Source (GUI 0.20 oder neuer).
Placeholder
PlaceholderAPI-Placeholder verwenden das Präfix %typewriter_dungeon_…%. Placeholder zum aktuellen Durchlauf liefern 0 oder einen leeren Wert, wenn der Spieler in keinem Durchlauf ist. Ausnahme: %typewriter_dungeon_stat_KEY% und seine _raw-Form werden nur während eines Durchlaufs aufgelöst; außerhalb bleiben sie unverändert stehen. Nur dungeon_total_KEY und dungeon_inst_ID_KEY funktionieren außerhalb eines Durchlaufs.
| Placeholder | Liefert |
|---|---|
%typewriter_dungeon_remaining% | Verbleibende Sekunden im Durchlauf des Spielers. |
%typewriter_dungeon_remaining_formatted% | Verbleibende Zeit als mm:ss. |
%typewriter_dungeon_players% | Spieler im Durchlauf des Spielers. |
%typewriter_dungeon_max% | maxPartySize des Dungeons des Spielers. |
%typewriter_dungeon_list% | Namen der Spieler im Durchlauf, durch Kommas getrennt. |
%typewriter_dungeon_player_N_name% | Name des N-ten Spielers des Durchlaufs (ab 1). |
%typewriter_dungeon_player_N_health%, …_maxhealth%, …_healthpercent% | Leben, maximales Leben und Prozentsatz des N-ten Spielers. |
%typewriter_dungeon_player_health_N% | Name: Leben/Max des N-ten Spielers. |
%typewriter_dungeon_lobby_time% | Verbleibende Sekunden des Countdowns der Lobby des Spielers. Füge _formatted für mm:ss hinzu. |
%typewriter_dungeon_attempts%, %typewriter_dungeon_completions%, %typewriter_dungeon_best% | Durchläufe, Abschlüsse und Bestzeit des Spielers für den Dungeon, in dem er sich befindet. |
%typewriter_dungeon_total_attempts%, …_total_completions%, …_total_ratio% | Summen über alle Dungeons und der Abschlussprozentsatz. |
%typewriter_dungeon_inst_ID_attempts%, …_completions%, …_best% | Dieselben Statistiken für den Dungeon, dessen Entry-Id ID ist. Die Id darf keinen Unterstrich enthalten. |
%typewriter_dungeon_stat_KEY%, …_stat_KEY_raw% | Jede Statistik des Spielers, im Artifact des Dungeons, in dem er sich befindet. KEY ist der Schlüssel aus der Tabelle, zum Beispiel %typewriter_dungeon_stat_mob_kills%. _raw liefert die reine Zahl der Einheit (Millisekunden, Lebenspunkte, Promille), 0 wenn es keinen Wert gibt. |
%typewriter_dungeon_total_KEY%, …_total_KEY_raw% | Dieselbe Statistik über alle Dungeons. |
%typewriter_dungeon_inst_ID_KEY%, …_inst_ID_KEY_raw% | Dieselbe Statistik für den Dungeon, dessen Entry-Id ID ist. |
current_health hat nur in dungeon_stat_current_health während eines Durchlaufs einen Wert. Eine Dauer wird mit dem Snippet content.dungeon_stats.duration_format geschrieben und ein fehlender Wert mit content.dungeon_stats.missing_value.
Die Statistiken stammen aus dem Dungeon Artifact, das im Feld artifact des Dungeons verknüpft ist. Dungeon schreibt sie selbst (Versuche, wenn ein Durchlauf startet, Abschlüsse und Bestzeit, wenn ein Durchlauf abgeschlossen wird). Die Bestzeit eines Spielers wird pro Artifact einmal gehalten, über alle Dungeons, die es teilen: Gib jedem Dungeon sein eigenes Artifact, wenn jeder seine eigene Bestzeit braucht. Die Statistiken werden pro MMOProfiles-Profil gespeichert, wenn dieses Plugin installiert ist, sonst pro Spieler. Es gibt nichts zu konfigurieren.
Entries
39 Einträge, aus dem Quellcode der Erweiterung generiert.
Aktionen9
- Dungeon Clear RoomDungeon Clear Room
- Dungeon CloseDungeon Close
- Dungeon CompleteDungeon Complete
- Dungeon EnterDungeon Enter
- Dungeon Global MenuDungeon Global Menu
- Dungeon LeaveDungeon Leave
- Dungeon Party MenuDungeon Party Menu
- Dungeon Spawn MobsDungeon Spawn Mobs
- Loot Chest TriggerLoot Chest Trigger
Ereignisse6
- On Dungeon CompleteWhen a dungeon run is completed
- On Dungeon Mob DeathWhen a dungeon mob dies
- On Dungeon Mobs ClearedWhen dungeon mobs are cleared
- On Dungeon Room EnterWhen a player enters a dungeon room
- On Dungeon Room LeaveWhen a player leaves a dungeon room
- On Dungeon StartWhen a dungeon run starts
Fakten4
- Dungeon Mobs AliveDungeon Mobs Alive
- Dungeon StatPlayer Dungeon Statistic
- IndungeonPlayer Inside Dungeon
- Indungeon InstancePlayer Inside Specific Dungeon
Zielgruppen1
- Dungeon Run AudiencePlayers in a dungeon run
Entitäten1
- Dungeon NPC InstanceDungeon NPC Instance
Gruppen1
- Dungeon Run GroupPlayers of a dungeon run
Artefakte4
- Active Dungeon Instance ArtifactActive Dungeon Instance Artifact
- Dungeon ArtifactUnified Dungeon Data Artifact
- Dungeon Party Lobby ArtifactDungeon Party Lobby Artifact
- Dungeon Room TemplateDungeon Room Template
Manifeste13
- Dungeon AffixDungeon Affix
- Dungeon CategoryDungeon Category
- Dungeon Connector TypeDungeon Connector Type
- Dungeon GeneratorDungeon Generator
- Dungeon InstanceDungeon Instance
- Dungeon Leaderboard SourceDungeon Leaderboard Source
- Dungeon Loot ChestDungeon Loot Chest
- Dungeon Loot TableDungeon Loot Table
- Dungeon Mob SpawnDungeon Mob Spawn
- Dungeon RestrictionsDungeon Restrictions
- Dungeon RoomDungeon Room
- Dungeon Room ConfigDungeon Room Config
- Dungeon Room PoolDungeon Room Pool
Fehlerbehebung
Das Menü öffnet sich nicht. Die GUI-Erweiterung fehlt, oder mainLayoutId entspricht nicht der id eines Layouts in layoutPool. Installiere GUI und prüfe dann die Id.
Dungeons erscheinen nicht im globalen Menü. Das Layout hat kein Item mit buttonType auf DUNGEON_INSTANCE_SLOT, oder die Marker liegen in einem anderen Layouttyp als simple, paginated oder scrollable.
Ein Button tut nichts oder sieht nicht wie ein Button aus. buttonType unterscheidet Groß- und Kleinschreibung und muss DUNGEON_FIND_PARTY, DUNGEON_INFO, DUNGEON_INSTANCE_SLOT, DUNGEON_LOBBY_SLOT, DUNGEON_READY, DUNGEON_LEAVE oder DUNGEON_AUTO_FILL sein. Ein globaler Button im Party-Menü oder umgekehrt wird ignoriert.
Ein Dungeon wird als gesperrt angezeigt. Die criteria seines Slots in der Kategorie treffen auf diesen Spieler nicht zu. Prüfe sie anhand der Facts des Spielers oder leere die Liste.
Ein Klick auf einen Dungeon gibt nichts aus, und kein Menü öffnet sich. Kein Party-Menü bedient den Dungeon. Suche im Serverlog nach No dungeon_party_menu serves und erstelle dann eines mit leerem dungeonInstance oder eines, das den Dungeon nennt.
„The dungeon cannot be started on this server.“ Der Isolationsmodus des Dungeons kann hier nicht laufen (zum Beispiel SLIME_CLONE ohne Advanced Slime Paper), oder er kann keinen generierten Dungeon aufnehmen. Es gibt keinen Fallback auf einen anderen Modus. Siehe Durchläufe und Weltisolation.
„The group has N player(s): this dungeon needs X to Y.“ Die Lobby oder der Befehl enter wurde mit einer Gruppe außerhalb von minPartySize bis maxPartySize verwendet. Ein Admin kann in einer Lobby force-start verwenden.
„All the runs of this dungeon are taken.“ maxSimultaneousInstances Durchläufe sind bereits aktiv.
Spieler kommen in einer leeren neuen Welt an. templateWorld entspricht keinem Weltordner im Stammverzeichnis des Servers. Das Log meldet Cannot teleport player … world '…' not found, wenn die Welt gar nicht geladen werden kann.
Spieler werden ständig aus dem Durchlauf geworfen. Das Verlassen der Welt des Durchlaufs, auch per Befehl, entfernt den Spieler daraus. Verlässt der letzte Spieler, endet der Durchlauf.
Eine durch Loot Chest Trigger ausgelöste Loot-Truhe kommt nie zurück. Der Standard-triggerMode ONCE gilt einmal pro Durchlauf. Verwende REPEATABLE, um sie im selben Durchlauf mehrfach auszulösen. Der nächste Durchlauf beginnt sauber.
Ein NPC erscheint nie. In einem generierten Dungeon erscheint der NPC nur über einen NPC-Marker eines Raums des Durchlaufs. Prüfe in einem festen Dungeon allowedDungeonIds und spawnLocation. Siehe Entities in Dungeons.
Ein Raum ist frei von Mobs, obwohl kein Mob lebt. Das Limit maxAliveMobs kann einige zurückgehalten haben, und ein Reload lässt die Erweiterung neu zählen. Verwende Dungeon Mobs Alive nicht, um zu entscheiden, dass ein Raum geleert ist: Verwende das Mob-Death-Event.
Verwandte Erweiterungen
- FakeBlock: sein Positionsmodus
INSTANCE_DIMENSIONist für Dungeon-Durchläufe gedacht. - GUI: Layouts des globalen Menüs und des Party-Menüs.
- MMOCore: Party-Quelle für Lobbys.
- Changelog und Migration von 0.10.