Serveur minecraft

Format de fichier de région – Wiki officiel de Minecraft – Resoudre les problemes d’un serveur MineCraft

Par Titanfall , le 2 octobre 2019 - 0 minute de lecture

Cleanup.svg "src =" https://gamepedia.cursecdn.com/commons_hydra/b/b4/Cleanup.svg?version=59e73c579b8afcaefc56319a6475cc8e "width =" 32 "height =" 32 "style =" vertical "- texte top "/></div>
</td>
<td style=Cet article peut nécessiter un nettoyage pour améliorer sa qualité, éventuellement pour se conformer au guide de style. Discuter

le Format de fichier de région est un format de stockage pour les morceaux Minecraft introduit dans Minecraft Bêta 1.3, dans lequel des groupes de 32 × 32 morceaux sont stockés dans un fichier de région. Ce format de fichier remplace le format de niveau Alpha, utilisé depuis la phase de développement d’Infdev, dans lequel des morceaux étaient stockés dans des fichiers individuels. On pourrait dire qu'une région est une partie d'un système de fichiers où l'en-tête vous montre les positions pour chaque fichier et le secteur est la taille d'allocation.

Le système est basé sur McRegion,[1] un mod de Scaevolus, également connu pour son développement du projet Optimine. Le format McRegion a été adopté presque inchangé, à l'exception de l'ajout d'un tableau d'horodatages de mise à jour des blocs. JahKob a affirmé que ce format est jusqu'à 7 fois plus rapide que le système précédent.[2] La différence dans la taille totale du fichier mondial entre le format de fichier Région et le format de niveau Alpha est négligeable.

Le format a été remplacé par le format de fichier Anvil; toutefois, le format de fichier Anvil a uniquement modifié le format de bloc et modifié les extensions de fichier de région de ".mcr" à ".mca".

