MFF

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

    Déplacer la position du chat

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    11 Messages 5 Publieurs 2.6k 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.
    • R Hors-ligne
      Rremis
      dernière édition par

      Bonjour, j’aimerais savoir si c’est possible de changer la position du chat ?
      En faite, j’aimerai le monter pour pouvoir afficher autre chose en dessous.
      J’ai commencé à faire quelques chose :

      public class GuiChat extends GuiIngame{
      
      public GuiChat(Minecraft mc) {
      super(mc);
      }
      
      Minecraft mc = Minecraft.getMinecraft();
      private GuiNewChat persistantChatGUI;
      private RenderGameOverlayEvent eventParent;
      
      @SubscribeEvent
      public void onRenderOverlay(RenderGameOverlayEvent event){
             if (event.type == RenderGameOverlayEvent.ElementType.CHAT){
                    event.setCanceled(true);
                    renderChat(event.resolution.getScaledWidth(),event.resolution.getScaledHeight());
             }
      }
      
      protected void renderChat(int width, int height)
          {
              mc.mcProfiler.startSection("chat");
      
              RenderGameOverlayEvent.Chat event = new RenderGameOverlayEvent.Chat(eventParent, 0, height - 20);
      
              GL11.glPushMatrix();
              GL11.glTranslatef((float)event.posX, (float)event.posY, 0.0F);
              persistantChatGUI.drawChat(updateCounter);
              GL11.glPopMatrix();
      
              mc.mcProfiler.endSection();
          }
      
      }
      

      Et dans le proxy, j’ai register l’event : MinecraftForge.EVENT_BUS.register(new GuiChat(Minecraft.getMinecraft()));

      Le problème, c’est que ça me fais crash mon jeu quand je rejoind un monde

      Donc si vous savez comment résoudre mon problème, ça serait sympas de m’aider 😛
      Merci à tous, Rremis

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

        Le problème c’est que tu ne sais pas trop ce que tu fais je suppose, car déjà le GuiIngame utilisé est celui de forge donc la classe est GuiIngameForge, de plus tu peux utiliser le RenderGameOverlayEvent, donc il te faut créer une classe qui va gérer cet event (il y a un tuto sur les events sur le forum), en pensant à l’enregistrer uniquement côté client (ou alors rajouter un SideOnly au-dessus de la fonction) pour ensuite pouvoir déplacer le chat

        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

          Ton jeu crash car persistantChatGUI et eventParent sont null.
          Déjà supprime eventParent et cette ligne :
                 RenderGameOverlayEvent.Chat event = new RenderGameOverlayEvent.Chat(eventParent, 0, height - 20);
          Et pour le translate mets directement les valeurs que tu veux.

          Ensuite pour le tchat il faut voir comment obtenir une instance de persistantChatGUI

          Supprimes également le extends et le constructeur qui ne servent absolument à rien.

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

            J’ai fais quelques modifications, mon renderChat ressemble à ça :

            protected void renderChat(int width, int height)
                {
                    mc.mcProfiler.startSection("chat");
            
                    GuiNewChat persistantChatGUI = new GuiNewChat(mc);
                    GL11.glPushMatrix();
                    GL11.glTranslatef(0, height - 48, 0.0F);
                    persistantChatGUI.drawChat(updateCounter);
                    GL11.glPopMatrix();
            
                    mc.mcProfiler.endSection();
                }
            

            Le problème c’est que je n’ai pas la variable updateCounter, je pourrais faire comment pour la récuperer ?

            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

              Retires la ligne :
              GuiNewChat persistantChatGUI = new GuiNewChat(mc);
              et remplaces persistantChatGUI par :
              mc.ingameGUI.getChatGUI()

              Et pour updateCounter : mc.ingameGUI.getUpdateCounter()

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

                J’ai tout remplacé, mais en jeu, quand j’écris dans le chat, rien ne s’affiche (j’ai bien sur le retour dans la console).

                Je vous montre ma class entière :

                public class GuiChat {
                
                Minecraft mc = Minecraft.getMinecraft();
                
                @SubscribeEvent
                public void onRenderOverlay(RenderGameOverlayEvent event){
                       if (event.type == RenderGameOverlayEvent.ElementType.CHAT){
                            event.setCanceled(true);
                
                            renderChat(event.resolution.getScaledWidth(),event.resolution.getScaledHeight());
                   }
                }
                
                public void renderChat(int width, int height)
                    {
                        mc.mcProfiler.startSection("chat");
                        GL11.glPushMatrix();
                        GL11.glTranslatef(mc.displayWidth, mc.displayHeight / 2 - 24, 0.0F);
                        mc.ingameGUI.getChatGUI().drawChat(mc.ingameGUI.getUpdateCounter());
                        GL11.glPopMatrix();
                
                        mc.mcProfiler.endSection();
                    }
                }
                
                

                Je ne sais pas d’où peut venir le problème…

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

                  GL11.glTranslatef(mc.displayWidth, mc.displayHeight / 2 - 24, 0.0F);
                  ``` Le problème est que tu mets la zone de dessin en dehors de l'écran (tout à droite : mc.displayWidth), remplaces-le par zéro pour que ça reste la postion x par défaut. Et (j'y m'y connait pas trop en rendu) je pense qu'il va falloir que tu mettes quelque chose comme -20 ou -45 en y car le gui du chat est dessiné à une position, et si tu ne mets pas quelque chose de négatif en y, ça va s'ajouter à la position du chat normal, j'espère que t'a compris ^^

                  Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                  AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                  Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                  Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

                    @‘AymericRed’:

                    GL11.glTranslatef(mc.displayWidth, mc.displayHeight / 2 - 24, 0.0F);
                    ``` Le problème est que tu mets la zone de dessin en dehors de l'écran (tout à droite : mc.displayWidth), remplaces-le par zéro pour que ça reste la postion x par défaut. Et (j'y m'y connait pas trop en rendu) je pense qu'il va falloir que tu mettes quelque chose comme -20 ou -45 en y car le gui du chat est dessiné à une position, et si tu ne mets pas quelque chose de négatif en y, ça va s'ajouter à la position du chat normal, j'espère que t'a compris ^^
                    

                    L’erreur débile xD
                    Merci, ça marche maintenant 😛

                    PS: C’est possible aussi de bouger la zone d’écriture, non ?

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

                      De rien 🙂
                      Je pense que oui, ça doit-être un autre type d’élément, à voir.

                      Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                      AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                      Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                      Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

                        @AymericRed
                        Si il ne met comme coordonnées que de simples chiffres, tels que -20 ou 45, ça risque de poser problème lors du redimensionnement de Minecraft.
                        @Rremis Essaie de changer la taille de la fenêtre et tu vas vite voir que la zone de dessin dui chat n’est pas au même endroit. Il faut pour contrer ce problème te servir des variables gui.width et gui.height. Inspire-toi des autres classes vanilla de gui pour voir comment ils font 😃

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

                          @Plaigon, t’a raison, mais comme ces valeurs (qui sont fixes) sont relatives à celles du chat non modifié, si on ne mets pas de valeurs trop grande, à moins d’avoir une fenêtre vraiment petite, il n’y aura pas de problème, et comme il veut afficher quelque chose en dessous, il faut être su qu’il ait la place.

                          Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                          AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                          Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                          Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

                          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