2 votes

Dans Minecraft, comment faire pour que les seaux d'eau ne puissent être placés que sur certains blocs ?

Dans Minecraft 1.13, il semble que les tags CanPlaceOn et CanDestroy ne fonctionnent pas sur les seaux d'eau. En mode aventure, lorsque vous utilisez un seau, vous pouvez placer de l'eau sur n'importe quel bloc, même si une balise CanPlaceOn est spécifiée. J'ai besoin d'aide pour trouver une solution.

La seule autre alternative à laquelle je pense est de couvrir la totalité de la carte que je suis en train de faire de pistons mobiles invisibles (ce qui est déjà assez stupide comme ça), mais alors je devrais faire un millier d'autres commandes pour mettre les blocs dont j'ai réellement besoin à l'air quand un joueur tenant un seau d'eau s'approche d'eux et pour les remettre à l'air quand le joueur ne tient plus le seau d'eau. Mais c'est une véritable plaie.

2voto

Fabian Röling Points 19325

MC-131346 a été corrigé, la nouvelle réponse à cette question est donc : Cela fonctionne. /give @s water_bucket{CanPlaceOn:["stone"]} vous donne le seau d'eau approprié qui ne peut être placé que sur une pierre.

Voici l'ancienne réponse à titre de référence, au cas où vous joueriez avec une version plus ancienne :


Comme l'a dit OnePointZero , le plus souvent CanPlaceOn devrait fonctionner pour les seaux, mais en raison de la présence de MC-131346 ce n'est pas le cas. Mais il existe un moyen plus simple de contourner ce problème :

Donnez au joueur un objet retexturé qu'il n'a généralement pas ailleurs dans votre carte et qui n'y apparaît pas non plus comme un bloc. Une idée serait un vide de structure ou, si le remodelage de l'objet est trop difficile, un jeune arbre, un lit, un rail ou tout autre objet pouvant être placé avec une texture différente de celle du bloc, à condition qu'il ne se trouve nulle part ailleurs dans la carte.

Ce poste doit avoir le CanPlaceOn ici démontrée avec une pierre :

/give @s stone{CanPlaceOn:["sandstone"]}

Ensuite, vous suivez l'utilisation de cet élément, comme suit :

/scoreboard objectives add placedStone minecraft.used:minecraft.stone

Et chaque fois que quelqu'un le place, vous remplacez le bloc du monde par de l'eau :

/execute at @a[scores={placedStone=1..}] run fill ~-7 ~-7 ~-7 ~7 ~7 ~7 water replace stone

Heureusement /fill met déjà à jour tous les blocs de manière cohérente, de sorte qu'il commencera à s'écouler automatiquement et que vous n'aurez pas à vous préoccuper des mises à jour incohérentes de /setblock .

Il ne vous reste plus qu'à réinitialiser le tableau d'affichage pour une utilisation ultérieure :

/scoreboard players set @a[scores={placedStone=1..}] placedStone 0

Les deux derniers ordres sont utilisés pour répéter la chaîne de commandement ou une fonction. Le deuxième bloc de commandes peut être conditionnel.

1voto

OnePointZero Points 153

Il s'agit d'un bogue qui a été signalé sur https://bugs.mojang.com/browse/MC-131346 qui donnait aux joueurs du mode aventure la possibilité de ramasser et de placer de l'eau, de la lave ou des seaux de poissons sur n'importe quel bloc, même s'il n'y avait pas de balise CanPlaceOn ou CanDestroy. Ce problème est (espérons-le) en cours de résolution.

En attendant, j'ai trouvé la solution suivante :

J'ai retexturé un outil avec la texture d'un seau d'eau mais il n'est visible qu'à une certaine durabilité. Je l'ai réglé sur Unbreaking pour supprimer la barre de durabilité. Chaque fois que le joueur s'éloigne de la zone où je l'ai autorisé à placer l'eau, je lui enlève le vrai seau d'eau et lui donne le faux seau retexturé. Lorsqu'ils reviennent dans ces zones spécifiques, j'efface le faux seau et je leur en donne un vrai qui indique sur quel bloc il peut être placé, puis je remplis toute la zone de pistons mobiles, à l'exception de la surface du bloc sur lequel j'ai indiqué que l'eau pouvait être placée. Ce n'était pas facile, mais c'est possible.

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