CommandBlock Système qui respawn un chien au bout d'un certain temps

GalouX

Aventurier
1 Août 2019
1
0
2
28
Bonjour à tous,

J'ai créé une map pour jouer en multi et j'ai cherché un système qui permet de créer son chien. Le joueur choisi ses caractéristiques mais au niveau des commands blocks, comment puis-je faire en sorte à ce que le pseudo du joueur soit écrit dans les commandes pour que le propriétaire du chien soit ce joueur (un truc automatique qui écrit le nom du joueur dans la commande, un truc que je ne doit pas faire moi-même).
Mais ce que je voudrai faire surtout c'est aussi créer un système qui permet de faire respawn le chien lorsqu'il est mort au bout de 10/15 secondes par exemple.
J'y ai réfléchis mais je ne sais pas trop comment m'y prendre. J'ai pensé à le mettre dans une team lorsque la personne créé le chien mais si il change son nom il ne va pas y avoir un problème au niveau des commands blocks ?
J'ai pensé aussi à créer un timer du coup lorsque le chien meurt et ensuite au bout de ce timer faire summon le chien et il se téléportera tout seul vers son maître.
Enfin mes idées ne sont pas claires, une aide me ferai très plaisir. Merci à vous.
Bonne journée.
 

Eglaios

Crétin de la commu
14 Avril 2018
310
42
89
25
Pour assigner un chien à un joueur, je pense qu'il y a le tag "Owner:#nom du joueur#". Si c'est vrai, alors il y a un moyen, mais c'est d'un niveau avancé...

Comme on peut pas mettre "Owner:mad:p", on est obligé de passer par le JSON pour insérer le nom du joueur dans la commande...
Je peux pas dire pour l'instant, sans doute setblock un panneau avec la commande avec le nom de joueur callée avec "selector:mad:p" puis copier le nbt du texte du panneau dans un bloc de commandes et activer ce dernier (niveau TRÈS avancé)...

Sinon, pour le système de repop, je pense mieux savoir (bon niveau requis aussi):

À exécuter manuellement :
/scoreboard objective add DogUUID dummy
/scoreboard players set MaxDogUUID DogUUID 1

À exécuter au summon d'un nouveau chien (@s=le chien) :
/scoreboard players add MaxDogUUID DogUUID 1
/scoreboard players operation @s DogUUID = MaxDogUUID DogUUID

###Avec ça, chaque chien a un score "DogUUID" différent

À exécuter en boucle :
/execute at @s run summon area_effect_cloud ~ ~ ~ {Duration:2,Tags:["DogLifeTester"]}
/scoreboard players add @e[tag=DogLifeTester] DogUUID 0
/execute as @s at @s run scoreboard players operation @e[tag=DogLifeTester,limit=1,sort=nearest,scores={DogLife=0}] DogUUID = @s DogUUID
/execute as @e[tag=DogLifeTester] at @s unless score @e[type=wolf,scores={DogUUID=1..}] DogUUID matches @s DogUUID run summon wolf ~ ~ ~ {CustomName:/"BACK ALIVE/"}



Bon, en gros, ce truc met un score DogUUID différent à chaque chien. Ensuite, chaque tick, chaque chien enregistré invoque un AoE à duration de 2 ticks à ses coords et copie son propre score DogUUID sur celui-ci.
Ensuite, le AoE détecte s'il y a un chien avec un score DogUUID correspondant au sien. S'il n'y en a pas (mort), il invoque un "BACK ALIVE" (tu peux modifier l'évènement, l'AoE conserve les dernières coords du chien).
Comme l'AoE dure 2 ticks, ça lui permet d'être encore là le tick après la mort, où le chien ne peux plus être ciblé.



Beuh... c'est peut-être très mal rédigé...
Enfin bon je suis sur mon tel alors...
Si quelqu'un peut préviser mes propos, ça serait pas mal...