Aller au contenu
isharo

[URGENT] Axe de direction (nord, sud, etc..)

Messages recommandés

Bonsoir,

 

Je viens rarement sur ce forum, mais j'ai vraiment besoin d'aide la.

 

Cela fait plusieurs jour que je cherche, et toujours actuellement à faire un système semblable à celui d'Epicube dans les UHC/RUN pour m'amuser avec des amis, mais je n'arrive à rien.

 

Le système est un système qui permet d'indiquer la position du joueur.

 

wBx0bok.png

 

  • Ce que j'ai réussi à faire :

J'ai réussi à faire en fonction de la position du joueur la flèche change de couleur, par exemple s'il est pas trop loin elle devient bleue, si le joueur est très loin, elle devient rouge.

 

  • Ce que je cherche à faire :

Je cherche à faire que la flèche détecte la position du joueur, c'est à dire si le joueur est au nord cela m'indique une flèche menant vers en haut, et pareil pour le reste :

  • Si le la destination du joueur est à des coordonnées vers le Nord, la flèche indiquera "^".
  • Si le la destination du joueur est à des coordonnées vers le Sud, la flèche indiquera "v".
     
  • Si le la destination du joueur est à des coordonnées vers le Est, la flèche indiquera ">".
     
  • Si le la destination du joueur est à des coordonnées vers le West, la flèche indiquera "<".

 

  • Mes recherches actuelles :

- J'ai fait un test pour voir la direction du joueur, mais sans succès.

 

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

 

Si vous arrivez, à me trouver la solution je vous en serais reconnaissant

 

Mes salutations,

Corentin.

Partager ce message


Lien à poster
Partager sur d’autres sites
Bonsoir,

Donc pour résumé tu aimerais mètre les deux coordonnées Y à 0 ?

Pour résumer,

 

Je souhaiterais faire un système qui indique une flèche qui bouge de direction (nord, sud, est, ouest) etc. en fonction de la position du joueur, et qui devient bleue si le joueur est proche du joueur2, et rouge si le joueur est loin.

 

Pour l'instant :

 

La fonction de la flèche rouge et bleue, je l'ai trouvé, je souhaiterais juste que cela calcul uniquement le X et Z et pas le Y.

La fonction de direction de la flèche (nord, sud, etc.) j'ai aucune piste.

Partager ce message


Lien à poster
Partager sur d’autres sites

Alors pour ton premier problème (tenir compte uniquement du X/Z), je peux te conseiller Pythagore, qui te permet d'obtenir la distance sur un plan 2D :

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

