1 votes

Existe-t-il un moyen de récupérer et de stocker numériquement l'ID d'un bloc dans le tableau d'affichage à l'aide de blocs de commande ?

Le but ici est d'implémenter la mémoire en utilisant le bloc.

Je veux donner aux blocs de commande une mémoire indexable. J'ai pensé que l'utilisation de blocs serait la chose la plus logique à faire puisqu'ils sont... partout. Je vois qu'ils ont chacun un ID de bloc comme indiqué ici :

https://Minecraft.fandom.com/wiki/Data_values/Block_IDs

Je sais que le tableau d'affichage peut faire certaines opérations arithmétiques. Peut-être assez pour servir de "processeur" naïf pour aller de pair avec la "mémoire". Naturellement, j'ai besoin d'obtenir l'identifiant d'un bloc à une position arbitraire dans le tableau d'affichage. Je sais qu'en théorie, on pourrait simplement utiliser cette fonction ( https://Minecraft.fandom.com/wiki/Commands/testforblock ) et utilisez-le. Cependant, le seul problème est que la vérification de 256 blocs passe de l'inefficacité à l'absurdité. Il doit y avoir un meilleur moyen . Existe-t-il une commande permettant de rechercher l'ID d'un bloc à un endroit donné, puis de le déplacer vers le tableau d'affichage ?

2voto

Andreas Gohr Points 1099

Il n'y a pas de meilleur moyen.

Les commandes sont très limitées lorsqu'il s'agit de lire et d'écrire dynamiquement des données vers et depuis le tableau d'affichage - ou n'importe quoi d'autre d'ailleurs.

Sans connaître vos besoins spécifiques, tout ce que je peux dire, c'est que vous allez devoir coder en dur chaque bloc individuel. Si vous pouvez ajouter quelques détails à l'OP, nous pourrons peut-être trouver une solution de contournement qui ne soit pas si absurde.


Permettez-moi d'élaborer dans le but d'affirmer ma crédibilité sur le sujet.

La commande scoreboard est relativement grande mais sa fonctionnalité est encore assez limitée. Elle ne peut écrire que sur les scores des entités et des "faux joueurs" (noms statiques sur le tableau d'affichage). Elle peut lire des valeurs à partir des mêmes endroits, bien sûr, mais il est également possible de lire des valeurs à partir de diverses autres sources en utilisant la commande commande stats . Malgré cela, il n'existe pas de stat ou de requête capable d'extraire l'identifiant d'un bloc et de le placer dans un score.

Je dois également noter que les sélecteurs et les scores peuvent être utilisés à plusieurs autres endroits (comme avec la commande tellraw, les signes, les livres, et les composants du texte en général), mais pas d'une manière qui permette une manipulation dynamique des données.

1voto

Fabian Röling Points 19325

Malheureusement, vous devrez tester tous les blocs possibles.

Les blocs ont des ID, mais ils ne sont utilisés que pour les fichiers de sauvegarde. Dans le jeu, ils ne sont désignés que par leur nom d'ID (" minecraft:stone ", " minecraft:dirt ", " minecraft:beacon " et ainsi de suite).

De plus, comme l'a dit Arcensoth, il n'y a aucun moyen d'obtenir des données dans et hors des tableaux d'affichage de façon dynamique (sauf /stats mais c'est également limité). Mais cela ne signifie pas que vos coordonnées relatives basées sur les tableaux de bord sont impossibles, cela signifie simplement que vous devrez, par exemple, déplacer un stand de blindage d'un bloc par compte de tableau de bord, etc.

Pour ce projet, je vous recommande d'utiliser des fonctions plutôt que des blocs de commande. Vous pouvez les éditer dans un éditeur de texte, vous pouvez facilement copier les commandes (chaque fois que vous avez besoin de 256 d'une sorte) et vous pouvez utiliser la récursion pour la téléportation du socle de l'armure afin qu'elle puisse se produire en un seul tick.

AlleGamers.com

AlleGamers est une communauté de gamers qui cherche à élargir la connaissance des jeux vidéo.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X