3 votes

Comment puis-je créer une copie d'une entité à l'aide de blocs de commande ?

Plus précisément, disons qu'il y a une pile d'objets sur le sol, par exemple après la mort d'une personne, et que je veux créer une copie exacte de chacun de ces objets (balises NBT et tout), mais à un endroit différent (spécifique). Comment dois-je m'y prendre ?

Si l'on adopte l'approche naïve, les calculs deviennent assez rapidement horribles. Par exemple, ajouter un bloc de commande pour chaque combinaison de chaque enchantement sur chaque objet qui peut contenir ces enchantements devient rapidement ingérable. Par exemple, il y a 6 enchantements qui peuvent être appliqués à chaque type d'armure, il y a 5 grades d'armure, 4 pièces d'armure à chaque grade, et au moins 3 niveaux d'enchantement (avec l'enchantement par défaut) pour ces enchantements. Rien que cela nécessiterait 720 blocs de commande (sachant que j'ai besoin de 2 blocs de commande pour faire le clone), sans parler des différentes combinaisons d'enchantements possibles parmi ces 6, plus les autres enchantements disponibles pour les pièces d'armure individuelles, et la durabilité (oh mon dieu, la durabilité) des objets. Il est évident que l'écriture de milliers (millions ?) de blocs de commandes avec des testfor @e[type=Item] {NBT:"some long and nested NBT tag} y summon Item x y z {NBT:"the same long and nested NBT tag} n'est pas réalisable (et ne produira même pas le bon résultat). Non, j'ai besoin d'un autre moyen.

J'ai parcouru la page des commandes sur le wiki de Minecraft, et rien ne m'a sauté aux yeux. La commande la plus proche que j'ai pu voir est la clone mais cela ne fonctionne que sur les blocs et les entités de type tuile (c'est-à-dire les coffres, les fours, etc.). De plus, je sais que je peux modifier les données NBT directement, mais le but est de pouvoir le faire pendant que le jeu fonctionne.

8voto

Venya Points 509

Je pense utiliser un bloc de structure pour cloner l'entité.

Alors voilà comment je ferais :

  • Tout d'abord, faites apparaître un socle d'armure (comme marqueur) à l'emplacement de l'entité à cloner.
  • Déplacer l'entité vers un emplacement prédéfini.
  • Clonez-le avec les blocs de structure.
  • Déplacez ensuite l'entité vers le marqueur, et la nouvelle entité là où vous le souhaitez.
  • Enfin, retirez le marqueur.

Je vais juste montrer comment mettre en place les blocs de structure. Je suppose que vous savez ce que vous faites avec la téléportation des entités.

Le dispositif de clonage devrait donc ressembler à ceci :

(Le bloc de commande de la deuxième image supprime le bloc de pierre lorsqu'un bloc de pierre rouge est placé à cet endroit).

Ainsi, le bloc de structure à gauche est le bloc de sauvegarde, vous placez les entités à cloner au-dessus de lui.

L'option "Inclure les entités" doit être activée, sinon les entités ne seront pas clonées.

Le bloc de droite charge les entités. (Si vous utilisez la pierre rouge pour sauvegarder, cela ne se fera que dans la mémoire vive, pas sur votre disque, ce qui est bien).

(Le nom de la structure ne doit pas nécessairement être "cloneur", mais il doit être le même dans les deux blocs).

Lorsque vous avez mis en place le dispositif de clonage, il vous suffit de téléporter une entité sur le bloc de structure de gauche, de placer un bloc de pierre rouge à la place de celui de pierre, puis un tic de pierre rouge plus tard, vous aurez deux entités identiques.

Necro edit : J'ai pensé clarifier pourquoi il doit y avoir un tic de pierre rouge entre eux, c'est parce que les blocs de structure sont "lents" (par rapport aux blocs de commande) et nécessitent du temps pour sauvegarder les données de structure. Un seul tic-tac de pierre rouge est simplement facile à faire, mais il peut être n'importe quelle quantité de temps, tant qu'il donne aux blocs de structure le temps de faire leur truc.

3voto

PjRock Points 126

Une option serait d'utiliser des supports d'armure ou des crânes de fléau comme supports et de téléporter les objets dans les deux sens.

Ou vous pourriez placer des trémies et des coffres avec /setblock , copier le coffre avec le clone et ensuite prendre les objets avec les hoppers et droppers. Je ne me souviens plus si vous pouvez casser un coffre pour qu'il laisse tomber des objets avec /setblock . Si vous devez le faire, utilisez /entitydata pour ajouter/supprimer des balises afin d'empêcher les objets de disparaître.

J'espère que cela vous aidera.

2voto

James Riordan Points 29

La seule façon de le faire de manière fiable actuellement est de téléporter tous les objets dans une trémie et de les mettre dans un coffre. Cette opération peut être accélérée en utilisant la commande /blockdata pour annuler le cooldown du hopper, mais prendra quand même un certain temps pour un grand nombre d'objets (320 ticks ou 16 secondes pour un hopper plein). Le coffre peut ensuite être cloné à l'endroit voulu, et en utilisant /setblock x y z air 0 destroy avec le gamerule doTileDrops réglé sur false, le contenu mais pas le coffre sera déposé.

2voto

TenNineAce Points 263

Je suis surpris que personne n'ait suggéré ça, mais si /teleport plutôt que de cloner est une option, vous pouvez cibler les éléments directement :

/scoreboard objectives add itemCount dummy (à exécuter une seule fois)

  1. /scoreboard players tag @r[type=Item] add item0 {OnGround:1b} (dans un bloc de commandes répétitives ou cadencées avec les commandes suivantes enchaînées)
  2. /scoreboard players set @e[tag=item0] itemCount 0
  3. /execute @e[tag=item0] ~ ~ ~ execute @e[r=3,type=Item,tag=!item0] ~ ~ ~ scoreboard players add @e[tag=item0,r=3] itemCount 1
  4. /execute @e[tag=item0,score_itemCount_min=5] teleport @e[type=Item,r=3] <x> <y> <z>

Voilà ce que ça fait :

  1. choisissez un objet aléatoire sur le sol pour le vérifier.
  2. mettre à zéro son score dans l'objectif "itemCount".
  3. tout objet posé sur le sol dans un rayon de 3 blocs autour de lui ajoute 1 à son score.
  4. si son score est supérieur à 4, il est téléporté, ainsi que tout autre objet se trouvant dans un rayon de 3 blocs, à l'emplacement x,y,z.

Cela téléportera tout groupe de 5 piles d'objets distincts ou plus à cet endroit. Si vous voulez être sûr de ne pas téléporter des objets qui, par exemple, sont sortis d'un coffre cassé, vous pouvez également utiliser la même méthode pour vérifier qu'il existe un certain nombre de piles d'objets. XPOrb en plus de Item s. Je ne peux pas penser à autre chose qu'à un joueur qui pourrait laisser tomber plus de 3 ou 4 xporbs. et plus de 5 articles.

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