Opengui



  • Bonjour,

    Je cherche a faire en sorte que quand je reste appuyé sur ma touche shift gauche en restent sur l'item que sa m'ouvre un gui.

    J'ai essayé sa mais logiquement il trouve pas player

    else if(event.itemStack.getItem() == Main.PoudreMineraiPlutonium)
    {
    
    if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT))
    {
    player.openGui(Main.instance, 4);
    }
    else
    {
    event.toolTip.add("Connaitre le craft (Shift Gauche)");
    }
    }
    


  • Logiquement ça serait e évent.player, mais faut voir si ça existe. Sinon Minecraft.getMinecraft(). thePlayer.
    PS: il manque des arguments à openGui()


  • Modérateurs

    Ton code ne pourra pas marcher du tout comme ça, Keyboard est une classe client seulement.

    Tu devrais plutôt utiliser un paquet envoyé depuis le client pour demander au serveur d'ouvrir le GUI, ça serait déjà mieux. Tu pourrais ainsi aussi avoir accès à une instance de EntityPlayer du joueur qui t'intéresse.



  • Si le gui n'a aucun slot (et donc aucun Container), pas besoin de passer par le serveur.


  • Administrateurs

    En effet, dans ce cas un simple Minecraft.getMinecraft().displayGuiScreen(gui); fera l'affaire.



  • @'robin4002':

    En effet, dans ce cas un simple Minecraft.getMinecraft().displayGuiScreen(gui); fera l'affaire.

    Merci sa fonctionne.

    Edit : j'ai fait sa sa risque de pas avoir de crash en jeu ?

    package fr.darkvince.ultrav2.guicraft;
    import org.lwjgl.opengl.GL11;
    import fr.darkvince.ultrav2.FourPlutonium.ContainerFourPlutonium;
    import fr.darkvince.ultrav2.FourPlutonium.TileEntityFourPlutonium;
    import net.minecraft.client.Minecraft;
    import net.minecraft.client.gui.GuiScreen;
    import net.minecraft.client.resources.I18n;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.entity.player.InventoryPlayer;
    import net.minecraft.util.ResourceLocation;
    public class GuiPlutonium extends GuiScreen {
     private static final ResourceLocation texture = new ResourceLocation("ultrav2:textures/gui/guiPlutonium.png");
     private int xSize;
     private int ySize;
    
     public GuiPlutonium(Minecraft minecraft, EntityPlayer entityplayer)
     {
      xSize = 176;
      ySize = 166;
      mc = minecraft;
    
     }
     public void drawScreen(int i, int j, float f)
     {
      int k = (width - xSize) / 2;
            int l = (height - ySize) / 2;
      GL11.glDisable(GL11.GL_LIGHTING);
      GL11.glDisable(GL11.GL_DEPTH_TEST);
      GL11.glColor3f(1.0F, 1.0F, 1.0F);
      drawBackgroundImage();
      super.drawScreen(i, j, f);
            GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
            GL11.glDisable(GL11.GL_LIGHTING);
    
     }
    
     public void drawBackgroundImage()
     {
      int displayX = (width - xSize) / 2;
      int displayY = (height - ySize) / 2;
      this.mc.getTextureManager().bindTexture(texture);
      drawTexturedModalRect(displayX, displayY , 0, 0, xSize, ySize);
     }
     @Override
     public boolean doesGuiPauseGame() {
         return false;
     }
    }
    
    


  • Normalement non, mais à toi de voir par toi même 😉



  • @'AymericRed':

    Normalement non, mais à toi de voir par toi même 😉

    Merci mais je c'ets pas pourquoi sa fait sa le gui ne s'adapte pas http://prntscr.com/dzgzvc



  • ça c'est parce que tes variables xSize et ySize ne changent jamais, inspires toi de la classe GuiContainer (ça doit être dans la fonction initGui() ou setWorldAndResolution() je sais plus).