Open Helllios opened 8 years ago
Ce bug est corrigé par un des commits "ninja" :)
Je garde le ticket ouvert, bien que résolu tel entendu initialement, le problème réapparait sous une autre forme.
Justement, quand le tornado actuel est activé, si je airspout/airscooter je peux fly, à la Zaheer lolz. Cependant, une fois que le tornado rentre en cooldown, je peux plus fly.
UP du post, le fly est toujours possible avec les Tornado
Bonjour ! Petite question dans le but de chercher une résolution à ce bug, en quoi est-ce utile d'ajouter le joueur qui lance un Tornado en tant que FlyingPlayer ? En soit il n'est pas en fly tant qu'il n'est pas dedans non ? Merci d'avance !
Cela évite que le serveur ne le kick pour fly !
Ah oui d'accord merci !
Du coup, le problème ne viendrait-il pas du fait que, certaines causes mettent véritablement le joueur en fly avec player.setFlying(true)
et d'autres non. Or, lorsque l'on supprime une cause de Fly, on ne teste pas si c'était la dernière qui permettait au joueur d'être réellement en fly, et si c'est le cas, on devrait faire un player.setFlying(false)
non ?
Nope, le problème est que le serveur ne semble pas renvoyer les capacities au client. Quand tu es déjà entrain de voler et que setFlying(false) est appelée, tu continueras de voler. C'est en l’occurrence ce qu'il se passe (en tout cas, en 1.10, je n'ai pas testé en 1.11).
Ah bon ? Justement pour moi, setFlying(false) n'est pas du tout appelée actuellement car le schéma est le suivant :
Je Lance un Tornado, je suis considéré comme Flying player mais aucun setFlying(true) ne m'est appliqué.
Je lance ensuite un Airspout, l'Airspout fait que le plugin m'applique setFlying(true), mais réduit également ma vitesse car je suis en spout. A ce moment là, 2 causes me sont attribuées dans FlyingPlayer.
Je coupe mon Spout : Le plugin ne me ralenti plus car je ne suis plus en spout, mais je suis toujours considéré comme FlyingPlayer à cause du Tornado. Le test if (!flying.hasCauses())
de la ligne 106 est faux, donc la méthode resetState() n'est pas appelée, donc je suis toujours en fly jusqu'à la fin de mon Tornado, alors que lui seul ne me l'aurai pas permit.
J'espère avoir réussi à me faire comprendre x)
Lors de l'exécution du sort Tornado, les Airbender, s'ils pressent les touches sneak+jump peuvent fly à l'horizontale (un peu à la manière du plane avec le AirScooter avant), ils peuvent ainsi se maintenir à une hauteur k constante, même si la Tornade n'a pas d'appuie et qu'elle ne se cast pas quelque part.