Disons que je veux avoir une commande qui s'applique à tout le monde sur un serveur sauf 2 personnes. Existe-t-il un sélecteur de cible pour cela ?
Réponses
Trop de publicités?Pour faire un sélecteur tout sauf cible, vous devez ajouter un point d'exclamation ( !) devant le nom de l'élément exclu de la commande.
Par exemple, la commande
/testfor @a[name=!IfThenElse]
retournerait vrai si un joueur autre que le joueur portant le nom IfThenElse est en ligne lorsque la commande est exécutée. Pour modifier cette commande, il suffit de remplacer le nom IfThenElse par un autre nom d'utilisateur.
Avec le tout-mais vous pouvez faire une entité efficace plus claire :
/kill @e[type=!Player]
Cela tuerait toutes les entités (chariots de mines, mobs, objets abandonnés) sauf les joueurs.
Cependant, étant donné que vous ne pouvez sélectionner qu'un seul nom de tout-monde, le tableau d'affichage doit être utilisé.
Commencez par utiliser la commande
/scoreboard objectives add testnot dummy
et mettre testnot à 1 sur les joueurs que vous ne voulez pas voir affectés par une commande quelconque :
/scoreboard players set IfThenElse testnot 1
Remplacer IfThenElse par un nom d'utilisateur. Ensuite, vous pouvez exécuter une commande avec le sélecteur de cible @a[score_testnot=0]
ce qui affecterait tout le monde sauf les joueurs dont le score de testnot est fixé à 1.
Je vais être surpris si j'ai la bonne syntaxe de commande. Modifiez si nécessaire.
Les sélecteurs de cibles normaux ne peuvent pas sélectionner 2 personnes spécifiques, la solution est d'utiliser un tableau d'affichage pour marquer les joueurs.
Mise en place :
/scoreboard objectives add Selector dummy
Horloge :
/scoreboard players set @a[name=<Name of Target>] Selector 1 //One of these commands per person
/scoreboard players set @a[score_Selector_min!=1] Selector 0
Sélecteur :
@a[score_Selector=0] to select non selected
D'après ce que les gens ont dit et mes propres recherches, voici la façon la plus simple de procéder :
-
Mettez en place un tableau de bord, appelé par exemple ExcludeSelection :
/scoreboard objectives add ExcludeSelection dummy
-
Mettez les joueurs que vous voulez exclure à 1 dans ce tableau d'affichage :
/scoreboard players set <username> ExcludeSelection 1
(faites ceci pour chaque joueur que vous voulez exclure) -
Ajoute 0 aux scores de tous les joueurs (en gros, cela ajoute les joueurs qui ne sont pas sur le tableau des scores au tableau des scores sans perturber les valeurs existantes) :
scoreboard players add @a 0
(dans une boucle, peut-être un horloge du bloc de réglage ) -
Et ensuite pour sélectionner tous les joueurs sauf ceux que vous voulez exclure, il suffit d'utiliser :
@a[score_ExcludeSelection=0]
Je l'utilise personnellement pour empêcher quiconque, à l'exception des copropriétaires du serveur ( moi et mon ami) d'utiliser le mode créatif. Juste parce que j'en ai envie, voici ce que je pense faire en plus des quatre premières étapes.
Dans une horloge setblock, je vais mettre tell @a[score_ExcludeSelection=0,m=1] You are not allowed to use creative mode.
dans un bloc de commande, et dans un autre, gamemode @a[score_ExcludeSelection=0,m=1] survival
.