Aller au contenu principal

Changelog

1.2​

  • Dungeon Mob Spawn : lootTable, spawnParticle, adaptation au nombre de joueurs (perExtraPlayer, maxCount, playerCountSource), maxSimultaneous, waves, et les déclencheurs onWaveCleared et onCleared.
  • Nouvelle entrée Dungeon Loot Table : une table de butin partagée par des coffres et des mobs.
  • Dungeon Loot Chest : lootTableRef, et additionalLocations pour poser plusieurs coffres depuis une seule entrée (ignoré dans un donjon généré).
  • Loot Chest Trigger : particleEffect, avec des axes X, Y et Z séparés et un centre. Les quatre champs triggerParticle sont hérités : ils ne s'appliquent que si particleEffect ne nomme aucune particule.
  • Nouvel événement On Dungeon Mobs Cleared.
  • Nouvelle entrée Dungeon Restrictions, reliée par restrictions à une Dungeon Instance ou une Dungeon Room : ni élytre, ni bateau ou wagonnet, ni perle de l'Ender, fruit de chorus ou impulsion du trident, commandes bloquées, message de refus et permission de contournement.
  • Requiert GUI (OmniGUI) 0.20. La nouvelle Dungeon Leaderboard Source utilise le contrat de source de classement de GUI 0.20 : avec un GUI plus ancien, le classement de Dungeon ne se charge pas. Mettez d'abord GUI à jour.
  • Rupture d'API pour les addons : DungeonArtifactData, DungeonStats et PlayerDungeonStats passent dans le package btcrenaud.dungeons.core, et DungeonArtifactEntry.getPlayerStats et DungeonArtifactEntry.update changent de signature. Un addon compilé contre Dungeon 1.1.x doit être recompilé. Les donjons construits dans le panneau web ne sont pas concernés.
  • Statistiques : 22 statistiques par joueur (dégâts infligés et subis, kills de mobs, morts, temps joué, salles et vagues nettoyées, records, réussites en solo et sans mort...). Elles sont comptées pendant la run et versées une seule fois par membre, par artefact, avec un total sur plusieurs artefacts. Les dégâts sont ceux qui ont réellement retiré de la vie, plafonnés aux PV de la cible.
  • Dungeon Instance : statsMobScope choisit les mobs comptés dans les statistiques, MARKED_ONLY (par défaut, les mobs créés par la run) ou ANY_MOB_IN_RUN_WORLD.
  • Nouveau fact Player Dungeon Statistic, et les placeholders dungeon_stat_<key> (avec _raw pour le nombre brut), dungeon_total_<key> et dungeon_inst_<id>_<key>. Les snippets content.dungeon_stats.duration_format et content.dungeon_stats.missing_value en règlent l'écriture.
  • Nouvelle entrée Dungeon Leaderboard Source, à brancher sur le champ source d'un classement GUI (GUI 0.20) : artefacts, scope (LIFETIME ou CURRENT_RUN), rankBy, values, durationFormat, decimals, missingValue et unknownName. Jetons de ligne : {value_<key>}, {value_<key>_raw} et {score_raw}.
  • Dungeon Instance : reconnectGrace (2 minutes par défaut). Un membre qui se déconnecte garde sa place pendant ce délai et, de retour à temps, reprend avec sa sidebar, ses masquages et son mode de jeu. Au-delà, il quitte la run et revient à son point d'entrée à la reconnexion. Voir Déconnexions.
  • Dungeon Restrictions : gameMode (optionnel, par exemple ADVENTURE ; le mode d'origine du joueur est rendu à la sortie ; CREATIVE et SPECTATOR coupent les statistiques de combat), limitInteractions avec allowedInteractions (CHEST, TRAPPED_CHEST et BARREL par défaut) et protectedEntities (cadres, armor stands, tableaux), et messageRepeatDelay (2 secondes). limitInteractions refuse aussi de poser des blocs, des seaux, des véhicules, des œufs d'apparition, du feu, de la poudre d'os et d'utiliser des outils sur les blocs.
  • Dungeon Restrictions : l'impulsion du trident et le fruit de chorus sont désormais refusés dès le clic, et plus seulement leur effet. Seule la permission de contournement exempte un joueur : un opérateur l'a tant que le nœud n'est pas explicitement à false.
  • Dungeon Category : les champs d'emplacement unlockedLore et lockedLore deviennent unlockLore et lockLore. Les pages enregistrées avec les anciens noms se lisent toujours ; si les deux sont présents, le nouveau l'emporte.
  • MMOProfiles : une fois le profil choisi par le joueur, le retour au point d'entrée et le mode de jeu d'origine sont réappliqués.
  • Correctifs : runs_left ne compte plus une mort qui fait sortir le joueur de la run (elle reste dans deaths) ; waves_cleared ne compte que les groupes qui définissent waves ; %typewriter_dungeon_stat_current_health% affiche les PV du joueur pendant une run ; l'écriture des statistiques ne s'arrête plus de sauvegarder après une erreur ; une run fermée à un rechargement parce qu'aucun de ses membres n'est en ligne compte le temps joué de ses membres absents.
  • Rien ne change pour un donjon existant tant qu'il n'utilise pas ces champs. Pour un coffre qui apparaît quand tous les mobs sont vaincus, voir Entités dans les donjons.

1.1.1​

  • Paper 26.x : une partie en WORLD_PER_RUN pouvait échouer avec The server did not create world 'dungeon_classic_...'. La copie du modèle gardait l'identifiant de monde du modèle (data/paper/metadata.dat), et le serveur la refusait comme doublon. La copie reçoit désormais son propre identifiant.

1.1​

  • Version publique de la refonte décrite ci-dessous. Correctif depuis la 1.0 : WORLD_PER_RUN copie désormais un monde modèle rangé à la façon de Paper 26.x (dimensions/minecraft/<name>).

1.0​

Il s'agit d'une refonte de l'extension, construite autour d'un modèle de parties. Consultez la note de migration avant de mettre à jour un serveur qui utilisait la 0.10.

Parties et mondes​

  • Une partie a désormais sa propre machine à états, son registre et son journal. Démarrer une partie est tout ou rien : si une étape échoue, rien n'est conservé et le coût d'entrée est remboursé.
  • Trois modes d'isolation, définis par donjon avec isolation : SLIME_CLONE, WORLD_PER_RUN, SHARED_WORLD_SLOTS, et AUTO (par défaut). Un mode qui ne peut pas fonctionner refuse la partie. Voir Parties et isolation des mondes.
  • Les mondes rangés à la manière de Paper 26.x (dimensions/minecraft/<name>) sont trouvés pour SHARED_WORLD_SLOTS et copiés pour WORLD_PER_RUN ; un problème de préparation du monde est journalisé sur une seule ligne au lieu d'une pile d'erreur complète.
  • Un typewriter reload ou une publication réadopte les parties en cours. Un redémarrage du serveur les termine proprement.
  • cooldownSeconds est une vraie limite de temps : 0 ou vide signifie aucune limite.
  • Les mondes de partie orphelins sont purgés au démarrage avec des garde-fous (nom, fichier témoin, jamais un monde chargé).
  • Les statistiques sont écrites : tentatives, réussites et meilleur temps, par donjon et par joueur.
  • damageMultiplier et les criteria du donjon sont appliqués.

Donjons générés​

Salles, événements et facts​

  • Les menus se rafraîchissent en direct (autoRefreshTicks) et quand un lobby change.
  • Le scoreboard d'attente fonctionne. Les marqueurs DUNGEON_LOBBY_SLOT placent les lobbies. Les criteria des emplacements sont évalués pour chaque joueur.
  • Un menu de groupe peut nommer son donjon (dungeonInstance) ; un menu vide sert tous les donjons qu'aucun autre menu ne nomme.
  • Les groupes de MMOCore, Parties et de l'extension de groupe Typewriter sont en lecture seule.

Coffres​

  • Un tirage par joueur et par coffre, visibility (AUTO, PER_PLAYER, SHARED), onDisappear, lootSelection et weightedPicks, animation de coffre, orientation selon le yaw, blocs CraftEngine et Nexo, coffres restaurés après un rechargement.

Entités dans les donjons​

Textes des joueurs et nouveaux champs​

  • Les textes des menus, lobbies, barre latérale de partie, coffres de butin et refus de lancement sont des snippets (content.dungeon_menu., content.dungeon_lobby., content.dungeon_run.sidebar., content.dungeon_chest., content.dungeon_launch.). Les valeurs par défaut sont inchangées. Les réponses des commandes /typewriter dungeon ... sont aussi des snippets (content.dungeon_command.).
  • Nouveau champ lobbyIdleKickSeconds sur la Dungeon Instance (par défaut 120).
  • Nouveaux champs sur Loot Chest Trigger : triggerSoundVolume, triggerSoundPitch, triggerParticleCount, triggerParticleSpread, triggerParticleSpeed. broadcastMessage accepte les codes couleur.

Commandes​

  • Suppression de la sous-commande start, qui n'a jamais fonctionné. Les commandes sont documentées dans l'index.

Limites connues​

  • Paper uniquement. Folia n'est pas pris en charge.
  • Les donjons générés n'utilisent que WORLD_PER_RUN.
  • Une cinématique MythicMobsNPC dans un donjon n'a pas été testée.

0.10​

Le build autonome. Les déclencheurs de salle, les deux facts « dans un donjon », l'instance de PNJ et les statistiques étaient déclarés mais pas actifs.