Fichiers de région[[[[modifier]

Emplacement du fichier de région[[[[modifier]

Les fichiers de région sont situés dans un sous-dossier du répertoire mondial appelé "région" et ont des noms sous la forme r.X.z.mcr, où x et z sont les coordonnées de la région. Les coordonnées de la région à laquelle appartient un bloc peuvent être trouvées en prenant le plancher des coordonnées du bloc, divisé par 32.

En Java:

            int regionX = (int) floor (chunkX / 32.0);
   int regionZ = (int) floor (chunkZ / 32.0);

Ou en bit-operation (bit shift):

            int regionX = chunkX >> 5
   int regionZ = chunkZ >> 5

Par exemple, une partie de (30, -3) serait dans la région (0, -1), et une partie (70, -30) serait à (2, -1).

Structure[[[[modifier]

Les fichiers de région commencent par un en-tête 8kiB contenant des informations sur les fragments présents dans le fichier de région, leur date de dernière mise à jour et leur emplacement. L'emplacement dans le fichier de région d'un bloc en (x, z) (en coordonnées de bloc) se trouve à l'octet offset 4 * ((x mod 32) + (z mod 32) * 32) dans son fichier de régions. Si les valeurs de x mod 32 ou z mod 32 sont négatives (ce qui se produit lors de l'utilisation de l'opérateur% en Java / C / C ++), ajoutez simplement 32. Ou vous pouvez remplacer mod par l'opérateur & (opérateur AND). Le calcul du décalage ressemblera à ceci: 4 * ((x & 31) + (z & 31) * 32). Son horodatage peut être trouvé 4096 octets plus tard dans le fichier. Le reste du fichier est constitué de données pour un maximum de 1024 morceaux, entrecoupées d’espace inutilisé.

octet 0 – 4095 4096 – 8191 8192 …
la description emplacements (1024 entrées) horodatage (1024 entrées) morceaux et espace inutilisé

Emplacement des morceaux[[[[modifier]

Les informations de localisation d’un bloc sont constituées de quatre octets répartis en deux champs: les trois premiers octets sont un décalage (big-endian) dans les secteurs de 4 Ko à partir du début du fichier, et un octet restant qui donne la longueur du bloc (également en Secteurs de 4 Ko, arrondis). Les morceaux auront toujours une taille inférieure à 1 Mo. Si un bloc n'est pas présent dans le fichier de région (par exemple, parce qu'il n'a pas encore été généré ou migré), les deux champs seront nuls.

octet 0 1 2 3
la description décalage nombre de secteurs

Un bloc avec un décalage de 2 commencera juste après le tableau des horodatages.

Horodatage de morceaux[[[[modifier]

Les entrées de la table d’horodatage sont des entiers individuels à quatre octets de grande taille, représentant la dernière heure de modification d’un bloc.

octet 0 1 2 3
la description horodatage

Données de morceau[[[[modifier]

Les données de morceau commencent par un champ (gros extrémité) de quatre octets qui indique la longueur exacte en octets des données de morceau restantes. L'octet suivant indique le schéma de compression utilisé pour les données de morceaux, et les octets restants (longueur-1) sont les données de morceaux compressés.

Minecraft insère toujours dans la longueur des données du dernier bloc un multiple de 4096B (afin que le fichier entier ait une taille multiple de 4 Ko). Minecraft n'acceptera pas les fichiers dans lesquels le dernier bloc n'est pas complété. Notez que ce remplissage n'est pas inclus dans le champ de longueur.

octet 0 1 2 3 4 5 …
la description longueur (en octets) type de compression données compressées (longueur-1 octets)

Il existe actuellement deux schémas de compression définis:

valeur méthode
1 GZip (RFC1952) (non utilisé en pratique)
2 Zlib (RFC1950)

Les données non compressées sont au format NBT et suivent les informations détaillées sur l'article de format de bloc; Si elles sont compressées avec le schéma de compression 1, les données compressées seraient les mêmes que le contenu sur disque d'un fichier de morceau Alpha. Notez que les morceaux seront toujours sauvegardés en utilisant le schéma de compression 2 par le client officiel.

Migration et niveau.dat[[[[modifier]

À quoi ressemble Minecraft lors de la conversion au nouveau format.

La version bêta 1.3 convertira tous les "anciens" morceaux en fichiers de région avant de charger le monde, plutôt que de manière incrémentielle, car ils sont chargés pendant la lecture. Dans le cadre de la conversion, level.dat sera mis à jour avec TAG_Int ("version") (cas de la note) défini sur 19132. La version bêta 1.3 introduit également un nouveau champ de nom de niveau, TAG_String ("LevelName"). Il y a aussi introduit le nouveau TAG_Byte ("Sleeping") dans le lecteur TAG_Compounds – level.dat en mode solo, [player name].dat en multijoueur qui indique si le joueur est au lit. Il a la valeur 1 (vrai) ou 0 (faux). Pour la version bêta 1.8, TAG_Int ("GameType") a été ajouté. Dans la version bêta 1.9, TAG_byte ("hardcore") a été ajouté.

Le format de level.dat est par ailleurs inchangé.

Voir également[[[[modifier]

Liens externes[[[[modifier]

Références[[[[modifier]

Logiciel[[[[modifier]

La communauté a développé des programmes pour travailler avec des fichiers de région:

Nom La description Capture d'écran
McRegion Ce mod optimise la façon dont les morceaux sont stockés sur le disque, ce qui signifie que les pauses pour charger ou sauvegarder un morceau lorsque vous vous déplacez dans un monde deviennent beaucoup plus courtes et moins perceptibles.
Fixateur de région Minecraft Cet outil est un script python qui tente de résoudre les problèmes rencontrés dans les fichiers de région. Il peut trouver des erreurs typiques (morceaux corrompus, mal localisés, trop d'entités) et peut corriger ces erreurs de différentes manières (suppression des morceaux, remplacement par une copie de sauvegarde ou déplacement du morceau). Ceci est une application en ligne de commande.
MCA2NBT Un utilitaire de ligne de commande Unix simple permettant de convertir un fichier de région Minecraft .mca (au format enclume) en un répertoire portant le même nom de base et contenant un fichier NBT non compressé pour chacun de ses morceaux.
Scanner de région Un utilitaire de ligne de commande Java Minecraft 1.7.10 (uniquement) pour analyser et éditer en masse des fichiers de région


Click to rate this post!
[Total: 0 Average: 0]

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.