7 votes

Pouvez-vous désactiver l'augmentation des coûts de réparation dans Minecraft 1.8 ?

Comme vous le savez peut-être, à partir de la version 1.8 de Minecraft, le coût de réparation d'un objet augmente au fur et à mesure qu'il est réparé, jusqu'au point où l'objet ne peut plus être réparé.

Existe-t-il un moyen de revenir sur cette modification à l'aide de blocs de commande ?

7voto

MrLemon Points 17073

Le coût de réparation d'un article est sauvegardé dans les données NBT de l'article, plus précisément dans l'élément de données de l'article. RepairCost tag. Sachant cela, nous pouvons facilement créer un bloc de commande qui réinitialise cette balise.

Version simple :

Créez une horloge de redstone à l'intérieur de vos spawn-chunks (je suggère de la placer dans une boîte de bedrock), et utilisez-la pour alimenter un bloc de commande avec la commande suivante :

/entitydata @e[type=Item] {tag:{RepairCost:0}}

Cela ajoutera le RepairCost à chaque objet qui se trouve sur le sol, y compris ceux qui ne l'ont jamais eu, ou pour lesquels cela n'a aucun sens, comme les pavés ou les rondins. Je ne vois pas de meilleure méthode, non fastidieuse, cependant.

3voto

htmlcoderexe Points 111

Mise à jour de la version 1.13+.

Certaines commandes ont été retravaillées dans la 1.13, et /entitydata n'existe plus.

Voici une solution moderne et à jour (qui fonctionne même depuis les snapshots de la version 1.16 !) utilisant /execute y /data :

/execute as @e[type=item] run data remove entity @s Item.tag.RepairCost

Cela présente l'avantage de ne supprimer que le RepairCost sans apporter de modifications inutiles.

Utilisation

Déposez les objets, exécutez la commande, ramassez les objets à nouveau, libérés de la pénalité de réparation. On peut aussi placer la commande dans un bloc de commande avec un bouton, déposer les objets, appuyer sur le bouton, ramasser.

Comment cela fonctionne :

/execute as @e[type=item] run

/execute entraîne l'exécution d'une commande pour chaque élément sélectionné par le sélecteur (ici @e[type=item] : tous e ntités d'un type "item" - les éléments déposés sont des entités de ce type exact)

as fait de l'"exécuteur" de la commande l'entité réellement visée (par opposition au joueur/serveur qui l'exécute, ce qui sera important par la suite).

run spécifie que le reste est la commande réelle à exécuter

Maintenant, chaque élément déposé "exécute" ce qui suit :

/data remove entity @s Item.tag.RepairCost

/data est la nouvelle commande pour tous vos besoins de manipulation de données d'entités et de blocs, elle possède de très nombreuses options complexes...

remove précise que nous allons supprimer quelque chose

entity précise que nous ciblons une entité, vous pouvez également cibler un bloc ou un "stockage", je suppose que vous pouvez l'utiliser pour stocker des données pour une utilisation ultérieure sans le lier à une entité - un peu comme inclus dans le fichier de sauvegarde de votre monde.

@s vise le "soi", ou l'entité qui exécute la commande (c'est pourquoi l'option as en /execute est important - il le fait maintenant @s sélectionne en fait l'élément déposé spécifique).

Item.tag.RepairCost -Ceci sélectionne simplement ce que nous voulons cibler. remove pour faire son travail. Vous pouvez exécuter la commande avec get au lieu de remove pour montrer comment cela fonctionne - il affichera le coût de réparation de cet objet particulier s'il en a un. Dans le cas de RepairCost, il est stocké sous la liste "tag" de l'objet d'inventaire, qui peut également contenir des enchantements, des valeurs de dommages, et d'autres données supplémentaires, tandis que l'objet d'inventaire lui-même est stocké comme un objet "Item" sur l'entité Minecraft:item.

En prime, la commande fournit un retour d'information instantané sur les changements qui ont réellement eu lieu - si aucun élément n'a été modifié, il n'y a pas de sortie, sinon une ligne par élément modifié est affichée.

Plus de détails/embrouillages

La capture d'écran ci-dessous illustre une partie de mes recherches ; les lignes indiquant " tel et tel a les données d'entité suivantes" sont les endroits où j'ai utilisé get au lieu de remove pour s'habituer à la structure. Les premières lignes avec les oeufs et les articles de saumon que j'ai ciblés simplement Item qui renvoie alors le nom type de l'élément d'inventaire. Item.tag qui a techniquement fonctionné sur le saumon et les oeufs, aussi, mais comme ils n'avaient pas d'étiquettes sur leur Item aucun message n'a été affiché ; le livre Enchanté avait un tag contenant une liste StoredEnchantments et un RepairCost (on se rapproche !). Ensuite, il y a eu la commande complète, mais avec get au lieu de remove en confirmant les éléments avec un RepairCost de "1". Les messages suivants ("Données d'entité modifiées") sont ceux dans lesquels j'ai exécuté la suppression - après quoi l'élément get n'a pas donné lieu à des messages puisque tous les éléments avec RepairCost ont disparu maintenant. En guise de test, j'ai lancé le programme get avec Item.tag comme cible pour voir si ma pioche avait un coût de réparation supplémentaire, et ce n'était pas le cas. Damage et la liste des Enchantments .

Results of running various data commands

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