Et du coup tu obtiens la distance entre les deux joueurs en prenant juste compte de X et de Z. (quand tu incorpores ce code dans ton script, oublie pas l'incrémentation ^^)

 

Pour la flèche, je réfléchis encore ^^

Partager ce message


Lien à poster
Partager sur d’autres sites
Alors pour ton premier problème (tenir compte uniquement du X/Z), je peux te conseiller Pythagore, qui te permet d'obtenir la distance sur un plan 2D :

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

Et du coup tu obtiens la distance entre les deux joueurs en prenant juste compte de X et de Z. (quand tu incorpores ce code dans ton script, oublie pas l'incrémentation ^^)

 

Pour la flèche, je réfléchis encore ^^

Je ne comprend pas tout, il faut que je fasse comment maintenant avec ce code, pour faire une commande, par exemple /info qui me dit la distance entre le j1 et le j2 ?

 

En tout cas, merci, je n'ai jamais eu à faire à Pythagore ^^

Si tu réussis la flèche, tu es mon sauveur. :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Il y a un peut plus simple,:

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

(Pourquoi utiliser {player2} et non {_player2} ?)

 

Sinon petit indice pour la seconde les rotations reste inchangé dans minecraft.

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a un peut plus simple,:

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

(Pourquoi utiliser {player2} et non {_player2} ?)

 

Sinon petit indice pour la seconde les rotations reste inchangé dans minecraft.

Effectivement c'est plus facile. Merci ! ;)

Pour ton indice, comment ça inchangé ?

Partager ce message


Lien à poster
Partager sur d’autres sites
Simplement la rotation du joueur indique la direction ou il regarde, mais il me semble que skript a une expression qui calcule ça déjà, je vais vérifier ;)

D'accord, merci.

Si tu trouves, tiens moi au courant, car j'ai beau chercher je ne trouve pas les maudites flèches D:

Merci également @JDM de m'avoir aidé, malgré ta solution assez difficile à la compréhension x).

Partager ce message


Lien à poster
Partager sur d’autres sites

Humm petite question, pour ton souci de direction, tu l'actualise par rapport a la direction ou regarde le joueur ?

Du style si le joueur regarde le sud alors que sont pote est au nord alors tu à une flèche "v" ?

Partager ce message


Lien à poster
Partager sur d’autres sites
Humm petite question, pour ton souci de direction, tu l'actualise par rapport a la direction ou regarde le joueur ?

Du style si le joueur regarde le sud alors que sont pote est au nord alors tu à une flèche "v" ?

Exact, et je sais que c'est pas ça qu'il faut faire, j'effectue des tests ^^

 

EDIT

Quelqu'un m'a proposé d'utiliser ce code :

sqrt((y2 - y1)^2 + (x2 - x1)^2),

 

Mais je ne le comprend pas, donc impossible à exploiter.

Partager ce message


Lien à poster
Partager sur d’autres sites

D'acc donc pour commencer il faut récupérer la direction dans la quel regarde le joueur "%facing of player%" ensuite vérifier un part un la distance en ajoutant +1 à X, +1 Z, -1 X et -1 X toujours en partant des coordonnées principal, puis on va vérifier le quel parmi les quatre a un distance plus petite que la distance originel et pour terminer grasse a la rotation on vérifiera a quel facing direction ça correspond :)

 

C'est un peut complexe mais totalement faisable, si j'ai le temps se soir je fait ça.

  • J'aime 1

Partager ce message


Lien à poster
Partager sur d’autres sites
D'acc donc pour commencer il faut récupérer la direction dans la quel regarde le joueur "%facing of player%" ensuite vérifier un part un la distance en ajoutant +1 à X, +1 Z, -1 X et -1 X toujours en partant des coordonnées principal, puis on va vérifier le quel parmi les quatre a un distance plus petite que la distance originel et pour terminer grasse a la rotation on vérifiera a quel facing direction ça correspond :)

 

C'est un peut complexe mais totalement faisable, si j'ai le temps se soir je fait ça.

D'accord merci beaucoup de ton aide :).

 

J'ai un code expérimental (non-testé) à proposer. Là aussi, je pense pas avoir fait dans la dentelle ^^' :

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

 

Comment ça marche ? Pour ceux que ça intéresse, j'utilise la trigonométrie (cosinus et sinus sur le cercle trigonométrique) pour déterminer un encadrement de l'angle entre les deux joueurs.

 

Je te laisse ajuster le message des directions pour indiquer une belle flèche, éventuellement inverser quelques directions (j'ai mis ces directions car elles me semblaient logique mais je pense que quelques ajustements devraient être nécessaires).

Coucou, je test cela et je te dit

 

 

 

En tout, cas merci énormément à vous 2 de m'aider.

Partager ce message


Lien à poster
Partager sur d’autres sites

Après test; @JDM ta solution marche, sauf que n'ayant jamais utilisé de système de ce genre, étant débutant.

Serait t'il juste possible que tu me redonnes le code sans les SO, NO, NE etc.

 

Juste avec : Nord, Sud, Est, Ouest.

 

Et si tu as le temps, et l'envie me décrire ce que fait chaque ligne, pour que je comprenne le code, et comme ça, je sais comment le "reproduire", et l'apprend.

Partager ce message


Lien à poster
Partager sur d’autres sites

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.