CommandBlock Affecter un nombre précis d'entités avec l'argument c

Team Purple

Architecte en herbe
2 Janvier 2015
17
2
63
10
Bonjour à tous, je suis Zehioggy de la Team Purple et dans ce tutoriel je vais vous parler de l'argument c. Vous trouverez à la fin le tuto vidéo que j'ai sorti sur la chaîne de la Team Purple.
Si vous souhaitez simplement voir des exemples d'utilisation, vous pouvez regarder la vidéo à 4:30.

Ce tutoriel permettra de répondre à différentes problématiques comme :
- Pourquoi la commande "/tp @p @e[type=cow]" ne fonctionne pas toujours ?
- Comment effectuer une commande sur l'entité la plus proche ?
- Comment affecter 3 joueurs par une commande s'il y en a plus dans le monde ?

Où de manière plus générale :
- Comment affecter un nombre précis d'entités ?

Comme je vous l'ai dit nous allons utiliser l'argument c. Mais qu'est-ce qu'un argument se demande peut-être certains? C'est une variable que l'on rajoute pour affiner les sélecteurs (@p, @r, @a ou @e).
Code:
/testfor @e[type=cow,name=Albert,score_points_min=7,r=5]
Par exemple dans la commande ci-dessus, le sélecteur est @e et les arguments sont type, name, score_points_min et r. Cette commande a pour effet de tester la présence d'une vache nommée Albert ayant un score minimal de 7 dans l'objectif points et ce dans un rayon de 5 blocs.

Mais l'argument c alors à quoi sert-il ?
Il permet d'affecter la commande à un certain nombre d'entité. Par exemple c=2 permet de viser 2 entités.
Mais ce n'est pas tout, ce ne sont pas n'importe quels entités qui sont choisies, cela dépend du sélecteur :
- @p[c=n] : Les n joueurs les plus proches
- @e[c=n] : Les n entités les plus proches
- @r[c=n] : n joueurs au hasard
- @a : aucun intérêt

Vous l'aurez compris pour affecter un nombre précis d'entité, il suffit de rajouter l'argument [c=n]. Ce tutoriel est donc très simple. Cet argument ne sert pas forcément très souvent, mais il reste important et il faut au moins le connaître.

Il y a une autre chose qui est très importante avec c. Si vous donnez à cet argument une valeur négative, cela aura pour effet d'affecter les entités les plus loin (seulement pour @e et @p).

Voici quelques exemples pour résumer tout cela :
Code:
/effect @e[c=6] glowing 5 1
Cette commande donne l'effet de glowing 1 pendant 5s aux 6 entités les plus proches.

Code:
/scoreboard players add @r[c=3] points 1
Cette commande ajoute 1 au score de 6 joueurs au hasard dans l'objectif points.

Code:
/say @p[c=-1]
Cette commande donne le nom du joueur le plus loin.

Il y a une chose importante à savoir quand on parle de "plus proche" ou "plus loin", cela correspond à la distance par rapport à l'endroit où est exécutée la commande. Si vous tapez la commande dans le tchat, ce seront les plus proches ou loin de vous. Si c'est un command block qui effectue la commande, c'est par rapport à ce command block.
Si vous voulez que ce soit une entité vous pouvez utiliser la commande /execute comme ci-dessous :
Code:
/execute @e[type=squid,name=Bernard,c=1] ~ ~ ~ /say @p[c=-1]
Cette commande donne le nom du joueur le plus loin du poulpe du nom de Bernard le plus proche (oui cela peut vite devenir compliqué).

Il reste une question à laquelle je n'ai pas répondu, pourquoi la commande ci-dessous ne fonctionne pas toujours ?
Code:
/tp @p @e[type=cow]
C'est cette question qui m'a donné l'idée de faire ce tutoriel. Dans une vidéo, Aypierre cherchait des vaches et en commentaire quelqu'un a proposé (pour rire) d'utiliser la commande ci-dessus. Un autre joueur a répondu que cela ne fonctionnait pas. En effet s'il y a plusieurs vaches la commande ne fonctionne pas puisqu'on ne sait pas à quelle vache se téléporter.
Ce joueur a donc proposé cette commande en solution :
Code:
/tp @e[type=cow] @p
Cette commande a pour effet de téléporter toutes les vaches sur le joueur le plus proche, mais cela est très contraignant et n'est pas forcément ce que l'on recherche.

Puisque des gens ne connaissent pas cet argument, il fallait donc faire un tutoriel sur le sujet. :)
Voici donc la commande qu'Aypierre aurait pu utiliser :
Code:
/tp @p @e[type=cow,c=1]

C'est la fin de ce tutoriel, j'espère qu'il est clair et complet, vous pouvez jeter un oeil à la vidéo ci-dessous si vous le souhaiter et au reste de la chaîne. Bonne journée/soirée/nuit à tous ! <3

Vidéo :