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.

0voto

ThatGuy124816 Points 11

À partir de la version 1.12, vous pouvez faire @e[type=!Player,type=!Sheep,r=10]. Cela fonctionne car il vérifie d'abord s'il s'agit d'une entité autre qu'un joueur, puis il vérifie s'il s'agit d'une entité autre qu'un mouton. Le rayon vérifie les deux paramètres dans le rayon donné. La syntaxe est correcte car la virgule sépare les datatags et juste !Player ou !Sheep ne fonctionnerait pas.

0voto

Bob Points 1

Une façon intéressante de faire cela que j'ai découvert aujourd'hui est de créer un type d'entité personnalisé. Autant que je puisse en juger, il ne peut pas inclure de données NBT cependant.

Créez un datapack avec un fichier .JSON dans ce chemin de fichier,

datapacks\Exemple 1\data\exemple_2\tags\types_entités\exemple_3.json

remplacez "exemple" comme bon vous semble et mettez ceci dans le fichier.

{
  "values":[
    "minecraft:player",
    "minecraft:item"
  ]
}

Ensuite, utilisez le nouveau sélecteur de cible.

/kill @e[type=#exemple_2:example_3]

ou utilisez plutôt celui-ci..

/kill @e[type=!#exemple_2:exemple_3]

Étant donné que le jeu a très peu de types d'entités par défaut, j'en ai créé un tas aujourd'hui comme hostile, hostile_nether, zombies, undead, etc.. et vous pouvez même ajouter aux types vanille en changeant "exemple_2" en "minecraft" et "exemple_3" en un type d'entité existant. J'ai ajouté des vex au vanille "#minecraft:raiders" en faisant cela parce qu'ils sont de loin le danger principal d'une attaque et tuer l'évoqueur ne les tue pas immédiatement.

Je suis une arrivée très tardive mais c'est mieux que les astuces de tableau de bord de nos jours et cela pourrait être utile pour quiconque tombe dessus.

-2voto

Don King Points 131

Une façon beaucoup plus facile de faire cela est d'utiliser cette commande:

/kill @e[type=!Joueur,r=20] . Le point d'exclamation signifie tuer tout sauf le type d'entité ciblé. Vous pouvez mettre cela sur une horloge redstone et cela fonctionne très bien. J'espère que cela vous a aidé! :) P.S. vous pouvez mettre autant d'entités que vous voulez dans la commande. Faites simplement ceci: /kill @e[type=!Joueur,!Mouton,r=20]

-2voto

Egor Hans Points 473

Comme d'autres me l'ont expliqué plus tard, la véritable raison est que les restrictions du même genre s'écrasent mutuellement. Désolé, je ne peux m'empêcher d'essayer d'utiliser la logique pour répondre à des questions auxquelles je ne connais pas la réponse, perdant de vue que les choses ne sont généralement pas aussi logiques que je le pense.


Réponse originale :

Je ne cible pas fréquemment les entités, mais en partant de la réponse fausse de mineguy1009, je pense ce qui suit :

La réponse échoue probablement car c'est interprété comme [type = Joueur ET type = Villageois], ce qui bien sûr n'a pas de sens (ce n'est pas exactement une absurdité en soi, en réalité c'est une approche tout à fait raisonnable car la virgule suggère que ce serait [type = Joueur OU type = Villageois]).

Cependant, comme vous faites une négation, c'est exactement ce dont vous avez besoin : [type=!Joueur, type=!Objet] devrait être interprété comme [type != Joueur ET type != Objet]. Si vous voulez que les entités soient de l'une ou l'autre catégorie d'un groupe, intuitivement cela devrait être [![type=!,type=!,...],]. Si cela ne fonctionne pas, vous pourriez toujours opter pour des groupes inversés, ce qui deviendrait cependant terriblement long (car vous devez lister littéralement chaque entité qui ne doit pas être dans votre groupe).

Si cette réponse échoue également, cibler les entités est, ouais, wat.

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