Chargement biome
-
@‘SCAREX’:
Même quand tu sors du portail ?
Je peut pas test avec un portail car j’ai directement sa affiché. Sans rien faire quand je me connecte j’ai l’image donc je voie rien
-
Sinon je pense que ce qu’il y a de plus simple c’est de passer par un EEP : https://www.minecraftforgefrance.fr/showthread.php?tid=905
-
@‘SCAREX’:
Sinon je pense que ce qu’il y a de plus simple c’est de passer par un EEP : https://www.minecraftforgefrance.fr/showthread.php?tid=905
Merci, mais je voie pas le rapport. De plus le code que j’ai ecrie ne doit pas etre très loin de marcher je voie pas pourquoi sa me change comme si c’était all que j’ai mis portail sa devrai changer juste l’animation du portail pas le reste
-
Le problème c’est que lorsque tu arrives dans ta nouvelle dimension tu as toujours l’animation du portail car tu es toujours dedans, donc le mieux ce serait d’enregistrer une variable lorsque le joueur commence à partir de la dimension et la remettre à 0 quand il arrive pour arrêter d’afficher le Gui
-
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
-
Car tu ne vérifies pas que le joueur est dans un portail.
-
@‘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
-
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(); } } -
Tu ne plante pas quand le programme s’exécute ?
-
@‘BrokenSwing’:
Tu ne plante pas quand le programme s’exécute ?
EDit:
Enfaite oui depuis peu car avant que je change je crashé plus
-
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
-
@‘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){
-
Bah oui … remplace mc par Minecraft.getMinecraft(), cela m’étonnait aussi que tu ne crash pas
-
@‘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
-
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 -
@‘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 overlayJ’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]
-
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
-
@‘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
-
Oui c’est celui-là
-
@‘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) {