CommandBlock Résolu Generation aleatoire de structure

  • Auteur de la discussion Auteur de la discussion Compte supprimé
  • Date de début Date de début
D'accord, alors, il faut savoir que le système que je te propose n'est pas le plus optimisé, mais il fera le travail ^^"
Ce que je te conseil, c'est de mettre à ton World Spawn des ArmorStands allignés au nombre de X, X représentant le nombre de structure que tu as de différentes.
Ces ArmorStands nous servirons de random par utilisation du sélecteur @r[type=armor_stand].
Au dessus de chacun de ces ArmorStands (supposons un bloc au dessus de sa tête, donc deux blocs au dessus de l'entité), tu peux placer tes structures blocks. N'oublie pas de préciser la structure, et de bien mettre le bon mode, ce sont les structures que l'on clonera à ton ArmorStand qui placera tes structures.
Tu attribues un tag à tes ArmorStands, de façon à les différencier des autres.
Code:
/scoreboard players tag @e[type=armor_stand] add rndStructure
Voilà pour ce qui est des préparations.

Maintenant, pour le tirage aléatoire, tu attribues un tag que tu peux nommer "selected" à un ArmorStand au hasard :
Code:
/scoreboard players tag @r[tag=rndStructure] add selected
Le tirage est fait, on extrait le structure block que l'on clone à un endroit qui nous servira de "point fixe" (vu que la commande clone ne peut pas prendre en paramètre les coordonnées sources d'un ArmorStand A et les coordonnées de destination d'un ArmorStand B), par exemple, le 0 100 0.
Attention à ce que ton point fixe soit bien dans les chunks constamment chargés !
Ce command block est donc en chain, à la suite du précédent qui est en impulse.
Code:
/execute @e[tag=selected] ~ ~ ~ clone ~ ~2 ~ ~ ~2 ~ 0 100 0 replace
De cette façon, ton structure block se trouve aux coordonnées 0 100 0.
Ensuite, tu as juste à faire que ton ArmorStand qui place tes structures le récupère !
Donc, supposons qu'il se nomme "Place", dans ce cas là (en chain) :
Code:
/execute @e[name=Place] ~ ~ ~ clone 0 100 0 0 100 0 ~ ~ ~ replace
Puis l'activer (chain) :
Code:
/execute @e[name=Place] ~ ~ ~ setblock ~ ~1 ~ redstone_block[/clone]
Puis tu finis par le reset de ton système :
[code]/execute @e[name=Place] ~ ~ ~ fill ~ ~ ~ ~ ~1 ~ 0 air replace
Code:
/setblock 0 100 0 air
Et tu retires le tag "selected" de façon à pouvoir faire de nouveau un tirage :
Code:
/scoreboard players tag @e[tag=selected] remove selected

Voilà, tout simplement ! ^^
Bon, je n'ai pas testé, j'ai fais tout ça de tête, mais cela devrait fonctionner ^^"
Il n'est pas compacte, ni optimiser, mais fait le travail en laissant une marge de modification des structures (vu que tu as directement accès aux structure block, que tu peux modifier sans problème), voire d'ajout de nouvelle structures en ajoutant simplement l'ArmorStand, son tag et son structure block !

En espérant t'avoir aidé, si tu as un problème, n'hésite pas ;)
Dès le premier Command block il y a un soucis: il ne trouve pas d'entités avec le tag alors que je leur ai donné le tag ;C PS: je joue en 1.11.2
De plus dans cette commande:
/execute @e[name=Place] ~ ~ ~ setblock ~ ~1 ~ redstone_block[/clone]
Pourquoi à la fin il y a [/clone]?
 
Oups, je me suis trompé, c'est juste la balise code que j'ai mal écrit, n'y fait pas attention ^^"
Sinon, tu es sûr d'avoir mis le tag ?
 
  • J'aime
Reactions: Compte supprimé
Dès le premier Command block il y a un soucis: il ne trouve pas d'entités avec le tag alors que je leur ai donné le tag ;C PS: je joue en 1.11.2
De plus dans cette commande:
/execute @e[name=Place] ~ ~ ~ setblock ~ ~1 ~ redstone_block[/clone]
Pourquoi à la fin il y a [/clone]?
Pareil pour le sélecteur de l'armor stand avec le nom place, je crois que il y a un problème sur les sélécteurs d'armor stands avec tags ou noms.
 
Oups, je me suis trompé, c'est juste la balise code que j'ai mal écrit, n'y fait pas attention ^^"
Sinon, tu es sûr d'avoir mis le tag ?
Oui, j'ai posé manuellement 2 Armor stands et j'ai tapé cette commande: /scoreboard players tag @e[type=armor_stand,r=2] add rndStructure
J'ai la confirmation dans le chat de l'ajout des tags.
Mais le C B ne les détectent pas.
Pareil pour l'autre: /summon armor_stand ~ ~ ~ {CustomName:"place"}
 
Fait cette commande à proximité des armor stands :
Code:
/entitydata @e[r=3] {}
Il y a t-il le tag que tu leur à donné ?
 
  • J'aime
Reactions: Compte supprimé
Les plus courageux, en particulier ceux qui utilisent la version 1.8, pourront utiliser la commande /clone pour copier-coller des structures déjà faites auparavant, et la sélection se ferait à l'aide d'une clock peu gourmande en FPS qui s'arrêtera sur un bloc de commande qui fera apparaître la structure appropriée.

Après, cette technique est longue et pas forcément très optimisée pour une version plus récente. C'est pourquoi l'idée d'Oromis reste sans doute la plus sûre.

Bon redstonage :^)
 
Fait cette commande à proximité des armor stands :
Code:
/entitydata @e[r=3] {}
Il y a t-il le tag que tu leur à donné ?
Oui dans le chat au milieu des lignes de datatag on peut lire:
Tags:[0:"rndStructure"]

Les plus courageux, en particulier ceux qui utilisent la version 1.8, pourront utiliser la commande /clone pour copier-coller des structures déjà faites auparavant, et la sélection se ferait à l'aide d'une clock peu gourmande en FPS qui s'arrêtera sur un bloc de commande qui fera apparaître la structure appropriée.

Après, cette technique est longue et pas forcément très optimisé pour une version plus récente. C'est pourquoi l'idée d'Oromis reste sans doute la plus sûre.

Bon redstonage :^)
Merci
 
Peux-tu m'envoyer la commande qui renvois un "Entité non-trouvé" ?
 
Fait cette commande à proximité des armor stands :
Code:
/entitydata @e[r=3] {}
Il y a t-il le tag que tu leur à donné ?
Pour ce sélecteur c'est moi qui me suis trompé j'ai oublié une maj : /summon armor_stand ~ ~ ~ {CustomName:"place"}

Peux-tu m'envoyer la commande qui renvois un "Entité non-trouvé" ?

/scoreboard players tag @r[tag=rndStructure] add selected
[22:16:23] Entity '@r[tag=rndStructure]' cannot be found
 
Évite le double post ;)
Sinon, il faut que tu ajoutes dans ton sélecteur le type d'entité ^^