2 votes

Comment tester et exécuter l'effet dans le bloc de commande unique ?

Je veux faire ce qui suit, mais sans ajouter un comparateur reliant le testfor au setblock, au lieu de cela je souhaite les avoir dans le même espace.

/execute @p ~ ~ ~ testforblock ~ ~-1 ~ grass /setblock ~ ~-1 ~ dirt

Est-ce possible ?

1voto

MrLemon Points 17073

Non, vous ne pouvez pas enchaîner testforblock avec d'autres commandes juste comme ça, mais il y a d'autres façons de le faire.

1. execute 's detect mot-clé

En execute a une commande spéciale detect mot-clé qui vous permet de faire exactement ce que vous voulez. Il s'agit essentiellement a testforblock à l'intérieur d'un exécutant.

execute <entity> <x> <y> <z> detect <x2> <y2> <z2> <block> <data> <command> 

Cela fonctionnera <command> sur <entity> seulement si <block> (avec <data> ) est présent à <x2> <y2> <z2> 1 . Donc, pour votre exemple, vous voulez utiliser

execute @p ~ ~ ~ detect ~ ~-1 ~ grass 0 setblock ~ ~-1 ~ dirt

1) Si vous utilisez la notation tilde pour les coordonnées relatives, le deuxième ensemble de coordonnées est relatif au premier ensemble (dans ce cas la position de @p ).

2. fill 's replace option

Une autre façon de faire ce que vous voulez faire est d'utiliser la fonction fill avec la commande replace (Cette option a une portée plus limitée, et je ne l'inclus ici que par souci d'exhaustivité) :

fill <x1> <y1> <z1> <x2> <y2> <z2> <TileName> <dataValue> replace [replaceTileName] [replaceDataValue] 

Si les deux ensembles de coordonnées sont identiques, cela n'affectera qu'un seul bloc. Ainsi, pour remplacer l'herbe sous le joueur par de la terre, vous pouvez utiliser

execute @p ~ ~ ~ fill ~ ~-1 ~ ~ ~-1 ~ dirt 0 replace grass 0

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