Effet de lenteur sous l'eau
-
dans cette class jai d’autre events qui fonctionne donc oui elle est bien enregistrer coté forge et fml
J’ai test avec d’autres valeurs mais ca marche pas non plus

-
Mets un System.out.println pour voir si c’est bien appelé.
-
@‘AymericRed’:
Mets un System.out.println pour voir si c’est bien appelé.
J’ai essayer de mon côté l’event marche bien mais en fait le truc c’est que sa modifie ton walkspeed quand tu sors de l’eau ^^
Essaye un walkspeed de 3.0F marche dans l’eau puis sort sur la terre tu vas voir que sa l’applique une fois hors de l’eau et quand tu re rentre dans l’eau tu es encore slow -
Ah ça ne mache pas dans l’eau, il y a peut-être une fonction setSwimSpeed (je pense pas mais bon), je regarderais tout à l’heure.
-
Mon event est bien appeler mais ca marche pas
-
event.entity.motionX *= nouvelle valeur
event.entity.motionY *= nouvelle valeur
event.entity.motionZ *= nouvelle valeur -
@‘ZeAmateis’:
event.entity.motionX *= nouvelle valeur
event.entity.motionY *= nouvelle valeur
event.entity.motionZ *= nouvelle valeur+1
-
T’a multiplié motionY par quoi ?
-
@‘AymericRed’:
T’a multiplié motionY par quoi ?
j’ai rien dis

-
Je sais plus si c’est += ou *= et tu met un double il me semble teste tu verra
-
@‘ZeAmateis’:
Je sais plus si c’est += ou *= et tu met un double il me semble teste tu verra
avec += il avance tout seul ^^ avec *= ça marche mais genre c’est bugger peu.
-
Sinon if(motionY > 0) motionY += machin truc; et if(motionY < 0) motionY -= machin truc;
-
[font=Source Code Pro*@SubscribeEvent *]public void onLiving(LivingEvent.LivingUpdateEvent *event*) { if (*event*.entity.isInWater()) { *event*.entity.motionX += 1%(#aaa9a7)[; ] *event*.entity.motionZ += 1%(#aaa9a7)[; ] } }Marche pas : je vais plus vite sur terre mais dans l’eau je peu pas me deplacer en X et Z
-
Ce n’est pas +, c’est x
Donc remplace cela par event.entity.motionX*= 1.3F et pareil pour l’axe z -
J’avance tout seul dans l’eau et je vait plus vite sur terre et dans l’eau

-
Faut pas oublier d’ajouter un else avec motionX*=1; et motionZ*=1; pour éviter que le joueur conserve sa vitesse hors de l’eau.
-
@‘Plaigon’:
Faut pas oublier d’ajouter un else avec motionX*=1; et motionZ*=1; pour éviter que le joueur conserve sa vitesse hors de l’eau.
Pas besoin le motion est mis à jour à chaque tick
-
@‘Plaigon’:
Ce n’est pas +, c’est x
Donc remplace cela par event.entity.motionX*= 1.3F et pareil pour l’axe zça marche nickel sa modifie bien la motion du joueur mais le soucis c’est que le joueur avance tout seul après ^^.
-
Envoi le code
-
[font=Source Code Propublic class ]%(#345f99)[WaterEventHandler ]{ %(#278c3c)[*@SubscribeEvent *] public void onPlayerBreakBlock(PlayerEvent.BreakSpeed *event*) { if (*event*.entityPlayer.isInWater()) { *event*.newSpeed = *event*.newSpeed %(#aaa9a7)* 5%(#aaa9a7)[; ] } } %(#278c3c)[*@SubscribeEvent *] public void onLiving(LivingEvent.LivingUpdateEvent *event*) { if (*event*.entity.isInWater()) { *event*.entity.motionX %(#aaa9a7)* 1.3F%(#aaa9a7)[; ] *event*.entity.motionZ %(#aaa9a7)* 1.3F%(#aaa9a7)[; ] } %(#0187df)[else ] { } } } ```