Aller au contenu principal

Migration depuis la 0.10

Sauvegardez votre dossier pages de Typewriter et les données de plugins/Typewriter/ avant la mise à jour. Les entrées sont lues telles quelles : les pages existantes se chargent, mais plusieurs choses se comportent différemment.

Supprimé​

QuoiRemplacer par
aggroMultiplier sur la Dungeon InstanceRien. Il n'était jamais lu et a disparu.
/typewriter dungeon start/typewriter dungeon enter <instance>.
Le lien partyLobbyArtifactRien. Il n'est plus utilisé : les lobbies ne sont plus restaurés après un rechargement ou un redémarrage. L'entrée Dungeon Party Lobby Artifact se charge toujours mais est inerte, et sa suppression est prévue dans une version ultérieure.
Rejoindre un lobby créait un groupe dans MMOCore ou PartiesLes groupes sont en lecture seule. Tout le groupe d'un joueur rejoint le lobby avec lui.

Comportements qui changent​

  • allowedDungeonIds sur un Dungeon NPC Instance. C'est désormais une liste de références vers des instances de donjon (même nom de champ, mêmes données stockées, donc les anciennes pages se chargent). Une liste vide signifie maintenant toutes les parties de tous les donjons. En 0.10, le PNJ n'était jamais montré. Une liste qui contenait des ids continue de fonctionner tant que les ids existent. La valeur par défaut de group est désormais les membres de la partie.
  • Le Dungeon NPC Instance est affiché. En 0.10, il n'apparaissait jamais. Si vous aviez utilisé comme contournement un coffre ancré sur un PNJ d'une autre extension, vous pouvez maintenant l'ancrer sur celui-ci.
  • Les criteria des emplacements de catégorie sont évalués par joueur. En 0.10, un seul critère verrouillait l'emplacement pour tout le monde. Retirez les critères que vous utilisiez comme verrou dur.
  • Les criteria et le damageMultiplier du donjon sont désormais appliqués (damageMultiplier vaut 1 par défaut).
  • cooldownSeconds : 0 ou vide signifie aucune limite de temps.
  • Les salles se déclenchent désormais. onEnter, onLeave, les modificateurs et les critères d'une Dungeon Room s'exécutent. Les salles qui se chevauchent sont toutes entrées, la priority la plus haute d'abord. verticalMargin est nouveau, avec une valeur par défaut de 2,0 blocs : un joueur compte désormais comme à l'intérieur de 2 blocs sous le nœud le plus bas à 2 blocs au-dessus du plus haut, pour chaque salle. Mettez-le à 0 pour conserver la hauteur exacte que vous aviez. Une salle haute (grande salle, tour) peut nécessiter une valeur plus grande, pour qu'un saut ou un véhicule reste à l'intérieur.
  • Facts. indungeon et indungeon_instance renvoient de vraies valeurs.
  • Les statistiques sont écrites. Elles partent de zéro.
  • Isolation. Le nouveau champ isolation vaut AUTO par défaut : SLIME_CLONE avec Advanced Slime Paper, sinon WORLD_PER_RUN (une copie de templateWorld, supprimée après la partie). En 0.10, Paper seul utilisait le monde modèle lui-même et en retirait toute entité non joueur. Pour continuer à partager un monde, définissez SHARED_WORLD_SLOTS et construisez le donjon dans chaque emplacement. Voir Parties et isolation des mondes.
  • Le menu de groupe est choisi par son champ dungeonInstance, et un champ vide sert tout donjon qu'aucun autre menu ne nomme. Auparavant, c'était « le premier menu trouvé ».
  • Loot Chest Trigger ONCE signifie une fois par partie, et non jusqu'au redémarrage du serveur.
  • Les parties survivent à un rechargement si un runtimeArtifact est lié (sinon runs.json). Un redémarrage du serveur les termine.
  • Dungeon Enter et /typewriter dungeon enter vérifient la taille du groupe, les critères, le coût d'entrée et la limite de parties.
  • Mobs de l'extension (nouveau) : aucun n'est créé tant que vous n'ajoutez pas d'entrées Dungeon Mob Spawn.

Nouveaux snippets et champs​

Tous les textes que lisent les joueurs dans les menus, lobbies, barre latérale, coffres de butin et refus de lancement sont désormais des snippets Typewriter (content.dungeon_menu., content.dungeon_lobby., content.dungeon_run.sidebar., content.dungeon_chest., content.dungeon_launch.). Leurs valeurs par défaut sont les textes que l'extension affichait déjà : rien ne change tant que vous ne les modifiez pas. La liste se trouve dans l'index. Les réponses des commandes d'administration sont aussi des snippets (content.dungeon_command.).

Deux groupes de champs sont nouveaux, avec des valeurs par défaut qui conservent l'ancien comportement :

  • lobbyIdleKickSeconds sur la Dungeon Instance (par défaut 120, les 2 minutes fixes d'avant).
  • Sur Loot Chest Trigger : triggerSoundVolume, triggerSoundPitch, triggerParticleCount, triggerParticleSpread, triggerParticleSpeed (valeurs par défaut 1, 1, 30, 0.5, 0.1). broadcastMessage accepte désormais les codes couleur.

Compatibilité des données​

  • Le journal des parties est lu de la version 1 à 3. Il est écrit en version 2 tant qu'aucune partie générée n'y figure, et en version 3 dès qu'il y en a une (il gagne aussi les listes facultatives mobs et mobsOwed). Revenir à un build plus ancien n'est donc sûr que tant qu'aucune partie générée n'a été enregistrée ; ne rétrogradez pas après avoir utilisé des donjons générés. Un artifact qui ne peut pas être lu n'est jamais écrasé.
  • La liste MarkerKind d'un modèle de salle a gagné NPC et MOB à sa fin. Les modèles de salle existants conservent leur identité et sont inchangés.
  • L'id de l'entrée d'entité dungeon_npc_instance est inchangé.

Liste de contrôle​

  1. Sauvegardez vos pages.
  2. Mettez à jour le JAR et démarrez le serveur. Lisez le journal pour repérer les avertissements sur un runtimeArtifact ou un menu de groupe manquant.
  3. Vérifiez l'isolation de chaque donjon.
  4. Passez en revue allowedDungeonIds sur vos instances de PNJ.
  5. Passez en revue les criteria des emplacements de catégorie et verticalMargin sur les salles.
  6. Remplacez les usages de /typewriter dungeon start.