2 votes

Comment obtenir la tête d'un joueur au hasard ?

Je veux me donner aléatoirement la tête d'un joueur (@r) sur mon serveur mais je ne sais pas si c'est possible.

Je suis sur Minecraft 1.14.4 et lorsque je place minecraft:give @p player_head{SkullOwner:"@r"} dans un bloc de commande, cela me donne simplement la tête du joueur "@r"

(J'ai aussi constaté qu'en ne mettant pas les guillemets autour du @r dans la commande, la commande ne serait pas valide)

commande give dans un bloc de commande

tête de joueur de @r dans la barre d'outils

2voto

Fabian Röling Points 19325

Vous avez besoin d'une table de butin (archive) et de la commande /loot (archive) pour cela.

Tout d'abord, la table de butin qui donne (ou invoque ou insère ou autre) la tête du joueur sur lequel elle est invoquée.
Structure minimale du fichier datapack :

pack.mcmeta
data
 head_loot
  loot_tables
   head.json

Ici head_loot est un espace de noms arbitrairement choisi, qui est réutilisé dans la commande plus tard. Il en va de même pour head.json, seule l'extension de fichier doit être .json.

Le contenu de pack.mcmeta peut varier en fonction de ce que vous voulez, mais voici un exemple minimal :

{"pack":{"pack_format":3,"description":""}}

Contenu de head.json :

{
 "pools": [
  {
   "rolls": 1,
   "entries": [
    {
     "type":"minecraft:item",
     "name":"minecraft:player_head",
     "functions":
      [
       {
        "function":"fill_player_head",
        "entity":"this"
       }
      ]
    }
   ]
  }
 ]
}

Maintenant vous pouvez créer des têtes de joueurs arbitraires (actuellement en ligne). Il existe plusieurs façons de le faire, celle qui est réellement prévue pour cela est :

/execute as @r run loot spawn ~ ~ ~ loot head_loot:head

Cela s'exécute "comme" un joueur aléatoire, mais pas "à" leur position et invoque une entité d'objet tête de joueur à la position d'exécution (un bloc de commande ou autre).

Assurez-vous que le datapack est activé, cette commande vous le dira :

/datapack list

Si vous venez de changer quelque chose dans les fichiers, utilisez /reload.

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