1 votes

Troubles de la commande de rotation

J'ai consulté quelques autres questions comme celle-ci, concernant la commande rotate, mais aucune n'a répondu à ma question... J'ai la commande :

/execute @e[r=10000] ~ ~ ~ detect ~ ~-2 ~ minecraft:coal_block 0 /tp @p ~ ~ ~ 360 0

Et il fait à peu près exactement ce que je veux qu'il fasse - faire tourner un joueur quand il marche 2 blocs au-dessus d'un bloc de charbon. CEPENDANT, il ne les fait pas pivoter de 360 degrés par rapport à leur position actuelle, mais dans la direction (qui, dans ce cas, est positive y/sud) du bloc de commande avec la commande ci-dessus. Existe-t-il un moyen de contourner ce problème ?

Gracias

0 votes

~360

1 votes

Tu sais que 360 est un cercle complet, n'est-ce pas ? Donc ~360 sera le même que ~ . Vous devrez le configurer pour qu'il se répète x fois et les fasse pivoter de 360/x degrés à chaque fois.

0 votes

Ahha, c'est vrai :P Pourriez-vous me donner un exemple de la commande ? Désolé

2voto

MrLemon Points 17073

Vous devez utiliser une combinaison de coordonnées de rotation relatives et un objectif de tableau d'affichage. Ce dernier consiste à s'assurer que les joueurs ne sont tournés qu'une fois par pas au-dessus d'un bloc de charbon.


Solution à objectif unique fantaisiste

Définissez votre objectif comme suit :

/scoreboard objectives add overCoal dummy

Sur une horloge 20Hz., exécutez les commandes suivantes pour régler le score :

/execute @a[r=10000] ~ ~ ~ detect ~ ~-2 ~ minecraft:coal_block 0 scoreboard players add @a[c=1] overCoal 3
/scoreboard players remove @a[score_overCoal_min=1] overCoal 2
/scoreboard players set @a[score_overCoal_min=3] overCoal 2
/scoreboard players set @a[score_overCoal=-1] overCoal 0

Cela peut sembler déroutant au premier abord, avec l'addition de 3 et la soustraction de 2, mais cela fonctionne. En gros, chaque fois que le joueur se trouve au-dessus d'un bloc de charbon, son score est incrémenté de +3-2=+1, mais seulement jusqu'à un maximum de 2 (3ème commandement). Au moment où le joueur descend, le score diminue de 2 (évitant ainsi la valeur de 1), jusqu'à un minimum de 0 (4ème commande).

Cela signifie qu'après l'exécution de ces 4 commandes, le score est de :

  • 0 si le joueur n'est pas au-dessus d'un bloc de charbon.
  • 1 si le joueur a été au-dessus d'un bloc de charbon pour exactement 1 tic.
  • 2 si le joueur est resté plus longtemps au-dessus du bloc de charbon.

Il ne reste plus qu'à mettre une commande pour faire tourner les joueurs ayant un score d'exactement 1 :

/tp @a[score_overCoal=1,score_overCoal_min=1] ~ ~ ~ ~<R> ~

donde <R> est le nombre de degrés que vous souhaitez faire pivoter le lecteur.


Solution plus simple à 2 objectifs

Si la solution ci-dessus était trop confuse à votre goût, une manière plus intuitive consiste à utiliser 2 objectifs :

/scoreboard objectives add overCoal dummy
/scoreboard objectives add overCoalTime dummy

Sur une horloge 20Hz., exécutez les commandes suivantes pour régler le score :

/scoreboard players set @a overCoal 0
/execute @a[r=10000] ~ ~ ~ detect ~ ~-2 ~ minecraft:coal_block 0 scoreboard players set @a[c=1] overCoal 1
/scoreboard players set @a[score_overCoal=0] overCoalTime 0
/scoreboard players add @a[score_overCoal_min=1] overCoalTime 1

Cette méthode permet d'obtenir les mêmes résultats que ci-dessus, mais pour overCoalTime à la place.

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