17 votes

Comment sélectionner toutes les entités sauf deux types dans Minecraft avec le sélecteur de type?

J'ai posé cette question à un développeur pour Minecraft et j'ai pensé demander ici aussi car ils pourraient ne pas voir la question.

Comment puis-je sélectionner tous les types d'entités sauf deux dans Minecraft ?

Par exemple, quelque chose comme : /say @e[type=![Player,Item],r=50] (pour clarifier j'ai aussi essayé type=Item,Player, type=Item,type=Player, etc)

Devrait sélectionner toute entité qui ne correspond pas aux joueurs ou aux objets, donc des choses comme des Creepers, des Ghasts, des XPOrbs, des PrimedTNT, etc. dans un rayon de 50 blocs et les afficher dans le chat.

A la place, il ignore un des indicateurs, et fonctionne avec l'autre à la place.

20voto

idtownie Points 371

Tout d'abord, créez un objectif de tableau de bord factice :

/scoreboard objectives add selectMe dummy

Ensuite, sur une horloge à redstone rapide, donnez à toutes les entités un score selectMe de 1 :

/scoreboard players set @e selectMe 1

Donnez à tous les joueurs et éléments un score selectMe de 0 avec ces deux blocs de commande :

/scoreboard players set @e[type=Player] selectMe 0

/scoreboard players set @e[type=Item] selectMe 0

Maintenant, vous pouvez les sélectionner en ciblant toutes les entités dans un rayon de 50 blocs qui ont un score selectMe de 1 :

/say @e[score_selectMe_min=1,r=50]

J'espère que cela vous a aidé! :)

7voto

MrLemon Points 17073

Dès Minecraft 1.9, les étiquettes du tableau de bord sont mieux adaptées à cela que de configurer un objectif et attribuer un score.

C'est aussi simple que de configurer des blocs de commande en boucle (ou une ligne de répétition/chaîne) et de mettre:

/scoreboard players tag @e[type=Joueur] add joueurOuObjet
/scoreboard players tag @e[type=Objet] add joueurOuObjet

Vous pouvez ensuite utiliser @e[tag=joueurOuObjet] et @e[tag=!joueurOuObjet] pour sélectionner chaque entité qui est et n'est pas un joueur ou un objet, respectivement.


Les avantages d'utiliser des étiquettes par rapport aux objectifs du tableau de bord sont les suivants:

  1. Pas besoin de configurer un objectif.
  2. Ils sont initialisés comme vides par défaut. C'est-à-dire que @a[tag=!banane] fonctionne sur chaque joueur par défaut, contrairement à @a[score_banane=0]. Cela signifie que vous devez uniquement affecter les cibles que vous voulez réellement affecter.
  3. Les étiquettes sont également stockées dans les données NBT des entités, dans la balise Tags.

4voto

Basit Points 1883

Dès la version Minecraft 1.13 (Édition Java), vous pouvez maintenant utiliser plusieurs sélecteurs pour cibler des entités.

De la Minecraft Wiki:

tag=foo,tag=bar,tag=!baz correspond à quelqu'un avec foo, bar et non baz.

type=!cow,type=!chicken correspond à quelque chose qui n'est ni une vache ni un poulet.

type=cow,type=chicken n'est pas autorisé, car quelque chose ne peut pas être à la fois une vache et un poulet.

Pour les versions antérieures à la 1.13

Vous pouvez utiliser soit idtownie ou celui de l'utilisateur113642, ce dernier n'étant pas testé.

0voto

mineguy1009 Points 19

La manière la plus efficace de sélectionner deux entités spécifiques en une seule fois avec l'argument "type" est de mettre deux arguments "type" côte à côte.

Ex.

@e[type=Player,type=Villager]

Cible uniquement les joueurs et les villageois.

Ex.

@r[type=Player,type=Villager]

Cible uniquement les joueurs et les villageois. Cependant, ce sélecteur de cible choisit une entité aléatoire dans les paramètres spécifiés de l'argument, alors que le sélecteur précédent choisissait toutes les entités qui répondaient aux critères de l'argument.

Cela pourrait se poursuivre indéfiniment jusqu'à ce que vous ayez sélectionné chaque type d'entité dans Minecraft (Cependant, ce serait une perte de temps totale car la même action peut être effectuée avec @e).

Veuillez corriger toute erreur que j'aurais pu faire.

Pour plus d'informations sur les arguments de sélection de cible, veuillez visiter ce message sur le forum Minecraft.

http://www.minecraftforum.net/forums/minecraft-discussion/redstone-discussion-and/command-blocks/2477949-minecraft-pc-target-selectors-and-their-arguments

0voto

Dans Minecraft 1.9, il y a un moyen simple de le faire sans les scoreboards en utilisant des blocs de commande en chaîne. Pour démonstration, je vais tuer toutes les entités qui ne sont pas des joueurs ou des objets.

Premier bloc de commande : execute @e ~ ~ ~ summon ArmorStand ~ ~ ~ {Invisible:1,NoGravity:1}

Cela crée un support d'armure au même endroit que chaque entité. Le premier bloc de commande doit être orienté vers le deuxième bloc de commande.

Deuxième bloc de commande : execute @e[type=Player] ~ ~ ~ kill @e[type=ArmorStand,c=1]

Cela fait que tous les joueurs tuent les supports d'armure qui s'apprêtent à faire quelque chose.

Troisième bloc de commande : execute @e[type=Item] ~ ~ ~ kill @e[type=ArmorStand,c=1]

La même chose qu'au-dessus mais avec les joueurs. Vous pouvez faire cela autant de fois que vous le souhaitez.

Dernier bloc de commande : execute @e[type=ArmorStand] ~ ~ ~ kill @e[c=2] ~ ~ ~

Cela fait que tous les supports d'armure se tuent eux-mêmes et l'entité qu'ils représentent.

Les avantages :

  • Utilise des supports d'armure. Pourquoi pas ?
  • Ne nécessite pas de scoreboards

Les inconvénients :

  • Si une entité meurt/téléporte vers un endroit lointain après que le support d'armure soit invoqué mais avant que les supports d'armure exécutent leurs commandes, certaine entité qui n'est pas censée être tuée sera tuée

Si vous voulez que toutes les entités qui ne sont ni des joueurs ni des objets exécutent une commande, utilisez simplement ceci :

Dernier bloc de commande : execute @e[type=ArmorStand] ~ ~ ~ execute @e[r=1,c=-1] ~ ~ ~

Inconvénients de ceci :

  • Si une entité meurt/téléporte/part hors de la portée en moins de 1 ms, le support d'armure exécutera lui-même la commande

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