• Récent
  • Mots-clés
  • Populaire
  • Utilisateurs
  • Groupes
  • S'inscrire
  • Se connecter
  • S'inscrire
  • Se connecter
  • Recherche
  • Récent
  • Mots-clés
  • Populaire
  • Utilisateurs
  • Groupes

Résolu Effet de lenteur sous l'eau

1.7.x
1.7.10
7
53
7.6k
Charger plus de messages
  • Du plus ancien au plus récent
  • Du plus récent au plus ancien
  • Les plus votés
Répondre
  • Répondre à l'aide d'un nouveau sujet
Se connecter pour répondre
Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
  • SpyMan
    SpyMan dernière édition par 15 juil. 2016, 09:56

    J’avance tout seul dans l’eau et je vait plus vite sur terre et dans l’eau 😕

    1 réponse Dernière réponse Répondre Citer 0
    • Deleted
      Deleted dernière édition par 15 juil. 2016, 10:28

      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.

      1 réponse Dernière réponse Répondre Citer 0
      • SCAREX
        SCAREX dernière édition par 15 juil. 2016, 11:47

        @‘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

        Site web contenant mes scripts : http://SCAREXgaming.github.io

        Pas de demandes de support par MP ni par skype SVP.
        Je n'accepte sur skype que l…

        1 réponse Dernière réponse Répondre Citer 0
        • Gabs
          Gabs dernière édition par 15 juil. 2016, 13:44

          @‘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 ^^.

          1 réponse Dernière réponse Répondre Citer 0
          • SCAREX
            SCAREX dernière édition par 15 juil. 2016, 13:46

            Envoi le code

            Site web contenant mes scripts : http://SCAREXgaming.github.io

            Pas de demandes de support par MP ni par skype SVP.
            Je n'accepte sur skype que l…

            1 réponse Dernière réponse Répondre Citer 0
            • SpyMan
              SpyMan dernière édition par 15 juil. 2016, 22:27

              [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
              ]        {
                     }
                 }
              }
              ```
              1 réponse Dernière réponse Répondre Citer 0
              • SCAREX
                SCAREX dernière édition par 16 juil. 2016, 12:28

                Alors, petite explication du code :

                • au premier tick le motion est égal à 1, ta fonction est appelée donc le motion vaut 1.3
                • au deuxième tick le motion vaut 1.3, ta fonction est appelée donc le motion vaut 1.69
                • etc
                  donc le motion grandit de plus en plus ce qui fait qu’à la fin ton joueur avance tout seul, j’ai donc recopié le code de la 1.8 pour l’enchantement depthrider pour que le code soit correcte.

                J’ai d’ailleurs trouvé un petit bug dans ton code : lorsque le joueur est totalement plongé sous l’eau, sa vitesse de minage diminue, j’ai donc corrigé ça aussi :

                public class WaterEventHandler
                {
                @SubscribeEvent
                public void onPlayerBreakBlock(PlayerEvent.BreakSpeed event) {
                if (event.entityPlayer.isInWater()) {
                float f = 5;
                if (event.entityPlayer.isInsideOfMaterial(Material.water) && !EnchantmentHelper.getAquaAffinityModifier(event.entityPlayer)) // condition si le joueur est totalement immergé
                {
                f *= 5.0F;
                }
                event.newSpeed = event.newSpeed * f;
                }
                }
                @SubscribeEvent
                public void onLiving(LivingEvent.LivingUpdateEvent event) {
                EntityLivingBase living = event.entityLiving;
                if (living.isInWater() && (!(living instanceof EntityPlayer) || !((EntityPlayer) living).capabilities.isFlying)) {
                double d0 = living.posY;
                float f4 = 0.8F;
                float f5 = 0.02F;
                float f6 = 3F; // C'est cette valeur là qui indique le depthrider, si tu veut l'augmenter il te faut supprimer la condition qui suit
                if (f6 > 3.0F) {
                f6 = 3.0F;
                }
                if (!living.onGround) { // Si le joueur ne touche pas le sol, alors on divise la vitesse par 2, tu peux supprimer cette condition si tu en as envie
                f6 *= 0.5F;
                }
                if (f6 > 0.0F) {
                f4 += (0.54600006F - f4) * f6 / 3.0F;
                f5 += (living.getAIMoveSpeed() * 1.0F - f5) * f6 / 3.0F;
                }
                living.moveFlying(living.moveStrafing, living.moveForward, f5);
                living.moveEntity(living.motionX, living.motionY, living.motionZ);
                living.motionX *= (double) f4;
                living.motionY *= 0.800000011920929D;
                living.motionZ *= (double) f4;
                if (living.isCollidedHorizontally && living.isOffsetPositionInLiquid(living.motionX, living.motionY + 0.6000000238418579D - living.posY + d0, living.motionZ)) {
                living.motionY = 0.30000001192092896D;
                }
                }
                }
                }

                Site web contenant mes scripts : http://SCAREXgaming.github.io

                Pas de demandes de support par MP ni par skype SVP.
                Je n'accepte sur skype que l…

                1 réponse Dernière réponse Répondre Citer 0
                • SpyMan
                  SpyMan dernière édition par 16 juil. 2016, 20:36

                  d’accord mais c’est la quel la variable pour modifier la vitesse de déplacement car la il va beaucoup trop vite sur terre

                  1 réponse Dernière réponse Répondre Citer 0
                  • SCAREX
                    SCAREX dernière édition par 17 juil. 2016, 10:44

                    Sur terre ? Dans l’eau ou en dehors ?

                    Site web contenant mes scripts : http://SCAREXgaming.github.io

                    Pas de demandes de support par MP ni par skype SVP.
                    Je n'accepte sur skype que l…

                    1 réponse Dernière réponse Répondre Citer 0
                    • SpyMan
                      SpyMan dernière édition par 17 juil. 2016, 17:45

                      les trois
                      😄

                      1 réponse Dernière réponse Répondre Citer 0
                      • SCAREX
                        SCAREX dernière édition par 18 juil. 2016, 17:21

                        Comme indiquer dans le code la valeur à modifier pour la vitesse est f6.

                        Quand le joueur est en dehors de l’eau sa vitesse n’est pas modifiée donc je vois pas le rapport.

                        Pour ce qui est du fait que le joueur aille plus vite lorsqu’il est dans l’eau mais qu’il touche par terre, comme indiquer dans le code, retire ça :

                        if (!living.onGround) { // Si le joueur ne touche pas le sol, alors on divise la vitesse par 2, tu peux supprimer cette condition si tu en as envie
                        f6 *= 0.5F;
                        }

                        Site web contenant mes scripts : http://SCAREXgaming.github.io

                        Pas de demandes de support par MP ni par skype SVP.
                        Je n'accepte sur skype que l…

                        1 réponse Dernière réponse Répondre Citer 0
                        • SpyMan
                          SpyMan dernière édition par 18 juil. 2016, 23:20

                          Le problème c’est que le joueur va trop vite sur terre et dans l’eau (comme si il avait du speed 3 ou 4) et moi je voudrais que je joueur est la même vitesse de déplacement par default de mincraft sur terre et dans l’eau la même que sur terre

                          1 réponse Dernière réponse Répondre Citer 0
                          • SCAREX
                            SCAREX dernière édition par 19 juil. 2016, 11:04

                            Et bien diminue la vitesse alors

                            Site web contenant mes scripts : http://SCAREXgaming.github.io

                            Pas de demandes de support par MP ni par skype SVP.
                            Je n'accepte sur skype que l…

                            1 réponse Dernière réponse Répondre Citer 0
                            • 1
                            • 2
                            • 3
                            • 3 / 3
                            41 sur 53
                            • Premier message
                              41/53
                              Dernier message
                            Design by Woryk
                            Contact / Mentions Légales

                            MINECRAFT FORGE FRANCE © 2018

                            Powered by NodeBB