Résolu /execute : comment sélectionner l’ArmorStand le plus proche ?

BlueFuSion348

Architecte en herbe
9 Mars 2012
80
1
18
111
31
Bonjour/Bonsoir, Bonsoir/Bonjour (avec internet on ne sait jamais)

Oui, je suis coincé, du savon please ! En fait je me demande comment sélectionner l’entité la plus proche ?
En l’occurrence un ArmorStand.

En fait je me suis intéressé à la commande /execute car j’ai crus comprendre qu’il était possible dans certains cas de remplacer le /testforblock par un /execute, l’avantage est qu’il n’y a pas le tic d’attente du Comparateur. Ça me parait plus pratique de par le temps de réponse plus rapide d’autant plus que si on le réactionne il réagit encore, tandis qu’avec un /testforblock une fois le bloc détecté si on veut le redétecter pour réobtenir une impulsion redstone, il faut soit enlever le bloc à détecter puis mettre à jour le command_block du /testforblock puis remettre le bloc à détecter puis réactiver le /testforblock (c’est un calvaire impossible) ... ou bien plus simplement passer par une porte AND pour que le signal soit traité en ayant bien mis à jour le /testforblock … ou bien comme je fais maintenant : /clone les command_block des /testforblock sur des rangées de redstone_block à condition qu’il n’y ai pas de previous command à l’intérieure sinon ça fait un faux positif/négatif, et cette méthode-là prend moins de place car si on fait une abaque où dans chaque case il peut y avoir 9 possibilités ça évite de mettre 9x la possibilité pour la case, il n’y aura que la possibilité en action présente /clone dans la case et on gagne ainsi de la place, enfin bref, j’en ai testé des options... J'en ai chié dans le ventilo.

Actuellement j’ai donc remplacé mes /testforblock par des /execute pour l’avantage de la rapidité d’exécution.
Je croyais que mon système partait bien et puis je me suis rendu compte que mes /execute agissaient sur tous les ArmorStand, or il ne faut qu’ils agissent que sur l’ArmorStand le plus proche du command_block (on peut bien le faire avec les joueurs, on ne pourrait pas le faire avec les entités ?)

J'utilise ce genre de commande :
/execute @e[type=ArmorStand] ~ ~ ~ detect ~34 ~-1 ~ minecraft:gold_block 0 /setblock ~8 ~ ~ minecraft:redstone_block

Je me suis renseigné mais j’ai cru comprendre que le @mc n’est plus d’actualité, c’est bien embêtant :/

Il y a une solution un peu embêtante qui me décoincerait : c’est de gérer par rayon, mais le problème est que le savon, heuu... le rayon, dans mon cas pourrait en plus d’atteindre le bon ArmorStand, atteindre les deux autres ArmorStand à côté, ce qui m’obligerait pour ne pas que cela se fasse de reculer chaque section/case, mais alors mon système deviendrait "inutilement" 2 fois plus grand :/
Mais sinon ça fonctionnerait sans problème :D

Et je ne peux pas donner un name à mes 81 ArmorStand pour les différencier pour la simple raison que le système est géré d’une telle manière que ce qui est /clone sur une section n’est pas prévu pour savoir où est exactement sa place dans la grille de 9x9 pour /execute et reconnaitre tel ArmorStand renommé dépendant de la case dans la grille, c’est pour cela qu’il faudrait pouvoir sélectionner l’ArmorStand le plus proche.
Je ne sais pas si je suis clair ? Faut s’accrocher lol
En fait chaque chose à /clone (9 possibilités) peuvent atterrir à 81 endroits (grille de 9x9 sections/cases) et ces 9 possibilités ne peuvent pas savoir gérer un /execute via un ArmorStand renommé puisqu’elles pourront se retrouver à 81 endroits potentiels qui ont chacun 1 ArmorStand, car si je fais 81 ArmorStand renommés (exemple : de 1 à 81) pour les 81 endroits, pour que le système fonctionne il faudrait préconfigurer non pas 9 possibilités mais (9*81=729 possibilités) [les chiffres de 1 à 9 pour les 81 cases de la grille de 9x9], pour que chaque possibilté à /clone, une fois clonée, puisse savoir via quel ArmorStand renommé faire le /execute... Voyez-vous ? Mais là la taille du système serait multipliée par 10... C’est pas souhaitable :/ C'est absurde étant donné que le bon ArmorStand est juste à côté... Même si les 729 possibilités seraient passives dans un coin prêtent à être /clone sur demande, mais bon... à ce moment là peut-être faire une grille de 27x27 sans possibilités stockées sur le côté car faisant partie du système avec les 729 ArmorStand renommés, non, c'est beaucoup trop est inutile...

