Plugin Contrôler une entité et voler avec

LEZIKO

Architecte en herbe
2 Novembre 2021
93
2
69
19
Bonjour/bonsoir,

J'essais de faire un système de monture volante alors je voulais si c'était possible de faire asseoir une monture et qu'il puisse voler avec en là contrôlant (par exemple on reste appuyer sur sa touche de saut pour s'envoler plus haut et on relâche pour redescendre) si c'est possible avec une monture est-ce possible avec autre chose ?

Merci d'avance pour votre aider :)

Cordialement, Kerrian.
 

ShE3py

Enbogueuse
Support
26 Septembre 2015
4 139
163
464
247
21
Mìlhüsa
Bonsoir,

si c'était possible de faire asseoir [un joueur sur] une monture et qu'il puisse voler avec en la contrôlant
Tu peux t'inspirer de ce qui existe déjà ;
https://github.com/Pocketkid2/Ride/...va/com/github/pocketkid2/ride/RidePlugin.java
https://wiki.vg/Protocol#Move_Vehicle_2

Si tu veux faire sans ProtocolLib / réinventer la roue :
https://www.spigotmc.org/threads/packet-listener-using-netty-tutorial.69772/
https://www.spigotmc.org/threads/is-there-a-proper-way-to-inject-players.531963/

Cordialement,
ShE3py
 

LEZIKO

Architecte en herbe
2 Novembre 2021
93
2
69
19
Hello ! je reviens ici car je ne m'en sors pas du tout (j'ai essayé de comprendre ce que tu m'as envoyé ShE3py mais je n'arrive pas à comprendre) alors maintenant j'essais avec un armorstand (et protocolib) quand je suis assis dessus de le contrôler mais l'armorstand ne bouge pas d'un pouce je suis complètement perdu... pour le code que j'ai essayé c'est cleui-ci (je met en screen car il ne prend pas à l'écrit)


J'espère que vous pourrez m'aider à comprendre :)
 

Fichiers joints

  • image_2024-02-02_035916138.png
    image_2024-02-02_035916138.png
    88.5 KB · Affichages: 17
  • image_2024-02-02_035930820.png
    image_2024-02-02_035930820.png
    35.2 KB · Affichages: 17

ShE3py

Enbogueuse
Support
26 Septembre 2015
4 139
163
464
247
21
Mìlhüsa
je met en screen car il ne prend pas à l'écrit
C'est un petit problème (quatre ans déjà lol) sur quelques mots interdits, donc il faut parler à la Mortal Kombat en remplaçant par onKommand.


Quand un joueur appuie sur ZQSD il envoie un message/packet au serveur, et celui-ci l'ignore si la monture du joueur est spéciale. L'idée pour le plugin est d'intercepter ce message et de déplacer la monture soi-même.

PlayerMoveEvent est appelé au moment où le joueur se déplace, dans ton cas le joueur ne se déplace pas donc ta fonction n'est pas appelée. Tu n'as d'ailleurs pas besoin d'envoyer toi-même de message au joueur, Spigot le fera pour toi.

En soit tout est déjà fait dans le lien GitHub que je t'ai envoyé (et c'est même commenté), il suffit de copy-pasta. Après tout le tralala avec les Vector sert à simuler la physique, je peux t'expliquer au besoin.
 

LEZIKO

Architecte en herbe
2 Novembre 2021
93
2
69
19
Hello ShE3py !

Je m'excuse de ne pas avoir répondu je n'ai pas reçu de notification :( mais j'ai quelqu'un qui a pu m'aider en partie !
Maintenant j'arrive à me déplacer avec l'armorstand mais il manque juste le fait de pouvoir voler je peux montrer mon code actuel si quelqu'un aurait une solution j'avoue que ça me sauverait vu le temps passé dessus x) merci d'avance ! ;)


1708009013162.png

1708009033049.png

1708009059060.png

1708009080419.png
 

ShE3py

Enbogueuse
Support
26 Septembre 2015
4 139
163
464
247
21
Mìlhüsa
Je ne sais pas trop ce que tu veux que je fasse avec du this.aM = this.dN() * 0.1f qui plus est sur une image, il faudrait un peu déobfusquer le code ;
Java:
// prevOnGroundSpeedFactor
x = passenger.aR / 2f;
https://gist.github.com/phase/90e3f3be993f5d174f02e63b8da4e62a#file-spigot2mcp-tsrg-L15340
Code:
aM → jumpMovementFactor
aK → rotationYawHead
aR → prevOnGroundSpeedFactor
aT → movedDistance

Surtout qu'a priori EntityLiving#aY est un booléen, pas un double, et que tu devrais avoir un stack trace.
 

LEZIKO

Architecte en herbe
2 Novembre 2021
93
2
69
19
je ne sais pas j'ai quelqu'un qui m'a envoyé un code qui fonctionne du coup merci pour ton aide :)