Demande de vidéo/tutoriel

Raphew

Massacreur de Mouton
10 Août 2018
46
0
21
20
Bonjour, j'aimerais savoir si vous connaissez une bonne vidéo ou un bon tutoriel qui explique comment créer des particules en spigot, avec des effets de particules variées (cerce autour du joueur, "fumée" verte qui suis le joueur...).

Merci à vous ! Cordialement, raph.
 

Wanou067

Fondateur de MazeCity et MazeCraft
16 Juillet 2016
71
1
48
mazecity.fr
Alors je ne connais pas de tuto pour faire ca, en tout cas pas en français, mais par contre je pense qu'avec quelques recherches, tu pourrait trouver un plugin qui correspond à tes attentes. Si cela n'est pas le cas, tu peux utiliser SkriptMC, et créer un skript pour cela (si tu ne sais pas le faire skript mc ont un forum ou tu peux être aidé)
 

Raphew

Massacreur de Mouton
10 Août 2018
46
0
21
20
Salut !
Je ne cherche pas un plugin, je cherche comment faire le plugin, merci quand même pour ta réponse, et un tuto en anglais est très bien, merci !
 

DiscowZombie

Développeur
Staff
Modérateur
Support
2 Mars 2017
2 659
1
931
298
Alsace
www.discowzombie.fr
Salut,

sais-tu déjà développer en Java ? As-tu déjà des connaissances de l'API que tu vas utiliser (Bukkit a priori) ? Car si ce n'est pas le cas, il faudrait déjà commencer par cela.

Ensuite des particules c'est quasi-exclusivement des mathématiques (de la trigonométrie en l’occurrence). Lorsque tu as ta formule, il suffit de l'appliquer dans un Runnable (Bukkit.getScheduler().runTaskTimer() par exemple) et de jouer les particules au bon endroit avec Player#
playEffect
. Il ne faut presque aucune connaissance en l'API (Bukkit), mais il te faut connaitre le Java et avoir ta formule pas loin !
 

Raphew

Massacreur de Mouton
10 Août 2018
46
0
21
20
Salut ! Oui je sais évidemment développer en Java et je connais l'api spigot, c'est juste niveau formule que ça bloque, je suis pourtant bon en math mais créer et appliquer des formules j'arrive pas, mais merci à toi !
 

Frivec

Mineur des cavernes
10 Octobre 2018
54
11
28
Quelque part
twitter.com
Salut ! Oui je sais évidemment développer en Java et je connais l'api spigot, c'est juste niveau formule que ça bloque, je suis pourtant bon en math mais créer et appliquer des formules j'arrive pas, mais merci à toi !

Bonjour :)

Pour ce qui est des particules, DiscowZombie t'a bien expliqué comment les utilisé et dans quel cadre, je vais passer directement aux maths.

Pour un cercle autour du joueur, je vais te donner une formule pour faire un cercle constant autour du joueur.
Tu vas devoir utiliser les propriétés du cercle trigonométrique.

- A chaque tour de Runnable, tu dois définir le centre du cercle, la location du joueur par exemple.
- Ensuite, tu dois définir un cercle avec des degrés. Un cercle fais 360 degrés donc tu dois créer une boucle for allant de 0 à 360 degrés.
- A l'intérieur de cette boucle, tu dois convertir les degrés en radians. En effet, on n'utilise le cercle trigonométrique et ses propriétés qu'avec les radians, et non les degrés. Java te facilite la conversion car il existe une fonction de la classe Math qui te fais la conversion. Tu dois donc utiliser Math#toRadians avec comme paramètre les degrés.
- Toujours à l'intérieur de la boucle, tu dois à présent définir tes points x et z. On sait grâce au cercle trigonométrique qu'un point de l'axe des abscisses vaut le cosinus de l'angle et qu'un point de l'axe des ordonnées vaut le sinus de l'angle. Donc pour obtenir des points, tu utilises les fonctions Math#cos et Math#sin avec comme paramètres tes radians. N'oublie pas d'ajouter le x et le z de la location d'origine au résulat, sinon ton cercle sera centré en 0 0.
- Les calculs sont terminés. Maintenant, créé une nouvelle Location avec tous tes paramètres. Le monde la location d'origine, le x calculé, le y de la location d'origine et enfin le z calculé.

Maintenant, affiche tout grâce aux particules et à la méthode que DiscowZombie t'a donné :)
 

Raphew

Massacreur de Mouton
10 Août 2018
46
0
21
20
Salut, merci énormément pour tes explications je comprends mieux maintenant, dernière petite chose, il y a pas un logiciel ou un site qui aide pour tout ce qui est formule ? en exemple si je rentre une formule il va me tracer une courbe, comme dans ton exemple il va me tracer un cercle.
Je n'ai pas trop compris la dernière parie de ton commentaire, pour créer une nouvelle location et tout, est-ce que tu aurai un code d'exemple pour que je comprenne mieux ?
Merci encore, cordialement raph.
 