Je suis passé par plusieurs méthodes et privilégié parfois d’autres options plutôt que d’autres.
Au départ je comptais faire tout en full /setblock, ça aurait fonctionnait, mais c’est plus gros, et il y avait beaucoup de calcul à chaque frame, je l'ai d’ailleurs même pas terminer à cause d'une erreur à la quelle je n'y avais pas penser. Puis je suis passé en /testforblock, c’est une autre façon de voir le système, ici : l’objet questionne ce qu’il veut savoir comme présent (comme le /execute detect qui lui est plus rapide car pas de Comparateur), tandis qu’avec le système en /setblock c’était : mettre la présence à tous les objets qui peuvent être questionné sur cette présence.

En fait je crée un Sudoku, ici je crée le solveur de grille par force-brute :D
Après je ferais le générateur de grille et puis le gameplay pour la remplir :D

Voilà, merci de m'avoir lu, et merci d'avance, et pour après l'aide apportée même si y a du retard ! ;)

PS : En fait au départ je partais pour un jeu d'échec avec une IA qui voit sur 10 tours d'avances, mais je me suis vite rendus compte que Minecraft n'était pas assez puissant pour gérer cela, pourtant j'ai la théorie sur papier, mais je ne sais coder que dans Minecraft et RPG Maker lol, c'est pas adapté pour ce genre de projet encore pire pour le second lol
C'est dommage parce que pour le système j'avais le principe pour une lecture de case avec la gestion d'arborescence, du principe MinMax AlphaBeta, etc... Une fois le principe d'une case et le traitement d'un tour réalisé avec le choix qui permet à l'IA son meilleur coup, après c'était du "simple" copier/coller, mais imaginez, juste la taille d'une map Minecraft : 30.000.000 x 256 x 30.000.0000 n'était pas assez grand, je ne peut que théoriquement faire une IA qui voit sur 3 tours, mais dans la pratique, j'imagine que juste le fait de forcer les chunks à se charger ferait crasher Minecraft, ou une IA qui pour jouer un coup prendrait bien son temps pendant 1 heure ><
 
Wooow, merci beaucoup !!!
Le pire c'est que j'ai déjà vu ce c** heuu... pardon c=? quelque par, sur une commande qui /tp sur le joueur 3 cochons et y avait c=3 <-- mais c'est une b*** !?, c'est fou comment ça m'est pas venu que c'était les 3 cochons les plus proches nommés : c**, b*** et B************ ! ! lol WTR ?
Encore merci !!!
Je mets Résolu ! :D ;)
Et désolé pour mon roman ><
Et de rien pour les 6 fous rires ><' quoi ?! Hahaha...
Mais ferme là ! heuu...... 9 maintenant hihi !
;-;-->[] ;-; 10=1010;-:-:-.-...:rolleyes:<--11 ? | HAAA!!-->:eek:':tnt: ?:mad:<-- mais où ils ont mis ce satané bloc de redstooone !!??

J'en ai 348 stacks complets, tiens, cadeau !-->:cool:3:flowerred:17:p<-- Oh merki que c'est gentil <<<3

Je suis pas Cueilleur de roses pour rien, hein, ;).