Dungeon
Vue d'ensemble
Dungeon permet à un groupe de jouer une copie privée d'un donjon. Chaque traversée est une partie (« run ») : elle a son propre monde (ou son propre emplacement dans un monde partagé), ses propres membres, sa propre limite de temps, ses propres coffres, PNJ et mobs, et elle se termine proprement en renvoyant tout le monde là d'où il venait.
Un donjon est décrit par une seule entrée Dungeon Instance. Les joueurs le choisissent dans un menu global (un navigateur de donjons regroupés dans une catégorie), rejoignent un lobby dans le menu de groupe, se déclarent prêts, et sont téléportés à la fin du compte à rebours. Le personnel et les quêtes peuvent aussi envoyer directement un joueur dans un donjon avec l'action Dungeon Enter ou une commande.
Il existe deux types de donjon :
- Fixe : vous construisez le donjon une fois dans un monde modèle. Les salles sont des zones que vous dessinez en jeu, et tout se passe aux endroits que vous définissez. C'est le donjon classique.
- Généré : vous construisez des modèles de salles (petites structures avec des portes et des marqueurs) et un générateur assemble un nouvel agencement pour chaque partie, de la salle de départ à la salle du boss. La même graine donne toujours le même donjon. Voir Donjons générés.
Les deux types partagent les mêmes parties, menus, coffres, PNJ, mobs, événements et facts.
Dungeon cible Paper. Il n'est pas pris en charge sur Folia : le plugin Typewriter officiel n'y fonctionne pas.
Fonctionnalités
- Parties et groupes : une partie par groupe, plusieurs parties du même donjon en même temps (
maxSimultaneousInstances), une limite de temps, des coûts d'entrée, une fin de partie par réussite, expiration du temps, partie vide ou fermeture par un administrateur. Voir Parties et isolation des mondes. - Trois modes d'isolation :
SLIME_CLONE,WORLD_PER_RUNetSHARED_WORLD_SLOTS, choisis par donjon avec le champisolation. - Donjons fixes : salles avec déclencheurs
onEnter/onLeave, modificateurs, critères et priorité. - Donjons générés : modèles de salles, types de connecteurs, pools de salles, un générateur, des affixes, et un éditeur en jeu pour capturer les salles et placer portes et marqueurs.
- Menu global et menu de groupe : dispositions de l'extension GUI, rafraîchies en direct pendant que les joueurs rejoignent et quittent les lobbies.
- Coffres de butin : coffres en bloc ou ancrés sur un PNJ, réels ou côté client, un inventaire par joueur ou partagé, butin pondéré ou indépendant.
- PNJ par partie : un PNJ visible uniquement par les membres d'une partie, à partir de n'importe quelle définition d'entité Typewriter. Voir Entités dans les donjons.
- Mobs de combat : de vrais mobs vanilla qui apparaissent une fois par partie, avec équipement, attributs, règles de drop et déclencheurs à la mort, bornés par un plafond.
- Événements, facts et actions : événements de début, de réussite, d'entrée dans une salle, de sortie d'une salle et de mort d'un mob ; facts « est dans un donjon » et « mobs en vie » ; actions pour terminer une partie, vider une salle et lancer une vague.
- Statistiques : 22 statistiques par joueur (runs, meilleur temps, kills de mobs, dégâts infligés et subis, morts, vagues nettoyées...), lisibles avec des placeholders et un fact, et classables dans un classement GUI. Voir Statistiques.
- Résistant aux rechargements : un
typewriter reloadou une publication conserve les parties en cours. Un redémarrage du serveur les termine. - Groupes d'autres plugins : lit le groupe de MMOCore, Parties ou de l'extension de groupe Typewriter pour que les amis entrent ensemble.
Installation
- Installez l'extension GUI depuis sa page. Les deux menus de Dungeon utilisent ses dispositions.
- Assurez-vous que l'extension Quest de TypeWriter est installée.
- Préparez ce dont votre mode d'isolation a besoin (voir Parties et isolation des mondes) :
- Donjon fixe : un monde modèle, sous forme de dossier à la racine du serveur (à côté de
world), par exempledungeon_temple. Le nom peut contenir des lettres, des chiffres,_et-, jusqu'à 64 caractères. - Donjon généré : pas de monde modèle. L'extension crée un monde vide pour chaque partie.
- Clone Slime : Advanced Slime Paper avec le modèle chargé comme monde slime.
- Donjon fixe : un monde modèle, sous forme de dossier à la racine du serveur (à côté de
- Téléchargez Dungeon depuis les boutiques (voir les boutons du panneau ci-dessus) et placez le JAR dans
plugins/Typewriter/extensions/. - Redémarrez le serveur.
- Facultatif : installez MMOCore ou Parties pour la prise en charge des groupes externes, et PlaceholderAPI pour les placeholders.
Vous mettez à jour depuis la 0.10 ? Lisez d'abord la note de migration.
Premiers pas
Ce pas-à-pas construit un donjon fixe avec un menu de lobby et un coffre. Pour un donjon généré, commencez par Donjons générés.
- Dans le panel web, ouvrez une page manifest et ajoutez une Dungeon Room Config. Placez-vous là où les joueurs doivent arriver, cliquez sur l'éditeur de contenu
spawnPointet confirmez. Le monde, les coordonnées et la direction du regard sont capturés. - Ajoutez une Dungeon Instance. Définissez
templateWorldsur le nom du dossier du monde, ajoutez la room config dansroomConfigurations, et définissezminPartySizeetmaxPartySize. - Ajoutez un Dungeon Artifact (statistiques) et un Active Dungeon Instance Artifact (état des parties), et liez-les dans
artifactetruntimeArtifact. Sans le second, les parties sont conservées dans un fichierruns.jsonde l'extension et un avertissement est écrit au chargement. Le champpartyLobbyArtifactn'est plus utilisé : laissez-le vide. - Ajoutez une Dungeon Category. Dans
instances, ajoutez un emplacement, définissezdungeonInstanceet choisissez les objets déverrouillé et verrouillé. - Sur une page sequence, ajoutez un Dungeon Global Menu et un Dungeon Party Menu. Dessinez les deux dispositions comme décrit dans Menus.
- Déclenchez le menu global depuis un dialogue de PNJ, un événement de commande ou tout autre déclencheur. Publiez.
- Ajoutez un Dungeon Loot Chest pour l'instance. Placez-vous là où le coffre doit se trouver, capturez
locationet remplissezlootTable. - Ajoutez une action Dungeon Complete là où le donjon doit se terminer (par exemple à la fin d'un dialogue après le dernier coffre).
- Testez : ouvrez le menu, cliquez sur le donjon, cliquez sur le lobby, appuyez sur le bouton prêt.
Pour éviter les menus et envoyer un seul joueur directement dans un donjon, utilisez Dungeon Enter ou /typewriter dungeon enter <instance>. Le lobby est ignoré, mais pas les règles : la taille du groupe (un seul joueur doit être autorisé par minPartySize), les critères, le coût d'entrée et le nombre de parties simultanées sont tous vérifiés.
Fonctionnement
Une partie démarre quand un lobby se lance ou quand une action Dungeon Enter s'exécute. L'extension vérifie les critères et la taille du groupe de chaque joueur, réserve une place (un double clic ne crée qu'une partie), prépare le monde, prélève le coût d'entrée (tout ou rien), téléporte les joueurs, puis déclenche onStart et applique modifiers pour chaque membre. Si quelque chose échoue en chemin, rien n'est conservé : les joueurs restent où ils étaient, le coût est remboursé et le monde est jeté.
Une partie se termine quand Dungeon Complete s'exécute, quand la limite de temps atteint zéro, quand Dungeon Close ou /typewriter dungeon close s'exécute, ou quand le dernier joueur part, change de monde ou se déconnecte. onEnd se déclenche pour chaque membre, les coffres, PNJ et mobs de la partie sont retirés, les joueurs sont téléportés au point de sortie (ou là d'où ils venaient), et le monde est libéré.
Une seule fin l'emporte quand plusieurs se produisent en même temps : vous n'obtenez donc jamais deux onEnd ni un double remboursement.
Rechargements et redémarrages
Un typewriter reload ou une publication ne fait pas perdre les parties : elles sont réadoptées avec leurs membres, leur monde, leur échéance, l'état des salles (une salle once reste consommée), les coffres ouverts et les mobs déjà apparus. onStart, les modificateurs et les coffres ne sont pas rejoués. Un donjon généré est reconstruit en mémoire à partir de sa graine.
Un redémarrage du serveur termine les parties : les mondes des parties ont disparu, les joueurs sont renvoyés chez eux à leur prochaine connexion et les dossiers de mondes restants sont purgés. Les lobbies ne sont restaurés ni par l'un ni par l'autre.
Déconnexions
Un membre qui se déconnecte d'un donjon en cours garde sa place pendant le reconnectGrace de la Dungeon Instance (2 minutes par défaut). Pendant ce temps, la run ne se ferme pas et les statistiques de ce membre ne sont pas versées. Un membre qui revient à temps réapparaît là où il était, avec sa sidebar, ses masquages et son mode de jeu comme avant. Quand le délai expire, il quitte la run, et à sa prochaine connexion il est renvoyé là d'où il est entré. La limite de temps de la run continue de courir.
Un membre qu'on attend reste un membre : si la run se termine entre-temps, il reçoit son issue comme les autres, réussite et meilleur temps compris, alors que les déclencheurs onEnd ne s'exécutent que pour les membres en ligne. 0 signifie aucun délai : une déconnexion retire le joueur aussitôt. Un typewriter reload pendant le délai y met fin pour les joueurs attendus.
Avec MMOProfiles installé, le retour est vérifié de nouveau une fois le profil choisi. Un joueur qui n'est dans aucune run et que le profil place dans un monde de donjon est renvoyé là d'où il est entré, et le mode de jeu qu'un donjon avait changé est rendu, quel que soit le mode restauré par le profil. Un joueur qui est dans sa run (en délai de grâce) reprend simplement. Sans MMOProfiles, rien ne change.
Menus
Dungeon possède deux menus. Les deux sont des actions avec un layoutPool GUI et un mainLayoutId. Les objets des dispositions fonctionnent comme n'importe quel objet GUI. Les objets dont le buttonType est l'une des valeurs ci-dessous sont complétés par Dungeon : votre objet (matériau, nom, lore) est conservé et un comportement de clic est ajouté. Écrivez buttonType en majuscules, exactement comme indiqué. Laissez buttonPrefix vide.
Les deux menus se redessinent tous les autoRefreshTicks (20 par défaut, borné entre 10 et 1200) et immédiatement, pour chaque joueur qui les a ouverts, dès qu'un lobby des donjons qu'ils affichent change. Un joueur voit un autre joueur rejoindre sans cliquer.
Pour les types de disposition, les champs d'objet (x, y, count, direction, gap, repeatY) et les actions de clic, lisez le guide GUI. Une construction pas à pas se trouve dans Concevoir les menus.
Menu global
Le Dungeon Global Menu affiche les donjons d'une category. Il s'ouvre quand l'action est déclenchée, ou avec /typewriter dungeon global-menu <category>.
buttonType | Comportement |
|---|---|
DUNGEON_INSTANCE_SLOT | Marque l'endroit où apparaît un donjon. Placez-en un par donjon, ou utilisez count, direction, gap et repeatY pour marquer une rangée ou un bloc. Chaque marqueur est remplacé par le donjon suivant de la catégorie. Les marqueurs en trop restent vides. |
DUNGEON_FIND_PARTY | Un clic gauche rejoint le premier lobby non vide qui a encore de la place, parmi les donjons déverrouillés de la catégorie, et ouvre le menu de groupe. Si le joueur est déjà dans un lobby de la catégorie, il le quitte à la place. |
DUNGEON_INFO | Affichage seulement. Utilisez-le pour un objet d'aide. |
Comment les donjons sont dessinés :
- Les donjons sont triés par
categoryPriority(le plus bas d'abord), puis par id d'entrée. - Un emplacement s'affiche avec
unlockedItem,unlockedNameetunlockLorequand sescriteriacorrespondent au joueur (une liste vide correspond toujours). Cliquer dessus ouvre le menu de groupe de ce donjon. - Un emplacement dont les
criteriane correspondent pas s'affiche avec l'apparence verrouillée et ne peut pas être ouvert. Les critères sont évalués pour chaque joueur qui ouvre le menu, et à nouveau quand le joueur clique. - Les noms et le lore peuvent utiliser
{dungeon_name},{players}et{max}, ainsi que les placeholders PlaceholderAPI.{players}est la taille du premier lobby du donjon. - Placez les marqueurs
DUNGEON_INSTANCE_SLOTdans des dispositionssimple,paginatedouscrollable. Si la disposition de base est défilante, les donjons défilent avec elle. - Sans aucun marqueur
DUNGEON_INSTANCE_SLOT, aucun donjon n'est affiché.
Menu de groupe
Le Dungeon Party Menu est le lobby. Il s'ouvre quand un joueur clique sur un donjon dans le menu global, et avec /typewriter dungeon instance-menu <instance>. Déclencher l'action elle-même ne fait rien d'autre qu'afficher une indication : ne la reliez donc pas à un PNJ.
Quel menu sert quel donjon. Un menu de groupe dont le dungeonInstance nomme le donjon le sert. Un menu de groupe dont le dungeonInstance est vide sert tous les donjons qu'aucun autre menu ne nomme. Un menu écrit pour un autre donjon n'est jamais ouvert à la place : quand aucun ne convient, le joueur en est informé et le journal du serveur indique No dungeon_party_menu serves '<instance>'. Vous pouvez donc avoir un menu par donjon, un menu partagé, ou les deux.
Un donjon a autant de lobbies que son maxSimultaneousInstances. Chaque lobby est un objet : lobbyItem nommé avec lobbyName et décrit avec lobbyLore. Où les lobbies sont dessinés :
- Avec des marqueurs
DUNGEON_LOBBY_SLOTdans une dispositionsimple(comme pourDUNGEON_INSTANCE_SLOT, utilisezcount,directionetgappour en marquer plusieurs), chaque marqueur est remplacé par le lobby suivant. - Sans aucun marqueur, le lobby
nest placé à la colonnelobbyOffsetX + (n mod 9)et à la lignelobbyOffsetY + (n div 9), en comptant à partir de 0.
Cliquer sur un lobby le rejoint.
Placeholder dans lobbyName et lobbyLore | Valeur |
|---|---|
{index} | Numéro du lobby, à partir de 1. |
{players}, {max} | Joueurs dans le lobby, et maxPartySize. |
{player_names} | Noms des membres, entourés du préfixe et du suffixe prêt ou pas prêt. Lore uniquement. |
{ready_players}, {not_ready_players} | Compteurs. Lore uniquement. |
readyPlayerPrefix, readyPlayerSuffix, notReadyPlayerPrefix et notReadyPlayerSuffix colorent les noms dans {player_names}.
buttonType | Comportement |
|---|---|
DUNGEON_LOBBY_SLOT | Marque l'endroit où apparaît un lobby. |
DUNGEON_READY | Bascule l'état prêt. Si le joueur n'a pas le coût d'entrée, personne n'est marqué prêt et le lobby reçoit le missingItemsMessage du donjon. |
DUNGEON_LEAVE | Quitte le lobby et revient au menu global d'où venait le joueur. |
DUNGEON_AUTO_FILL | Rejoint le premier lobby non vide ayant une place libre. |
Quand la partie démarre :
- Tous les membres du lobby doivent être prêts et le lobby doit compter au moins
minPartySizejoueurs. - Un compte à rebours de
startCooldownSecondss'écoule. Il s'arrête si quelqu'un annule son état prêt. Avec0, la partie démarre immédiatement. - Les critères sont vérifiés pour chaque joueur, puis les coûts d'entrée. Avec
entryCostModeàLEADER, le premier joueur du lobby paie. AvecGROUP, tout le monde paie. Les objets ne sont prélevés que si personne ne manque de rien. - La partie est créée et les joueurs sont téléportés au point d'apparition.
Un lobby qui attend sans compte à rebours pendant lobbyIdleKickSeconds (120 secondes par défaut) est vidé. Un administrateur peut lancer un lobby à la main avec /typewriter dungeon force-start <instance>, ce qui ignore la taille minimale du groupe et les critères.
Pendant que les joueurs attendent, le menu de groupe peut afficher un scoreboard d'attente (enableWaitingScoreboard, scoreboardTitle, scoreboardWaiting avec {missing}, scoreboardCountdown avec {time}).
Groupes d'autres plugins. Si MMOCore (avec son propre module de groupe), Parties ou l'extension de groupe Typewriter est installé, Dungeon lit ses groupes et ne les crée, fusionne ou modifie jamais. Quand un joueur rejoint un lobby, tout son groupe le rejoint avec lui si le lobby a la place pour tous. MMOCore est utilisé seul quand il est présent.
Commandes utilisées par les boutons
Les boutons n'utilisent pas de commande serveur : ils appellent un gestionnaire interne du système de menus, les joueurs n'ont donc besoin d'aucune permission et il n'y a rien à saisir à la main.
Configuration
L'extension n'a pas de fichier de configuration. La plupart des réglages se trouvent sur les entrées. Les messages des entrées d'action (Enter, Leave, Close, Complete) et de l'instance de donjon (missingItemsMessage) sont des champs. Le délai d'inactivité d'un lobby est le champ lobbyIdleKickSeconds de l'instance de donjon (par défaut 120, soit 2 minutes).
Tous les autres textes que lit un joueur sont des snippets Typewriter : rien n'est figé dans le code, vous pouvez donc les modifier ou les traduire dans le panel web (snippets). Les valeurs sont en MiniMessage, et les placeholders {...} sont remplacés comme indiqué. Gardez les valeurs par défaut et rien ne change.
| Famille | Clés (après le préfixe) |
|---|---|
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} ; utilisé quand missingItemsMessage est vide), scoreboard_syncing |
content.dungeon_run.sidebar. | time_left ({seconds}), quest ({number}). Une ligne de barre latérale est du texte brut : les balises MiniMessage sont retirées. |
content.dungeon_chest. | default_title (titre d'un coffre dont containerTitle est vide), trigger_chest_missing, trigger_not_manual |
content.dungeon_launch. | prefix (placé devant chaque texte de la famille), no_online_member, already_in_run ({player}), no_room_configuration, group_size ({size}, {min}, {max}), criteria_not_met ({player}), missing_cost et missing_cost_leader ({player}, {amount}, {item}), max_runs_reached, isolation_unavailable, generation_failed ({text}), failed |
content.dungeon_stats. | L'écriture des placeholders de statistiques : duration_format (jetons {h}, {m}, {mm}, {ss}, {SSS} ; par défaut {mm}:{ss}) et missing_value (ce qui est écrit pour une valeur qui n'existe pas encore ; par défaut -). |
content.dungeon_command. | Les réponses des commandes /typewriter dungeon ... : only_players.close, only_players.enter, only_players.leave, only_players.menu, only_players.force_start, only_players.edit_room (envoyé à la console), 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. | Éditeurs de salles et refus de donjons générés. |
Les réponses des commandes /typewriter dungeon ... sont elles aussi des snippets, même si ces commandes sont réservées au staff. Les réponses de l'éditeur de salles (addnode, removenode, save...) se trouvent dans content.dungeon_room., et le texte d'un enter refusé est un snippet de content.dungeon_launch..
Les artifacts stockent des données sous plugins/Typewriter/ :
| Artifact | Contenu |
|---|---|
| Dungeon Artifact | Statistiques par donjon et par joueur (artifactId par défaut dungeon_data). |
| Active Dungeon Instance Artifact | État des parties en cours, pour qu'un rechargement ne les perde pas. |
| Dungeon Room Template | La structure enregistrée d'une salle d'un donjon généré. |
| Dungeon Party Lobby Artifact | Inerte. Conservé pour que les anciennes pages se chargent encore. |
Commandes
Toutes les commandes de Dungeon se trouvent sous /typewriter dungeon (/tw dungeon). Chacune exige la permission typewriter.dungeon.admin et doit être exécutée par un joueur.
| Commande | Description |
|---|---|
/typewriter dungeon enter <instance> | Crée une partie pour vous seul et vous y téléporte. La taille du groupe, les critères, le coût d'entrée et la limite de parties s'appliquent toujours. |
/typewriter dungeon leave <instance> | Vous retire de votre partie de ce donjon et vous ramène là d'où vous veniez. |
/typewriter dungeon close <instance> | Termine votre propre partie de ce donjon (fermeture par un administrateur). |
/typewriter dungeon global-menu <category> | Ouvre le menu global configuré pour la catégorie. |
/typewriter dungeon instance-menu <instance> | Rejoint le premier lobby ayant de la place pour votre groupe et ouvre le menu de groupe. |
/typewriter dungeon force-start <instance> | Lance le lobby où vous êtes sans attendre l'état prêt, le compte à rebours, la taille minimale du groupe ni les critères. |
/typewriter dungeon room <room> edit | Ouvre l'éditeur de salle en jeu pour une Dungeon Room. |
/typewriter dungeon room <room> addnode | Ajoute un nœud à vos pieds. |
/typewriter dungeon room <room> removenode | Retire le dernier nœud. |
/typewriter dungeon room <room> removenodeat <index> | Retire un nœud par son numéro, à partir de 1. |
/typewriter dungeon room <room> save | Enregistre la salle. |
/typewriter dungeon room <room> cancel | Annule la modification. |
leave et close exigent que vous soyez dans une partie du donjon nommé, sinon ils répondent « You are not in a run of this dungeon » (le snippet content.dungeon_command.not_in_run). L'ancienne sous-commande start n'existe plus : utilisez enter.
Les modèles de salles des donjons générés se modifient depuis le panel web (l'éditeur de contenu du champ artifactId), pas avec une commande. Voir Donjons générés.
Éditeur de salles (donjons fixes)
edit ouvre un éditeur avec une barre d'outils dans votre barre rapide : le bâton de blaze en emplacement 1 ajoute un nœud (sur le bloc que vous regardez, ou à vos pieds en vous accroupissant), la redstone en emplacement 2 retire le dernier nœud, et la teinture verte en emplacement 8 enregistre et quitte. Un double appui sur accroupissement quitte sans enregistrer. Les nœuds sont affichés comme des blocs avec un contour de particules ; accroupissez-vous et cliquez sur un nœud pour le supprimer. Un nœud donne une salle ponctuelle (rayon de 0,5 bloc), deux donnent une ligne, trois ou plus un polygone. L'étendue verticale vient du nœud le plus bas et du plus haut, plus verticalMargin.
Permissions
| Permission | Accorde |
|---|---|
typewriter.dungeon.admin | Toutes les commandes /typewriter dungeon, y compris l'éditeur de salles. |
Les joueurs n'ont besoin d'aucune permission pour utiliser les menus.
Statistiques
Dungeon compte ce que fait chaque joueur pendant une run et le conserve, pour chaque Dungeon Artifact, sous la forme de 22 statistiques. Les compteurs d'une run sont gardés pendant sa durée et chaque membre est versé une seule fois, quand il quitte la run ou qu'elle se termine ; rien n'est écrit sur le disque coup par coup, et un typewriter reload conserve les compteurs des runs en cours. Un donjon qui partage son artefact avec un autre alimente les mêmes statistiques.
| Clé | Unité | Contenu |
|---|---|---|
runs_started | nombre | Runs commencées, comptées au démarrage même si la run est perdue. |
runs_completed | nombre | Runs terminées avec le joueur encore dedans. |
best_time | durée | Plus court temps d'une run terminée (un record : aucune valeur avant la première réussite). |
runs_timed_out | nombre | Runs dont la limite de temps a expiré avec le joueur encore dedans. |
runs_left | nombre | Runs que le joueur a quittées de lui-même, ou dont le délai de reconnexion a expiré. Une mort qui fait sortir le joueur de la run n'est pas comptée ici (elle reste dans deaths). |
mob_kills | nombre | Mobs tués. |
damage_dealt | vie | Dégâts infligés aux mobs, tels qu'ils ont réellement retiré de la vie : un coup de 100 sur une cible qui avait 2 PV compte 2. |
damage_taken | vie | Dégâts subis, avec la même limite (les PV et l'absorption que le joueur avait). |
deaths | nombre | Morts. |
time_played | durée | Temps passé en run. |
completion_rate | taux | runs_completed rapporté à runs_started, calculé à la lecture et écrit en pourcentage. |
current_health | vie | PV du joueur à l'instant. N'a de valeur que pendant une run : jamais enregistré. |
best_run_kills | nombre | Plus grand nombre de mobs tués dans une seule run (un record). |
best_run_damage | vie | Plus grands dégâts infligés dans une seule run (un record). |
flawless_completions | nombre | Runs terminées sans aucune mort. |
solo_completions | nombre | Runs terminées qui ont commencé avec un seul membre. |
best_time_solo | durée | Plus court temps d'une run solo terminée. |
health_regained | vie | Vie réellement regagnée, jamais plus que ce qui manquait. |
rooms_entered | nombre | Salles où le joueur est entré ; une salle visitée deux fois dans une run compte une fois. |
rooms_cleared | nombre | Salles nettoyées avec Dungeon Clear Room, pour les membres présents dans la salle. |
chests_opened | nombre | Coffres de butin ouverts, une fois par coffre pour le joueur qui a généré son butin. |
waves_cleared | nombre | Vagues nettoyées. Seules les vraies vagues comptent : les groupes d'un Dungeon Mob Spawn qui définissent waves. |
Unités : une vie est en points de vie (un cœur vaut deux), une durée s'écrit mm:ss sauf réglage contraire des snippets, et un taux s'écrit en pourcentage.
Ce qui compte :
- Seuls les membres d'une run active, dans le monde de leur run, en
SURVIVALouADVENTURE. Un joueur enCREATIVEouSPECTATORne compte pour rien : un admin qui observe une run ne peut pas dominer un classement. - Les mobs comptés se règlent avec
statsMobScopesur la Dungeon Instance.MARKED_ONLY(par défaut) : seulement les mobs créés par la run (marquésdungeon_mob_run) ; les morceaux d'un slime qui se divise ne comptent jamais comme des kills.ANY_MOB_IN_RUN_WORLD: aussi les autres mobs du monde de la run, comme un boss posé par un autre plugin. Refusé avecSHARED_WORLD_SLOTS, dont le monde contient d'autres runs :MARKED_ONLYy est utilisé et un avertissement est écrit au chargement. - Les statistiques sont comptées par artefact. Sur plusieurs artefacts, les totaux additionnent les compteurs et gardent le meilleur record ; deux artefacts de même
artifactIdne font qu'un fichier et comptent une fois.
Lisez-les avec les placeholders, avec le fact Player Dungeon Statistic, ou classez-les dans un classement GUI avec une Dungeon Leaderboard Source (GUI 0.20 ou plus récent).
Placeholders
Les placeholders PlaceholderAPI utilisent le préfixe %typewriter_dungeon_…%. Les placeholders relatifs à la partie en cours renvoient 0 ou une valeur vide quand le joueur n'est pas dans une partie. Exception : %typewriter_dungeon_stat_KEY% et sa forme _raw ne se résolvent que pendant une partie ; hors partie, ils restent affichés tels quels. Seuls dungeon_total_KEY et dungeon_inst_ID_KEY fonctionnent hors partie.
| Placeholder | Renvoie |
|---|---|
%typewriter_dungeon_remaining% | Secondes restantes dans la partie du joueur. |
%typewriter_dungeon_remaining_formatted% | Temps restant au format mm:ss. |
%typewriter_dungeon_players% | Joueurs dans la partie du joueur. |
%typewriter_dungeon_max% | maxPartySize du donjon du joueur. |
%typewriter_dungeon_list% | Noms des joueurs de la partie, séparés par des virgules. |
%typewriter_dungeon_player_N_name% | Nom du N-ième joueur de la partie (à partir de 1). |
%typewriter_dungeon_player_N_health%, …_maxhealth%, …_healthpercent% | Vie, vie maximale et pourcentage du N-ième joueur. |
%typewriter_dungeon_player_health_N% | Nom: vie/max du N-ième joueur. |
%typewriter_dungeon_lobby_time% | Secondes restantes sur le compte à rebours du lobby du joueur. Ajoutez _formatted pour mm:ss. |
%typewriter_dungeon_attempts%, %typewriter_dungeon_completions%, %typewriter_dungeon_best% | Tentatives, réussites et meilleur temps du joueur pour le donjon où il se trouve. |
%typewriter_dungeon_total_attempts%, …_total_completions%, …_total_ratio% | Totaux sur tous les donjons, et pourcentage de réussite. |
%typewriter_dungeon_inst_ID_attempts%, …_completions%, …_best% | Les mêmes statistiques pour le donjon dont l'id d'entrée est ID. L'id ne doit pas contenir de tiret bas. |
%typewriter_dungeon_stat_KEY%, …_stat_KEY_raw% | N'importe quelle statistique du joueur, dans l'artefact du donjon où il se trouve. KEY est la clé du tableau, par exemple %typewriter_dungeon_stat_mob_kills%. _raw donne le nombre brut de l'unité (millisecondes, points de vie, pour mille), 0 s'il n'y a pas de valeur. |
%typewriter_dungeon_total_KEY%, …_total_KEY_raw% | La même statistique sur tous les donjons. |
%typewriter_dungeon_inst_ID_KEY%, …_inst_ID_KEY_raw% | La même statistique pour le donjon dont l'id d'entrée est ID. |
current_health n'a de valeur que dans dungeon_stat_current_health, pendant une run. Une durée s'écrit avec le snippet content.dungeon_stats.duration_format et une valeur manquante avec content.dungeon_stats.missing_value.
Les statistiques proviennent du Dungeon Artifact lié dans le champ artifact du donjon. Dungeon les écrit lui-même (tentatives au démarrage d'une partie, réussites et meilleur temps à la réussite d'une partie). Le meilleur temps d'un joueur est conservé une seule fois par artifact, sur tous les donjons qui le partagent : donnez à chaque donjon son propre artifact quand chacun doit avoir son meilleur temps. Les statistiques sont rangées par profil MMOProfiles quand ce plugin est installé, sinon par joueur. Il n'y a rien à configurer.
Entrées
39 entrées, générées depuis la source de l'extension.
Actions9
- 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
Événements6
- 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
Faits4
- Dungeon Mobs AliveDungeon Mobs Alive
- Dungeon StatPlayer Dungeon Statistic
- IndungeonPlayer Inside Dungeon
- Indungeon InstancePlayer Inside Specific Dungeon
Audiences1
- Dungeon Run AudiencePlayers in a dungeon run
Entités1
- Dungeon NPC InstanceDungeon NPC Instance
Groupes1
- Dungeon Run GroupPlayers of a dungeon run
Artefacts4
- Active Dungeon Instance ArtifactActive Dungeon Instance Artifact
- Dungeon ArtifactUnified Dungeon Data Artifact
- Dungeon Party Lobby ArtifactDungeon Party Lobby Artifact
- Dungeon Room TemplateDungeon Room Template
Manifestes13
- 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
Dépannage
Le menu ne s'ouvre pas. L'extension GUI est absente, ou mainLayoutId ne correspond pas à l'id d'une disposition de layoutPool. Installez GUI, puis vérifiez l'id.
Les donjons n'apparaissent pas dans le menu global. La disposition n'a aucun objet avec buttonType défini sur DUNGEON_INSTANCE_SLOT, ou les marqueurs sont dans un type de disposition autre que simple, paginated ou scrollable.
Un bouton ne fait rien ou ne ressemble pas à un bouton. buttonType est sensible à la casse et doit être l'un de DUNGEON_FIND_PARTY, DUNGEON_INFO, DUNGEON_INSTANCE_SLOT, DUNGEON_LOBBY_SLOT, DUNGEON_READY, DUNGEON_LEAVE ou DUNGEON_AUTO_FILL. Un bouton global dans le menu de groupe, ou l'inverse, est ignoré.
Un donjon s'affiche comme verrouillé (Locked). Les criteria de son emplacement dans la catégorie ne correspondent pas à ce joueur. Vérifiez-les avec les facts du joueur, ou videz la liste.
Cliquer sur un donjon n'affiche rien et aucun menu ne s'ouvre. Aucun menu de groupe ne sert le donjon. Cherchez No dungeon_party_menu serves dans le journal du serveur, puis créez-en un avec un dungeonInstance vide ou un qui nomme le donjon.
« The dungeon cannot be started on this server. » Le mode d'isolation du donjon ne peut pas fonctionner ici (par exemple SLIME_CLONE sans Advanced Slime Paper), ou il ne peut pas contenir un donjon généré. Il n'y a pas de repli vers un autre mode. Voir Parties et isolation des mondes.
« The group has N player(s): this dungeon needs X to Y. » Le lobby ou la commande enter a été utilisé avec un groupe hors de minPartySize à maxPartySize. Un administrateur peut utiliser force-start depuis un lobby.
« All the runs of this dungeon are taken. » maxSimultaneousInstances parties sont déjà actives.
Les joueurs arrivent dans un nouveau monde vide. templateWorld ne correspond à aucun dossier de monde à la racine du serveur. Le journal indique Cannot teleport player … world '…' not found quand le monde ne peut pas du tout être chargé.
Les joueurs sont sans cesse éjectés de la partie. Quitter le monde de la partie, même par une commande, retire le joueur de celle-ci. Le départ du dernier joueur termine la partie.
Un coffre de butin déclenché par Loot Chest Trigger ne revient jamais. Le triggerMode par défaut ONCE signifie une fois par partie. Utilisez REPEATABLE pour le déclencher plusieurs fois dans la même partie. La partie suivante repart de zéro.
Un PNJ n'apparaît jamais. Dans un donjon généré, le PNJ n'apparaît que via un marqueur NPC d'une salle de la partie. Dans un donjon fixe, vérifiez allowedDungeonIds et spawnLocation. Voir Entités dans les donjons.
Une salle est vide de mobs alors qu'aucun mob n'est en vie. Le plafond maxAliveMobs a pu en retenir certains, et un rechargement fait recompter l'extension. N'utilisez pas Dungeon Mobs Alive pour décider qu'une salle est vidée : utilisez l'événement de mort d'un mob.
Extensions associées
- FakeBlock : son mode de position
INSTANCE_DIMENSIONest prévu pour les parties de Dungeon. - GUI : dispositions du menu global et du menu de groupe.
- MMOCore : source de groupe pour les lobbies.
- Changelog et Migration depuis la 0.10.