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

    Résolu Problème de motion

    1.7.x
    1.7.10
    4
    14
    2305
    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.
    • bin4r1s
      bin4r1s dernière édition par

      Bonjour,
      Alors voilà :
      J’ai créé un item qui (normalement) est sensé propulser le joueur en hauteur. Pour cela, je passe par player.motionY.
      Sauf que, visiblement ça ne marche pas, rien ne se passe au clic droit, si ce n’est l’envoi du message dans la console :

      (On est dans une fonction appelée par onItemRightClick(Itemstack, World, EntityPlayer))

      
      if(!world.isRemote)
      {
           if(player.onGround)
          {
                  System.out.println("On Ground !");
                  player.motionY += 1.0D;
          }
          else
          {
                  player.motionY = 0D;
                  player.fallDistance = 0F;
      
          }
      }
      

      Mes mods:

      • New Ores
      • More Dragons
      1 réponse Dernière réponse Répondre Citer 0
      • Deleted
        Deleted dernière édition par

        Salut plutôt comme ceci :

        
        if(world.isRemote)
        {
            if(player.onGround)
           {
                   System.out.println("On Ground !");
                   player.motionY += 1.0D;
           }
           else
           {
                   player.motionY = 0D;
                   player.fallDistance = 0F;
        
           }
        }
        
        1 réponse Dernière réponse Répondre Citer 0
        • bin4r1s
          bin4r1s dernière édition par

          Pourquoi ? Toute la logique de mise à jour se fait côté serveur, or :
          "boolean net.minecraft.world.World.isRemote

          This is set to true for client worlds, and false for server worlds"

          Mes mods:

          • New Ores
          • More Dragons
          1 réponse Dernière réponse Répondre Citer 0
          • Deleted
            Deleted dernière édition par

            T’as essayé mon code au moins ? Si ça ne marche pas retire la condition if(player.onGround mais y’a pas de raisons que ça ne marche pas

            Et au passage non les motion et tout autre type de déplacement ont un rapport direct avec le Side client, crois moi

            1 réponse Dernière réponse Répondre Citer 0
            • bin4r1s
              bin4r1s dernière édition par

              J’avais déjà essayé (et j’ai re-testé à l’instant) et j’ai bien dit que le message “On Ground” s’affiche dans la console, donc pas besoin de retirer la condition (en plus je l’ai rajoutée après mon problème).

              Ce qui est bizarre c’est que l’utilisation du motionY ne fonctionne pas uniquement ici, partout ailleurs, ça marche.

              Mes mods:

              • New Ores
              • More Dragons
              1 réponse Dernière réponse Répondre Citer 0
              • SCAREX
                SCAREX dernière édition par

                Essaie plutôt avec une téléportation, les motion sont un peu bizarres.

                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
                • Deleted
                  Deleted dernière édition par

                  Les motion marchent très bien c’est juste qu’ils doivent être additionnés à une valeur en float et non en double

                  Et je te garantis de laisser la condition du isRemote en true sinon ça ne marchera pas, les mouvements sont bien gérés côté client. J’en ai la preuve sur mon code qui lui est fonctionnel

                  1 réponse Dernière réponse Répondre Citer 0
                  • bin4r1s
                    bin4r1s dernière édition par

                    @Julot10085
                    Les motions sont des double donc additionner des floats au lieu de doubles ne changera rien (testé)
                    J’ai essayé avec l’addition de float & le remote à true, ça n’a rien changé.

                    @SCAREX
                    La téléportation marche, ça fait juste un peu moche ^^.
                    Je vais essayer en “progressif” (= un tick event avec un tp de plus en plus haut).

                    Mes mods:

                    • New Ores
                    • More Dragons
                    1 réponse Dernière réponse Répondre Citer 0
                    • Deleted
                      Deleted dernière édition par

                      Bon apparemment tu n’as pas l’air de me croire je te donne ce code d’un block que j’ai créer et regarde il est fonctionnel donc le soucis ne vient que de toi

                      
                      @Override
                      public void onEntityCollidedWithBlock(World p_149670_1_, int p_149670_2_, int p_149670_3_, int p_149670_4_, Entity entity)
                      {
                      entity.attackEntityFrom(DyingCraftMod.barbeleDamage, 4.0F);
                      entity.motionY+= 0.48F;
                      entity.motionZ+= 0.48F;
                      }
                      
                      

                      Je n’ai pas mis de condition isRemote car ce code est exécuté aussi bien en solo qu’en serveur =D

                      1 réponse Dernière réponse Répondre Citer 0
                      • Deleted
                        Deleted dernière édition par

                        Autant pour moi au niveau des float / double
                        Ton problème est bizarre, essaie de changer la valeur, ou fais d’autre test avec des motionX. Peutêtre que l’axe des Y bug, je sais pas.

                        1 réponse Dernière réponse Répondre Citer 0
                        • bin4r1s
                          bin4r1s dernière édition par

                          Déjà testé avec tous les autres motions, je suis même allé jusqu’à ne mettre aucune condition, mais ça n’a rien donné…

                          Mes mods:

                          • New Ores
                          • More Dragons
                          1 réponse Dernière réponse Répondre Citer 0
                          • robin4002
                            robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                            Les motions ne sont que présents côté client il me semble.

                            1 réponse Dernière réponse Répondre Citer 0
                            • bin4r1s
                              bin4r1s dernière édition par

                              Niveau joueur alors ?
                              Parce que ce code marche avec les mobs et autres :

                              
                              if(!world.isRemote)
                              {
                                  entity.motionY += 1.0D;
                              }
                              

                              Je vais essayer quelque chose d’autre donc.

                              EDIT :
                              Effectivement il semblerait que les motions du joueur ne s’updatent que côté client, or l’appel de ma fonction est dans un condition qui vérifie si on est côté serveur –'. Donc autant pour moi, vous aviez raison.

                              Sujet résolu.

                              Mes mods:

                              • New Ores
                              • More Dragons
                              1 réponse Dernière réponse Répondre Citer 0
                              • Deleted
                                Deleted dernière édition par

                                Alors j avais raison et du coup c est la condition qui faisait que sa ne marchait pas ? Si oui c est quand même ce que j avais dit a mon premier message…

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

                                MINECRAFT FORGE FRANCE © 2018

                                Powered by NodeBB