MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    GUI d'une enclume + questions sur dimensions

    Planifier Épinglé Verrouillé Déplacé Résolu Anciennes versions
    1.6.4
    12 Messages 4 Publieurs 3.4k Vues 1 Watching
    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.
    • jglrxavpokJ Hors-ligne
      jglrxavpok Modérateurs
      dernière édition par

      Utilise FMLNetworkHandler.openGui(…) pour ouvrir les Gui plutôt que player.openGui.
      k -> Couleur du texte

      Modérateur sur MFF. 
      Mon Github: http://github.com/jglrxavpok
      Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

      1 réponse Dernière réponse Répondre Citer 0
      • T Hors-ligne
        totos51
        dernière édition par

        ça changement quoi concrètement?
        même soucis 😕

        merci pour la couleur

        1 réponse Dernière réponse Répondre Citer 0
        • robin4002R Hors-ligne
          robin4002 Moddeurs confirmés Rédacteurs Administrateurs
          dernière édition par

          xavpok, c’est la même chose.

          1 réponse Dernière réponse Répondre Citer 0
          • T Hors-ligne
            totos51
            dernière édition par

            après quelques recherche, j’ai restreint mon champ de recherche:

            
            public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9)
            {
            if (par1World.isRemote)
            {
            return true;
            }
            else
            {
            par5EntityPlayer.openGui(Import.instance, 2, par1World, par2, par3, par4);
            return true;
            }
            }
            
            

            Avec ce code, le GUI ne s’ouvre pas du tout
            par contre si j’utilise celui ci:

            
            public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9)
            {
            FMLNetworkHandler.openGui(par5EntityPlayer, Import.instance, 2, par1World, par2, par3, par4);
            return true;
            }
            
            

            Il s’ouvre puis se referme juste après
            si par contre avec eclispe je mets un breakpoint sur le return, eclispe coupe 2 fois, puis ouvre le GUI sans le refermer.
            quelqu’un aurait il une idéeµ? le reste du code est toujours le même.

            1 réponse Dernière réponse Répondre Citer 0
            • Superloup10S Hors-ligne
              Superloup10 Modérateurs
              dernière édition par

              Personnellement, je fais comme ceci ```java
              public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9)
              {
              if(world.isRemote)
              {
              return true;
              }
              else
              {
              TileEntityCompressor compressor = (TileEntityCompressor) world.getTileEntity(x, y, z);

              if(compressor != null)
              {
              player.openGui(Wolf_Addons.instance, 0, world, x, y, z);
              }
              return true;
              }
              }

              
              Et cela fonctionne parfaitement.

              Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

              Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

              1 réponse Dernière réponse Répondre Citer 0
              • T Hors-ligne
                totos51
                dernière édition par

                En modifiant mon code selon ton modèle, j’obtiens cela:

                
                public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9)
                {
                if(world.isRemote)
                {
                return true;
                }
                else
                {
                int block = world.getBlockId(x, y, z);
                
                if(block == Import.Rubanvil.blockID)
                {
                FMLNetworkHandler.openGui(player, Import.instance, 2, world, x, y, z);
                }
                return true;
                }
                }
                
                

                je pense que le soucis vient de: if(world.isRemote) mais je ne comprends pas en quoi.

                1 réponse Dernière réponse Répondre Citer 0
                • T Hors-ligne
                  totos51
                  dernière édition par

                  non pas sur l’enclume, c’est ce que je trouve byzarre aussi

                  1 réponse Dernière réponse Répondre Citer 0
                  • Superloup10S Hors-ligne
                    Superloup10 Modérateurs
                    dernière édition par

                    Oups, désolé, j’ai supprimé mon post. Mais l’enclume vanilla a bien une tileEntity?

                    Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

                    Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

                    1 réponse Dernière réponse Répondre Citer 0
                    • T Hors-ligne
                      totos51
                      dernière édition par

                      non justement, j’ai simplement copié celle vanilla et c’est ce qui m’a paru byzarre

                      1 réponse Dernière réponse Répondre Citer 0
                      • robin4002R Hors-ligne
                        robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                        dernière édition par

                        world.isRemote = world client
                        !world.isRemote = world server.
                        Cette méthode est fait en client et serveur, normalement le open gui doit être fait côté serveur, donc ça m’a l’air bon.
                        Je pense que le problème vient plutôt du gui handler. Il est bien enregistré ?
                        Limite, remplace :

                        if(block == Import.Rubanvil.blockID)
                        {
                        FMLNetworkHandler.openGui(player, Import.instance, 2, world, x, y, z);
                        System.out.println("ouverture du gui");
                        }
                        

                        Et dans ton gui handler, dans la condition pour ton gui, met aussi un println, puis regarde lequel ne s’affiche pas.

                        1 réponse Dernière réponse Répondre Citer 0
                        • T Hors-ligne
                          totos51
                          dernière édition par

                          EN fait j’ai testé en remplaçant simplement world.isremote par !world.isRemote
                          et la le GUI s’ouvre sans se refermer, il est cependant complétement bugué.

                          Je récapitule: Si je ne mets pas de condition et que je lui dis clairement d’ouvrir le GUI, il me l’ouvre puis le referme sauf si je mets un breakpoint sur le return.
                          Si je mets if (!world.isRemote) le GUI s’ouvre mais côté client donc inutilisable
                          mon code est éxactement le même que celui de l’enclume normale
                          qu’ai je biens pus oublier?

                          Autre remarque: j’ai mis deux println, un dans l’ouverture du GUI, l’autre dans le Handler
                          or à chaque fois que je fais un clic sur mon enclume, chaque message apparait en double
                          quand je mets une condition isremote aussi, peu importe le sens que je mette world ou !world, il me l’affiche 4 fois.

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

                          MINECRAFT FORGE FRANCE © 2024

                          Powered by NodeBB