6 votes

Comment puis-je recevoir un signal de sortie de succès du bloc de commande sur une horloge de remplissage ?

J'ai une installation comme celle-ci :

enter image description here

Dans lequel les blocs de commande jaunes sont une horloge standard 20Hz /fill, et le bleu est une commande telle que, par exemple :

/spreadplayers ~ ~ 10 20 false @p[r=5]

Mon problème, qui s'est présenté à moi plusieurs fois, est que je veux obtenir une sorte d'impulsion ou de sortie de redstone lorsque le bloc de commande bleu réussit. La solution évidente est un comparateur, mais cela ne fonctionne pas dans ce cas car la commande s'exécute une fois et échoue au prochain tick, remettant à zéro son compte de réussite avant que le comparateur ne puisse le détecter.

Idéalement, cette détection de sortie devrait également être assez rapide, bien qu'il ne soit pas nécessaire qu'elle fonctionne à la même fréquence que l'horloge de remplissage. La solution doit réellement tester si la commande a réussi.

J'ai essayé certaines choses avec /blockdata et /testforblock, mais sans succès pour l'instant.

Edit : Encore une fois, la solution doit réellement tester la réussite du bloc. Elle ne peut pas se contenter de tester, par exemple, la position des joueurs, car le bloc de commande ne fera pas toujours quelque chose qui peut être testé. Imaginez qu'il s'agisse d'une commande /say, /fill ou /clear item.

0 votes

Je pense que le comparateur le détectera quand même. Vous pouvez essayer d'utiliser un bloc de commande à côté du comparateur, qui suit une variable fictive.

0 votes

Un comparateur ne le détecte pas, vous pouvez l'essayer avec la commande que j'ai donnée. Un comparateur est trop lent pour détecter un succès de 1 tick.

0 votes

Utiliser une horloge 10Hz à la place ? Cela me semble être la solution la plus évidente.

2voto

  • /execute @p[rm=6] ~ ~ ~ /say The command worked
  • /execute @p[r=5] ~ ~ ~ /say The command did not work

(les deux après la commande /spreadplayers). Le seul problème est que si un joueur est positionné dans le rayon de 5 blocs, c'est comme si la commande n'avait pas fonctionné.

EDIT : C'est maintenant tout à fait possible avec la fonction CommandStat Data Tag :

/blockdataCommand Block Coordinates{CommandStats:{SuccessCountName:"Fake Player Name / Entity / whatever you're gonna use",SuccessCountObjective:"Scoreboard Objective Name"}}

En fait, vous pouvez faire en sorte que le SuccessCount soit affiché sur un tableau d'affichage. Voir la vidéo ci-dessous pour plus d'informations !

https://www.youtube.com/watch?v=-qHzoxsOCcU?start=0

.

EDIT 2 : Je devrais peut-être mentionner que vous pouvez ensuite exécuter l'entité si elle a un score d'au moins 1. De plus, vous devriez remettre le score à 0 à la fin de chaque tick (/cycle de l'horloge).

0voto

MrLemon Points 17073

Contournement de l'objectif factice

  • Créez un objectif factice, appelons-le isNotSpread
  • Accrochez un bloc de commande à l'horloge qui la met à 1 pour @p[r=5]
  • /testfor joueurs avec score_isNotSpread_min=1
  • Comparateur qui en deux blocs de commande pour /spreadplayers joueurs avec score_isNotSpread_min=1 et réinitialiser leur isNotSpread objectif à 0.

Puisque le score n'est pas mis à 0 avant qu'un comparateur ne le détecte à 1, cela détectera

Je ne suis pas trop sûr, mais je crois que la plupart des œuvres de Sethbling utilisent cette méthode ou une méthode similaire.

0 votes

J'ai toujours besoin que le bloc de commande /spread fonctionne à la même vitesse, sinon je le mettrais simplement sur une horloge plus lente et tout irait bien. En utilisant cette méthode, l'exécution de la commande prendrait environ 4 fois plus de temps, avec une pause supplémentaire à la fin avant qu'elle puisse fonctionner à nouveau.

-4voto

Fez_Master Points 1

Utilisez un comparateur. Voici une image d'un système possible. System Pic.

Le bloc de commande à gauche est celui qui est testé. Si la commande réussit, alors le comparateur est activé, et active ainsi le bloc de commande de droite, avec une commande /say ou /tell à l'intérieur. Assurez-vous que le comparateur est orienté directement à l'opposé du bloc de commande testé.

3 votes

"La solution évidente est un comparateur, mais cela ne fonctionne pas dans ce cas, car la commande s'exécute une fois puis échoue au tic-tac suivant, réinitialisant son compte de réussite avant que le comparateur ne puisse le détecter."

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