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
C

Compte supprimé

Invité
Bonjour à tous, j'aurais besoin d'aide. Je voudrais savoir comment générer aléatoirement des structures prédéfinies. J'ai penser à utiliser les structures blocks, mais comment en choisir une au hasard. Cela me servirait pour la conception d'une map parcours infinie, il y aura une vingtaine de paternes qui se suivront aléatoirement. Merci d'avance pour toute aide, en espérant avoir été clair.


Génération aleatoire de ce type=
https://forum.minecraft-france.fr/threads/jump-gems-quest-ii.23494/
 
En sois, tu ne peux pas :/
Ce que je te recommande, c'est de faire un randomizer qui pose ton structure block avec le nom de ta structure prédéfini dedans ^^
 
En sois, tu ne peux pas :/
Ce que je te recommande, c'est de faire un randomizer qui pose ton structure block avec le nom de ta structure prédéfini dedans ^^
En gros a chaque fin de paterne je pose automatiquement un structure block au hasard ?? Si oui, c'est faisable avec des armors stands ???
 
Oui, bien sûr ;)
D'accord, dernière question comment faire le "randomizer" pour placer au hasard un des structures block? Explication rapide ou lien d'un tuto si vous en conaissez car je n'ai rien trouvé. MERCI SINON POUR CETTE AIDE!
 
Il faudrait d'abord que tu me dises ton niveau en command block et la façon dont tu veux procédé pour faire apparaître ta structure de façon à ce que je puisse t'aider plus facilement ;)
 
  • J'aime
Reactions: Compte supprimé
Il faudrait d'abord que tu me dises ton niveau en command block et la façon dont tu veux procédé pour faire apparaître ta structure de façon à ce que je puisse t'aider plus facilement ;)
Je pense me débrouiller à peu près en cb (même si je n'ai pas un niveau exceptionel) donc je pense comprendre tes futures explications ;D Sinon je pensais détecter avec un armorstand + scoreboard quand le joueur s'en approche de 2 blocs par exemple et ainsi générer la parcelle suivante et tp le mêmé armorstand de x(longueur des parcelles qui me reste à définir) blocs en avant (axe z ou x) en répétant la procédure indéfiniment. Le problème ce pose donc ici: quand je détecte le joueur comment choisir aléatoirement un des structures blocks pour le placer et l'activer.
Merci encore pour tes explications à venir ;DDDDDDDDDDDDd
 
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'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 ;)
Tout d'abord un grand MERCI; je te tiens au courant!