Résolu Obtenir la rotation négative seulement

...

Architecte en herbe
13 Mars 2016
71
9
97
28
Bonjour, bonjour,

Je suis dans une petite impasse car je cherche à obtenir la rotation négative seulement pour les joueurs. Je m'explique : j'ai quelques commandes block qui obtiennent la rotation de chaque joueurs pour savoir dans quelle direction ils regardent (commande : execute store result score @p rotation data get entity @p Rotation[0] 1 (dans un CB repeat). Avec ça j'ai donc un scoreboard qui me donne la valeur de son regard pour l'axe x. Le problème c'est que j'ai un double 360 degré en positif et en négatif et ayant créé le gros du système de ma map sur les valeurs négatives j'aimerai si possible ne pas avoir à recommencer. Je me demandais donc si il était possible de faire un mini système un deux trois commandes blocs grand max par joueur (12 joueurs max sur la map). J'ai déjà essayer de passer par un scoreboard dit test qui regardais si la valeur était positive ou négative. Si elle était négative elle intégrait la valeur dans le score rotation sinon elle lui enlevait 360 pour la prendre. Malheureusement dès que je passe ne valeur positive, le score rotation bug est ne me met que la dernière valeur obtenue. J'ai l'impression que c'est un problème de tick car le CB data get entity est trop rapide pour que les autres prennent la nouvelle valeur modifiée.

Merci d'avance à ceux qui ont tout lu, j'espère avoir été assez clair.

La bonne journée.
 

Oromis

Command-blocker slimesque
Staff
Modérateur
Support
11 Février 2014
3 345
2
1 053
297
24
Bretagne
Hey !
Je t'avoue ne pas trop comprendre ton soucis ^^'
As-tu un exemple de "fonction" illustrant ce que tu veux faire ?
Genre, si j'ai 15 alors je veux -15, si j'ai -15, je veux -15, si j'ai 30 je veux -30 etc
 

...

Architecte en herbe
13 Mars 2016
71
9
97
28
Je me disais bien aussi que j'étais pas très clair haha

Alors je vais te donner le contexte global pour bien resituer. En gros je construit une map loup garous pour 12 joueurs. Donc chaque joueur à un emplacement et ne bougeras pas de la partie. Sous chaque emplacement il y a un CB repeat tjrs actif qui prend le data rotation pour l'intégrer au scoreboard rotation qui me servira pour mon système plus tard. Si le joueur tourne la tête on a donc un score de rotation qui peut aller de -360 à 360. Le problème est que j'ai construit mon système pour savoir quel joueur est visé par quel joueur avec des plages de scores négatifs comme par exemple : execute if entity @p[scores={carrot=1}] if entity @p[scores={-360..-340}] run patati patata. En sachant que le score de carrot est la détection d'utilisation du carrot on a stick (donc du clique droit en soit). Sauf que du coup les valeurs positives ne sont pas prises en compte et je n'ai pas envie de demander à chaque joueur de tourner sur eux même 10 fois pour être sûr d'avoir que des valeurs négatives. Donc j'aimerai pour créer un système plutôt court pour éviter d'avoir à refaire mon gros système de détection pour les valeurs positives. Exemple : si le joueur a un socre de rotation de -34, il est gardé; si le joueur a un score de 34 alors il faut lui enlever -360 pour avoir l'équivalent en négatif soit -326.

J'espère que c'est déjà un peu plus clair ^^
 

Oromis

Command-blocker slimesque
Staff
Modérateur
Support
11 Février 2014
3 345
2
1 053
297
24
Bretagne
Et tu ne peux pas passer par un sélecteur ?
Genre :
Code:
scoreboard players remove @a[scores={Rotation=0..}] Rotation 360
 
  • J'aime
Reactions: ...

...

Architecte en herbe
13 Mars 2016
71
9
97
28
C'était donc si bête ? J'avais pas pensé à ça...
Bah merci bcp en tout cas x)
 
  • J'aime
Reactions: Oromis