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

    Résolu InGameMenu

    1.7.x
    1.7.x
    5
    12
    3262
    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.
    • S
      SquizzCraft dernière édition par

      Bonjour, je voulais savoir s’il y a un moyen pour faire apparaître un aperçu du joueur sur le menu InGame ! Si oui, comment s’il vous plait ? ^^’

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

        C’est a dire ? Quel menu exactement ?

        Donne plus de précisions si possible 🙂

        "If you have a comprehensive explanation for everything then it decreases uncertainty and anxiety and reduces your cognitive load. And if you can use that simplifying algorithm to put yourself on the side of moral virtue then you’re constantly a good person with a minimum of effort."
        ― Jordan B. Peterson

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

          Bon voilà en fait, j’aimerais mettre un aperçu du joueur comme ceci :

          Mais je ne trouve pas la solution à part des tutos de Minecraft 1.3 qui ne fonctionnent pas vraiment ^^’

          De même pour pouvoir entrer une commande en jeu comme un /time set 0 sur un bouton avec ce genre de code:

          case 7:
          {
          Desktop desktop = null;
          try
          {
          URI url = new URI("http://lesite.com/");
          if(Desktop.isDesktopSupported())
          {
          desktop = Desktop.getDesktop();
          desktop.browse(url);
          }
          }
          catch(Exception ex)
          {}
          }
          

          Ici, ça n’a rien à voir avec une commande en jeu mais pour un site, mais voilà où je veux en venir pour le bouton de commande en jeu !

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

            Tu utilises l’event “RenderGameOverlayEvent”

            Puis tu vas chercher dans GuiInventory la fonction et sa déclaration qui permettent d’afficher le joueur dans l’inventaire,
             tu met toussa’ dans ton évent tu fais les appels qu’ il faut et TA DA ! Le tour est joué !

            Si t’a pas tout compris c’est normal, je te met sur la piste !

            Si je t'ai filé un coup de main n'oublie pas le + / -
            Par contre évite les demandes d'aides en MP, tu sera sympa'

            La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

            Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

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

              @‘ZeAmateis’:

              Tu utilises l’event “RenderGameOverlayEvent”

              Puis tu vas chercher dans GuiInventory la fonction et sa déclaration qui permettent d’afficher le joueur dans l’inventaire,
               tu met toussa’ dans ton évent tu fais les appels qu’ il faut et TA DA ! Le tour est joué !

              Si t’a pas tout compris c’est normal, je te met sur la piste !

              Salut! Tout d’abord, merci de ta réponse, et aussi, c’est bien de mettre sur des pistes, ça permet d’apprendre ^^’ Bref, j’ai donc ajouter ça :

              @SubscribeEvent
              
              public void renderGameOverlay(RenderGameOverlayEvent event) {
              }
              
              public static void func_147046_a(int p_147046_0_, int p_147046_1_, int p_147046_2_, float p_147046_3_, float p_147046_4_, EntityLivingBase p_147046_5_)
              {
              GL11.glEnable(GL11.GL_COLOR_MATERIAL);
              GL11.glPushMatrix();
              GL11.glTranslatef((float)p_147046_0_, (float)p_147046_1_, 50.0F);
              GL11.glScalef((float)(-p_147046_2_), (float)p_147046_2_, (float)p_147046_2_);
              GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F);
              float var6 = p_147046_5_.renderYawOffset;
              float var7 = p_147046_5_.rotationYaw;
              float var8 = p_147046_5_.rotationPitch;
              float var9 = p_147046_5_.prevRotationYawHead;
              float var10 = p_147046_5_.rotationYawHead;
              GL11.glRotatef(135.0F, 0.0F, 1.0F, 0.0F);
              RenderHelper.enableStandardItemLighting();
              GL11.glRotatef(-135.0F, 0.0F, 1.0F, 0.0F);
              GL11.glRotatef(-((float)Math.atan((double)(p_147046_4_ / 40.0F))) * 20.0F, 1.0F, 0.0F, 0.0F);
              p_147046_5_.renderYawOffset = (float)Math.atan((double)(p_147046_3_ / 40.0F)) * 20.0F;
              p_147046_5_.rotationYaw = (float)Math.atan((double)(p_147046_3_ / 40.0F)) * 40.0F;
              p_147046_5_.rotationPitch = -((float)Math.atan((double)(p_147046_4_ / 40.0F))) * 20.0F;
              p_147046_5_.rotationYawHead = p_147046_5_.rotationYaw;
              p_147046_5_.prevRotationYawHead = p_147046_5_.rotationYaw;
              GL11.glTranslatef(0.0F, p_147046_5_.yOffset, 0.0F);
              RenderManager.instance.playerViewY = 180.0F;
              p_147046_5_.renderYawOffset = var6;
              p_147046_5_.rotationYaw = var7;
              p_147046_5_.rotationPitch = var8;
              p_147046_5_.prevRotationYawHead = var9;
              p_147046_5_.rotationYawHead = var10;
              GL11.glPopMatrix();
              RenderHelper.disableStandardItemLighting();
              GL11.glDisable(GL12.GL_RESCALE_NORMAL);
              OpenGlHelper.setActiveTexture(OpenGlHelper.lightmapTexUnit);
              GL11.glDisable(GL11.GL_TEXTURE_2D);
              OpenGlHelper.setActiveTexture(OpenGlHelper.defaultTexUnit);
              }
              
              }
              
              

              Désoler d’être aussi nul là mais je ne vois vraiment pas ^^’

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

                Je pense que le initGuiEvent est mieux, à mon avis.

                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
                • robin4002
                  robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                  Non, puisqu’il ne peux pas toucher au classe de mc.
                  Pour avoir l’instance du joueur tu peux utiliser Minecraft.getMinecraft().thePlayer comme ce code s’exécute côté client.

                  Il te suffit d’appeler la fonction que tu as copié avec les coordonnés et l’instance du joueur et ça devrait être bon, j’ai quand même un doute car je ne suis pas sûr que la fonction que tu as copié et la bonne.

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

                    @‘robin4002’:

                    Non, puisqu’il ne peux pas toucher au classe de mc.
                    Pour avoir l’instance du joueur tu peux utiliser Minecraft.getMinecraft().thePlayer comme ce code s’exécute côté client.

                    Il te suffit d’appeler la fonction que tu as copié avec les coordonnés et l’instance du joueur et ça devrait être bon, j’ai quand même un doute car je ne suis pas sûr que la fonction que tu as copié et la bonne.

                    Ben en fait, je pense que ça ne peut être que là dedans car avant c’est des boucles pour l’affichage et l’ajout de quelques boutons de base :```
                    /**

                    • Draws the screen and all the components in it.
                      */
                      public void drawScreen(int par1, int par2, float par3)
                      {
                      super.drawScreen(par1, par2, par3);
                      this.field_147048_u = (float)par1;
                      this.field_147047_v = (float)par2;
                      }

                    protected void func_146976_a(float p_146976_1_, int p_146976_2_, int p_146976_3_)
                    {
                    GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
                    this.mc.getTextureManager().bindTexture(field_147001_a);
                    int var4 = this.field_147003_i;
                    int var5 = this.field_147009_r;
                    this.drawTexturedModalRect(var4, var5, 0, 0, this.field_146999_f, this.field_147000_g);
                    func_147046_a(var4 + 51, var5 + 75, 30, (float)(var4 + 51) - this.field_147048_u, (float)(var5 + 75 - 50) - this.field_147047_v, this.mc.thePlayer);
                    }

                    public static void func_147046_a(int p_147046_0_, int p_147046_1_, int p_147046_2_, float p_147046_3_, float p_147046_4_, EntityLivingBase p_147046_5_)
                    {
                    GL11.glEnable(GL11.GL_COLOR_MATERIAL);
                    GL11.glPushMatrix();
                    GL11.glTranslatef((float)p_147046_0_, (float)p_147046_1_, 50.0F);
                    GL11.glScalef((float)(-p_147046_2_), (float)p_147046_2_, (float)p_147046_2_);
                    GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F);
                    float var6 = p_147046_5_.renderYawOffset;
                    float var7 = p_147046_5_.rotationYaw;
                    float var8 = p_147046_5_.rotationPitch;
                    float var9 = p_147046_5_.prevRotationYawHead;
                    float var10 = p_147046_5_.rotationYawHead;
                    GL11.glRotatef(135.0F, 0.0F, 1.0F, 0.0F);
                    RenderHelper.enableStandardItemLighting();
                    GL11.glRotatef(-135.0F, 0.0F, 1.0F, 0.0F);
                    GL11.glRotatef(-((float)Math.atan((double)(p_147046_4_ / 40.0F))) * 20.0F, 1.0F, 0.0F, 0.0F);
                    p_147046_5_.renderYawOffset = (float)Math.atan((double)(p_147046_3_ / 40.0F)) * 20.0F;
                    p_147046_5_.rotationYaw = (float)Math.atan((double)(p_147046_3_ / 40.0F)) * 40.0F;
                    p_147046_5_.rotationPitch = -((float)Math.atan((double)(p_147046_4_ / 40.0F))) * 20.0F;
                    p_147046_5_.rotationYawHead = p_147046_5_.rotationYaw;
                    p_147046_5_.prevRotationYawHead = p_147046_5_.rotationYaw;
                    GL11.glTranslatef(0.0F, p_147046_5_.yOffset, 0.0F);
                    RenderManager.instance.playerViewY = 180.0F;
                    RenderManager.instance.func_147940_a(p_147046_5_, 0.0D, 0.0D, 0.0D, 0.0F, 1.0F);
                    p_147046_5_.renderYawOffset = var6;
                    p_147046_5_.rotationYaw = var7;
                    p_147046_5_.rotationPitch = var8;
                    p_147046_5_.prevRotationYawHead = var9;
                    p_147046_5_.rotationYawHead = var10;
                    GL11.glPopMatrix();
                    RenderHelper.disableStandardItemLighting();
                    GL11.glDisable(GL12.GL_RESCALE_NORMAL);
                    OpenGlHelper.setActiveTexture(OpenGlHelper.lightmapTexUnit);
                    GL11.glDisable(GL11.GL_TEXTURE_2D);
                    OpenGlHelper.setActiveTexture(OpenGlHelper.defaultTexUnit);
                    }

                    protected void actionPerformed(GuiButton p_146284_1_)
                    {
                    if (p_146284_1_.id == 0)
                    {
                    this.mc.displayGuiScreen(new GuiAchievements(this, this.mc.thePlayer.func_146107_m()));
                    }

                    if (p_146284_1_.id == 1)
                    {
                    this.mc.displayGuiScreen(new GuiStats(this, this.mc.thePlayer.func_146107_m()));
                    }
                    }
                    }

                    
                    Et comme je ne trouve pas Minecraft.getMinecraft().thePlayer , je ne sais pas vraiment ou le placer sur mon code de base :/
                    1 réponse Dernière réponse Répondre Citer 0
                    • robin4002
                      robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                      Bon je viens de regarder de mon côté, comme la fonction func_14706_a est static tu peux l’utiliser sans la copier/coller :

                      ​    @SubscribeEvent
                      
                          public void renderGameOverlay(RenderGameOverlayEvent.Post event)
                          {
                              if(event.type != RenderGameOverlayEvent.ElementType.EXPERIENCE)
                              {
                                  return;
                              }
                              GuiInventory.func_147046_a(20, 60, 25, -40, 5, Minecraft.getMinecraft().thePlayer);
                          }
                      

                      Dans l’ordre :
                      20 : translation sur l’axe x
                      60 : translation sur l’axe y
                      25 : scale du rendu
                      -40 : rotation du corps sur l’axe z
                      5 : rotation de la tête sur l’axe x

                      Avec ces valeurs il s’affiche en haut à gauche.
                      Si tu veux le mettre en haut à droite, il faut utiliser event.resolution.getScaledWidth() - 20;

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

                        @‘robin4002’:

                        Bon je viens de regarder de mon côté, comme la fonction func_14706_a est static tu peux l’utiliser sans la copier/coller :

                        ​    @SubscribeEvent
                        
                            public void renderGameOverlay(RenderGameOverlayEvent.Post event)
                            {
                                if(event.type != RenderGameOverlayEvent.ElementType.EXPERIENCE)
                                {
                                    return;
                                }
                                GuiInventory.func_147046_a(20, 60, 25, -40, 5, Minecraft.getMinecraft().thePlayer);
                            }
                        

                        Dans l’ordre :
                        20 : translation sur l’axe x
                        60 : translation sur l’axe y
                        25 : scale du rendu
                        -40 : rotation du corps sur l’axe z
                        5 : rotation de la tête sur l’axe x

                        Avec ces valeurs il s’affiche en haut à gauche.
                        Si tu veux le mettre en haut à droite, il faut utiliser event.resolution.getScaledWidth() - 20;

                        Alors, j’ai bien fait tout ça mais rien de change, le personnage n’apparait pas sur le menu echap, je ne comprend pas là ^^’ J’ai laisser toutes les valeurs par défaut mais rien n’y fait 😕

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

                          Ha, tu veux le mettre sur le menu échappe x)
                          Bon normal que ça fonctionne pas alors, avec le code que je t’ai donné il devrait apparaitre directement en jeu. (tu n’as surement pas enregistré ta classe d’event)

                          Dans ce cas il faut refaire un classe InGameMenu custom et utiliser le même principe d’ouverture d’un autre gui que celui nécessaire pour faire un menu custom.

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

                            Bah j’ai déjà recréer une classe car je recode en forge, mais j’ai voulu utiliser le code vanilla sauf que c’est un peu compliquer ^^’

                            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