1 votes

Comment ajouter une balise à une entité de bloc spécifique sur le terrain ?

Comment puis-je faire en sorte que le jeu cible tous les leviers qui ont été brisés par une pelle en pierre et qu'ils puissent être placés sur la pierre et la roche, mais UNIQUEMENT les leviers qui sont actuellement sous forme d'entité - rien d'autre ? Par exemple, si je devais briser un levier et faire tomber une échelle, seul le levier se verrait ajouter l'étiquette ?

1 votes

Est-il important de ne cibler que les leviers brisés par une pelle en pierre, ou suffit-il de cibler tous les leviers sous forme d'entité ?

0 votes

Il cible tous les leviers sous forme d'entités.

1voto

RetroCraft Points 477

Vous pouvez utiliser le /testfor et la commande @e sélecteur. Vous pouvez faire /testfor @e[type=Item] {id:"minecraft:lever"} pour obtenir tous les leviers en tant qu'entités ( @e ). Vous pouvez également utiliser /scoreboard si vous avez besoin de stocker des données pour une référence future (ce que je fais habituellement, puisque détecter une entité et ne rien en faire est fondamentalement inutile). Pour configurer, vous pouvez créer un objectif ( /scoreboard objectives add objectiveName dummy Objective Name Here ), utilisez alors /scoreboard players set @e[type=Item] objectiveName 1 {Item:{id:"minecraft:lever"}} ou quelque chose comme ça (en utilisant add au lieu de set ou de même).

Vous pourriez alors modifier les données NBT du levier pour avoir {CanPlaceOn:["minecraft:stone","minecraft:bedrock"]} . Vous devez aussi être dans /gamemode 2 a.k.a mode aventure pour que CanPlaceOn fonctionne.

0 votes

Lorsque je fais cela, le système indique que l'élément ne correspond pas à la structure de données requise. Je l'ai ensuite testé en lui faisant détecter tous les leviers dans un rayon de 2, et j'obtiens "item.item.lever did not match the required data structure" lorsque je lance "/testfor @e[type=Item,r=2] {id : "Minecraft:lever"}". Qu'est-ce que je fais d'incorrect ? Si j'enlève la balise et que je ne fais que rechercher des éléments, cela fonctionne, mais il semble que je n'utilise pas la bonne balise. Est-ce que c'est censé être "{Item:{id : "Minecraft:lever"}} à la place ?

0 votes

Si la réponse est correcte, envisagez de l'accepter. Cliquez sur la coche à côté du nombre de votes.

0 votes

Mais cela n'a pas entièrement résolu le problème. Je n'arrive pas à modifier les données nbt des leviers avec cette information. J'ai deux blocs de commande. Le premier est /scoreboard players set @e[type=Item] lever 1 {Item:{id : "Minecraft:lever"}} et le second est /execute @e[type=Item,score_lever_min=1] {Item:{id : "Minecraft:lever"}} entitydata @e[type=Item,score_lever_min=1] {CanPlaceOn :["Minecraft:stone", "Minecraft:bedrock"]}. Il ne se passe rien lorsqu'une entité "lever" est détectée.

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