Commande /tp

Tristan Habémont

Aventurier
3 Août 2016
6
0
2
34
Bonjour sur mon serveur mc j'ai créer un systeme d'échange redstone et dans ce systeme a un moment il y a des commande block qui s'active et j'aimerais que vous m'aidier a trouver 2 commandes

La premiere : téléporter le joueur le plus près au 2e joueurs le plus près

La deuxieme: téléporter le 2e joueur le plus proche au joueur le plus proche

Merci d'avance :merci
 
La commande que tu vas devoir utiliser est assez basique : le tp [joueur] [joueur].
Pour sélectionner le joueur le plus proche, tu peux remplacer son pseudo par le sélecteur @p. Le problème, c'est que tu ne peux pas directement repérer le deuxième joueur le plus proche. Tu dois donc faire comprendre à ton command block que tu veux le plus proche, mais pas celui qu'on a détecté juste avant. Tu dois donc spécifier que ce n'est pas lui que tu veux, en lui donnant un score ou un tag qui permettra de le reconnaître.

Le moins bien fonctionne en 1.4 et plus :
Tu dois dans un premier temps créer un objectif, avec cette commande que tu n'exécutes qu'une seule fois :
Code:
/scoreboard objectives add [NomDeScore] dummy
Maintenant, dans ton premier command block, tu dois donner un score à tout le monde pour que les command blocks suivants s'y retrouvent :
Code:
/scoreboard players set @a [NomDeScore] 0
Dans le second command block, tu donnes un score différent au joueur le plus proche pour le distinguer :
Code:
/scoreboard players set @p [NomDeScore] 1

Le meilleur fonctionne en 1.9 et plus :
Dans celui-ci, tu mets simplement un tag au joueur le plus proche :
Code:
/scoreboard players tag @p add [NomDeTag]

A partir de là, tu peux différencier le plus proche et le deuxième plus proche.
Le plus proche : @p
Le second plus proche : @p[score_[NomDeScore]=0] ou @p[tag=![NomDeTag] selon la méthode que tu as utilisée juste avant.

Dans la première méthode, les scores sont tous remis à zéro quand tu relances le système, et dans la seconde, tu dois retirer le tag après l'opération pour éviter une confusion quand la machine sera relancée :
Code:
/scoreboard players tag @a[tag=[NomDeTag]] remove [NomDeTag]

A la fin, tu as donc ceci :
Code:
/scoreboard players set @a PlusProche 0
Code:
/scoreboard players set @p PlusProche 1

Code:
/tp @p @p[score_PlusProche=0]
/tp @p[score_PlusPorche=0] @p

Ne pas oublier de taper une fois :
Code:
/scoreboard objectives add PlusProche dummy
Code:
/scoreboard players tag @p add PlusProche
Code:
/tp @p @p[tag=!PlusProche]
/tp @p[tag=!PlusProche] @p
Code:
/scoreboard players tag @a remove PlusProche
 
J'ai essayer votre méthode mais je n'ai pas tres bien compris alors je voudrai vous montrez plus précisément en image

/!\ ATENTION sur les images j'ai mis des mob mais en vrai sa sera des vrai joueurs.
echange 1.png



echange 1,5.png



echange 2.png


echange 3.png


J'éspère que vous pouvez m'aider et je vous remercie de votre aide !:merci
 
Le problème est que le @p s'applique aux joueurs et non aux animaux...
 
Oui clen23 c'est pour sa que j'ai précisez que sur les images se sont des animaux mais en vrai sur mon serveur se sera des vrai joueur j'ai juste simplifié
 
J'explique les commandes à utiliser pour la 1.9+ :
"/scoreboard players tag @p add PlusProche" ajoute l'étiquette "PlusProche" au joueur le plus proche.
"/tp @p @p[tag=!PlusProche]" téléporte le joueur le plus proche vers le joueur ne possédant pas l'étiquette "PlusProche" le plus proche.
"/tp @p[tag=!PlusProche] @p" fait l'inverse.
"/scoreboard players tag @a remove PlusProche" enlève l'étiquette "PlusProche à tous les joueurs.
Note que ces commandes doivent être placées à la suite dans une chaîne de blocs de commande en mode "répétition" ou actionnée régulièrement par une boucle de pierrouge.