Dernière édition:

Frivec

Mineur des cavernes
10 Octobre 2018
54
11
28
Quelque part
twitter.com
Salut, merci énormément pour tes explications je comprends mieux maintenant, dernière petite chose, il y a pas un logiciel ou un site qui aide pour tout ce qui est formule ? en exemple si je rentre une formule il va me tracer une courbe, comme dans ton exemple il va me tracer un cercle.
Je n'ai pas trop compris la dernière parie de ton commentaire, pour créer une nouvelle location et tout, est-ce que tu aurai un code d'exemple pour que je comprenne mieux ?
Merci encore, cordialement raph.

Salut,

Pour les aides, je te conseille de regarder les notions dont tu as besoin (la trigonométrie par exemple). Si jamais tu as besoin d'une fonction qui dépend un x et d'un y, je te conseille Géogebra, qui fonctionne possède une calculatrice graphique. Tu rentres ta fonction et tu obtiens une courbe représentative. Pour les cercles, il te faudra une équation de cercle par contre.

Pour l'exemple que je t'ai donné, c'est la logique du cercle trigonométrique appliquée directement, sans passer par une formule bien précise. C'est de l'algorithmie justement ;) Je te conseille de faire les tests par toi-même directement en jeu, ça ne prend pas beaucoup de temps à faire. Je te conseille quand même de faire une méthode qui prend en paramètre une Location et un type de particule, ça te permettra d'aller plus vite pour tes tests en évitant de retaper tout le temps le même code pour l'affichage des particules.

Pour ce qui est d'un exemple, je t'invite à d'abord essayer de le faire toi-même. Je vais mettre mon code en spoiler. Essaye de faire toi-même le code, et si jamais tu bloque vraiment, regarde le code source pour t'aider. C'est comme ça qu'on apprend :) Pour ce qui est de la dernière partie de mon explication, elle consiste juste à créer une nouvelle instance de Location avec les paramètres que tu as calculé précédemment.

Code:
final Location point = new Location(origin.getWorld(), x, origin.getY(), z);
avec origin qui correspond à la Location du joueur par exemple.

Voilà le code source:
Code:
                    Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
                       
                        @Override
                        public void run() {
                           
                            final Location origin = player.getLocation();
                           
                            for(int r = 0; r < 360; r++) {
                               
                                final double radians = Math.toRadians(r);
                                final double x = Math.cos(radians) + origin.getX(),
                                            z = Math.sin(radians) + origin.getZ();
                               
                                final Location circleLocation = new Location(origin.getWorld(), x, origin.getY() + 1.75, z);
                               
                                origin.getWorld().spawnParticle(Particle.FLAME, circleLocation, 0, 0, 0, 0, 0);
                               
                            }
                           
                        }
                    }, 0, 1);

J'espère t'avoir aidé,
Cordialement, Frivec.
 

Raphew

Massacreur de Mouton
10 Août 2018
46
0
21
20
Hey !
Merci pour ton code, j'avais à peu près pareil niveau code mais j'ai toujours le même problème, après le "
Bukkit.getScheduler().scheduleSyncRepeatingTask" il y un problème pour le "this" dedans, je suis obliger de cast Plugin avant mais j'ai une erreur qui dit qu'il n'arrive pas à cast, blablabla...

Voici mon code et voici l'erreur, si quelqu'un peut m'aider, merci !

Code : https://pastebin.com/bvyY46hG
Erreur : https://pastebin.com/ib0QbYNK
 

Frivec

Mineur des cavernes
10 Octobre 2018
54
11
28
Quelque part
twitter.com
Hey !
Merci pour ton code, j'avais à peu près pareil niveau code mais j'ai toujours le même problème, après le "
Bukkit.getScheduler().scheduleSyncRepeatingTask" il y un problème pour le "this" dedans, je suis obliger de cast Plugin avant mais j'ai une erreur qui dit qu'il n'arrive pas à cast, blablabla...

Voici mon code et voici l'erreur, si quelqu'un peut m'aider, merci !

Code : https://pastebin.com/bvyY46hG
Erreur : https://pastebin.com/ib0QbYNK

Le « this » représente l’instance de la classe qui hérite de JavaPlugin. Actuellement, tu essayes de cast une classe qui ne convient pas, c’est donc normal que le serveur te renvoie une erreur de cast.

Tu dois donc mettre à la place de « this » l’instance de ta classe qui hérite de JavaPlugin. J’ai remarqué aussi une autre incohérence dans ta méthode helix. Tu définie deux fois la même variable Player. Je vois que tu as juste copier-coller le code que je t’ai donné dans même l’analyser en corrigeant juste les erreurs données par ton IDE.
Bref, je t’invite à relire ton code, ça peut t’aider.

Cordialement,
Frivec.
 
Dernière édition: