MFF

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

    Chargement biome

    Planifier Épinglé Verrouillé Déplacé Sans suite
    1.7.2
    37 Messages 4 Publieurs 6.8k 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.
    • darkvince37D Hors-ligne
      darkvince37
      dernière édition par

      Non le problème est pas la je peut même pas allez dans la dimension car des que je me connecte dans mon monde j’ai l’image sans avoir à passer dans le portail donc il doit avoir une erreur dans le code mais je voie pas.

      Envoyé de mon SM-G928F en utilisant Tapatalk

      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

        Car tu ne vérifies pas que le joueur est dans un portail.

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

          @‘robin4002’:

          Car tu ne vérifies pas que le joueur est dans un portail.

          Merci sa fait plus le bug probleme c’est qu’il s’affiche pas quand je passe le portail

          if (mc.thePlayer != null)

          je pense que sa vient du null

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

            Désolé pour le double post mais depuis quelle que jours je cherche mais je suis toujours au meme endroit voilà mon code actuelle

            package fr.darkvince.facrpg.menu;
            
            import com.mojang.realmsclient.gui.ChatFormatting;
            import cpw.mods.fml.common.eventhandler.SubscribeEvent;
            import net.minecraft.client.Minecraft;
            import net.minecraft.client.gui.GuiScreen;
            import net.minecraft.client.gui.ScaledResolution;
            import net.minecraft.client.renderer.Tessellator;
            import net.minecraft.client.renderer.texture.TextureManager;
            import net.minecraft.util.ResourceLocation;
            import net.minecraftforge.client.event.RenderGameOverlayEvent;
            import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType;
            import org.lwjgl.opengl.GL11;
            import scala.util.Random;
            
            public class ClientEventHandler  extends GuiScreen
            {
             public ResourceLocation loadingscreen = new ResourceLocation("facrpg", "textures/gui/LoadingScreen.png");
             public String[] quotes = { "Test 1", "Test 12"};
             public int selector = 280;
             public boolean doneDraw = false;
             private static Minecraft mc;
            
             @SubscribeEvent
             public void loadingOverlay(RenderGameOverlayEvent.Pre event)
             {
            if (mc.thePlayer != null){
                 if (event.type == RenderGameOverlayEvent.ElementType.PORTAL)
                 {
            
                 event.setCanceled(true);
                   ScaledResolution res = new ScaledResolution(Minecraft.getMinecraft(), Minecraft.getMinecraft().displayWidth, Minecraft.getMinecraft().displayHeight);
                   int posX = res.getScaledWidth();
                   int posY = res.getScaledHeight();
                   Minecraft.getMinecraft().renderEngine.bindTexture(this.loadingscreen);
                   drawTexturedRect(0, 0, 0, 0, posX, posY, posX, posY);
                   if (!this.doneDraw)
                   {
                     this.selector = new Random().nextInt(this.quotes.length);
                     this.doneDraw = true;
                   }
                   GL11.glPushMatrix();
                   GL11.glScalef(0.5F, 0.5F, 0.5F);
                   drawCenteredString(Minecraft.getMinecraft().fontRenderer, ChatFormatting.WHITE + this.quotes[this.selector], posX, posY, 0);
                   GL11.glPopMatrix();
                   drawCenteredString(Minecraft.getMinecraft().fontRenderer, ChatFormatting.DARK_RED + "Chargment…", posX / 2, posY / 2 + 90, 0);
                 }
               }
               else {
                 this.doneDraw = false;
               }
             }
            
             public void drawTexturedRect(int x, int y, int u, int v, int width, int height, int textureWidth, int textureHeight)
             {
               float f = 1.0F / textureWidth;
               float f1 = 1.0F / textureHeight;
               Tessellator tessellator = Tessellator.instance;
               tessellator.startDrawingQuads();
               tessellator.addVertexWithUV(x, y + height, 0.0D, u * f, (v + height) * f1);
               tessellator.addVertexWithUV(x + width, y + height, 0.0D, (u + width) * f, (v + height) * f1);
               tessellator.addVertexWithUV(x + width, y, 0.0D, (u + width) * f, v * f1);
               tessellator.addVertexWithUV(x, y, 0.0D, u * f, v * f1);
               tessellator.draw();
             }
            }
            
            
            1 réponse Dernière réponse Répondre Citer 0
            • BrokenSwingB Hors-ligne
              BrokenSwing Moddeurs confirmés Rédacteurs
              dernière édition par

              Tu ne plante pas quand le programme s’exécute ?

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

                @‘BrokenSwing’:

                Tu ne plante pas quand le programme s’exécute ?

                EDit:

                Enfaite oui depuis peu car avant que je change je crashé plus

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

                  De toute façon il n’y a aucune raison que mc.thePlayer soit autre chose que null car ta variable mc n’est pas initialisée

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

                    @‘BrokenSwing’:

                    De toute façon il n’y a aucune raison que mc.thePlayer soit autre chose que null car ta variable mc n’est pas initialisée

                    C’est u pourquoi sa crash a se niveau la ? if (mc.thePlayer != null){

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

                      Bah oui … remplace mc par Minecraft.getMinecraft(), cela m’étonnait aussi que tu ne crash pas

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

                        @‘BrokenSwing’:

                        Bah oui … remplace mc par Minecraft.getMinecraft(), cela m’étonnait aussi que tu ne crash pas

                        Merci sa crash plus mais je revient a la casse départ mon chargement est la des que je créer mon monde donc je voie rien a part mon image

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

                          Bah c’est simple, me semble-t-il, l’event est appelé lors du rendu :
                          Tu vérifie si Minecraft.thePlayer != null or c’est pratiquement toujours vrai (il y a sûrement des cas spéciaux mais c’est même pas certains) donc personnelement je ne mettrai même pas cette condition.
                          Ensuite if (event.type == RenderGameOverlayEvent.ElementType.PORTAL) tu vérifie si c’est bien l’overlay du portail, j’espère que c’est bien celui-ci que tu veux remplacer (c’est le violet du portail il me semble) parce que d’après ce que tu a montré tu veux changer l’écran de chargement entre 2 mondes (c’est là que me questionne sur la pertinance du titre du sujet). Et l’affichage de l’overlay du portail et tout le temps appelé juste il n’est pas rendu d’où le message de robin que tu n’as pas pris en compte “tu ne vérifies pas que le joueur est dans un portail”
                          L’écran de chargement entre les mondes est un Gui pas un overlay

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

                            @‘BrokenSwing’:

                            Bah c’est simple, me semble-t-il, l’event est appelé lors du rendu :
                            Tu vérifie si Minecraft.thePlayer != null or c’est pratiquement toujours vrai (il y a sûrement des cas spéciaux mais c’est même pas certains) donc personnelement je ne mettrai même pas cette condition.
                            Ensuite if (event.type == RenderGameOverlayEvent.ElementType.PORTAL) tu vérifie si c’est bien l’overlay du portail, j’espère que c’est bien celui-ci que tu veux remplacer (c’est le violet du portail il me semble) parce que d’après ce que tu a montré tu veux changer l’écran de chargement entre 2 mondes (c’est là que me questionne sur la pertinance du titre du sujet). Et l’affichage de l’overlay du portail et tout le temps appelé juste il n’est pas rendu d’où le message de robin que tu n’as pas pris en compte “tu ne vérifies pas que le joueur est dans un portail”
                            L’écran de chargement entre les mondes est un Gui pas un overlay

                            J’avais mis sa pour le message de robin [font=Ubuntu, sans-serifMinecraft.thePlayer != null, j’avais pensé qu’il voulais que je fasse sa en fait. Et oui je voudrai juste changer le chargement pas le portail violet]

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

                              L’event serai celui-ci GuiScreenEvent.DrawScreenEvent.Pre mais je ne connai pas le nom du gui de chargement du coup je cherche mais il te suffira de remplacer event.gui par ton GuiScreen

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

                                @‘BrokenSwing’:

                                L’event serai celui-ci GuiScreenEvent.DrawScreenEvent.Pre mais je ne connai pas le nom du gui de chargement du coup je cherche mais il te suffira de remplacer event.gui par ton GuiScreen

                                GuiDownloadTerrain lui peut etre

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

                                  Oui c’est celui-là

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

                                    @‘BrokenSwing’:

                                    Oui c’est celui-là

                                    Faire un truc comme sa du coup

                                     @SubscribeEvent
                                     public void loadingOverlay(GuiScreenEvent.DrawScreenEvent.Pre event)
                                     {
                                    
                                         if (event.gui == GuiDownloadTerrain)
                                         {
                                    
                                    1 réponse Dernière réponse Répondre Citer 0
                                    • BrokenSwingB Hors-ligne
                                      BrokenSwing Moddeurs confirmés Rédacteurs
                                      dernière édition par

                                      Bah ça risque de ne pas marcher, une variable peut pas être égale à une classe et perso (en 1.9) je n’ai pas accès à la variable gui donc je doit faire plutôt un truc comme ça

                                      
                                      public void onGuiScreen(GuiScreenEvent.DrawScreenEvent.Pre e) {
                                      if(e.getGui() instanceof GuiDownloadTerrain) {
                                      e.setCanceled(true);
                                      Minecraft.getMinecraft().displayGuiScreen(new GuiScreenDemo()); //remplace GuiScreenDemo par ton propre GuiScreen
                                      }
                                      
                                      

                                      Dans ton GuiScreen il va peut-être falloir que tu envoie des packets car Minecraft le fait lui, regarde la classe GuiDownloadTerrain il envoie des packets KeepAlive

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

                                        @‘BrokenSwing’:

                                        Bah ça risque de ne pas marcher, une variable peut pas être égale à une classe et perso (en 1.9) je n’ai pas accès à la variable gui donc je doit faire plutôt un truc comme ça

                                        
                                        public void onGuiScreen(GuiScreenEvent.DrawScreenEvent.Pre e) {
                                        if(e.getGui() instanceof GuiDownloadTerrain) {
                                        e.setCanceled(true);
                                        Minecraft.getMinecraft().displayGuiScreen(new GuiScreenDemo()); //remplace GuiScreenDemo par ton propre GuiScreen
                                        }
                                        
                                        

                                        Dans ton GuiScreen il va peut-être falloir que tu envoie des packets car Minecraft le fait lui, regarde la classe GuiDownloadTerrain il envoie des packets KeepAlive

                                        En gros je fait comme si je modifier mon menu in game

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

                                          Presque, en gros tu cancel l’affichage du GuiScreen GuiDownloadTerrain et tu le remplace par le tien

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

                                            @‘BrokenSwing’:

                                            Presque, en gros tu cancel l’affichage du GuiScreen GuiDownloadTerrain et tu le remplace par le tien

                                            Voilà se que sa donne a la fin

                                            package fr.darkvince.facrpg.menu;
                                            
                                            import com.mojang.realmsclient.gui.ChatFormatting;
                                            import cpw.mods.fml.common.eventhandler.SubscribeEvent;
                                            import net.minecraft.client.Minecraft;
                                            import net.minecraft.client.gui.GuiDownloadTerrain;
                                            import net.minecraft.client.gui.GuiScreen;
                                            import net.minecraft.client.gui.ScaledResolution;
                                            import net.minecraft.client.renderer.Tessellator;
                                            import net.minecraft.client.renderer.texture.TextureManager;
                                            import net.minecraft.util.ResourceLocation;
                                            import net.minecraftforge.client.event.GuiScreenEvent;
                                            import net.minecraftforge.client.event.RenderGameOverlayEvent;
                                            import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType;
                                            import org.lwjgl.opengl.GL11;
                                            import scala.util.Random;
                                            
                                            public class ClientEventHandler  extends GuiScreen
                                            {
                                            
                                             public void onGuiScreen(GuiScreenEvent.DrawScreenEvent.Pre e) {
                                             if(e.gui instanceof GuiDownloadTerrain) {
                                             e.setCanceled(true);
                                             Minecraft.getMinecraft().displayGuiScreen(new GuiChargement(null));
                                             }
                                             }
                                            }
                                            
                                            
                                            package fr.darkvince.facrpg.menu;
                                            
                                            import org.lwjgl.opengl.GL11;
                                            
                                            import com.mojang.realmsclient.gui.ChatFormatting;
                                            
                                            import net.minecraft.client.Minecraft;
                                            import net.minecraft.client.gui.GuiScreen;
                                            import net.minecraft.client.gui.ScaledResolution;
                                            import net.minecraft.client.network.NetHandlerPlayClient;
                                            import net.minecraft.client.renderer.Tessellator;
                                            import net.minecraft.client.resources.I18n;
                                            import net.minecraft.network.play.client.C00PacketKeepAlive;
                                            import net.minecraft.util.ResourceLocation;
                                            import scala.util.Random;
                                            
                                            public class GuiChargement extends GuiScreen {
                                            
                                             public ResourceLocation loadingscreen = new ResourceLocation("facrpg", "textures/gui/LoadingScreen.png");
                                             public String[] quotes = { "Test 1", "Test 12"};
                                             public int selector = 280;
                                             private NetHandlerPlayClient field_146594_a;
                                             public boolean doneDraw = false;
                                               public GuiChargement(NetHandlerPlayClient p_i45023_1_)
                                               {
                                                this.field_146594_a = p_i45023_1_;
                                               }
                                            
                                               public void drawTexturedRect(int x, int y, int u, int v, int width, int height, int textureWidth, int textureHeight)
                                             {
                                               float f = 1.0F / textureWidth;
                                               float f1 = 1.0F / textureHeight;
                                               Tessellator tessellator = Tessellator.instance;
                                               tessellator.startDrawingQuads();
                                               tessellator.addVertexWithUV(x, y + height, 0.0D, u * f, (v + height) * f1);
                                               tessellator.addVertexWithUV(x + width, y + height, 0.0D, (u + width) * f, (v + height) * f1);
                                               tessellator.addVertexWithUV(x + width, y, 0.0D, (u + width) * f, v * f1);
                                               tessellator.addVertexWithUV(x, y, 0.0D, u * f, v * f1);
                                               tessellator.draw();
                                             }
                                            
                                               /**
                                                * Draws the screen and all the components in it.
                                                */
                                               public void drawScreen(int p_73863_1_, int p_73863_2_, float p_73863_3_)
                                               {
                                                   ScaledResolution res = new ScaledResolution(Minecraft.getMinecraft(), Minecraft.getMinecraft().displayWidth, Minecraft.getMinecraft().displayHeight);
                                                   int posX = res.getScaledWidth();
                                                   int posY = res.getScaledHeight();
                                                   Minecraft.getMinecraft().renderEngine.bindTexture(this.loadingscreen);
                                                   drawTexturedRect(0, 0, 0, 0, posX, posY, posX, posY);
                                                   if (!this.doneDraw)
                                                   {
                                                     this.selector = new Random().nextInt(this.quotes.length);
                                                     this.doneDraw = true;
                                                   }
                                                   GL11.glPushMatrix();
                                                   GL11.glScalef(0.5F, 0.5F, 0.5F);
                                                   drawCenteredString(Minecraft.getMinecraft().fontRenderer, ChatFormatting.WHITE + this.quotes[this.selector], posX, posY, 0);
                                                   GL11.glPopMatrix();
                                                   drawCenteredString(Minecraft.getMinecraft().fontRenderer, ChatFormatting.DARK_RED + "Chargment…", posX / 2, posY / 2 + 90, 0);
                                               }
                                            
                                               /**
                                                * Returns true if this GUI should pause the game when it is displayed in single-player
                                                */
                                               public boolean doesGuiPauseGame()
                                               {
                                                   return false;
                                               }
                                            }
                                            

                                            Mais sa marche pas la class original du GuiDownloadTerrain

                                            package net.minecraft.client.gui;
                                            
                                            import cpw.mods.fml.relauncher.Side;
                                            import cpw.mods.fml.relauncher.SideOnly;
                                            import net.minecraft.client.network.NetHandlerPlayClient;
                                            import net.minecraft.client.resources.I18n;
                                            import net.minecraft.network.play.client.C00PacketKeepAlive;
                                            
                                            @SideOnly(Side.CLIENT)
                                            public class GuiDownloadTerrain extends GuiScreen
                                            {
                                                private NetHandlerPlayClient field_146594_a;
                                                private int field_146593_f;
                                                private static final String __OBFID = "CL_00000708";
                                            
                                                public GuiDownloadTerrain(NetHandlerPlayClient p_i45023_1_)
                                                {
                                                    this.field_146594_a = p_i45023_1_;
                                                }
                                            
                                                /**
                                                 * Fired when a key is typed. This is the equivalent of KeyListener.keyTyped(KeyEvent e).
                                                 */
                                                protected void keyTyped(char p_73869_1_, int p_73869_2_) {}
                                            
                                                /**
                                                 * Adds the buttons (and other controls) to the screen in question.
                                                 */
                                                public void initGui()
                                                {
                                                    this.buttonList.clear();
                                                }
                                            
                                                /**
                                                 * Called from the main game loop to update the screen.
                                                 */
                                                public void updateScreen()
                                                {
                                                    ++this.field_146593_f;
                                            
                                                    if (this.field_146593_f % 20 == 0)
                                                    {
                                                        this.field_146594_a.addToSendQueue(new C00PacketKeepAlive());
                                                    }
                                            
                                                    if (this.field_146594_a != null)
                                                    {
                                                        this.field_146594_a.onNetworkTick();
                                                    }
                                                }
                                            
                                                /**
                                                 * Draws the screen and all the components in it.
                                                 */
                                                public void drawScreen(int p_73863_1_, int p_73863_2_, float p_73863_3_)
                                                {
                                                    this.drawBackground(0);
                                                    this.drawCenteredString(this.fontRendererObj, I18n.format("multiplayer.downloadingTerrain", new Object[0]), this.width / 2, this.height / 2 - 50, 16777215);
                                                    super.drawScreen(p_73863_1_, p_73863_2_, p_73863_3_);
                                                }
                                            
                                                /**
                                                 * Returns true if this GUI should pause the game when it is displayed in single-player
                                                 */
                                                public boolean doesGuiPauseGame()
                                                {
                                                    return false;
                                                }
                                            }
                                            
                                            1 réponse Dernière réponse Répondre Citer 0
                                            • 1
                                            • 2
                                            • 1 / 2
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB