MFF

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

    InGameMenu

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.x
    12 Messages 5 Publieurs 3.5k 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.
    • GuguG Hors-ligne
      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 Hors-ligne
        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
        • AmaA Hors-ligne
          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 Hors-ligne
            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
            • SCAREXS Hors-ligne
              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
              • robin4002R Hors-ligne
                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 Hors-ligne
                  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
                  • robin4002R Hors-ligne
                    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 Hors-ligne
                      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
                      • robin4002R Hors-ligne
                        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 Hors-ligne
                          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
                          ContactMentions Légales

                          MINECRAFT FORGE FRANCE © 2024

                          Powered by NodeBB