2 votes

Faites disparaître le sable tombant lorsque celui-ci atterrit

J'ai une slime qui monte sur un bloc de sable tombant qui vole à travers l'air. J'ai besoin que le bloc de sable tombant disparaisse quand il touche le sol pour que seul le slime reste. Y a-t-il un moyen de faire ça ?

3voto

David Points 7618

Si vous placez une torche sous le sable qui tombe, le bloc de sable se "cassera" et deviendra un objet bloc de sable pouvant être ramassé ou ignoré jusqu'à ce qu'il despawne.

3voto

lennartVH01 Points 456

Créez un objectif de tableau de bord nommé onGround

/scoreboard objectives add onGround dummy

Définissez tous les scores onGround des entités dont la balise OnGround est égale à 1 à 1; tuez toutes les entités FallingSand avec un score onGround de 1

/scoreboard players set @e onGround 1 {OnGround:1b}
/kill @e[type=FallingSand,score_onGround_min=1]

Placez les deux dernières commandes sur une horloge de 20Hz


Si le sol est uniquement constitué d'un certain matériau, par exemple, pierre

Vous pouvez utiliser un execute avec detect et tester le bloc en dessous du FallingSand

/execute @e[type=FallingSand] ~ ~ ~ detect ~ ~-1 ~ stone 0 kill @e[type=FallingStand,r=0]

la r=0 à la fin est pour s'assurer que le FallingSand ne cible que lui-même.

1voto

Sohail Anwar Points 89

J'ai déjà un slime chevauchant mon bloc, mais si vous avez juste un bloc, vous pouvez faire en sorte qu'une entité invisible le chevauche et cela fonctionnera toujours.

REMARQUE : Toutes les commandes ici, sauf indication contraire, doivent être exécutées sur une horloge de 20hz.

La solution que j'ai trouvée était de laisser le sable en chute devenir un bloc, puis d'utiliser le slime pour détruire le bloc. Tout d'abord, vous devez détecter les slimes qui viennent de toucher le sol, pour qu'ils ne détruisent pas d'autres blocs. Un scoreboard peut être utilisé pour suivre cela. Tout d'abord, créez l'objectif du scoreboard manuellement :

/scoreboard objectives add onGroundTicks dummy

Ensuite, ajoutez le score aux slimes au sol :

/scoreboard players add @e[type=Slime] onGroundTicks 1 {OnGround:1b}

Tout slime qui vient juste de toucher le sol pour la première fois aura un score de 1. Les slimes qui n'ont jamais touché le sol ont un score de 0. Les slimes qui ont déjà touché le sol ont un score qui est supérieur à 1.

Ensuite, vous devez enlever les blocs supplémentaires autour des slimes avec un score de 1. J'utilise des barrières, mais peu importe quel bloc vous utilisez, vous devez remplacer minecraft:barrier par ce bloc. Seuls les blocs de barrière dans cet exemple sont détruits.

/execute @e[type=Slime,score_onGroundTicks=1] ~ ~ ~ /fill ~1 ~ ~1 ~-1 ~ ~-1 minecraft:air 0 replace minecraft:barrier 0

Vous voudrez peut-être ou non tuer les slimes après cela :

/kill @e[type=Slime,score_onGroundTicks_min=2]

-1voto

Xandawesome Points 384

Si vous aviez une horloge de redstone rapide connectée à un bloc de commande avec la commande suivante à l'intérieur : /setblock air

Alors lorsque le sable tombera, le /setblock changera le sable en air et le bloc de slime restera toujours en place.

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