Aller au contenu
blueblasterz

Faire des cercles ?!

Messages recommandés

Bonjour,

Aujourd'hui un code pas du tout opti, pas pratique à utiliser et qui spamme à mort la console, MAIS qui permet de tracer des cercles parfaits (dans la limite de minecraft hein ;) ). Ce code se sert en fait du joueur comme d'un compas:

- le joueur se place PILE au centre d'un bloc (à l'aide d'un tp avec des coordonnées précises)

- il lance une commande avec pas mal d'arguments , et après avoir trouvé automatiquement l'angle de vue correspondant à un rayon donné, le skript fait tourner le joueur sur lui même et change les blocs qu'il regarde pour former un cercle

[spoiler=Mes recherches/ problèmes pour ce skript :3 + explications un peu plus détaillées]

- c'est mieux expliqué dans les commentaires du skript, voici un schéma qui représente mes recherches, au propre :

[ATTACH=full]4207[/ATTACH]

 

Au début, facile ! Je me dit qu'il suffit de calculer cet angle de vue, comme ça on fait en sorte que le joueur ai cet angle de vue, on le fait tourner sur lui même, et puis finis.

SEULEMENT, pour calculer cet angle il faut utiliser la fonction arctangente, ou tangente-1. Elle est présente dans skQuery, mais d'une part le défi c'est de le faire sans addons, et d'autre par... ELLE MARCHE PAS D': (en tout cas chez moi).

Donc j'ai réfléchis, intensément, et finalement j'ai trouvé la solution:

Au début de la commande, le joueur regarde ses pieds, et puis lentement il se redresse. à chaque fois qu'il se redresse un peu, on regarde la position du bloc qu'il observe. On la compare à celle d'un bloc qui devra être sur le cercle. Si la distance entre ces deux positions est inférieure à 1, ça veux dire que ce sont les mêmes, donc que le joueur regarde bien le cercle, donc magnifique, on a trouvé cet angle de vue :D

(Merci à ceux qui auront lu toutes ces explications un peu nulles jusqu'au bout x) )

 

 

A partir de ça j'ai rajouté plusieurs arguments à la commande, qui sont expliqués dans les commentaires du skript, pour faciliter (et raccourcir) la tâche aux joueurs, et voilà :D

On a des résultats plutôt bien réussis, quelques bugs parfois quand le rayon est trop grand (les chunks sont pas générés/trop petite render distance). D'ailleurs si vous comptez faire des cercles de plus (ou égal) de 100 blocs, il faut modifier la config de skript, car par défaut les "targeted block" ne fonctionnent que pour moins de 100 blocs.

[spoiler=Résultats avec un rayon de 50 et de 100][ATTACH=full]4208[/ATTACH]

 

 

J'espère que ça avait pas déjà été fait, mais je crois pas (en tout cas pas sur skript-mc.fr), surtout que je n'ai utilisé au final que skript et aucun autre addon.

Dites moi dans les commentaires si vous avez des conseils pour optimiser ou rendre plus utile mon code, si vous avez des questions etc...

 

Voilà voilà :p

 

[spoiler=Le code]

Contenu masqué

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

[spoiler=Le code]

  • J'aime 2

Partager ce message


Lien à poster
Partager sur d’autres sites
et si tu t'inspirai de ça ...

Contenu masqué

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

Le but principal de mon code est de faire un cercle sans aucun addon en plus de Skript. Je ne cherchais donc pas à faire quelque chose d'optimisé, mais bien à montrer qu'il est possible de faire plein de choses via Skript, sans aucun addon. Ton code est donc intéressent (et bien plus opti que le miens) mais ne correspond pas à ce que je cherchais à faire ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×
×
  • 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.