3 votes

Comment créer une entité qui peut être liée au joueur qui l'a créée dans Minecraft 1.13 ?

Je travaille sur un mini-jeu dans la version 1.13 et j'essaie de créer une commande qui s'exécute à la position d'un joueur et y fait apparaître un nuage à effet de zone. J'y suis parvenu mais j'ai également besoin que ce nuage d'effet de zone soit créé avec un tag ou quelque chose (ou un score, etc.) qui peut le lier au joueur qui a été utilisé pour le créer. J'ai essayé une commande qui est censée donner au nuage d'effet de zone le nom du joueur en tant qu'étiquette mais cela ne semble pas fonctionner :

/execute as @a[team=Alive,scores={ReadyToPlant=3,Sneak=1..,PlantedPotato=0},nbt={SelectedItem:{id:"minecraft:stripped_birch_wood"}}] at @s run summon area_effect_cloud ~ ~ ~ {Duration:2147483647,CustomName:"{\"text\":\"SpawningPotato\"}",Tags:["{\"text\":\"@s\"}"]}

1voto

IHaveQuistion Points 41

Vous pourriez essayer de créer une chaîne de commande où, une fois que le nuage à effet de zone a été créé, il convoque une entité permanente, immobile, indestructible et invisible, comme une armure, à côté, en dessous ou au-dessus du nuage à effet de zone, qui possède une étiquette et qui peut ensuite activer un bloc de commande avec la séquence :

exécuter si l'entité @e[type=armor_stand,tag=...] run ...

Je ne sais pas si ça va marcher ou aider mais j'espère que oui.

1voto

MegaCrafter10 Points 2445

Le meilleur moyen auquel je pense est d'attribuer un identifiant unique à chaque joueur utilisant le système de tableau d'affichage, puis de copier cet identifiant dans le nuage de zones d'effet.

Pour mettre en place ce système, créez les objectifs suivants :

/scoreboard objectives add index dummy

/scoreboard objectives add global_temp dummy

initialiser l'index global : /scoreboard players set global index 1

et ensuite, collez-les dans une chaîne de blocs de commande (blocs de commande à 1 répétition et à 3 chaînes) :

enter image description here

execute as @a unless entity @s[scores={index=1..}] run scoreboard players set @s index 0

execute store success score global global_temp run scoreboard players operation @a[limit=1,sort=arbitrary,scores={index=0}] index = global index

execute if score global global_temp matches 1 run scoreboard players add global index 1

scoreboard players reset global global_temp

voici comment le système fonctionne. Lorsqu'un joueur nous rejoint, la valeur de l'index global est copiée dans l'objectif d'index des joueurs. Ensuite, la valeur de "global_index" est augmentée de 1 afin que le prochain joueur qui nous rejoint obtienne un nombre plus élevé que le joueur précédent. Le premier joueur aura un indice de 1, le second un indice de 2 et ainsi de suite...

maintenant vous pouvez stocker l'index du joueur dans le nuage de la zone d'effet comme ceci :

/execute as <area_of_effect_cloud> store result score @s index run scoreboard players get @p[distance=..5,limit=1,sort=nearest] index

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